首页 > cocos2d-js中先bake后添加childnode好还是先添加childnode再bake更好?

cocos2d-js中先bake后添加childnode好还是先添加childnode再bake更好?

官方说明中写道:

使用bake功能非常简单: 将需要bake的节点元素加入到一个cc.Layer或其子类(cc.LayerColor,cc.LayerGradient)对象中,然后调用该对象的bake函数就可以了。

但是我在项目的js-test文件夹中,BakeLayerTest.js中的BakeLayerTest1中,是先bake然后再addchild的:

ctor: function(){
        this._super();

        var winSize = cc.winSize;
        var bakeItem = new cc.MenuItemFont("bake", this.onBake, this);
        var unbakeItem = new cc.MenuItemFont("unbake", this.onUnbake, this);
        var runActionItem = new cc.MenuItemFont("run action", this.onRunAction, this);
        var menu = new cc.Menu(bakeItem, unbakeItem, runActionItem);

        menu.alignItemsVertically();
        menu.x = winSize.width - 70;
        menu.y = winSize.height - 120;
        this.addChild(menu, 10);

        var rootLayer = new cc.Layer();
        rootLayer.setPosition(20,20);
        this.addChild(rootLayer);

        var bakeLayer = new cc.Layer();
        bakeLayer.bake();
        bakeLayer.setRotation(30);
        rootLayer.addChild(bakeLayer);

        for(var i = 0; i < 9; i++){
            var sprite1 = new cc.Sprite(s_pathGrossini);
            if (i % 2 === 0) {
                sprite1.setPosition(90 + i * 80, winSize.height / 2 - 50);
            } else {
                sprite1.setPosition(90 + i * 80, winSize.height / 2 + 50);
            }
            if(i === 4)
                this._actionSprite = sprite1;
            sprite1.rotation = 360 * Math.random();
            bakeLayer.addChild(sprite1);
        }
        this._bakeLayer = bakeLayer;
        bakeLayer.runAction(cc.sequence(cc.moveBy(2, cc.p(100,100)), cc.moveBy(2, cc.p(-100,-100))));
    },

使用哪种方式会更好呢?他们之间的差别是什么?又或者两者没有啥差别,除了顺序。


刚刚用(new Date()).getTime()输出了下,先add再bake,先bake再add之间都说1毫秒或者2毫秒之间摆动……没啥差别,我真是无语了。

【热门文章】
【热门文章】