最近在一个项目中我配置了一个自定义Loader类,如下所示 首先,我将我的Loader定义为私有变量
private var _myLdr:Loader
//Then in the constructor
_myLdr = new Loader();
_myLdr.contentLoaderInfo.addEventListener( Event.COMPLETE, doneImgLoad );
_myLdr.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, loadProgress );
_myLdr.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, ioError );
然后当我需要加载新资产时,我通过公共方法调用我的Loader实例
_myLdr.load(new URLRequest ('myswftoLoad.swf') );
到目前为止一直都很好....除非您碰巧使用FlashPlayer 9.024的调试版本来查看您的页面,否则您将获得
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::Loader/_load()
WTF ??? !!
所以要纠正我需要在加载新资产时实例化一个新的加载器。
有人能告诉我哪种方法会被视为“最佳做法”吗?
答案 0 :(得分:0)
Loader
个实例一次可以有utmost one child个。在使用相同的Loader实例发出后续_myLdr.unload();
个请求之前,请调用load()
。
话虽这么说,我宁愿为每个加载创建一个新的Loader
实例(并确保在不再需要它们时正确卸载以前的实例)。