我明白了,很感谢。我看官方文档 sprite继承自 component,animation也继承自 component,我就以为 两个都能直接在Node上做添加
你就算在node上加,你没cc.Sprite组件,你也显示不出来啊,所以我直接在你代码的cocos图标上加
我试了下 把你创建的child cocos 改为空节点就不行,好傻逼的设计
你要显示你起码也要给一个渲染组件啊,不然看不到的
嗯 是的 其实我想说组件本身能直接add的情况
我都开发了一个月了一直以为 node 就是所有的根本,然后node上添加组件,sprite是sprite,animation是animation,我在把cocos2dx的项目移植过来,这cocos creator的坑也太多了
那该如何理解 node 和 component的关系呢
不是坑多,是本身设计上就和2dx有区别,还按着老一套来,肯定遭
那该怎么理解node和component的关系呢,尤其是这个神奇的sprite设定,我发现sprite是不能直接add到node的
可以的,为什么sprite不能加进去,你看一下你编辑器里面的图片,就是node下面加载一个cc.Sprite组件

以前sprite本身就包含了node,现在的sprite叫组件,需要添加到node上才有效。而addChild就是单纯的设置父节点了。
所以需要多走一步
那我的这段代码该怎么写呢。
是 var dddd = u.addComponent(cc.Sprite);
var cccc = dddd.addComponent(cc.Animation);这样?
还是 var dddd = u.addComponent(cc.Sprite);
var cccc = u.addComponent(cc.Animation);这样?
u = new cc.Node()
空的cc.Node就像一个容器,里面装什么,就是自己决定的,比如你想要一个能显示图片的东西,你就在这个node上面挂载一个cc.Sprite组件,又比如你想要让这个图片像按钮一样能被点击,你可以在这个node上再挂载一个cc.Button组件
你是全部添加到node上的,你可以这样写
var node = new cc.Node();
node.addComponent(cc.Sprite);
node.addComponent(cc.Animation);
var node = new cc.Node();
node.addComponent(cc.Sprite);
node.addComponent(cc.Animation);
这样的写法var a = node.addComponent(cc.Animation); 在给 a 添加clip的时候就能播放了吗?
animation和 sprite是分别不同的组件两个是怎么关联上的呢?
要不是之前项目用2dx写的真想撂挑子了,太多坑了
你这里的a就是cc.Animation组件,addComponent返回的是组件本身
是的我明白,a是anmition组件,但通过刚才的测试 没有sprite的时候 animation不能播放,我有些理解不了