Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Условие на кнопку мыши. (http://www.flasher.ru/forum/showthread.php?t=202412)

kirill1989 14.07.2013 17:18

Условие на кнопку мыши.
 
Доброго времени суток! Можно ли создать такое условие в функции для кнопки мыши, что бы код блока срабатывал только от первого нажатия, а последующие нажатия на кнопку выполнялся другой блок кода?

KumoKairo 14.07.2013 17:31

Самое простое - сделать обычный флаг, который устанавливается в true после первого нажатия.

Другой способ - после первого нажатия назначить кнопке другого слушателя, удалив предыдущий

kirill1989 14.07.2013 17:44

Цитата:

Сообщение от KumoKairo (Сообщение 1141046)
Самое простое - сделать обычный флаг, который устанавливается в true после первого нажатия.

Другой способ - после первого нажатия назначить кнопке другого слушателя, удалив предыдущий

Что то вроде этого если я правильно понял? :
Код AS3:

button_l4.addEventListener(MouseEvent.CLICK, mc_unit3_prevClick, false, 0, true);


Akopalipsis 14.07.2013 17:51

Второй вариант:
Код AS3:

addEventListener(MouseEvent.CLICK, clickOneHandler_prevClick;
function clickOneHandler( e : MouseEvent ) : void
{
  //сработает при первом клике и сразу удалит слушателя
  button_l4.removeEventListener(MouseEvent.CLICK, clickOneHandler);
  //создаст нового слушателя для последующих кликов
  addEventListener(MouseEvent.CLICK, clickTwoHandler);
}
function clickTwoHandler( e : MouseEvent ) : void
{
  //и тут уже делать то что надо
}


KumoKairo 14.07.2013 17:55

1 (с флагом) - у вас один слушатель, в котором в зависимости от какой-то переменной класса выполняется различный код. Допустим это переменная myClick, которая в конструкторе становится равной true:
Код AS3:

package
{
        ...
        public class MyClass
        {
                private var firstClick:Boolean;
                ...
                public function MyClass()
                {
                        ...
                        firstClick = true;
                        ...
                }
 
        }
}

Далее прикручиваете на кнопку слушатель:
Код AS3:

button.addEventListener(MouseEvent.CLICK, myClickListener);

И сам слушатель выглядит так
Код AS3:

private function myClickListener(e:MouseEvent):void
{
        if(firstClick)
        {
                //делаем то, что требуется
                //и ставим firstClick в false
                firstClick = false;
        }
        else
        {
                //другой код
        }
}

2. С двумя слушателями. Сначала прикручиваем обработчик1:
Код AS3:

button.addEventListener(MouseEvent.CLICK, myFirstClickListener);

А в обработчике при нажатии убираем с кнопки слушатель1 и добавляем слушатель 2 (после выполнения кода или перед - не важно)
Код AS3:

private function myClickListener(e:MouseEvent):void
{
        button.removeEventListener(MouseEvent.CLICK, myFirstClickListener);
        button.addEventListener(MouseEvent.CLICK, mySecondClickListener);
}
 
private function mySecondClickListener(e:MouseEvent):void
{
        //Код, который будет выполняться при повторном нажатии
}



Часовой пояс GMT +4, время: 12:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.