2010-12-12 79 views
1

啓用功能,我想知道是否有可能根據在ActionScript Flash Player版本啓用/禁用一些代碼片段3.AS3:根據Flash Player版本

假設;我有一個使用flash.media.Microphone的自定義類customClass。 Microphone類的屬性isSupported可用於Flash Player 10.1及更高版本(如文檔中所述)。我在customClass實現此屬性...所以:

我需要像這樣(通過內置的Capabilities.version檢查):

if (version >= 10.1) { 
    trace(_mic.isSupported); //this will throw an error if the debug version is not 10.1 or later 
} else { 
    doSmthElse(); 
} 

是有辦法做到這一點?

回答

2

這是我知道的唯一途徑:隨着syntaxt驗證器的托架訪問

if (version >= 10.1) { 
    trace(_mic["isSupported"]); //this will throw an error if the debug version is not 10.1 or later 
} else { 
    doSmthElse(); 
} 

不會嘗試檢查是否有方法或屬性預先定義(在加載時,我認爲)。所以你的代碼只能在運行時進行評估,如果它真的在運行。

+0

謝謝..這有助於至少..我也想通過hasOwnProperty(..)仔細檢查。 – 2010-12-12 22:02:09

+0

我認爲你可以做你的JavaScript版本檢查,並使用ExternalInterface API從js接收msg在Flex中,並具有開關盒功能來啓用/禁用功能。 – Ryan 2010-12-13 18:05:00

+0

@Brian Bishop。我想你可以,但我認爲這只是更多的工作,沒有真正的好處。問題是沒有檢測到當前版本,這在Actionscript中是微不足道的。問題在於驗證器在加載swf時驗證屬性是否已定義(取決於播放器的版本)。所以如果你寫了'_mic.isSupported',這會在版本<10中產生一個錯誤,*不管你是否真的運行這段代碼*。 – 2010-12-13 19:45:57