LayaAir中函数不能调用的问题

2018-07-25  本文已影响0人  将_99cc

先检查一下调用函数的部分是不是写在了LOOP循环里面;

比如这种:

Laya.timer.loop(1,this,bulletsmove.monsterBulletsMove);

这样在monsterBulletsMove()里面的函数如果调用了自身,比如:this.isCollision();

这样执行到this.isCollision();时就会报错说找不到这个函数。

原因:

在这里的this是调用Loop时的那个[左边加粗的这个] :      Laya.timer.loop(1,this,bulletsmove.monsterBulletsMove);

因为Loop里面第二个参数就是函数的作用域,这里填的是this的话就是最外面的那个作用域了。

解决方法:

当然可以使用这种方式:把作用域换成另外一个需要使用的参数,不使用this[下面加粗的这个];

比如:     Laya.timer.loop(1,bulletsmove,bulletsmove.monsterBulletsMove);

推荐使用第二种解决方式:

写一个函数把调用放进去,就是下面这种!

Laya.timer.frameLoop(1, this, this.tet);

private tet(): void {

this._bulletsmove.playerBulletsMove();

}

         emmmmmm,共勉!

上一篇 下一篇

猜你喜欢

热点阅读