1

このようなactionscript3を使用して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 に答える