做這個播放器的歌曲列表時,碰到了問題。歌曲名是從XML讀入的動態(tài)文本,想做成下拉列表,一般都需要用遮罩。大家知道,動態(tài)文本想做遮罩,需要把字體嵌入,如果是英文字體還可以考慮,而我的歌曲名是包含中文的,嵌入中文字體將會把文件搞的非常大。于是我就用了一個變通的方法來解決這個問題。大概的思路是這樣: 建一個MC(songName),MC中定義一個變量 songName = ""; 并用一個動態(tài)文本顯示這個變量。 在歌曲列表這個MC(listBox)中,放入7個songName,并分別命名為song1、song2……song7。這樣,把歌曲名賦值給song1--song7中的變量songName就可以在listBox中顯示7首歌曲了。 在主動畫上我做了一個自定義函數(shù)listSong(n),它能控制listBox從當(dāng)前專輯的第n首歌開始向下顯示7首歌名。比如當(dāng)前專輯中共有12首歌曲,那么執(zhí)行l(wèi)istSong(3)將使listBox顯示其中的第3-第9首。 做好這些準(zhǔn)備,就可以回到listBox做下拉列表的action了。先把拖動條命名為dragBtn。在幀上為dragBtn加上能夠被鼠標(biāo)拖拽的action,這個相信大家都很熟悉。在拖拽的過程中,根據(jù)dragBtn的當(dāng)前坐標(biāo),調(diào)用函數(shù)listSong(n)來控制顯示哪些歌曲。比如dragBtn能夠上下拖動的距離是100pix,共有12首歌,那么當(dāng)dragBtn的位置在最頂部時,就應(yīng)該顯示第1-7首,向下拖動20pix,就調(diào)用listSong(2)顯示第2-8首,向下40pix,顯示第3-9首,以此類推。 好,這個下拉列表就算做完了。到這里,大家可能都明白了,其實在拖動過程中,只有拖動條自己在動,而列表內(nèi)容只是根據(jù)拖動條的位置在刷新顯示罷了。 把這一段程序的源文件提供給大家,做為參考,不足之處,望不吝指教。
DEMO 例子 點擊下載
出處:
責(zé)任編輯:藍(lán)色
◎進(jìn)入論壇Flash專欄版塊參加討論
|