background image

本文由麦可网

http://www.microoh.com/

 收集整理,转载请注明出处。

Cocos2d-x 里 Javascript 开发的一些要点

.CocosBuilder 和 Javascript 里的 MVC 模式

var scene = cc.BuilderReader.loadAsScene("CheckUpdateLayer");
var layer = cc.BuilderReader.load("CheckUpdateLayer");
这两行代码分别加载成

scene 和 layer.

一般来说

,我们会创建一个 CheckUpdateLayer.js,

要注意上图里的

JS Controller”里填

入的

CheckUpdaeLayer”,其实并不是一个 Layer,而是一个名副其实的 Controller,因为

CocosBuilder 奉行的就是 MVC 模式.
举个例子

,如果在 CheckUpdateLayer.js 里增加了一个方法,如下:

CheckUpdateLayer.prototype.foo = function() {
    cc.log("this is afunction");
}
这个

foo 方法其实是属于 Controller 的方法,并不是属于 Layer 或 Scene 的方法.

.什么时候才是 CCB 加载完成?

CheckUpdateLayer.prototype.onDidLoadFromCCB = function() {
    cc.log("CheckUpdateLayerinit");
    var l =cc.LayerColor.create(cc.c3b(33,233,0), 200, 200);
    this.rootNode.addChild(l);
}
打开

jsb_cocosbuilder.js,找到 cc.BuilderReader.load 方法,你要看到你心中的疑问的答

.

.generated/cocos2dxapi.js 全错了.

里面的类都是带

CC 前缀的,例如 cc.CCNode,cc.CCLayer,cc.CCSprite,但其实真实在 JS

里使用的时候是没有前缀的

,例如 cc.Node,cc.Layer,cc.Sprite,etc…

 

4.cocos2d-x 常用的几种单位在 C++和 JS 里的对应(jsb_coco2d.js)

C++

Javascri
pt

CCLOG

cc.log

ccc3

cc.c3b

ccc4

cc.c4b

ccc4f

cc.c4f

ccp

cc.p

CCSize(w,h)

cc.size

CCRect(x,y,w
,h)

cc.rect

5.类型