FLASH打造LRC歌词播放器
2007-01-03 10:53:38 来源:WEB开发网this["itembutton"+i].caption2=this["itembutton"+i].caption1
}//随着歌曲的播放,重置歌词的内容.
this["itembutton"+(temppos-startpoint)].gotoAndStop(2)//让播到的歌词高亮显示
this["itembutton"+(temppos-startpoint-1)].gotoAndStop(1);//让刚才高亮的歌词恢复原来的状态
函数主要部分是这样。
让MOVEUP函数在歌曲播放时不断执行,以同步显示歌词,加入:
this.onEnterFrame=function(){
moveUp()
}
如果大家按着笔者的教程来做,现在基本的效果应该出来了.先测试一下。
怎么让歌词平滑滚动呢?
在整个容器里,只显示了SHOWNUM行歌词,所以,不可能就是简单地让歌词在播放过程中一直地上升。
我们主要是让两句歌词之间能够缓慢地上升,而不是播到相应歌词才让歌词跳动.
以以下两句歌词为例:
[00:15.84]难过 是因为闷了很久
[00:21.18]是因为想了太多
在15秒84和21秒18之间,我们让列表框的所有项目匀速移动一个列表框项目的高度.这样,当时间无限接近21秒18的时候,列表框的所有项目移动的距离接近于一个列表框项目的高度.当时间到21秒18,ONENTERFRAME事件响应时,列表框的内容恰好要更改,因为高亮显示的歌词发生改变.更改是原列表框第一项去掉,其它项目相应地往上移动,最后追加后面还没显示的歌词的第一行.所以,假如列表框项目实际上不移动的话,就会给人一种刚好移动了也恰好是一个列表框项目高度.因此,此时让列表框的位置恢复到原来15秒84时的位置,就不会有跳动的感觉。
知道了这个原理以后,就开始写这段匀速移动的代码了。这是个初中的物理问题,解决起来应该不难。
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接