Flashのみで表示中のページの読み込み状況を取得したい
HTML側にJSなどを埋め込んだりせずに
Flash側のみでHTMLページ全体の読み込み状況を知りたい、となって、
調べてみたところ、以下の方法が使用できた。
現在のページの読み込み状況を取得する – JavaScriptプログラミング講座
現在閲覧中のページの読み込み状況を調べるには、document.readyState プロパティを使用します。
以下の文字列が得られます。
- uninitialized – 初期化されていません。ロードが開始されていません。
- loading – ロード中です。
- interactive – DOM オブジェクトの構築は完了しています。画像データなどの読み込みはまだ完了していません。
- complete – すべての読み込みが完了しています。
なので、Flash側からこのプロパティを呼び出せばわかる、となります。
しかしExternalInterface
は関数を呼び出すものなので、
プロパティを直接呼び出すことはできません。なので、関数にくるんで返すようにします。
var state:String = ExternalInterface.call("function(){return document.readyState;}");
これでFlash側からHTMLの読み込み状況を(ある程度)知る事ができます。