-3
i=0;
    while (i<10)
        {
        var objectLabel = cc.Sprite("res/rect.png", cc.rect(0, 0, 100, 100));
        function getRandomInt(min, max) 
            {
                return Math.floor(Math.random() * (max - min + 1)) + min;
            }
        objectLabel.x = getRandomInt(50, size.width);
        objectLabel.y = size.height-40;
        setTimeout(this.addChild(objectLabel, 5), 500);
        objectLabel.runAction(cc.spawn(cc.moveBy(0.8, cc.p(0, size.height*(-1)+210))));
        i++;
        }

如何设置每 0.6 秒执行一次 WHILE 的延迟计时器?

4

2 回答 2

0

更改代码中的这两行

1-你应该使用'new'来创建新的Sprite

2- 在 setTimeout 里面应该有一个函数,它应该与 'this' 绑定以使用当前类的函数,否则它会抛出错误找不到 blah blah。

        var objectLabel = new cc.Sprite("res/rect.png", cc.rect(0, 0, 100, 100));



        setTimeout(function(){this.addChild(objectLabel, 5)}.bind(this), 600);
于 2017-02-02T05:57:45.783 回答
-1

setTimeout() 的第二个参数应该是您的延迟,其中延迟以微秒为单位(600 微秒 = 0.6 秒)。

于 2014-11-14T21:05:41.407 回答