
Код AS3:
private var FState:String;
addEventListener(StateEvent.CHANGE,stateChangeHandler);
public function get state():String
{
return FState;
}
public function doSomething():void
{
// do something with socket etc...
}
protected function stateChangeHandler(event:StateEvent):void
{
FState=event.messageData.data;
dispatchEvent(new Event(Event.CHANGE));
}

Код AS3:
package
{
import flash.events.Event;
public class StateEvent extends Event
{
public var messageData:Object;
public static const CHANGE:String="stateChange";
public function StateEvent(type:String, data:Object=null)
{
super(type, data);
var messObj:Object=new Object();
messObj.data=data;
this.messageData=messObj;
}
}
}

Код AS3:
myClass.addEventListener(Event.CHANGE,myClassStateChangeHandler);
myClass.doSomething();
protected function myClassStateChangeHandler(event:Event):void
{
trace("state changed to "+myClass.state);
}