AS2版をむかーし晒したんですがそれをAS3に作り替えた。
ただ単純にタイムラインを止めておいて、設定した秒数後にまた走らせるだけのクラス。世間ではいろんな高機能クラスライブラリを公開している方々が群雄割拠する中、どうなんだろう、これ。
でも気にしない。
package com.nrd_studio
{
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.display.SimpleButton;
public class Staytime extends MovieClip
{
private static var _target:MovieClip;
private static var _counter:Number;
private static var timer:Timer = new Timer(0);
public static function wait(target:MovieClip, counter:Number):void
{
_target = target;
_counter = counter*1000;
_target.stop();
timer.delay = _counter;
timer.start();
timer.addEventListener(TimerEvent.TIMER, timerHandler);
}
static function timerHandler(e:TimerEvent):void
{
timer.reset();
_target.play();
}
public static function cancel():void
{
timer.stop();
timer.reset();
_target.play();
}
}
}
止めたいフレームで
Staytime.wait([止めたい対象],[止めたい秒数]); //example Staytime.wait(this,3);
強制的に停止を解除してタイムラインを走らせたい場合は別途ボタンとか使ってcancel()メソッドを呼び出す。
btn.addEventListener(MouseEvent.CLICK, clicked);
function clicked(e:MouseEvent):void
{
Staytime.cancel();
}

コメントする