Hello Everyone. So i want to create an xml banner, but every picture to have her own timer, defined in the xml. for example i want my first picture to disappear after 5 seconds, the 2nd after 3 sec, the 3rd after 2 sec etc.
my xml looks like this one:
The action script code looks like this:Code:<?xml version="1.0" encoding="utf-8"?> <slide DELAY="2"> <image URL="images/1.jpg" DESCRIPTION="Lorem " DELAY="5"/> <image URL="images/2.jpg" DESCRIPTION="Nam blandit" DELAY="2"/> <image URL="images/3.jpg" DESCRIPTION="Cras" DELAY="3"/> <image URL="images/4.jpg" DESCRIPTION="Nulla sed" DELAY="10"/> <image URL="images/5.jpg" DESCRIPTION="Vivamus." DELAY="1"/> </slide>
i defined in the xml file the delays for every picture, but i can figure out how to transmit the delays to the timer. please help me. thanks a lot.Code:import fl.transitions.Tween; import fl.transitions.easing.*; var _delay:int = 0; var _total:int = 0; var _images:XMLList = null; var _loaders:Array = new Array(); var _counter:int = 0; var _next:int = 0; var _timer:Timer = null; var _tween:Tween = null; var _container:Sprite = new Sprite(); var _text:TextField = new TextField(); var _loader:URLLoader = new URLLoader(); _loader.load(new URLRequest("data.xml")); _loader.addEventListener(Event.COMPLETE, Complete, false, 0, true); function Complete(e:Event):void { var _xml:XML = new XML(e.target.data); _loader.removeEventListener(Event.COMPLETE, Complete); _loader = null; _images = _xml.image; _total= _images.length(); LoadImages(); } function LoadImages():void { for (var i:int = 0; i < _total; i++) { _delay = _images[i].@DELAY; trace(_delay) var _url:String = _images[i].@URL; var _loader:Loader = new Loader(); _loader.load(new URLRequest(_url)); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, ImageLoaded); _loaders.push(_loader); } } function ImageLoaded(e:Event):void { _counter++; if ( _counter == _total) { SetupSlider(); } } function SetupSlider():void { addChild(_container); _text.selectable=false; _text.width = 450; _text.height = 50; _text.x = 0; _text.y = 0; addChild(_text); NextImage(); _timer = new Timer(_delay*1000,0); _timer.addEventListener(TimerEvent.TIMER, TimerListener); _timer.start(); } function TimerListener(e:TimerEvent):void { _next++; if (_next == _total) { _next =0; } NextImage(); } function NextImage():void { if(_container.numChildren>0) { _container.removeChildAt(0); } _loaders[_next].alpha = 0; _container.addChildAt(_loaders[_next],0); _tween = new Tween(_loaders[_next],"alpha",Strong.easeOut,0,1,1,true); _text.text = _images[_next].@DESCRIPTION; }




Reply With Quote