【问题标题】:Action Script 3 Swipe Function (Won't Swipe)动作脚本 3 滑动功能(不会滑动)
【发布时间】:2014-07-31 16:49:29
【问题描述】:

我正在尝试在 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;
    }
}

有人知道这个问题吗?感谢您的帮助!

【问题讨论】:

    标签: android actionscript-3 flash actionscript


    【解决方案1】:

    您的问题很可能与焦点有关。

    为了使您的代码正常工作,您附加 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();
        }
    }
    

    【讨论】:

    • 非常感谢,现在可以使用了。只需要调整距离之类的东西。
    • 您对如何只让它以一种方式和另一种方式滑动到目前为止有什么建议吗?
    • 不确定我是否理解?您只是从顶部和左侧滑入隐藏菜单吗?
    • 很抱歉这么晚才回复您,但就是这样
    • 我更新了答案以展示一种简单的方法(假设您的侧边菜单在左侧。另外,请确保您在舞台上只有一个滑动监听器。
    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 2016-02-09
    • 2020-01-31
    • 2017-05-22
    • 2020-08-27
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    相关资源
    最近更新 更多