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毫秒之间摆动……没啥差别,我真是无语了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论