cc.Component

组建入口函数

1.onLoad:组建加载的时候调用,保证了你可以获取到场景中的其他节点,

以及节点关了的资源数据,

这时候场景全部初始化完毕了,不用担心场景节点没出来.


2.start:也就是第一次执行update之前触发,在onLoad之后。


3.update(dt):组建每次刷新的时候调用,dt是距离上一次的刷新的时间

(会在所有动画更新前执行)


4.lateUpdate(dt):刷新完后调用,(在所有动画更新后执行)


5.onEnable:启用这个组件的时候调用 在start之前onLoad之后调用


6.onDisable:禁用这个组建的时候调用


7.onDestroy:组建实例销毁的时候调用









cc.Component属性


1.组件类:是所有组件的基类;


2.this;指的是当前这个组建的实例


3.node:指向这个组件实例所挂载的这个节点(cc.Node);

就是说如果你要找这个节点,就要通过组建实例指.所挂载的节点.

就是:   this.node


4.name这个组件实例所挂载的节点的名字;

this.name输出的是: 组建实例所挂载节点名称<组建名>

this.node.name   组建实例所挂载节点名称



5.属性列表,如果写在这里面就能在编辑器里绑定这些数据



基本数据类型

properties:{

     基本数据类型:数,bool,字符串,color,pos,size

    speed:1,整数

    is_debug:false,bool

    url:"baidu.com",字符串

    color:cc.color(100,20,20,255),颜色

     pos:cc.p(0,0),位置坐标

    size:cc.size(100,100),大小

}   

效果图

UXKL8OG)@T39QZUZK3@IOKY.png



比如你要一个精灵组建,可以使用系统组建:cc.Sprite cc.Button


还可以放组建:{

 type:组建类型,系统类型,也可以require自己编写的组建类型

    default:null or []

    null就是只有一个,而数组是有多个


}



1
2
3
4
     sprite_item:{
     type: cc.Sprite, //类型 你要绑哪个组建
     default null //默认值 可以是null或者空数组
     },


关联组件的时候,一旦节点上有这个组件,他是把这个节点

组件实例给他。 也就是把组建实例给这个sprite_item


这时候我们可个这个组建实例,比如让他所指向的节点进行旋转

1
2
     var  rt = cc.rotateTo(3,180);
     this .sprite_item.node.runAction(rt)
1
<br data-filtered= "filtered" >

如果是自己的代码组建,获取方法.

1
2
3
4
5
6
var  my_item = require( "my_item" )
 
     custo: {
     type: my_item,
     default null ,
     }






组建 添加、查找、删除


1.在当前节点添加一个组件,可以是系统组建,cc.Sprite,cc.Label

也可以是代码组建的名字.反回值是挂上的组建实例

一个节点可以挂载多个组件

1
var  com_inst =  this .addComponent( "my_item" )

组建实例挂载的节点node也可以添加组建

1
var  com_inst =  this .node.addComponent( "my_item" )



2.查找一个组件


1
2
     com_inst =  this .getComponent( "my_item" );  //反回第一个找到的组件
     console.log(com_inst);

如果这个节点挂有多个组件 后面多一个s

1
2
     var  arr =  this .getComponents( "my_item" ); //返回组件列表
     console.log(arr );


在自己和子节点里去查找这个组建实例 反回找到第一个

getComponentInChildren

在自己和子节点里去查找这个组建实例 反回第一个

getComponentsInChildren



3删除组件 删除当前组建实例

触发onDisable 和 onDestroy

destroy()






Shedule定时器操作

1.scheduleOnce(函数,time):time秒后启动一次定时器

 

1
2
3
4
   //启动一次定时器 只触发一次
     this .scheduleOnce( function (){
     console.log( "sheduleOnce" );
     }.bind( this ),3);


2.schedule(函数,多长时间执行一次,次数+1,多长时间后开始执行);

比如说我要2秒后开始执行定时器,每隔3秒执行一次,共执行7次

执行的次数他会自动加1 因为你填0 他默认就是+1。

1
2
3
     this .schedule( function (){
     console.log( "schedule" );
     }.bind( this ),3,6,2);

如果要执行无数次,参数次数可以填写成 cc.macro.REPEAT_FOREVER


如果要马上开始,并且2秒一次可以这样,他默认是无限次执行

this.schedule(回调函数,几秒执行一次)

1
this .schedule(回调函数,几秒执行一次)



3.unschedule(函数)取消这个定时器操作

使用这个的时候,要求你的回调函数必须被保存

1
2
3
4
5
6
7
8
9
     var  cfunc =  function (){
     console.log( "schedule" );
     }.bind( this );
     this .schedule(cfunc,2,cc.macro.REPEAT_FOREVER,2);  
     //8秒后停止这个定时器
     this .scheduleOnce( function (){
     console.log( "停止定时器" );
     this .unschedule(cfunc);
     }.bind( this ),8);




4.unscheduleAllcallbacks() 取消所有的定时器操作



5.注意,如果节点或组建没有激活是不会调用的.

也就是说你被隐藏的他都不会执行.






 本文转自超级极客51CTO博客,原文链接:http://blog.51cto.com/12158490/2065196,如需转载请自行联系原作者



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值