Просмотр полной версии : удаление внешнего содержимого
создал проект1, в нем анимация и одна кнопка для загрузки внешнего swf, на внешнем swf 6 кнопок запуска различных внешних swf.
Реализовывал запуск внешних файлов при помощи URLRequest.
Как сделать чтобы при следующем запуске swf, предыдущий выгружался из памяти.
Понятно, что removeChild();
Но каким образом не могу понять.
Как сделать чтобы при следующем запуске swf, предыдущий выгружался из памяти.
Понятно, что removeChild();?
Какое отношение removeChild() имеет к памяти? Это всего лишь удаление из списка отображения.
Loader#unload()
к памяти никакого.
Добавлено через 39 минут
Функции 2-х кнопок запуска внешнего swf, как мне выгружать из памяти первый при запуске второго??? Подскажите пожалуйста!!
var uiLoader:Loader = new Loader ();
bt_buksa.addEventListener (MouseEvent.CLICK, buksa);
function buksa (myevent:MouseEvent):void {
var buksaURL:URLRequest = new URLRequest ("rezim/Info.swf");
uiLoader.load(buksaURL);
addChild(buksaLoader);
}
bt_val.addEventListener (MouseEvent.CLICK, val);
function val(myevent:MouseEvent):void {
var valURL:URLRequest = new URLRequest ("val/Info.swf");
uiLoader.load(valURL);
addChild(uiLoader);
}
ramshteks
28.04.2012, 14:59
сохраняете ссылку загруженного клипа. При загрузке второго делаете unload()
сохраняете ссылку загруженного клипа. При загрузке второго делаете unload()
Спасибо!!!! Только я начинающий в этом деле и разбираюсь поэтапно, по мере появления проблем.
Как программно это написать?Скажите пожалуйста, если не трудно!
ramshteks
28.04.2012, 15:24
var uiLoader:Loader = new Loader ();
bt_buksa.addEventListener (MouseEvent.CLICK, buksa);
function buksa (myevent:MouseEvent):void {
var buksaURL:URLRequest = new URLRequest ("rezim/Info.swf");
uiLoader.load(buksaURL);
addChild(buksaLoader);
}
bt_val.addEventListener (MouseEvent.CLICK, val);
function val(myevent:MouseEvent):void {
//--inject
uiLoader.unload();
//--------
var valURL:URLRequest = new URLRequest ("val/Info.swf");
uiLoader.load(valURL);
addChild(uiLoader);
}
самый простой способ исправить ваш код, чтобы удовлетворять требованиям
а у меня таких кнопок, 6 мне для каждой подобно прописывать????
ramshteks
28.04.2012, 15:38
а у меня таких кнопок, 6 мне для каждой подобно прописывать????
ну да. Ну или можете автоматизировать процесс, дело ваше.
Изменил код, по вашему совету и ноль результата, все равно при переключении кнопок (загрузки внешних swf файлов) память забивается!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ramshteks
28.04.2012, 15:52
Изменил код, по вашему совету и ноль результата, все равно при переключении кнопок (загрузки внешних swf файлов) память забивается!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
удаление из памяти совершенно не факт, что произойдет сразу.
вообще не происходит удаление из памяти.
Добавлено через 38 минут
Народ кто подскажет по поводу освобождения памяти, помогите пожалуйста!!!!
После праздников и проб и ошибок подведем ИТОГ:
bt_obuchenie.addEventListener (MouseEvent.CLICK, obuchenie);
function obuchenie (myevent:MouseEvent):void {
gotoAndStop(2);
inr = 3;
if ((inr == 1)||(inr == 2)||(inr == 4))
{
iltLoader.unload();
}
var iltURL:URLRequest = new URLRequest ("rezim/obuchenie.swf");
iltLoader.load(iltURL);
addChild(iltLoader);
}
Вот так в моем случае все работает как надо!!!!
Из памяти сразу же выгружается! И это самое главное!!!!!!!!
понятно почему не работало, было слишком мало восклицательных знаков
inr = 3;
if ((inr == 1)||(inr == 2)||(inr == 4))
{
iltLoader.unload();
}
А это условие вообще никогда не выполнится.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.