MP3播放器附加歌词

package 
{
	import flash.display.MovieClip;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.net.URLRequest;
	import flash.events.MouseEvent;
	import fl.events.SliderEvent;
	import flash.media.SoundTransform;
	import flash.events.ProgressEvent;
	import flash.events.Event;
	import flash.display.Loader;
	import flash.net.URLLoader;
	import flash.text.TextField;
	import flash.text.TextFormat;
	public class MP3Main extends MovieClip
	{
		private var sound:Sound;
		private var soundchannel:SoundChannel;
		private var position:Number = 0;
		private var soundtransform:SoundTransform;
		
		private var jiazaitiao:JiaZaiTiao;
		private var jiazaikuang:JiaZaiKuang;
		
		private var songs:Array = ["刀郎 - 萨拉姆毛主席.mp3","曲婉婷 - 我的歌声里.mp3","苏打绿 - 我只在乎你.mp3","苏打绿 - 无与伦比的美丽.mp3","林宥嘉-你是我的眼.mp3"];
		private var i:int = 0;
		
		private var lyric_arr:Array;
		private var n:int = 0;
		
		private var loader:URLLoader;
		private var textF:TextFormat;
		public function MP3Main()
		{
			sound = new Sound();
			soundchannel = new SoundChannel();
			soundtransform = new SoundTransform();
			
			textF = new TextFormat("宋体",20);
		    music_txt.setTextFormat(textF);
			lyric_txt.setTextFormat(textF);
			lyric_arr = new Array("music lyric.xml");
			
			//实例化加载条,设置加载条属性
			jiazaitiao = new JiaZaiTiao();
			jiazaikuang = new JiaZaiKuang();
			jiazaitiao.scaleX = 0;
			jiazaikuang.scaleX = 0;
			jiazaitiao.x = 197;
			jiazaitiao.y = 362;
			//定义舞台按钮的名字
			xiayishou.label = "Next";
			shangyishou.label = "Back";
			shangyishou.enabled =false;
			btn1.label = "播放";
			btn2.label = "停止";
			//设置音量控制条的初始值
			slider.value = 10;
			//将按钮呈现到舞台
			addChild(jiazaitiao);
			addChild(xiayishou);
			addChild(shangyishou);
			
			loader = new URLLoader();
			loader.load(new URLRequest(lyric_arr[n]));
			loader.addEventListener(Event.COMPLETE,setXml);
			loader.addEventListener(Event.COMPLETE,setXml2);
			
			//将歌曲放在家在音乐的数组里,逐一检索使用
			sound.load(new URLRequest(songs[i]));
			//为音量控制条添加点击事件
			slider.addEventListener(SliderEvent.CHANGE,onSliderHandler);
			//为播放暂停按钮添加点击事件
			btn1.addEventListener(MouseEvent.CLICK,onClickHandler);
			btn2.addEventListener(MouseEvent.CLICK,onStopHandler);
			//为音乐按钮添加点击事件
			sound.addEventListener(ProgressEvent.PROGRESS,onJiaZaiKuangHandler);
			sound.addEventListener(Event.COMPLETE,onJiaZaiTiaoHandler);
			//舞台每秒侦听一次
			stage.addEventListener(Event.ENTER_FRAME,onEventHandler);
			//点击下一首的事件
			xiayishou.addEventListener(MouseEvent.CLICK,onXiayishouHandler);
			shangyishou.addEventListener(MouseEvent.CLICK,onShangyishouHandler);
		}
		private function onSliderHandler(e:SliderEvent):void
		{
			soundtransform.volume = (e.target.value)* 0.2;
			soundchannel.soundTransform = soundtransform;
		}
		private function onClickHandler(e:MouseEvent):void
		{

			if (btn1.label == "播放")
			{
				soundchannel = sound.play(position);
				btn1.label = "暂停";
			}
			else
			{
				position = soundchannel.position;
				soundchannel.stop();
				btn1.label = "播放";
			}
		}
		private function onStopHandler(e:MouseEvent):void
		{
			soundchannel.stop();
			btn1.label = "播放";
			position = 0;
		}
		private function onJiaZaiKuangHandler(e:ProgressEvent):void
		{
			jiazaikuang.scaleX = e.bytesLoaded / e.bytesTotal;
		}
		private function onJiaZaiTiaoHandler(e:Event):void
		{
			if (btn1.label == "播放")
			{
				soundchannel = sound.play();
			}

			soundchannel.stop();
		}
		private function onEventHandler(e:Event):void
		{
			jiazaitiao.scaleX = soundchannel.position / sound.length;
		}
		private function onShangyishouHandler(e:MouseEvent):void
		{
			i--;
			sound = new Sound();
			soundchannel.stop();
			sound.load(new URLRequest(songs[i]));
			soundchannel = sound.play();
			if( i==0)
	        {
				trace (shangyishou.enabled);
				shangyishou.enabled =false;
				xiayishou.enabled =true;
			}
			else
			{
				shangyishou.enabled =true;
	            xiayishou.enabled =true;
			}
			setXml2(e);
		}
		private function onXiayishouHandler(e:MouseEvent):void
		{
			i++;
			sound = new Sound();
			soundchannel.stop();
			sound.load(new URLRequest(songs[i]));
			soundchannel = sound.play();
			if(i==4)
			{
				trace(xiayishou.enabled);
				xiayishou.enabled =false;
			    shangyishou.enabled = true;
			}
			else
			{
				shangyishou.enabled = true;
			    xiayishou.enabled =true;
			}
			setXml(e);
		}
        private function setXml(e:Event):void
		{
		   var xml:XML = new XML(loader.data);
			if(xiayishou.label == "Next")
			{
			   n++;
			   music_txt.text =xml.music1[n];

			   lyric_txt.text =xml.lyric[n];
			}
		}
		private function setXml2(e:Event):void
       {
		   var xml:XML = new XML(loader.data);
		  if (shangyishou.label == "Back")
		   {
			  n--;
			   music_txt.text =xml.music1[n];
			   lyric_txt.text =xml.lyric[n];
		   }
		}
	}
}

  

posted @ 2012-10-22 21:34  小糊涂仙儿  阅读(248)  评论(0)    收藏  举报