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

SampleDataEvent  - AS3

Пакетflash.events
Классpublic class SampleDataEvent
НаследованиеSampleDataEvent Inheritance Event Inheritance Object

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Отправляется, когда объект Sound запрашивает новые аудиоданные или когда объект Microphone может предоставить новые аудиоданные.

Это событие может применяться двумя способами:

  • для предоставления динамически создаваемых аудиоданных объекту Sound;
  • для получения данных от объекта Microphone.

Динамическое создание аудио с помощью объекта Sound. Используйте событие sampleData для воспроизведения динамически создаваемого аудио. В данной среде объект Sound на самом деле не содержит звуковых данных. Вместо этого он выполняет функцию сокета для потока звуковых данных, направляемых ему при помощи функции, назначенной в качестве обработчика события sampleData.

В функции используется метод ByteArray.writeFloat() для записи в свойство data события, которое содержит отобранные для воспроизведения данные.

Если объект Sound не загрузил файл MP3, то при вызове его метода play() объект начинает отправлять события sampleData, запрашивая образцы звука. Объект Sound продолжает отправлять события в процессе воспроизведения звука, пока не прекращается передача данных или пока не будет вызван метод stop() объекта SoundChannel.

Время ожидания события варьируется от платформы к платформе и может измениться в будущих версиях Flash Player или AIR. Не следует привязывать программу к определенному времени ожидания. Вместо этого его следует вычислять по формуле ((SampleDataEvent.position/44.1) - SoundChannelObject.position).

Предоставьте от 2048 до 8192 образцов для свойства data объекта SampleDataEvent. Для лучшей производительности укажите как можно больше образцов. Чем меньше образцов вы укажете, тем больше вероятность возникновения звуковых помех во время воспроизведения. Однако этот принцип действует по-разному на разных платформах, и помехи могут возникнуть в различных ситуациях, например при изменении размера браузера. Вы можете написать код, который будет работать на одной платформе с 2048 образцами, но это не значит, что этот код будет работать так же хорошо на другой платформе. Если вам требуется как можно меньший период ожидания, предоставьте пользователям возможность выбирать объем данных.

Если указать менее 2048 образцов, объект Sound воспроизведет оставшиеся образцы и остановит звук, как будто был достигнут конец аудиофайла, создав событие complete

С помощью метода extract() объекта Sound можно извлечь его аудиоданные, которые затем можно записать в динамический поток для воспроизведения.

При использовании прослушивателя события sampleData с объектом Sound единственными доступными методами класса Sound являются extract() и play(). Вызов любых других методов или свойств приводит к возникновению исключения «недопустимый вызов». Все методы и свойства объекта SoundChannel остаются доступными.

Захват аудио из объекта Microphone Используйте событие sampleData для захвата аудиоданных с микрофона. При добавлении прослушивателя для события sampleData объект Microphone отправляет это событие, когда становятся доступны образцы звука.

В функции обработчика событий следует использовать метод ByteArray.readFloat() для чтения свойства data, содержащего данные образца. Событие будет содержать несколько образцов, поэтому следует использовать цикл while для чтения доступных данных.

var soundBytes:ByteArray = new ByteArray();
 while(event.data.bytesAvailable)
 {
      var sample:Number = event.data.readFloat();
      soundBytes.writeFloat(sample);
 }

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

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



Общедоступные свойства
 СвойствоОпределено
 Inheritedbubbles : Boolean
[только для чтения] Определяет, является ли событие событием восходящей цепочки.
Event
 Inheritedcancelable : Boolean
[только для чтения] Указывает, можно ли предотвратить поведение, связанное с событием.
Event
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
 InheritedcurrentTarget : Object
[только для чтения] Объект, активно обрабатывающий объект Event с помощью прослушивателя событий.
Event
  data : ByteArray
Данные в аудиопотоке.
SampleDataEvent
 InheritedeventPhase : uint
[только для чтения] Текущая фаза в потоке событий.
Event
  position : Number
Положение данных в аудиопотоке.
SampleDataEvent
 Inheritedtarget : Object
[только для чтения] Целевой объект события.
Event
 Inheritedtype : String
[только для чтения] Тип события.
Event
Общедоступные методы
 МетодОпределено
  
SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Создает объект события, содержащий данные о событиях звуковых данных.
SampleDataEvent
  
[переопределить] Создает копию объекта SampleDataEvent и задает значение каждого свойства, совпадающее с оригиналом.
SampleDataEvent
 Inherited
formatToString(className:String, ... arguments):String
Служебная функция для реализации метода toString() в пользовательских классах ActionScript 3.0 Event.
Event
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Проверяет, выполнялся ли для события вызова метода preventDefault().
Event
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Отменяет поведение по умолчанию для события, если такое поведение можно отменить.
Event
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Отменяет обработку прослушивателей событий в текущем узле, а также во всех узлах, которые следуют в потоке событий за текущим узлом.
Event
 Inherited
Отменяет обработку прослушивателей событий в узлах, которые следуют в потоке событий за текущим узлом.
Event
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
  
[переопределить] Возвращает строку, содержащую все свойства объекта SampleDataEvent.
SampleDataEvent
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Общедоступные константы
 КонстантаОпределено
  SAMPLE_DATA : String = "sampleData"
[статические] Задает значение свойства type для объекта события SampleDataEvent.
SampleDataEvent
Сведения о свойстве

data

свойство
data:ByteArray

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Данные в аудиопотоке.



Реализация
    public function get data():ByteArray
    public function set data(value:ByteArray):void

position

свойство 
position:Number

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Положение данных в аудиопотоке.



Реализация
    public function get position():Number
    public function set position(value:Number):void
Сведения о конструкторе

SampleDataEvent

()Конструктор
public function SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Создает объект события, содержащий данные о событиях звуковых данных. Объекты Event передаются прослушивателям событий в качестве параметров.

Параметры
type:String — Тип события. Этим значением является: Event.SAMPLE_DATA.
 
bubbles:Boolean (default = false) — Определяет, участвует ли объект Event в фазе восходящей цепочки потока событий.
 
cancelable:Boolean (default = false) — Определяет, можно ли отменить объект Event.
 
theposition:Number (default = 0) — Положение данных в аудиопотоке.
 
thedata:ByteArray (default = null) — Массив байт данных.
Сведения о методе

clone

()метод
override public function clone():Event

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Создает копию объекта SampleDataEvent и задает значение каждого свойства, совпадающее с оригиналом.

Возвращает
Event — Новый объект SampleDataEvent, значения свойств которого соответствуют значениям оригинала.

toString

()метод 
override public function toString():String

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Возвращает строку, содержащую все свойства объекта SampleDataEvent. Строка имеет следующий формат:

[SampleDataEvent type=value bubbles=value cancelable=value theposition=value thedata=value]

Возвращает
String — Строка, содержащая все свойства объекта SampleDataEvent.
Сведения о константе

SAMPLE_DATA

Константа
public static const SAMPLE_DATA:String = "sampleData"

Язык версии: ActionScript 3.0
Версии среды выполнения: Flash Player 10, AIR 1.5

Задает значение свойства type для объекта события SampleDataEvent.

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

СвойствоЗначение
bubblesfalse
cancelablefalse; поведение по умолчанию, подлежащее отмене, не определено.
positionТочка, из которой поступают аудиоданные.

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

Sound_sampleDataExample.as

Следующий пример воспроизводит простую гармоническую волну.
var mySound:Sound = new Sound();
function sineWaveGenerator(event:SampleDataEvent):void {
    for ( var c:int=0; c<8192; c++ ) {
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
        event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25);
    }
}

mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator);
mySound.play();




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

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