2010-12-06 4 views
-1

Betrachten Sie den folgenden Actionscript/Flex-Code:In Flex/Actionscript, wie kann ich wissen, welche ein Status Fehler Generierte LocalConnection.send?

var LC:LocalConnection=new LocalConnection(); 
    LC.addEventListener(StatusEvent.STATUS, Status); 
    LC.send('A', 'SomeMethodName', 'Message'); 
    LC.send('B', 'SomeMethodName', 'Message'); 
    LC.send('C', 'SomeMethodName', 'Message'); 

public function Status(event:StatusEvent):void { 
    if (event.level=='error') { 
    // How Can I Know if the error came from 'A', 'B', or 'C' above? 
    } 
} 

mir NICHT will Unter der Annahme, der sendet in Reihe laufen, aber in paralell (alle auf einmal), wie oben beschrieben, und unter der Annahme weiter, dass ein und nur eine der Sende Befehle ein Statusereignis, wo level = ‚Fehler‘ erzeugen:

Wie kann ich erkennen, welchen Befehl den Status Fehler erzeugen schicken?

Antwort

2

Wenn ich mehrere LocalConnections verwenden müsste, hätte ich für jede ConnectionID eine andere Instanz verwendet und eine Halterklasse erstellt, um sie zu verwalten.

0

Ich glaube, ein Status wird sogar für jede Nachricht, die Sie senden, ausgelöst werden. Also, wenn Sie 2 Statusmeldungen vor dann Fehler, dann ist es C.

Sie könnten einige Wrapper um LocalConnection, die Nachrichten, die es in einem Array sendet, und entfernt sie jedes Mal, wenn eine Statusnachricht empfangen wird. Wenn Sie einen Fehler erhalten, ist die Nachricht am Anfang der Warteschlange diejenige, die fehlerhaft ist.

+2

Wie können Sie so sicher sein, dass ich die beiden Statusmeldungen, bevor die Fehlermeldung erhalten? Nehmen wir zum Beispiel, dass es Fehler auf „B“ - Ich glaube nicht, dass Sie auf die Abfolge der Ereignisse zählen zu sein Status, Fehler, Status. Könnte es nicht einfach Status, Status, Fehler sein? In dieser asynchronen Umgebung könnte es länger dauern, einen Fehler zu ermitteln als einen Erfolg. Selbst wenn ich die zweite Idee verwenden, habe ich noch konfrontiert bin mit genau, wie ein bestimmtes Ereignis Antwort mit der genauen Sende zu assoziieren, die es gesendet. Können Sie genauer erklären, wie ich diese Assoziationsbeziehung aufrechterhalten könnte? – Joshua

Verwandte Themen