`

as3音量控制旋钮,Flash声音动作脚本

阅读更多

http://bbs.9ria.com/viewthread.php?tid=84152&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000

 

 

  • 资讯类型: 翻译
  • 来源页面: http://www.flashperfection.com/tutorials/Actionscript-knob-volume-control-as3-38351.html
  • 资讯原标题: as3 volume control knob, Flash sound actionscript
  • 资讯原作者: flashperfection
  • 翻译词数: 800 词
  • 我的评论: 
    对这篇文你有啥看法,跟贴说说吧!欢迎口水和板砖,哈哈。欢迎大家和我们一同分享更多资讯。


    音量控制可以是简单的声音开关系统或是移动垂直或水平线上的拖动条来增加或减小播放声音。在这里我们将创建可旋转360度的音量旋钮来控制Flash AS3中的声音。
    下面是你将在本教程结束时创建的音量控制旋钮的例子。因为我们在做音响控制系统,请尝试播放声音并转动旋钮。注意:当你旋转控制旋钮时你会听到声音减小或变大。
    创建音量控制旋钮:
    作为创建音量控制旋钮的第一步,我们需要创建圆形来充当控制旋钮。打开源代码,在库里面你会发现注册点在中心的旋钮影片剪辑元件。
    注意:创建圆形影片剪辑元件保持注册点在中心这点非常重要
    那么这就是我们创建的圆,并转换为注册点在中心的影片剪辑元件。命名为“knob_mc”影片剪辑。
    在创建影片剪辑之后图形部分已经做好了,接下来我们需要在一个帧里写代码了。
    as3旋钮控制代码:
    现在功作是添加用户转动它的as3圆旋转的代码到旋钮上去,当触发鼠标按下事件时我们需要开始转动旋钮和当释放鼠标按键时结束转动。
    1. knob_mc.addEventListener(MouseEvent.MOUSE_DOWN,turn);
    2. stage.addEventListener(MouseEvent.MOUSE_UP,endTurn );

    3. function turn(e:Event):void
    4. {
    5.         stage.addEventListener(MouseEvent.MOUSE_MOVE,turn);
    6.         var position:Number = Math.atan2(mouseY - knob_mc.y,mouseX - knob_mc.x);
    7.         //trace(position);
    8.         var angle:Number=(position/Math.PI) * 180;

    9.         knob_mc.rotation = angle;

    10. }

    11. function endTurn(e:MouseEvent):void
    12. {
    13.         knob_mc.removeEventListener(MouseEvent.MOUSE_DOWN, turn);
    14.         stage.removeEventListener(MouseEvent.MOUSE_MOVE,turn);
    15.         knob_mc.addEventListener(MouseEvent.MOUSE_DOWN,turn);
    16. }
    复制代码
    代码说明:
    上面的代码是得到一个角度或旋转点,点击此链接到相似的数学和as代码
    Math.atan2()是actionscript中内建的将给定的X,Y转换为弧度值的数学函数,再通过将弧度值除以PI再乘以180转换成角度值。
    1. var position:Number = Math.atan2(mouseY - knob_mc.y,mouseX - knob_mc.x);
    2.         //trace(position);
    3.         var angle:Number=(position/Math.PI) * 180;

    4.         knob_mc.rotation = angle;
    复制代码
    所以,最后分配给knob_mc的是角度值。
    规范化的角度:
    我们已分配给“knob_mc.rotation =angle”的角的取值范围是从0到180度和负的0到180度,在这里我们要使角度从0到360度。
    1. function normalizeVolume( angle:Number ):Number
    2. {

    3.         angle %=  360;
    4.         if (angle < 0)
    5.         {
    6.                 angle = 360 + angle;
    7.         }
    8.         //trace("::"+percentage(angle,0,360));

    9.         return percentage(angle,0,360)/100
    10. }
    复制代码
    转换角度值为音量:
    把取值范围是0到360度标准的角转换成0到100,最后再通过除以100使最终取值范围为0到1。
    1. function percentage( X:Number, minValue:Number, maxValue:Number ):Number
    2. {
    3.         return (X - minValue)/(maxValue - minValue) * 100;
    4. }
    复制代码
    用as3加载声音:
    接下来我们继续给音量控件一些行为,在Flash Actionscript中加载外部的声音,而不是从库中加载。加载声音的过程很简单,就像我们加载外部swf图像进Flash一样。加载外部声音是简单的通过创建一个新的Sound对象实例来加载声音文件的,一旦文件加载完成,文件将被内置的play()函数播放。
    1. var soundClip:Sound=new Sound();
    2. var sndChannel:SoundChannel=new SoundChannel();
    3. soundClip.load(new URLRequest("song.mp3"));
    4. soundClip.addEventListener(Event.COMPLETE,onComplete,false,0,true);
    5. function onComplete(evt:Event):void {
    6.     sndChannel=soundClip.play();
    7. }
    复制代码
    AS3中控制旋钮来调节音量:
    我们已经加载了外部声音并且音量控制旋钮也已经准备好了,下一个是使用soundTransform来控制音量。
    1. if(sndChannel!=null){
    2.         var st:SoundTransform = new SoundTransform(normalizeVolume(angle));
    3.         sndChannel.soundTransform = st
    4. }
    复制代码
    完整的as3代码:
    1. import flash.media.SoundTransform;

    2. knob_mc.addEventListener(MouseEvent.MOUSE_DOWN,turn);
    3. stage.addEventListener(MouseEvent.MOUSE_UP,endTurn );

    4. function turn(e:Event):void
    5. {
    6.         stage.addEventListener(MouseEvent.MOUSE_MOVE,turn);
    7.         var position:Number = Math.atan2(mouseY - knob_mc.y,mouseX - knob_mc.x);

    8.         var angle:Number=(position/Math.PI) * 180;

    9.         if(sndChannel!=null){
    10.                 var st:SoundTransform = new SoundTransform(normalizeVolume(angle));
    11.                 sndChannel.soundTransform = st
    12.         }
    13.         knob_mc.rotation = angle;

    14. }

    15. function endTurn(e:MouseEvent):void
    16. {
    17.         knob_mc.removeEventListener(MouseEvent.MOUSE_DOWN, turn);
    18.         stage.removeEventListener(MouseEvent.MOUSE_MOVE,turn);
    19.         knob_mc.addEventListener(MouseEvent.MOUSE_DOWN,turn);
    20. }

    21. function normalizeVolume( angle:Number ):Number
    22. {

    23.         angle %=  360;
    24.         if (angle < 0)
    25.         {
    26.                 angle = 360 + angle;
    27.         }

    28.         return percentage(angle,0,360)/100
    29. }

    30. function percentage( X:Number, minValue:Number, maxValue:Number ):Number
    31. {
    32.         return (X - minValue)/(maxValue - minValue) * 100;
    33. }

    34. var soundClip:Sound=new Sound();
    35. var sndChannel:SoundChannel=new SoundChannel();
    36. soundClip.load(new URLRequest("song.mp3"));
    37. soundClip.addEventListener(Event.COMPLETE,onComplete,false,0,true);

    38. function onComplete(evt:Event):void {
    39.     sndChannel=soundClip.play();
    40. }
    复制代码
    注:添加Song.mp3是和SWF放置在同一文件夹的。

    分享到:
    评论

    相关推荐

      flex flash as3 actionscript控制音量代码实例

      在Flash AS3开发中,有时我们需要对音量进行精细控制,特别是在制作交互式的课件或者游戏时。本实例主要讲解如何通过ActionScript实现音量的控制。以下是对该代码实例的详细解读: 首先,我们导入了必要的类: ```...

      FLASH声音脚本制作与音量大小设置

      在本篇文章中,我们将深入探讨如何在Flash中添加声音脚本到按钮,并实现声音的播放、停止以及调整原文件的声音音量。对于那些希望在Flash动画中加入动态音频效果的人来说,掌握这些技巧是非常重要的。 ### Flash...

      flash 音量控制 超好

      3. **美观性**:“好看”一词意味着这个Flash音量控制界面设计得吸引人,符合用户审美,体现了Flash在视觉设计方面的优势,可以通过矢量图形实现清晰、细腻且不失真的界面元素。 4. **文件名:音量.mbd**:这是一个...

      jQuery和css3音量调节旋钮插件

      总的来说,这个jQuery和CSS3音量调节旋钮插件结合了两者的技术优势,提供了直观且具有视觉吸引力的音量控制方式。通过理解jQuery的事件处理和CSS3的动画特性,开发者可以轻松地将此插件集成到自己的项目中,提升音频...

      js音量控制代码

      为了实现跨浏览器的音量控制,可能需要使用Flash、Web Audio API或其他浏览器内置的技术,或者使用JavaScript库如JQuery的插件来提供兼容解决方案。 7. **Web Audio API**: 如果不依赖ActiveX,可以考虑使用现代...

      flashMX动作脚本参考指南

      ### Flash MX 动作脚本参考指南核心知识点详解 #### 一、引言 《Flash MX 动作脚本参考指南》是一本详尽的技术文档,主要针对使用Adobe Flash MX软件进行动画创作与互动开发的专业人士及爱好者。本书旨在帮助读者...

      as3,flash播放器,含源代码.,可显示歌曲信息和调节音量,声道

      这个压缩包提供了一个基于AS3的Flash音乐播放器的源代码,它具有显示歌曲信息和调节音量、声道的功能。对于想要学习或改进Flash音频播放器开发的人来说,这是一个宝贵的资源。 首先,我们要理解AS3的基础。AS3是一...

      Unity3D的声音控制脚本2

      本篇将深入探讨如何使用Unity3D的声音控制脚本来实现对游戏音频的播放、停止以及音量调节。 首先,我们需要理解Unity3D中的`AudioSource`组件。这个组件是用于播放音频的关键,它可以直接附加到游戏对象上,让该...

      Flash滑块音量控制实例.rar

      在Flash中,音量控制通常涉及到ActionScript编程,这是一种基于ECMAScript的脚本语言,用于添加交互性和动态功能。在这个实例中,我们可能会看到以下关键知识点: 1. **滑块组件(Slider Component)**:Flash中的...

      音乐音量大小控制条FLASH源文件

      7. **兼容性和测试**: 由于AS2.0已较为过时,开发者需要确保在不同版本的Flash Player和浏览器中,音量控制条都能正常工作。 8. **用户体验设计**: 控制条的设计应直观易用,确保用户能快速理解和调整音量。这包括...

      Flash AS3 中文帮助文档

      9. **声音和视频处理**:Sound和Video类提供了对音频和视频的处理能力,可以实现播放、暂停、停止、音量控制等操作。 10. **网络通信**:URLLoader和URLRequest类支持HTTP、FTP和HTTPS协议,可以发送HTTP请求,实现...

      flash漂亮控制音量

      1. **声音类(Sound Class)**:在AS3中,`Sound`类是处理音频的基本对象。你可以加载、播放和控制音频文件的音量。例如,通过创建一个`Sound`对象,然后调用`volume`属性来改变音量: ```actionscript var mySound...

      动感的音量控制flash素材

      音量控制可能就是通过ActionScript实现的,例如使用"SoundMixer"类来控制全局音量,或者使用"SoundChannel"对象来管理特定声音的音量。代码可能涉及到监听用户输入(如鼠标点击)并响应改变音量的事件。 此外,...

      FLASH动作脚本详解.doc

      Flash动作脚本是Adobe Flash中用于控制动画行为和交互的核心技术。它是基于ActionScript语言的,ActionScript是一种面向对象的编程语言,主要用于创建动态的、交互性的网页内容和应用程序。 一、Flash脚本基础入门...

      音量控制电路Multisim仿真实例

      模拟电位器通过手动旋转其旋钮改变电阻,而数字电位器则可以通过编程控制,提供更精确的音量调节。 在创建音量控制电路的Multisim仿真模型时,首先需要从元器件库中选择合适的电源、音频信号源、电位器、放大器以及...

      flash动作脚本从入门开始全.pdf

      在深入探讨Flash动作脚本(ActionScript)之前,我们首先要明确它的重要性。ActionScript是Adobe Flash平台上用于创建交互式内容、动画和富媒体应用程序的主要编程语言。尤其在考试环境中,熟悉并掌握ActionScript的...

      音量控制模块(3KB)

      在这个3KB的压缩包文件中,我们很可能找到了一个轻量级且高效的音量控制解决方案,可能适用于各种操作系统环境或嵌入式系统。下面我们将详细探讨音量控制模块的关键知识点以及与其相关的技术领域。 首先,我们要...

      flashas3手册

      另外,AS3还支持声音和视频的处理,包括播放、暂停、停止以及音量控制等功能。 ActionScript 3的错误处理机制也很重要,通过try...catch语句可以捕获和处理运行时错误,确保程序的稳定性和健壮性。 除此之外,AS3...

    Global site tag (gtag.js) - Google Analytics