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

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

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

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
По умолчанию Самоуничтожение экземпляра класса

Здравствуйте, если не сложно подскажите нубу как решить проблемку:

есть основной класс

Код AS3:
package {
	import flash.display.Sprite;
	public class Entrance extends Sprite {
		public function Entrance() {
			addChild(new Message("die,die my darling"));
		}
	}
}
класс Message

Код AS3:
package {
	import flash.display.Sprite;
	import flash.text.TextField;
        import flash.utils.setTimeout;
	public class Message extends Sprite {
		public function Message(message) {
			var txt:TextField = new TextField();
			txt.text=message;
			addChild(txt);
			setTimeout(delme,1000);
		}
		private function delme() {
		    trace("del me plzzz");
                    // нужно самоубиццо(
		}
	}
}
существует ли в ас3 что-то вроде removeMovieClip(this)?
или возможно ли реализовать это через parent removeChild и this ?
заранее спасиба)

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

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Код AS3:
if(this.stage)this.parent.removeChild(this)
__________________
тонкий тролль, осеянный благодатью

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

Регистрация: Mar 2006
Адрес: Ростов-на-Дону
Сообщений: 80
спасиба! а что означает условие if(this.stage) ? ппц я тормоз)

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

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
если объект еще не был добавлен на сцену, то this.stage возвращает null, т е проверяем его наличие на сцене, собственно
__________________
4am is time to rock

Старый 16.01.2009, 23:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Наверное всё-таки
Код AS3:
if (super.parent) super.parent.removeChild(this);

Старый 17.01.2009, 14:15
Fergus вне форума Посмотреть профиль Отправить личное сообщение для Fergus Найти все сообщения от Fergus
  № 6  
Ответить с цитированием
Fergus

Регистрация: Oct 2008
Адрес: Moscow
Сообщений: 130
Отправить сообщение для Fergus с помощью ICQ
removeChild же не уничтожит экземпляр, а просто уберет из displayList, мм?

Добавлено через 2 минуты
if (super.parent) super.parent.removeChild(this);

А зачем вызывать свойство супер-класса? У потомка же вроде как есть тот же parent.
__________________
Jedem das Seine


Последний раз редактировалось Fergus; 17.01.2009 в 14:17.
Старый 17.01.2009, 14:21
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Fergus Посмотреть сообщение
removeChild же не уничтожит экземпляр, а просто уберет из displayList, мм?
Если ссылки на него не останется, то удалит совсем.

Цитата:
Сообщение от Fergus Посмотреть сообщение
if (super.parent) super.parent.removeChild(this);

А зачем вызывать свойство супер-класса? У потомка же вроде как есть тот же parent.
Есть, но может быть переопределен тут же или в наследниках. Код не должен из-за изменений в наследниках работать некорректно.

з. Ы. И не лень же было раскрашивать код, когда есть тег [as3]?

Старый 17.01.2009, 14:23
Fergus вне форума Посмотреть профиль Отправить личное сообщение для Fergus Найти все сообщения от Fergus
  № 8  
Ответить с цитированием
Fergus

Регистрация: Oct 2008
Адрес: Moscow
Сообщений: 130
Отправить сообщение для Fergus с помощью ICQ
Цитата:
Сообщение от __etc Посмотреть сообщение
з. Ы. И не лень же было раскрашивать код, когда есть тег [as3]?
Copy-Paste сразу раскрашенный дает
__________________
Jedem das Seine

Старый 17.01.2009, 16:46
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 9  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Цитата:
Сообщение от __etc Посмотреть сообщение
Есть, но может быть переопределен тут же или в наследниках. Код не должен из-за изменений в наследниках работать некорректно.
Никак не могу этого понять. Такое ощущение, что код наследников писали вражеские программисты, цель которых запутать программу.

Старый 17.01.2009, 16:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Яски Посмотреть сообщение
Никак не могу этого понять. Такое ощущение, что код наследников писали вражеские программисты, цель которых запутать программу.
Неа, просто защита от дурака. Кроме того, иногда требуется переопределять (читай закрывать от посторонних) некоторые жизненно-важные методы в конечных наследниках.

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

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

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


 


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


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