[]关于Timer延迟调用有一些不解
private function skill():void
{
Laya.timer.once(1500,this,finish);
//Laya.timer.once(3000,this,finish);
}
private function skill():void
{
this.visible=false;
}
假定这是一个简陋的人物隐身技能,蓄力1.5s后人物消失。
测试的时候我发现如果我把注释去掉,这个后面的延迟时间是会覆盖前面的,也就是说运行下来是:3s后只会出发一次finish函数。
为什么我要这样去测,假定有游戏类Game()里的init函数里
hero1 = new Hero1;
hero2 = new Hero2;
分别对其调用他们的skill();(一个1.5s后触发,一个3s后触发)
语法上几乎是和开始的连续调用相同,但是结果是:触发了两次,且是正确的时间触发,一个1.5s,一个3s
其实后者是我想要的结果,但我不明白其中的玄机,同样是Laya.timer.连续once相同的调用函数名,结果却不一样,为了能够用的更安心,不出隐形BUG,希望专业人员给我讲解一下,感谢
{
Laya.timer.once(1500,this,finish);
//Laya.timer.once(3000,this,finish);
}
private function skill():void
{
this.visible=false;
}
假定这是一个简陋的人物隐身技能,蓄力1.5s后人物消失。
测试的时候我发现如果我把注释去掉,这个后面的延迟时间是会覆盖前面的,也就是说运行下来是:3s后只会出发一次finish函数。
为什么我要这样去测,假定有游戏类Game()里的init函数里
hero1 = new Hero1;
hero2 = new Hero2;
分别对其调用他们的skill();(一个1.5s后触发,一个3s后触发)
语法上几乎是和开始的连续调用相同,但是结果是:触发了两次,且是正确的时间触发,一个1.5s,一个3s
其实后者是我想要的结果,但我不明白其中的玄机,同样是Laya.timer.连续once相同的调用函数名,结果却不一样,为了能够用的更安心,不出隐形BUG,希望专业人员给我讲解一下,感谢
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
Laya_XS
赞同来自: