FlashVars或ExternalInterface

Kam*_*amo 2 apache-flex flash adobe actionscript-3 externalinterface

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

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

Jua*_*ano 7

FlashVars并不是更好或更糟.这是不同的.它允许您在加载时将一些数据传递给您的swf .如果你需要的只是最初通过swf一些上下文,FlashVars就是你想要的.

现在,如果您需要在swf和它的主机之间进行更多交互(在大多数情况下是可以运行Javascript的Web浏览器),ExternalInterface可以提供帮助.

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

ExternalInterface的一个重要方面是,为了使它成功,必须加载swf和处理通信的JS代码.如果您考虑一下这一点,这很明显,但如果您不考虑它,可能会导致问题.也就是说,如果从JS中调用一个尚未在swf中作为回调添加的函数,那么......它将不会被调用.反过来也是如此,尽管在实践中它更为罕见.