一个组件怎么调用另外一个组件里的方法?

如题,一个组件怎么调用另外一个组件的方法?比如

// a.js

cc.Class({
extends: cc.Component,

 propertis: {
 },

 onload: function(){
 },

func: function(){
}

})

//b.js

cc.Class({
extends: cc.Component,

 propertis: {
 },

 onload: function(){
     var a = require("a");
     a.func()
 },

})
为啥提示func() is not a function

var a = require("a");
var instance = new a();
instance.func();
1赞

require出来的是组件还是组件的构造函数?

1赞

组件就是组件的构造函数,两者等价

我的意思是require到的是组件的实例对象还是组件的构造函数?,是必须要new出来才能调用成员方法还是获取到的是对象,可以直接调用成员方法?就像我一楼那样,是可以直接调用,还是需要new一个或者引用一个才能调用?

require 到的是对象的构造函数,必须要用 addComponent 或 getComponent 才能获取到对象实例。
参考文档:http://www.cocos.com/docs/creator/scripting/modular-script.html

1赞

好的,谢谢,明白了,然后还有个问题,creator可以在脚本里动态创建animationClip吗?

问一下 emit是不是只能往父节点上传递,如果是兄弟节点想传递消息,用什么方法啊。

没有这样的方法

抱歉并不可以

建议还是做个动态创建animationClip的API吧,这样做动画方便一些,不然像我现在的项目,几百上千个动画,如果做完不知道拖到什么时候了,还有我觉得以前的dispatcher很方便,可以全局传递消息

转移到 http://forum.cocos.com/t/animationclip/36839 里面讨论