wise9/enchant.js — Issue #18: SpriteにbuttonModeを指定すると、ボタンを押したときにエラーになる
Author: ashel
Created: 2011-10-19 10:06:09+00:00
State: open

enchant.jsの4.1を使わせていただいています。

Spriteクラスに、Entryから継承したbuttonModeというフィールドがありますが、ソフトボタンを作成するためにこのフィールドに'a'という文字列を指定したところ、以下のようなエラーになりました。エラーはIE9のものです。

> SCRIPT5009: 'button' は定義されていません。
> enchant.js, 行 1218 文字13

enchant.jsを以下のように修正したところ、期待通り動作するようになりました。

@@ -1215,14 +1215,14 @@
this.addEventListener('touchstart', function() {
if (!this.buttonMode) return;
this.buttonPressed = true;
- var e = new Event(button + 'buttondown');
+ var e = new Event(this.buttonMode + 'buttondown');
this.dispatchEvent(e);
game.dispatchEvent(e);
});
this.addEventListener('touchend', function() {
if (!this.buttonMode) return;
this.buttonPressed = false;
- var e = new Event(button + 'buttonup');
+ var e = new Event(this.buttonMode + 'buttonup');
this.dispatchEvent(e);
game.dispatchEvent(e);
});

ご確認いただけますでしょうか。