Hola amigos, sigo con el mismo problema y no puedo llegarle a una solución.
Cambié la forma de buscar una solución y apesar de que utilizo todas las herramientas que he podido encontrar NADA parece que puede eliminarme el swf cargado de la memoria.
Utilizo: el metodo unloadAndStop(Cambie a CS4 a ver si acaso)
Utilizo: weak references
Utilizo en el SWF que será cargado un REMOVE_FROM_STAGE que dispara una funcion Destroy que elimina listeners y objetos.
Apesar que uso todo esto, el bendito SWF sigue clavado ahi en la memoria.
Este es el código que tengo en el SWF que será cargado:
Código:
addEventListener(Event.ADDED_TO_STAGE, addedHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removedHandler);
var logo_mc:MovieClip = new LogoMc();
function addedHandler(evt:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, addedHandler);
initAnimation();
}
function removedHandler(evt:Event):void
{
removeEventListener(Event.REMOVED_FROM_STAGE, removedHandler);
//Here comes the destroy function
destroy();
}
function initAnimation():void
{
addChild(logo_mc);
logo_mc.x = 100;
logo_mc.y = 200;
logo_mc.addEventListener(Event.ENTER_FRAME, logoMove);
}
function logoMove(evt:Event):void
{
logo_mc.x += 10;
}
function destroy():void
{
logo_mc.removeEventListener(Event.ENTER_FRAME, logoMove);
logo_mc = null;
}
Este es el código que puse en el Movie principal
Código:
var contentLoader:Loader = new Loader();
addChild(contentLoader);
loadButton_btn.addEventListener(MouseEvent.CLICK, loadMySwf, false, 0, true);
unloadButton_btn.addEventListener(MouseEvent.CLICK, unLoadMySwf,false, 0, true);
function loadMySwf(evt:MouseEvent):void
{
loadURL("mySwfTest.swf");
}
function loadURL(url:String):void
{
contentLoader.unloadAndStop();
var request:URLRequest = new URLRequest(url);
contentLoader.load(request);
}
function unLoadMySwf(evt:MouseEvent):void
{
if(contentLoader.content)
{
contentLoader.unloadAndStop();
}
}
Apesar de ser el SWF más simple del mundo y con todas estas formas de buscar desaparecerlo de la memoria NADA, el bicho sigue ahí.
Gracias por cualquier consejo o si encuentran una forma de hacerlo con exito les agradecería que me echaran un cable.