MovieClip.prototype中的setInterval

时间:2011-12-23 03:45:26

标签: flash actionscript actionscript-2

我如何在movieClip.prototype中使用setInterval? 这段代码只增加了一次num值......

   MovieClip.prototype.testFunc = function(num) {
        var num = isNaN(num) ? 0 : num;
        trace(num);
        clearInterval(this.slideDelay);
        num++;
        this.slideDelay = setInterval(this.testFunc, 4000,num);
    };
    var testMc = _root.createEmptyMovieClip("testMc", 1);
    testMc.testFunc(0);

1 个答案:

答案 0 :(得分:0)

这是由于ActionScript / JavaScript的一个令人困惑的部分:“this”关键字的值可能会有所不同,具体取决于调用该函数的上下文。当第二次调用testFunc时(通过setInterval),“this”值是未定义的。这使得clearInterval失败,以及随后对setInterval的调用。

使用此作为setInterval调用以获得所需的效果:

this.slideDelay = setInterval(this, "testFunc", 4000, num);