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

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

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

Регистрация: Aug 2011
Сообщений: 22
По умолчанию Как заблокировать обработчики событий?

День добрый)
Пользователь нажимает на кнопку ему показывается прелоадер и делается запрос на сервер который потом обрабатывается слушателем.

Как сделать чтобы другие кнопки не реагировали пока не обработался этот запрос?
Кнопок вокруг полно и все они отправляют разные запросы на этот же сервер а лишняя нагрузка ни к чему.

Как бы вы решили такую проблему?
Спасибо

Старый 05.09.2011, 14:08
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 2  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Вешайте слушатели на те кнопки только после ответа или введите переменную connected или как нить так и проверяйте ,что если она false ничего не слать , а после ответа от сервера 1 , ставьте ей true
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 05.09.2011, 14:54
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
После нажатия кнопки, добавить поверх всего спрайт с невидимой заливкой, который перекроет все кнопки. И по завершению загрузки убирать его.
Этот вариант будет разумнее кучи слушателей на всем подряд.
Лично я бы решил эту проблему именно так.

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Только вариант goodguy.
При варианте Genzo юзер получит много негатива не получая ответной реакции от своих действий.

Старый 05.09.2011, 15:18
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 5  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
а если повесить обработчик на стейдж, на капчуре фазу и делать:
Код AS3:
e.stopImmediatePropagation();
а затем соответственно убирать его.
Простейший пример, на стене оставляем какой либо мувик:
Код AS3:
addEventListener(MouseEvent.CLICK, onC);
stage.addEventListener(MouseEvent.CLICK, onS, true);
 
function onC(e:MouseEvent):void
{
	trace(1111);
}
 
function onS(e:MouseEvent):void
{
	e.stopImmediatePropagation();
	trace(222);
}
goodguy хороший вариант но он забьет вообще все слушатели (ролловеры \ ауты), а не только клики.


Последний раз редактировалось nOobCrafter; 05.09.2011 в 15:24.
Старый 05.09.2011, 15:25
ch3cker вне форума Посмотреть профиль Отправить личное сообщение для ch3cker Найти все сообщения от ch3cker
  № 6  
Ответить с цитированием
ch3cker

Регистрация: Aug 2011
Сообщений: 22
Всем спасибо, особенно goodguy, все гениальное просто)

Старый 05.09.2011, 15:29
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 7  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
В вашем главном классе (или для Stage) во время загрузки ставьте.
Код AS3:
mouseEnabled = mouseChildren = false;
По окончании загрузки ставьте обратно true.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 05.09.2011, 15:36
ch3cker вне форума Посмотреть профиль Отправить личное сообщение для ch3cker Найти все сообщения от ch3cker
  № 8  
Ответить с цитированием
ch3cker

Регистрация: Aug 2011
Сообщений: 22
alatar, спасибо за подсказку сделал именно так) Для stage правда выдало ошибку, а в главном классе работает.

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

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

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


 


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


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