破坏相位器.通过按钮点击图像对象会导致TypeError

Destroying Phaser.Image object through Button click results in TypeError

本文关键字:对象 图像 TypeError 按钮      更新时间:2023-09-26

我正在使用Phaser框架(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有问题。它的子画面有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);

我做错了什么?如果不从按钮创建中删除这两个框架声明,我该如何消除错误?

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