通过Button单击销毁Phaser.Image对象会导致TypeError

时间:2015-03-27 07:12:40

标签: javascript phaser-framework

我正在使用Phaser-framework(版本2.2.2)和JavaScript制作HTML5游戏。我现在正在为游戏创建一些UI元素。以下代码表示游戏中的UI窗口。

var PointEditScreen = function(game) {
  Phaser.Image.call(this, game, 600, 50, 'background');
  var exitButton = game.add.button(360, 5, 'exit-button', this.closeScreen, this, 1, 0, 2, 0);
  this.addChild(exitButton);

PointEditScreen.prototype.closeScreen = function() {
  this.destroy();
};

我遇到exitButton的问题。它的spritesheet有3个框架,它们都在它们设置使用的状态下工作。现在,这段代码可以运行 - 我的"窗口"按下exitButton时关闭。但是,如果我像上面的代码中那样设置exitButton的所有四个帧,我会收到以下错误:

"Uncaught TypeError: Cannot read property 'cache' of null"

如果我从按钮创建中删除最后两帧(downFrame和upFrame),即将其更改为以下内容,则不会发生错误:

var exitButton = game.add.button(360, 5, 'exit-button', this.closeScreen, this, 1, 0);

我做错了什么?如何在不从按钮创建中删除这两个框架声明的情况下摆脱错误?

1 个答案:

答案 0 :(得分:0)

似乎这是Phaser中的一个错误,现在它在新版本2.3.0中正常运行。