尝试在javascript中使用Easeljs计算点数

尝试在javascript中使用Easeljs计算点数,javascript,event-handling,createjs,counting,Javascript,Event Handling,Createjs,Counting,嗨,我想在比赛中数数我的分数。我刚开始使用javascript和CreateJS。我的问题是,我不知道如何在使用股票代码的同时单击事件。它不起作用 函数init(){ var stage=newcreatejs.stage(“myCanvas”); stage.mouseEventsEnabled=true; createjs.Ticker.interval=1500; createjs.Ticker.addEventListener(“勾号”,handleTick); var statPoi

嗨,我想在比赛中数数我的分数。我刚开始使用javascript和CreateJS。我的问题是,我不知道如何在使用股票代码的同时单击事件。它不起作用

函数init(){
var stage=newcreatejs.stage(“myCanvas”);
stage.mouseEventsEnabled=true;
createjs.Ticker.interval=1500;
createjs.Ticker.addEventListener(“勾号”,handleTick);
var statPoint=new createjs.Text(“Punkte:,“bold 20px Arial”,“#000000”);
statPoint.x=750;
var currentPoints=new createjs.Text(“0”、“20px Arial”、“000000”);
电流点x=850;
var受害者=新建createjs.Bitmap(“opter.png”);
受害者指数=0.4;
受害者。比例=0.4;
stage.addChild(statPoint);
stage.addChild(当前点);
阶段.儿童(受害者);
addEventListener(“单击”,handleClick);
功能手柄(事件){
牺牲品.x=850*Math.random();
牺牲品.y=550*Math.random();
stage.update();
}
函数handleClick(事件){
currentPoints.text=parseInt(currentPoints.text+1);
}

}
您可能正在处理范围问题。您已经在init方法中使用
var
定义了
受害者
currentPoints
变量,因此它仅在那里可用。这意味着您的
handleTick
handleClick
方法无法访问这些变量。您的控制台中可能存在未定义的错误

更改要在init方法之外声明的变量,它们将在处理程序方法中可访问

var currentPoints, victim;
function init() {
    // Other code
    currentPoints = values;
    victim = value;
}

您可能正在处理范围问题。您已经在init方法中使用
var
定义了
受害者
currentPoints
变量,因此它仅在那里可用。这意味着您的
handleTick
handleClick
方法无法访问这些变量。您的控制台中可能存在未定义的错误

更改要在init方法之外声明的变量,它们将在处理程序方法中可访问

var currentPoints, victim;
function init() {
    // Other code
    currentPoints = values;
    victim = value;
}

为什么要在勾选中添加单击事件?这会不必要地反复添加侦听器。您应该在初始化中添加它一次。如果您得到的号码超出范围,我也不建议再次调用handleTick(),因为这会导致额外的
stage.update()
,这可能会很昂贵。为什么不直接使用Math.random()*850?是的,你是对的。我更改了它,但它也不起作用。为什么要在勾选中添加单击事件?这会不必要地反复添加侦听器。您应该在初始化中添加它一次。如果您得到的号码超出范围,我也不建议再次调用handleTick(),因为这会导致额外的
stage.update()
,这可能会很昂贵。为什么不直接使用Math.random()*850?是的,你是对的。我改了,但也没用。