cocos2d-x js 綁定自定義類型

1、conversions.yaml文件添加要綁定的類型轉換函數:文件所在目錄:

133053304.png

添加的內容如下:

133117429.png

Int1DArray 是我要綁定的結構體。然後綁定要使用的相關文件。(類文件和頭文件)

2、新建一個js項目,將綁定好的文件和源文件加入到項目中.(怎麼加自己想吧!)

3、修改ScriptingCore

頭文件中聲明:

Int1DArray* jsval_to_int1darray(JSContext *cx, jsval v);

類文件中實現:

Int1DArray*jsval_to_int1darray(JSContext *cx, jsval v)

{

JSObject *arr;

if (JS_ValueToObject(cx, v,&arr) && JS_IsArrayObject(cx, arr)) {

uint32_t len = 0;

JS_GetArrayLength(cx, arr, &len);

Int1DArray *int2d=(Int1DArray*)malloc(sizeof(Int1DArray));

       int2d->value=(int*)malloc(sizeof(int)*len);

       int2d->length=len;

for (int i=0; i < len;i++) {

jsval elt;

int temp;

if (JS_GetElement(cx, arr,i, &elt) && JS_ValueToInt32(cx, elt, &temp)) {

                  int2d->value[i]= temp;

           }

       }

return int2d;

   }

returnNULL;

}

4、hello.js中找個合適的位置測試代碼:

varmysqlite=sql.MySQLite.create('cgw.db');

if(mysqlite.open()){

    mysqlite.createTable("UserInfo","(ID intprimary key , UserName char, PassWord char)");

    mysqlite.insert("UserInfo", "(ID,UserName,PassWord)values(1,'kfqcome','123456')");

var a=new Array(1,2,3);

    mysqlite.insert("UserInfo", "(ID,UserName,PassWord)values(2,'miss wang','654321')",array);

    mysqlite.selectAll("UserInfo");

     }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章