stop();
play_btn.onRelease=function();
gotoAndStop_btn.onRelease=function();
合并不同帧频(fps)的Flash文件
///////在第一帧插入如下代码////////
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)
};

//子体播放函数
functionchildRun(target_mc:MovieClip){
if(!target_mc.stop_boolean){
target_mc.nextFrame();
if(target_mc._currentframe==target_mc._totalframes)
}
//递归检查子MC
for(iintarget_mc){
if(target_mc._name)
}
//下面这句话很重要,它使你的高速动画能得到及时刷新,但相应的也提高了CPU的负载
updateAfterEvent();
}

//加载侦听器
varmclListener:Object=newObject();
//当子体载入完成时,停止子体并控制其播放
mclListener.onLoadComplete=function(target_mc:MovieClip){
clearInterval(child_val);
child_val=setInterval(childRun,fps,target_mc);
};
varimage_mcl:MovieClipLoader=newMovieClipLoader();
image_mcl.addListener(mclListener);

///////在需要加载子体的位置插入如下代码////////
//子体的宿主
this.createEmptyMovieClip("子体",this.getNextHighestDepth());
//如果需要载入的swf帧速是60,那么fps=1000/60
varfps:Number=1000/60;
image_mcl.loadClip("子体.swf",子体);
作者:互联网 文章来源:互联网 更新时间:2013-7-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)。母体需要加如下代码:



  接着看一下子体文件,假设某帧上原来有下面的函数:


  需要把它们进行一下改造,把所有缺省调用的跳转语句改成"mc. 跳转语句"的方式:

this.stop();
play_btn.onRelease=function();
gotoAndStop_btn.onRelease=function();
  注意:别忘了改造子体中所有含有跳转语句的脚本(nextFrame和prevFrame不用改),如果子体含有onEnterFrame程序,请改成SetInterval方式。如果你的子体在某一帧包括的MovieClip超过了256个,会出现递归溢出的错误。

收藏 】 【打印】 【关闭
  最新文章
  点击排行
盛世互联(中国)网络技术有限公司 深圳市及时网络技术有限公司 联合版权 中国市场授予<<中国服务品牌企业>>
客服热线:0755-8376 8888(120线) 免费热线:800-830-9577 800-830-9377 ICP经营许可证: 粤B2-20064003号
北京客服:010-51663652 珠海客服:0756-6171956 深圳客服:0755-83765888
广州客服:020-61139366 彩文传真:0755-83765599
商务地址:中国.深圳经济特区.罗湖区人民南路深圳发展中心大厦10层