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



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

我确实制作了一个可以拖动的按钮,但我想设置它的最大 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)内部都有这样的东西

如果(鼠标Y小于我会随机猜测的数字){然后做事情}

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

让我们从解决第二个问题开始。您希望实现上下"上限",以便音量按钮不能高于或低于某个高度。做起来非常简单:

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,依此类推。

最新更新