Flashプレイヤーの読み込みを待つ

25 10月

Flash の読み込みを待つことが時々あります。今回 Internet Explorer で,ページを開いた直後に,Flash の通信機能を使う必要があって,そのままでは,Flash の読み込みがまだ完了していませんでした。そこで,下記のようなコードを書きました。

 下記のコードの前に, Flash を読み込むコードがあります。Flash の名前は poweredbyflash です。

最初に Internet Explorer かどうか確認しています。その後,再帰的な関数を定義します。
その関数の中で,まず,flash というオブジェクトを定義しています。次に時間稼ぎなのですが fadeOut, fadeIn を使用します。 $("#wait") とは,Flash のロード中であることを示すために,表示させる div です。これを明滅させて,ハングアップしているわけではないと利用者に知らせます。明滅を繰り返している途中で,flash のメソッドを確認して(flash.sendRequest)準備が整っていれば,startup() へと処理を移します。まだであれば,再帰をかけます。
 下の方に,Internet Explorer でない場合の処理があります。

if (/*@cc_on!@*/false) {

var kaeru = function matu() {

var flash = (navigator.appName.indexOf ("Microsoft") !=-1)?window["poweredbyflash"]:document["poweredbyflash"];


$("#wait").fadeOut(1000);

$("#wait").fadeIn(1000,function() {

if (typeof(flash.sendRequest) != 'function') {

return matu();

} else {

$("#wait").fadeOut(1000,function() {

$("#wait").hide();

startup();

});

}

});

}

kaeru();

} else {


	$("#wait").fadeOut(1000,function() {

	$("#wait").hide();

	startup();

	});

}