我已经加载了一个外部 swf 文件,它在加载 swf 时默认播放一个 flv 文件。现在的问题是如何从内存中删除 swf 文件。我的代码:
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 报告了 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);
}
}