loading works great, but the memory issues didn't go away. Memory just keeps on climbing as I navigate through the app. Even I set the oldLoader and oldPage to null, the previous swfs will just stay in the memory.
Here is my modified code, it is basically the same except I added:
oldLoader = null;
removeChild(oldPage);
oldPage = null;
import com.greensock.events.LoaderEvent;
import com.greensock.loading.*;
import flash.display.*;
var prevLevel:* = this.parent;
var currentPage:MovieClip;
var oldPage:MovieClip;
var bgID:String;
var curLoader:SWFLoader;
var oldLoader:SWFLoader;
function startLoad(txt:String):void {
bgID = txt;
loadPage("flash/" + bgID + ".swf");
}
function loadPage(txt:String):void {
var loader:SWFLoader = new SWFLoader(txt, {onComplete:loadCompleted});
loader.load();
trace(txt);
}
function loadCompleted(e:LoaderEvent):void {
oldPage = currentPage;
currentPage = e.target.rawContent as MovieClip;
oldLoader = curLoader;
curLoader = e.target as SWFLoader;
if (oldLoader) {
oldLoader.dispose(true);
oldLoader = null;
removeChild(oldPage);
oldPage = null;
}
if (currentPage) {
while (this.numChildren) {
this.removeChildAt(0);
}
addChild(currentPage);
prevLevel.slideOffStage();
}
}
And this is the code I have on the external swf. There is no stage Listener or whatsoever, tweenMax is the only code I used.
stop();
import com.greensock.*;
import com.greensock.easing.*;
var delayTimer:Number = 0.25;
TweenMax.to(rendering, 1, {x:-805.45, delay:delayTimer, ease:Expo.easeOut});
TweenMax.to(clear_mc, 1, {x:106.9, delay:delayTimer, ease:Expo.easeOut});
TweenMax.to(header, 1.25, {x:-381, delay:delayTimer + 0.25, ease:Expo.easeOut});
TweenMax.to(txt, 1, {x:288.8, delay:delayTimer + 0.35, ease:Expo.easeOut});
I am really hitting the wall here.... I have absolutely no idea on how to clear out those external swfs from the memory. Any idea why it isn't working? Bugs in the flash player? That said, I am still really grateful for all the help your provided here, greensock. Thanks!