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

来源:互联网 发布:java 线程池 编辑:程序博客网 时间:2024/06/05 17:56

获得组件所在的节点

获得组件所在的节点很简单,只要在组件方法里访问 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)
0 0