未捕获的TypeError:无法读取属性' alpha'未定义的

时间:2016-02-02 18:55:26

标签: javascript phaser-framework

我在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();
    }
}

1 个答案:

答案 0 :(得分:0)

当您设置lvl的输入回调时,您将回调函数作为第二个参数button.onInputUp.add()lvl发送。第二个参数是回调的上下文,即调用它时this将引用的内容。因此,在调用playGame()时,最终this是级别按钮,并且它很可能没有group属性。如果要引用按钮的父组(按钮所在的组),可以使用this.parent