Flash AS制作LRC歌詞同步的詳細(xì)教程

六、*無處不在的優(yōu)化
至此,該程序已經(jīng)可以順利執(zhí)行了,此處只討論一下優(yōu)化問題,看不懂可以跳過。
以這段代碼為例:
CODE:
function SoundPlaying(evt:Event):void {
for (var i=1; i<LRCarray.length; i ) {
if (sc.position<LRCarray[i].timer) {
lrc_txt.text=LRCarray[i-1].lyric;
break;
}
lrc_txt.text=LRCarray[LRCarray.length-1].lyric;
}
}如果要進(jìn)行優(yōu)化,那么這個 for 循環(huán),應(yīng)該寫成:
CODE:
for (var i=1,j=LRCarray.length; i<j; i ) {… …}這樣在執(zhí)行判斷時,不必每次都進(jìn)行 LRCarray.length 操作,該操用于讀取數(shù)組長度,執(zhí)行 Array 類的 length 方法,屬于高級操作,花費(fèi)的時間要比低級操作多。其實(shí),只要讀取一次長度,然后將結(jié)果保存在變量 j 中,每次判斷時讀取 j 的值即可。取值與賦值都屬于低級別的操作,速度較快。同樣的道理,在
CODE:
if (sc.position<LRCarray[i].timer) {… …} 中的 sc.position 在每次判斷時都要讀取一遍,這時就應(yīng)將它在循環(huán)之前保存到一個變量里,這段代碼優(yōu)化后應(yīng)是這樣:
CODE:
function SoundPlaying(evt:Event):void {
var now:Number=sc.position;
for (var i=1,j=LRCarray.length; i<j; i ) {
if (now<LRCarray[i].timer) {
lrc_txt.text=LRCarray[i-1].lyric;
break;
}
lrc_txt.text=LRCarray[j-1].lyric;
}
}在我們的文檔類中還有幾個地方用到了 for 循環(huán),請大家按照上述方法自行優(yōu)化。
其實(shí),代碼優(yōu)化無處不在,其中的學(xué)問不勝枚舉,有興趣的朋友可以到我的博客中看一下關(guān)于代碼優(yōu)化的總結(jié)貼,見附錄。
七、附錄
1.LRC 文件下載地址:
http://lrc.bzmtv.com/
http://www.5ilrc.com/
2.至于 MP3 的下載,我想大家比我在行,用百度或酷狗都可以。
3.代碼優(yōu)化總結(jié)貼地址:
http://www.dbjr.com.cn/flash/actionscript-5898.html
4.整個文件包括(歌曲、歌詞、LRCPlayer.as 、FLA 文件)打包下載:
http://www.fs2you.com/zh-cn/files/cf760b0f-01a0-11dd-9174-0014221f3995/
八、結(jié)束語
恭喜您堅(jiān)持到了現(xiàn)在,確實(shí)內(nèi)容比較長,同時也涉及了一些知識點(diǎn)。其實(shí)做法肯定不只這一種,所以希望大家多多發(fā)揮主觀能動性,結(jié)合上述內(nèi)容繼續(xù)將這個播放程序做大做強(qiáng)。好了,就到這里,再次感謝。
相關(guān)文章
flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享
flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細(xì)的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://www.dbjr.com.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?
本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)2018-01-12- 本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細(xì),感興趣的朋友歡迎前來分享學(xué)習(xí)2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11- Flash怎么制作來回?fù)u擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細(xì)的教程,很簡單,需要的朋友可以參考下2017-05-23
- Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23