Javascript Sketch.js pageX未定义错误
我在我的phonegap应用程序中使用intridea提供的sketch.js。经过修改后,它可以正常工作Javascript Sketch.js pageX未定义错误,javascript,jquery,cordova,html5-canvas,Javascript,Jquery,Cordova,Html5 Canvas,我在我的phonegap应用程序中使用intridea提供的sketch.js。经过修改后,它可以正常工作 case 'touchstart': if (this.painting) {//add this.stopPainting(); //add }//add this.startPainting(); break; 通过在代码中
case 'touchstart':
if (this.painting) {//add
this.stopPainting();
//add
}//add
this.startPainting();
break;
通过在代码中添加上面的行。但是我得到了一个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
如何克服这个问题,任何帮助都将不胜感激。谢谢似乎每个人都转向了jqscribbel.js,但要用sketch.js直接回答这个问题,您需要检查是否定义了
e.originalEvent.targetTouches[0]
。我还没有深入研究sketch.js,但似乎在触发修补事件时,e.originalEvent.targetTouches[0]
不再定义,因此尝试查找未定义的.pageX
会出错。此错误导致重新绘制整个画布,因此不能在画布上绘制多个草图。要修复此错误,只需添加以下两行代码(大约第100/101行):
并替换为
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;
}
似乎每个人都转向了jqscribbel.js,但要用sketch.js直接回答这个问题,您需要检查是否定义了
e.originalEvent.targetTouches[0]
。我还没有深入研究sketch.js,但似乎在触发修补事件时,e.originalEvent.targetTouches[0]
不再定义,因此尝试查找未定义的.pageX
会出错。此错误导致重新绘制整个画布,因此不能在画布上绘制多个草图。要修复此错误,只需添加以下两行代码(大约第100/101行):
并替换为
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;
}
在Phonegap中使用sketch.js是否成功?我自己也在尝试使用它,但当你每次画它时,它都会清除之前画的线,但我不知道为什么。@RickCurran:不幸的是,没有。我最终使用了JQScrible.js,它成功了。谢谢,我还切换到另一个库,但使用Fabric.js代替@SumodhNair@RickCurran:太好了:)你在Phonegap中使用sketch.js成功了吗?我自己也在尝试使用它,但当你绘制它时,每次都会清除之前绘制的线,但我不明白为什么。@RickCurran:不幸的是,没有。我最终使用了JQScrible.js,这就成功了。谢谢,我也切换到了另一个库,但使用了Fabric.js来代替@SumodhNair@RickCurran:太好了:)谢谢,
targetTouches[0]
是我在iOS上的解决方案,也适用于clientX
。谢谢,targetTouches[0]
是我在iOS上的解决方案,也适用于clientX
。