Actionscript 3 使用AS3加载另一个swf文件

Actionscript 3 使用AS3加载另一个swf文件,actionscript-3,flash,Actionscript 3,Flash,我正在尝试使用AAAction脚本3通过单击按钮加载另一个swf 我遇到的问题是,它似乎只是加载和混合电影在一起。可以在后台加载和替换新加载的swf,类似于在AS2中使用loadMovieNum()执行此操作的方式 这就是我到目前为止所做的: //Add event listener for button click backButton.addEventListener(MouseEvent.CLICK, backButtonClick); //Create a function for t

我正在尝试使用AAAction脚本3通过单击按钮加载另一个swf

我遇到的问题是,它似乎只是加载和混合电影在一起。可以在后台加载和替换新加载的swf,类似于在AS2中使用loadMovieNum()执行此操作的方式

这就是我到目前为止所做的:

//Add event listener for button click
backButton.addEventListener(MouseEvent.CLICK, backButtonClick);

//Create a function for the button click
function backButtonClick(ev:MouseEvent):void
{
var request:URLRequest = new URLRequest("2.swf");
var loader:Loader = new Loader()
loader.load(request);
addChild(loader);
}

非常感谢

像这样使用加载程序:

//Add event listener for button click
var singleLoader:Loader = new Loader();
backButton.addEventListener(MouseEvent.CLICK, backButtonClick);

//Create a function for the button click
function backButtonClick(ev:MouseEvent):void
{
    var request:URLRequest = new URLRequest("2.swf");
    singleLoader.load(request);        
    addChild(loader);
}
您所做的是,每次为您正在加载的每个新SWF创建一个新的加载程序。只需使用一个加载程序,每次加载内容时,它都会替换现有内容。如果不是,请调整代码,如下所示:

function backButtonClick(ev:MouseEvent):void
{
    var request:URLRequest = new URLRequest("2.swf");
    singleLoader.unloadAndStop(true);
    singleLoader.load(request);
    addChild(loader);
}
有关更多信息,请参阅文档:

更新


如果您想在执行此操作时清除舞台上的所有内容,请参阅以下问题和答案。

谢谢,但是我现在遇到了以下错误:TypeError:error#1009:无法访问空对象引用的属性或方法。在map_fla::MainTimeline/frame1()中,是否添加了singleLoader的定义?就像“var singleLoader:Loader=new Loader();”?啊,我错过了这一点,它解决了问题,但是现在它仍然在原版的基础上加载电影,并显示了两者的混合。我已经尝试了你的两个建议。是的,我是,但我也显示了使用谷歌api的地图。必须有办法清除屏幕并加载第二个swf,即使您可能可以在新窗口中打开它?//为按钮单击添加事件侦听器var singleLoader:Loader=new Loader();backButton.addEventListener(MouseEvent.CLICK,backButtonClick)//为按钮单击函数backButtonClick(ev:MouseEvent)创建一个函数:void{var请求:URLRequest=new URLRequest(“slam.swf”);singleLoader.unloadAndStop(true);singleLoader.load(request);while(stage.numChildren>0){removeChildAt(0);}stage.addChild(singleLoader);}现在给我以下错误:RangeError:error#2006:提供的索引超出范围。非常感谢您迄今为止的帮助,非常感谢