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

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

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

Регистрация: May 2011
Сообщений: 76
По умолчанию Кнопка-модификатор значения - проблема в браузере.

Всем привет.
Есть задача:
Написать кнопку которая модифицирует значение в текстовом поле при: обычном клике, при зажимании кнопки мыши. В плеш флеере работает прекрасно.

У меня следующая проблема:
Когда флешка имбедится в браузер, если вместо обычного клика сделать двойной клик, то происходит эффект "залипания" и все происходит так, будто кнопка зажата.

Код AS3:
count_up_bt.addEventListener(MouseEvent.MOUSE_DOWN, countButtonMouseDown);
 
private function countButtonMouseDown(e:MouseEvent): void {
                                  trace("countButtonMouseDown");
			ModifyCountNumber(e);
			//Remove old listeners
			e.currentTarget.removeEventListener(MouseEvent.MOUSE_DOWN, countButtonMouseDown);
			//Add new listeners
			e.currentTarget.addEventListener(MouseEvent.MOUSE_OUT, countButtonMouseUp);
			e.currentTarget.addEventListener(MouseEvent.MOUSE_UP, countButtonMouseUp);			
			e.currentTarget.addEventListener(Event.ENTER_FRAME, countButtonEnterFrame);
 
		}
 
private function countButtonMouseUp(e:MouseEvent): void {
                                  trace("countButtonMouseUp");
			//Remove old listeners and reset couter;
			e.currentTarget.removeEventListener(MouseEvent.MOUSE_OUT, countButtonMouseUp);
			e.currentTarget.removeEventListener(MouseEvent.MOUSE_UP, countButtonMouseUp);			
			e.currentTarget.removeEventListener(Event.ENTER_FRAME, countButtonEnterFrame);
                                  trace("Removed EnterFrameEvent")
			enterFrameCounter = 0;
			//Add new listeners
			e.currentTarget.addEventListener(MouseEvent.MOUSE_DOWN, countButtonMouseDown);			
		}
 
var enterFrameCounter:uint = 0;
 
		private function countButtonEnterFrame(e:Event):void {
			//if counter uninitialized then initialize.
			if (enterFrameCounter == 0) {
				enterFrameCounter = 1;
			}
 
			if (enterFrameCounter == 6 || enterFrameCounter == 12 || enterFrameCounter == 18 || enterFrameCounter == 24) {
				ModifyCountNumber(e);
				enterFrameCounter++;
			} else if (enterFrameCounter == 25){
				enterFrameCounter = 1;
			} else {
				enterFrameCounter++;
			}
		}
 
ModifyCountNumber(e:Event):void {
Значение в некотором текстовом поле модицифируется на какое-то значение однажды
}

Пример трейса при 2 кликах сделанных не чаще чем через 1 сек.:

Removed EnterFrameEvent
countButtonMouseUp
countButtonMouseDown
Removed EnterFrameEvent
countButtonMouseUp
countButtonMouseDown

Пример трейса при 2 кликах сделанных не реже чем через 0.5 сек.:

countButtonMouseDown
Removed EnterFrameEvent
countButtonMouseUp
countButtonMouseDown
Removed EnterFrameEvent
countButtonMouseUp
countButtonMouseDown

(да, да в этом случае от куда-то генерируется 3 клика)

Вопрос: как избавится от этого бага?


Последний раз редактировалось searinox; 19.09.2011 в 18:57. Причина: Добавлен трейс
Создать новую тему   Часовой пояс GMT +4, время: 09:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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