CocosCreator 脚本控制节点和组件

获取节点

  • 获得组件所在的节点

只要在组件方法里访问 this.node 变量

start: function () {
   
     var node = this.node;
     node.x = 100;
 }
  • 获取其他节点

    • 在属性检查器里设置节点
      若果要获取的节点是一个不用改变的常量,最简单的方法是在 JS 文件中声明为默认成员,设置类型,然后直接在属性检查器里将节点拉进去即可。
   cc.Class({
   
       extends: cc.Component,
   	properties: {
   
    	// 声明 player 属性
    	player: {
   
       	default: null,
          	type: cc.Node
        	}
    	}
});
  • 查找子节点
    • 有时候,游戏场景中会有很多个相同类型的对象,像是炮塔、敌人和特效,它们通常都有一个全局的脚本来统一管理。如果用 属性检查器 来一个一个将它们关联到这个脚本上,那工作就会很繁琐。为了更好地统一管理这些对象,我们可以把它们放到一个统一的父物体下,然后通过父物体来获得所有的子物体。
    • 获得所有子节点:node.children
start: function() {
   
var children = this.node.children;
    for (var i = 0; i < children.length; i++) {
   
    var node = children[i];
    }
}
  • 获得指定名字子节点:getChildrenByName
 this.node.getChildByName("Children1")
  • 查找任意节点
    可以使用 cc.find 根据传入的路径进行逐级查找。输入一个参数时,将从场景根节点开始逐级查找。或者输入第二个参数 this 将从本节点开始寻找。
this.backNode = cc.find("Canvas/Menu/Back");
cc.find("Cannon 01/Barrel/SFX", this.node);

获取组件

  • 在我们获取节点之后,就可以通过 getComponent 方法获取其组件。
  • getComponent 方法传入一个组件名称,例如 cc.Label
  • 也可以为 getComponent 传入一个类名。对用户定义的组件而言,类名就是脚本的文件名,并且区分大小写。例如 “SinRotate.js” 里声明的组件,类名就是 “SinRotate”。
    start: function () {
         
          var label = this.getComponent(cc.Label)
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值