如何制作一个简单的音量可拖动按钮,哪个功能正常?我已经研究过但无法找到有效的方法

时间:2013-11-15 07:40:20

标签: actionscript-3 audio flash-cs3

我总是试图制作一个简单的声音播放器,它也有音量控制,但我无法弄清楚如何使它与音量连接,

我确实制作了一个可以拖动的按钮,但我想设置它的最大x和y,

所以我这样做了,

vol_player_btn.addEventListener(MouseEvent.MOUSE_MOVE,buttonInside);

protected function buttonInside(e:MouseEvent):void {
    if (e.buttonDown) {
            vol_player_btn.x = 480;
            vol_player_btn.y = mouseY;
        }
}

但是

出现了两个问题,这些问题告诉我我正在以错误的方式制作音量按钮 也许我需要帮助

这两个问题是

  1. 如何将音量与100,90,80等声音联系起来(我知道声音变换,但仍不知道如何将其与此按钮链接)

  2. 它可以像鼠标移动一样上下移动,是的,我知道我可以设置它 在函数和if(e.buttonDown)

  3. 中的类似内容

    if(mouseY小于我将随机猜测的数字) {然后做事情}

    但我所知道的是,这不是一种有效的方式,所以我很想听听你关于音量功能的想法

1 个答案:

答案 0 :(得分:1)

让我们从解决第二个问题开始。您希望实现上限和下限“上限”,以便音量按钮不会高于或低于某个高度。很简单:

if (e.buttonDown) {
            vol_player_btn.x = 480;
            vol_player_btn.y = mouseY;

            // Logic to keep button y value between a min and max value
            if(vol_player_btn.y > MAX_HEIGHT) 
                vol_player_btn.y = MAX_HEIGHT;
            if(vol_player_btn.y < MIN_HEIGHT) 
                vol_player_btn.y = MIN_HEIGHT;
        }

要解决第一个问题,您需要将按钮的高度范围(例如120到320)转换为典型的音量值(0到100)。您只需找到百分比即可完成此操作:

percentage = (vol_player_btn.y - MIN_HEIGHT) / (MAX_HEIGHT - MIN_HEIGHT)

使用上面的等式,如果按钮高度处于最低位置(例如y = 120px),则百分比将等于0.如果它处于最高位置(例如,y = 340),则百分比将等于100.在其中点(例如,y = 230)百分比将等于50,依此类推。