cocos creator 访问节点
由于工作需要,开始学习cocos,应工作要求,以ts为主要语言编写,本节重点为代码方面。
1.访问节点和组件
获取组件所在的节点
问:或许是当前组件的节点?node.x = 100;这句代码的意义?
获得组件所在的节点很简单,只要在组件方法里访问 this.node 变量:
start: function () {
var node = this.node;
node.x = 100;
}
获得其它组件
你会经常需要获得同一个节点上的其它组件,这就要用到 getComponent 这个 API,它会帮你查找你要的组件。
start: function () {
var label = this.getComponent(cc.Label);
var text = this.name + 'started';
// 改变label的值
label.string = text;
}
也可以为 getComponent 传入一个类名。对用户定义的组件而言,类名就是脚本的文件名,并且区分大小写。例如 SinRotate.js 里声明的组件,类名就是 SinRotate。
var rotate = this.getComponent("SinRotate");
问:那要怎么寻找同一脚本里的组件?
2.获得其它节点及其组件
利用属性检查器设置节点
最直接的方式就是在 属性检查器 中设置你需要的对象。以节点为例,这只需要在脚本中声明一个 type 为 cc.Node 的属性:
// Cannon.js
cc.Class({
extends: cc.Component,
properties: {
// 声明 player 属性
player: {
default: null,
type: cc.Node
}
}
});
这段代码在 properties 里面声明了一个 player 属性,默认值为 null,并且指定它的对象类型为 cc.Node。这就相当于在其它语言里声明了 public cc.Node player = null;。