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.system 

MessageChannel  - AS3

Paketflash.system
Klassepublic final class MessageChannel
VererbungMessageChannel Inheritance EventDispatcher Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Die MessageChannel-Klasse stellt einem Worker eine Möglichkeit bereit, mit einem anderen Worker zu kommunizieren. Ein Nachrichtenkanal ist ein unidirektionaler Kommunikationskanal. Der sendende Worker verwendet den Nachrichtenkanal, um Objekte an den empfangenden Worker zu senden. Ein MessageChannel-Objekt ist die einzige Möglichkeit, eine Nachricht zwischen Workern zu senden, die ein Ereignis absetzt, um dem Empfänger mitzuteilen, dass eine Nachricht verfügbar ist. Andere Mechanismen zum Teilen von Daten lassen zwar das Festlegen eines Werts fest, stellen aber kein Ereignis bereit, um Sie über die geänderten Daten zu informieren.

Jedes MessageChannel-Objekt enthält eine Warteschlange mit Nachrichtenobjekten, die vom sendenden Worker an den empfangenden Worker gesendet werden. Mit jedem Aufruf von send() wird der Warteschlange ein Objekt hinzugefügt. Mit jedem Aufruf von receive() wird das älteste Nachrichtenobjekt aus der Warteschlange abgerufen.

Sie erstellen MessageChannel-Instanzen nicht direkt, indem Sie den MessageChannel()-Konstruktor aufrufen. Um eine MessageChannel-Instanz zu erstellen, rufen Sie die createMessageChannel()-Methode des Worker-Objekts auf, das Nachrichten über den Kanal sendet, und übergeben Sie dabei das empfangende Worker-Objekt als Argument.

So sieht der typische Arbeitsablauf beim Senden von Nachrichten mit einem MessageChannel-Objekt aus:

  1. Rufen Sie die createMessageChannel()-Methode des sendenden Workers auf, um den Nachrichtenkanal zu erstellen

        // In the sending worker swf
        var sendChannel:MessageChannel;
        sendChannel = Worker.current.createMessageChannel(receivingWorker);
  2. Übergeben Sie den Nachrichtenkanal an einen anderen Worker, entweder indem Sie Worker.setSharedProperty() aufrufen oder indem Sie ihn über einen vorhandenen Nachrichtenkanal senden

        receivingWorker.setSharedProperty("incomingChannel", sendChannel);
  3. Code im empfangenden Worker registriert einen Listener beim MessageChannel-Objekt für das channelMessage-Ereignis

        // In the receiving worker swf
        var incomingChannel:MessageChannel;
        incomingChannel = Worker.current.getSharedProperty("incomingChannel");
        incomingChannel.addEventListener(Event.CHANNEL_MESSAGE, handleIncomingMessage);
  4. Code im sendenden Worker sendet eine Nachricht, indem die send()-Methode aufgerufen wird

        // In the sending worker swf
        sendChannel.send("This is a message");
  5. Die Laufzeitumgebung ruft die Ereignisprozedur im Code des empfangenden Workers auf und zeigt damit an, dass eine Nachricht gesendet wurde

        // In the receiving worker swf
        // This method is called when the message channel gets a message
        private function handleIncomingMessage(event:Event):void
        {
            // Do something with the message, as shown in the next code listing
        }
  6. Code im empfangenden Worker ruft die receive()-Methode auf, um die Nachricht abzurufen. Das von der receive()-Methode zurückgegebene Objekt weist denselben Datentyp auf wie das Objekt, das an die send()-Methode übergeben wurde.

        var message:String = incomingChannel.receive() as String;

Neben dem oben beschriebenen asynchronen Arbeitsablauf können Sie auch einen alternativen Arbeitsablauf mit der receive()-Methode verwenden, um den Code im empfangenden Worker anzuhalten und zu warten, bis eine Nachricht gesendet wird. Weitere Informationen hierzu finden Sie in der Beschreibung der receive()-Methode.

Die MessageChannel-Klasse ist eine der besonderen Objekttypen, die von Workern gemeinsam benutzt werden, anstatt dass sie zwischen ihnen kopiert werden. Wenn Sie einen Nachrichtenkanal von einem Worker an einen anderen übergeben, indem Sie entweder die setSharedProperty()-Methode des Worker-Objekts aufrufen oder ein MessageChannel-Objekt verwenden, verweisen beide Worker auf dasselbe MessageChannel-Objekt im Arbeitsspeicher der Laufzeitumgebung.

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  messageAvailable : Boolean
[schreibgeschützt] Gibt an, ob der MessageChannel eine oder mehrere Nachrichten vom sendenden Worker in seiner internen Warteschlange hat.
MessageChannel
  state : String
[schreibgeschützt] Gibt den aktuellen Zustand des MessageChannel-Objekts an (geöffnet, schließend oder geschlossen).
MessageChannel
Öffentliche Methoden
 MethodeDefiniert von
  
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
[override] Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
MessageChannel
  
Weist den aktuellen MessageChannel an, zu schließen, sobald alle Meldungen empfangen wurden.
MessageChannel
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
  
receive(blockUntilReceived:Boolean = false):*
Ruft ein einzelnes Nachrichtenobjekt aus der Warteschlange mit Nachrichten ab, die über diesen Nachrichtenkanal gesendet wurden.
MessageChannel
  
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
[override] Entfernt einen Listener aus dem EventDispatcher-Objekt.
MessageChannel
  
send(arg:*, queueLimit:int = -1):void
Sendet ein Objekt vom sendenden Worker und fügt es der Nachrichtenwarteschlange für den empfangenden Worker hinzu.
MessageChannel
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
  
[override] Gibt das angegebene Objekt als String zurück.
MessageChannel
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 Ereignis Übersicht Definiert von
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
  Wird jedes Mal abgesetzt, wenn der sendende Worker die send()-Methode dieses MessageChannel-Objekts aufruft und damit anzeigt, dass in der Warteschlange der MessageChannel-Instanz ein neues Nachrichtenobjekt verfügbar ist.MessageChannel
  Wird abgesetzt, wenn sich der Wert der state-Eigenschaft des Nachrichtenkanals ändert.MessageChannel
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird.EventDispatcher
Eigenschaftendetails

messageAvailable

Eigenschaft
messageAvailable:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Gibt an, ob der MessageChannel eine oder mehrere Nachrichten vom sendenden Worker in seiner internen Warteschlange hat.



Implementierung
    public function get messageAvailable():Boolean

state

Eigenschaft 
state:String  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Gibt den aktuellen Zustand des MessageChannel-Objekts an (geöffnet, schließend oder geschlossen). Die möglichen Werte dieser Eigenschaft sind als Konstanten in der MessageChannelState-Klasse definiert.



Implementierung
    public function get state():String

Verwandte API-Elemente

Methodendetails

addEventListener

()Methode
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. Sie können Ereignis-Listener bei allen Knoten in der Anzeigeliste für eine bestimmte Art von Ereignis, Phase oder Priorität registrieren.

Nachdem Sie einen Ereignis-Listener erfolgreich registriert haben, können Sie seine Priorität nicht durch weitere Aufrufe von addEventListener() ändern. Um die Priorität eines Listeners zu ändern, müssen Sie zunächst removeListener() aufrufen. Anschließend können Sie den Listener mit der neuen Prioritätsstufe erneut aufrufen.

Nach der Registrierung des Listeners haben nachfolgende Aufrufe von addEventListener() mit einem anderen type- oder useCapture-Wert eine separate Listener-Registrierung zur Folge. Wenn Sie beispielsweise zuerst einen Listener registrieren, für den useCapture auf true gesetzt ist, wird dieser nur während der Aufnahmephase aktiv sein. Wenn Sie addEventListener() für dasselbe Listener-Objekt erneut aufrufen, diesmal aber useCapture auf false gesetzt ist, werden zwei separate Listener angelegt: einer, der während der Aufnahmephase aktiv ist und ein zweiter, der während der Ziel- und Bubbling-Phase aktiv ist.

Sie können einen Ereignis-Listener nicht nur für die Ziel- oder Bubbling-Phase registrieren. Die beiden Phasen hängen während der Registrierung immer zusammen, da Bubbling nur für übergeordnete Elemente des Zielknotens gilt.

Wenn Sie einen Ereignis-Listener nicht mehr brauchen, entfernen sie ihn, indem Sie removeEventListener() aufrufen. Andernfalls könnte es zu Speicherproblemen kommen. Ereignis-Listener werden nicht automatisch aus dem Speicher entfernt, da der Garbage Collector den Listener nicht entfernt, solange das auslösende Objekt vorhanden ist (sofern der useWeakReference-Parameter auf true gesetzt ist).

Beim Kopieren einer EventDispatcher-Instanz werden zugewiesene Ereignis-Listener nicht kopiert. (Wenn ein neu angelegter Knoten einen Ereignis-Listener benötigt, müssen Sie den Listener nach dem Erstellen des Knotens zuweisen.) Wenn Sie jedoch eine EventDispatcher-Instanz verschieben, werden zugewiesene Ereignis-Listener ebenfalls verschoben.

Wenn der Ereignis-Listener bei einem Knoten registriert wird, während mit diesem Knoten ein Ereignis durchgeführt wird, so wird der Ereignis-Listener während der aktuellen Phase nicht ausgelöst, kann aber während einer späteren Phase im Ereignisablauf ausgelöst werden, etwa während der Bubbling-Phase.

Wird ein Ereignis-Listener von einem Knoten entfernt, während mit dem Knoten ein Ereignis durchgeführt wird, so wird er von den aktuellen Aktionen immer noch ausgelöst. Nachdem er entfernt worden ist, wird der Ereignis-Listener nicht wieder aufgerufen (es sei denn er wird für spätere Verarbeitungsvorgänge erneut aufgerufen).

Parameter

type:String — Der Ereignistyp.
 
listener:Function — Die Listener-Funktion, die das Ereignis verarbeitet. Diese Funktion muss ein Ereignisobjekt als einzigen Parameter akzeptieren und darf keinen Wert zurückgeben, wie das nachfolgende Beispiel zeigt:
function(evt:Event):void

Der Name der Funktion ist beliebig.

 
useCapture:Boolean (default = false)Bestimmt, ob der Listener in der Erfassungsphase oder in der Ziel- und Bubbling-Phase arbeitet. Ist useCapture auf true gesetzt, so verarbeitet der Listener das Ereignis nur während der Erfassungsphase und nicht während der Ziel- oder Bubbling-Phase. Hat useCapture hingegen den Wert false, verarbeitet der Listener das Ereignis nur während der Ziel- oder Bubbling-Phase. Um auf das Ereignis in allen drei Phasen zu warten, rufen Sie addEventListener() zweimal auf; einmal ist useCapture auf true gesetzt, und beim zweiten Mal hat useCapture den Wert false.
 
priority:int (default = 0) — Die Prioritätsstufe des Ereignis-Listeners. Die Priorität wird durch eine vorzeichenbehaftete 32-Bit-Ganzzahl zugewiesen. Je höher die Zahl, desto höher die Priorität. Alle Listener mit der Priorität n werden vor Listenern mit der Priorität n -1 verarbeitet. Wenn zwei oder mehr Listener die gleiche Priorität aufweisen, werden sie in der Reihenfolge verarbeitet, in der sie hinzugefügt wurden. Die Standardpriorität ist 0.
 
useWeakReference:Boolean (default = false) — Bestimmt, ob der Verweis auf den Listener stark oder schwach ist. Ein starker Verweis (der Standard) verhindert, dass der Listener von einem Garbage Collector entfernt wird. Ein schwacher Verweis hingegen nicht.

Funktionen von Mitgliedern auf Klassenebene werden nicht vom Garbagekollektor entfernt. Daher können Sie useWeakReference für Mitgliedsfunktionen auf Klassenebene auf true setzen, ohne dass sie vom Garbagekollektor entfernt werden. Wenn Sie useWeakReference auf true setzen bei einem Listener, der eine verschachtelte innere Funktion ist, wird die Funktion vom Garbagekollektor entfernt. Indem Sie Verweise auf die innere Funktion erstellen (d. h sie in einer anderen Variable speichern), umgehen Sie die Garbage Collection, sodass die Funktion permanent gespeichert bleibt.

close

()Methode 
public function close():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Weist den aktuellen MessageChannel an, zu schließen, sobald alle Meldungen empfangen wurden.

Wenn Sie diese Methode einmal aufgerufen haben, können Sie nicht länger die send()-Methode aufrufen, um der Warteschlange Nachrichten hinzuzufügen. Der send()-Aufruf wird fehlschlagen und false zurückgeben.

Des Weiteren können Sie die receive()-Methode nur aufrufen, um Nachrichten abzurufen, die sich bereits in der Warteschlange befinden. Wenn die Warteschlange leer ist, gibt der receive()-Aufruf null zurück.


Ereignisse
channelState:Event — wird abgesetzt, wenn die close()-Methode aufgerufen wird (wodurch die state-Eigenschaft auf MessageChannelState.CLOSING gesetzt wird). Wird erneut abgesetzt, wenn alle Nachrichten empfangen wurden und die state-Eigenschaft auf MessageChannelState.CLOSED gesetzt wird.

receive

()Methode 
public function receive(blockUntilReceived:Boolean = false):*

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Ruft ein einzelnes Nachrichtenobjekt aus der Warteschlange mit Nachrichten ab, die über diesen Nachrichtenkanal gesendet wurden.

Jedes Mal, wenn der Code des sendenden Workers die send()-Methode des MessageChannel-Objekts aufruft, wird der internen Warteschlange des Nachrichtenkanals ein einzelnes Objekt hinzugefügt. Diese Objekte sammeln sich in der Warteschlange, bis sie einzeln entfernt werden, wenn der empfangende Worker die receive()-Methode aufruft. Die Nachrichtenobjekte werden in derselben Reihenfolge empfangen, in der sie gesendet werden.

Um zu überprüfen, ob die Warteschlange ein Nachrichtenobjekt enthält, das empfangen werden kann, verwenden Sie die messageAvailable-Eigenschaft.

Normalerweise wird das an send() übergebene Objekt im AMF3-Format serialisiert. Wenn es durch den receive()-Aufruf aus der Warteschlange entfernt wird, wird es im empfangenden Worker in ein ActionScript-Objekt serialisiert (eine Kopie des Originalobjekts) und der Worker erhält einen Verweis auf diese Kopie. Bestimmte Objekttypen werden nicht kopiert, sondern von Workern gemeinsam genutzt. In diesem Fall ist das Objekt, das der empfangende Worker erhält, keine neue Kopie des Objekts, sondern ein Verweis auf das gemeinsam genutzte Objekt. Weitere Informationen zu diesem Fall finden Sie in der Beschreibung der send()-Methode.

Das Verhalten der Methode ändert sich, wenn die Nachrichtenwarteschlange leer ist und Sie true für den blockUntilReceived-Parameter übergeben. In diesem Fall unterbricht der Worker seinen Ausführungsthread beim Aufruf von receive() und führt keinen weiteren Code aus. Wenn der sendende Worker send() aufruft, wird der receive()-Aufruf durch den Empfang der Nachricht abgeschlossen. Der Worker setzt die Ausführung des Codes dann in der nächsten Codezeile nach dem receive-Aufruf fort.

Parameter

blockUntilReceived:Boolean (default = false) — gibt an, ob der Ausführungsthread des Workers ein Nachrichtenobjekt empfangen und dann mit der Ausführung fortfahren soll (false), oder ob er beim receive()-Aufruf anhalten und auf eine Nachricht warten soll, falls die Warteschlange leer ist (true)

Rückgabewerte
* — eine Kopie des Objekts, das vom sendenden Worker an die send()-Methode übergeben wird. Wenn das Objekt einen der Sondertypen aufweist, die von Workern gemeinsam verwendet werden, ist der Rückgabewert ein Verweis auf das gemeinsam genutzte Objekt und keine Kopie davon. Wenn in der Warteschlange keine Nachricht verfügbar ist, gibt die Methode null zurück.

Auslöser
IOError — wenn der Kanal beim Aufrufen der Methode geschlossen ist oder wenn das blockUntilReceived-Argument dazu führt, dass die Ausführung angehalten wird und der Kanal dann von einem anderen Worker geschlossen wird.
 
ArgumentError — wenn sich der aufrufende Code nicht im empfangenden Worker befindet
 
ScriptTimeoutError — wenn die Methode vom Code im ursprünglichen Worker in Flash Player aufgerufen wird und das blockUntilReceived-Argument dazu führt, dass der Worker länger angehalten wird als das Skript-Timeout (standardmäßig 15 Sekunden)

Verwandte API-Elemente

removeEventListener

()Methode 
override public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Entfernt einen Listener aus dem EventDispatcher-Objekt. Wenn kein entsprechender Listener mit dem EventDispatcher-Objekt registriert ist, hat ein Aufruf dieser Methode keine Auswirkungen.

Parameter

type:String — Der Ereignistyp.
 
listener:Function — Das zu entfernende Listener-Objekt.
 
useCapture:Boolean (default = false)Gibt an, ob der Listener für die Erfassungsphase oder die Ziel- und Bubbling-Phase registriert wurde. Wenn der Listener sowohl für die Aufnahme- als auch für die Bubbling-Phase registriert wurde, sind auch zwei Aufrufe von removeEventListener() erforderlich, um beide zu entfernen: ein Aufruf, bei dem useCapture auf true gesetzt ist, und einer, bei dem useCapture auf false gesetzt ist.

send

()Methode 
public function send(arg:*, queueLimit:int = -1):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Sendet ein Objekt vom sendenden Worker und fügt es der Nachrichtenwarteschlange für den empfangenden Worker hinzu.

Das Objekt, das an den arg-Parameter übergeben wird, kann ein nahezu beliebiges Objekt sein. Abgesehen von den unten aufgeführten Ausnahmen, werden Objekte, die an den arg-Parameter übergeben werden, nicht als Verweis übergeben. Alle Änderungen, die nach dem send()-Aufruf an einem Objekt in einem Worker vorgenommen werden, werden nicht an den anderen Worker übertragen. Das Objekt wird kopiert, indem es in das AMF3-Format serialisiert und im empfangenden Worker in ein neues Objekt deserialisiert wird, wenn receive() aufgerufen wird. Aus diesem Grund können Objekte, die nicht im AMF3-Format serialisiert werden können, zum Beispiel Anzeigeobjekte, nicht an den arg-Parameter übergeben werden. Damit eine benutzerdefinierte Klasse korrekt übergeben werden kann, muss die Klassendefinition mit der flash.net.registerClassAlias()-Funktion oder unter Verwendung von [RemoteClass]-Metadaten registriert werden. Bei beiden Techniken muss derselbe Alias für die Klassenversionen beider Worker verwendet werden.

Es gibt fünf Objekttypen, die eine Ausnahme der Regel darstellen, dass Objekte nicht von Workern gemeinsam genutzt werden:

  • Worker
  • MessageChannel
  • gemeinsam nutzbares ByteArray (ein ByteArray-Objekt, dessen shareable-Eigenschaft auf true eingestellt ist
  • Mutex
  • Condition

Wenn Sie eine Instanz dieser Objekte an den arg-Parameter übergeben, hat jeder Worker einen Verweis auf dasselbe zugrunde liegende Objekt. Änderungen, die in einem Worker an einer Instanz vorgenommen werden, sind sofort auch in den anderen Workern verfügbar. Wenn Sie dieselbe Instanz dieser Objekte mehrmals mit send() übergeben, erstellt die Laufzeitumgebung keine neue Kopie des Objekts im empfangenden Worker. Stattdessen wird derselbe Verweis erneut verwendet, sodass der Arbeitsspeicher weniger belastet wird.

Standardmäßig fügt diese Methode das Objekt zur Warteschlange hinzu, gibt sofort einen Wert zurück und setzt die Ausführung mit der nächsten Codezeile fort. Wenn Sie die Größe der Warteschlange auf einen bestimmten Wert begrenzen möchten, können Sie mit dem queueLimit-Parameter die maximale Anzahl von Objekten in der Warteschlange festlegen. Wenn zum Zeitpunkt des send()-Aufrufs mehr Objekte in der Warteschlange sind als das von Ihnen festgelegte Limit, hält der Worker den Ausführungsthread beim send()-Aufruf an. Wenn der empfangende Worker oft genug receive() aufgerufen hat, sodass die Warteschlange weniger Objekte als das festgelegte Limit enthält, wird der send()-Aufruf abgeschlossen. Der Worker setzt die Ausführung dann in der nächsten Codezeile fort.

Parameter

arg:* — das Objekt, das der Nachrichtenwarteschlange hinzugefügt wird
 
queueLimit:int (default = -1) — die maximale Anzahl von Nachrichtenobjekten, die die Nachrichtenwarteschlange enthalten kann. Falls die Warteschlange mehr Objekte als maximal zulässig enthält, unterbricht der sendende Worker die Ausführung, bis Nachrichten abgerufen werden und die Anzahl der Nachrichten wieder unter dem Limit liegt.


Ereignisse
channelMessage:Event — wird abgesetzt, um den empfangenden Worker darüber zu benachrichtigen, dass ein Nachrichtenobjekt in der Warteschlange verfügbar ist

Auslöser
IOError — wenn der Kanal beim Aufrufen der Methode geschlossen ist oder wenn das queueLimit-Argument dazu führt, dass die Ausführung angehalten wird und der Kanal dann von einem anderen Worker geschlossen wird.
 
ArgumentError — wenn sich der aufrufende Code nicht im sendenden Worker befindet
 
ScriptTimeoutError — wenn die Methode vom Code im ursprünglichen Worker in Flash Player aufgerufen wird und das queueLimit-Argument dazu führt, dass der Worker länger angehalten wird als das Skript-Timeout (standardmäßig 15 Sekunden)

Verwandte API-Elemente

toString

()Methode 
override public function toString():String

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Gibt das angegebene Objekt als String zurück.

Hinweis: Methoden der Object-Klasse werden für den Prototyp des Objekts dynamisch erstellt. Um diese Methode in eine Unterklasse von Object umzudefinieren, sollten Sie nicht das Schlüsselwort override verwenden. So implementiert eine Unterklasse von Object beispielsweise function toString():String anstatt die Basisklasse per „override“ außer Kraft zu setzen.

Rückgabewerte
String — Die Stringdarstellung des Objekts.
Ereignisdetails

channelMessage

Ereignis
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event.CHANNEL_MESSAGE

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Wird jedes Mal abgesetzt, wenn der sendende Worker die send()-Methode dieses MessageChannel-Objekts aufruft und damit anzeigt, dass in der Warteschlange der MessageChannel-Instanz ein neues Nachrichtenobjekt verfügbar ist.

Die Event.CHANNEL_MESSAGE-Konstante definiert den Wert der type-Eigenschaft eines channelMessage-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Objekt, das dieses Ereignis abgesetzt hat.

channelState

Ereignis  
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event.CHANNEL_STATE

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11.4, AIR 3.4

Wird abgesetzt, wenn sich der Wert der state-Eigenschaft des Nachrichtenkanals ändert.

Die Event.CHANNEL_STATE-Konstante definiert den Wert der type-Eigenschaft eines channelState-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Objekt, das dieses Ereignis abgesetzt hat.




[ 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.