Laya经验总结
简写prototype时与类的顺序很重要
错误
_p = Player.prototype;
Laya.class(Player, "Player", _super);
正确
Laya.class(Player, "Player", _super);
_p = Player.prototype;
也就是Laya.class紧跟着构造函数
设置了鼠标事件点击没有反应
- 非按钮类型可能未设置
.size
(也就是width和height)的值。 - 填写鼠标事件类型时,如果是
字符串
,看是否书写正确。- Laya.Event.CLICK="click"
- 试试冒泡方法,给子对象加事件,看是否有用,如果有用,那就是层级问题 有可能
- 在你要点击的对象之上有更高一层可点击内容
- 可能
alpha = 0
需要设置zOrder
- 可能
在设置中如果出现cannot read / set undefine ;
声明了变量,没有赋值;
var obj;
var name = "cube";
// 想动态给obj设置s属性
obj[name] = 12;
//会报错
好习惯
:在声明了变量后直接 赋值 或 空值 或 null ;
var obj = {};
Sprite不显示
- 是否
addChild
- 是否设置
pos
,或与父级的相对位置最后是否在舞台内 - 是否设置了
zOder
,在背景下边 visible
原因alpha
原因
出现关于时间器的问题
Cannot read property '$_TID' of undefined
- 重复设置了同一个timer
- 清除了没有的timer
- timer里的函数未定义
drawTexture和loadImage区别
drawTexture 的图片要预先加载
loadImage===graphics.loadImage
可以接受url、base64、svg的格式
- 重复设置了同一个timer
- 清除了没有的timer
- timer里的函数未定义
Laya.Handler.create和function
主要看API里的看参数的类型
timer: 方法
loop(... , method:Function, ...);
**event:** 监听者
on(... , listener:Function, ...);
**LoaderManager:** 事件处理器
load(..., complete:Handler, ...);
TimeLine问题
- 在第一次play后,会记住第一次播放时的前后属性,直接给
TimeLine
加.to()
不会更改,只会在后面增加动画- 如果要增加的话就要设置reset();
- 只要播放不会叠加,清除之前状态播放本次状态;
- 多个相同类的可以放进一个数组里控制;
如果出现undefine或can't read属性或函数
- 可能在执行此函数之前未定义,早于定义
Animator事件:STOPPED / COMPLETE
- Event.STOPPED是指一个动画片段播放完后回调
- Event.COMPLETE是指循环动画片段播放完后回调
使用遮罩时,出现黑边
- 如果遮罩与遮罩内的图形总长大于
2048
时会有问题,而且特别消耗性能
,请慎用- console会报大于2048不会放于缓存中
保存JS中JSON或TXT或图片等到本地
引入 FileSaver.js或FileSaver.min.js
来源
下载JSON
var blob = new Blob([JSON.stringify(data)], { type: "" });
saveAs(blob, "hello.json");
下载TXT
var blob = new Blob([JSON.stringify(data)], {
type: "text/plain;charset=utf-8"
});
saveAs(blob, "hello.txt");
评论