2010-07-11 47 views
2

在我需要與HTML進行通信的罕見情況下,我一直在使用ExternalInterface。FlashVars或ExternalInterface

  • FlashVars被認爲是更好/更差或更新/更舊的做法嗎?
  • 或者你什麼時候使用其中一種?我應該遵循什麼邏輯來幫助我決定使用哪一個?

回答

7

Flash變數是不是更好或更壞。它只是不同而已。它允許您在加載時間處將一些數據傳遞給您的swf 。如果你只需要通過你最初的swf文件,FlashVars就是你想要的。

現在,如果你需要你的SWF之間更多的互動和它的主機(在大多數情況下是可以運行JavaScript的Web瀏覽器),ExternalInterface的是那裏幫助。

如果你想從SWF到主機傳遞數據,使用ExternalInterface.call從AS側,並設置相應的JS功能在您的HTML。如果通信是相反的,則使用AS端的ExternalInterface.addCallback,並有一個JS函數在你的html上調用這個回調函數。當然,如果你需要的話,你可以使用call和addCallback。但大多數情況下,我只使用ExternalInterface.call,因爲我主要使用這種機制來調用Google Analytics或其他跟蹤系統。

ExternalInterface的一個重要的方面是,它的成功,您的SWF和處理通信的JS代碼都已經被加載。如果你考慮一秒鐘,這是顯而易見的,但如果你不考慮它,可能會導致問題。也就是說,如果你從JS調用一個尚未作爲回調函數添加的函數,那麼它將不會被調用。反過來也是如此,儘管在實踐中更爲罕見。

+0

+1這個答案告訴了我一些東西,謝謝。好問題。我主要使用blazeDS,並且還不需要學習如何使用JavaScript進行連接。現在我已經學會了足夠的工作。 – gMale 2010-07-11 17:05:08