首页 > 学院 > 开发设计 > 正文

AS3移动设备上的触控事件和手势

2019-11-06 09:22:05
字体:
来源:转载
供稿:网友

当涉及到移动设备的时候,简单鼠标点击的日子已经一去不复返了。实际上,有很多很酷触控事件和手势真的可以扩展应用程序的功能。

触控事件 vs. 手势那么触控事件和手势有什么区别呢?嗯,触控事件是设备提供的触摸点原始数据。手势是利用触控事件实现的预设“方案”。比如想改变照片的大小时,你无需跟踪两个触摸点检测他们是靠近还是远离,可以考虑用GESTURE_ZOOM事件实现。

现在让我们更深入去看看ActionScript提供的触控事件 (TOUCH_POINT) 和手势(GESTURE)

鼠标点击 = 轻敲事件轻敲事件和桌面系统中的鼠标点击作用一样:Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;square.addEventListener(TouchEvent.TOUCH_TAP, tapHandler);function tapHandler(event:TouchEvent):void{// Start your custom code}点击/拖拽 = Touch Begin/End当你在移动设备上做点击并且拖动可以使用 TOUCH_BEGIN和TOUCH_END:Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;square.addEventListener(TouchEvent.TOUCH_BEGIN, touchBeginHandler);var fl_DragBounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);function fl_TouchBeginHandler(event:TouchEvent):void{    event.target.startTouchDrag(event.touchPointID, false, fl_DragBounds);}square.addEventListener(TouchEvent.TOUCH_END, touchEndHandler);function fl_TouchEndHandler(event:TouchEvent):void{    event.target.stopTouchDrag(event.touchPointID);}长按长按(Long Tap)通常用于显示所选图片上的子菜单。例如,在一张图片上长按可能会激活一个子菜单允许用户保存图片。实现这个功能可以利用一个计时器倒数1秒后显示菜单。var PRessTimer:Timer = new Timer(1000);pressTimer.addEventListener(TimerEvent.TIMER, pressTimerHandler);function fl_PressTimerHandler(event:TimerEvent):void{    // Start your custom code}Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;square.addEventListener(TouchEvent.TOUCH_BEGIN, pressBeginHandler);function pressBeginHandler(event:TouchEvent):void{    pressTimer.start();}square.addEventListener(TouchEvent.TOUCH_END, pressEndHandler);square.addEventListener(TouchEvent.TOUCH_ROLL_OUT, pressEndHandler);function pressEndHandler(event:TouchEvent):void{    pressTimer.stop();    // End your custom code}两指轻敲两指轻敲是为图片添加功能的另一种方式。两个手指可以呼出子菜单。Multitouch.inputMode = MultitouchInputMode.GESTURE;stage.addEventListener(GestureEvent.GESTURE_TWO_FINGER_TAP, twoFingerTapHandler);function twoFingerTapHandler(event:GestureEvent):void{// Start your custom code} 捏缩放在地图或照片上面捏缩放(Pinch to Zoom)。Multitouch.inputMode = MultitouchInputMode.GESTURE;stage.addEventListener(TransformGestureEvent.GESTURE_ZOOM, zoomHandler);function zoomHandler(event:TransformGestureEvent):void{    instance_name_here.scaleX *= event.scaleX;    instance_name_here.scaleY *= event.scaleY;}摇移事件如果图片或者列表的大小大于屏幕大小,那么可使用摇移事件(Pan Event)去显示更多内容。Multitouch.inputMode = MultitouchInputMode.GESTURE;instance_name_here.addEventListener(TransformGestureEvent.GESTURE_PAN, panHandler);function panHandler(event:TransformGestureEvent):void{    event.currentTarget.x += event.offsetX;    event.currentTarget.y += event.offsetY;}旋转事件允许用户用两个手指去旋转物品。对于游戏和照片都很有用。Multitouch.inputMode = MultitouchInputMode.GESTURE;instance_name_here.addEventListener(TransformGestureEvent.GESTURE_ROTATE, rotateHandler);function rotateHandler(event:TransformGestureEvent):void{    event.target.rotation += event.rotation;}上/下/左/右 快速划允许用户多屏内容之间转换或者长文本框滚动。Multitouch.inputMode = MultitouchInputMode.GESTURE;stage.addEventListener (TransformGestureEvent.GESTURE_SWIPE, swipeHandler);function swipeHandler(event:TransformGestureEvent):void{    switch(event.offsetX)    {        case 1:        {            // swiped right            break;        }        case -1:        {            // swiped left            break;        }    }    switch(event.offsetY)    {        case 1:        {            // swiped down            break;        }        case -1:        {            // swiped up            break;        }    }}

上一篇:两线程间通信

下一篇:MouseEvent

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表