文王武帅

简单的 MP3

  前天 做了一个MP3,当时之实现了 ,播放 暂停和 停止,今天 又修改了一下;实现了 简单的 下一曲,上一曲,歌曲名字,和歌手的图片;

package 
{

	import flash.display.MovieClip;
	import fl.controls.*;
	import flash.media.Sound;
	import flash.net.URLRequest;
	import flash.media.SoundChannel;
	import flash.events.MouseEvent;
	import flash.media.SoundTransform;
	import fl.events.SliderEvent;
	import flash.net.URLLoader;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.display.Loader;


	public class SoundMain extends MovieClip
	{
		//定义四个按钮,分别是:播放/暂停、停止、上一曲、下一曲
		private var play_btn:Button=new Button();
		private var stop_btn:Button=new Button();
		private var up_btn:Button=new Button();
		private var down_btn:Button=new Button();
		//定义一个slider组件,实现简单地调节声音的大小;
		private var controlVolume:Slider=new Slider();
		//定义一个URLLoader,加载XML
		private var ld_xml:URLLoader=new URLLoader();
		//定义一个URLLoader,加载图片
		private var ld_pictures:Loader=new Loader();
		//定义一个XML,获取,加载进来的Xml的内容
		private var xml:XML;
		//定义三个类,分别是;声音,声音控制,声音调节
		private var sound:Sound;
		private var soundchannel:SoundChannel=new SoundChannel();
		private var soundtransform:SoundTransform=new SoundTransform();
		//定义一个数;初始化声音播放的位置为0
		private var position:Number = 0;
		//文本,显示歌曲名称;
		private var txt:TextField=new TextField();
		//控制歌的次序
		private var songTimes:int = 0;


		public function SoundMain()
		{
			//初始化,设置按钮
			set_allBtn();
			//初始化,设置文本;
			set_txt();
			//加载XML
			ld_xml.load(new URLRequest('SXML.xml'));
			//添加完成事件
			ld_xml.addEventListener(Event.COMPLETE,onCompleteHandler);
			//初始化声音的大小
			controlVolume.value = 5;
			soundtransform.volume = controlVolume.value * 0.1;
			soundchannel.soundTransform = soundtransform;
			//给slider加事件
			controlVolume.addEventListener(SliderEvent.CHANGE,onControlVolume);
			//设置加载图片的属性,并添加到舞台上;;
			ld_pictures.x = 120;
			addChild(ld_pictures);

		}
		//设置按钮
		private function set_allBtn():void
		{
			//对四个按钮的 设置
			play_btn.label = '播放';
			play_btn.x = 10;
			play_btn.y = 260;
			play_btn.width = 40;
			addChild(play_btn);
			stop_btn.label = '停止';
			stop_btn.x = 90;
			stop_btn.y = 260;
			stop_btn.width = 40;
			addChild(stop_btn);
			up_btn.label = '上一曲';
			up_btn.x = 140;
			up_btn.y = 260;
			up_btn.width = 50;
			addChild(up_btn);
			down_btn.label = '下一曲';
			down_btn.x = 200;
			down_btn.y = 260;
			down_btn.width = 50;
			addChild(down_btn);
			//对slider的设置
			controlVolume.x = 270;
			controlVolume.y = 270;
			addChild(controlVolume);
			//给三个按钮 加上单击事件
			play_btn.addEventListener(MouseEvent.CLICK,onPlayHandler);
			stop_btn.addEventListener(MouseEvent.CLICK,onStopHandler);
			up_btn.addEventListener(MouseEvent.CLICK,onUpHandler);
			down_btn.addEventListener(MouseEvent.CLICK,onDownHandler);
		}
		//设置文本
		private function set_txt():void
		{
			txt.x = 120;
			txt.y = 220;
			//txt.background=true;
			txt.wordWrap = true;
			txt.width = 150;
			txt.height = 40;
			addChild(txt);

		}
		private function onCompleteHandler(e:Event):void
		{
			xml = new XML(ld_xml.data);
			sound=new Sound();
			sound.load(new URLRequest(xml.route[songTimes]));
			txt.text = xml.titles[songTimes];
			ld_pictures.load(new URLRequest(xml.pictures[songTimes]));


		}
		private function onPlayHandler(e:MouseEvent):void
		{
			if (play_btn.label == '播放')
			{

				soundchannel = sound.play(position);
				play_btn.label = '暂停';


			}
			else if (play_btn.label=='暂停')
			{
				position = soundchannel.position;
				soundchannel.stop();
				play_btn.label = '播放';


			}

		}
		private function onDownHandler(e:MouseEvent):void
		{
			position = 0;
			songTimes++;
			if (songTimes<=xml.route.length()-1)
			{
				soundchannel.stop();
				sound=new Sound();
				sound.load(new URLRequest(xml.route[songTimes]));
				txt.text = xml.titles[songTimes];
				ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
				soundchannel = sound.play(position);
				position = 0;
				play_btn.label = '暂停';

			}
			else if (songTimes>xml.route.length()-1)
			{


				songTimes = 0;
				soundchannel.stop();
				sound=new Sound();
				sound.load(new URLRequest(xml.route[songTimes]));
				txt.text = xml.titles[songTimes];
				ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
				soundchannel = sound.play(position);
				position = 0;
				play_btn.label = '暂停';

			}

		}
		private function onUpHandler(e:MouseEvent):void
		{
			position = 0;
			songTimes--;
			if (songTimes<0)
			{

				songTimes = xml.route.length() - 1;
				soundchannel.stop();
				sound=new Sound();
				sound.load(new URLRequest(xml.route[songTimes]));
				txt.text = xml.titles[songTimes];
				ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
				soundchannel = sound.play(position);
				position = 0;
				play_btn.label = '暂停';

			}
			else if (songTimes>=0)
			{

				soundchannel.stop();
				sound=new Sound();
				sound.load(new URLRequest(xml.route[songTimes]));
				txt.text = xml.titles[songTimes];
				ld_pictures.load(new URLRequest(xml.pictures[songTimes]));
				soundchannel = sound.play(position);
				position = 0;
				play_btn.label = '暂停';

			}

		}

		private function onStopHandler(e:MouseEvent):void
		{
			trace(555);
			position = 0;
			soundchannel.stop();

			play_btn.label = '播放';


		}
		private function onControlVolume(e:SliderEvent):void
		{
			soundtransform.volume = (e.target.value)*0.1;
			soundchannel.soundTransform = soundtransform;

		}
	}

}

  

posted on 2012-10-21 23:03  文王武帅  阅读(162)  评论(0)    收藏  举报

导航