一转眼使用LayaAir有半年时间了,踩过很多的小坑,与大家分享一下:
1. 向Sprite或其内的子部件侦听鼠标事件后,Sprite自动将mouseEnable变为true,并且处在其下的组件被其遮挡(及使此Sprite为透明也不能幸免)
2. Graphics画轮廓不能画与Sprite的width、height相同大小
Sprite,用Graphics画矩形轮廓(画一圈线),与宽高相等时,出现右下角无限扩张的Bug,及时右下角的坐标变的无限大。解决方法:画线和摆矢量坐标时,选取(this.width-1),(this.height-1)作为右下角、
3. 编译问题:
1)这是AS3源文:
super.data = $vo
if(_data){
_data.on(EventTypes.Move , this , onData_move);
_data.on(EventTypes.Scale , this , onData_scale);
}
2)这是编译出来的js:(报错)解决方法:
Laya.superSet(ZSprite,this,'data',$voif(this._data){
this._data.on("move" ,this ,this.onData_move);
this._data.on("scale" ,this ,this.onData_scale);
})
3)规范写法,这里加个分号:
super.data = $vo;
4. AS3强类型,JS弱类型
1)从Json串、XML中取到的属性值在原生AS3中可以自动转成Number或Int
2)Laya编译成js后是弱类型的,等号赋值不附带类型转换功能
3)这样再把字符串当成数字来用得到的数值是字符串的二进制数值十进制化后的数字....
5. 骨骼动画的宽高可以拿到但不准,因此骨骼动画只能采取按比例缩放。这样点击触屏区域范围、布局等都受影响。
6. 同一骨骼动画加无法用Templet重复加载
1)Templet加载骨骼动画成功
2)从Templet生成Skeleton并显示在舞台
3)销毁Templet
4)同一个url的骨骼动画,重复步骤1-3,新构造出来的Skeleton显示不出来