JavaScript和SWF通信

时间:2011-12-13 06:20:47

标签: javascript javascript-events flash communication

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

如果文件已完全加载,我该如何理解?

我尝试了很多解决方案,但没有一个成功。首先,我尝试在flash中创建一个preloader并加载我的外部swf然后使用externalinterface在完成事件上向JavaScript发送消息,它工作正常,但我不能再通过JS与主swf Action Scripts进行通信。

我找到了一些应该触发事件的JavaScript库,当文件加载但是加载成功时(swf文件就在那里并开始加载)。

1 个答案:

答案 0 :(得分:0)

我还强烈建议您将播放/暂停等功能直接合并到Flash程序中 - 实际上不需要使用JavaScript!

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

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

加载到同一个应用程序域更加优雅,特别是如果您主要使用Flash IDE进行编码(而不是设计),或者无论如何都有外部数据。此外,它是创建模块化应用程序的好方法。

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