as3中,点击按钮后局部加载另外的swf

as3中,点击按钮后局部加载另外的swf,这个as该怎么写!按钮的名称是xmgk_btn,(要保证多次点击该按钮,不会累加层,只显示加载的最近的一个swf)我找了段发现点... as3中,点击按钮后局部加载另外的swf,这个as该怎么写!按钮的名称是xmgk_btn,(要保证多次点击该按钮,不会累加层,只显示加载的最近的一个swf)我找了段发现点击后重复!
附上代码:
function onclick(e:MouseEvent){
var picloader:Loader=new Loader();
var picfile:URLRequest=new URLRequest("xmgk.swf");

picloader.load(picfile);
picloader.contentLoaderInfo.addEventListener(Event.COMPLETE, picloaded);
picloader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,picloaderror);
}
function picloaded(e:Event){
this.addChild(e.target.loader);
}

function picloaderror(e:IOErrorEvent){
trace("lost")
}
this.xmgk_btn.addEventListener(MouseEvent.CLICK,onclick);
展开
 我来答
匿名用户
2011-07-03
展开全部
比如说你的按钮叫 play_btn 。
需要先建一个图层和一个空白的影片剪辑,并且把这个影片剪辑放到图层上,实例名为SwfMc,在建一个名为AS的图层,用来写代码。

var Movie_Ldr:Loader=new Loader();
play_btn.addEventListener(MouseEvent.CLICK,loadHandler);
function loadHandler(event:Event):void {
Movie_Ldr.unloadAndStop();
var URLstr:String="这里面写上swf文件的地址";
var req:URLRequest=new URLRequest(URLstr);
Movie_Ldr.load(req);
Movie_Ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,onCOMPLETE);
}
function onCOMPLETE(evt:Event):void {
if (SwfMc.numChildren>0) {
SwfMc.removeChildAt(0);
}
SwfMc.addChild(Movie_Ldr);
//下面还可以对它的其他属性进行调整,如下
SwfMc.x=0;
SwfMc.y=0;
}

//////////////over
我又测试了一下,没有任何问题。
是不是你那个地方弄错了,或是其他笔误。
另外,虚机团上产品团购,超级便宜
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e246de7
2011-07-01 · TA获得超过144个赞
知道小有建树答主
回答量:88
采纳率:80%
帮助的人:141万
展开全部
也许你可以换个思路,不是只显示一次,而是只加载一次,这样也提高了效率。
加个变量记录是否加载,如果已经加载,就不必再次加载。

function onclick(e:MouseEvent) {
if(!isLoaded){
var picloader:Loader=new Loader();
var picfile:URLRequest=new URLRequest("xmgk.swf");

picloader.load(picfile);
picloader.contentLoaderInfo.addEventListener(Event.COMPLETE, picloaded);
picloader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,picloaderror);
}
}
function picloaded(e:Event) {
isLoaded = true;
this.addChild(e.target.loader);
}

function picloaderror(e:IOErrorEvent) {
trace("lost");
}
var isLoaded:Boolean = false;
this.xmgk_btn.addEventListener(MouseEvent.CLICK,onclick);
更多追问追答
追问
这样单独一个按钮可以解决,但是再点击其他按钮时上一个加载的swf不会消失,怎么去掉上一次加载的swf呢!
追答
在你这个的基础上改的话,建议把Loader作为全局变量,然后你可以通过控制Loader的可见来控制你加载对象的可见。
e.g:
function onclick(e:MouseEvent) {
if(!isLoaded){
picloader=new Loader();
var picfile:URLRequest=new URLRequest("e59eb9247f47b9ea4623e88f.jpg");

picloader.load(picfile);
picloader.contentLoaderInfo.addEventListener(Event.COMPLETE, picloaded);
picloader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,picloaderror);
}else{
picloader.visible = false;
}
}
function picloaded(e:Event) {
isLoaded = true;
this.addChild(e.target.loader);
}

function picloaderror(e:IOErrorEvent) {
trace("lost");
}
var isLoaded:Boolean = false;
var picloader:Loader;
this.xmgk_btn.addEventListener(MouseEvent.CLICK,onclick);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-21
展开全部
var Movie_Ldr:Loader=new Loader();
play_btn.addEventListener(MouseEvent.CLICK,loadHandler);
function loadHandler(event:Event):void {
Movie_Ldr.unloadAndStop();
var URLstr:String="这里面写上swf文件的地址";
var req:URLRequest=new URLRequest(URLstr);
Movie_Ldr.load(req);
Movie_Ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,onCOMPLETE);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loneca
2011-07-01 · 超过21用户采纳过TA的回答
知道答主
回答量:85
采纳率:100%
帮助的人:61.5万
展开全部
这样处理:
function onclick(e:MouseEvent) {
if(!picloader){
picloader=new Loader();
picfile=new URLRequest("xmgk.swf");
picloader.contentLoaderInfo.addEventListener(Event.COMPLETE, picloaded);
picloader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,picloaderror);
}
if(picloader.content)
{

picloader.unload();
}
else
{
picloader.load(picfile);

}
}
function picloaded(e:Event) {
this.addChild(e.target.loader);
}

function picloaderror(e:IOErrorEvent) {
trace("lost");
}

var picloader:Loader;
var picfile:URLRequest;
this.xmgk_btn.addEventListener(MouseEvent.CLICK,onclick);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sly85264adc68
2013-03-25 · 超过28用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:54.3万
展开全部
删除^^^^^^^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式