2012-03-09 61 views
2

我试图加载另一个SWF使用Aaction脚本3.加载使用AS3

我有问题点击一个按钮的另一个swf文件是,它似乎只是加载和电影混合在一起。是否可以加载并在舞台上更换类似于你怎么可以为使用loadMovieNum为此在AS2新加载的SWF()

这是我到目前为止有:

//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); 
} 

非常感谢

回答

6

使用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); 
} 

你在做什么是你要创建一个新的Loader为您加载每一个新的SWF每一次。只需使用一个加载器,并且每次加载内容时,都应该替换现有的内容。如果不是,调整代码如下所示:

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

更新

如果要清除一切走下舞台时,你这样做,请参阅以下问题&答案My Actionscript 3.0 Stage will not clear

+0

但是,我现在得到此错误: TypeError:错误#1009:无法访问空对象引用的属性或方法。 \t at map_fla :: MainTimeline/frame1() – mjsey 2012-03-09 23:17:37

+0

您是否添加了singleLoader的定义?像这样“var singleLoader:Loader = new Loader();” ?? – 2012-03-09 23:37:06

+0

啊我错过了,它解决了这个问题,但现在它仍然加载电影在原来的顶部,并显示了两者的混合。我已经尝试了你的两个建议。 – mjsey 2012-03-09 23:49:58