1

我尝试使用 cc.scaleTo() 为三个圆圈设置动画,并且直到我结合 cc.delayTime() 和 cc.repeatForever() 时它都可以正常工作。在 hello worlds 应用程序中,我添加了:

 /////////////////////////////
    // 3. add your codes below...

    var contacts = [];

    for( var i=0 ; i<3 ; i++ ) {
        contacts[i] = cc.DrawNode.create();
        contacts[i].retain();
        contacts[i].clear();
        contacts[i].setScale(1);
        contacts[i].drawCircle(cc.p(0,0), 30, 0, 100, false, 2, cc.color(255,0,0,255));
        contacts[i].setPosition(size.width/2, size.height/2);
        this.addChild(contacts[i]);

        contacts[i].runAction(
            cc.sequence(
                cc.delayTime(i),
                cc.repeatForever(
                    cc.sequence(
                        cc.scaleTo(3, 3),
                        cc.scaleTo(0.01, 0)
                    )
                )
            )
        );
    }
    return true;

这不起作用并显示控制台消息:

[Action update]. override me

当我删除: cc.delayTime() 或 cc.repeatForever() 它工作正常。

contacts[i].runAction(
       cc.sequence(
           cc.repeatForever(
                cc.sequence(
                    cc.scaleTo(3, 3),
                    cc.scaleTo(0.01, 0)
                )
            )
        )
);

或者

contacts[i].runAction(
        cc.sequence(
            cc.delayTime(i),
            cc.sequence(
                cc.scaleTo(3, 3),
                cc.scaleTo(0.01, 0)
            )
        )
);

并且没有消息出现。

那会是什么?

4

1 回答 1

1

你不能把 cc.RepeatForever 放到 cc.Sequence 中,它不会重复

只能将有限时间的动作放入序列中

于 2014-08-11T10:23:10.673 回答