2009-11-13 83 views
0

为什么Adobe不遵循自己的建议并让Captivate swf侦听自己的UNLOAD事件,并清理其所有定时器,事件侦听器,外部参考等如何从Adobe Flash Player 9(而不是10)干净地卸载Adobe Captivate SWF

我找到它非常难以得到一个Adobe Captivate瑞士法郎一旦加载与装载机加载的Flash播放器的内存。显然,unloadAndStop方法在Flash Player 9中不可用,所以请不要提及,除非您有相应的方法的actionscript源代码,它将在Flash Player 9中工作。

我试过将Loader.content [“rdcmndRewindAndStop”]设置为1,以使Captivate文件倒带并停止。那么多的作品,但后来我看到在调试器输出卸载该内容仍然挂在内存响应某些事件后的内容:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
at captivate.Veela_AS3::rdAVM1SwfLoader/getLoadBase() 
at captivate.Veela_AS3::rdAVM1SwfLoader/onload() 
at captivate.Veela_AS3::rdAVM1SwfLoader/initItemVariables() 
at captivate.Veela_AS3::rdItem/frame1() 

回答

1

即使Flash Player 10和什么也没有发生的unloadAndStop方法,但迷人的电影被加载,内存使用被追踪到一个文本字段,并强制垃圾收集,我可以看到captivate文件不会卸载,即使在最简单的情况下

我正在考虑把captivate文件并从一个单独的安全域,服务器的子域加载它们,并会尝试这一点。如果有人有成功,我想知道。

感谢,

KB

+0

5年后,在Google搜索期间,我再次遇到问题并意识到自己是作者。 2014年,令人着迷的电影仍然无法正常卸载。 – Triynko 2014-01-30 08:03:59

0

最近不得不面对同样的问题,我是用更新闪“内容播放器”闪光灯也做任务。问题是他们现在想要播放已经作为SWF发布的Captivate内容。

我通过将Captivate卸载问题加载到他们自己的另一个Flash文件副本中来解决它。

所以我必须:

  • ContentPlayer.fla
  • CaptivateLoader.fla
  • Captivate.cptx

任何时候,一个新的Captivate需要加载,而不是ContentPlayer加载一个新的CaptivateLoader.swf的副本,并告诉它加载Captivate.swf。当contentPlayer卸载之前的CaptivateLoader.swf时,它加载的任何东西都会被它破坏。

相关问题