Chetan Sachdev Posted April 16, 2013 Share 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.. Link to comment Share on other sites More sharing options...
jamiejefferson Posted April 16, 2013 Share 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. Link to comment Share on other sites More sharing options...
Carl Posted April 16, 2013 Share 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() Link to comment Share on other sites More sharing options...
GreenSock Posted April 16, 2013 Share 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 Link to comment Share on other sites More sharing options...
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