我已經加載了一個外部swf文件,默認播放flv文件,因爲swf被加載。現在的問題是我如何從內存中刪除swf文件。我的代碼:刪除外部swf文件as3
var myLoader:Loader = new Loader();
var url:URLRequest = new URLRequest("ExternalSWF.swf");
myLoader.load(url);
detailMovieClip.movieHolder.addChild(myLoader);
我已經嘗試過removeChild,unload和unloadAndStop的許多組合,但都無效。我想到了所有關於不正確引用。
更新:
我去從Jegan答案,但只有當我在其中只有1 numChildren的虛擬項目在真實世界中的代碼示例numChildren的測試,howver工作報告22所以我不知道如果那會是一個問題。這裏是真正的世界代碼:
var myImageLoader:Loader;
var myImageRequest:URLRequest;
var theImagePath:String;
//part from xml processor function
theImagePath = "flash/"+myXML..item_video_link[n];
loadTheMovie(theImagePath);
function loadTheMovie(theImagePath):void{
myImageLoader = new Loader();
myImageRequest= new URLRequest(theImagePath);
myImageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,showMeTheVideo);
myImageLoader.load(myImageRequest);
}
function showMeTheVideo(evt:Event):void{
detailsMovieClip_mc.details_video_holder.dynamicVideoHolder.addChild(myImageLoader);
}
stopVideo(sectionname):viod{
if(detailsMovieClip_mc.details_video_holder.dynamicVideoHolder.numChildren !=0){
trace("what is the number of children: "+numChildren);
myImageLoader.unloadAndStop();
detailsMovieClip_mc.details_video_holder.
dynamicVideoHolder.removeChild(myImageLoader);
}
}
相信你最好的選擇是移除孩子並將其引用爲null,同時確保事件監聽器被移除,除此之外,垃圾收集器會在內存中緊張時提取它,只是在一個正常的通行證。 – shaunhusain 2012-08-10 05:22:06