- 締切済み
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); }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
一応は 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); } ------------------------