Страница 1 из 1

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

Добавлено: 19 ноя 2012, 16:48
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);}
Помогите, пожалуйста, сделать так, чтобы подгруженный файл удалялся (кнопка должна быть в подгруженном файле)

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

Добавлено: 19 ноя 2012, 17:23
Alazaur
Еще бы понять, что вы хотите сделать :D Растолкуйте для танкистов.

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

Добавлено: 19 ноя 2012, 17:28
alexey979797
Есть 2 swf-файла. Оба загружены на сервер вконтакте. Вместо первого подгружается второй (первый удаляется, на его место ставится другой). Вот мне нужно сделать так, чтобы из этого второго можно было вернуться к первому.

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

Добавлено: 19 ноя 2012, 17:40
Alazaur
Ну здесь либо загружать первый заново, либо хранить ссылку на него, чтобы сборщик мусора его не цеплял.

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

Добавлено: 19 ноя 2012, 17:42
alexey979797
Подгружать первый заново невозможно, так как я сначала сохраняю второй файл, а потом уже первый (тот, ссылку на который надо было указать во втором).
А вторым способом - это как?

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

Добавлено: 19 ноя 2012, 17:54
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; вы удалите ссылку и только после этого сборщик мусора удалит объект полностью.

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

Добавлено: 23 ноя 2012, 16:20
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;} 

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

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