一定時間後に処理を実行する
一定時間後に処理を行う場合は、scene.setTimeout()
を利用します。
凡例
javascript
scene.setTimeout(function () {
// 3秒後に行う処理
}, 3000);
一定時間ごとに繰り返し処理をする場合は scene.setInterval()
を利用してください。
利用例
次のコンテンツは、表示されている矩形が 5 秒後に非表示になります。
詳細
scene.setTimeout()
ではミリ秒単位で時間を指定できますが、実際にはフレーム単位で処理が行われます。例えばゲームが 30 FPS、つまり 1 秒間に 30 フレーム描画している場合、1 フレームの長さは約 33 ミリ秒なので、実際の処理時間は 33 ミリ秒単位に切り上げられます。 scene.setTimeout()
に登録した関数は scene.clearTimeout()
で登録を解除できます。
javascript
var timerId = scene.setTimeout(function () {
// 5秒後に行う処理
}, 5000);
scene.clearTimeout(timerId); // scene.setTimeoutで登録した処理を解除
scene.setTimeout()
ではない、グローバルの setTimeout()
や、同じくグローバルの setInterval()
は使用しないよう注意してください。 これは、Aksahic Engine のコンテンツは、現実の時間とは違う速度で実行されることがあるためです (例えば、Akashic Engine のゲームは、ニコニコ生放送上で実行されることがあります。その場合、タイムシフトではシークバーに連動する形で動作します)。この時、 scene.setTimeout()
は実行速度を踏まえて経過時間を処理するのですが、 グローバルの setTimeout()
は指定した時間そのままの時間経過を待ってしまうため、処理の実行タイミングがずれてしまうことがあり得ます。