使用AS3加载另一个swf文件

mjs*_*sey 2 flash actionscript-3

我正在尝试使用Aaction Script 3在按钮单击时加载另一个swf.

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

这是我到目前为止:

//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);
}
Run Code Online (Sandbox Code Playgroud)

非常感谢

小智 6

像这样使用加载器:

//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);
}
Run Code Online (Sandbox Code Playgroud)

你正在做的是你每次为你加载的新SWF创建一个新的Loader.只需使用一个加载器,每次加载内容时,都应该替换现有内容.如果没有,请像这样调整代码:

function backButtonClick(ev:MouseEvent):void
{
    var request:URLRequest = new URLRequest("2.swf");
    singleLoader.unloadAndStop(true);
    singleLoader.load(request);
    addChild(loader);
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html

更新

如果要在执行此操作时清除舞台上的所有内容,请参阅以下问题和答案My Actionscript 3.0 Stage将无法清除.