一時停止は、あなたの文脈で解釈するのが少し難しいです。
たとえば、ゲームにエンター入力フレームハンドラがある場合、ある期間ゲームのアニメーションをすべて停止することができます。または、あなたは「あなたがブロックに当たった!」と凍結したいかもしれません。バックグラウンドアニメーションが実行されている間、一定期間メッセージを表示します。
1つの方法は、タイマーを使用することです。これは非同期ですが、最終的な結果は関数がある時間(ミリ秒)後に呼び出されるということです。この例では
、5秒あなたのコードが実行された後、無名関数は時間がアップしていることを応答します。
// needed imports:
import flash.events.TimerEvent;
import flash.utils.Timer;
if (blue2.hitTestObject(_helicopter))
{
trace("YOU HIT THE BLOCK!");
ihit = true;
_helicopter.x = 76;
_helicopter.y = 217;
var timer:Timer = new Timer(5000); // 5-seconds
timer.addEventListener(TimerEvent.TIMER, function(event:TimerEvent):void
{
timer.reset();
timer.removeEventListener(TimerEvent.TIMER, arguments.callee);
trace("5-seconds after hitting the block.");
});
timer.start();
}
あなたは匿名関数が気に入らない場合、あなたはそれをとして実現することができます。
// needed imports:
import flash.events.TimerEvent;
import flash.utils.Timer;
if (blue2.hitTestObject(_helicopter))
{
trace("YOU HIT THE BLOCK!");
ihit = true;
_helicopter.x = 76;
_helicopter.y = 217;
var timer:Timer = new Timer(5000); // 5-seconds
timer.addEventListener(TimerEvent.TIMER, collisionWaitHandler);
timer.start();
}
// ... later in its own function:
protected function collisionWaitHandler(event:TimerEvent):void
{
var timer:Timer = Timer(event.currentTarget);
timer.reset();
timer.removeEventListener(TimerEvent.TIMER, collisionWaitHandler);
trace("5-seconds after hitting the block.");
}