- ベストアンサー
AS3.0 Timerで複数のムービークリップをタイミングよく再生する方法
- AS3.0 Timerを使用して、a_mc、b_mc、c_mcの再生タイミングをコントロールする方法を説明します。
- a_mcは再生された1秒後にb_mcを作動させ、b_mcは再生された0.5秒後にc_mcを再生します。
- 提供されたコードは、a_mcが上から下に移動しながらフェードインし、b_mcは上から下に移動しながら回転し、c_mcは上から下に移動します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> a_mcが再生された1秒後にb_mcを作動させ > b_mcが再生された0.5秒後にc_mcを再生 「再生」とは何のことかわかりませんが...。 スクリプトを見る限り「再生」というものは絡んでなくて ムービークリップ自体の座標移動と回転と不透明度変化に見えます。 ムービークリップの再生は関係ないのですよね? 次のような感じでできると思います。 ----------------------------- //各MCの初期設定 a_mc.y = 450; b_mc.y = 450; c_mc.y = 450; a_mc.alpha = 0; //関数a_up の定義 function a_up(event:Event):void { a_mc.y -= 2; a_mc.x-=1; a_mc.alpha+=0.03; if (a_mc.y==200) { a_mc.removeEventListener(Event.ENTER_FRAME, a_up); } } //関数b_up の定義 function b_up(event:Event):void { b_mc.y-=2; b_mc.rotation+=6; if (b_mc.y==200) { b_mc.removeEventListener(Event.ENTER_FRAME, b_up); } } //関数c_up の定義 function c_up(event:Event):void { c_mc.y-=2; c_mc.x+=1; if (c_mc.y==200) { c_mc.removeEventListener(Event.ENTER_FRAME, c_up); } } //a_mcにイベントリスナーを登録(毎フレーム,関数a_upを実行) a_mc.addEventListener(Event.ENTER_FRAME, a_up); //関数cStart の定義 function cStart(evt:TimerEvent):void { //c_mcにイベントリスナーを登録(毎フレーム,関数c_upを実行) c_mc.addEventListener(Event.ENTER_FRAME, c_up); } //Timerクラスのインスタンス「cTimer」を作成 //(500ミリ秒遅延,繰り返し1回) var cTimer:Timer=new Timer(500,1); //指定時間遅延して 関数cStart を実行 cTimer.addEventListener(TimerEvent.TIMER, cStart); //関数bStart の定義 function bStart(evt:TimerEvent):void { //b_mcにイベントリスナーを登録(毎フレーム,関数b_upを実行) b_mc.addEventListener(Event.ENTER_FRAME, b_up); //cTimerスタート cTimer.start(); } //Timerクラスのインスタンス「bTimer」を作成 //(1000ミリ秒遅延,繰り返し1回) var bTimer:Timer=new Timer(1000,1); //指定時間遅延して 関数bStart を実行 bTimer.addEventListener(TimerEvent.TIMER, bStart); //bTimerスタート bTimer.start(); -----------------------------
お礼
ご丁寧に画像まで見せて頂き、ありがとうございます。 なんとか出来ました。 ありがとうございました。