AS3 单击按钮加载和卸载外部SWF的问题~~~解决问题后+50分!
假设当前有p_btn0、p_btn1和p_btn2这三个按钮,和m0.swf、m1.swf和m2.swf。现已有以下代码用来加载swf:varswf_array:Arra...
假设当前有p_btn0、p_btn1和p_btn2这三个按钮,和m0.swf、m1.swf和m2.swf。
现已有以下代码用来加载swf:
var swf_array:Array =["swf/m0.swf","swf/m1.swf","swf/m2.swf"];
var loader:Loader =new Loader;
addChild(loader);
var show_mc:MovieClip;
var p_urlrequest:URLRequest=new URLRequest;
function onClick(_evt:MouseEvent):void {
var _btn:SimpleButton =_evt.target as SimpleButton;
p_urlrequest.url=swf_array[uint(_btn.name.substr(-1))];
loader.load(p_urlrequest);
}
for (var p:uint =0; p<3; p++) {
this["p_btn" + p].addEventListener(MouseEvent.CLICK ,onClick);
}
但无法卸载,导致一些问题。。。请高手帮忙解决一下卸载的问题,实现:
单击按钮p_btn0,加载m0.swf,同时卸载m1.swf和m2.swf。
同理,单击按钮p_btn1,加载m1.swf,同时卸载m0.swf和m2.swf。
同理,单击按钮p_btn2,加载m2.swf,同时卸载m0.swf和m1.swf。
或者能给一段全新的代码,实现加载/卸载功能也可以~~拜谢了!
解决问题后再+50分!绝不食言!!最近发了不少AS3的问题,都是+50分,从未食言,请大家帮帮忙吧~~~再次感谢!!
PS:据说。。。。unloadAndStop比removechild卸载效果更好,所以最好能使用unloadAndStop~ 展开
现已有以下代码用来加载swf:
var swf_array:Array =["swf/m0.swf","swf/m1.swf","swf/m2.swf"];
var loader:Loader =new Loader;
addChild(loader);
var show_mc:MovieClip;
var p_urlrequest:URLRequest=new URLRequest;
function onClick(_evt:MouseEvent):void {
var _btn:SimpleButton =_evt.target as SimpleButton;
p_urlrequest.url=swf_array[uint(_btn.name.substr(-1))];
loader.load(p_urlrequest);
}
for (var p:uint =0; p<3; p++) {
this["p_btn" + p].addEventListener(MouseEvent.CLICK ,onClick);
}
但无法卸载,导致一些问题。。。请高手帮忙解决一下卸载的问题,实现:
单击按钮p_btn0,加载m0.swf,同时卸载m1.swf和m2.swf。
同理,单击按钮p_btn1,加载m1.swf,同时卸载m0.swf和m2.swf。
同理,单击按钮p_btn2,加载m2.swf,同时卸载m0.swf和m1.swf。
或者能给一段全新的代码,实现加载/卸载功能也可以~~拜谢了!
解决问题后再+50分!绝不食言!!最近发了不少AS3的问题,都是+50分,从未食言,请大家帮帮忙吧~~~再次感谢!!
PS:据说。。。。unloadAndStop比removechild卸载效果更好,所以最好能使用unloadAndStop~ 展开
展开全部
替换一下, 试试效果对吗
import flash.display.Loader;
import flash.display.Sprite;
import flash.net.drm.AddToDeviceGroupSetting;
var show_mc:MovieClip;
var p_urlrequest:URLRequest=new URLRequest;
var loadArr:Array = [];
function onClick(_evt:MouseEvent):void
{
var _btn:SimpleButton =_evt.target as SimpleButton;
var index:int = uint(_btn.name.substr(-1));
p_urlrequest.url=swf_array[index];
if(loadArr[index] !=null)
{
return;
}else
{
for(var a:int = 0;a < 3;a++)
{
if(a == index)
{
var loader:Loader = new Loader;
loader.load(p_urlrequest);
loadArr[index] = loader;
addChild(loader);
}else
{
if(loadArr[a] != null)
{
(loadArr[a] as Loader).unloadAndStop();
(loadArr[a] as Loader) = null;
}
}
}
}
}
for (var p:uint =0; p<3; p++) {
this["p_btn" + p].addEventListener(MouseEvent.CLICK ,onClick);
}
import flash.display.Loader;
import flash.display.Sprite;
import flash.net.drm.AddToDeviceGroupSetting;
var show_mc:MovieClip;
var p_urlrequest:URLRequest=new URLRequest;
var loadArr:Array = [];
function onClick(_evt:MouseEvent):void
{
var _btn:SimpleButton =_evt.target as SimpleButton;
var index:int = uint(_btn.name.substr(-1));
p_urlrequest.url=swf_array[index];
if(loadArr[index] !=null)
{
return;
}else
{
for(var a:int = 0;a < 3;a++)
{
if(a == index)
{
var loader:Loader = new Loader;
loader.load(p_urlrequest);
loadArr[index] = loader;
addChild(loader);
}else
{
if(loadArr[a] != null)
{
(loadArr[a] as Loader).unloadAndStop();
(loadArr[a] as Loader) = null;
}
}
}
}
}
for (var p:uint =0; p<3; p++) {
this["p_btn" + p].addEventListener(MouseEvent.CLICK ,onClick);
}
展开全部
1.单击按钮p_btn0,加载m0.swf,同时卸载m1.swf和m2.swf。
2.同理,单击按钮p_btn1,加载m1.swf,同时卸载m0.swf和m2.swf。
3.同理,单击按钮p_btn2,加载m2.swf,同时卸载m0.swf和m1.swf。
1.没加载1 2 怎么卸载?
2.同理
3..
2.同理,单击按钮p_btn1,加载m1.swf,同时卸载m0.swf和m2.swf。
3.同理,单击按钮p_btn2,加载m2.swf,同时卸载m0.swf和m1.swf。
1.没加载1 2 怎么卸载?
2.同理
3..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵,你到处悬赏。效果之好坏,不能孤立了看,需要考虑你的应用场合,比如如果每个只用一次跟反复使用就是不同的情况。这个回答不帮你解决问题,但一定会帮到你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以上代码错了好多地方。
以上代码写的复杂了。用判断语句来写。加载卸载影片剪辑
以上代码写的复杂了。用判断语句来写。加载卸载影片剪辑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询