Javascript 控制相位器3中的动画循环
我尝试在第3阶段循环动画指定次数。用户提供分配给“loopTimes”变量的输入。我试图用两种不同的方法来控制循环的数量,这两种方法似乎都不起作用 第一种方式是使用while循环的按钮按下功能:Javascript 控制相位器3中的动画循环,javascript,phaser-framework,Javascript,Phaser Framework,我尝试在第3阶段循环动画指定次数。用户提供分配给“loopTimes”变量的输入。我试图用两种不同的方法来控制循环的数量,这两种方法似乎都不起作用 第一种方式是使用while循环的按钮按下功能: totalButton.on('pointerdown', function () { loopTimes = varCountOne + varCountTwo; totalText.setText(loopTimes); var
totalButton.on('pointerdown', function () {
loopTimes = varCountOne + varCountTwo;
totalText.setText(loopTimes);
var i = 0;
while (i < loopTimes) {
horse.anims.play('numerate');
i++;
}
});
这也导致循环发生一次,即使循环时间大于1。我怀疑我遗漏了一些相当明显的东西,但因为我对javascript和phaser都是新手,所以对我来说并不明显
谢谢 从我能告诉你的第二种方法是正确的,我在看哪种方法很有效。你用的是什么版本的移相器?移相器3。我也看到了这个例子,并认为它会起作用。有没有理由认为重复不能接受变量?循环时间在totalButton函数中定义,该函数本身会触发数值动画。当我手动将repeat设置为“10”时,它会重复10次,但当它为“loopTimes”时,无论loopTimes变量有多大,它只会重复一次。更新:如果我在脚本顶部定义一个变量并将其设置为10,然后以第二种方式使用该变量,它会循环10次。所以我认为问题在于totalButton函数中设置的loopTimes没有进入动画循环。我强烈怀疑这是一个明显的全局/局部变量问题,但我对基本javascript了解不够,无法解决它。您是否尝试多次更改loopTimes变量?就像用户每次单击按钮都会提示输入新值一样?或者是一次性事件?不止一次。用户设置两个变量(即varCountOne和varCountTwo),然后单击totalButton使动画基于这些变量循环多次。
this.anims.create({
key: 'numerate',
frames: this.anims.generateFrameNumbers('dude', {start: 0, end: 3}),
frameRate: 10,
repeat: loopTimes
});