Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CreateJS不在动画中每秒更新动态文本框HTML 5画布_Javascript_Flash_Jquery Animate_Adobe_Createjs - Fatal编程技术网

Javascript CreateJS不在动画中每秒更新动态文本框HTML 5画布

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

在下面的代码中,我运行一个简单的计时器脚本,它基本上从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(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?间隔内的
这个
是什么?函数很有可能在全局范围内被调用,因此
将成为
窗口