2011-12-13 53 views
0

我有一個相當大的交互式swf文件,並使用SWFObject將文件嵌入到我的HTML中。我可以通過JavaScript與swf溝通,並且它完美地工作。但它沒有預加載器,並且由於文件很大,我想要顯示加載圖像或swf,並在文件加載完成時使用JavaScript顯示我的播放按鈕。JavaScript和SWF通信

我該怎麼理解,如果文件被完全加載?

我嘗試了一堆解決方案,但沒有一個成功。首先,我試圖在Flash中創建預加載器並加載我的外部swf,然後使用externalinterface向完整事件發送消息給JavaScript,它工作正常,但我無法通過JS與主SWF Action Scripts進行通信。

我發現了一些JavaScript庫,當文件被加載時,它應該觸發一個事件,但是當加載成功時(swf文件在那裏並開始加載)時發生。

回答

0

我也強烈建議你將你的play/pause等功能直接加入到你的Flash程序中 - 實際上並不需要使用JavaScript!

但是,如果你必須使用JS,你可以顯示通過創建internal preloader,或loading an external swf into the same application domain(而如果你不使用JS,你不必擔心應用程序域),或使用SWFBridge加載進度在兩個獨立的SWF之間建立雙向通信。

如果您希望將所有數據嵌入到一個文件中,那麼內部預加載器是一個相當整潔的解決方案 - 不得不創建額外的框架,並且必須考慮將您的類實例放在哪裏FLA(您不能使用「嵌入第1幀」)。

加載到相同的應用程序域更優雅,特別是如果您主要使用Flash IDE進行編碼(而不是設計),或者如果您有外部數據。另外,這是創建模塊化應用程序的好方法。

SWFBridge是真的好,如果你有ActionScript 2個的主權財富基金,或舊文件,而不直接提供源代碼 - 但如果你需要的是一個簡單的預加載器和一些JavaScript,我可能不會在這種情況下使用它。