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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.09.2012, 11:51
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 41  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Ну вот и достигли соглашения

Не знаю, пока не приходилось. Если пишу для себя, то никогда не расчитываю на то, что кто-то другой будет работать с этим кодом

Старый 11.09.2012, 20:12
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 42  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Вот кстати иллюстрация
Везде так делаю.

Код AS3:
		private function changeLocation(locId:String):void
		{
			if (_sceneView) 
			{
				_host.removeChild(_sceneView);
				_sceneView.destroy();
			}
 
			_sceneView = new _scenes[locId];
 
			_sceneView.addEventListener(ViewEvent.CHANGE, onViewChange);
			_host.addChildAt(_sceneView, 0);
		}
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Dukobpa3, а удаление слушателя?
Код AS3:
private function changeLocation(locId:String):void
		{
			if (_sceneView) 
			{
				_host.removeChild(_sceneView);
                                _sceneView.removeEventListener(ViewEvent.CHANGE, onViewChange); // ???
				_sceneView.destroy();
			}
 
			_sceneView = new _scenes[locId];
 
			_sceneView.addEventListener(ViewEvent.CHANGE, onViewChange);
			_host.addChildAt(_sceneView, 0);
		}

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Та то такое. Текущий проект, сегдня этот кусок писал, будет еще вылизываться.
Там не только в этом косяки с очистками и дестроями И дестрои то пустые по большей части, а там этих слушателей внутри мама не горюй. Потом всё скопом делать буду на этапе оптимизации.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Я тоже бывало на этап оптимизации откладывал это, а потом за голову хватался
Теперь сразу пишу код удаления слушателя. Так, чисто чтобы потом не забыть и не искать в чем причина странного бага

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
я без причины за голову не хватаюсь. Если вешает ссылка и надо полюбому обнулить то да, а так особо не парюсь.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 11.09.2012, 23:05
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 47  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
обычно примерно так:

Код AS3:
class BaseComponent
{
  _isFinalized : Boolean;
 
  public final function destroy():void
  {
    if(!_isFinalized)
    {
      finalize();
      _isFinalized = true;
    }
  }
 
  protected function finalize():void
  {
    //empty
  }
}
finalize переопределяется в подклассах и в конце переопределенного метода вызывается его супер версия.
Благодаря такой конструкции можно не опасаться за то, что финализация будет произведена несколько раз.
По теме спора:
Предпочитаю не давать детям самостоятельно удаляться.
При этом при финализации обязательно ремувлю всех детей.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Я тоже бывало на этап оптимизации откладывал это, а потом за голову хватался
В моем случае кстати всё просто.
Есть пакеты:
model
view
controller

внутри соответственно то ч то там и должно быть Когда время пришло просто взять и прощелкать все вьюхи подряд и проверить адекватность дестроев. Не надо рыться по всему проекту вылавливая где чего забыл.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Бывает другая ситуация. Не важно mvc там или нет. Не удалил какой-нибудь слушатель, все вроде бы ок работает. А потом бац, событие пришло, слушатель отработал, дернул ссылку, а она уже ведет к объекту null. При этом другой такой объект уже создан, и сложно понять почему объект null, когда по всей логике он не null

Старый 12.09.2012, 11:30
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 50  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Давно такой ситуации не помню. Хотя "на заре карьеры" частенько бывало Проектировать правильно надо просто.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

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

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


 


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


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