麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

合并不同幀頻(fps)的Flash文件

2020-07-17 13:22:44
字體:
供稿:網(wǎng)友
  Flash中要合并不同幀頻(fps)的文件的確問題是一個令人困擾的話題,因為Flash本身并不提供任何動態(tài)改變幀速的函數(shù)。  也無法寫一個通用函數(shù)來達到這一目的。但凡事只要開動腦筋,總有解決辦法。下面我們分情況討論。
  一. 需要合并的幾個flash文件完全獨立
  在大多數(shù)情況下,如果只需要把這些swf文件串起來逐一播放,不需要進行嵌套,單純讓每段swf按照它自己的速度播放,是完全可行的,只需要加少量腳本。
  例如:你有3個swf文件,分別命名為:movie.swf,movie1.swf,movie2.swf。
  只需要在movie.fla的最后一幀加上一句腳本:loadMovieNum("movie1.swf", 0);
  在movie1.fla的最后一幀同樣加上一句腳本loadMovieNum("movie2.swf", 0)。
 
  注意,使用這種方法時,如果在動畫的最前面加了loading腳本,它檢測的載入是否完成只是針對第一段,如果需要檢測所有片段是否已經(jīng)載入,需要更復(fù)雜的腳本。
  二. 合并的flash文件需要進行嵌套播放
  這種情況比較麻煩,因為試圖找出一勞永逸的方法似乎是不可能的。只能改啊改的,我討厭重復(fù)勞動。
  假設(shè)子體只包括跳轉(zhuǎn)語句(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);
//重構(gòu)跳轉(zhuǎn)函數(shù)
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)
};

//子體播放函數(shù)
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)
}
//下面這句話很重要,它使你的高速動畫能得到及時刷新,但相應(yīng)的也提高了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", 子體);

  接著看一下子體文件,假設(shè)某幀上原來有下面的函數(shù):

stop();
play_btn.onRelease = function() ;
gotoAndStop_btn.onRelease = function() ;
  需要把它們進行一下改造,把所有缺省調(diào)用的跳轉(zhuǎn)語句改成"mc. 跳轉(zhuǎn)語句"的方式:

this.stop();
play_btn.onRelease = function() ;
gotoAndStop_btn.onRelease = function() ;
  注意:別忘了改造子體中所有含有跳轉(zhuǎn)語句的腳本(nextFrame和prevFrame不用改),如果子體含有onEnterFrame程序,請改成SetInterval方式。如果你的子體在某一幀包括的MovieClip超過了256個,會出現(xiàn)遞歸溢出的錯誤。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产午夜精品在线 | 一级成人免费 | 欧美成年性h版影视中文字幕 | a视频在线免费观看 | 久久综合综合 | 一本色道久久综合亚洲精品图片 | 亚洲精品午夜国产va久久成人 | av电影在线观看网站 | 久久精品污 | 福利免费在线观看 | 欧美韩国日本在线 | 看免费5xxaaa毛片 | 久草最新在线 | 国产乱淫av片免费观看 | 欧美一极视频 | 国产午夜精品一区 | 成人精品一区二区 | 日本一级黄色大片 | 老a影视网站在线观看免费 国产精品久久久久久久久久尿 | 中文在线观看免费视频 | 久久97视频 | 国产一区精品视频 | 97超级碰碰人国产在线观看 | 成年人视频免费 | 精品一区二区免费 | 国产91在线免费 | 日本在线视频一区二区三区 | 久久老司机 | 在线播放免费视频 | 欧美韩国一区 | 久久大陆| 国产欧美亚洲精品 | 欧美激情999| 天天草夜夜爽 | 久久亚洲国产精品 | 91在线色| 精品亚洲一 | 色污视频在线观看 | 91精品国产乱码久久久久久久久 | 国语自产免费精品视频在 | 成人午夜免费av |