运动按钮响应触摸

时间:2013-11-11 19:20:27

标签: ios actionscript-3

所以我一直在编写这段代码已经好几周了(我是AS3的初学者),但在我的生活中不能弄清楚如何编写接收触摸输入的工作移动按钮。此代码以其中一个Adobe Samples建模,但是当我运行它时,它无法正常工作。

这是我的代码:

package MovementButtons
{
    import flash.events.Event;
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.events.TouchEvent;


    public class TouchInput extends MovieClip
    {
        public var bLeftPressed:Boolean = true;
        public var bRightPressed:Boolean = true;

        public var nSpeed:Number = 100;
    }

    public function TouchInput()
    {
        left_btn.addEventListener(TouchEvent.TOUCH_BEGIN, TouchBeginHandler, false, 0, true);
        left_btn.addEventListener(MouseEvent.TOUCH_END, TouchEndHandler, false, 0, true);
        right_btn.addEventListener(TouchEvent.TOUCH_BEGIN, TouchBeginHandler, false, 0, true);
        right_btn.addEventListener(TouchEvent.TOUCH_END, TouchEndHandler, false, 0, true);

        //Updating Screen
        addEventListener(TouchEvent.TOUCH_BEGIN, enterFrameMoveHandler);
    }

    protected function enterFrameMoveHandler(event:TouchEvent):void
    {
        var click.txt:String= "The function is working";
        while ( bLeftPressed ) {
            guy_mc.x -= nSpeed;
        }
        while( bRightPressed ) {
            guy_mc.x += nSpeed;
        }
    }

    protected function TouchBeginHandler(event:TouchEvent):void
    {
        click.txt = "Its clicked.";
        switch ( event.target )
        {
            case left_btn:
                left = true;
                break;
            case right_btn:
                right = true;
                break;
        }
    }

    protected function TouchEndHandler(event:MouseEvent):void
    {
        switch ( event.target )
        {
            case left_btn:
                left = false;
                break;
            case right_btn:
                right = false;
                break;
        }
    }   
}

1 个答案:

答案 0 :(得分:0)

看看Multitouch.inputMode。这决定了应用程序接受的触摸输入类型。当您需要GESTURE时,默认为TOUCH_POINT

或者,您可以改为使用MouseEvent等价物。在触摸设备上,MouseEvent的调度方式与TouchEvent的调度方式基本相同。除非有特殊原因需要使用它,否则大多数开发人员完全忽略TouchEvent类。

为了将来参考,您应该在“它不起作用”之外的问题中包含更多详细信息。我们试图在这里盲目地调试问题,以便您可以提供的信息越多越好。幸运的是,这是处理触摸事件时相当常见的问题