到目前为止,在极少数情况下,我需要使用HTML进行通信,而我一直在使用ExternalInterface。


FlashVars是否被认为是更好/更坏或更新/更老的做法?
或何时使用其中一个?我应该遵循什么逻辑来帮助我决定使用哪一个?

最佳答案

FlashVars并不好坏。只是不同而已。它允许您在加载时将一些数据传递到swf。如果您需要的只是最初为您传递一些上下文,那么FlashVars就是您想要的。

现在,如果您需要瑞士法郎与其主机(在大多数情况下是可以运行Javascript的网络浏览器)之间进行更多交互,则可以使用ExternalInterface来提供帮助。

如果要将数据从swf传递到主机,请从AS端使用ExternalInterface.call并在html上设置相应的JS函数。如果通信相反,请从AS端使用ExternalInterface.addCallback,并使用JS函数在html上调用此回调。当然,如果需要,可以同时使用call和addCallback。不过,大多数情况下,我只使用ExternalInterface.call,因为我主要使用此机制来调用Google Analytics(分析)或某些其他跟踪系统。

ExternalInterface的一个重要方面是,要使其成功,必须加载处理通信的swf和JS代码。如果仔细考虑一下,这是显而易见的,但如果不考虑这一点,则可能导致问题。也就是说,如果从JS中调用一个尚未在swf中添加为回调的函数,那么……将不会被调用。反之亦然,尽管实际上很少见。

09-05 02:08