0

为什么 Adob​​e 不遵循他们自己的建议并让 Captivate swf 侦听其自己的 UNLOAD 事件,并清理其所有计时器、事件侦听器、外部引用等。

一旦使用 Loader 加载,我发现从 Flash 播放器的内存中获取 Adob​​e Captivate swf 非常困难。很明显,unloadAndStop 方法在 Flash Player 9 中不可用,因此请不要提及这一点,除非您拥有可在 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()
4

2 回答 2

1

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

我正在考虑放置迷人的文件并从单独的安全域、服务器的子域加载它们,并将尝试一下。如果有人成功了,我想知道。

谢谢,

KB

于 2009-12-03T19:31:49.883 回答
0

最近不得不处理同样的问题,我的任务是更新一个同样用 Flash 制作的 Flash“内容播放器”。问题是他们现在希望它播放已作为 SWF 发布的 Captivate 内容。

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

所以我有:

  • 内容播放器.fla
  • CaptivateLoader.fla
  • 迷人的.cptx

任何时候需要加载新的 Captivate 时,ContentPlayer 都会加载 CaptivateLoader.swf 的新副本,并告诉它加载 Captivate.swf。当 contentPlayer 卸载之前的 CaptivateLoader.swf 时,它加载的任何内容都会随之销毁。

于 2017-06-02T17:06:15.543 回答