- ベストアンサー
別のファイル.swfへジャンプは可能?
私がしたいことは ファイルA.swfのタイムフレームから 別のファイルB.swfのフレームへジャンプさせたいの ですがどうすればよろしいでしょうか? わかるかたぜひよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
A.swfとB.swfはHTMLに貼るんですよね? ボタンは不要ということであれば A.swfの最後に this.stop(); //B.swfのmy_obj.msgという変数に"play"という値をセット getURL("javascript:window.document.B.SetVariable('_root.my_obj.msg','play')"); B.swfの先頭に this.stop(); //オブジェクトの監視 var my_obj:Object = new Object(); my_obj.msg = ""; //JavaScriptを介してmy_obj.msgの値が変更されたら呼び出される。 function fun_msg(prop, oldVal, newVal, speedLimit) { if (newVal == "play") { _root.gotoAndPlay(2); } } my_obj.watch("msg", fun_msg, ""); で出来ます(確認済み)。 #1でも書いたようにHTMLのB.swfを貼るタグの <OBJECT id="B" classid…> <EMBED name="B" src…> の部分を確認してください。
その他の回答 (1)
- perse
- ベストアンサー率74% (113/152)
同一のHTMLにA.swfとB.swfがあり、 A上のボタンを押すとBでアクションが起こるという事でしたら、JavaScriptを介してデータを渡すことが出来ます。 <OBJECT id="B" classid…> <EMBED name="B" src…> に設定したとすると (Bという名前でFlashを保存してHTMLをパブリッシュ時に吐き出せば勝手にそういう名前がつきます)、 A.swfに on (release) { getURL("javascript:window.document.B.SetVariable('_root.msg','メッセージ')"); } と記述することでこの場合 Bの_root.msgに"メッセージ"がセットされます。 Object.watch等で監視すれば渡ってきたときに対処しやすいと思います。 やりたいこと違ってたらすいません。 ↓消されていたら"Flash javascript SetVariable j2fla"をキーワードに検索してみてください。
補足
ご回答ありがとうございます。 私の質問を継ぎ足しますと ボタンは使用しません。 単に A.swfのタイムフレームを再生し終了したとき、つまり最後のstop() のフレームに到達すると別のファイルの B.swfのタイムフレーム最初のキーフレームへjump 、再生ということしたいです。 A.swf再生開始→A.swf再生終了→B.swfの最初のフレームへjump→B.swf再生開始→B.swf再生終了 それにはA.swf再生終了時キーフレームもしくはライブラリにてアクションスクリプトプログラムが必要とおもうのですがどういうふうに書けばいいかおしえてください。 ちなみにA.swfとB.swfは同じディレクトリ内です。 使用Flash MX6 よろしくおねがいします。
お礼
ありがとうございます。 試してみますので、わからなければまた質問します。
補足
一旦締め切らせていただきます ご回答ありがとうございました。 多忙なためまだ試していませんが、後日確認しようとおもっています。大変な参考ありがとうございました。