Sum*_*air 1 javascript jquery html5-canvas cordova
我在我的phonegap应用程序中使用了intridea的sketch.js.它可以正常修改
case 'touchstart':
if (this.painting) {//add
this.stopPainting();
//add
}//add
this.startPainting();
break;
Run Code Online (Sandbox Code Playgroud)
通过将以上行添加到代码中.但是我得到一个pageX未定义的错误,这会导致我的应用程序崩溃.
01-23 19:53:59.342: E/Web Console(31932): Uncaught TypeError: Cannot read property 'pageX' of undefined at file:///android_asset/www/js/external_libs/sketch.js:107
Run Code Online (Sandbox Code Playgroud)
如何克服这个问题,任何帮助将不胜感激.谢谢
Mic*_*ael 10
似乎每个人都已经过了jqscribbel.js,但是为了用sketch.js直接回答这个问题,你需要检查是否e.originalEvent.targetTouches[0]定义了.我还没有挖到sketch.js太多,但似乎触发了触摸事件时,e.originalEvent.targetTouches[0]不再定义,所以试图找到.pageXundefined会产生错误.此错误导致整个画布重新绘制,因此您无法在画布上绘制多个草图.要修复此错误,只需添加查找以下两行代码(第100/101行):
e.pageX = e.originalEvent.targetTouches[0].pageX;
e.pageY = e.originalEvent.targetTouches[0].pageY;
Run Code Online (Sandbox Code Playgroud)
并替换为
if (e.originalEvent.targetTouches[0] !== undefined && e.originalEvent.targetTouches[0].pageX !== undefined){
e.pageX = e.originalEvent.targetTouches[0].pageX;
}
if (e.originalEvent.targetTouches[0] !== undefined && e.originalEvent.targetTouches[0].pageY !==undefined){
e.pageY = e.originalEvent.targetTouches[0].pageY;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |