Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Выгрузка SWF из лоадера (http://www.flasher.ru/forum/showthread.php?t=143671)

3p.station 22.08.2010 21:29

Выгрузка SWF из лоадера
 
Всем привет!
такой вот вопросец появился
подгружаю внешнюю флешку
Код AS3:

var FilePath = xml.item[index].source.name;
 
var imageLoader = new Loader();
imageLoader.load(new URLRequest(FilePath));
 
imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, NewsLoaded);                                                           
 
function NewsLoaded(e:Event = null):void
{
        var swf = e.target.content;
        addChild(swf);
}

после использования этой флешки ее нужно вообще убрать:
removeChild(swf) просто выгружает со сцены, но сама флешка продолжает работать(звуки там и прочее)
как ее выгрузить из памяти начисто?

спаисбо

expl 22.08.2010 23:06

Может так прокатит:
- добавляем на сцену не контент, а лоадер целиком, а потом:
Код AS3:

imageLoader.unload()


3p.station 22.08.2010 23:57

Цитата:

As a best practice, before you unload a child SWF file, you should explicitly close any streams in the child SWF file's objects, such as LocalConnection, NetConnection, NetStream, and Sound objects. Otherwise, audio in the child SWF file might continue to play, even though the child SWF file was unloaded. To close streams in the child SWF file, add an event listener to the child that listens for the unload event. When the parent calls Loader.unload(), the unload event is dispatched to the child. The following code shows how you might do this:
прикольно, вот почему звуки продолжают играть

Hidest 23.08.2010 01:04

Loader#unloadAndStop()

3p.station 23.08.2010 02:42

unloadAndStop вроде в 10 плеере вроде
unload сработал но после этого я не могу тем же ладером загружать ничего - выдает ошибку

nOobCrafter 23.08.2010 13:47

а что мешает сделать новый?

3p.station 23.08.2010 16:10

да так и решилось
я его обновляю
Код AS3:

loader = new Loader();

а потом не выгружаю а делаю
Код AS3:

loader = null

всем спасибо

smit1987 19.11.2012 04:24

Цитата:

Сообщение от 3p.station (Сообщение 930817)
да так и решилось
я его обновляю
Код AS3:

loader = new Loader();

а потом не выгружаю а делаю
Код AS3:

loader = null

всем спасибо

Что посоветуете мне? Столкнулся с такой же проблемой. Подгружаю флешку следующим способом:

Код AS3:

bt_Chip_Off.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://cs6122.userapi.com/u153886829/3ca1520ee27b1a.zip"));
                masked_clip.addChild(fl_ProLoader);
                masked_clip.scaleX = 1.1
                masked_clip.scaleY = 1.1
        }
        else
        {
                fl_ProLoader.unload();
                removeChild(fl_ProLoader);
                fl_ProLoader = null;
 
        }
        //Включите, если требуется загрузить или выгрузить файл SWF
        fl_ToLoad = !fl_ToLoad;
 
}

Т.е., у меня не Loader, а ProLoader. Поэтому такое обнуление не подходит. Просто заменить слова - не помогло.
Причем обращаем внимание на то, что после else, как-раз идет отбой, но как описано выше, исчезает только картинка. Что мне туда вписать еще?

vizgl 19.11.2012 05:02

Насколько я знаю, то полностью выгрузить загруженную swf из памяти невозможно.

КорДум 19.11.2012 10:16

vizgl, почему это? Loader#unloadAndStop() имеет параметром вызов GC, который достаточно быстро приберет все кольцевые ссылки и даже листенеры. В любом случае, если есть сомнения по поводу последнего, советую реаизовать метод dispose() в подгружаемой флешке и перед выгрузкой вызывать его.


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

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