2017-02-16 11 views
0

ここで私はPhaserライブラリを使用しています。私は私が間違ってやっているのか理解カント:{this.create作成}Typescript - "this"キーワードエラー

を「この」ここにキーワードの活字体をコンパイル中

module GameName { 
    class GameName extends Phaser.Game{ 

     constructor(width?:number, height?:number){ 
      super(width, height, Phaser.AUTO, 'PhaserDemo', {create:this.create}); 
     } 

     create() { 
      this.state.add("Preloader", Preloader, true); 
     } 
    } 

    window.onload =() => { 
     new GameName(1280, 720); 
    } 
} 

は、だから私は、エラーが発生しました。私はPhaser.Gameクラスのコンストラクタを自分のGameNameクラスのコンストラクタに呼び出し、Phaser.Gameクラスのcreate関数をスーパーコンストラクタのパラメータとして追加します。

エラー:派生クラスのコンストラクタで 'this'にアクセスする前に 'super'を呼び出す必要があります。

答えて

1

constructor(width?:number, height?:number){ 
    super(width, height, Phaser.AUTO, 'PhaserDemo', { 
    create:() => this.create(), 
    }); 
} 
+0

はいこの方法では、エラーはなくなります。それはコンパイルしますが、関数には全く入りません。 しかし、私はこのようにそれを行う場合 - > コンストラクタ(幅:??数、高さ:数){ スーパー(幅、高さ、Phaser.AUTO、 'PhaserDemo'、{作成します()=> { this.state.add( "Preloader"、Preloader、true); }}); } } うまく動作します。 –

関連する問題