有趣的是, unloadAndStop() 是针对您的确切情况而设计的。根据文档...
示例:将具有音乐曲目的 SWF 文件加载到应用程序中。
稍后,使用 Loader.unload() 卸载 SWF。
虽然 SWF 将从屏幕上移除,但仍会听到音乐。
解决方案
Loader.unloadAndStop 是 Action Script 3 API 的新增功能。
它可以帮助开发人员正确停止和卸载加载的内容
使用 Loader.load/loadBytes API。
...Flash Player 递归地尝试停止并清除尽可能多的
尽可能多的对象(声音、NetStreams、EventListeners 等)
在加载的 SWF 中。这个功能特别有用
卸载未知的第 3 方内容时。
这似乎完全符合你的情况!如果您的 Loader 实现是正确的,这听起来像是 unloadAndStop() 方法中的错误。
一种替代解决方案可能是创建加载器的新实例,而不是为每个视频使用相同的加载器。
私有变量 currentMovie:DisplayObject;
私有函数 loadSWF(url:String):void
{
如果(当前电影!= null)
{
//停止当前电影中的声音播放
//然后将其从显示列表中删除
removeChild(currentMovie);
当前电影=空;
}
var loader:Loader = new Loader();
//配置监听器
request.url = 网址;
loader.load(请求,上下文);
}
私有函数 onLoadComplete(event:Event):void
{
currentMovie = event.target.loader.content;
//ETC...
}