Chetan Sachdev Posted April 16, 2013 Posted April 16, 2013 I am trying to get url in progresshandler. I tried typecasting event.target to LoaderItem, but it doesn't seem to work. event.target is of type LoaderMax. How can I get the currently loading item's url in progress handler ? Please help..
jamiejefferson Posted April 16, 2013 Posted April 16, 2013 I don't often use LoaderMax, but does event.data have anything useful in it (maybe it's the current LoaderItem? I couldn't tell...)? You'll need to wait for one of the LoaderMax pro's for a definitive answer sorry.
Carl Posted April 16, 2013 Posted April 16, 2013 Hi Christian. Welcome to the GreenSock forums. A LoaderMax can technically load many items simultaneously, so the when the progress event fires it isn't necessarily tied to 1 of the child loaders. The progress event only contains data associated with the object that fired that event, in this case your LoaderMax. First, if you want to ensure that only 1 item is loading at a time, you can set the LoaderMax's maxConnections property to 1. You have 2 options to figure out which child loader is currently loading. 1: assign onChildProgress or onChildOpen callbacks to the LoaderMax. Below is s brief example of using onChildProgress to gather the url of the currently loading item import com.greensock.*; import com.greensock.loading.*; import com.greensock.events.LoaderEvent; //create SWFLoaders var swf1:SWFLoader = new SWFLoader("child1.swf",{container:this,y:0,autoPlay:false}); var swf2:SWFLoader = new SWFLoader("child2.swf",{container:this,y:100, autoPlay:false}); //create and populate LoaderMax var lm:LoaderMax = new LoaderMax({onProgress:progressHandler, onChildProgress:childProgressHandler, onComplete:completeHandler, maxConnections:1}); lm.append(swf1) lm.append(swf2) lm.load(); function progressHandler(e:LoaderEvent):void { } function childProgressHandler(e:LoaderEvent):void { trace("loading " + e.target.url); } function completeHandler(e:LoaderEvent):void { trace("complete"); } this will trace loading child1.swf loading child1.swf loading child2.swf loading child2.swf complete 2: you can use the LoaderMax method getChildrenByStatus() to get an array of all the children based on a status. Read here: http://api.greensock.com/as/com/greensock/loading/LoaderMax.html#getChildrenByStatus()
GreenSock Posted April 16, 2013 Posted April 16, 2013 Have you tried using the "currentTarget" of the event? Just like in Flash when you click on a particular DisplayObject and you've got a listener on the parent but the child was clicked, you can differentiate with target and currentTarget. 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now