Actionscript,如何为对象添加时间延迟
Actionscript, how to add a time delay for an object
我已经解决了为对象添加时间延迟的问题。
主要思想是当玩家击中特定对象时,我想将游戏级别更改为下一个级别。但我不希望这立即发生,所以我想添加 3 秒的延迟。
onClipEvent(enterframe) {
if (_root.char.hitTest(this)) {
//add dealy for the next 2 lines.
unloadMovie(this);
_root.gotoAndStop("StageL2");
}
}
您可以使用 Timer
像这样:
var myInterval:Number;
function myMethode():Void
{
trace("Executed myMethode() after 3 Seconds")
clearInterval(myInterval);
}
myInterval = setInterval(this, "myMethode", 3000);
我会根据你的帧率添加一个计数器(假设你有 24fps,3 秒是 72 帧):
var hit = false;
var counter;
onClipEvent(enterframe) {
if (_root.char.hitTest(this)) {
hit = true;
}
if(!hit) {
waitcounter = 0;
} else {
waitcounter++;
}
if(waitcounter >= 72) {
unloadMovie(this);
_root.gotoAndStop("StageL2");
}
}
我还添加了一个额外的例程来使 hitTest 触发一个变量,否则命中应该在 72 帧内为真(如果你有移动的物体,那么它为真的可能性很小)。
进入下一阶段时不要忘记重置变量。
我已经解决了为对象添加时间延迟的问题。 主要思想是当玩家击中特定对象时,我想将游戏级别更改为下一个级别。但我不希望这立即发生,所以我想添加 3 秒的延迟。
onClipEvent(enterframe) {
if (_root.char.hitTest(this)) {
//add dealy for the next 2 lines.
unloadMovie(this);
_root.gotoAndStop("StageL2");
}
}
您可以使用 Timer
像这样:
var myInterval:Number;
function myMethode():Void
{
trace("Executed myMethode() after 3 Seconds")
clearInterval(myInterval);
}
myInterval = setInterval(this, "myMethode", 3000);
我会根据你的帧率添加一个计数器(假设你有 24fps,3 秒是 72 帧):
var hit = false;
var counter;
onClipEvent(enterframe) {
if (_root.char.hitTest(this)) {
hit = true;
}
if(!hit) {
waitcounter = 0;
} else {
waitcounter++;
}
if(waitcounter >= 72) {
unloadMovie(this);
_root.gotoAndStop("StageL2");
}
}
我还添加了一个额外的例程来使 hitTest 触发一个变量,否则命中应该在 72 帧内为真(如果你有移动的物体,那么它为真的可能性很小)。
进入下一阶段时不要忘记重置变量。