Как использовать событие клавиатуры для воспроизведения звука с помощью URL-запроса? - PullRequest
0 голосов
/ 29 июня 2018

У меня есть базовый код, в котором я щелкаю значок, используя событие мыши, чтобы получить URL с потоковым радио для запуска и остановки, но я хочу сделать его событием клавиатуры. Я не знаю, как это сделать. Я использую Adobe Animate. Я знаю, как заставить символ исчезать, используя команды keyup / keydown, но я не знаю, как назначить событие клавиатуры вместо события мыши. Конечным результатом является радио, где я могу переключаться между каждой станцией, нажимая назначенные буквы на клавиатуре. это мой код:

button_1.addEventListener(MouseEvent.CLICK, fl_ClickToPlayStopSound_4);

var fl_SC_4:SoundChannel;


var fl_ToPlay_4:Boolean = true;

function fl_ClickToPlayStopSound_4(evt:MouseEvent):void
{
    if(fl_ToPlay_4)
    {
        var s:Sound = new Sound(new URLRequest("http://64.71.79.181:5234/stream"));
        fl_SC_4 = s.play();
    }
    else
    {
        fl_SC_4.stop();
    }
    fl_ToPlay_4 = !fl_ToPlay_4;
}

1 Ответ

0 голосов
/ 30 июня 2018

Вам необходимо прослушивать события клавиатуры на уровне stage (потому что все эти события в конечном итоге переходят на stage ). Найдите класс Keyboard для ссылок на коды клавиш. Помните, что события клавиатуры будут вызывать обработчик только в том случае, если объект Flash (например, в браузере) имеет фокус ввода (например, сначала нужно щелкнуть его).

var SU:String;
var SA:Sound;
var SC:SoundChannel;

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey);

function onKey(e:KeyboardEvent):void
{
    // Use trace to get the actual key keycodes or charcodes.
    trace(e.keyCode, e.charCode);

    // After you have all the keys, you need to
    // associate keys with the audio streams.

    var audioURL:String;

    switch (e.keyCode)
    {
        case Keyboard.A:
            audioURL = "audioa.mp3";
            break;

        case Keyboard.B:
            audioURL = "audiob.mp3";
            break;
    }

    // Clean up previous audio.
    if (SC) SC.stop();
    if (SA) SA.close();

    SA = null;
    SC = null;

    // Toggle sound logic.
    if (SU == audioURL)
    {
        SU = null;
    }
    else
    {
        SU = audioURL;
        SA = new Sound(new URLRequest(SU));
        SC = SA.play();
    }
}
...