一个类里面包含多个loader,对应同一个事件,如何在事件中区分哪个loader
一个类里面包含多个loader,对应同一个事件,怎么在事件中区分哪个loader
RT!
利用as3.0开发,写了一个类,类中有多个load类,这些load类都有相同的事件,怎么在这个事件中区分是来自哪个load触发的?
代码如下:
------解决方案--------------------
方法有很多。主要原因是flash没有同步锁。在java或c等语言里有多线程同步,但是as里没有。你可以自己写一个。不过过程比较繁琐。
另外的方法,你可以添加坚挺的时候多传几个参数来判断。
loaderA.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event){loaderComplete(e,参数,参数...)});
还有就是把自己写一个类继承loader。
------解决方案--------------------
没那么复杂,自己写个类,扩展Loader类,再自定义一个事件,加个身份证就可以了。
RT!
利用as3.0开发,写了一个类,类中有多个load类,这些load类都有相同的事件,怎么在这个事件中区分是来自哪个load触发的?
代码如下:
- C/C++ code
private var loader:Array=new Array(); public function JStoAS(siteArray:Array) { trace("JStoAS"); for(var i:int=0;i<siteArray.length;i++) { var url=new URLRequest(siteArray[i]); var loaderA:Loader=new Loader(); loader.push(loaderA); loaderA.load(url); loaderA.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderComplete); loaderA.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loaderProgress); loaderA.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,loaderError); addChild(loaderA); } addChild(loadDisplay); loadDisplay.width=300; } public function loaderProgress(evt:ProgressEvent):void { var percent:Number=Math.round((evt.bytesLoaded/evt.bytesTotal)*100); //currentfileziize=evt.bytesLoaded; loadDisplay.text+=percent+"%"; //trace(evt.target.toString()); }
------解决方案--------------------
方法有很多。主要原因是flash没有同步锁。在java或c等语言里有多线程同步,但是as里没有。你可以自己写一个。不过过程比较繁琐。
另外的方法,你可以添加坚挺的时候多传几个参数来判断。
loaderA.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event){loaderComplete(e,参数,参数...)});
还有就是把自己写一个类继承loader。
------解决方案--------------------
没那么复杂,自己写个类,扩展Loader类,再自定义一个事件,加个身份证就可以了。