Спасибо.
Пока сделал вот таким вот образом:
Есть класс№1, который собственно вызывает функцию GetState:

Код AS3:
public class class1
{
...
private var FDevice: DeviceClass;
...
public function DeviceState()
{
FDevice.GetState();
}
}
В классе DeviceClass в методе GetState уходит запрос на сервер по сокету:

Код AS3:
public function GetState()
{
var X: XML =
<request>
<device cmd="state"/>
</request>;
Send(X, 'Device GetState');
this.addEventListener(StateEvent.CHANGE, onStateReceived);
}
Диспетчеризируем событие мы когда приходят данные:

Код AS3:
private function onSocketData(event: Event)
{
...
FState = eX.device[0].@state;
dispatchEvent(new Event(StateEvent.CHANGE));
}
Соответственно обработчик вызывает некую функцию в Class1(экземпляр хранится в одном из полей класс DeviceClass):

Код AS3:
private function onStateReceived(event: Event): void
{
FClass1.DeviceStateChanged();
this.removeEventListener(StateEvent.CHANGE, onStateReceived);
}
В этом вызываемом методе как отрабатываем то что состояние изменилось:

Код AS3:
public function DeviceStateChanged()
{
trace(FDevice.State);
}
В принципе такое поведение вроде как устраивает.
Вопрос в том, нельзя ли как то обойтись без функции DeviceStateChanged в Class1, чтобы State возвращалось
в метод Class1.DeviceState после вызова FDevice.GetState()?
Мне почему-то кажется что вряд ли такое возможно, но если бы такое поведение получилось создать было бы, наверное, не плохо
Спасибо.