[]Touch接口缺少stageX,stageY
根据官方DEMO “鼠标交互--双指旋转(多点触控)”有这样的代码:
private onMouseDown(e: Event): void {
var touches: Array<any> = e.touches;
if (touches && touches.length == 2) {
this.preRadian = Math.atan2(
touches[0].stageY - touches[1].stageY,
touches[0].stageX - touches[1].stageX);
Laya.stage.on(Event.MOUSE_MOVE, this, this.onMouseMove);
}
}
在微信调试时取出的touches是一个Touch数组,通过chrome看Touch类是包含stageX/stageY的,但lib.d.ts中声明的Touch接口中没有stageX/stageY,因此如果做强类型判断时编译不过。目前我的解决方法是在lib.d.ts的Touch声明里加入这两个变量。
private onMouseDown(e: Event): void {
var touches: Array<any> = e.touches;
if (touches && touches.length == 2) {
this.preRadian = Math.atan2(
touches[0].stageY - touches[1].stageY,
touches[0].stageX - touches[1].stageX);
Laya.stage.on(Event.MOUSE_MOVE, this, this.onMouseMove);
}
}
在微信调试时取出的touches是一个Touch数组,通过chrome看Touch类是包含stageX/stageY的,但lib.d.ts中声明的Touch接口中没有stageX/stageY,因此如果做强类型判断时编译不过。目前我的解决方法是在lib.d.ts的Touch声明里加入这两个变量。
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
qian
赞同来自:
我们的stageX,和stageY事件是在event里面
你可以搜一下event这个类看一下
brooshe
赞同来自:
另外看了下Event类,touches是从nativeEvent.touches而来,再往上层跟nativeEvent是MouseManager.runEvent时_eventList中的元素而来,再之后貌似是canvas dispatch了,没具体看到类型