JavaScript and SWF communication

JavaScript and SWF communication

本文关键字:communication SWF and JavaScript      更新时间:2023-09-26

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

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

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

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

我还强烈建议您将播放/暂停等功能直接合并到您的Flash程序中-真的没有必要为此使用JavaScript !

但是如果你必须使用JS,你可以通过创建一个内部预加载器来显示加载进度,或者将外部swf加载到相同的应用程序域中(然而如果你不使用JS,你就不需要担心应用程序域),或者使用SWFBridge在两个独立的swf之间建立双向通信。

内部预加载器是一个相当整洁的解决方案,如果你想把所有的数据嵌入到一个文件中-以不得不创建额外的帧为代价,并且不得不考虑在FLA中确切地放置类实例的位置(你不能使用"嵌入到帧1")。

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

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