如何合并不同帧频(fps)的Flash文件
日期:2008年1月23日 作者: 查看:[大字体 中字体 小字体]-
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)。母体需要加如下代码:
///////在第一帧插入如下代码////////
MovieClip.prototype.c_stop = ASnative(900, 13);
MovieClip.prototype.c_play = ASnative(900, 12);
MovieClip.prototype.c_gotoAndStop = ASnative(900, 17);
MovieClip.prototype.c_gotoAndPlay = ASnative(900, 16);
//重构跳转函数
MovieClip.prototype.stop = function() {
this.stop_boolean = true;
this.c_stop()
};
MovieClip.prototype.play = function() {
this.stop_boolean = false;
this.c_play()
};
MovieClip.prototype.gotoAndStop = function(n:Number) {
this.stop_boolean = true;
this.c_gotoAndStop(n)
};
MovieClip.prototype.gotoAndPlay = function(n:Number) {
this.stop_boolean = false;
this.c_gotoAndPlay(n)
};
//子体播放函数
function childRun(target_mc:MovieClip) {
if (!target_mc.stop_boolean) {
target_mc.nextFrame();
if (target_mc._currentframe == target_mc._totalframes)
}
// 递归检查子MC
for (i in target_mc) {
if (target_mc._name)
}
//下面这句话很重要,它使你的高速动画能得到及时刷新,但相应的也提高了CPU的负载
updateAfterEvent();
}
//加载侦听器
var mclListener:Object = new Object();
//当子体载入完成时,停止子体并控制其播放
mclListener.onLoadComplete = function(target_mc:MovieClip) {
clearInterval(child_val);
child_val = setInterval(childRun, fps, target_mc);
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
///////在需要加载子体的位置插入如下代码////////
//子体的宿主
this.createEmptyMovieClip("子体", this.getNextHighestDepth());
//如果需要载入的swf帧速是60,那么fps=1000/60
var fps:Number = 1000/60;
image_mcl.loadClip("子体.swf", 子体);
接着看一下子体文件,假设某帧上原来有下面的函数:
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个,会出现递归溢出的错误,(出处:http://www.hackhome.com/)
-
- 如何合并不同帧频(fps)的Flash文件 相关文章:
- ·Windows无法访问指定设备,路径或文件.您可能没有合适的权限访问这个项目
- ·各种文件后缀名与打开方式大全
- ·APE文件如何播放?如何把APE转制成其他格式?
- ·局域网内共享文件 提示没有访问权限的问题
- ·JSP文件下载的几种方式
- ·BAT批处理文件语法
- ·恢复exe文件打开方式,所有exe文件无法打开
- ·收集的host文件网站黑名单
- ·JSP实现文件上传
- ·EXE文件打不开——恢复EXE文件关联
- 如何合并不同帧频(fps)的Flash文件 相关软件
- ·csf文件播放器 V5.0.0 1118
- ·恢复误删除的文件 Undelete PlusV2.93 简体中文版
- ·传华mp3文件剪切器 V1.1
- ·Protel DDB文件压缩器 V1.0
- ·高强度文件夹加密大师 9000 Build 6502
- ·金山WPS文件转换器
- ·REAL格式文件压缩至尊(DVD、VCD TO RM) V4.60
- ·垃圾文件清理系统 V1.51
- ·文件夹嗅探器 V3.51
- ·NoClone(重复文件查找) V3.2.66 绿色汉化特别版
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:轻轻松松制作漂亮个性的月历桌面
精品推荐
热点TOP10
- ·Flash百叶窗制作教程
- ·Flash制作非常逼真的下雪视觉动画效果
- ·精彩推荐:全Flash网站制作实例
- ·Flash:闪动的星星
- ·FLASH 8实例教程:瀑布动画制作方法
- ·用flash制作简单拼图游戏
- ·Flash视觉效果之漫天飞雪
- ·最简单的FLASH动画LOADING制作
- ·Flash制作超酷旋转互动相册
- ·Flash动画制作技巧:一些动画素材
- ·Flash声音控制详解
- ·Flash AS制作下雪动画效果
- ·Flash制作滚动广告图片效果
- ·Flash实例教学:三维烟花动画制作
- ·Flash打造碧海蓝天海鸥飞翔动画
- ·银行利率表
- ·入门级:教你用flash画画
- ·Flash制作过渡卷动效果精美图库特效
- ·Flash简单制作实用的图片切换动画特效
- ·Flash制作熊熊燃烧的火焰
特别推荐
- ·Flash简单制作实用的图片切换动画特效
- ·简易拼图游戏制作
- ·Flash教程:纯AS制作简单的MP3播放器
- ·纯AS的Loading效果四例
- ·Flash角色透视行走动作分解
- ·入门级:教你用flash画画
- ·Flash制作过渡卷动效果精美图库特效
- ·Flash制作Mac系统菜单的效果
- ·视觉欺骗
- ·Flash制作非常逼真的下雪视觉动画效果
- ·超详细图文解析 用Flash制作魔法表情
- ·Flash Action应用--鼠控3D旋转
- ·Flash打造碧海蓝天海鸥飞翔动画
- ·FLASH 8实例教程:瀑布动画制作方法
- ·Flash视觉效果之漫天飞雪
- ·Coldfusion MX技巧精华收集(1)
- ·Actionscript列表
- ·用Flash简单制作印章动画视觉效果
- ·flash8打造瀑布动画效果教程
- ·Flash里的A*Pathfinding
