//in the mxml, after FMSConnection is created:
fmsConn.addEventListener(FMSConnection.MESSAGE_RECEIVED, onMessage);
private function onMessage(e:Event):void
{
fmsConn = FMSConnection(e.target);
textArea.text += fmsConn.lastMessage;
}
//FMSConnection
public class FMSConnection extends NetConnection
{
public static const MESSAGE_RECEIVED:String = "messageReceived";
public var lastMessage:String;
public function Message(message:String):void
{
lastMessage = message;
dispatchEvent(new Event(MESSAGE_RECEIVED));
}
}
Au lieu de déclarer la variable lastMessage
, vous pouvez envoyer un événement personnalisé et y stocker le message si vous le souhaitez.
//MsgEvent.as
public class MsgEvent extends Event
{
public static const MESSAGE_RECEIVED:String = "messageReceived";
public var message:String;
public function MsgEvent(message:String, type:String)
{
super(type);
this.message = message;
}
override public function clone():Event
{
return new MsgEvent(message, type);
}
}
//in the mxml, after FMSConnection is created:
fmsConn.addEventListener(MsgEvent.MESSAGE_RECEIVED, onMessage);
private function onMessage(e:MsgEvent):void
{
textArea.text += e.message;
}
//FMSConnection
public class FMSConnection extends NetConnection
{
public function Message(message:String):void
{
dispatchEvent(new MsgEvent(message, MsgEvent.MESSAGE_RECEIVED));
}
}
Redéfinition de la méthode clone
n'est pas nécessaire dans ce cas, mais il est une bonne pratique à suivre lors de l'utilisation des événements personnalisés. Si vous ne remplacez pas la méthode clone, vous obtiendrez une erreur d'exécution lors de la tentative de redispatching de l'événement personnalisé à partir du gestionnaire d'événements.
pouvez-vous me montrer comment créer et envoyer un événement personnalisé – Omu
Mise à jour de la publication - Corrigé également une erreur mineure dans le code que j'ai posté en premier - le type d'événement dans onMessage devrait être simple Événement plutôt que MessageEvent . – Amarghosh
thnx homme, ça marche vraiment bien, trucs géniaux !!! – Omu