Javascript CreateJS不在动画中每秒更新动态文本框HTML 5画布
在下面的代码中,我运行一个简单的计时器脚本,它基本上从30秒倒计时到0秒。我想做的是让当前秒显示在舞台上Javascript CreateJS不在动画中每秒更新动态文本框HTML 5画布,javascript,flash,jquery-animate,adobe,createjs,Javascript,Flash,Jquery Animate,Adobe,Createjs,在下面的代码中,我运行一个简单的计时器脚本,它基本上从30秒倒计时到0秒。我想做的是让当前秒显示在舞台上 this.stop(); //COUNTDOWN TIMER var minute = 0; var second = 30; var clock = setInterval(function() { second = second -1; if(minute == 0 && second == 0){ clearInterval(cloc
this.stop();
//COUNTDOWN TIMER
var minute = 0;
var second = 30;
var clock = setInterval(function() {
second = second -1;
if(minute == 0 && second == 0){
clearInterval(clock)
}
//If the seconds are less than 10, add a 0
if(second < 10){
console.log("0"+minute+":0"+second+"");
}else{
//Normal
console.log("0"+minute+":"+second+"");
}
this.text = second;
this.myTimer1.myTimer2.text = second
}, 1000);
this.stop();
//倒数计时器
var分钟=0;
var秒=30;
变量时钟=设置间隔(函数(){
秒=秒-1;
如果(分钟=0和秒=0){
清除间隔(时钟)
}
//如果秒数小于10,则添加0
如果(秒<10){
日志(“0”+分钟+”:0“+秒+”);
}否则{
//正常的
console.log(“0”+分钟+:“+秒+”);
}
this.text=秒;
this.myTimer1.myTimer2.text=秒
}, 1000);
然而,当倒计时按预期工作和功能时,我不断收到错误消息myTimer2未定义。我真的很难找到答案。
myTimer1是电影剪辑的实例名称
myTimer2是电影剪辑中动态文本框的实例名称
任何帮助都将不胜感激
谢谢如果您看到此错误:
无法读取未定义的
的属性“myTimer2”,那么这只是一个范围问题
如果将函数作为参数传递给setInterval
,它将在全局范围内被调用。在同一范围内定义的任何变量(秒、分钟等)仍然可用,但此
变为全局变量
有几种方法可以解析功能范围:
一个常见的(且简单的)解决方法就是在本地范围内为
this
定义一个别名。该函数仍在全局范围内调用,但您现在有了对要引用的范围的引用。通常,您会看到带有\u this
或that
变量的代码示例:
var _this = this;
setTimeout(function() {
_this.doSomething(); //
}, duration);
另一种方法是绑定该方法。这在一些较旧的浏览器中是不受支持的(有大量的多边形填充),但是如果您使用的是CreateJS,那么旧的浏览器支持并不是一个真正的问题
setTimeout(function() {
this.doSomething();
}.bind(this), duration);
希望有帮助。如果您想了解更多信息,有。您确定在
myTimer1
中定义了myTimer2
子项(和变量)吗?你有没有可能发布lib js?间隔内的这个是什么?函数很有可能在全局范围内被调用,因此此
将成为窗口
。