日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

creator 静态属性_CocosCreator cc.class声明类

發布時間:2025/3/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 creator 静态属性_CocosCreator cc.class声明类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義類

var Sprite = cc.Class({

name: "sprite"

});

var obj = new Sprite();

定義的類的類型名為 Sprite 可以用 new 構造一個對象。

也可以不定義類名,直接構造類。

構造函數——ctor/ __ ctor__

ctor 不允許含有參數,如果構造時需要用到參數,必須使用__ctor__

var Sprite = cc.Class({

ctor: function () {

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

}

});

繼承——extends

// 父類

var Shape = cc.Class();

// 子類

var Rect = cc.Class({

extends: Shape

});

父類構造函數

不論子類是否有定義構造函數,子類實例化前父類的構造函數都會被自動調用。

不需要嘗試調用父類的構造函數,否則父構造函數就會重復調用。

在一些很特殊的情況下,父構造函數接受的參數可能和子構造函數無法兼容。這時開發者就只能自己手動調用父構造函數并且傳入需要的參數,這時應該將構造函數定義在__ ctor__中。

var Node = cc.Class({

ctor: function () {

this.name = "node";

}

});

var Sprite = cc.Class({

extends: Node,

ctor: function () {

// 子構造函數被調用前,父構造函數已經被調用過,所以 this.name 已經被初始化過了

cc.log(this.name); // "node"

// 重新設置 this.name

this.name = "sprite";

Node.call(this); // 別這么干!

this._super(); // 也別這么干!

}

});

var obj = new Sprite();

cc.log(obj.name); // "sprite"

屬性聲明

Cocos 類中,將聲明的屬性放在 properties 中,分簡單聲明和完整聲明。

簡單聲明:

當聲明的屬性為基本 JavaScript 類型時,可以直接賦予默認值

當聲明的屬性具備類型時(如:cc.Node,cc.Vec2 等),可以在聲明處填寫他們的構造函數來完成聲明

當聲明屬性的類型繼承自 cc.ValueType 時(如:cc.Vec2,cc.Color 或 cc.Rect),除了上面的構造函數,還可以直接使用實例作為默認值

當聲明屬性是一個數組時,可以在聲明處填寫他們的類型或構造函數來完成聲明

properties: {

height: 20, // number

type: "actor", // string

loaded: false, // boolean

target: null, // object

target: cc.Node,

pos: cc.Vec2,

pos: new cc.Vec2(10, 20),

color: new cc.Color(255, 255, 255, 128),

any: [], // 不定義具體類型的數組

bools: [cc.Boolean],

strings: [cc.String],

floats: [cc.Float],

ints: [cc.Integer],

values: [cc.Vec2],

nodes: [cc.Node],

frames: [cc.SpriteFrame],

}

完整聲明

有些情況下,我們需要為屬性聲明添加參數,這些參數控制了屬性在屬性檢查器中的顯示方式,以及屬性在場景序列化過程中的行為

常見屬性:

default: 設置屬性的默認值,這個默認值僅在組件第一次添加到節點上時才會用到

type: 限定屬性的數據類型

visible: 設為 false 則不在 屬性檢查器 面板中顯示該屬性

serializable: 設為 false 則不序列化(保存)該屬性

displayName: 在 屬性檢查器 面板中顯示成指定名字

tooltip: 在 屬性檢查器 面板中添加屬性的 Tooltip

properties: {

score: {

default: 0,

displayName: "Score (player)",

tooltip: "The score of player",

}

}

注:可以在 onl oad 函數中用 this 設置屬性,防止變量在屬性檢查器中賦值后無法改變。

靜態變量

靜態變量或靜態方法可以在原型對象的 statics 中聲明:

var Sprite = cc.Class({

statics: {

// 聲明靜態變量

count: 0,

// 聲明靜態方法

getBounds: function (spriteList) {

// ...

}

}

});

重寫

子類方法可以直接重寫父類方法

用 this._super 調用父類成員

var Shape = cc.Class({

getName: function () {

return "shape";

}

});

var Rect = cc.Class({

extends: Shape,

getName: function () {

var baseName = this._super();

return baseName + " (rect)";

}

});

var obj = new Rect();

cc.log(obj.getName()); // "shape (rect)"

標簽:cc,Class,CocosCreator,var,構造函數,聲明,class,屬性

來源: https://blog.csdn.net/qq_43575267/article/details/88796163

總結

以上是生活随笔為你收集整理的creator 静态属性_CocosCreator cc.class声明类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。