API 获取节点
- 当前节点 this.node : cc.Node
例如 let node : cc.Node = this.node; - 父节点 this.node.parent
- 子节点 this.node.children : cc.Node[]
- 全局查找
例如 target = cc.find (“Canvas/佩奇/名字”)注意不是文件路径
- 查找子节点
例如 target = cc.find(“xx/yy”, someNode)
API 获取组件
注意:分清楚组件和节点的关系,组件是节点下属性栏里的一个对象,例如节点的脚本组件、Widget、下图New Button 下的Background与Label
获取组件:
let label = node.getComponent(cc.Label)
获取自定义类型的组件 (脚本组件)
let script = node.getComponent(“YourScript”)
上面的node为已获取的节点。
==注意:Label等系统定义过的组件要cc.~不能用双引号包裹组件名。否则会获取不到。
脚本组件的访问
script.方法名()能够直接调用另一个脚本中的方法
下面是在Button节点下的ButtonScript
start () {
this.node.on('mousedown', this.onClick, this);
}
onClick(){
onClick(){
let tar:cc.Node=cc.find("Canvas/label");
//获取script组件
let script = tar.getComponent("SimpleScript");
script.dochange();
}
}
SimleScript脚本放在了Label的节点下
而在SimpleScript文件下有该函数,实现了调用另一脚本文件下的函数。
dochange(){
let x=this.node.x;
let y=this.node.y;
this.node.setPosition(x,-y);
let label= this.node.getComponent(cc.Label);
label.string="changed";
}