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

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

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

Регистрация: Apr 2014
Сообщений: 215
По умолчанию removeChild

здравствуйте, создал тестом два класса, один главный
Код AS3:
package  {
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
 
	public class tests extends MovieClip
	{
       private var del:Del;
		public function tests()
		{
			del = new Del();
			stage.addChild(del)
			stage.addEventListener(MouseEvent.CLICK,clik)
		}
      private function clik(e:MouseEvent):void
	  {
		  stage.removeChild(del)
	  }
	}
 
}
второй простой
Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.events.Event;
 
	public class Del extends MovieClip
	{
 
		public function Del() 
		{
			this.addEventListener(Event.ENTER_FRAME,test)
		}
     private function test(e:Event):void
	 {
		 trace(1)
	 }
	}
}
запускаю, пишет 1, нажимаю левую кнопку, все равно идет 1, нажимаю еще раз и тогда ошибка
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display:isplayObjectContainer/removeChild()
at tests/clik()
вопрос а как собственно можно удалить этот класс по определенному моменту, в принципе любой, мне главное смысл понять, как то с рисунком это срабатывает, а вот если класс то вопрос... в принципе слушатели можно удалить, на это не обращайте внимание, само удаление интересует, это тестовый пример

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

Регистрация: Jul 2009
Сообщений: 149
removeChild не удаляет объект, а просто убирает его из дисплей листа, по-этому ваш trace и продолжает работать после removeChild.
Чтобы освободить память занимаемую объектом нужно что бы на данный объект не осталось ни одной ссылки и на нем не висело ни одного слушателя. При таких условиях сборщик мусора его почистит когда сочтет это нужным. Почитайте про GC(garbage collector).
http://help.adobe.com/ru_RU/as3/mobi...7189-7ffc.html

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

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от ObOs Посмотреть сообщение
removeChild не удаляет объект, а просто убирает его из дисплей листа, по-этому ваш trace и продолжает работать после removeChild.
Чтобы освободить память занимаемую объектом нужно что бы на данный объект не осталось ни одной ссылки и на нем не висело ни одного слушателя. При таких условиях сборщик мусора его почистит когда сочтет это нужным. Почитайте про GC(garbage collector).
http://help.adobe.com/ru_RU/as3/mobi...7189-7ffc.html
ну к примеру убрался из дисплей листа, что то нажимаем и addChild, это откроет только изображение или опять класс? к примеру если я не буду удалять слушатели

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

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
это добавит ваш спрайт назад в дисплей лист и он станет видимым. Остальное в вашем вопросе я не понял.

Старый 22.01.2015, 16:38
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 5  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
А как можно узнать создан класс или нет?

Старый 22.01.2015, 19:49
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 6  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
trace("Создали класс");
В первой функции класса. Если трейс покажет "Создали класс", значит он создан.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
хоспаде...
Создать класс можно только в среде разработки.
А то, что вы имеете в виду - создание экземпляра класса.
Цитата:
В первой функции класса.
пффф...
Метод-конструктор? И он не обязательно должен быть первым методом в классе, главное, чтобы имя совпадало с именем класса.
__________________
There is no thing in this world that is not simple.

Старый 23.01.2015, 08:47
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 8  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от Godwarlock Посмотреть сообщение
trace("Создали класс");
В первой функции класса. Если трейс покажет "Создали класс", значит он создан.
насчет trace понятно, но мне надо условие

если создан экземпляр класса такой то

то условие 1

если нет то
Код AS3:
del = new Del();
stage.addChild(del)


Последний раз редактировалось delphic; 23.01.2015 в 09:02.
Старый 23.01.2015, 15:23
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 9  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
delphic, у вас полная каша в голове.
Совсем мрак.

Книжки пробовали читать?
__________________
There is no thing in this world that is not simple.

Старый 23.01.2015, 16:37
delphic вне форума Посмотреть профиль Отправить личное сообщение для delphic Найти все сообщения от delphic
  № 10  
Ответить с цитированием
delphic

Регистрация: Apr 2014
Сообщений: 215
Цитата:
Сообщение от SuriTheAngel Посмотреть сообщение
delphic, у вас полная каша в голове.
Совсем мрак.

Книжки пробовали читать?
смысл в том что у меня к мувику прикручен класс я сделал
Код AS3:
del = new Del();
stage.addChild(del)
как было сказано выше что при удалении
Код AS3:
stage.removeChild
удаляется только изображение, а класс работает, вот я и думал сделать условие, если класс уже открыт, то сделать вход в этот класс,если нет то открыть его через
Код AS3:
addChild


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

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

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


 


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


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