FlashMXでウェイト処理
数秒間のウェイトを入れたいとき、
[frame 1]--------------------------
start = getTimer();
limit = 2000;
[frame 3]--------------------------
if( getTimer() > start + limit ){
gotoAndPlay( _currentFrame +1 );
}else{
gotoAndPlay( _currentFrame -1 );
}
というようにぐるぐる回しているのですが、頻繁に使う処理なので
サブルーチンにしようと思います。
ルートのタイムライン 1フレーム目に
function wait( start, limit, nowframe ){
if( getTimer() > start + limit ){
gotoAndPlay( nowframe +1 );
}else{
gotoAndPlay( nowframe -1 );
}
}
と書きムービークリップの中から
wait( start(前のフレームで定義), 2000, _currentFrame );
呼び出したのですが、goto先がムービークリップの中ではなく
ルートタイムライン上のフレームになってしまいます。
よくよく考えれば当たり前です。
goto~をサブルーチン化して、呼び出し元のタイムラインに対し
処理させるということは出来ないのでしょうか。