从外部swf按钮加载外部swf并卸载自己?

时间:2010-05-13 05:30:09

标签: events flash addeventlistener swfloader

我是闪存AS3的超级n00b。并不是我的意图听起来像一个完整的白痴,但说实话,我已经有足够的时间搞清楚如何加载外部.swf到我的主文件中!现在我的朋友问我是否可以在外部.swf中添加一个按钮,它将卸载自己并在其位置加载新的... 我已经在论坛中四处寻找答案了一段时间,我相信现在是时候让我崩溃,承认失败并寻求帮助。
有人可以告诉我这不是那么难......?当然有可能......
提前感谢您的任何建议!我很期待可以在这里发布回复的时间!

1 个答案:

答案 0 :(得分:0)

我有解决方案!它只有24小时。我统治!
我遇到了 dispatchEvent 并解决了它!

...如果有人在未来找到这个看似不可能完成的任务的答案,那么他们将会得到答案现在!如果我在参考我所做的事情时没有正确的术语,请原谅我。开始了...

在我的外部.swf 中,我需要将一个侦听器事件设置为我的按钮(位于我的外部swf中)。然后在我的按钮的函数中包含一个dispatchEvent。我将“事件”中的“真实”包括在“事件”中,然后回到主时间轴。他是我的一个按钮的例子。

mc_main_menu.btn_entertainment.addEventListener(MouseEvent.CLICK, button4);
function button4(event:MouseEvent) {  
dispatchEvent(new Event("btn4", true));  
}

好的,但这只是实现它的代码的一半。现在,在我的主要swf 中,我将外部swfs加载到其中,我需要做几件事:
1)。从内存中卸载当前的swf,以便停止播放声音 2)。在我的外部swf(它会冒泡)中为dispatchEvent设置一个监听器 3)。加载新的外部swf

loader.addEventListener("btn4", page4Swf)
function page4Swf(event:Event):void{<p>
Loader(event.currentTarget).unloadAndStop();  //completely removes the swf from memory  
var SWFRequest:URLRequest = new URLRequest("page4.swf");  
loader.x = Xpos;  
loader.y = Ypos;  //these are to offset the loaded swf, if you wish  
addChild(loader);  
}

就是这样!老实说,我不认为我会在这里快速发布回复!