是否有一種方法(在JavaScript中)檢測嵌入式.swf是否使用Flash Professional或Flex創建的。如何檢測嵌入式swf是否使用Flex中的Flex或Flash創建的
我們有一個包含多個選項卡的頁面,每個選項卡都可以包含一個.swf文件。所有選項卡都在相同的HTML文件中定義,當包含選項卡變爲活動狀態時,JavaScript框架在swf上調用.rewind()和.play()。
這對於常規Flash動畫非常有用,確保它們在打開標籤時從頭開始播放。然而,在用Flex創建的SWF中,倒帶和播放對Flex框架造成嚴重破壞,應用程序無法加載。
我們想出來檢測Flex的最佳方式是計算.swf擁有的幀數。用flex總是2.但這聽起來不是最好的方式。
我們也試圖與ExternalInterface的在Flex應用程序預初始化事件添加的回調方法。不幸的是,這個事件在應用程序啓動時被稱爲相當晚,並且javasctipt代碼在Flex代碼添加之前檢查回調。
是否有任何其他方式來檢測(從JavaScript)如果.swf是使用Flex創建的?
是的,試圖通過ExternalInterface添加回調。問題是,我最快可以使該功能可用於應用程序預初始化。我希望Flex框架添加它自己的回調。但是我瀏覽了SDK資源並沒有發現這樣的事情。我不認爲有一種方法可以在SystemManager,Preloader或DownloadPreferralBar中插入代碼... – Jochen 2011-04-15 15:47:47
爲什麼不在加載時自動播放?另外,如果您想要控制swf auto是否播放,可以使用[FlashVars](http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf626ae-7feb)。HTML),這是很容易與SWFObject實現。 – 2011-04-15 15:54:04
事情是,我的同事照顧的Javascript部分,我不完全確定他爲什麼這樣做。此外,問題的一部分是,實際的HTML頁面是從使用另一個工具創建的內容生成的。但實際上有一種方法可以添加一個自定義的DownloadProgressBar。這樣,回調(isFlex())可以在Flex啓動序列的早期添加。我會在稍後發佈解決方案 – Jochen 2011-04-15 16:15:32