as3多点触控绘图应用程序

时间:2014-09-03 13:00:11

标签: actionscript-3 drawing multi-touch

我正在使用多点触控屏幕上的动作脚本3绘制应用程序..代码运行良好,除了一个错误..当我使用两个手指时它不会绘制两个单独的行..但是连接它们

从两根手指触摸一条线而不是两条点

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
writeSubMenu.drawingBoard.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
private function onTouchEnd(e:Event):void 
    {
        writeSubMenu.drawingBoard.removeEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
        writeSubMenu.drawingBoard.removeEventListener(TouchEvent.TOUCH_END, onTouchEnd);
        writeSubMenu.boardBitmapData.draw(writeSubMenu.drawingBoard);
    }

    private function onTouchMove(e:Event):void 
    {
            if (writeSubMenu.isEraseron )
        {
            writeSubMenu.drawingBoard.graphics.lineTo(writeSubMenu.drawingBoard.mouseX, writeSubMenu.drawingBoard.mouseY);
            writeSubMenu.drawingBoard.graphics.lineStyle(50, 0xffffff);

        }
        else
        {
            writeSubMenu.mouseMoved = true;
            writeSubMenu.lineColor = writeSubMenu.paintColor;
            writeSubMenu.drawingBoard.graphics.lineTo(writeSubMenu.drawingBoard.mouseX, writeSubMenu.drawingBoard.mouseY);
            writeSubMenu.drawingBoard.graphics.lineStyle(13, writeSubMenu.lineColor);

            writeSubMenu.isEraseron == false;

        }


    }

    private function onTouchBegin(e:Event):void 
    {
        writeSubMenu.drawingBoard.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
        writeSubMenu.drawingBoard.graphics.moveTo(writeSubMenu.drawingBoard.mouseX, writeSubMenu.drawingBoard.mouseY);

        writeSubMenu.mouseMoved = false;
        writeSubMenu.drawingBoard.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
    }

在as3或外部库中有这种情况的解决方案吗? 注意:我试过涂鸦而且也没有工作

谢谢

2 个答案:

答案 0 :(得分:0)

看起来你只有一个绘图画布。因此,当您调用lineTo时,它将只从先前位置绘制线条,无论此先前位置是由一个还是另一个触摸启动。快速的想法(可能不是最好的想法)是有多个矢量来存储触摸的位置点。然后,您可以在Enter_Frame处理程序中绘制多行。

答案 1 :(得分:0)

不确定你是否还在为此工作,但我只是做了类似的事情......

我正在捕捉TOUCH_MOVE,我所做的是使用我提供给绘图功能的touchPointID为坐标创建数组。

每次我的绘图功能触发时,它都会存储"最后触摸位置"该触摸点ID的坐标然后绘制到该touchPointID的新触摸位置(随后将该位置存储为"新的"最后已知的位置等等。)

原始绘图代码是我在网上找到的鼠标捕获代码,我试图适应多点触控。我的功能首先"移动"最后一个已知的触摸位置然后绘制一个" lineto"新的触摸位置。

这或多或少有效,但如果我动作太快,我会得到"楼梯踏步" (直线)在我的曲线上。我不确定这是否是程序的性能问题(我想做所有这些计算)或触摸的限制"解决方案"我的触摸屏显示器(触摸采样率,我想你可以称之为)

Ĵ