Добавлен ответ Саймона, если вы хотите, чтобы избежать «свободно ссылки» имена событий и определить свои собственные из них, вот несколько различных предложений традиционных способов использования тех:
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));
}
}
}
Да, я видел это на LiveDocs ... страшных вещах. Думаю, как только я выясню, как самому исследовать источник, я нахожу его менее тревожным. Спасибо Саймону (снова). –