Как я могу создать несколько типов и параметров для пользовательских событий?

У меня есть собственный класс событий, и я хочу вставить несколько параметров (например, собственные события: MOUSE_UP, CLICK, ROLL_OVER). Вот мой код до сих пор:

package
{
    import flash.events.Event;

    public class MenuGeneratorEvent extends Event
    {
        public static const PASS_PARAMS:String = "passParams";

        public var param1:String = new String();

        public function MenuGeneratorEvent(type:String, str:*, bubbles:Boolean = false,
                                                cancelable:Boolean = false):void
        {
            this.param1 = str;

            super(type, bubbles, cancelable);
        }

        override public function clone():Event
        {
            return new MenuGeneratorEvent(type, param1, bubbles, cancelable);
        }
    }
}

Я использую Flash Professional CC 2015. Возможно ли это сделать?

1 ответ

Решение

Просто добавьте их в качестве аргументов конструкции и сделайте их видимыми снаружи, как вы это делали с param1, Если вам нужно передать много параметров в качестве аргументов конструктора, вы всегда можете обернуть их внутри другого объекта. Если вы хотите иметь доступ к ним напрямую из объекта события, просто создайте для них средства доступа:

public class MenuGeneratorEvent extends Event
{
    public static const PASS_PARAMS:String = "passParams";

    private var params:Object;

    public function MenuGeneratorEvent(type:String, params:Object, bubbles:Boolean = false,
                                            cancelable:Boolean = false):void
    {
        this.params = params;

        super(type, bubbles, cancelable);
    }

    override public function clone():Event
    {
        return new MenuGeneratorEvent(type, params, bubbles, cancelable);
    }

    public function get param1():String{return params.param1;}
    public function get param2():Number{return params.param2;}
    public function get param3():Object{return params.param3;}
}
Другие вопросы по тегам