2012-03-04 10 views
1

私はExternalInterface経由でjavascriptを使ってActionscript関数を起動します。ChromeでFlash読み込みチェックを行う方法は?

<script type="text/javascript"> 
var flashvars = {}; 
var params = {}; 
params.allowscriptaccess = "always"; 
var attributes = {}; 
swfobject.embedSWF("/img/tts_langx.swf", "tts_lang", "1", "1", "9.0.0", false, flashvars, params, attributes); 
</script> 

ただし、フラッシュが読み込まれない、またはプレーヤーが使用できない場合、すべてが破損します。だから私はフラッシュをチェックして、それが何らかの理由でロードされていない場合には、そのプロセスの一部だけを抹消したい。

は私が通過チェックを行います。

function thisMovie(movieName) { 
if (navigator.appName.indexOf("Microsoft") != -1) { 
    return window[movieName]; 
} else { 
    return document[movieName]; 
} 
} 

、その後、私が作る:

非常に醜い方法ではなく、Chromeで、FirefoxとSafariで動作します
if(thisMovie('myFlash').theActionscriptFunction==null){...}else{} 

どのようにしてこのチェックを最良の方法で行い、すべてのブラウザについて知ることができますか?

答えて

2

非常に単純な方法は、このようにFlashムービーを変更するには、次のようになります。

(ASにおける負荷リスナーで)映画の負荷は、追加この

とJavaScriptで

if(ExternalInterface.available) { 
    ExternalInterface.call(flashReady); 
} 

function flashReady() { 
    //Your awesome function body here 
} 
+0

私は自分のファンクションをクリックして起動しているので、読み込みに時間がありますが、まだ失敗しています。また、フラッシュプレーヤーがない場合、私はフラッシュパーツなしで知り続ける方法がありません。 – mgPePe

+0

正確に。したがって、 'flashReady'関数から' flashAvailable'というフラグを設定することができます。その後、AS3関数を呼び出す前に、フラグ –

+0

を確認して、はい!それはトリックをした、ありがとうmucho – mgPePe

関連する問題