首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

AS3 连续两帧加载 swf,该如何解决

2012-03-04 
AS3 连续两帧加载 swfflash CS5 AS3 中我在代码层的第一帧上用this.addEventListener(Event.ENTER_FRAME,A

AS3 连续两帧加载 swf
flash CS5 AS3 中我在代码层的第一帧上用this.addEventListener(Event.ENTER_FRAME,AddSwf)来监听,然后代码的实现意义是:第一帧加载了一个1.swf,然后第二帧加载了个2.swf,第4针加载第4.swf。加载第一个之后,在第二帧的时候,显示的还是第一帧的swf,但是到第四帧的时候就显示的是4.swf了(因为中间隔了一个第三针,在第三帧是没有加载的。)代码如下:
function AddSwf(Ev:Event)
{
if (this.currentFrame == 1)
{
if (loader == null)
{
loader=new Loader();
loader.load(new URLRequest("原理图/01.swf"));
loader.scaleX = 0.6;
loader.scaleY = 0.6;
loader.x = 220;
loader.y = 50;
this.addChild(loader);
}
}
else if (this.currentFrame == 2)
{
if (loader == null)
{
loader=new Loader();
loader.load(new URLRequest("原理图/02.swf"));
loader.scaleX = 0.9;
loader.scaleY = 0.9;
loader.x = 260;
loader.y = 180;
this.addChild(loader);
}
}
else if (this.currentFrame == 4)
{
if (loader == null)
{
loader=new Loader();
loader.load(new URLRequest("原理图/03.swf"));
loader.scaleX = 0.9;
loader.scaleY = 0.9;
loader.x = 140;
loader.y = 160;
this.addChild(loader);
}
}

else
{
if (loader != null)
{
this.removeChild(loader);
loader.unload();
loader = null;
}
}
}
我测试了下,如果去掉每一帧前面的判断 if (loader == null),那么都加载,但是都在加载上了,不能消去,到第二帧和三帧都两个图,到第四帧就有三个图了。而且到五帧也还存在。
求解释..

[解决办法]
先把你要做什么想明白了,感觉逻辑好乱。主时间轴一直在走?
[解决办法]
function AddSwf(Ev:Event)
{
if (this.currentFrame == 1)
{
if (loader == null)

loader=new Loader();
loader.load(new URLRequest("原理图/01.swf"));
loader.scaleX = 0.6;
loader.scaleY = 0.6;
loader.x = 220;
loader.y = 50;
this.addChild(loader);
}
loader=null;
}
else if (this.currentFrame == 2)
{
if (loader == null)
{
loader=new Loader();
loader.load(new URLRequest("原理图/02.swf"));
loader.scaleX = 0.9;
loader.scaleY = 0.9;
loader.x = 260;
loader.y = 180;
this.addChild(loader);
}loader=null;
}
else if (this.currentFrame == 4)
{
if (loader == null)
{
loader=new Loader();
loader.load(new URLRequest("原理图/03.swf"));
loader.scaleX = 0.9;
loader.scaleY = 0.9;
loader.x = 140;
loader.y = 160;
this.addChild(loader);
}loader=null;
}

else
{
if (loader != null)
{
this.removeChild(loader);
loader.unload();
loader = null;
}
}
}

热点排行