·您当前的位置:主页 > 技术教程 > AS2与AS3技术 >

[AS3]AS3的sound类源代码的简单实例

时间:2013-01-25 00:42CuPlayer
[AS3]AS3的sound类源代码的简单实例,控制库里的声音

1.控制库里的声音

  1. import flash.media.SoundChannel; 
  2. import flash.media.Sound; 
  3. var mysound:videoS = new videoS(); 
  4.  
  5. var trans:SoundTransform = new SoundTransform(0.6,-1); 
  6. var SSChannel:SoundChannel = new SoundChannel() ; 
  7.  
  8. //可以设置play()的looping参数; 
  9. SSChannel = mysound.play(0,int.MAX_VALUE);//它是int类型的最大值,它等于2,147,483,647,循环这个次数至少可以停留70年。 
  10.  
  11. //停止声音 
  12. SSChannel.stop(); 

2.监听控制

  1. /* 
  2. As3Sound.as 
  3. CuPlayer.com 
  4. */ 
  5. package { 
  6. import flash.display.Sprite; 
  7. import flash.events.*; 
  8. import flash.media.Sound; 
  9. import flash.media.SoundChannel; 
  10. import flash.net.URLRequest; 
  11. import flash.utils.Timer; 
  12. import flash.text.TextField; 
  13. import flash.text.TextFieldAutoSize; 
  14. import flash.filters.DropShadowFilter; 
  15. public class As3Sound extends Sprite { 
  16. private var url:String = "http://sxl001.xfyun.com/music/lib/myRussia.mp3"
  17. private var soundFactory:Sound; 
  18. private var channel:SoundChannel; 
  19. private var positionTimer:Timer; 
  20. private var play_btn:Sprite; 
  21. private var stop_btn:Sprite; 
  22. private var d_filtersropShadowFilter=new DropShadowFilter(5,45,0x000000,80,8,8); 
  23. //CuPlayer.com用于记录音乐现在是否为暂停状态 
  24. private var bSoundStop:Boolean = false
  25. public function As3Sound() { 
  26. var sxl_txt:TextField = new TextField(); 
  27. sxl_txt.text="CS4中如何控制声音的播放或停止的"
  28. sxl_txt.autoSize=TextFieldAutoSize.LEFT; 
  29. sxl_txt.x=stage.stageWidth/2-sxl_txt.width/2; 
  30. sxl_txt.y=20
  31. addChild(sxl_txt); 
  32. var mp3_request:URLRequest = new URLRequest(url); 
  33. soundFactory = new Sound(); 
  34. //CuPlayer.com成功加载数据后 
  35. soundFactory.addEventListener(Event.COMPLETE, completeHandler); 
  36. //CuPlayer.com在存在可用于 MP3 声音的 ID3 数据时 
  37. soundFactory.addEventListener(Event.ID3, id3Handler); 
  38. //加载音乐错误时 
  39. soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 
  40. //音乐加载中... 
  41. soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler); 
  42. soundFactory.load(mp3_request); 
  43. channel = soundFactory.play(); 
  44. //CuPlayer.com音乐播放完成 
  45. channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); 
  46. //用Timer监听音乐的播放进度 
  47. positionTimer = new Timer(1000); 
  48. positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler); 
  49. positionTimer.start(); 
  50. //创建一个按钮,用于播放音乐 
  51. play_btn = new Sprite(); 
  52. play_btn.graphics.beginFill(0xFFCC32); 
  53. play_btn.graphics.drawRoundRect(0, 0, 70, 18, 10, 10); 
  54. play_btn.graphics.endFill(); 
  55. var play_txt:TextField = new TextField(); 
  56. play_txt.text = "播放"
  57. play_txt.x=18
  58. play_btn.x=50
  59. play_btn.y=100
  60. play_txt.selectable = false
  61. play_btn.addChild(play_txt); 
  62. play_btn.filters=[d_filters]; 
  63. play_btn.addEventListener(MouseEvent.CLICK, soundPlay); 
  64. addChild(play_btn); 
  65. //CuPlayer.com创建一个按钮,用于停止音乐 
  66. stop_btn = new Sprite(); 
  67. stop_btn.graphics.beginFill(0xFFCC32); 
  68. stop_btn.graphics.drawRoundRect(0, 0, 70, 18, 10, 10); 
  69. stop_btn.graphics.endFill(); 
  70. stop_btn.x=130
  71. stop_btn.y=100
  72. var stop_txt:TextField = new TextField(); 
  73. stop_txt.x=18
  74. stop_txt.text = "暂停"
  75. stop_txt.selectable = false
  76. stop_btn.addChild(stop_txt); 
  77. stop_btn.filters=[d_filters]; 
  78. stop_btn.addEventListener(MouseEvent.CLICK, soundStop); 
  79. addChild(stop_btn); 
  80.  
  81. //CuPlayer.com监听音乐的播放进度 
  82. private function positionTimerHandler(event:TimerEvent):void { 
  83. var ybf:int = channel.position.toFixed(0); 
  84. var zcd:int = soundFactory.length; 
  85. var bfs:int = Math.floor(ybf/zcd*100); 
  86. //trace("音乐总长度:"+zcd, "音乐已播放:"+ybf, "播放进度为:"+bfs+"%"); 
  87. //CuPlayer.com加载音乐完成时 
  88. private function completeHandler(event:Event):void { 
  89. //trace("加载音乐完成: " + event); 
  90. //在存在可用于MP3声音的ID3数据时 
  91. private function id3Handler(event:Event):void { 
  92. //trace("音乐的ID3信息如下:"); 
  93. for (var s in soundFactory.id3) { 
  94. //trace("\t", s, ":", soundFactory.id3[s]); 
  95. //trace("关于ID3信息介绍,请参见Sound类-->属性-->id3"); 
  96. //CuPlayer.com加载音乐错误时 
  97. private function ioErrorHandler(event:Event):void { 
  98. //trace("加载音乐错误,错误信息如下:" + event); 
  99. positionTimer.stop(); 
  100. //CuPlayer.com加载音乐时 
  101. private function progressHandler(eventrogressEvent):void { 
  102. var yjz:int = event.bytesLoaded; 
  103. var zcd:int = event.bytesTotal; 
  104. var bfs:int = Math.floor(yjz/zcd*100); 
  105. //trace("音乐总长度:"+zcd,"已加载: "+yjz, "加载进度为:"+bfs+"%"); 
  106. //音乐播放完成 
  107. private function soundCompleteHandler(event:Event):void { 
  108. //trace("音乐播放完成: " + event); 
  109. positionTimer.stop(); 
  110. //点击播放按钮事件 
  111. private function soundPlay(event:MouseEvent):void { 
  112. if (bSoundStop) { 
  113. bSoundStop = false
  114. channel = soundFactory.play(channel.position.toFixed(0)); 
  115. //点击停止按钮事件 
  116. private function soundStop(event:MouseEvent):void { 
  117. if (!bSoundStop) { 
  118. bSoundStop = true
  119. channel.stop(); 

 

热门文章推荐

请稍候...