- ベストアンサー
FLASHでボタンを押すと、FLASHムービーが再生から停止までいくようにする方法
- FLASHでボタンを押すと、連続的にムービーが再生され、最後のフレームで停止する方法について解説します。
- フレーム数を右下に表示させる方法についても説明します。
- FLASH初心者の方でも簡単に実装できるアクションスクリプトを使用した方法です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
以下に1つの例を書きます。 ◎ファイル階層構造 任意のフォルダ ├ ○○.html (○○.swf を表示) ├ ○○.swf (親の Flash) ├ aaa.swf ├ bbb.swf └ ccc.swf ◎「○○.swf」内の手動配置インスタンスの階層構造 rootなど任意の階層 ├ load_mc(外部SWFを配置するムービークリップ) ├ load_btn (外部SWFのロードを開始させるボタン) └ frame_txt (外部SWFの再生フレーム表示テキストフィールド) ※load_mc,load_btn,frame_txt はインスタンス名 ※下図↓ も参照のこと ◎///rootなどの階層のフレームに書くスクリプト//////////////////// //外部SWFファイル名登録用配列の作成 var swf_arr:Array = new Array(); swf_arr.push("aaa.swf"); swf_arr.push("bbb.swf"); swf_arr.push("ccc.swf"); //カウント用変数 cnt を用意 var cnt:int = 0; //Loaderインスタンス swf_ldr を作成 var swf_ldr:Loader = new Loader(); //「load_mc」 内に 「swf_ldr」 を配置 load_mc.addChild(swf_ldr); //「load_btn」にイベントリスナーを登録(クリック時実行,実行関数loadSWF) load_btn.addEventListener(MouseEvent.CLICK,loadSWF); //関数 loadSWF を定義 function loadSWF(evt:MouseEvent):void { //変数 my_str に SWFファイル名配列 の cnt 要素を代入 var my_str:String = swf_arr[cnt]; //URLRequest に my_str をセット var my_url:URLRequest = new URLRequest(my_str); //Loaderインスタンス swf_ldr にその SWF をロード swf_ldr.load(my_url); //もし cnt が SWFファイル名配列 の最終要素未満であれば if (cnt<swf_arr.length-1) { //cnt に 1 を加算 cnt++; } else { //そうでない場合は cnt を 0 に戻す cnt=0; } //「load_btn」 ボタン機能を無効にする evt.target.mouseEnabled = false; } //この階層にイベントリスナーを登録(毎フレーム実行,実行関数watchFrame) this.addEventListener(Event.ENTER_FRAME,watchFrame); //関数 watchFrame を定義 function watchFrame(evt:Event):void { //ロードした SWFコンテンツ をムービークリップに変換 var my_mc:MovieClip = MovieClip(swf_ldr.content); // もし myMC が null でない場合 if (my_mc != null) { // SWFコンテンツの再生フレームを frm に代入 var frm:int = my_mc.currentFrame; // 「frame_txt」 にSWFコンテンツの再生フレームを表示 frame_txt.text = frm; // もし SWFコンテンツの再生フレームが最終フレーム になれば if (frm == my_mc.totalFrames) { // SWFコンテンツの再生を停止 my_mc.stop(); // 「load_btn」 ボタン機能を有効にする load_btn.mouseEnabled = true; } } } /////////////////////////////////////////////////////////////////// ↑コピペ可能です。
お礼
投稿者です。 丁寧なご説明ありがとうございます。 まだ試してはいないのですが、 丁寧な回答に感動し、早速メールさせていただきました! ありがとうございます。 参考にやってみて、またお返事させていただきます!!