AS3:使用触摸屏绘制线条

时间:2014-07-11 17:44:00

标签: android ios actionscript-3 flash multi-touch

,嘿,伙计我是AS3的新手,有触摸事件,用于触摸屏。所以我想要做的就是在用户拖动他/她的手指后面画一条线,然后在释放时清除线。我也希望进行多点触控,这样用户可以使用多个手指,但不确定是否可以使用AS3。感谢大家的帮助!目前正在处理此

import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
import flash.events.TransformGestureEvent;
import flash.events.MouseEvent;

Multitouch.inputMode = MultitouchInputMode.GESTURE;

var lineContainer:Shape = new Shape();

square_mc.addEventListener(TransformGestureEvent.GESTURE_PAN, onPan);
square_mc.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate);
square_mc.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom);
stage.addEventListener(MouseEvent.MOUSE_DOWN, drawlines);

square_mc.gotoAndStop(1);

function onPan (e:TransformGestureEvent):void{
    square_mc.y += e.offsetY;
    square_mc.x += e.offsetX;
    square_mc.gotoAndStop(3);
}

function onRotate (e:TransformGestureEvent):void{
    square_mc.rotation += e.rotation;
    square_mc.gotoAndStop(2);
}

function onZoom (e:TransformGestureEvent):void{
    square_mc.scaleX *= e.scaleX;
    square_mc.scaleY *= e.scaleY;
    square_mc.gotoAndStop(4);
}

function drawlines(e:MouseEvent):void {
            lineContainer.graphics.clear(); 
            lineContainer.graphics.lineStyle(5, 0x0099FF); 
            lineContainer.graphics.endFill();
}

1 个答案:

答案 0 :(得分:1)

鼠标事件在触摸屏中有效。鼠标左键单击的示例变为“点击”。最好的

trace ("I am Mouse Click.. working!!")

作为function drawlines(e:MouseEvent):void内部的第一行,如果你得到了跟踪消息,那么代码工作正常。

你也不会看到代码cos的任何内容,即使你没有var lineContainer:Shape = new Shape();你没有,然后用addChild (lineContainer);将这个形状添加到显示中所以Flash知道你的意思但你还没告诉它会告诉你发生了什么。

最后的建议是最好为LineContainer制作一个容器Sprite。 Sprite能够像舞台一样监听鼠标事件。如果你把这个Sprite称为“画布”,那么就是 canvas.addEventListener(MouseEvent.MOUSE_DOWN, drawlines);