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

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

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

Регистрация: Jan 2010
Сообщений: 187
Question конфликт слушателей

У меня кнопка sound0 лежит на сцене и есть два слушателя:
Код AS3:
stage.addEventListener(MouseEvent.MOUSE_DOWN,KeyMouseOn);
sound0.addEventListener(MouseEvent.CLICK, playMusic);
И я когда нажимаю мышей на эту кнопку у меня заодно срабатывает событие KeyMouseOn, как если бы я кликал в любое другое место на сцене.
Как мне отсечь это второе событие?
Чтобы при нажатии на кнопку выполнялось только то событие, которое привязано к этой кнопке.

Старый 11.06.2010, 12:34
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
В обработчике playMusic сделать
Код AS3:
event.stopPropagation();
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 11.06.2010, 13:36
St.Shaeen вне форума Посмотреть профиль Отправить личное сообщение для St.Shaeen Найти все сообщения от St.Shaeen
  № 3  
Ответить с цитированием
St.Shaeen

Регистрация: Mar 2010
Сообщений: 11
Попробуй сделать подложку, просто прямоугольник по размерам сцены - прозрачность на ноль, и ложи её под кнопку и потом на неё прикручивай слушателя

Старый 11.06.2010, 14:17
SeDo4 вне форума Посмотреть профиль Отправить личное сообщение для SeDo4 Найти все сообщения от SeDo4
  № 4  
Ответить с цитированием
SeDo4

Регистрация: Jun 2010
Сообщений: 3
У меня похожий вопрос. Надо на одну кнопку повесить несколько прослушивателей: наведении, нажатие и т.п.
Наверняка у меня не работает из-за того, что руки кривые, но подскажите как это можно сделать. Хотя бы направьте в нужную сторону)

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код в студию.
__________________
тут я

Старый 11.06.2010, 14:27
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 6  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
Цитата:
Сообщение от SeDo4 Посмотреть сообщение
У меня похожий вопрос. Надо на одну кнопку повесить несколько прослушивателей: наведении, нажатие и т.п.
Наверняка у меня не работает из-за того, что руки кривые, но подскажите как это можно сделать. Хотя бы направьте в нужную сторону)
Это делается с помощью метода addEventListener. Для подписи нескольких слушаетелей на несколько событий, нужно несколько раз вызвать этот метод.
Код AS3:
button.addEventListener(MouseEvent.CLICK, button_onMouseClick);
button.addEventListener(MouseEvent.ROLL_OVER, button_onRollOver);
button.addEventListener(MouseEvent.ROLL_OUT, button_onRollOut);
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 11.06.2010, 14:29
St.Shaeen вне форума Посмотреть профиль Отправить личное сообщение для St.Shaeen Найти все сообщения от St.Shaeen
  № 7  
Ответить с цитированием
St.Shaeen

Регистрация: Mar 2010
Сообщений: 11
Цитата:
Сообщение от SeDo4 Посмотреть сообщение
У меня похожий вопрос. Надо на одну кнопку повесить несколько прослушивателей: наведении, нажатие и т.п.
Наверняка у меня не работает из-за того, что руки кривые, но подскажите как это можно сделать. Хотя бы направьте в нужную сторону)
Для кнопки BTN

Код AS3:
BTN.addEventListener(MouseEvent.ROLL_OVER,onBTN);
function onBTN(e:MouseEvent):void{
исполняемая функция
}
BTN.addEventListener(MouseEvent.CLICK,clickBTN);
function clickBTN(e:MouseEvent):void{
исполняемая функция
}
ну и так далее

Старый 11.06.2010, 14:38
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Если это не кнопка, а кнопочный клип или просто статичный спрайт, то у него нужно включить buttonMode, дабы заработал MouseEvent.CLICK
__________________
тут я

Старый 11.06.2010, 15:20
SeDo4 вне форума Посмотреть профиль Отправить личное сообщение для SeDo4 Найти все сообщения от SeDo4
  № 9  
Ответить с цитированием
SeDo4

Регистрация: Jun 2010
Сообщений: 3
Совсем запутался.
Вот мой первый прослушиватель:
Код AS3:
button1.addEventListener(MouseEvent.MOUSE_OVER, ons);
function ons(e:MouseEvent):void
{
	gotoAndPlay("button1");
}
Он работает, хотя я и не понимаю почему)
Пытаюсь добавить второй как написал St.Shaeen.
Оказывается, что это даже не кнопка?

Попробывал заменить на конструкцию, написанную Хемуль
Код AS3:
button1.addEventListener(MouseEvent.CLICK, button_onMouseClick);
function button_onMouseClick(e:MouseEvent):void
{
	gotoAndPlay("button1");
}
Это работает. Добавляю вторую строчку
Код AS3:
button1.addEventListener(MouseEvent.CLICK, button_onMouseClick);
function button_onMouseClick(e:MouseEvent):void
{
	gotoAndPlay("button1");
}
button1.addEventListener(MouseEvent.ROLL_OVER, button_onRollOver);
function button_onRollOver(e:MouseEvent):void
{
	gotoAndPlay("button1");
}
Работает. Теперь у меня при навдении и при клике происходит одно и тоже действие. Уже неплохо. Теперь мне нужно, что бы при наведении происходило одно, а при клике - другое.

Не могу понять одного: как идёт связь между кнопкой и объектом. В моём случае: как сделать распределение между разными прослушивателями кнопки и объектами с разной анимацией.
Вот пример того, что сейчас у меня есть. А мне необходимо, что бы при клике, например, появлялся новый круг. Если я его просто добавлю, то он будет работать вместе с первой анимацией.

Чувствую, что вопрос глупый, но сам пока дойти до решения не могу. Кто подскажет в какую сторону смотреть?
__
Вроде что-то похожее нашёл в ФАКе, читаю.
Вложения
Тип файла: zip sample.button with over circle.zip (8.0 Кб, 31 просмотров)


Последний раз редактировалось SeDo4; 11.06.2010 в 15:23.
Старый 11.06.2010, 15:27
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 10  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Он работает, хотя я и не понимаю почему)
Наступило одно событие - сработал один метод. Наступило второе событие - сработал второй метод.
__________________
тут я

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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