这么溜?要考虑换ts了
我测了很多版本,新建的项目,creator.d.ts文件都有编译错误。你的demo里面,creator.d.ts却没有编译错误,是不是自己改过?
是啊,github的README里有说,creator.d.ts我做了一些修改的。自带的creator.d.ts有些函数签名不太对,有些不太好用。我有用到的话就改了。
楼主大才,感谢提供这么好的解决方案。
其实我觉得Typescript挺好的,Cocos2d 那么多api,一个一个查根本记不住,有了提示直接看提示猜功能,省的看文档了,效率第一呀。
如果能让Creator支持自动编译ts代码就更方便了,Creator内部应该也是gradle grunt之类的东西吧?项目文件里面没找到类似的配置文件,可能集成到应用里面了,真希望官方支持Typescript,不过官方现在比较差的就是文档,继承Typescript意味着完善文档,估计短期内不可能了。
不过折腾这些东西确实属于脏活累活,楼主辛苦了
Typescript要是在creator本身就支持就好了 不用搞得那么麻烦
官方目前貌似不打算支持ts,让我们自己做ts插件,哎。。。。
用webstorm写js代码,本来就自带提示,包括函数,参数,注释,全局变量,类成员变量。
请教,我想定义一个保存数据的类,js 的版本如下
export default cc.Class({
name: "SpineInfo",
properties: {
effectName: {
default: ""
},
animationName: {
default: "animation",
},
skeleton: {
default: null,
type: sp.SkeletonData,
}
},
});
然后在另外一个类里引用他
export default cc.Class({
extends: cc.Component,
properties: {
effects: {
default: [],
type: [SpineInfo],
},
},
那么在 TypeScript 里应该怎样实现 SpineInfo 这个类呢?
@??? // 这里用什么
export default class SpineInfo {
@CCProperty(string)
public effectName: string;
@CCProperty({default: "animation", type: cc.String})
public animationName: string;
@CCProperty({ default: null, type: sp.SkeletonData }
public skeleton: sp.SkeletonData;
}
我之前没考虑到这种用法,这个数据类请你暂且用原生的cc.Class定义一下。下一版本Creator 1.5会内置支持TS,有@ccclass装饰器,应该可以解决你这个问题。
自己折腾了一个 CCData,发现这样可以
export function CCData(className) {
return function (constructor) {
let uuid = getUUID();
if (defined[uuid]) return definedClass[uuid];
constructor.$super = cc.Object;
let cls = define(className, constructor, currentMixins[uuid], void 0, {});
declareProperties(cls, className, currentProperties[uuid], constructor, void 0);
currentProperties = {};
currentMixins = {};
currentEditor = {};
defined[uuid] = true;
definedClass[uuid] = cls;
return cls;
}
}
对,这就是cc.Class不继承cc.Component的情况。
在cocos2d-js 3.9版本的项目里面用class定义场景和layer类,touch事件无法触发,不报错。改回cc.Scene.extend();的方式就没有问题。我只是在新建的HelloWorldScene上改了语法。
没有看懂你的意思?这是Creator的项目,不能用在cocos2d-js上。
C++ 转过来的,感觉typescript听好用的。 之前不知道 ctrl+w是干什么的,刚刚试了一下,有效果。
按照官方的话来说,你不要管那么多,只要学就行了,不要问为什么
TypeScript 文件放在 resources 目录下build 时会有 meta uuid 崩溃的现象。v1.6.0 Cocos Creator。这有什么方法吗?
正需要,多谢楼主
感谢楼主做出的技术支持,在楼主的帮助建议下,官方在新版本里面已经提供了 TypeScript 的更全面的支持,本文内容不作为最新教程,仅供存档和参考。如需学习请查阅官方教程:
http://www.cocos.com/docs/creator/scripting/typescript.html
写客户端逻辑,如果要我选择一门语言, 我会选择无类型语言.发明无类型语言的人是位"张三丰"式的人物.