Oop CreateJS中的类常量未定义
我试图为Adobe Animate中的“Main”类创建一个名为“SPEED”的常量。下面是我的代码Oop CreateJS中的类常量未定义,oop,adobe,constants,createjs,Oop,Adobe,Constants,Createjs,我试图为Adobe Animate中的“Main”类创建一个名为“SPEED”的常量。下面是我的代码 function Main(){ this.update.bind(this)); } Main.SPEED = 3.0; Main.prototype.update = function(evt){ console.log("SPEED"+SPEED); console.log(5+SPEED); } 问题是它显示为未定义。 如果我试着用它做一些计算,结果是NaN
function Main(){
this.update.bind(this));
}
Main.SPEED = 3.0;
Main.prototype.update = function(evt){
console.log("SPEED"+SPEED);
console.log(5+SPEED);
}
问题是它显示为未定义。
如果我试着用它做一些计算,结果是NaN。
可以查看控制台提要的示例
原因是什么?您已经正确定义了常数:
Main.SPEED = 3.0;
但你没有使用它。在代码中定义了Main.SPEED,但在update
函数中使用了SPEED,这是一个尚未定义的变量:
Main.prototype.update = function(evt){
console.log("SPEED"+SPEED); // SPEED is not defined
console.log(5+SPEED);
}
请尝试以下代码。在这个例子中,我定义了常数,以及Main
函数的speed
属性,设置为0。在每个刻度中,常量的值都会添加到速度
属性中
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();
谢谢你,我犯了一个愚蠢的错误。我还发现我的变量名不应该与类名相同(见下文),这是另一个愚蠢的错误。var Main=新的Main()//不正确。这就是为什么您应该在代码中保留命名约定的原因。例如,变量和函数名的大小写(如
main
或isMoving
),以及类名称的大写字母(如main
)。