super()
が呼び出される前に、this
はコンストラクタ内で使用できません。ES6クラスでスーパークラスにインスタンスメソッドを渡す
なお、インスタンスメソッドを参照する場合は、メソッドの先頭にthis
という接頭辞を付ける必要があります。では、インスタンスメソッドをどのようにしてsuper()
に渡すことが可能ですか?
Phaser frameworkには、Button
クラスがあります。コンストラクタは、クリックイベントのコールバックを取ります
Constructor
new Button(game, x, y, key, callback, callbackContext, overFrame, outFrame, downFrame, upFrame)
callback - The function to call when this Button is pressed.
callbackContext - The context in which the callback will be called (usually 'this').
私は、私自身のボタンクラスをしたい、私はこのように定義する:それでは、どのように私はsuper
にclickHandler
を渡します
class MyButton extends Phaser.Button {
constructor(game) {
super(game, game.world.centerX, game.world.centerY, 'buttonImage');
}
clickHandler(button, pointer) {
//handle the clicking
}
}
を?
this.clickHandler
は、エラー[Build Error] 'this' is not allowed before super() while parsing file: ....
を返し、ちょうどclickHandler
を渡すと、ランタイムエラーUncaught ReferenceError: clickHandler is not defined
が返されます。
提案がありますか?
:: '不明なエラー:Phaser.Signalを:リスナーは、(追加の必須のparamである)自分の与えられた例では、これは、このように実装されます関数でなければなりません。 – Vegar
明らかに、正しい順序でパラメータを取得するのにも役立ちます。 – Vegar
この解決策は機能しません。リンクをクリックすると「プロパティを読み取れません」コールバック「未定義」のエラーが表示されますバベルでコンパイル – Tony