使用 loadMovieNum 动作将影片加载到 Flash 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里的按钮还在起作用?*/
}
(当然也可以使用loadMovie();来实现.加载到一个特定的目标MC里.).所以以上代码只针对该例实现加载2.swf 并跳转指定帧位置.如果还想加载控制其它SWF文件.实现方式,代码内容可能要改变,.(主要是单独建立一个影片来控制其它加载的SWF,并由它来控制每一个加载的SWF),在此就不讨论了,楼主如果有兴趣,我们可以再讨论.)
1.fla
点击浏览该文件
2.fla
点击浏览该文件
1.swf
点击浏览该文件
2.swf
点击浏览该文件
因为上传后文件名改了(1.swf改名为2004112214495091.swf).所以下载效果或源文件到本地电脑上改名为1.swf 和2.swf测试.
写的有些粗糙,有些地方我也许也说错了,楼主见谅!