выгрузить динамически загруженный SWF после его отображения AS3 - PullRequest
0 голосов
/ 08 июля 2011

Я делаю презентацию, на которой мне нужно использовать много видеоклипов. Я загружаю все эти видео динамически, используя Loader. Я использую фрагмент кода следующим образом:

var req:URLRequest = new URLRequest("video.swf");
var a:Loader = new Loader();
a.load(req);
stage.addChild(a);

а Теперь проблема в том, что когда я говорю 7-й, он начинает отставать. Я не знаю почему, но я думаю, что это потому, что все загружается в память. Есть ли способ удалить видео из памяти после его отображения? Или есть другое решение для этого?

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Если вы будете каждый раз загружать новое видео и добавлять его на сцену, у вас будет довольно большая иерархия фильмов, сидящих друг над другом; все хранится на сцене и в памяти.

Если вы сохраняете ссылку на ранее загруженный фильм, вы можете просто удалить его со сцены при загрузке «следующего» фильма. Не проверял это должным образом, но просто чтобы дать вам представление о том, как может выглядеть код:

var oldLoader:Loader = null;

var a:Loader = new Loader();
a.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
a.load(<your url>);

function loader_complete(e:Event):void {
    var newLoader:Loader = e.currentTarget.loader as Loader;

    stage.addChild(newLoader);

    if(oldLoader != null) {
        stage.removeChild(oldLoader);
        oldLoader = null;
    }

   oldLoader = newLoader;
}
0 голосов
/ 09 июля 2011

Я думаю, что нашел решение.Если вы используете removeChild, он только перестает отображаться, но все это все еще находится в памяти (кеш).Таким образом, чем больше вы загружаете видео, тем больше вы заполняете кеш.Нам нужно что-то, что полностью очищает кеш перед загрузкой другого видео.

Я использовал unloadAndStop (), и, похоже, он полностью справился с задачей, если кто-то не имеет против этого.еще раз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...