您的位置:首页 > 其它

【Creator】访问节点或者其他组件

2016-07-19 18:09 169 查看

获得组件所在的节点

获得组件所在的节点很简单,只要在组件方法里访问 this.node 变量

start: function () {
var node = this.node;
node.x = 100;
}


获得其它组件

需要获得同一个节点上的其它组件,这就要用到 getComponent,它会帮你查找你要的组件

为 getComponent 传入一个类名。对用户定义的组件而言,类名就是脚本的文件名,并且区分大小写

var discreteness = this.getComponent("name");


获得其它节点及其组件

在属性检查器中设置你需要的对象。以节点为例,这只需要在脚本中声明一个 type 为 cc.Node 的属性:

设置了名为player的接口,可以获取传入节点上的Node属性

cc.Class({
extends: cc.Component,
properties: {
// 声明 player 属性
player: {
default: null,
type: cc.Node
}
// 或者使用
player: cc.Node
}
});


查找子节点

获取node下所有子节点,获取到的节点类型为node

var arr = node.getChildren()


使用getChildByName获取到node下的”name”子节点

node.getChildByName("name")


全局名字查找

当cc.find只传入第一个参数时,将从场景根节点开始逐级查找

this.backNode = cc.find("Canvas/Menu/Back");


扩展

将GameEvent.monsterPos事件向上级节点抛出, true代表是否冒泡

var event = new cc.Event.EventCustom(GameEvent.monsterPos, true)


设置需要抛出的东西

event.setUserData(this.node)
var ob = cc.find('New Node')


cc.find查找一个层次结构的节点,该路径是区分大小写的。它将遍历层次结构,通过使用“/”字符的路径分裂。此功能将仍然返回节点,即使它是无效的

cc.find('New Node').dispatchEvent(event)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: