使用AS3加载另一个swf文件

时间:2012-03-09 23:04:31

标签: actionscript-3 flash

我正在尝试使用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);
}

非常感谢

1 个答案:

答案 0 :(得分: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);
}

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

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

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

<强>更新

如果您想要清除舞台上的所有内容,请参阅以下问题&amp;回答My Actionscript 3.0 Stage will not clear