到目前为止,我一直在使用ExternalInterface,在非常少见的情况下,我需要与HTML进行通信。
发布于 2010-07-11 15:15:19
FlashVars不是好是坏。只是不一样。它允许您在加载时将一些数据传递给swf。如果您所需要的只是最初为您传递一些上下文,那么FlashVars就是您想要的。
现在,如果您需要在swf和它的主机之间进行更多的交互(在大多数情况下,这是一个可以运行Javascript的web浏览器),那么ExternalInterface是有帮助的。
如果您想将数据从swf传递到主机,请使用ExternalInterface.call,并在您的html上设置相应的JS函数。如果通信是相反的,请从ExternalInterface.addCallback的右侧使用JS函数,该函数在html上调用此回调。当然,如果需要的话,可以同时使用call和addCallback。不过,大多数情况下,我只使用ExternalInterface.call,因为我主要使用这种机制来调用google或其他一些跟踪系统。
ExternalInterface的一个重要方面是,要使它成功,必须加载您的swf和处理通信的JS代码。这是显而易见的,如果你想一秒钟,但如果你不解释它可能导致问题。也就是说,如果从JS调用一个尚未作为回调添加到swf中的函数,那么.不会叫它的。相反的情况也是如此,尽管在实践中这是比较罕见的。
https://stackoverflow.com/questions/3223152
复制相似问题