在加载外部文件的同一按钮中卸载 SWF 文件,以最大限度地减少加载时间
Unload SWF File in a Same Button that Load the External File to Minimize Loading Time
我有两个 SWF 文件。第一个是 home.swf
,第二个是 menu.swf
。每个 SWF 文件都有一个加载外部 SWF 文件的按钮。
这是 home.swf
文件中的代码:
stop();
menu_btn.addEventListener(MouseEvent.CLICK, func_menu);
function func_menu(e:MouseEvent):void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("menu.swf"));
}
function onComplete(e:Event):void {
var movie:* = LoaderInfo(e.currentTarget).content;
stage.addChild(movie);
}
这是 menu.swf
文件中的代码:
stop();
home_btn.addEventListener(MouseEvent.CLICK, func_home);
function func_home(e:MouseEvent):void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("home.swf"));
}
function onComplete(e:Event):void {
var movie:* = LoaderInfo(e.currentTarget).content;
stage.addChild(movie);
}
如果我多次单击按钮,SWF 文件的加载时间会变长。我注意到那些代码不会卸载文件。我需要什么代码来卸载以前的 SWF 文件?
我是动作脚本的新手。请放宽我。
我从问题中了解到,您很可能会经常在 SWF 之间切换(加载主页和卸载菜单,反之亦然)。
我建议您创建一个容器 SWF,它将加载这两个 SWF,并在加载完成时保存对加载器/它们的内容的引用。
两者加载后,只需调用 addChild() 和 removeChild() 来交换它们。
如果您想从 SWF 中触发交换,您可以在单击其中创建的按钮时调度一个事件,并在容器 SWF 中侦听调度的事件。
这样你就可以在瞬间交换任意多次它们而不必每次都重新加载它们,而且你可以避免不断地分配和释放内存。
我有两个 SWF 文件。第一个是 home.swf
,第二个是 menu.swf
。每个 SWF 文件都有一个加载外部 SWF 文件的按钮。
这是 home.swf
文件中的代码:
stop();
menu_btn.addEventListener(MouseEvent.CLICK, func_menu);
function func_menu(e:MouseEvent):void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("menu.swf"));
}
function onComplete(e:Event):void {
var movie:* = LoaderInfo(e.currentTarget).content;
stage.addChild(movie);
}
这是 menu.swf
文件中的代码:
stop();
home_btn.addEventListener(MouseEvent.CLICK, func_home);
function func_home(e:MouseEvent):void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("home.swf"));
}
function onComplete(e:Event):void {
var movie:* = LoaderInfo(e.currentTarget).content;
stage.addChild(movie);
}
如果我多次单击按钮,SWF 文件的加载时间会变长。我注意到那些代码不会卸载文件。我需要什么代码来卸载以前的 SWF 文件? 我是动作脚本的新手。请放宽我。
我从问题中了解到,您很可能会经常在 SWF 之间切换(加载主页和卸载菜单,反之亦然)。
我建议您创建一个容器 SWF,它将加载这两个 SWF,并在加载完成时保存对加载器/它们的内容的引用。
两者加载后,只需调用 addChild() 和 removeChild() 来交换它们。
如果您想从 SWF 中触发交换,您可以在单击其中创建的按钮时调度一个事件,并在容器 SWF 中侦听调度的事件。
这样你就可以在瞬间交换任意多次它们而不必每次都重新加载它们,而且你可以避免不断地分配和释放内存。