2017-07-04 4 views
0

Adob​​e Animateの "Main"クラスの "SPEED"という名前の定数を作成しようとしています。以下は私のコードです。CreateJSのクラス定数が未定義

function Main(){ 
    this.update.bind(this)); 
} 

Main.SPEED = 3.0; 

Main.prototype.update = function(evt){ 
    console.log("SPEED"+SPEED); 
    console.log(5+SPEED); 
} 

問題は、定義されていないと表示されることです。 私はそれでいくつかの計算をしようとすると結果はNaNです。 コンソールフィードのサンプルはhereです。

この原因は何ですか?

答えて

1

あなたは正しく定数定義されています:

Main.SPEED = 3.0; 

をしかし、あなたはそれを使用していません。あなたのコードでは、Main.SPEEDを定義していますが、SPEEDを使用しているあなたのupdate機能では、変数あなたは定義していない:

Main.prototype.update = function(evt){ 
    console.log("SPEED"+SPEED); // SPEED is not defined 
    console.log(5+SPEED); 
} 

は、次のコードを試してみてください。ここでは、定数と、Main関数のspeedプロパティを定義し、0に設定しました。各ティックでは、定数の値がspeedプロパティに追加されています。

function Main(){ 
    this.speed = 0; 
    createjs.Ticker.addEventListener("tick", this.update.bind(this)); 
} 

Main.SPEED = 3.0; 

Main.prototype.update = function(evt){ 
    this.speed += Main.SPEED; 
    console.log("SPEED: " + this.speed); 
} 

var main = new Main(); 
+0

ありがとう、私の側から非常にばかげたミスでした。私は、私の変数名がクラス名(下記参照)と同じであってはならないこと、また別の愚かな間違いを発見しました。 var Main = new Main(); //間違っています。 – Kwansui

+0

そのため、コードで命名規則を変更する必要があります。たとえば、変数や関数名( 'main'や' isMoving'など)やクラス名の大文字の単語( 'Main'など)の場合はcamelCaseです。 – CrisMVP3200