版本:ios 10.0.2 creator: 2.0.10
场景:新建helloworld场景,在场景上添加label,字体使用自己定义的ttf字体,构建之后,在ios10.0.2上helloworld场景出不来。
原因:ios10.0.2上面对promise的支持有问题,构建之后文件jsb-default/jsb-adapter/jsb-builtin.js中使用了promise,当初始场景使用ttf的时候,加载ttf字体会使用promise,只有加载成功之后,才会完成场景的加载。
如果在jsb-engine.js中奖loadFont函数中的异步加载去掉,初始场景就能出来,但是这么改font好像就完全没用了。
function loadFont(item, callback) {
var url = item.url;
var fontFamilyName = _getFontFamily(url);
var fontFace = new FontFace(fontFamilyName, "url('" + url + "')");
document.fonts.add(fontFace);
fontFace.load();
// fontFace.loaded.then(function () {
callback(null, fontFamilyName);
// }, function () {
// cc.warnID(4933, fontFamilyName);
// callback(null, fontFamilyName);
// });
}