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

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

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

Регистрация: Nov 2007
Адрес: UKRAINE
Сообщений: 32
Отправить сообщение для artics с помощью ICQ
По умолчанию Может ли мувик удалить самого себя?

не судите строго, может я плохо искал, но такого впроса не нашол.
мне нужно чтобы мувик выполнил некоторые действия и удалился, но когда в его класе я прописал
Код AS3:
removeChild(this)
получилась ошибка:
Цитата:
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display:isplayObjectContainer/removeChild()
также похожие ошибки были при попытке
Код AS3:
parent.removeChild(this)
неужели нельзя удалить мувик в самом себе?

Старый 03.07.2010, 01:18
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS3:
parent.removeChild(this);
Работает. Выложите код, попробуем разобраться.
__________________
тут я

Старый 03.07.2010, 01:33
vinch вне форума Посмотреть профиль Отправить личное сообщение для vinch Найти все сообщения от vinch
  № 3  
Ответить с цитированием
vinch

Регистрация: Feb 2010
Сообщений: 95
Конечно, в первом случае мувик удаляет сам из себя
Так что во втором случае должна быть совсем другая ошибка.

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

Регистрация: Jan 2007
Адрес: [1,1,1]
Сообщений: 135
Записей в блоге: 2
Отправить сообщение для PeTa4eK с помощью ICQ
Скорее всего ты не удаляешь все слушатели. И они продолжают выполнятся после удаления.

Старый 03.07.2010, 20:42
Dos87 вне форума Посмотреть профиль Отправить личное сообщение для Dos87 Найти все сообщения от Dos87
  № 5  
Ответить с цитированием
Dos87
[+1 02.07.09]

Регистрация: Jun 2009
Сообщений: 39
Код AS3:
parent.removeChild(this);
Этот код рабочий.

Вот ответ на твой вопрос:
Код AS3:
if (this is DisplayObject)
{
    if (parent) trace (parent.contains(this) ? "Contains. Can be removed" : "Not contain. Can not be removed");
    else trace ("Parent is null");
}
else trace ("This is not DisplayObject");

Старый 04.07.2010, 08:54
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Ну и что? Удаление из дисплай листа это нифига не удаление.

Старый 04.07.2010, 12:19
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Psycho Tiger, ну не занудничай Но ты прав, нужно еще чистить все, что выполнялось в коде класса мувика, затем занулять переменную, вызывать GC или ждать его снисхождения...
__________________
тут я

Старый 04.07.2010, 16:22
Dos87 вне форума Посмотреть профиль Отправить личное сообщение для Dos87 Найти все сообщения от Dos87
  № 8  
Ответить с цитированием
Dos87
[+1 02.07.09]

Регистрация: Jun 2009
Сообщений: 39
Занулять переменную совсем не обязательно. Нужно только уничтожить все ссылки на объект (отписка от событий - это тоже удаление ссылки на объект в диспетчере событий; присваивание переменной другого значения - это удаление ссылки на первый объект). После этого объект помечается как доступный для сборки мусора. GC вызывать вручную требуется в очень редких случаях.

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Сообщение от Dos87 Посмотреть сообщение
GC вызывать вручную требуется в очень редких случаях.
А как Вы его вызываете?

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Ну, вероятно, loader.unloadAndStop() - запускает gc принудительно
__________________
...вселенская грусть

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

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

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


 


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


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