2011-01-05 25 views
0

我一直在使用swfobject最近的一個項目,它的偉大。但是現在我已經設法使FlashSwitcher在Firefox中運行,我注意到當我運行Flash Player 7時,我運行的版本低於我指定的版本時顯示的信息已經定製(在本例中是由Moodle頁面的swfobject嵌入代碼位於)。附件是由Moodle生成的輸出SWF的屏幕截圖。我可以確認我的一些用戶也看到了這一點,所以我的FlashSwitcher運行正常。如何使用swfobject 2.1自定義「舊版本」的SWF輸出?

我大部分的用例之外Moodle的背景下,他們是獨立的,我後正是他們如何定製它,我怎樣才能改變自己的定製,我怎麼可以這樣做時, swfobject檢測是獨立的。

請注意,強制用戶通過ExpressInstall升級其Flash Player插件已被客戶所詬病,他們需要提示性操作和鏈接 - 但沒有自動安裝或類似操作。

我的實現使用'兩次煮熟'的方法,因爲我有一個可訪問性要求來顯示非Flash內容,如果用戶沒有Flash,Javascript或兩者兼而有之。這裏是我的嵌入方法調用,當YUI2文檔加載事件觸發其執行:

swfobject.embedSWF("../../swf/video-loader.swf", "flash_object_a", "877", "400", "8.0"); 

最後,我想自定義這個「老版」輸出到東西我已經創建/寫入。

Screenshot of swfobject 2.1 old version notification when in a Moodle context

歡呼聲, d

回答

1

可以使用的SWFObject的getFlashPlayerVersion方法(解釋here)來檢查Flash Player版本,並採取適當的行動。

一個簡單的例子是:

var has_version_8_or_greater = swfobject.hasFlashPlayerVersion("8"); 

if(has_version_8_or_greater){ 
    //embed SWF using SWFObject 
} else { 
    //Check to see whether an older version of Flash is found. 
    var version = swfobject.getFlashPlayerVersion(); 
    if(version.major > 0){ 
     //You have Flash but it's too old. 
     var version_str = version.major + "." + version.minor + "." + version.release; 
     alert("You have Flash Player version " + version_str + ". Please update!"); 
    } else { 
     //You don't have Flash. 
    } 
} 
+0

這在理論上完美的作品,謝謝pipwerks - 我給它的情況下,什麼都回答之前一兩天大作不過,因爲當我加載頁面在Firefox(3.6.13)中使用FlashSwitcher時,它會執行has_version_8_or_greater條件爲true - 儘管我聲稱運行的是版本7.所以我打開了Adobe Flash檢測工具包,並且它提醒了版本8(也是'不正確的' ),並且由此產生的AS檢測隨後跟蹤版本7(正確)。我將其稱爲FlashSwitcher錯誤,並且現在使用AS版本檢測來打印過期警告。 – danjah 2011-01-05 20:43:59

+0

哦,並清除了更多的東西 - 使用FlashSwitcher之前,Firefox安裝了最新的FP10構建,而不是V8:P – danjah 2011-01-05 20:44:59

+0

好吧,現在在幾個盒子上測試你的答案,工作正常,謝謝:) – danjah 2011-01-05 22:11:32