AS3 Loader Class最佳实践

时间:2009-12-09 02:51:17

标签: actionscript-3

最近在一个项目中我配置了一个自定义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 ??? !!

所以要纠正我需要在加载新资产时实例化一个新的加载器。

有人能告诉我哪种方法会被视为“最佳做法”吗?

1 个答案:

答案 0 :(得分:0)

Loader个实例一次可以有utmost one child个。在使用相同的Loader实例发出后续_myLdr.unload();个请求之前,请调用load()

话虽这么说,我宁愿为每个加载创建一个新的Loader实例(并确保在不再需要它们时正确卸载以前的实例)。