You can dispatch an event from any class that extends EventDispatcher. That includes Sprite and Movieclip classes.
First of all create a custom event class:
package custom.events
{
import flash.events.Event;
public class CustomEvent extends Event
{
public function CustomEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
}
public static const OK:String = "ok_result";
}
}
In your class add the code to dispatch the new event:
public class CustomSprite extends Sprite
{
public function doSomething():void
{
this.dispatchEvent(new CustomEvent(CustomEvent.OK));
}
}
Now all you have to do is to add a listener for your custom event:
public class MainSprite extends Sprite
{
public function MainSprite()
{
var s:CustomSprite = new CustomSprite();
s.addEventListener(CustomEvent.OK, onOk);
}
public function onOk(event:CustomEvent):void
{
trace("custom event occured.");
}
}
If you have to send additional data when the event occurs you can add new member variables to the event.