我有一个正在加载 swf 的应用程序。我可以多次使用该 swf,直到服务器上有一个新的。因此,我想将包含 swf 的加载器保存为 SharedObject。下次我可以使用 SharedObject 中的加载器,而不必再次加载 swf(因为它已经加载过一次)。
为此,我执行以下操作:
var sObject: SharedObject = SharedObject.getLocal('PrefsObj');//my SharedObject.
registerClassAlias( "remoteSharedObject.NxLoader", NxLoader );//I register every time my custom Loader class which just extends from Loader.
if(sObject && sObject.data && sObject.data.loader)//I check if the sharedObject is empty? If not I get the previously saved loader.
loader = sObject.data.loader as NxLoader;
else//if it's empty I create the loader and load the bytes
{
loader = new NxLoader();
loader.loadBytes(swfBA,context);
}
this.addChild(loader);//add the loader.
sObject.data.loader = loader;//save the loader on my sharedObject for next time.
sObject.flush();//done.
我究竟做错了什么?SharedObject 中的加载程序无法识别,并作为一个对象出现。当它到达 addChild 方法时——Boom!-> 主线程(暂停:TypeError:错误 #2007:参数 child 必须为非空。)
谢谢