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

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

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

Регистрация: May 2011
Сообщений: 17
Attention Как убрать MovieClip с помощью removeChild

У меня есть класс. В нем объявляю popup типа MovieClip.
В MovieClip есть кнопка, при нажатии срабатывает eventlister, в котором я хочу убрать этот MovieClip.
Проблема в том, что при выполнении
Код AS3:
removeChild(popup);
Выдает ошибку.
Через this такая же ошибочка.

Вот что я придумал. Поместить popup еще в какой-то container и через него удалять popup:
Код AS3:
container.removeChild(popup);
			popup= null;
Но как по мне это быдло-код. Как правильно убрать этот popup?
Спасибо

Старый 25.05.2011, 17:52
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
покажите полный код. По логике

Код AS3:
class 
....
var mc:MovieClip = new Custom(); // has button
mc.button.addEventListener(ME.CLICK , click) ....  function click(e:Event) { removeChild(mc)  // ok }
__________________
Марк Tween

Старый 25.05.2011, 18:08
username100500 вне форума Посмотреть профиль Отправить личное сообщение для username100500 Найти все сообщения от username100500
  № 3  
Ответить с цитированием
username100500

Регистрация: May 2011
Сообщений: 17
Код AS3:
public var popup:MovieClip = new MovieClip();
	public function closeWindow(evt:MouseEvent):void {
 
			removeChild(popup);
			popup = null;
 
		}
public function Windows_cls()
		{
...........
			var l:Loader = new Loader();
			l.load(new URLRequest("http://cdn1.iconfinder.com/data/icons/ose/Error.png"));
			myRect.addChild(l);
			l.addEventListener(MouseEvent.CLICK, closeWindow);
			addChild(popup);
...........			
 
		}
Вешаю eventlistener на лоадер(в лоадере картинка - кнопка-крестик). В этом наверное ошибка? И как тогда?

Старый 25.05.2011, 18:15
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 4  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
Вы бы хоть написали, что за ошибку выдает.

Код AS3:
myRect.addEventListener(MouseEvent.CLICK, closeWindow);

Старый 25.05.2011, 18:17
username100500 вне форума Посмотреть профиль Отправить личное сообщение для username100500 Найти все сообщения от username100500
  № 5  
Ответить с цитированием
username100500

Регистрация: May 2011
Сообщений: 17
Ой, сорри. Не скопипастил

[Fault] exception, information=ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.

DZHETIGAPA, в MyRect помимо лоадера есть еще элементы. Потому на лоадер и повесил слушатель


Последний раз редактировалось username100500; 25.05.2011 в 18:19.
Старый 25.05.2011, 18:25
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 6  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
Добавь лоадер в какой-нибудь контейнер.

Хотя я всегда жду события COMPLETE.

Код AS3:
var l:Loader = new Loader();
l.load(new URLRequest("http://cdn1.iconfinder.com/data/icons/ose/Error.png"));
l.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
 
private function onComplete(e:Event):void
{
    myRect.addChild(e.target.content);
    e.target.content.addEventListener(MouseEvent.CLICK, closeWindow);
}


Последний раз редактировалось DZHETIGAPA; 25.05.2011 в 18:33.
Старый 25.05.2011, 19:51
username100500 вне форума Посмотреть профиль Отправить личное сообщение для username100500 Найти все сообщения от username100500
  № 7  
Ответить с цитированием
username100500

Регистрация: May 2011
Сообщений: 17
DZHETIGAPA, взял ваш код. listener не срабатывает. Правда в контейнер я не добавлял.
Я не спец во FlashDevelop, но обычно если свойство существует, оно его подсказывает.
target в e подсказало, а вот content - нет.
Не значит ли это, что этого свойства нет


Последний раз редактировалось username100500; 25.05.2011 в 20:00.
Старый 25.05.2011, 20:03
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS3:
(e.target as Loader).content.addEventListener(MouseEvent.CLICK, closeWindow);
__________________
тут я

Старый 25.05.2011, 20:08
username100500 вне форума Посмотреть профиль Отправить личное сообщение для username100500 Найти все сообщения от username100500
  № 9  
Ответить с цитированием
username100500

Регистрация: May 2011
Сообщений: 17
О, хоть какой-то прогресс))
[Fault] exception, information=TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".

Попробовал повесить слушатель не в onComplete - ничего не происходит - слушатель не срабатывает


Последний раз редактировалось username100500; 25.05.2011 в 20:17.
Старый 25.05.2011, 21:06
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 10  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
Ты лучше напиши код, что ты там делаешь.

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

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

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

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


 


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


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