Удаление подгруженного файла (as3)

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
Аватара пользователя
alexey979797
Сообщения: 48
Зарегистрирован: 27 сен 2011, 18:54

Удаление подгруженного файла (as3)

Сообщение alexey979797 »

Подгружаю вместо одного swf другой. Но потом мне нужно вернуться к первоначальному swf-файлу. Подгрузить первоначальный swf-файл по ссылке невозможно, так как ссылка появляется после сохранения подгружаемого файла (использую дополнительные swf-файлы вконтакте).
Вот мой код:

Код: Выделить всё

var myloader:Loader = new Loader();myloader.contentLoaderInfo.addEventListener(Event.COMPLETE, finish);myloader.load(new URLRequest('http://ссылка.zip')); function finish(e:Event):void{removeChildAt(0);addChild(myloader);}
Помогите, пожалуйста, сделать так, чтобы подгруженный файл удалялся (кнопка должна быть в подгруженном файле)
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Удаление подгруженного файла (as3)

Сообщение Alazaur »

Еще бы понять, что вы хотите сделать :D Растолкуйте для танкистов.
Аватара пользователя
alexey979797
Сообщения: 48
Зарегистрирован: 27 сен 2011, 18:54

Re: Удаление подгруженного файла (as3)

Сообщение alexey979797 »

Есть 2 swf-файла. Оба загружены на сервер вконтакте. Вместо первого подгружается второй (первый удаляется, на его место ставится другой). Вот мне нужно сделать так, чтобы из этого второго можно было вернуться к первому.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Удаление подгруженного файла (as3)

Сообщение Alazaur »

Ну здесь либо загружать первый заново, либо хранить ссылку на него, чтобы сборщик мусора его не цеплял.
Аватара пользователя
alexey979797
Сообщения: 48
Зарегистрирован: 27 сен 2011, 18:54

Re: Удаление подгруженного файла (as3)

Сообщение alexey979797 »

Подгружать первый заново невозможно, так как я сначала сохраняю второй файл, а потом уже первый (тот, ссылку на который надо было указать во втором).
А вторым способом - это как?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Удаление подгруженного файла (as3)

Сообщение Alazaur »

Ну как-то так:

Код: Выделить всё

var myloader:Loader = new Loader();var firstSWF:DisplayObject;myloader.contentLoaderInfo.addEventListener(Event.COMPLETE, finish);myloader.load(new URLRequest('http://ссылка.zip')); function finish(e:Event):void{firstSWF = removeChildAt(0);addChild(myloader);}
Вот сейчас в firstSWF хранится ссылка, на удаленный со сцены DisplayObject. Если вы напишете addChild(firstSWF); то он добавится заново.
Только злоупотреблять подобным не рекомендую. Несмотря на то, что этот объект удален со сцены, в памяти компьютера он все так же остается, пока не будут удалены все ссылки на него. В данном случае она одна. Написав firstSWF = null; вы удалите ссылку и только после этого сборщик мусора удалит объект полностью.
smit
Сообщения: 7
Зарегистрирован: 02 ноя 2012, 02:42

Re: Удаление подгруженного файла (as3)

Сообщение smit »

Лови

Код: Выделить всё

/* Нажмите для загрузки/выгрузки файла SWF или изображения с веб-страницы.Нажмите на экземпляр символа, чтобы загрузить с веб-страницы и отобразить указанный файл SWF или изображение. Повторное нажатие на экземпляр символа выгружает файл SWF или изображение. Инструкции:1. Замените "http://www.helpexamples.com/flash/images/image1.jpg" в коде ниже на URL-адрес желаемой страницы, где находится файл SWF или изображение. Не удаляйте кавычки ("").2. Файлы, находящиеся за пределами домена вызывающего файла SWF, загружаются только с применением специальных настроек.*/ Boo_Do_You_Think_You_Are.addEventListener(MouseEvent.CLICK, fl_ClickToLoadUnloadSWF); import fl.display.ProLoader;var fl_ProLoader:ProLoader; //Эта переменная служит для определения требуемой операции (загрузка/выгрузка)var fl_ToLoad:Boolean = true; function fl_ClickToLoadUnloadSWF(event:MouseEvent):void{    if(fl_ToLoad)    {        fl_ProLoader = new ProLoader();        fl_ProLoader.load(new URLRequest("http://www.helpexamples.com/flash/images/image1.jpg"));        masked_clip.addChild(fl_ProLoader); /*если без маски, то просто addChild(fl_ProLoader); и без следующих 2 строчек.*/        masked_clip.scaleX = 1.1        masked_clip.scaleY = 1.1     }    else    {/*этот блок выгружает файл при втором клике*/        fl_ProLoader.unload();        masked_clip.removeChild(fl_ProLoader);        fl_ProLoader = null;    }    //Включите, если требуется загрузить или выгрузить файл SWF    fl_ToLoad = !fl_ToLoad;} 
Аватара пользователя
alexey979797
Сообщения: 48
Зарегистрирован: 27 сен 2011, 18:54

Re: Удаление подгруженного файла (as3)

Сообщение alexey979797 »

Alazaur, спасибо! Получилось сделать. Но я сделал немножко по-другому. Не удалял первоначальный файл, а второй загружал поверх него. Потом просто удалял второй файл. Файлы у меня очень маленькие, поэтому мой способ здесь уместен.
Ответить