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

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

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
mikhailk, всё чуточку проще.
DisplayObject#parent имеет тип DisplayObjectContainer, в котором уже определен метод removeChild.
Достаточно написать так:
Код AS3:
var parent:DisplayObjectContainer=object.parent;
if (parent) parent.removeChild(object);

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
ну да, не имеет ))

@Psycho Tiger
да, так проще

хотя, мне кажется, что если автор приложения не знает, откуда удаляет свои объекты, это не есть гут ))


Последний раз редактировалось mikhailk; 05.02.2011 в 23:09.
Старый 05.02.2011, 23:08
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 13  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
А я бы вообще так написал:
Код AS3:
if( obj && obj.parent )
    obj.parent.removeChild( obj );
Вот такое никогда ошибок не выкинет. Только если не фатально болен сам плеер ...

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Выкинет, если obj.parent подписан на Event.REMOVED и выкидывает в хэндлере исключение =)

Вообще даже в таких случаях я не ленюсь создать событие с bubbles=true, type="removeMe!!!", которое ловил бы ответственный сверху.

Старый 05.02.2011, 23:25
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 15  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Цитата:
Выкинет, если obj.parent подписан на Event.REMOVED и выкидывает в хэндлере исключение =)
можно с примером? )

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Jigsaw extends Sprite
	{
 
		public function Jigsaw()
		{
			super();
			var p:Sprite = new Sprite();
			p.addEventListener(Event.REMOVED, handler);
			var c:Sprite = new Sprite();
			p.addChild(c);
 
			c.parent.removeChild(c);
		}
 
		private function handler(event:Event):void {
			throw new Error();
		}
	}
 
}
Я прикалываюсь просто )

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

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
не, ну это уже перебор)

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
сорри за вопрос не по теме, а зачем тут super()?

Старый 05.02.2011, 23:59
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 19  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
вызвать конструктор суперкласса Sprite, если нет уверенности вызывается он по-дефолту до или после конструктора класса-наследника..

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
super, в случае его явного отсутствия в коде, всегда вызывается перед началом исполнения конструктора (т.е. вставляется первой строчкой конструктор).
Писать super() — это хороший тон и всё такое )

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

Теги
removeChild , tween
Опции темы
Опции просмотра

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

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


 


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


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