Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
flash.media 

SoundChannel  - AS3

Пакетflash.media
Классpublic final class SoundChannel
НаследованиеSoundChannel Inheritance EventDispatcher Inheritance Object

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Класс «SoundChannel» управляет звуком в приложении. Каждому звуку назначается звуковой канал, и приложение может иметь несколько смешанных между собой звуковых каналов. Класс SoundChannel содержит метод stop(), свойства для отслеживания амплитуды (громкости) канала и свойство для назначения объекта SoundTransform каналу.

Посмотреть примеры

Связанные элементы API



Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  leftPeak : Number
[только для чтения] Текущая амплитуда (громкость) левого канала от 0 (тишина) до 1 (полная амплитуда).
SoundChannel
  position : Number
[только для чтения] Во время воспроизведения звука свойство position показывает (в миллисекундах) текущую точку воспроизведения в звуковом файле.
SoundChannel
  rightPeak : Number
[только для чтения] Текущая амплитуда (громкость) правого канала от 0 (тишина) до 1 (полная амплитуда).
SoundChannel
  soundTransform : flash.media:SoundTransform
Объект SoundTransform, назначенный для данного звукового канала.
SoundChannel
Общедоступные методы
 МетодОпределено
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии.
EventDispatcher
 Inherited
Посылает событие в поток событий.
EventDispatcher
 Inherited
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Останавливает воспроизведение звука в канале.
SoundChannel
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным.EventDispatcher
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным.EventDispatcher
  Отправляется после завершения воспроизведения звука.SoundChannel
Сведения о свойстве

leftPeak

свойство
leftPeak:Number  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Текущая амплитуда (громкость) левого канала от 0 (тишина) до 1 (полная амплитуда).



Реализация
    public function get leftPeak():Number

position

свойство 
position:Number  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Во время воспроизведения звука свойство position показывает (в миллисекундах) текущую точку воспроизведения в звуковом файле. Когда звук останавливается или приостанавливается, свойство position показывает последнюю воспроизведенную точку в звуковом файле.

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

Если звук воспроизводится циклично, значение свойства position сбрасывается на 0 в начале каждого цикла.



Реализация
    public function get position():Number

rightPeak

свойство 
rightPeak:Number  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Текущая амплитуда (громкость) правого канала от 0 (тишина) до 1 (полная амплитуда).



Реализация
    public function get rightPeak():Number

soundTransform

свойство 
soundTransform:flash.media:SoundTransform

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

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



Реализация
    public function get soundTransform():flash.media:SoundTransform
    public function set soundTransform(value:flash.media:SoundTransform):void

Связанные элементы API

Сведения о методе

stop

()метод
public function stop():void

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Останавливает воспроизведение звука в канале.


Пример  ( Использование этого примера )

В следующем примере пользователь может приостановить звуковой файл и повторно воспроизвести его.

Конструктор загружает звуковой файл. (В данном примере предполагается, что файл находится в том же каталоге, что и SWF-файл.) Текстовое поле используется в качестве кнопки, нажатием которой пользователь может начать или приостановить воспроизведение. Когда пользователь щелкает текстовое поле button, запускается метод clickHandler().

В методе clickHandler() при первом щелчке по текстовому полю начинается воспроизведение звука и назначается звуковой канал. Затем, когда пользователь щелкает текстовое поле, чтобы поставить звук на паузу, воспроизведение останавливается. Свойство position звукового канала записывает положение звука на момент остановки. Это свойство используется для возобновления воспроизведения с того же положения, когда пользователь снова щелкнет текстовое поле, чтобы снять звук с паузы. Каждый раз при вызове метода Sound.play() создается новый объект SoundChannel, и ему назначается переменная channel. Объект Sound должен быть назначен объекту 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";
            }
        }
    }
}
Сведения о событии

soundComplete

Событие
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.SOUND_COMPLETE

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9, Flash Lite 4

Отправляется после завершения воспроизведения звука.

Константа Event.SOUND_COMPLETE определяет значение свойства type объекта события soundComplete.

Это событие имеет следующие свойства:

СвойствоЗначение
bubblesfalse
cancelablefalse; поведение по умолчанию, подлежащее отмене, не определено.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект SoundChannel, в котором завершилось воспроизведение звука.

Пример  ( Использование этого примера )

В следующем примере пользователь выбирает песни из списка воспроизведения, а затем нажимает кнопку «Воспроизведение», чтобы прослушать их в выбранном порядке.

В конструкторе определяется текстовое поле, которое содержит список песен и строку для каждого элемента, выбранного для воспроизведения. (Как правило, для воспроизведения используются кнопки, а для списка песен — окна списков.) Определяется объект формата текста, который изменяет формат строк выбранных песен на курсив. Когда пользователь щелкает текстовое поле, запускается метод clickHandler().

В методе clickHandler() метод getLineIndexAtPoint() объекта текстового поля возвращает индекс строки, которую щелкнул пользователь. Используя индекс строки, метод getLineText() получает содержимое текста. Инструкция if проверяет, выбрал ли пользователь песню для воспроизведения или для добавления в список воспроизведения. Если пользователь выбрал песню для воспроизведения, прослушиватель событий щелчка мыши удаляется, и вызывается метод playNext() для начала воспроизведения. Если пользователь выделил название песни, содержимое строки добавляется в массив songList и формат текста меняется на курсив.

Метод playNext() повторяется для загрузки и воспроизведения каждой песни в списке массива. Песне также назначается звуковой канал. Для звукового канала добавляется прослушиватель событий, реагирующий на завершение воспроизведения песни и отправку события Event.SOUND_COMPLETE. Затем метод soundCompleteHandler() вызывает метод playNext() для воспроизведения следующей песни. Этот процесс продолжается, пока не завершится воспроизведение всех песен, перечисленных в массиве.

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

    public class SoundChannel_event_soundCompleteExample extends Sprite {
        private var channel:SoundChannel = new SoundChannel();
        private var songList:Array = new Array();
        private var listTextField:TextField = new TextField();
        private var songFormat:TextFormat = new TextFormat();
        private var arrayIndex:int = 0;
        private var songSelected:Boolean = false;
        
        public function SoundChannel_event_soundCompleteExample() {
            
            listTextField.autoSize = TextFieldAutoSize.LEFT;
            listTextField.border = true
            listTextField.background = true;
            listTextField.text = "Song1.mp3\n" + "Song2.mp3\n" 
                                + "Song3.mp3\n" + "Song4.mp3\n" + "PLAY";
        
            songFormat.italic = true;
 
            listTextField.addEventListener(MouseEvent.CLICK, clickHandler);
                        
            addChild(listTextField);
        }
        
        private function clickHandler(e:MouseEvent):void {
            var index:int = listTextField.getLineIndexAtPoint(e.localX, e.localY);
            var line:String = listTextField.getLineText(index);
            var firstIndex:uint = listTextField.getLineOffset(index);
            var playLine:uint = listTextField.numLines - 1;

                if((index == playLine) && (songSelected == true)) {
                    listTextField.removeEventListener(MouseEvent.CLICK, clickHandler);
                    playNext();       

                } else if (index != playLine) {
                     songList.push(line.substr(0, (line.length - 1)));
                     listTextField.setTextFormat(songFormat, firstIndex, 
                                (firstIndex + listTextField.getLineLength(index)));     
                    songSelected = true;
                 }
        }

        private function playNext():void {
 
             if(arrayIndex < songList.length) {
                var snd:Sound = new Sound();
                snd.load(new URLRequest(songList[arrayIndex]));
                channel = snd.play();
                
                channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
                arrayIndex++;
 
            } else {
                songSelected = false;
                    
                while(arrayIndex > 0) {
                    songList.pop();
                    arrayIndex--;
                }
            }
        }    

        private function soundCompleteHandler(e:Event):void {
            playNext();
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            trace(errorEvent.text);
        }
    }
}
SoundChannelExample.as

В следующем примере загружается и воспроизводится МР3-файл, а также отображаются данные о звуковых событиях, которые происходят по мере загрузки и воспроизведения файла. Объект Timer передает обновленную информацию о положении точки воспроизведения каждые 50 миллисекунд. Чтобы запустить данный пример, поместите файл MySound.mp3 в тот каталог, где находится рассматриваемый SWF-файл.
package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLRequest;
    import flash.utils.Timer;

    public class SoundChannelExample extends Sprite {
        private var url:String = "MySound.mp3";
        private var soundFactory:Sound;
        private var channel:SoundChannel;
        private var positionTimer:Timer;

        public function SoundChannelExample() {
            var request:URLRequest = new URLRequest(url);
            soundFactory = new Sound();
            soundFactory.addEventListener(Event.COMPLETE, completeHandler);
            soundFactory.addEventListener(Event.ID3, id3Handler);
            soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            soundFactory.load(request);

            channel = soundFactory.play();
            channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);

            positionTimer = new Timer(50);
            positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler);
            positionTimer.start();
        }
        

        private function positionTimerHandler(event:TimerEvent):void {
            trace("positionTimerHandler: " + channel.position.toFixed(2));
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function id3Handler(event:Event):void {
            trace("id3Handler: " + event);
        }

        private function ioErrorHandler(event:Event):void {
            trace("ioErrorHandler: " + event);
            positionTimer.stop();       
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: " + event);
        }

        private function soundCompleteHandler(event:Event):void {
            trace("soundCompleteHandler: " + event);
            positionTimer.stop();
        }
    }
}




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.