1

如何像这样用我的 actionscript 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();

        }
    }
}
4

3 回答 3

2

您可以随时放入功能行:

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

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

于 2012-09-03T20:40:05.520 回答
1
removeEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler_2);

应该removeEventListener这样做

于 2012-09-03T19:21:13.703 回答
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);从其他地方调用。

于 2012-09-04T06:27:35.940 回答