creator入门

一、类的构造

  • cc.Class == 类型声明

      var Sprite = cc.Class({
          name: "sprite"
      });
    
  • 实例化var obj = new Sprite();

  • 判断实例obj instanceof Sprite

  • 判断两个类的继承关系cc.isChildClassOf(child, parent)

  • 构造函数

      var Sprite = cc.Class({
          ctor: function () {
              cc.log(this instanceof Sprite);    // true
          }
      });
    
  • 继承

      // 父类
      var Shape = cc.Class();
      
      // 子类
      var Rect = cc.Class({
          extends: Shape
      });
    
  • 静态变量和静态方法

      var Sprite = cc.Class({
          statics: {
              // 声明静态变量
              count: 0,
              // 声明静态方法
              getBounds: function (spriteList) {
                  // ...
              }
          }
      });
    
  • 设置组件执行优先级

      cc.Class({
          extends: cc.Component,
          editor: {
              executionOrder: -1
          },
      
          onLoad: function () {
              cc.log('Player onLoad!');
          }
      });
    

executionOrder 越小,该组件相对其它组件就会越先执行。 executionOrder 默认为 0,因此设置为负数的话,就会在其它默认的组件之前执行。


二、声明属性

通过在组件脚本中声明属性,我们可以将脚本组件中的字段可视化地展示在 属性检查器 中,从而方便地在场景中调整属性值。

要声明属性,仅需要在 cc.Class 定义的 properties 字段中,填写属性名字和属性参数即可。

1. 简单声明

  • 当声明的属性为基本 JavaScript 类型时,可以直接赋予默认值:

       properties: {
            height: 20,       // number
            type: "actor",    // string
            loaded: false,    // boolean                
            target: null,     // object
        }
    
  • 当声明的属性具备类型时(如:cc.Node,cc.Vec2 等),可以在声明处填写他们的构造函数来完成声明

        properties: {
            target: cc.Node,
            pos: cc.Vec2,
        }
    
  • 当声明属性的类型继承自 cc.ValueType 时(如:cc.Vec2,cc.Color 或 cc.Rect),除了上面的构造函数,还可以直接使用实例作为默认值

        properties: {
            pos: new cc.Vec2(10, 20),
            color: new cc.Color(255, 255, 255, 128),
        }
    
  • 当声明属性是一个数组时,可以在声明处填写他们的类型或构造函数来完成声明

        properties: {
            any: [],      // 不定义具体类型的数组
            bools: [cc.Boolean],
            strings: [cc.String],
            floats: [cc.Float],
            ints: [cc.Integer],
      
            values: [cc.Vec2],
            nodes: [cc.Node],
            frames: [cc.SpriteFrame],
        }
    

2.完整声明

有些情况下,我们需要为属性声明添加参数,这些参数控制了属性在 属性检查器 中的显示方式,以及属性在场景序列化过程中的行为。

	properties: {
	    score: {
	        default: 0,
	        displayName: "Score (player)",
	        tooltip: "The score of player",
	    },
	    
	    scoreDisplay: {
        	default: null,
        	type: cc.Label
    	}
	}

下面是常用参数:

  • default: 设置属性的默认值,这个默认值仅在组件第

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值