//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));
}
}
같은 lastMessage
변수를 선언하는 대신 원하는 경우 맞춤 이벤트를 전달하고 메시지를 저장할 수 있습니다. clone
방법을 재정의
//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));
}
}
이 경우에는 필요하지 않습니다,하지만 사용자 정의 이벤트를 사용하는 동안 수행하는 것이 좋습니다. 복제 메서드를 재정의하지 않으면 이벤트 처리기에서 사용자 지정 이벤트를 재발송하려고 시도하는 동안 런타임 오류가 발생합니다.
사용자 정의 이벤트를 생성하고 디스패치하는 방법을 보여줄 수 있습니까? – Omu
포스트 업데이트 - 먼저 게시 한 코드의 사소한 오류를 수정했습니다. 'onMessage'의 이벤트 유형은'MessageEvent'가 아닌 일반 'Event' 여야합니다. . – Amarghosh
thnx 남자, 정말 좋은, 멋진 물건을 작동합니다! – Omu