Actionscript: остановка звука в Adobe Flash CS4 - PullRequest
0 голосов
/ 24 января 2012

Я бы хотел остановить определенный звук в CS4, не останавливая все звуки одновременно. Было бы здорово иметь что-то простое, что я могу копировать и вставлять, так как я много раз искал ответ на этот вопрос и получил много болтовни, которая не сработала. Спасибо!

Ответы [ 2 ]

2 голосов
/ 24 января 2012

Какую версию ActionScript вы используете, AS2 или AS3?

Как вы воспроизводите свой звук?Это сидит в ключевом кадре на временной шкале?Используете ли вы Actionscript для импорта и воспроизведения из библиотеки?

(Изменить с помощью кода временной шкалы)

ОК, если он на временной шкале, вам потребуется использовать ActionScript для его воспроизведения,чтобы потом можно было по отдельности нацелиться на него, чтобы остановить его.

Сначала перейдите в свою библиотеку, щелкните правой кнопкой мыши по своему звуку и отредактируйте его свойства.Вы хотите экспортировать его для ActionScript и дать ему уникальный идентификатор ActionScript, что-то вроде «MyGreatSound».Без пробелов и т. Д., Только одно слово.

Уберите свой звук из ключевого кадра.

Затем создайте ключевой кадр в слое действий, который соответствует началу вашего звука, и вставьте его в него;(предполагается, что вы дали своему звуку в библиотеке идентификатор «MyGreatSound»)

var myChannel:SoundChannel = new SoundChannel();
var mySound:Sound = new MyGreatSound(); 
myChannel = mySound.play(0);

Это будет воспроизводить ваш звук, как и раньше.

Чтобы остановить его, создайте другой ключевой кадр, соответствующийк точке на временной шкале, где вы хотите, чтобы звук прекратился.

Вставьте следующее;

myChannel.stop();

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

Вот еще несколько примеров: http://www.republicofcode.com/tutorials/flash/as3sound/

0 голосов
/ 24 января 2012

Посмотрите на SoundChannel.stop().

Приведен пример кода, который вы можете использовать и изменить:

package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.events.MouseEvent;
    import flash.text.TextFieldAutoSize;

    public class SoundChannel_stopExample extends Sprite {
        private var snd:Sound = new Sound();
        private var channel:SoundChannel = new SoundChannel();
        private var button:TextField = new TextField();

        public function SoundChannel_stopExample() {
            var req:URLRequest = new URLRequest("MySound.mp3");
            snd.load(req);

            button.x = 10;
            button.y = 10;
            button.text = "PLAY";
            button.border = true;
            button.background = true;
            button.selectable = false;
            button.autoSize = TextFieldAutoSize.CENTER;

            button.addEventListener(MouseEvent.CLICK, clickHandler);

            this.addChild(button);
        }

        private function clickHandler(e:MouseEvent):void {
            var pausePosition:int = channel.position;

            if(button.text == "PLAY") {
                channel = snd.play(pausePosition);
                button.text = "PAUSE";
            } 
            else {
                channel.stop();
                button.text = "PLAY";
            }
        }
    }
}

Источник: Adobe Livedocs - flash.media.SoundChannel

По сути, вы назначаете Sound своему SoundChannel, а затем останавливаете весь канал (не сам звук).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...