Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.07.2013, 17:18
kirill1989 вне форума Посмотреть профиль Отправить личное сообщение для kirill1989 Найти все сообщения от kirill1989
  № 1  
Ответить с цитированием
kirill1989

Регистрация: Feb 2013
Сообщений: 31
По умолчанию Условие на кнопку мыши.

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

Старый 14.07.2013, 17:31
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 2  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Самое простое - сделать обычный флаг, который устанавливается в true после первого нажатия.

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

Старый 14.07.2013, 17:44
kirill1989 вне форума Посмотреть профиль Отправить личное сообщение для kirill1989 Найти все сообщения от kirill1989
  № 3  
Ответить с цитированием
kirill1989

Регистрация: Feb 2013
Сообщений: 31
Цитата:
Сообщение от KumoKairo Посмотреть сообщение
Самое простое - сделать обычный флаг, который устанавливается в true после первого нажатия.

Другой способ - после первого нажатия назначить кнопке другого слушателя, удалив предыдущий
Что то вроде этого если я правильно понял? :
Код AS3:
button_l4.addEventListener(MouseEvent.CLICK, mc_unit3_prevClick, false, 0, true);

Старый 14.07.2013, 17:51
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 4  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Второй вариант:
Код 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
{
  //и тут уже делать то что надо
}

Старый 14.07.2013, 17:55
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 5  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
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, время: 18:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
addeventlistener , условие
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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