1 フレ遅らせて実行する


AS2 の CASA FrameworkFrameDelay みたいなん、AS3 でないのんかと聞かれたのですけど知らん&見つからんかったので作りました。Thread つかうほどじゃないけどちょっと遅らせて実行しなきゃならないときはお使いくだせい。ダウンロードはこちら。

package net.saqoosha.util {

    import flash.display.Sprite;
    import flash.events.Event;

    public class FrameDelay {

        public function FrameDelay() {
            throw new ArgumentError('Cannot create FrameDelay instance.');
        }

        private static var _enterFrame:Sprite;

        public static function delay(target:Object, func:Function, ...args):void {
            if (!_enterFrame) {
                _enterFrame = new Sprite();
            }
            _enterFrame.addEventListener(Event.ENTER_FRAME, function (e:Event):void {
                _enterFrame.removeEventListener(Event.ENTER_FRAME, arguments.callee);
                func.apply(target, args);
            });
        }
    }
}