XML banner. Help needed for timer
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:
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>
The action script code looks like this:
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;
}
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.