. 需要合并几个flash文件完全独立
在大多数情况下如果只需要把这些swf文件串起来逐播放不需要进行嵌套单纯让每段swf按照它自己速度播放是完全可行只需要加少量脚本
例如:你有3个swf文件分别命名为:movie.swfmovie1.swfmovie2.swf
只需要在movie.fla最后帧加上句脚本:loadMovieNum("movie1.swf", 0);
在movie1.fla最后帧同样加上句脚本loadMovieNum("movie2.swf", 0)
注意使用这种思路方法时如果在动画最前面加了loading脚本它检测载入是否完成只是针对第段如果需要检测所有片段是否已经载入需要更复杂脚本
2. 合并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) {
(!target_mc.stop_boolean) {
target_mc.nextFrame;
(target_mc._currentframe target_mc._totalframes)
}
// 递归检查子MC
for (i in target_mc) {
(target_mc._name)
}
//下面这句话很重要它使你高速动画能得到及时刷新但相应也提高了CPU负载
updateAfterEvent;
}
//加载侦听器
var mclListener:Object = Object;
//当子体载入完成时停止子体并控制其播放
mclListener.onLoadComplete = function(target_mc:MovieClip) {
clearInterval(child_val);
child_val = Interval(childRun, fps, target_mc);
};
var image_mcl:MovieClipLoader = 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个会出现递归溢出
最新评论