flex 滑动手势

在你的移动Flex应用程序中添加滑动手势(swipe gestures)
2011-07-18 17:07

随着Flex4.5 SDK(又名:Hero)的推出,你现在可以在Android设备上和BlackBerry PlayBook上创建一些非常漂亮的移动应用。这里面就有你可以用在触摸屏上的滑动手势。用这个手势,你可以在屏幕上与屏幕之间移动你想要的。但是,如何在你的Flex移动应用中实现这样的功能呢?
这里有两种方法你可以选择。
第一种涉及到使用ActionScript来附加一个事件侦听器。当你的视图组件初始化,你写入下的代码

private function initView():void {
    addEventListener(TransformGestureEvent.GESTURE_SWIPE, onSwipe);
}
复制代码
这种方法的好处是,它在纯ActionScript项目中和在Flash Professional项目中用法都是一样的。

第二种方法只能用在Flex 应用程序中。它实际上更容易实现一些。你只需要在View tag里捕获gestureSwipe事件就可以,如下所示:
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
            xmlns:s="library://ns.adobe.com/ flex/spark"
            gestureSwipe="onSwipe(event)"/>

 

这就是在有触摸屏的设备上滑动手势的处理,比如移动电话,平板电脑或者更大的触摸屏。但是,你只有一个单一的滑动事件,那么你怎么判断它一个向左的滑动还是一个向右的滑动呢?对此,你需要通过到这个事件的属性来确定滑动的方向,你需要水平方向的offsetX属性和垂直方向的offsetY属性,如下:
private function onSwipe(event:TransformGestureEvent):void {
    // A swipe to the left means the offsetX property will be -1
    // A swipe to the right means the offsetX position will be 1
    if(event.offsetX == -1) {
        doSwipeLeft();
    } else if(event.offsetX == 1) {
        doSwipeRight();
    }

    // The same principle applies to the vertical swipe gesture, so
    // a swipe to the top means the offsetY position will be -1
    // A swipe to the bottom means the offsetY position will be 1
    if(event.offsetX == -1) {
        doSwipeTop();
    } else if(event.offsetX == 1) {
        doSwipeBottom();
    }

 

你可能感兴趣的:(Flex,移动应用,手势滑动)