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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.02.2011, 14:43
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
По умолчанию СЕтка лоадеров. Очистка

В цикле динамически создаются лоадеры. ( пс. сразу скажу, что архитектуру переписывать нету времени, и я понимаю, что она плохая, поэтому вопрос именно по такой архитектуре). Лоадеры пихаются в контейнер, поверх лоадеров пихаются прелоадеры соотв тоже в контейнер. Будем считать , что небольшая галлерея. И так сетка 10*10 ( к примеру ) заполнена начинается загрузка.
По нажатию кнопки, мне нужно резко очистить контейнер удалив все лоадеры и прелоадеры.


Но в такой пилотке начинают вылезать ошибки, типа
Код:
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
	at flash.display::DisplayObjectContainer/removeChild()
	at mcs::BG2/showtex()
Выглядет это так :

Код AS3:
var lg:LG = new LG(); // прелоадер
uloader.name = i; // лоадер
loArray.push(lg);
cont.addChild(lg);
uloader.contentLoaderInfo.addEventListener(Event.INIT, showtex);
 
private function showtex(e:Event):void 
		{
 
			cont.removeChild(loArray[e.target.loader.name]);
}
Криво как я уже и говорил, но да не важно.

И вот если не успев дать лоадерам загрузится мы нажимаем на кнопку, то

Код AS3:
while (cont.numChildren != 0) {
				cont.removeChildAt(0);
			}
При этом программа отрабатывает нормально и вроде как все очищается. Но сам факт того, что висят ошибки мне не очень приятен.

Я так понимаю в этой ситуации надо отписывать событие complete для лоадеров и закрывать их методом close() Но как это лучше сделать?

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Цитата:
uloader.name = i;
типизация
Цитата:
loArray[e.target.loader.name]
типизация.

п.с.

Код AS3:
private function showtex(e:Event):void {
var preloader:DisplayObject;
var loader:Loader = e.target.loader;
loader.contentLoaderInfo.removeEventListener(Event.INIT, showtex);
preloader = loArray[int(loader.name)];
if(cont.contains(preloader )){
cont.removeChild(preloader);
}
}
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью


Последний раз редактировалось cleptoman; 07.02.2011 в 15:01.
Старый 07.02.2011, 16:25
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

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

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

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

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


 


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


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