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

[AS3]as3下写的声音类文件示例

时间:2013-08-21 15:16cuplayer.com
[AS3]as3下写的声音类文件示例

[AS3]as3下写的声音类文件示例

  1. package com.gchen{ 
  2. import flash.media.Sound; 
  3. import flash.media.SoundChannel; 
  4. import flash.media.SoundTransform; 
  5. import flash.utils.getDefinitionByName; 
  6. import flash.utils.Timer; 
  7. import flash.events.Event; 
  8. import flash.events.TimerEvent; 
  9. public class SubSound extends Sound{ 
  10. private var _obj:Object={} 
  11. private var oldPlay:String=""
  12. private var timer:Timer; 
  13. private var timerChannel:Timer; 
  14. private var _end:int; 
  15. public function SubSound() { 
  16. super(); 
  17. timer=new Timer(100); 
  18. timerChannel=new Timer(100,20) 
  19. timer.addEventListener(TimerEvent.TIMER,timerHandle); 
  20. timerChannel.addEventListener(TimerEvent.TIMER,timerChannelHandle); 
  21. public function playSound(name:String,start:int=0,end:int=0,loops:int=0){ 
  22. if(name=="") return; 
  23. var channel:SoundChannel=new SoundChannel(); 
  24. var _sound:Sound=getSound(name); 
  25. channel=_sound.play(start); 
  26. oldPlay=name
  27. if(oldPlay!=""){ 
  28. timerChannel.reset(); 
  29. timerChannel.start(); 
  30. if(end!=0){ 
  31. _end=end; 
  32. timer.start(); 
  33. _obj[name]=channel; 
  34. public function get obj():Object{ 
  35. return _obj; 
  36. private function timerHandle(e:TimerEvent):void{ 
  37. if(_obj[oldPlay].position>_end){ 
  38. _obj[oldPlay].stop() 
  39. timer.reset() 
  40. }  
  41. private function timerChannelHandle(e:TimerEvent):void{ 
  42. for(var i in _obj) { 
  43. if(i!=oldPlay){ 
  44. var value:Number = _obj[i].soundTransform.volume 
  45. if(value<0){ 
  46. _obj[i].stop();  
  47. setVolume(_obj[i],value-.1) 
  48. public function setVolume(channel:SoundChannel,volume:Number):void {            
  49.             var transform:SoundTransform = channel.soundTransform; 
  50.             transform.volume = volume; 
  51.             channel.soundTransform = transform
  52.         } 
  53. private function getSound(name:String):*{ 
  54. var _c:*=getDefinitionByName(name) as Class 
  55. return new _c(); 
  56.  

 

热门文章推荐

请稍候...

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

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