js的形式非常灵活,但是也非常容易出错,需要靠程序员自己去约束。
cc.log() 输出日志
cc.error() 以错误日志形式输出,在web中红色,jsb中无效
sb和h5开发遇到的问题可以分为下面这几类:
1.javascript语言本身的坑以及对语言不熟悉造成的使用上的错误;
2.引擎本身的bug或者API不兼容;
3.jsb和h5实现机制不同导致代码在浏览器里和native应用里行为不一致;
4.移动浏览器上只能使用Canvas模式限制了一些功能;
LabelTTF
cc.labelTTF ,如果创建自定义的ttf字体
1.用 setFontName(“aaa”),web有效,JSB无效
2.用 setFontName(“/res/aaa.ttf”),web无效,JSB无效
cc.Text, cocosstudio里面的文本框。
1. studio拉入去aaa.ttf文件,那么web无效,JSB有效。
2.自己创建的cc.Text,用setFontName(“/res/aaa.ttf”),web无效,JSB有效, 用 setFontName(“aaa”),web有效,JSB无效
3.从json场景文件中获取的Text控件,setString()方法无效,需要设置属性ignoreContentAdaptWithSize为true
关于结构体在js当中的转换
eg:
C++
struct NotifyItem
{
int repeat;
std:: string message;
NotifyItem(const std:: string& message, int repeat) : message(message), repeat(repeat) {}//构造函数
};
NotifyItem msg;
转换成js有两种方式:
1、
var NotifyItem = {
repeat:null,
message:null
};
2、
var NotifyItem = function (_message, _repeat) {
this.message = _message || “”;
this.repeat = _repeat || 0;
};
上面两种方法均可,但是转换成变量的形式之后,不能再声明一个“结构体”类型的变量,而以方法的形式转换之后,可以new一个“结构体”类型的变量