Error #2099: The loading object is not sufficiently loaded to provide this information
我有一个由 AS3 组件组成的 Flash 应用程序,我试图在 Flex 中运行。
在 Flash 中,将主要组件添加到舞台后,加载器对象(loaderInfo.loader)为空,这很好,我处理了。
在 Flex 中,在 applicationComplete 事件中,我将主要组件添加到阶段,加载器对象的 getter 引发异常 - 错误 #2099:加载对象未充分加载以提供此信息。
此外,当加载的 SWF 文件的属性和方法可访问时调度的 INIT 事件未触发,这可能是问题的一部分。但我无法弄清楚为什么它没有被发送。
知道为什么相同的代码有两个不同的结果吗?
您肯定需要发布代码,以便我们看得更清楚。
话虽如此,在 addChild 之后,您是尝试为"主要组件"还是为您的 mx:Application 获取 loaderInfo?
伪
1 2 3 4 5 6 7 | //onApplicationComplete event handler var myswf:SWFLoader = new SWFLoader(); myswf.load(...); addChild(nmyswf); trace(myswf.loaderInfo.loader); //end onApplicationComplete |
这就是你在做的吗?如果是这样,您需要在"主要组件"中添加一个事件侦听器(假设是外部加载的 swf),以了解 Event.COMPLETE 何时发生。
1 2 3 | var myswf:SWFLoader = new SWFLoader(); myswf.addEventListener(Event.COMPLETE, onMySWFComplete); //..rest of code |
希望对您有所帮助。如果没有,请发布代码。
我不确定这是否与 INIT 事件有关,但我知道在 flash player 9 中,我假设它是您的 SWF 版本?通过自己的 evt 目标引用加载程序存在错误。基本上,如果您正在加载某些内容并且您尝试通过 evt.target.loaderInfo.loader 访问加载程序的属性,它永远无法找到自己并抛出您在问题中描述的错误。我相信这是 flash player 9 的一个已知错误,已在 CS4 和 flash player 10 的发布中修复。
这是一个描述一些问题的线程的链接,希望对您有所帮助
http://www.actionscript.org/forums/showthread.php3?t=137599
嗯,这似乎是一个令人沮丧的问题。当您说"主要组件"时,我想您是指 Flash 中的文档类?
我对 flex 的了解不够,无法评论您描述的问题,但我可以建议您尝试使用
1 2 3 4 5 6 7 8 9 10 | public class MainFlashClass extends Sprite { public function MainFlashClass() { addEventListener(Event.ADDED_TO_STAGE, onInit); } public function onInit(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, onInit); // do your initialisation code here } } |
这可能适用于两种情况。我发现
加载它