/ Published in: ActionScript 3
URL: http://www.adamcoulombe.info/lab/as3/xml_slider.html
Demo:http://www.adamcoulombe.info/lab/as3/xmlslider.html FLA: http://www.adamcoulombe.info/lab/as3/xmlslider.fla
Requires Tweenlite and the multiple movieclip preloader from here: http://code.google.com/p/as3-multiple-file-preloader/
Expand |
Embed | Plain Text
import com.greensock.*; //download from http://www.greensock.com/tweenlite/ import com.team2p0.*; //download from http://code.google.com/p/as3-multiple-file-preloader/ var dimensions:Object = {width:550,height:400}; var container:MovieClip = new MovieClip(); addChild(container); var TOTAL_IMAGES:Number; var NUMBER_OF_IMAGES_LOADED:Number = 0; var INDEX_AT:Number = 0; container.x=0;container.y=0; var xml:XML; var xmlLoader:URLLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); xmlLoader.load(new URLRequest("images.xml")); var preloader:Preload; var images:Array = new Array(); function xmlLoaded(e:Event):void { xml = new XML(e.target.data); TOTAL_IMAGES = xml.image.length(); for (var i in xml.image){ images.push(xml.image[i]); } preloader = new Preload(images); // instantiate and add the files to be preloaded as an array preloader.addEventListener("preloadProgress", onPreloadProgress); preloader.addEventListener("preloadComplete", onPreloadComplete); } function onPreloadComplete(e:Event):void { for(var i in xml.image){ var image = preloader.objects[i]; //imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); container["container"+i] = new MovieClip(); container["container"+i].addChild(image); container["container"+i].x = i * dimensions.width; var imageMask:Sprite = new Sprite(); imageMask.graphics.beginFill(0x000000); imageMask.graphics.drawRect(0, 0, dimensions.width, dimensions.height); imageMask.graphics.endFill(); container.addChild(container["container"+i]); container["container"+i].addChild(imageMask); image.mask = imageMask; } imagesReady(); } function onPreloadProgress(e:Event):void { } /* function imageLoaded(e:Event):void { NUMBER_OF_IMAGES_LOADED++; if( NUMBER_OF_IMAGES_LOADED == TOTAL_IMAGES){ imagesReady(); } }*/ function imagesReady():void { TweenLite.from(container, 0.5, {x:dimensions.width*(TOTAL_IMAGES-1)*-1, onComplete:function(){ INDEX_AT = 0; stage.addEventListener(MouseEvent.MOUSE_UP, mouseClicked); }}); } function mouseClicked(e:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_UP, mouseClicked); if(INDEX_AT<TOTAL_IMAGES-1){ TweenLite.to(container, 0.5, {x:container.x-dimensions.width, onComplete:function(){ INDEX_AT++; stage.addEventListener(MouseEvent.MOUSE_UP, mouseClicked); }}); }else{ TweenLite.to(container, 0.5, {x:0, onComplete:function(){ INDEX_AT = 0; stage.addEventListener(MouseEvent.MOUSE_UP, mouseClicked); }}); } }
You need to login to post a comment.
