begin process at 2012 05 27 13:20:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Base de données

 > 

XML

 > 

Gallerie Flash


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Gallerie Flash

jeudi 28 juillet 2011 à 02:08:31 | Gallerie Flash

paulito47

Bonjour à tous,

je travaille actuellement sur une gallerie photos.
J'affiche les miniatures qui permettront par la suite de voir l'image voulue en grand, ceci à partir d'un fichier XML.
J'ai mis un scroll vertical afin de pouvoir voir toutes les miniatures.
Mon scroll marche correctement néanmoins il ne me permet pas de voir toutes les miniatures.

Voici le code:

import fl.containers.UILoader;
import caurina.transitions.*;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Rectangle;
import com.greensock.TweenMax;

var urlRequest:URLRequest = new URLRequest("pics.xml");
var urlLoader:URLLoader = new URLLoader();
var myXML:XML = new XML();
var xmlList:XMLList;
myXML.ignoreWhitespace = true;
urlLoader.addEventListener(Event.COMPLETE,fileLoaded);
urlLoader.load(urlRequest);


var arrayURL:Array = new Array();

var arrayName:Array = new Array();

var holderArray:Array = new Array();

var nrColumns:uint = 5;


var thumb:Thumbnail;
var photoContainer:Sprite = new Sprite();
addChild(photoContainer);
photoContainer.mask=thumb_holder;


function fileLoaded(event:Event):void {
myXML = XML(event.target.data);
xmlList = myXML.children();
for (var i:int=0; i<xmlList.length(); i++) {
var picURL:String = xmlList[i].url;
var picName:String = xmlList[i].big_url;
arrayURL.push(picURL);
arrayName.push(picName);
holderArray[i] = new Thumbnail(arrayURL[i],i,arrayName[i]);
holderArray[i].name = arrayName[i];
holderArray[i].buttonMode = true;

holderArray[i].addEventListener(MouseEvent.CLICK,onClick);
if (i<nrColumns) {
holderArray[i].y = 65;
holderArray[i].x = i*110+65;
}

else {
holderArray[i].y = holderArray[i-nrColumns].y+110;
holderArray[i].x = holderArray[i-nrColumns].x;
}
photoContainer.addChild(holderArray[i]);
}
}

function thumbLoaded(e:Event):void {
var my_thumb:Loader = Loader(e.target.loader);
photoContainer.addChild(my_thumb);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
}

//----handles the Click event added to the thumbnails--
function onClick(event:MouseEvent):void {
var test = event.currentTarget.name;
trace(test);
//Tweener.addTween(photoContainer, {x:-650, time:1, transition:"easeInElastic"});
//Tweener.addTween(photoContainer, {alpha:0, time:1, transition:"linear"});
}

var bounds:Rectangle;
var startY:Number;
var contentY:Number;

scrollHandle.addEventListener(MouseEvent.MOUSE_DOWN, drag);
scrollBar.addEventListener(MouseEvent.CLICK, tween);
addEventListener(Event.ENTER_FRAME, moveBox);
startY = scrollHandle.y;
contentY = photoContainer.y;
bounds = new Rectangle(scrollHandle.x, scrollHandle.y, 0, scrollBar.height - (scrollHandle.height + 4));


function tween(e:MouseEvent):void{
var mousePos:Number = mouseX;
if(mousePos > (scrollBar.y + scrollBar.height) - (scrollHandle.height + 4)){
mousePos = (scrollBar.y + scrollBar.height) - (scrollHandle.height + 4);
}
Tweener.addTween(scrollHandle, {y: mousePos, time: 1});
}

function drag(e:MouseEvent):void{
scrollHandle.startDrag(false, bounds);
scrollHandle.gotoAndStop(2);
scrollHandle.removeEventListener(MouseEvent.MOUSE_DOWN, drag);
addEventListener(MouseEvent.MOUSE_UP, stopdrag);
}

function stopdrag(e:MouseEvent):void{
scrollHandle.stopDrag();
scrollHandle.gotoAndStop(1);
scrollHandle.addEventListener(MouseEvent.MOUSE_DOWN, drag);
removeEventListener(MouseEvent.MOUSE_UP, stopdrag);
}

function moveBox(e:Event):void{
TweenMax.to(photoContainer, 2, {y: -((contentY - startY) + scrollHandle.y) / ((photoContainer.height - thumb_holder.height) / (scrollBar.height - scrollHandle.height))});
}

Je peux éventuellement fournir le fla.
vendredi 29 juillet 2011 à 01:37:56 | Re : Gallerie Flash

aerolyte

Bonjour,

Code ActionScript :
import fl.containers.UILoader; // tiens voici une classe que je connais pas, quel est la différence avec URLLoader ou Loader? 
import caurina.transitions.*; 
import flash.display.MovieClip; 
import flash.events.Event; 
import flash.events.MouseEvent; 
import flash.geom.Rectangle; 
import com.greensock.TweenMax;

var urlRequest:URLRequest=new URLRequest("pics.xml"); 
var urlLoader:URLLoader=new URLLoader(); 
var myXML:XML=new XML(); 
//var xmlList:XMLList; inutile
myXML.ignoreWhitespace=true; 
urlLoader.addEventListener(Event.COMPLETE,fileLoaded); 
urlLoader.load(urlRequest); 

// trop de array tu le array, a mon avis une seul suffit surtout si tu les utilise comme des vectors
//var arrayURL:Array=new Array(); 
//var arrayName:Array=new Array(); 
var holderArray:Array=new Array(); 

// ici il faut utiliser une constante typer int
//var nrColumns:uint=5; 
const nrColumns:int=5; 

var thumb:Thumbnail; 
var photoContainer:Sprite=new Sprite(); 
addChild(photoContainer); 
photoContainer.mask=thumb_holder; 

function fileLoaded(event:Event):void{
	myXML=XML(event.target.data); 
	var imax:int=myXML.children.length();
	//xmlList=myXML.children(); 
	//declare tes variables avant la boucle bien qu'ici tout ca est inutile
	//var picURL:String,picName:String;
	for(var i:int=0;i<imax);i++){ 
		//picURL=xmlList[i].url; 
		//picName=xmlList[i].big_url; 
		//arrayURL.push(picURL); 
		//arrayName.push(picName); 
		holderArray[i]=new Thumbnail(myXML.children[i].url,i,myXML.children[i].big_url); 
		holderArray[i].name=arrayName[i]; 
		holderArray[i].buttonMode=true; 
		holderArray[i].addEventListener(MouseEvent.CLICK,onClick);
		
		if(i<nrColumns){ 
			holderArray[i].y=65; 
			holderArray[i].x=i*110+65;
		}else{ 
			holderArray[i].y=holderArray[i-nrColumns].y+110; 
			holderArray[i].x=holderArray[i-nrColumns].x; 
		} 
	photoContainer.addChild(holderArray[i]); 
	} 
} 
function thumbLoaded(e:Event):void{
	e.target.contentLoaderInfo.removeEventListener(Event.COMPLETE,thumbLoaded);
	var my_thumb:Loader=Loader(e.target.loader); 
	photoContainer.addChild(my_thumb); 
} 
function onClick(event:MouseEvent):void{
	var test=event.currentTarget.name; 
	trace(test); 
	//Tweener.addTween(photoContainer,{x:-650, time:1, transition:"easeInElastic"}); 
	//Tweener.addTween(photoContainer,{alpha:0, time:1, transition:"linear"}); 
} 

// c'est le bordel ton code il y  en a de partout, faut ranger les variables, elements de construction, fonction et public privée et évenementielles
var bounds:Rectangle=new Rectangle(scrollHandle.x, scrollHandle.y, 0, scrollBar.height-(scrollHandle.height+4)); 
var startY:Number=scrollHandle.y;
var contentY:Number=photoContainer.y; 
//c'est quoi ton scrollHandle? car je ne vois pas quand tu modifie sa taille en fonction de la taille de la scrollbar et du contenu a afficher
//ton soucis de visualisaton viens a prime abord de la
scrollHandle.addEventListener(MouseEvent.MOUSE_DOWN,drag); 
scrollBar.addEventListener(MouseEvent.CLICK,tween); 
addEventListener(Event.ENTER_FRAME,moveBox); 


function tween(e:MouseEvent):void{ 
	var mousePos:Number=mouseX; 
	if(mousePos>(scrollBar.y+scrollBar.height)-(scrollHandle.height+4)){ 
		mousePos=(scrollBar.y + scrollBar.height)-(scrollHandle.height + 4); 
	}
	//Mélanger des tweener et des TweenMax c'est pas bien, je te conseille de tout faire avec les Tweener, c'est la meilleur solution
	Tweener.addTween(scrollHandle,{y:mousePos,time:1}); 
} 
function drag(e:MouseEvent):void{
	scrollHandle.removeEventListener(MouseEvent.MOUSE_DOWN,drag); 
	scrollHandle.startDrag(false,bounds); 
	scrollHandle.gotoAndStop(2); 
	addEventListener(MouseEvent.MOUSE_UP,stopdrag); 
} 
function stopdrag(e:MouseEvent):void{ 
	removeEventListener(MouseEvent.MOUSE_UP,stopdrag); 
	scrollHandle.stopDrag(); 
	scrollHandle.gotoAndStop(1); 
	scrollHandle.addEventListener(MouseEvent.MOUSE_DOWN,drag); 
} 
function moveBox(e:Event):void{ 
	TweenMax.to(photoContainer,2,{y:-((contentY-startY)+scrollHandle.y)/((photoContainer.height-thumb_holder.height)/(scrollBar.height-scrollHandle.height))}); 
} 


Cette discussion est classée dans : var, import, height, mouseevent, scrollhandle


Répondre à ce message

Sujets en rapport avec ce message

Problèmes avec player pour webradio. [ par SteppenWulf ] Bonsoir, J'essaie de créer un player pour écouter ma webradio... Mais je rencontre des problèmes. ( Je suis un Newbie, j'utilise flash depuis ce we [Flash C - AS3] Les accents [ par jytest ] Débutant en Flash CS4 et Actionscript3, je viens demander votre aide. Ce code fonctionne à merveille... sauf quand je remplace cette ligne var galler Placer un movie clip dans le coin haut droit d'un site resizable [ par syestar ] Bonjour, je n'arrive pas a faire en sorte que mon bouton fullsreen reste dans le coin en haut a droite quand le site se resize... voici le lien : ht Papervision 3D + primitives.addEventListener [ par Ariranha ] Bonjour à tous, Après avoir parcouru des "tonnes" de tutoriels et de post je me décide a poster ma question qui est vraiment très basique. Comment o Souci avec target [ par Riliono ] Dans la bibliotheque, j'ai un clip exporté ayant pour définition de chemin de classe MCBOUTON, ce dernier me sert a créer un menu dynamique sur la sc bouton flash [ par chterna ] bjr je suis entrain de creer une page html avec des bouton en flash chake bouton relie a une page html je voudrai qu'en clikan sur les bouton la pag Arrêter un son au lancement d'un autre [ par nina75014 ] Bonjour, Je suis plutôt débutante en programmation ActionScript et ma question vous semblera peut-être idiote... Je réalise actuellement un accordeur Bannière AS3, import d'images via un XML...Problème de boucle [ par szekes ] Bonjours à tous, voilà je suis nouveau sur ce forum et je débute aussi en AS3... Autant dire que je n'y comprend pas grand chose encore...Mais sa va v Les accents en actionscript... Encore une fois... [ par jytest ] Bonsoir à tous. J'utilise Adobe flash cs4. J'ai beau consulter des pages et des pages sur internet, aucune solution pour moi. Dans le tableau "gall


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales