1.6内测版,项目:typescript,mac
最近项目准备用creator,因为公司规定电脑不能用QQ,所以好多问题只能靠自己还有论坛帖子,期间碰到一些问题,最近一周我都会把这些障碍都记下来,不定期更新,方便大家参考,引擎组毕竟精力时间都有限,今天是第二天…
另外如果大家有1.6的问题,多反馈到论坛上来,好歹能留种
1.android studio的编译今天怎么都不行,老是报错android/log.h No such file, API 22也不行,翻了一遍论坛,自己尝试降低sdk版本,发现19这个版本是可以的。另外编译选项尽量先不要选arm64-v8a, 因为我用的ndk是r10e,貌似是不支持,到目前为止,我这里打包是没有问题的了
2.ios的编译,切记资源的刷新是在点击creator的构建才会被更新,如果某个场景界面被干掉了,但是在日志里还能看它加载,那可能是某些依赖的东西没有清理干净,这时候要重新构建再跑,否则会报错
3.i18n插件目前是不能直接起作用的,不管是编辑器还是浏览器直接跑,代码都不能得到正常结果,即使i18n.json中你设置了默认语言,但是插件LanguageData.js文件中 window.i18n.curLang 的值是没有被初始化为默认值的,也不知道language参数运行在各个平台是怎么设置或者检测的
4.creator 添加组件的时候,不知道为什么组件添加了,却的不能立即显示出来,要勾选取消上面已有的组件再勾回来才可以显示,如果多次添加还能添加多个相同的组件上去(只有新添加才会这样,移除再添加回来就不会出这种问题)
5.准备着手网络模块,因为要兼顾native, 倾向选择socket.io,但是官方对socket.io库没有维护(而且是网友贡献的,质量还存在问题),官方推荐websocket用着,我这里不知道最新动态,1.6 ccc, native socket.io是否已有改善?
----------------------------------淫荡的分割线------------------------------
q:今天来说一下很多人在提的一个问题,怎么让creator访问全局变量或者公共模块,如果我们用typescript,那编辑器是目前不支持直接导入为插件的(如果不这么干,对于那些公共模块,那我们到处都要去import…from,会疯掉的),不愿意破坏队形直接用js,要怎么做呢,官方回复说这个功能目前不优先,要我们手动来.
这要先看看这页文档的命名空间部分
http://www.cocos.com/docs/creator/scripting/typescript.html#--5
我们需要装npm,(期间执行 npm install typescript -g 命令可能会权限不足,请在前面加上sudo),之后我们就可以照着文档里的操作,执行对那些ts文件进行编译,Outfile到指定目录,然后用creator导入为插件,感觉也还算方便。
比如:
namespace Common{
export function print(){
console.log(“Common print”);
}
}
编译后:
var Common;
(function (Common) {
function print() {
console.log(“Common print”);
}
Common.print = print;
})(Common || (Common = {}));
导入为插件后我们就可以全局使用Common.xxx来执行我们的公共模块
但是…这里有个问题,我在namespace.ts里,不能访问cc的命名空间了(虽然最终编译后不影响结果),这时候只要在顶部
引用一下creator的命名空间就好了
//-----------------淫荡的分割线----------
我觉得我就不新开帖子了,关于ts怎么用全局变量的问题(上面说的东西可能不完整,我多贴点图进来)
我觉得大家这么执着于要用全局(包括我),根源在于,ts不像c++的头文件,当我需要把一些公关模块组合include在一起的时候,不能做成common.h一次性把所有公关模块import进来,而要一个个去import,这种搞法是很让人抓狂的,今天来分享下怎么配置自动编译以及生成声明文件,以此来解决这类问题
配置之后,我们按command+shit+B执行下任务编译,这里会把所有的include配置项目录namespaces下的ts文件全部编译输出文件到 outfile下来,而且只会集中在一个两个文件里,一个js文件(导入为插件用),一个t.ds声明文件(代码提示用)
你项目上所有你想要做成公共模块的,都可以这么玩,无需import,又能全局使用


