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

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

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

Регистрация: Dec 2006
Сообщений: 27
По умолчанию Почем не работает removeChild?

Мувиклип(прелоадер) экспортируюется в AS с уникальным именем SmPreload. В процессе подгрузки изображений мы добавляем его на сцену на места изображений.
Код AS3:
private function smgLoad(e:ProgressEvent) {  //Отлавливаем загружающиеся картинку, ставим на её место sm_preload 
 
 
			var myUiLoader:UILoader =  e.currentTarget as UILoader;
			var smPreload = new SmPreload();
			smPreload.x = (myUiLoader.x + myUiLoader.width)-25;
			smPreload.y = (myUiLoader.y + myUiLoader.height) - 40;
			smPreload.name = 'preload_' + myUiLoader.name;
                        trace('smPreload.name = ', smPreload.name); //smPreload.name =  preload_pic6
                        addChild(smPreload);
 
		}
 
		private function smgComp(e:Event) { //убираем sm_preload по окончанию загрузки
 
			var myUiComp:UILoader = e.currentTarget as UILoader;
			var name = 'preload_' + myUiComp.name;
			trace('name =', name); 
			var sm_preload = getChildByName(name);
			trace('sm_preload.name = ', sm_preload.name); //sm_preload.name =  preload_pic6
			removeChild(sm_preload);
 
		}
Скрипт проходит, но все экземпляры SmPreload остались на местах. Никто не удалился. Ежели помимо removeChild(sm_preload); добавить в конце ещё строчку obj.removeChild(obj.getChildByName(name)), удаление происходит. Но ведь это не корректно? Подскажите пожалуйста в чем проблема!

Добавлено через 30 минут
Пардон, сам разобрался
В первой функции нужно было удалить слушатель для ProgressEvent.PROGRESS
Код AS3:
myUiLoader.removeEventListener(ProgressEvent.PROGRESS, smgLoad);
Ну и Event.COMPLETE во второй соответственно:
Код AS3:
			myUiComp.removeEventListener(Event.COMPLETE, smgComp);

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

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

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


 


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


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