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

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

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

Регистрация: Apr 2013
Сообщений: 8
По умолчанию Как обработать ошибки компонента ComboBox

Как обработать ошибки компонента ComboBox, при том что он сам был ранее удалён со сцены, а ссылка на него обнулена.

Если удалить со сцены ComboBox во время раскрытого выпадающего списка, то список со сцены не удаляется почему-то, и что самое обидное продолжает слушать события, и как следствие выдаёт ошибки:

Код:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at fl.controls::ComboBox/onListItemUp()
Посоветуйте, куда можно вставить try...cath чтобы эту ошибку можно было обработать?
Хотя, лучше посоветуйте как сделать чтобы выпадающий список тоже удалялся со всеми его слушателями?

Добавлено через 17 часов 46 минут
Конечно идея переопределить метод - позволят скрыть факт ошибки, но само событие продолжает всплывать:

Код AS3:
		override protected function onListItemUp(e:MouseEvent):void
		{
			if (!flagDestroy)
			{
				try
				{
					super.onListItemUp(e);
				}
				catch (err:TypeError)
				{
					trace(err.message, ' -> onListItemUp');
					e.stopImmediatePropagation();
					e.preventDefault();
					this.flagDestroy = true;
				}
			}
			else
			{
				trace(' onListItemUp');
				e.stopImmediatePropagation();
				e.preventDefault();
			}
		}
А вот как удалить само событие, ничего не могу придумать

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

Регистрация: Feb 2012
Сообщений: 1,540
Удаляйте слушатели.
try...catch = это сущий ад, который нужен только для очень, повторюсь, и очень редких случаев.
А вообще:
Код AS3:
try {
   //...
} catch (err:*) {
   // словит ВСЕ ошибки
}

Старый 23.06.2013, 21:16
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Зачем писать err:* ?
Ясно что туда всегда передается наследник класса Error, поэтому и запись можно сделать такую:
err:Error
Цитата:
Посоветуйте, куда можно вставить try...cath чтобы эту ошибку можно было обработать?
Лучше для начала посмотреть код, где он создается, ибо кэп мне подсказывает, что дело здесь совсем не в комбобоксе.

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

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

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


 


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


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