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

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

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

Регистрация: Jul 2009
Сообщений: 22
По умолчанию Скользящий клик по кнопке

Здравствуйте! Столкнулся с непонятной проблемой.
У меня есть объект типа button. На событие on (release) есть сценарий. Все нормально работает. Но если кликнуть по этой кнопке во время движения (то есть передвигаем курсор мыши и когда курсор над кнопкой, кликаем, не останавливая передвижение), то приложение попросту зависает... не могу понять в чем причина.
Можно было бы на это не обратить внимание, но такое случается, если пользователь быстро кликает по разным кнопка, находящимся в разных частях приложения.
Может кто сталкивался с этим?
__________________
В любой откомпилированной программе есть, по крайней мере, одна ошибка.
P.S. А у меня их минимум две.

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Код:
button.onRelease=button.onRollOut=function(){
}


Последний раз редактировалось KiL33; 28.09.2009 в 14:50.
Старый 28.09.2009, 16:28
spooner вне форума Посмотреть профиль Отправить личное сообщение для spooner Найти все сообщения от spooner
  № 3  
Ответить с цитированием
spooner
 
Аватар для spooner

Регистрация: Mar 2009
Сообщений: 207
Цитата:
Сообщение от KiL33 Посмотреть сообщение
Код:
button.onRelease=button.onRollOut=function(){
}
Хм. И что будет? Одинаковая реакция на rollOut и release?

Старый 28.09.2009, 18:56
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Замечаю нечто подобное. Насколько я понимаю, это может быть как-то связано с особенностями установки фокуса.

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

Регистрация: Jul 2009
Сообщений: 22
Еще заметил, такое же поведение с кнопкой у которой enabled = false.. тут уж я совсем в шоке..
__________________
В любой откомпилированной программе есть, по крайней мере, одна ошибка.
P.S. А у меня их минимум две.

Старый 28.09.2009, 19:29
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
У вас чистый эксперимент? То ест сцена пуста от еще чего либо? Попробуйте создать новый файл, вставить ваши кнопки туда и повторить.

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

Регистрация: Jul 2009
Сообщений: 22
странно.. в пустом не могу повторить, в моем же на каждой кнопке такой баг.. вот один из простейших сценариев на одной из кнопок.
Код AS1/AS2:
on (press) {
    this.xDown = this._xmouse;
	this.yDown = this._ymouse;
}
 
on (release)
{
if (_global.loadedMAP  && (this._xmouse == this.xDown && this._ymouse == this.yDown))
	{	if (_root["panel_layer"] == NULL || _root["panel_layer"]._currentframe == 0)				
		 { 	_root.attachMovie("newpanel", "panel_layer", _global.maxdepth + 1, {_x:1120, _y:378});		 }
		else
		 { 
		  if(_root["panel_layer"]._currentframe ==  41) 
		   { _root.Reverse_MovieClip("panel_layer"); }
		 }
	}
}
_global.loadedMAP - за ранее определена.
xDown и yDown - мои эксперементы обойти данный баг, но увы - они оказались бесполезны =)

P.S. Более точно определил баг - навожу курсор на кнопку, нажимаю ЛКМ, отвожу за пределы кнопки и отпускаю ЛКМ и приложение виснет.
__________________
В любой откомпилированной программе есть, по крайней мере, одна ошибка.
P.S. А у меня их минимум две.


Последний раз редактировалось Yami; 29.09.2009 в 08:35.
Старый 29.09.2009, 15:40
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от Yami Посмотреть сообщение
P.S. Более точно определил баг - навожу курсор на кнопку, нажимаю ЛКМ, отвожу за пределы кнопки и отпускаю ЛКМ и приложение виснет.
Не знаю, поможет ли вам это, но описанные действия - это у вас onReleaseOutside. Это событие у вас, конечно не определено, причины тут нет.
И кстати, не пишите код на самих кнопках. Попробуйте убрать все действия с onRelease, сделайте только trace.
А с самими кнопками у вас ничего не происходит? Они не скрываются, динамически никак не показываются?


Последний раз редактировалось mooncar; 29.09.2009 в 15:51.
Старый 04.10.2009, 18:02
Yami вне форума Посмотреть профиль Отправить личное сообщение для Yami Найти все сообщения от Yami
  № 9  
Ответить с цитированием
Yami
 
Аватар для Yami

Регистрация: Jul 2009
Сообщений: 22
Эм.. спасибо всем. Проблему решил, причина была в кривости рук =)
В моем проекте с зажатой ЛКМ есть возможность перемещать слои, но, если произвести действия описанные выше, когда слои не подгружены листенер срабатывал над кнопками тоже, и это вызывало ступор у приложения, т.к. перемещать нечего, а перемещение вызывалось.

P.S. Тему можно закрывать
__________________
В любой откомпилированной программе есть, по крайней мере, одна ошибка.
P.S. А у меня их минимум две.


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

Теги
баг , курсор , мышь

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

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


 


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


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