• 締切済み

FLASH/一定時間停止後、再生されるscript

flash CS4/ActionScript3.0にてサイトローテーションバナーを制作しております。 ムービークリップ「btn1_mc」をクリックするとフラッグ「scene1」を再生し、 「btn1_mc」にポインタが乗った時は一定時間停止し、再生されるという動きを作りたいのですが、初心者のため、うまくActionScriptが書けません。 setTimeout関数を使えば良いということはわかったのですが… 下記コードに書き加え、実装する方法を教えていただければ助かります。 よろしくお願いします。 btn1_mc.addEventListener(MouseEvent.CLICK,btn1Click); btn1_mc.addEventListener(MouseEvent.ROLL_OVER,btn1Over); btn1_mc.addEventListener(MouseEvent.ROLL_OUT,btn1Out); btn1_mc.buttonMode=true; function btn1Click(evt:MouseEvent):void{ gotoAndPlay("scene1"); } function btn1Over(evt:MouseEvent):void{ gotoAndStop("scene1"); btn1_mc.gotoAndStop(2); } function btn1Out(evt:MouseEvent):void{ gotoAndPlay("60"); btn1_mc.gotoAndStop(1); }

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

一応は Timer クラスを使う方をお薦めしますが ご質問に setTimeout 云々とあるので 両方とものスクリプトを書いておきます。 ※削除や訂正部分はなく追加のみです。   その追加部分には ▼ 印を付けました。       ◎Timer クラスを使う方法 ------------------------ btn1_mc.addEventListener(MouseEvent.CLICK,btn1Click); btn1_mc.addEventListener(MouseEvent.ROLL_OVER,btn1Over); btn1_mc.addEventListener(MouseEvent.ROLL_OUT,btn1Out); btn1_mc.buttonMode = true; //▼2000ミリ秒(2秒)後に1回実行するTimerを作成 var timer1:Timer = new Timer(2000,1); //▼指定時間後に関数 timerHandler1 を実行する timer1.addEventListener(TimerEvent.TIMER, timerHandler1); //▼関数 timerHandler1 の定義 function timerHandler1(e:TimerEvent):void{ //▼このタイムラインの再生を開始 play(); } function btn1Click(evt:MouseEvent):void { gotoAndPlay("scene1"); //▼タイマー停止 timer1.stop(); } function btn1Over(evt:MouseEvent):void { gotoAndStop("scene1"); btn1_mc.gotoAndStop(2); //▼タイマースタート timer1.start(); } function btn1Out(evt:MouseEvent):void { gotoAndPlay("60"); btn1_mc.gotoAndStop(1); //▼タイマー停止 timer1.stop(); } ------------------------       ◎setTimeout を使う方法 ------------------------ btn1_mc.addEventListener(MouseEvent.CLICK,btn1Click); btn1_mc.addEventListener(MouseEvent.ROLL_OVER,btn1Over); btn1_mc.addEventListener(MouseEvent.ROLL_OUT,btn1Out); btn1_mc.buttonMode = true; //▼setTimeout用のID番号を入れる変数を宣言 var ID1:uint; //▼関数 timeoutHandler1 の定義 function timeoutHandler1():void{ //▼このタイムラインの再生を開始 play(); } function btn1Click(evt:MouseEvent):void { gotoAndPlay("scene1"); //▼setTimeoutの呼び出しをキャンセル clearTimeout(ID1); } function btn1Over(evt:MouseEvent):void { gotoAndStop("scene1"); btn1_mc.gotoAndStop(2); //▼2000ミリ秒(2秒)後に関数 timeoutHandler1 を実行 ID1 = setTimeout(timeoutHandler1,2000); } function btn1Out(evt:MouseEvent):void { gotoAndPlay("60"); btn1_mc.gotoAndStop(1); //▼setTimeoutの呼び出しをキャンセル clearTimeout(ID1); } ------------------------  

関連するQ&A