使用CCClass声明类型

定义 CCClass

调用 cc.Class,传入一个原型对象,在原型对象中以键值对的形式设定所需的类型参数,就能创建出所需要的类。

var Sprite = cc.Class({
    name: "sprite"
});

以上代码用 cc.Class 创建了一个类型,并且赋给了 Sprite 变量。同时还将类名设为 "sprite",类名用于序列化,一般可以省略。

Sprite 变量保存的是一个 JavaScript 构造函数,可以直接 new 出一个对象:

var obj = new Sprite();

判断类型

需要做类型判断时,可以用 JavaScript 原生的 instanceof

cc.log(obj instanceof Sprite);       // true

构造函数

 使用ctor声明构造函数:

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

实例方法:

var sprite = cc.class({

      声明一个叫做print的实例方法;

      print:function(){}

)} ;

继承

使用extends实现继承

//父类

var shape = cc.Class({});

//子类

var Rect = cc.Class({

extends shape

});

继承后,cc.Class会统一调用父类构造函数,你不需要显式调用:

var Shape = cc.Class({

      ctor: function(){

     cc.log('shape'); //实例化时,父类构造函数会自动调用 

     }

});

var Rect = cc.Class({

   extends: Shape;

});

var Square = cc.Class({

    extends:Rect,

    ctor:function(){

      cc.log('Square');   //再调用子构造函数;

    }

});

var square = new Square();

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

1:简单声明;

(1):如果是js基本数据类型,则可直接在属性里赋于默认值;

(2):当声明的属性具备类型时,可以在声明处填写他们的构造函数来完成声明;

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

(4):当声明的属性是一个数组时,可以在声明处填写他们的类型或构造函数来完成声明;

2:完整声明:

(1):有些情况下,我们需要为属性声明添加参数,这些参数控制了属性在属性检查器中的显示方式,以及属性在场景序列化中的行为。有六个常用属性参数;分别为:default,type,visible,serializable,displayName,tooltip;

(2):数组声明:数组的default必须设置为空[],如果要在属性检查器中编辑,还需要设置type为构造函数,枚举,或者cc.Integer,cc.Float,cc.Boolean和cc.String;

properties: {
    names: {
        default: [],
        type: [cc.String]   // 用 type 指定数组的每个元素都是字符串类型
    },

    enemies: {
        default: [],
        type: [cc.Node]     // type 同样写成数组,提高代码可读性
    },
}

 

get/set声明:在属性中设置了 get 或 set 以后,访问属性的时候,就能触发预定义的 get 或 set 方法。定义方法如下:

properties: {
    width: {
        get: function () {
            return this._width;
        },
        set: function (value) {
            this._width = value;
        }
    }
}

如果你只定义 get 方法,那相当于属性只读。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值