Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sketch.js pageX未定义错误_Javascript_Jquery_Cordova_Html5 Canvas - Fatal编程技术网

Javascript Sketch.js pageX未定义错误

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; 通过在代码中

我在我的phonegap应用程序中使用intridea提供的sketch.js。经过修改后,它可以正常工作

 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