Добавлено к ответу Саймона, если вы хотите избежать «слабо ссылающихся» имен событий и определить свои собственные, вот несколько различных предложений традиционных способов их использования:
1. Создание пользовательского события с подклассами flash.events.Event
Вероятно, самый обычный и очевидный способ, хотя и немного напрасно.
package transitions.events
{
import flash.events.Event;
public class MyTransitionEvent extends Event
{
public static const TRANSITION_INIT : String = "events.TransitionEvent.transitionInit";
public static const TRANSITION_PROGRESS : String = "events.TransitionEvent.transitionProgress";
public static const TRANSITION_COMPLETE : String = "events.TransitionEvent.transitionComplete";
public function MyTransitionEvent(type : String, bubbles : Boolean, cancelable : Boolean)
{
super(type, bubbles, cancelable);
}
override public function clone() : Event
{
return new TransitionEvent(type, bubbles, cancelable);
}
}
}
2. Определение имен событий как статических констант из диспетчера событий (например, подкласс Sprite или MovieClip)
Чтобы было понятнее, типы событий должны определяться исключительно из класса, в который отправляются события.
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
public class Transition extends EventDispatcher
{
public static const TRANSITION_INIT : String = "events.TransitionEvent.transitionInit";
public static const TRANSITION_UPDATE : String = "events.TransitionEvent.transitionUpdate";
public static const TRANSITION_COMPLETE : String = "events.TransitionEvent.transitionComplete";
public function Transition()
{
}
private function init() : void
{
dispatchEvent(new Event(TRANSITION_INIT))
}
}
}
3. Повторное использование родной flash.events
К счастью, предопределенные события (например, flash.events.Event , flash.events.StatusEvent , flash.events.NetStatusEvent и т. Д.) охватывая большинство возможных случаев. Таким образом, чтобы не изобретать велосипед и не сохранять драгоценные строки кода, если вы найдете тот, который соответствует вашим требованиям, просто используйте его повторно.
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
public class Transition extends EventDispatcher
{
public function Transition()
{
}
private function init() : void
{
dispatchEvent(new Event(Event.INIT));
}
private function change():void
{
dispatchEvent(new Event(Event.CHANGE));
}
private function complete():void
{
dispatchEvent(new Event(Event.COMPLETE));
}
}
}