1

cc.scaleTo() で 3 つの円をアニメーション化しようとしましたが、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 に答える