我在Phaser / JavaScript上很新,请原谅我的新手错误但是当点击按钮触发playGame功能时,该组(this.group)应该淡出。
然而我收到了这个错误:
未捕获的TypeError:无法读取属性' alpha'未定义的。
我在不同的JavaScript文件中几乎具有完整的代码构造,并且似乎确实有效。所以我在这里完全不知所措。
希望有人可以帮助我。
如果您需要更多代码来获得整体的线索,请给我一个大喊。
代码:
Main.Levels = function (game)
{
this.game = game;
};
Main.Levels.prototype =
{
group: Phaser.Group,
create: function()
{
this.group = this.game.add.group();
this.group.alpha = 0;
for(var i = 0; i < 9; i++)
{
var lvl = this.game.add.button(120 + (150 * (i % 3)), 270 + (150 * Math.floor(i / 3)), 'lvl' + (i+1));
lvl.anchor = {x: 0, y: 0};
lvl.orgWidth = 100;
lvl.orgHeight = 100;
lvl.name = i;
lvl.onInputUp.add(this.playGame, lvl);
this.group.add(lvl);
}
var fade = this.game.add.tween(this.group);
fade.to({alpha: 1}, 300);
fade.start();
},
playGame: function()
{
var fade = this.game.add.tween(this.group);
fade.to({alpha: 0}, 300);
fade.start();
}
}
答案 0 :(得分:0)
当您设置lvl
的输入回调时,您将回调函数作为第二个参数button.onInputUp.add()
和lvl
发送。第二个参数是回调的上下文,即调用它时this
将引用的内容。因此,在调用playGame()
时,最终this
是级别按钮,并且它很可能没有group
属性。如果要引用按钮的父组(按钮所在的组),可以使用this.parent
。