用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
写客户端逻辑,如果要我选择一门语言, 我会选择无类型语言.发明无类型语言的人是位"张三丰"式的人物.
1.5以后Creator就自带TypeScript支持了,直接在资源管理器中新建TypeScript脚本即可,现在这个帖子仅作参考。
问下,这样的MVC风格,如果我多个model,或者controllers间数据怎么交互?
这种情况我习惯用全局事件传递数据。
socket方面的呢?
我尝试把socket.io.js一丢进项目里面就报错了。
楼主,github上的项目两年没有更新了,可以更新一下吗?cocos creator 1.9.1 跑不起来了
新版的VS Code 也可以了,用TS写着挺不错的