paulito47
Messages postés8Date d'inscriptionjeudi 3 septembre 2009StatutMembreDernière intervention28 juillet 2011
-
28 juil. 2011 à 02:08
aerolyte
Messages postés465Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention 4 mai 2013
-
29 juil. 2011 à 01:37
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.
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;
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;
aerolyte
Messages postés465Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention 4 mai 20131 29 juil. 2011 à 01:37
Bonjour,
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(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))});
}