当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > MX中如何实现swf文件的完美跳转

Flash动画制作
Flash表单制作实例集锦(四)
Flash MX 2004新特性实例(1)
Flash MX 2004新特性实例(2)
Flash MX 2004新特性实例(4)
Flash透视技术之鸡蛋里面的世界(1)
Flash透视技术之鸡蛋里面的世界(3)
Flash透视技术之鸡蛋里面的世界(2)
为AS2.0添砖加瓦-编写类扩展(2)
关于As2.0 编程的一些规则
为AS2.0添砖加瓦-编写类扩展(4)
为AS2.0添砖加瓦-编写类扩展(3)
AS2.0的私有,公有成员,类继承和as嵌套
FlashMX2004建立自定义类package
fmx2004 1000问(3)
fmx2004 1000问(4)
Flash MX pro的历史面板(1)
mx2004的新东东--newMovieClipLoader
Flash MX pro的历史面板(2)
fmx2004 1000问(1)
Flash 2004 MX支持的css

Flash动画制作 中的 MX中如何实现swf文件的完美跳转


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 81 ::
收藏到网摘: n/a

使用 loadMovieNum 动作将影片加载到 Player 中以后,必须使用 _leveln 属性来定位这些影片.level0 中的影片为所有随后加载的影片设置帧频、背景色和帧大小。那么level0 必须是独立存在的.也就是不能将其unloadMovie(level0)了.不然播放器中什么也没有了(播放器中右键你会看到"没有加载影片"),而且所要控制的SWF必须提前加载进来)这就要给一个按钮指定两个事件动作.(加载及跳转)

即从1.swf中的某一帧跳转到2.swf中的某一帧(用按钮)(MX版)。

我试过在1.swf中的最后一帧的一个按钮中加上如下AS:

on(realease){
unloadMovie("1.swf");
loadMovie("2.swf",0);

gotoAndPlay("场景 2",1); // 这里指2.swf中的场景2第1帧。}

问题1:unloadMovie("1.swf");这一句无用.(不起任何作用.)

参见:unloadMovie(level/"target")的用法.

问题2:l你是在1.SWF中加载2.SWF.1.SWF就相当于level0,可你按下按钮后就执行LoadMovie("2.swf",0);加载2.swf并设深度为0(也就是使它成为level0),执行到这一句后.在该语句之后的所有语句全部不起作用了.(因为2.swf已经把1.swf替换掉了.).

问题3:影片发布后(编译后),已经不存在场景的概念了.多场景将按照它们在场景面板中的顺序转换成一个长长的时间轴.gotoAndPlay("场景 2",1); 将会被替换成gotoAndPlay(n);(n是根据场景1计算出场景2的实际帧号 如:场景1有18帧.那么场景二个第一帧的帧号为19*/)

因为要控制加载的SWF文件.那么必须在控制前加载它,所以加载与控制跳转.要分为两步来进行.也就是给按钮分配两个事件动作.

on (press) {
loadMovieNum("2.swf", 1);/*加载2.swf,设其深度为1,因为此时1.swf的_level为0,我们要用它来控制加载及跳转.*/
_level0._alpha=0 ;//按下钮后暂时让1.SWF不可见.(为了美观)}
on (release) {
_level1.gotoAndStop(19);//2.swf中的场景2第一帧的实际帧号.
_level0._visible = 0;/*将1.swf内容设为不可见,(可以删除这句看一下可见下的情况),你会发现有什么问题呢?呵呵,是不是1.SWF里的按钮还在起作用?*/
}