不同帧频率的flash文件(fps)
注释:Flash中合并不同帧频率(fps)文件的问题确实是一个令人不安的话题,因为Flash本身不提供任何动态改变帧速度的功能。为了达到这个目标,也不可能写出一个通用的函数,但是只要头脑被移动,所有的事情都可以解决。
一个。需要合并的几个flash文件是完全独立的。
在Flash中合并不同帧频率的文件是一个令人不安的话题,因为Flash本身不提供任何动态改变帧速度的功能。
为了达到这个目标,也不可能写出一个通用的函数,但是只要头脑被移动,所有的事情都可以解决。
一个。需要合并的几个flash文件是完全独立的。
在大多数情况下,如果只需要将这些SWF文件串成一个一个地播放,就不需要进行嵌套。完全以自己的速度播放每个SWF是完全可行的,只需要少量的脚本。
例如:你有3 movie.swf SWF文件命名,movie1.swf,和movie2.swf。
只需添加一个脚本的movie.fla最后一帧:loadmovienum(movie1. SWF
movie1.fla的最后一帧也增加了一个脚本loadmovienum(SWF 提示。
U3000
注意,当使用此方法时,如果加载脚本添加到动画的前面,加载是否完成仅适用于第一段。如果我们需要检测是否加载了所有碎片,我们需要更复杂的脚本。
两。合并的Flash文件需要嵌套。
这种情况更麻烦,因为要想找到一种彻底的方法似乎是不可能的,我只能改变它。我讨厌重复劳动。
它是假定的subbody不仅包括跳转语句(停止、播放,gotoAndStop,gotoAndPlay),家长需要添加以下代码:
在第一个框架中插入以下代码
movieclip.prototype.c_stop =方面(900, 13);
movieclip.prototype.c_play =方面(900, 12);
movieclip.prototype.c_gotoandstop =方面(900, 17);
movieclip.prototype.c_gotoandplay =方面(900, 16);
重建跳跃函数
movieclip.prototype.stop =函数(){
this.stop_boolean =真;
this.c_stop()
};
movieclip.prototype.play =函数(){
this.stop_boolean = false;
this.c_play()
};
movieclip.prototype.gotoandstop =功能(N号){
this.stop_boolean =真;
this.c_gotoandstop(N)
};
movieclip.prototype.gotoandplay =功能(N号){
this.stop_boolean = false;
this.c_gotoandplay(N)
};
子体播放功能
功能childrun(target_mc:影片剪辑){
如果(!target_mc。stop_boolean){
target_mc.nextframe();
如果(target_mc。_currentframe = target_mc。_totalframes)
}
递归检查
对(我在target_mc){
如果(target_mc。_name)
}
下面的句子非常重要,它使高速动画能及时刷新,还能改善相应的CPU负载。
UpdateAfterEvent();
}
加载/侦听器
无功mcllistener:对象=新的对象();
加载完成后,控制播放和停止。
mcllistener.onloadcomplete =功能(target_mc:影片剪辑){
ClearInterval(child_val);
child_val = setInterval(childrun,FPS,target_mc);
};
无功image_mcl =新MovieClipLoader影片剪辑加载器():MovieClipLoader影片剪辑加载器;
image_mcl.addlistener(mcllistener);
将以下代码插入到需要加载子体位置的
主机/子
this.createemptymovieclip subbody (
如果加载框架的SWF为60,则fps = 1000 60
fps:数字= 1000 60;
image_mcl.loadclip(的后代。SWF
然后我们看一下体文件,假设框架上有一个下面的函数。
停止();
play_btn.onrelease =功能();
gotoandstop_btn.onrelease =功能();
它们需要重新构建,以将所有默认调用跳转语句更改为MC。跳转语句:
This.stop();
play_btn.onrelease =功能();
gotoandstop_btn.onrelease =功能();
注意:不要忘记将包含跳转语句的所有脚本(下一帧和prevframe不改变)。如果subbody包含在每一帧的程序,请换成setInterval模式。如果你的身体中含有256以上的影片剪辑在一个框架中,将有一个递归溢出错误。