Как сделать простую перетаскиваемую кнопку громкости, которая правильно работает? я исследовал, но не могу найти эффективный способ

Я всегда пытаюсь сделать простой звуковой проигрыватель, который также имеет регулировку громкости, но я не могу понять, как связать его с громкостью звука,

я сделал кнопку, которую можно перетаскивать, но я хотел установить ее максимум 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)

если (mouseY меньше, чем число, которое я угадаю случайным образом) {тогда делаем то, что нужно}

Но я знаю, что это неэффективный способ, поэтому я буду рад услышать ваши идеи о функциональности громкости.


person Hamza Tatheer    schedule 15.11.2013    source источник


Ответы (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 = 120 пикселей), процент будет равен 0. Если она самая высокая (например, y = 340), процент будет равен 100. В средней точке (например, y = 230) процент будет равен 50 и так далее.

person Simon McArdle    schedule 15.11.2013