Функциональность кнопки «Стоп» в режиме BUFFERING_STATE_ENTERED - PullRequest
0 голосов
/ 02 декабря 2011

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

У меня такое чувство, что мои проблемы в конечном итоге можно исправить с помощью прослушивателя BUFFERING_STATE_ENTERED.

Есть ли хороший способ отключить все кнопки на экране, когда BUFFERING_STATE_ENTERED активен, и снова включить все после завершения BUFFERING_STATE_ENTERED?

// В БЫСТРОМ ИСПРАВЛЕНИИ Я ЗАГРУЗИЮ ПРОЗРАЧНОЕ ИЗОБРАЖЕНИЕ НА МОЮ КНОПКУ И УДАЛЯЮ ИЗОБРАЖЕНИЕ НА СТАРТЕ, СНИМАЯ ЭТО ВЕРНУТЬСЯ, КОГДА ПОЛЬЗОВАТЕЛЬ ВЫБИРАЕТ НОВОЕ ВИДЕО, И ЭТО ПРОХОДИТ В BUFFER_STATE_ENTERED. ЭТО БУДЕТ ИХ ОТ УДАРНЫЕ КНОПКИ. ЭТО НЕ БЫЛО ОСТАВЛЕНО ПОСТОЯННЫМ. **

var ButtonBlock:empty_png = new empty_png;
ButtonBlock.x = 1550;
my_player.addEventListener(VideoEvent.BUFFERING_STATE_ENTERED, bufferPlay);
function bufferPlay(e:VideoEvent):void {
        trace("IN BUFFER");
        addChild(ButtonBlock);
}   
my_player.addEventListener(VideoEvent.PLAYING_STATE_ENTERED, startPlay);
function startPlay(e:VideoEvent):void {


        if(ButtonBlock)
            {
            removeChild(ButtonBlock);
            }
}

Ответы [ 3 ]

1 голос
/ 02 декабря 2011

В зависимости от количества кнопок, которые у вас есть на сцене в данный момент времени, вам лучше всего будет отключить каждую из них по отдельности:

buttonName.mouseEnabled = false; // disable the button
buttonName.mouseChildren = false; // disable any subclips to prevent them from also receiving clicks

Если вы действительно хотите принять драконовскую меру отключенияВСЕ кнопки, вы можете использовать ...

stage.mouseChildren = false;
1 голос
/ 02 декабря 2011

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

Если у вас есть несколько кнопок, по одной для каждого видео, я бы предложил просто иметь логическое значение, которое проверяет каждая кнопка, прежде чем что-либо делать при нажатии. Давайте назовем это loadingVideo.

if(!loadingVideo) {
    loadingVideo = true;
    //(button's actions here)
} else {
    //(maybe a warning message here)
}

После инициализации видео (возможно, VideoEvent.PLAYING_STATE_ENTERED) вам нужно снова установить для loadingVideo значение false. Таким образом, если ваш пользователь хочет изменить видео, он может.

0 голосов
/ 02 декабря 2011

звучит так, как будто вы используете несколько видео активов.почему бы просто не использовать один актив видео для всех видео?вот почему вы никогда не сможете играть двумя игроками одновременно.

...