関数を 3 秒遅らせる方法はありますか。3 秒待ってから関数を実行する代わりに、3 秒待ってから 3 秒前に実行したはずの関数を実行したいのです。
最後の文はおそらく意味を成していませんでしたが、例を次に示します。
元。歩くと、あなたが持っているフォロワーは、3秒遅れることを除いて、あなたがしたのとまったく同じことをします.
前もって感謝します。
関数を 3 秒遅らせる方法はありますか。3 秒待ってから関数を実行する代わりに、3 秒待ってから 3 秒前に実行したはずの関数を実行したいのです。
最後の文はおそらく意味を成していませんでしたが、例を次に示します。
元。歩くと、あなたが持っているフォロワーは、3秒遅れることを除いて、あなたがしたのとまったく同じことをします.
前もって感謝します。
AS3 の関数はファースト クラス メンバーです。つまり、関数は引数として渡すことができます。遅延を設定する 1 つの方法は、次のように「遅延」関数を定義することです。
function delayedFunctionCall(delay:int, func:Function) {
trace('going to execute the function you passed me in', delay, 'milliseconds');
var timer:Timer = new Timer(delay, 1);
timer.addEventListener(TimerEvent.TIMER, func);
timer.start();
}
function walkRight() {
trace('walking right');
}
function saySomething(to_say:String) {
trace('person says: ', to_say);
}
//Call this function like so:
delayedFunctionCall(2000, function(e:Event) {walkRight();});
delayedFunctionCall(3000, function(e:Event) {saySomething("hi there");});
遅延が必要な関数は、このような無名関数で「ラップ」する必要があります。これは、メソッドがただ 1 つのパラメーター (オブジェクト).addEventListener
を持つ関数に渡されることを想定しているためです。Event
(ただし、無名関数内で遅延関数に渡したい引数を指定することはできます。)
トリガーされてから 3 秒後に関数が発生しますか?
var timer:Timer
function example():void{
var.addEventlistener(Whatever.Event, any_function);}
function any_function(event:Whatever){
timer = new Timer(3000, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, func);
timer.start();
}
function func(event:TimerEvent){
timer.removeEventListener(TimerEvent.TIMER_COMPLETE, func);
todo here
}