Actionscript 3 无法加载大于32768字节的SWF

Actionscript 3 无法加载大于32768字节的SWF,actionscript-3,actionscript,Actionscript 3,Actionscript,我有一个ActionScript3项目,其中我使用加载程序加载外部SWF。在Chrome中,Flash播放器不会触发事件。如果SWF的大小大于32768字节,则完成!你知道为什么或者如何解决这个问题吗 我尝试使用ProgressEvent.PROGRESS并在event.bytesload==event.bytesTotal时执行逻辑。这是可行的,它确实到达了那里,但是随后loader.contentLoaderInfo.applicationDomain.getDefinition()在SWF

我有一个ActionScript3项目,其中我使用
加载程序
加载外部SWF。在Chrome中,Flash播放器不会触发
事件。如果SWF的大小大于32768字节,则完成
!你知道为什么或者如何解决这个问题吗


我尝试使用
ProgressEvent.PROGRESS
并在
event.bytesload==event.bytesTotal
时执行逻辑。这是可行的,它确实到达了那里,但是随后
loader.contentLoaderInfo.applicationDomain.getDefinition()
在SWF中找不到类。

似乎只有将事件侦听器作为弱引用添加时才会出现此问题。删除弱引用解决了问题。

可能是因为这是限制(尽管我没有找到任何与此相关的文档)。如果这是允许的最大大小,那么您可能需要将这个大SWF拆分为多个SWF。@taskinoor,SWF最终会加载。在侦听
ProgressEvent.PROGRESS
时,我可以看到它加载并到达
event.bytesload==event.bytesTotal
的点。但是,
Event.COMPLETE
永远不会触发。这个问题只发生在Chrome上。也可能是Chrome的bug。我也想看到这个问题的可靠答案。@taskinoor,可能是。progress变通方法正在发挥作用,但我认为Flash在发出
Event.COMPLETE
之前做了一些额外的事情,这让我可以从SWF实例化类。也许有另一种方法可以在我用来监听
ProgressEvent.PROGRESS
的回调中实现这一点?是的,可能是垃圾收集器在加载程序完成之前删除了它。我认为Flash Player有一种特殊情况,即具有强事件侦听器的加载程序将保留在内存中(尽管这与引用的工作方式相反。保存对其他内容的引用的调度程序不应将调度程序保留在内存中)。更好的方法是让其他东西引用加载程序。类中的成员变量是好的,也可以将其添加到显示列表中。