,嘿,伙计我是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();
}
答案 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);