如何在AS3中的函数内杀死EnterFrame

时间:2012-09-03 19:12:33

标签: actionscript-3

如何使用我的动作脚本3删除我的EventListener,我已尝试过任何代码,但我仍然无法杀死我的EventListener,请帮助新手一个....

Multitouch.inputMode = MultitouchInputMode.GESTURE;

stage.addEventListener(TransformGestureEvent.GESTURE_SWIPE, fl_SwipeToGoToNextPreviousFrame);

function fl_SwipeToGoToNextPreviousFrame(event:TransformGestureEvent):void
{
    if (event.offsetX == -1)
    {
        // swiped left
        nextFrame,play();
    }

    else if (event.offsetX == 1)
    {
        addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler_2);

        function fl_EnterFrameHandler_2(event:Event):void
        {
            prevFrame();

        }
    }
}

3 个答案:

答案 0 :(得分:2)

您可以随时输入功能线:

function eventHandler (event:Event):void {
    event.currentTarget.removeEventListener(event.type , arguments.callee);
}

这将从处理函数内部删除事件。

答案 1 :(得分:1)

removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler_2);

removeEventListener应该这样做

答案 2 :(得分:0)

您似乎无法从外部某处解析fl_EnterFrameHandler_2函数名称。将其代码放在括号中,以划分滑动侦听器功能:

function fl_SwipeToGoToNextPreviousFrame(event:TransformGestureEvent):void
{
    if (event.offsetX == -1)
    {
        // swiped left
        nextFrame,play();
    }

    else if (event.offsetX == 1)
    {
        addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler_2);
    }
}

function fl_EnterFrameHandler_2(event:Event):void
{
    prevFrame();
}

喜欢这个。有了这个,您就可以从其他地方调用removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler_2);