更新了TouchEvent属性?

时间:2014-01-05 04:07:52

标签: actionscript-3 api actionscript air air-native-extension

假设我有这个非常简单的功能:

function pressingDown(e:TouchEvent):void
{
    trace(e.pressure);
}

正如您所看到的,它会追踪用户触摸的压力,但如何更新?

例如,用户根本不会移动手指,而我的程序需要始终检测触摸的压力。 触摸什么事件我应该用于此吗?它存在吗?如果没有,我可以做些什么来实现我的要求,或者我可以在没有第三方库/ ANE的情况下实现它?

1 个答案:

答案 0 :(得分:0)

我之前从未使用过e.pressure,但我不知道这会起作用。 但不妨提出一些想法,万一它有所帮助。

尝试Event.ENTER_FRAME

package {

    public class TouchApp extends MovieClip {

       var _currentTouchEvent:TouchEvent;

        public function TouchApp()
        {
            this.addEventListener(TouchEvent.TOUCH_BEGIN, pressingDown);
        }

        function pressingDown(e:TouchEvent):void
        {
            _currentTouchEvent = e;
            //When touch is down, do this function every frame.
            this.addEventListener(Event.ENTER_FRAME, whileBeingTouched);

            //Add EventListener to catch "touchEnd" event.
            this.stage.addEventListener(TouchEvent.TOUCH_END, onTouchEndHandler);
        }

        function whileBeingTouched(evt:Event):void
        {
            //Action to do every frame.
            trace(_currentTouchEvent.pressure);
        }

        function onTouchEndHandler(e:TouchEvent):void
        {
            if (_currentTouchEvent) _currentTouchEvent = null;

            this.removeEventListener(Event.ENTER_FRAME, whileBeingTouched);
            this.stage.removeEventListener(TouchEvent.TOUCH_END, onTouchEndHandler);
        }
    }
}