- ベストアンサー
ホームページでFlash読み込み後、フォームのテキストボックスにメッセージを表示させたいです。
大きなFlashファイルを読み込みが済んだ時点でJavascriptからそれがわかるイベントってあるのですか? ホームページでFlash読み込み後、フォームのテキストボックスにメッセージを表示させたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
当たり前の話ですが, 何から何まで,一々外部 JavaScript に知らせるようなものは Flash には用意されていません。 そういうしくみは自分で作る物です。 例えば, 「ボタンをクリックしたとき」 「ムービークリップからマウスが離れたとき」 「外部ファイルをロードしたとき」 「生成ヘッドが フレーム10 に来たとき」 「マウスが動いたとき」 … など … など … そういうときに, getURL や fscommand などで,JavaScript の関数を実行させれば良いのです。 例えばこのようなページが参考になります↓。 「Now Loading作り方」 http://www.1art.jp/flash/le/lesson38/lesson38.htm 上のページでは, 1フレーム進む時間ごとに毎回,getBytesLoaded();(ロードしたバイト数) を取得して, getBytesTotal(); (トータルバイト数) と getBytesLoaded(); が等しくなったとき > if (nowLoadedSize == 100) { > _root.play(); > } で,_root のフレームを再生開始させています。 _root のフレームを再生開始させるのではなく, getURL で JavaScript の関数を呼び出せば良いわけですね。 またその getURL で JavaScript の関数を呼び出す方法は, 次のページが参考になるかもしれません。 「Flash から JavaScript でサイズ指定した HTML ウィンドウを開く」 http://yoshiweb.net/blog/?itemid=18 ===私が作った簡単なサンプル================== まず,HTML のソースコード↓。 ----------------------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>Flashロード完了時にテキストを表示</title> <script language="JavaScript"> function hyoujiText() { myForm.myText1.value = "Flashがロードされました!"; } </script> </head> <body> <p> ~ ここに SWF を表示させるタグを書く ~ </p> <p> <form name="myForm"> <p><input type="text" name="myText1" size="80"></p> </form> </p> </body> </html> ----------------------------------------------- 上の HTML に表示させる Flash の, _root のフレーム1 に書くスクリプト↓。 ----------------------------------------------- // 1フレーム進む時間ごとに毎回実行 _root.onEnterFrame = function() { // ロードされたバイト数がトータルバイト数以上になれば if (_root.getBytesLoaded()>=_root.getBytesTotal()) { // ★JavaScript の hyoujiText() を実行 getURL("javascript:hyoujiText();"); // この onEnterFrame を削除 delete _root.onEnterFrame; } }; -----------------------------------------------