2

我有一台三星 LD220Z 多点触控显示器,当我尝试使用一些 WPF 和触控功能时,触控事件不会触发。然而,鼠标按下事件似乎正在触发。

这是否意味着我必须考虑到并非所有触摸屏的行为都相同,以及如何在我的屏幕上获得触摸输入?我试过微软发布的Windows 7 Touch pack。多点触控功能似乎在那里工作。

关于如何进行此操作的任何建议?

4

1 回答 1

2

事件 touchstart 有效,但 touchend 无效。可以使用 onmouseup="SOMEfun()" 连三星 Galaxy 3 都是触发事件的问题。添加第一个事件,他们将继续工作,但有两个场景:1)首先添加 onmouseup,而不是 tauchstart 或更好 2)检查移动或桌面,然后添加适当的事件您可以使用我的检测浏览器功能,它非常好(给出一个名称浏览器类型,例如 mobile_chrome_android_tablet 或 firefox_desktop , safari_ipad)

使 NOMOBILE 全局化,你可以简单地替换 var NOMOBILE =0; 与窗口[“NOMOBILE”]=0;

下载浏览器和设备检测器: 还检测浏览器和设备类

类名是 DETECTBOWSER()

(在脚本的第一行)

var BROWSER = 新的检测浏览器()

检查此 BROWSER.NAME

这甚至是疯狂的脚本。同时跟踪 10 个手指(在 canvas2d 中)链接:https ://github.com/zlatnaspirala/multi-touch-canvas-handler

例如 1)

      document.getElementById('myCanvas').addEventListener('touchstart', function(event) {
         event.preventDefault(); 
        var touch = event.touches[0]; 
        /* Avatar go left */
          if (touch.pageX < 235) {
        if (backgroundX < 0){
         left = 1;
         }
        /* Avatar go right */
         if (touch.pageX > 470) {
         right=1;
         }
        /* Avatar go lower distance */
         if (touch.pageX > 235 && touch.pageX < 470 && touch.pageY >250 ) {
         distance--;
         }
        /* Avatar go to high distance */
         if (touch.pageX > 235 && touch.pageX < 470 && touch.pageY <250 )  {
         distance++; 
        }
         } ,false);
        // solution for touchend
          function ENDoff(){

           if (moveLEFT==1) {  moveLEFT=0;  }
           if (moveRIGHT==1) { moveRIGHT=0;  }
          }

HTML CODE 
<canvas id="myCanvas" width="480" height="960" onmouseup="touch_UP();"></canvas>
于 2012-11-28T17:18:59.383 回答