【问题标题】:JavaScript and SWF communicationJavaScript 和 SWF 通信
【发布时间】:2011-12-13 06:20:46
【问题描述】:

我有一个相当大的交互式 swf 文件,该文件使用 SWFObject 嵌入到我的 HTML 中。我可以通过 JavaScript 与 swf 进行通信,并且运行良好。但它没有预加载器,因为文件很大,我想显示加载图像或 swf,当文件完全加载时,使用 JavaScript 显示我的播放按钮。

如果文件完全加载,我怎么理解?

我尝试了很多解决方案,但都没有成功。首先,我尝试在 Flash 中创建一个预加载器并加载我的外部 swf,然后使用外部接口在完成事件时向 JavaScript 发送一条消息,它可以工作,但我无法再通过 JS 与主 swf 动作脚本通信。

我发现一些 JavaScript 库应该在文件加载时触发一个事件,但它在加载成功时发生(swf 文件在那里并开始加载)。

【问题讨论】:

    标签: javascript flash dom-events communication


    【解决方案1】:

    我还强烈建议您将播放/暂停等功能直接集成到您的 Flash 程序中 - 确实不需要为此使用 JavaScript!

    但是如果你必须使用JS,你可以通过创建internal preloaderloading an external swf into the same application domain来显示加载进度(而如果你不使用JS,则无需担心应用程序域),或使用SWFBridge 在两个独立的 SWF 之间建立双向通信。

    内部预加载器是一个非常简洁的解决方案,如果您希望将所有数据嵌入到一个文件中 - 代价是必须创建额外的帧,并且必须考虑将类实例放在 FLA 中的确切位置(您不能使用“嵌入到第 1 帧”)。

    加载到同一个应用程序域更优雅,特别是如果您将 Flash IDE 主要用于编码(而不是设计),或者如果您有外部数据。另外,这是创建模块化应用程序的好方法。

    SWFBridge真的如果你有 ActionScript 2 SWF 或没有直接可用源代码的遗留文件 - 但如果你只需要一个简单的预加载器和一些 JavaScript,我可能不会在这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 2012-09-26
      • 2011-06-07
      相关资源
      最近更新 更多