动作脚本3滑动功能(赢了&#t; tipe)

时间:2014-06-10 19:18:10

标签: android actionscript-3 flash actionscript

我正在尝试在AS3中执行简单的滑动动作(动作脚本3)。当我通过Android 3.6运行测试时,我没有错误 - 但没有任何反应。盒子根本不移动。这是我正在使用的代码......

import flash.events.MouseEvent;

import flash.net.URLLoader;

import flash.ui.Multitouch;

import flash.ui.MultitouchInputMode;

import flash.events.TransformGestureEvent;

Multitouch.inputMode = MultitouchInputMode.GESTURE;

//Side Menu Swipe

smenu_mc.addEventListener(TransformGestureEvent.GESTURE_SWIPE, onSwipe);

//Top Menu Swipe

tmenu_mc.addEventListener(TransformGestureEvent.GESTURE_SWIPE, downSwipe);

function onSwipe (e:TransformGestureEvent):void{

    if (e.offsetX == 1){
        //Menu can only swipe to the right
        smenu_mc.x += 278;
    }
}

function downSwipe (e:TransformGestureEvent):void{

    if (e.offsetY == 1){
        //Menu can only swipe down
        tmenu_mc.y += 99;
    }
}

有谁知道这个问题?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

最有可能的是,你的问题与焦点有关。

要使代码生效,您附加SWIPE侦听器的对象必须具有当前焦点才能接收事件。如果他们在屏幕外或用户在滑动之前没有触摸它们,他们将不会发送事件。

尝试将您的听众添加到stage,这样无论刷卡开始的位置,事件都会始终触发。

//Global Swipe
stage.addEventListener(TransformGestureEvent.GESTURE_SWIPE, onSwipe);

要滑动菜单,使用补间库(例如TweenLite)会非常容易。

import com.greensock.TweenLite;
import com.greensock.easing.Quad;
import com.greensock.easing.Bounce;

function slideTopMenuIn(){
    TweenLite.to(tmenu_mc,2,{y: 0, ease: Bounce.easeOut});
}

function slideTopMenuOut(){
    TweenLite.to(tmenu_mc,1,{y: -tmenu_mc.height, ease: Ease.easeIn});
}

function slideSideMenuIn(){
    TweenLite.to(smenu_mc,2,{x: 0, ease: Bounce.easeOut});
}

function slideSideMenuOut(){
    TweenLite.to(smenu_mc,1,{x: -smenu_mc.width, ease: Ease.easeIn});
}

function downSwipe (e:TransformGestureEvent):void{

    if (e.offsetY == 1){
        slideTopMenuIn();
    }

    if(e.offsetY == -1){
        slideTopMenuOut();
    }

    if (e.offsetX == 1){
        slideSideMenuIn();
    }

    if(e.offsetX == -1){
        slideSideMenuOut();
    }
}