加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex控制音量 slider hslider 注释全

发布时间:2020-12-15 04:30:35 所属栏目:百科 来源:网络整理
导读:?xml?version= "1.0" ?encoding= "utf-8" ? ?? mx:Application?xmlns:mx= "http://www.adobe.com/2006/mxml" ?layout= "absolute" ?creationComplete= "myInit()" ?? ?mx:Script ?? ??![CDATA[ ?? ??import?flash.events.*; ?? ??import?flash.net.URLReques
  1. <?xml?version="1.0"?encoding="utf-8"?> ??
  2. <mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?creationComplete="myInit()"> ??
  3. ?<mx:Script> ??
  4. ??<![CDATA[ ??
  5. ??import?flash.events.*; ??
  6. ??import?flash.net.URLRequest; ??
  7. ??import?flash.media.Sound; ??
  8. ??import?flash.media.SoundChannel; ??
  9. ??import?flash.media.SoundTransform; ??
  10. ??import?flash.utils.Timer; ??
  11. ??import?flash.events.TimerEvent; ??
  12. ??import?mx.controls.Alert; ??
  13. ? ??
  14. ??//mp3?的?url?地址 ??
  15. ??private?var?soundURL:String?=?"asflex.mp3"; ??
  16. ??//访问?url?上的东西都用?URLRequest?了 ??
  17. ??private?var?request:URLRequest?=?new?URLRequest(soundURL); ??
  18. ??private?var?my_sound:Sound=new?Sound();?//?新建?Sound?对象 ??
  19. ??//声明?SoundChannel?类型的变量?my_channel ??
  20. ??private?var?my_channel:SoundChannel; ??
  21. ??//新建?myTimer?对象并定义循环的时间间隔为10毫秒,循环次数为无限次(参数中的0表示无限次) ??
  22. ??private?var?myTimer:Timer?=?new?Timer(10,?0); ??
  23. ??? ??
  24. ??private?function?myInit():void{ ??
  25. ???my_sound.load(request);?//?载入外部?mp3:?She?is?my?sin.mp3 ??
  26. ???} ??
  27. ??//播放音乐: ??
  28. ??private?function?playSound():?void{ ??
  29. ???Alert.show(my_sound.length.toString()); ??
  30. ???my_channel?=?my_sound.play();?//?音乐正式开始播放 ??
  31. ???//添加事件侦听器,?功能:?循环执行?timerHandler?函数(但这里还没有开始循环执行) ??
  32. ???myTimer.addEventListener(TimerEvent.TIMER,?timerHandler); ??
  33. ???myTimer.start();?//?这里才开始循环执行?timerHandler?函数 ??
  34. ??} ??
  35. ??//停止音乐: ??
  36. ??private?function?stopSound():void{ ??
  37. ???//停止对函数?timerHandler?的循环执行,?因为音乐开始时?myTimer?对象就对函数?timerHandler?循环执行了 ??
  38. ???myTimer.stop(); ??
  39. ???my_channel.stop();?//?正式停止音乐 ??
  40. ???progress_hs.value?=?0;?//?使那"播放进度"条的值回到0,即回到最左端 ??
  41. ??} ??
  42. ??//定义被?myTimer?循环执行的函数?timerHandler ??
  43. ??private?function?timerHandler(event:TimerEvent):void{ ??
  44. ??//功能:?显示音乐的播放进度,?进度条会随着音乐的继续播放而向右缓缓移动; ??
  45. ??//把这个公式翻译为中文:?播放进度条的值=当前音乐播放时间/音乐的总时间 ??
  46. ???progress_hs.value?=?my_channel.position/my_sound.length; ??
  47. ??} ??
  48. ??//改变播放进度:?每当?"播放进度"?条被用户拉动过而使其值改变时,就执行以下函数 ??
  49. ??private?function?changeProgress():void{ ??
  50. ???//音乐停止且必须停止,是为了从新的播放时间点开始播放 ??
  51. ???//(感觉这里麻烦了点,?如果有更好的方法,恳请高手指点!请联系我: ??
  52. ???//?www.Y-boy.cn?或?www.RiaHome.cn?,谢谢!) ??
  53. ???my_channel.stop(); ??
  54. ???//使音乐从新的时间点开始播放,新的时间点是小括号内的值,??
  55. ???//即:"播放进度"条的值*音乐的总时间,?为什么会这样呢? ??
  56. ???//因为?HSlider?控件(那条"播放进度")的长度在下面被定义为1,??
  57. ???//使得"播放进度"条的值在闭区间[0,1]内,?所以只需再乘以音乐的总时间就行了 ??
  58. ???my_channel?=?my_sound.play(progress_hs.value*my_sound.length); ??
  59. ??} ??
  60. ??//改变音量:?每当?"音量大小"?控制条被用户拉动过而使其值改变时,就执行以下函数 ??
  61. ??private?function?changeVolume():void{ ??
  62. ???//把?my_channel.soundTransform?赋值给?my_transform ??
  63. ???var?my_transform:SoundTransform?=?my_channel.soundTransform; ??
  64. ???my_transform.volume?=?volume_hs.value;?//?把"音量大小"控制条当前值赋给?my_transform.volume ??
  65. ???my_channel.soundTransform?=?my_transform;?//?给?my_channel.soundTransform?赋值 ??
  66. ???/* ??
  67. ????????这里的用法很特别,?像使用?AS2.0?里面的滤镜(Filters)那样,?先创建一个?"第三者",??
  68. ????对?"第三者"?进行操作,?最后才把?"第三者"?赋值给?"当事人"?.?AS2.0?里面的滤镜的?"第三者"??
  69. ????是数组,?这里的?"第三者"?是?my_transform?.?这里不能跟?AS2.0?里面的滤镜相比,?只不过为 ??
  70. ????了方便理解,?才这么说.?(个人见解,?如有错请指出!) ??
  71. ???*/ ??
  72. ??} ??
  73. ??//改变左右声道:?每当?"左右声道"?控制条被用户拉动过而使其值改变时,就执行以下函数 ??
  74. ??private?function?changePan():void{ ??
  75. ???//此处用法与上面的?改变音量?相同,?理解?改变音量?的,?就能理解这里 ??
  76. ???var?my_transform:SoundTransform?=?my_channel.soundTransform; ??
  77. ???my_transform.pan?=?pan_vs.value; ??
  78. ???my_channel.soundTransform?=?my_transform; ??
  79. ??}? ??
  80. ? ??
  81. ??]]> ??
  82. ?</mx:Script> ??
  83. ? ??
  84. ?<!--?显示歌曲名称?--> ??
  85. ?<mx:Label?text="歌曲:She?is?my?sin"?fontSize="12"/> ??
  86. ? ??
  87. ?<!--?播放进度条?--> ??
  88. ?<mx:Label?text="播放进度:"?fontSize="12"?y="25"/> ??
  89. ?<mx:HSlider?id="progress_hs"?width="100"?minimum="0"?maximum="1"??
  90. ??x="60"?y="25"?mouseDown="myTimer.stop()"?mouseUp="myTimer.start()"??
  91. ??change="changeProgress()"/> ??
  92. ? ??
  93. ?<!--?音量控制条?--> ??
  94. ?<mx:Label?text="音量大小:"?fontSize="12"?y="52"/> ??
  95. ?<mx:HSlider?id="volume_hs"?width="100"?minimum="0"?maximum="1"??
  96. ??y="52"?x="60"?value="0.8"?change="changeVolume()"/> ??
  97. ? ??
  98. ?<!--?左右声道控制条?--> ??
  99. ?<mx:Label?text="左右声道:"?fontSize="12"?x="-1"?y="78"/> ??
  100. ?<mx:HSlider?id="pan_vs"?width="100"?minimum="-1"?maximum="1"??
  101. ??x="60"?y="80"?value="0"?change="changePan()"/> ??
  102. ? ??
  103. ?<!--?播放和停止按钮?--> ??
  104. ?<mx:Button?label="play"?y="116"?x="50"?click="playSound()"/> ??
  105. ?<mx:Button?label="stop"?y="116"?x="109"?click="stopSound()"/> ??
  106. </mx:Application>??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读