Мне нужно знать о пользовательских событиях во Flex - PullRequest
0 голосов
/ 07 октября 2009
package classes.events
{
    import flash.events.Event;

    public class ASSEvent extends Event
    {
        public static const ALERT:String = " Add Alert";

        public function ASSEvent(type:String, bubbles:Boolean=true,cancelable:Boolean=false)
        {
            super(type, bubbles, cancelable);
        }



    }
}

Что здесь типа, пузырьки и отменяемое удержание и почему мы их используем ... может кто-нибудь объяснить весь этот код.

public function ASSEvent(type:String, bubbles:Boolean=true,cancelable:Boolean=false)
            {
                super(type, bubbles, cancelable);
            }

Ответы [ 2 ]

3 голосов
/ 07 октября 2009

Когда bubbles равно true и событие отправляется из элемента пользовательского интерфейса, оно также будет отправлено из родительского элемента пользовательского интерфейса, затем его родителя и т. Д., Пока оно не достигнет вершины или слушатель не вызовет stopPropagation () или stopImmediatePropagation () для события. Если вы отправляете событие только для классов, не относящихся к пользовательскому интерфейсу, просто установите для пузырей значение false.

Когда cancelable равен true, это в основном означает, что вы ожидаете, что слушатель потенциально вызовет protectDefault () . Вы можете проверить, отменил ли кто-либо событие, вызвав isDefaultPrevented () . Например, вы можете создать событие «application_data» и позволить слушателю отменить его, чтобы код вызова фактически не применял данные. Если событие не может быть логически отменено, установите для него значение false.

Обратите внимание, что если вы реализуете пользовательское событие, вы должны переопределить метод clone () .

Более подробную информацию о классе событий можно найти в Adobe документах .

0 голосов
/ 08 октября 2009

Поле типа - это название события. Как правило, вы используете константы из классов Event или MouseEvent или KeyboardEvent (или одного из многих других), но вы также можете создавать свои собственные. Вы должны использовать статические константы, но, хотя вы можете использовать любую String для их представления, постарайтесь сохранить их в camelCase и пропустите такие символы, как. и другие знаки препинания. Причина в том, что хотя addEventListener работает так же, вы можете определить прослушиватели событий в MXML, используя имя события ... которое не будет работать, если у вас есть точки и прочее.

Поле пузырьков должно быть установлено в true, если вы хотите, чтобы ваше событие распространялось вверх по цепочке элементов пользовательского интерфейса. Например, если кнопка запускает событие, ее Canvas получит событие, его HBox и т. Д. Это удобно, когда вы хотите отлавливать события, которые могут произойти в дочерних элементах компонента, например щелчки мыши или нажатия клавиш клавиатуры. Вот почему вы можете разместить таких слушателей на Application.application.stage и перехватывать каждый ключ, который получает ваше приложение.

Поле отменяемого состояния позволяет вам вызывать warnDefault () для события, чтобы отменить логику по умолчанию. Это может включать, например, ввод символа в TextField. Если вы хотите выполнить свою собственную обработку по умолчанию, вызовите addEventListener () с приоритетом EventPriority.DEFAULT_HANDLER ... тогда можно создать другие прослушиватели, которые, если они вызовут protectDefault (), могут позволить вам НЕ выполнять желаемую функциональность, проверяя isDefaultPrevented ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...