0

フラッシュについてはわかりませんが、小さなアニメーションを作りたいです。私は現在時計を動かしていますが、時間になったらアニメーションを動かして別の機能を実行したいと思っています。その機能には次のものがあります。

private function proceed(signal:Event):voidそのため、時間関数がコマンドを発行した後に開始する必要があります。時間関数でその関数に移動するように命令するにはどうすればよいですか?

private function time(signal:Event):void
        {
            var moment:Date = new Date();
            var time:Number =(moment.getTime() - this.startingmiment.getTime())/1000;
            time_txt.text = String(time);
            if (time> 20){
                proceed();
            }

編集:

そのページに例があっても、setTimeoutの使用方法がわからないか、機能しません。エラー: 未定義の可能性があるメソッド setTimeout の呼び出し。未定義の可能性があるプロパティへのアクセスは、静的型ゲームの参照を通じて行われます。定義 flash:utils が見つかりませんでした。

私はすべてプライベート関数を持っており、接頭辞「this」ですべてを参照しています。だから私は書いた

public function SetTimeoutExample() {
        var intervalId:uint = setTimeout(this.proceed, this.delay);     
    }     

遅延もプログラムの開始時に値が与えられました。intervalID:uint variame の意味がわかりません。他にどこでこれを使用する必要がありますか?

4

1 に答える 1

0

時間を追跡して関数を実行するには、3 つの方法があります。

-1. flash.utils.setTimeout
呼び出す関数と、呼び出す前に待機するミリ秒数を渡します。 setTimeout(myFunction,1000); //call myFunction in 1 second.

-2. flash.utils.Timer. (またはflash.utils.setInterval)

このTimerクラスは、設定された間隔で無期限または設定された回数イベントを送出します。これは、待機中に重要な視覚的な何かがある場合に使用するのに適しています.

var timer:Timer = new Timer(1000,10); //this creates a timer that will fire a total of 10 times, once every second
timer.addEventListener(TimerEvent.TIMER,tickHandler); //listen for the tick
timer.addEventListener(TimerEvent.TIMER_COMPLETE, timerComplete) //TimerEvent is found in the flash.events package
timer.start(); //start the timer.  you can also pause/stop the timer if necessary, or reset it (which stops it and puts the count back to 0)
function tickHandler(e:Event):void {
    //another second has passed, do something
    myTextField.text = timer.currentCount + " seconds have passed";
}

function timerComplete(e:Event):void {
    //timer is done, do something
}

-3. EnterFrameハンドラ。

フレームごとに関数を実行し、経過時間を追跡できます。これは、フレームごとに経過時間に応答する必要がある場合にのみ有効です。

addEventListener(Event.ENTER_FRAME, enterFrame);
var startTime:Number = flash.utils.getTimer();
function enterFrame(e:Event):void {
    myTextField.text = (flash.utils.getTimer() - startTime) + " miliseconds have passed";
    if(flash.utils.getTimer() - startTime > 60000){
        //a minute has passed, do something and stop listening
        removeEventListener(Event.ENTER_FRAME, enterFrame);
    }
}
于 2013-05-23T22:57:15.457 に答える