·您当前的位置:首页 > 技术教程 > 播放器教程 >

[AS3]as3.0的Sound类学习案例代码

时间:2012-08-28 10:489ria.com
[AS3]Sound类学习案例,Sound类,as3音量,as3播放器

[AS3]Sound类学习案例

  1. /*=================Sound类学习案例===============  
  2. 涉及Sound类 textFile类  textArea类 数组  
  3. 案例思路:首先创建一个数组用于存放歌曲列表  
  4. 随机选取一首歌并载入  
  5. 当载入完毕马上开始播放  
  6. 在界面中显示歌曲文件名,并用for in在文本域中显示id3信息  
  7. 经验心得:无法直接用代码创建TextArea,前提是库中有TextArea组件  
  8. System.useCodePage=true;只能用于解决载入外部文本时出现的中文乱码  
  9. 无法彻底解决中文乱码  
  10. =================Sound类学习案例===============*/  
  11.  
  12. package {  
  13.     import flash.events.Event;  
  14.     import flash.media.Sound;  
  15.     import flash.events.ProgressEvent;  
  16.     import flash.events.IOErrorEvent;  
  17.     import flash.net.URLRequest;  
  18.     import flash.display.Sprite;  
  19.     import flash.text.TextField;  
  20.     import fl.controls.TextArea;  
  21.     import flash.system.System;  
  22.  
  23.  
  24.     public class mySound extends Sprite {  
  25.         /*====================构造函数==================*/  
  26.         public function mySound() {  
  27.  
  28.             var songArray:Array=new Array();  
  29.             songArray=["爱你是我的呼吸.mp3","黄玫瑰.mp3","离别也是爱.mp3"];//创建数组 定义歌曲路径列表  
  30.  
  31.             var songNum:uint=songArray.length*Math.random();  
  32.             var songPath:URLRequest=new URLRequest(songArray[songNum]);//随机播放歌曲的路径  
  33.  
  34.             var songInfo:TextField=new TextField();  
  35.             songInfo.x=50;  
  36.             songInfo.y=40;  
  37.             songInfo.htmlText="<u>歌曲:</u>"+songArray[songNum];//创建一个文本框 用来存放歌曲的文件名 坐标为(50,40)  
  38.             addChild(songInfo);  
  39.  
  40.             var songID3Info:TextArea=new TextArea();  
  41.             songID3Info.setSize(100,50);  
  42.             songID3Info.x=50;  
  43.             songID3Info.y=60;  
  44.             songID3Info.alpha=0.2;  
  45.             addChild(songID3Info);//创建一个文本域,用以存放id3信息  
  46.  
  47.             System.useCodePage=true;//本以为能指望解决中文乱码的问题,可是无效!!!!  
  48.  
  49.             var mySong:Sound=new Sound();  
  50.             mySong.load(songPath);//创建歌曲 并载入歌曲  
  51.  
  52.             mySong.addEventListener(Event.COMPLETE,onLoaded);  
  53.             mySong.addEventListener(ProgressEvent.PROGRESS,loadProgress);  
  54.             mySong.addEventListener(IOErrorEvent.IO_ERROR,onIOError);  
  55.             mySong.addEventListener(Event.ID3, id3Handler);  
  56.  
  57.             /*====================播放函数==================*/  
  58.             function onLoaded(event:Event):void {  
  59.                 var localSong:Sound=event.target as Sound;  
  60.                 localSong.play();  
  61.             }  
  62.  
  63.             /*====================载入函数==================*/  
  64.             function loadProgress(event:ProgressEvent):void {  
  65.                 var percent:uint=Math.round(100*event.bytesLoaded/event.bytesTotal);  
  66.                 trace("载入"+percent+"%");  
  67.             }  
  68.             /*===================容错函数===================*/  
  69.             function onIOError(event:IOErrorEvent) {  
  70.                 trace("该声音没有被载入: " + event.text);  
  71.             }  
  72.  
  73.             /*=================获取mp3的ID3数据===============*/  
  74.             function id3Handler(event:Event):void {  
  75.                 trace("音乐的ID3信息如下:");  
  76.                 for (var s in mySong.id3) {  
  77.                     songID3Info.appendText("\n");  
  78.                     songID3Info.appendText(s);  
  79.                     songID3Info.appendText(":");  
  80.                     songID3Info.appendText( mySong.id3[s]);  
  81.                 }  
  82.             }  
  83.         }  
  84.     }  

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器