1、组件入口函数,常有的:onLoad,start,update

  1. //组件在加载的时候运行,并且场景的初始化工作已经完成
  2. onLoad() {
  3. },
  4. //组件在第一次update调用之前调用
  5. start() {
  6. },
  7. //每次游戏刷新的时候调用,dt距离上一次刷新的时间,画面更新前调用
  8. update(dt) {
  9. },
  10. //画面更新后调用
  11. lateUpdate(dt) {
  12. },
  13. //组件被激活的时候调用
  14. onEnable() {
  15. },
  16. //组件被禁用的时候调用
  17. onDisable() {
  18. },
  19. //组件实例被销毁的时候调用
  20. onDestroy() {
  21. }

2、组件的重要属性

在组件里面

this=>当前运行的组件实例,

this.node=>组件所挂载的节点对象

this.name=>组件实例所挂载节点的名称<组件名称>

this.node.name=>组件实例所挂载的名称

properties属性列表

  1. properties: {
  2. //基本数据类型:数值,字符串,布尔值
  3. speed: 100,
  4. is_debug: false,
  5. string: '',
  6. //color,pos,size
  7. color: cc.color(0, 0, 0, 255),
  8. pos: cc.v2(0, 0),
  9. size: cc.size(100, 100),
  10. //系统组件
  11. /*
  12. 组件{
  13. type:组件类型 //cc.Sprite, cc.Label
  14. default:null //值可以是null || [] 前者表示一个值,后者则可以挂载多个组件
  15. }
  16. */
  17. my_con: {
  18. type: cc.Sprite,
  19. default: null
  20. },
  21.  
  22. //自定义的属性,步骤
  23. /*
  24. 首先要在场景上绑定js组件,
  25. 在需要用到的JS文件里引入模块 如 let test=require('test');
  26. 在properties里面进行声明如下
  27. */
  28. my_test: {
  29. type: test,
  30. default: null
  31. }
  32. },

3、组件的操作

 注意:以上方法在this下可以调用,同时在this.node节点下也是可以被调用的,并且如果有绑定的脚本,那么可以利用getComponent来获取这个脚本,并且可以运行脚本里面暴露出来的API

  1. let item = this.node.getChildByName('bg');
  2. let sp = set.getComponent(cc.Sprite);
  3. console.log(sp);
  4. //输出 cc_Sprite {_super: null, _name: "", _objFlags: 57344, node: cc_Node, __scriptAsset: false, …}

4、shedule 定时器操作

  1. let item = this.my_con.node;
  2. //注意被删除的组件,被隐藏的,没有被激活的组件是不会执行定时器的
  3. //执行一次
  4. this.scheduleOnce(function () {
  5. console.log(this);
  6. }.bind(item), 1);
  7. //指定次数以及执行时间的定时器,执行2次,注意:次是为n+1次
  8. this.schedule(function () {
  9. console.log('are you ok???');
  10. }.bind(item), 1, 1, 0);
  11. //永远执行,如果省略了后面的参数,那么也就是默认永远执行
  12. this.schedule(function () {
  13. console.log('are you ok???');
  14. }.bind(item), 1, cc.macro.REPEATE_FOREVER, 0);
  15.  
  16. let test = function () {
  17. console.log('today is good day');
  18. console.log(this);
  19. //unscheduleAllCallbacks 取消全部的定时器操作
  20. // this.unscheduleAllCallbacks();
  21. }.bind(this);
  22. //执行定时器
  23. this.schedule(test, 1);
  24. //5秒后取消指定的定时器
  25. this.scheduleOnce(function () {
  26. this.unschedule(test);
  27. }.bind(this), 5);

cc.Component 的使用的更多相关文章

  1. <8>Cocos Creator组件开发cc.Component

    1.组件简介 组件是Cocos Creator的主要构成,渲染(场景显示内容).逻辑.用户输入反馈.计时器等等几个方面都是由组件完成的.根据Cocos Creator的总体架构,组件和节点配合完成游戏 ...

  2. cc.Component

    组件入口函数1: onLoad: 组件加载的时候调用, 保证了你可以获取到场景中的其他节点,以及节点关联的资源数据;2: start: 也就是第一次执行 update 之前触发;3: update(d ...

  3. cc.Lable组件,RichText组件,AudioSouce组件的使用

    一.cc.Lable组件的使用 1.创建Label的方法 a.通过菜单直接创建Label组件:b.先创建节点,然后在节点上绑定Label组件即可. 2.Label 面板上的属性 String => ...

  4. Cocos Creator cc.Button (脚本事件内容)

    cc.Class({extends: cc.Component,properties: {}, onLoad: function () { var clickEventHandler = new cc ...

  5. Cocos Creator cc.Event点击触摸事件详解

    cc.Event事件请不要直接创建 cc.Event 对象,因为它是一个抽象类,请创建 cc.Event.EventCustom 对象来进行派发. cc.Class({extends: cc.Comp ...

  6. cc.Button

    cc.Button 1:添加按钮的方法 (1)直接创建带Button组件的节点; (2)先创建节点,再添加组件;2:按钮组件, 按钮是游戏中最常用的组件, 点击然后响应事件;3: 按钮的过渡效果:  ...

  7. cc.Node—场景树

    对于cc.Node我分了四个模块学习: 1.场景树,2.事件响应,3.坐标系统,4.Action的使用:在此记录经验分享给大家. 场景树 1: creator是由一个一个的游戏场景组成,通过代码逻辑来 ...

  8. cocos学习笔记:快速上手

    cc.Class({ //奇怪的语法风格,cc.class, extends: cc.Component, //扩展自cc.Component properties: { //类的属性设置 jumpH ...

  9. ccc 多点触控2

    经过不断的思考发现,如果是两个sprite都添加触控的时候,往往直接成单点触控, 但是如果是两个node的时候在node上面点击就会变成多点触控的形式 cc.Class({ extends: cc.C ...

随机推荐

  1. Linux下用户和raid练习题

    1. 公司一开发人员申请对服务器10天的oldboy普通用户权限,如何操作? useradd oldboy passwd oldboy usermod -e `date -d "10day& ...

  2. U盘安装CentOS系统、raid5制作以及nohup的使用

    最近折腾服务器,用U盘安装了系统,总结了一些避坑措施: 下载UltraISO工具,用来刻盘 从centos官网下载ISO镜像,然后刻盘 关键是在你进入系统安装界面后,如下: 选中第一项,按tab键(看 ...

  3. oracle创建表空间等相关语句

    在数据库可视化工具中执行以下语句,可建立Oracle表空间. 主要分为四步 1.创建临时表空间 create temporary tablespace xuanwu_temp tempfile 'D: ...

  4. MySQL聚簇索引和非聚簇索引的对比

    首先要清楚:聚簇索引并不是一种单独的索引类型,而是一种存储数据的方式. 聚簇索引在实际中用的很多,Innodb就是聚簇索引,Myisam 是非聚簇索引. 在之前我想插入一段关于innodb和myisa ...

  5. Linux 学习 (六) 关机与重启命令

    Linux达人养成计划 I 学习笔记 shutdown [选项] 时间 -c:取消前一个关机命令 -h:关机 -r:重启 shutdown命令会在关机或重启时自动保存系统中正在运行的服务,最安全的关机 ...

  6. 七牛Qshell 常用命令打印

    下载 该工具使用Go语言编写而成,当然为了方便不熟悉Go或者急于使用工具来解决问题的开发者,我们提供了预先编译好的各主流操作系统平台的二进制文件供大家下载使用,由于平台的多样性,我们把这些二进制打包放 ...

  7. Day040--HTML&CSS

    内容回顾: 标签分类: (1)行内标签 span 小跨度的标签 i em a 特点: (1)在一行内显示 (2)不能设置宽高,如果不设置宽高,默认是内容的宽高 (2)块级标签 h1~h6 h1页面中尽 ...

  8. FreeNAS:创建 CIFS 匿名共享

    第一部分:数据集权限设定 浏览器访问 FreeNAS 系统的 WebGUI 管理界面,点选 “Storage” 存储图标打开存储选项卡,在卷列表中点选用于匿名共享的数据集,如有需要,也可以自行创建新的 ...

  9. Linux下 tftp 服务器的安装与使用

    安装步骤: 1. 安装xinetd, tftp-hpa tftpd-hpa a.  sudo apt-get install xinetd b.  sudo apt-get install tftp- ...

  10. Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降

    网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个 ...