В зависимости от нажатой кнопки вызывается одна функция - PullRequest
0 голосов
/ 27 апреля 2018

Мне нужна единственная функция, которая удаляет слушателей в зависимости от нажатой кнопки переключения / регистра. У меня есть 2 MC на сцене с именами "btn01" и "btn02", и у меня есть массив с соответствующими именами.

Я хочу, чтобы btnRemove() был в состоянии removeListener до btn01, если он был нажат или если btn02 был нажат. Как мне это сделать? Спасибо.

var buttons = new Array(btn01, btn02);

for (var a=0; a<buttons.length; a++){
    buttons[a].buttonMode=true;
    buttons[a].addEventListener(MouseEvent.CLICK,buttonClick);
}

function btnRemove() {
    e.currentTarget.removeEventListener(MouseEvent.CLICK,buttonClick); //1120: Access of undefined property e
}

function buttonClick(e:Event):void{
switch(e.currentTarget.name){

    case "btn01":

    btnRemove(); //remove btn01 listener

    break;

    case "btn02":

    btnRemove(); //remove btn02 listener

    break;
}}

1 Ответ

0 голосов
/ 27 апреля 2018

event.currentTarget - это объект, который вызывает слушатель, так что это будет ваша кнопка, вы можете удалить слушателя с помощью currentTarget, см. Следующий код:

btn01.addEventListener(MouseEvent.CLICK, OnClickBtn);
btn02.addEventListener(MouseEvent.CLICK, OnClickBtn);

function OnClickBtn(e:Event):void
{
    if ( e.currentTarget.hasEventListener(MouseEvent.CLICK) )
    {
        e.currentTarget.removeEventListener(MouseEvent.CLICK, OnClickBtn);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...