Что ж, если вы просто хотите получить данные, вы можете сохранить их в массиве вашего класса, а затем иметь метод, который их извлекает.
Если вместо этого вы хотите отправить событие в Main.as, вам нужно будет создать пользовательское событие.
Самый простой способ сделать это - извлечь ваш класс из EventDispatcher
.
Затем, когда вы хотите запустить событие, вы просто вызываете super.dispatchEvent(new CustomEvent(payload))
, где CustomEvent
- ваш класс, производный от Event
.
Общая схема будет выглядеть так:
Создайте пользовательское событие ... если существующий класс событий не имеет смысла ... затем просто используйте что-то еще.
public class SocketEvent extends Event {
public var payload:String;
public function SocketEvent(payload:String, bubbles:Boolean=false, cancelable:Boolean=false) {
super(Socket.EVENT_NAME, bubbles, cancelable);
this.payload = payload;
}
}
Тогда класс, который запускает событие, выглядит следующим образом:
public class Socket extends EventDispatcher {
public static const EVENT_NAME:String = "EVENT_NAME";
private function fireTheEvent(payload:String):void {
dispatchEvent(new SocketEvent(payload));
}
}
Наконец, чтобы использовать его в Main.as, вы должны сделать это:
private var socket:Socket = new Socket();
socket.addEventListener(Socket.EVENT_NAME, actionHandler);
Обратите внимание, что это НЕ единственный способ вызвать событие. Другим способом было бы реализовать IEventDispatcher
в терминах статических методов EventDispatcher ... но это другой пример.