Flash中要合并不同帧频(fps)的文件的确问题是一个令人困扰的话题,因为Flash本身并不提供任何动态改变帧速的函数。
也无法写一个通用函数来达到这一目的。但凡事只要开动脑筋,总有解决办法。下面我们分情况讨论。
一. 需要合并的几个flash文件完全独立
在大多数情况下,如果只需要把这些swf文件串起来逐一播放,不需要进行嵌套,单纯让每段swf按照它自己的速度播放,是完全可行的,只需要加少量脚本。
例如:你有3个swf文件,分别命名为:movie.swf,movie1.swf,movie2.swf。
只需要在movie.fla的最后一帧加上一句脚本:loadMovieNum("movie1.swf", 0);
在movie1.fla的最后一帧同样加上一句脚本loadMovieNum("movie2.swf", 0)。
注意,使用这种方法时,如果在动画的最前面加了loading脚本,它检测的载入是否完成只是针对第一段,如果需要检测所有片段是否已经载入,需要更复杂的脚本。
二. 合并的flash文件需要进行嵌套播放
这种情况比较麻烦,因为试图找出一劳永逸的方法似乎是不可能的。只能改啊改的,我讨厌重复劳动。
假设子体只包括跳转语句(stop、play、gotoAndStop、gotoAndPlay)。母体需要加如下代码:
///////在第一帧插入如下代码//////// //子体播放函数 if (!target_mc.stop_boolean) { //加载侦听器 ///////在需要加载子体的位置插入如下代码//////// |
stop(); play_btn.onRelease = function() ; gotoAndStop_btn.onRelease = function() ; |
需要把它们进行一下改造,把所有缺省调用的跳转语句改成"mc.+跳转语句"的方式:
this.stop(); play_btn.onRelease = function() ; gotoAndStop_btn.onRelease = function() ; |
注意:别忘了改造子体中所有含有跳转语句的脚本(nextFrame和prevFrame不用改),如果子体含有onEnterFrame程序,请改成SetInterval方式。如果你的子体在某一帧包括的MovieClip超过了256个,会出现递归溢出的错误。
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |