ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.events 

SampleDataEvent  - AS3

Paketflash.events
Klassepublic class SampleDataEvent
VererbungSampleDataEvent Inheritance Event Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Wird abgesetzt, wenn ein Sound-Objekt neue Audiodaten anfordert oder wenn ein Microphone-Objekt neue Audiodaten bereitstellt.

Dieses Ereignis hat zwei Verwendungen:

  • Um dynamisch generierte Audiodaten für ein Sound-Objekt bereitzustellen
  • Um Audiodaten für ein Microphone-Objekt abzurufen

Dynamisches Generieren von Audio mit dem Sound-Objekt Verwenden Sie das sampleData-Ereignis, um dynamisch generiertes Audio abzuspielen. In dieser Umgebung enthält das Sound-Objekt keine Sounddaten an sich. Es fungiert stattdessen als Socket für Sounddaten, die zum Objekt gestreamt werden. Das Streamen erfolgt mittels einer Funktion, die Sie dem sampleData Ereignis zuweisen.

Sie verwenden in Ihrer Funktion die ByteArray.writeFloat()-Methode, um in die data-Eigenschaft des Ereignisses zu schreiben, die die Beispieldaten, die Sie abspielen möchten, enthält.

Wenn ein Sound-Objekt keine MP3-Datei geladen hat und Sie seine play()-Methode aufrufen, setzt das Objekt sampleData-Ereignisse ab, um Soundsamples anzufordern. Das Sound-Objekt fährt während der Wiedergabe damit fort, Ereignisse abzusetzen, bis Sie keine Daten mehr bereitstellen oder bis die stop()-Methode des SoundChannel-Objekts aufgerufen wird.

Die Wartezeit des Ereignisses unterscheidet sich von Plattform zu Plattform und kann sich in zukünftigen Versionen von Flash Player oder AIR ändern. Verlassen Sie sich nicht auf eine bestimmte Wartezeit. Berechnen Sie sie stattdessen mit ((SampleDataEvent.position/44.1) - SoundChannelObject.position).

Stellen Sie der data-Eigenschaft des SampleDataEvent-Objekts zwischen 2048 und 8192 Samples bereit. Um die beste Leistung zu erzielen, stellen Sie so viele Beispiele wie möglich zur Verfügung. Je weniger Beispiele Sie zur Verfügung stellen, desto wahrscheinlicher ist es, dass während des Abspielens Knackgeräusche und Ähnliches auftritt. Dies kann von Plattform zu Plattform unterschiedlich sein und in verschiedenen Situationen auftreten, zum Beispiel wenn die Browsergröße verändert wird. Wenn Sie Code schreiben, der mit nur 2.048 Beispielen auf einer Plattform funktioniert, kann es vorkommen, dass derselbe Code auf einer anderen Plattform nicht so gut funktioniert. Wenn Sie die geringst mögliche Wartezeit benötigen, überlegen Sie sich, ob Sie die Menge der Daten vom Benutzer auswählen lassen.

Wenn Sie weniger als 2.048 Samples bereitstellen, spielt das Sound-Objekt die verbleibenden Samples ab und stoppt dann die Wiedergabe, als wäre das Ende der Sounddatei erreicht, und generiert ein complete-Ereignis.

Sie können die extract()-Methode eines Sound-Objekts verwenden, um seine Sounddaten zu extrahieren, die Sie dann in den dynamischen Stream für die Wiedergabe schreiben können.

Wenn Sie das sampleData-Ereignis mit einem Sound-Objekt verwenden, sind als weitere Sound-Methoden nur noch extract() und play() aktiviert. Das Aufrufen anderer Methoden oder Eigenschaften verursacht eine Ausnahme aufgrund eines ungültigen Aufrufs („invalid call“). Alle Methoden und Eigenschaften des SoundChannel-Objekts sind nach wie vor aktiviert.

Erfassen von Mikrofonaudio Verwenden Sie das sampleDataEreignis, um Audiodaten von einem Mikrofon zu erfassen. Wenn Sie einen Ereignis-Listener für das sampleData-Ereignis hinzufügen, setzt das Microphone-Objekt das Ereignis ab, sobald Audiosamples verfügbar sind.

Verwenden Sie in der Ereignisprozedurfunktion die ByteArray.readFloat()-Methode, um die data-Eigenschaft des Ereignisses zu lesen, die die Sampledaten enthält. Das Ereignis enthält mehrere Samples, deshalb sollten Sie eine while-Schleife verwenden, um die verfügbaren Daten zu lesen:

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

Beispiele anzeigen

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedbubbles : Boolean
[schreibgeschützt] Gibt an, ob es sich bei dem Ereignis um ein Bubbling-Ereignis handelt.
Event
 Inheritedcancelable : Boolean
[schreibgeschützt] Gibt an, ob das mit dem Ereignis verknüpfte Verhalten verhindert werden kann.
Event
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
 InheritedcurrentTarget : Object
[schreibgeschützt] Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
Event
  data : ByteArray
Die Daten im Audiostream.
SampleDataEvent
 InheritedeventPhase : uint
[schreibgeschützt] Die aktuelle Phase im Ereignisablauf.
Event
  position : Number
Die Position der Daten im Audiostream.
SampleDataEvent
 Inheritedtarget : Object
[schreibgeschützt] Das Ereignis-Ziel.
Event
 Inheritedtype : String
[schreibgeschützt] Der Ereignistyp.
Event
Öffentliche Methoden
 MethodeDefiniert von
  
SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Erstellt ein Ereignisobjekt, das Informationen über Audiodatenereignisse enthält.
SampleDataEvent
  
[override] Erstellt eine Kopie des SampleDataEvent-Objekts und stellt den Wert aller Eigenschaften so ein, dass sie den Werten des Originals entsprechen.
SampleDataEvent
 Inherited
formatToString(className:String, ... arguments):String
Eine Dienstprogrammfunktion zur Implementierung der toString()-Methode in benutzerdefinierten ActionScript 3.0 Event-Klassen.
Event
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Überprüft, ob die preventDefault()-Methode bei dem Ereignis aufgerufen wurde.
Event
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Bricht das Standardverhalten eines Ereignisses ab, wenn dieses Verhalten abgebrochen werden kann.
Event
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Verhindert die Verarbeitung von Ereignis-Listenern im aktuellen Knoten und in Knoten, die dem aktuellen Knoten im Ereignisablauf nachfolgen.
Event
 Inherited
Verhindert die Verarbeitung von Ereignis-Listenern in Knoten, die dem aktuellen Knoten im Ereignisablauf nachfolgen.
Event
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
  
[override] Gibt einen String zurück, der alle Eigenschaften des SampleDataEvent-Objekts enthält.
SampleDataEvent
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Öffentliche Konstanten
 KonstanteDefiniert von
  SAMPLE_DATA : String = "sampleData"
[statisch] Definiert den Wert der type-Eigenschaft eines SampleDataEvent-Ereignisobjekts.
SampleDataEvent
Eigenschaftendetails

data

Eigenschaft
data:ByteArray

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Die Daten im Audiostream.



Implementierung
    public function get data():ByteArray
    public function set data(value:ByteArray):void

position

Eigenschaft 
position:Number

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Die Position der Daten im Audiostream.



Implementierung
    public function get position():Number
    public function set position(value:Number):void
Konstruktordetails

SampleDataEvent

()Konstruktor
public function SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Erstellt ein Ereignisobjekt, das Informationen über Audiodatenereignisse enthält. Ereignisobjekte werden Ereignis-Listenern als Parameter übergeben.

Parameter
type:String — Der Ereignistyp. Dieser Wert lautet Event.SAMPLE_DATA.
 
bubbles:Boolean (default = false) — Bestimmt, ob das Ereignisobjekt an der Bubbling-Phase des Ereignisablaufs teilnimmt.
 
cancelable:Boolean (default = false) — Bestimmt, ob das Ereignisobjekt abgebrochen werden kann.
 
theposition:Number (default = 0) — Die Position der Daten im Audiostream.
 
thedata:ByteArray (default = null) — Ein Bytearray mit Daten.
Methodendetails

clone

()Methode
override public function clone():Event

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Erstellt eine Kopie des SampleDataEvent-Objekts und stellt den Wert aller Eigenschaften so ein, dass sie den Werten des Originals entsprechen.

Rückgabewerte
Event — Ein neues SampleDataEvent-Objekt mit Eigenschaftswerten, die denen des Originals entsprechen.

toString

()Methode 
override public function toString():String

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Gibt einen String zurück, der alle Eigenschaften des SampleDataEvent-Objekts enthält. Der String liegt im folgenden Format vor:

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

Rückgabewerte
String — Ein String, der alle Eigenschaften des SampleDataEvent-Objekts enthält.
Konstantendetails

SAMPLE_DATA

Konstante
public static const SAMPLE_DATA:String = "sampleData"

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Definiert den Wert der type-Eigenschaft eines SampleDataEvent-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
positionDer Speicherort, an dem die Audiodaten bereitgestellt sind.

Verwandte API-Elemente

Sound_sampleDataExample.as

Das folgende Beispiel spielt eine einfache Sinuswelle ab.
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 ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.