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

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

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

Регистрация: Apr 2010
Сообщений: 137
По умолчанию Удалить загруженную флешку с загружающей флешки

С помощью Loader`а загружаю флешку. Всё старое на экране очищаю, и добавляю на область этот лоадер. Пусть он свое отработал, и теперь мне надо обратно вернутся к первоначальной флешке, для чего нужно удалить загруженную. Как это сделать?
Я, не зная вообще, могло ли такое сработать, попробовать dispatchEvent. Но видимо между двумя флешками это не работает, так как пытался даже просто trace вывести вместо удаления лоадера, и не катит.
главная флешка
Код AS3:
var loader....//тут создаю, загружаю и так далее
loader.addEventListener("end_of_loader", f_eol);
 
function f_eol(e:Event):void {
   trace("Дошло");
}
В подгружаемой флешке, когда её нужно удалить, пишу:
Код AS3:
dispatchEvent(new Event("end_of_loader"));

Старый 27.02.2013, 01:58
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Удалите loader из дисплейлиста
Быстро loader.parent.removeChild(loader);
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Apr 2010
Сообщений: 137
Цитата:
Сообщение от dimarik Посмотреть сообщение
Удалите loader из дисплейлиста
Быстро loader.parent.removeChild(loader);
Попробовал что-то такое:
Код AS3:
parent.removeChild(this);
Выдает ошибку: 2069 Класс Loader не реализует этот метод.

Старый 28.02.2013, 23:18
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
событие не срабатывает, потому что подписан на него лоадер, а вещает загруженная флешка
т.е. надо или подписывать loader.content (после загрузки) или вещать всплывающее событие
Код AS3:
dispatchEvent(new Event("end_of_loader", true));

Старый 28.02.2013, 23:58
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 5  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
Цитата:
Сообщение от TurboDizel Посмотреть сообщение
Попробовал что-то такое:
Код AS3:
parent.removeChild(this);
Выдает ошибку: 2069 Класс Loader не реализует этот метод.
Скорее всего сработает
Код AS3:
parent.parent.removeChild(parent);
. Таким образом вы удалите loader из display list (как и предлагал выше dimarik).

Но я бы за такой код оторвал руки. Смотрите на вариант от silin-а.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Потише, пожалуйста, насчет отрывания рук. Я же русским по коричневому написал, что это быстро.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Apr 2010
Сообщений: 137
Цитата:
Сообщение от silin Посмотреть сообщение
событие не срабатывает, потому что подписан на него лоадер, а вещает загруженная флешка
т.е. надо или подписывать loader.content (после загрузки) или вещать всплывающее событие
Код AS3:
dispatchEvent(new Event("end_of_loader", true));
Действительно, большое спасибо!

Из результата следует ещё один маленький вопрос: после удаления загруженной флешки со сцены, её звуки все равно продолжают проигрываться, мне их останавливать вручную перед удалением, или всё таки можно как-то закрыть эту флешку так, чтобы всё связанное с ней отвязалось?

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Из результата следует, что все осталось в аппдомене и прекрасно продолжает работать. Удалите все ссылки на дефинишины из того аппдомена, остановите таймеры и звуки и, если не использовали всякие Font.registerFont, то аппдомен выгрузится и освободит память. Воспользуйтесь Loader#unloadAndStop(), наконец.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 01.03.2013, 00:56
TurboDizel вне форума Посмотреть профиль Отправить личное сообщение для TurboDizel Найти все сообщения от TurboDizel
  № 9  
Ответить с цитированием
TurboDizel
 
Аватар для TurboDizel

Регистрация: Apr 2010
Сообщений: 137
Цитата:
Сообщение от dimarik Посмотреть сообщение
Из результата следует, что все осталось в аппдомене и прекрасно продолжает работать. Удалите все ссылки на дефинишины из того аппдомена, остановите таймеры и звуки и, если не использовали всякие Font.registerFont, то аппдомен выгрузится и освободит память. Воспользуйтесь Loader#unloadAndStop(), наконец.
Да вот как только написал вопрос, сразу нашел unloadAndStop(), но то ли CS3 не знает такой функции, то ли я что-то не так делаю, но выдает ошибку:
1061: Call to a possibly undefined method unloadAndStop through a reference with static type flash.display:Loader.
В ручную до удаления остановил всевозможные звуки, думал этого хватит).

Старый 01.03.2013, 01:02
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Проверьте в настройках, для какой версии Flash Player компилируете. Точно не помню, гляньте в справке в какой она появилась.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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