<< Chapter < Page Chapter >> Page >

The addEventListener method in the EventDispatcher class

According to the documentation, the addEventListener method that is defined in the EventDispatcher class " Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event."

Parameters of the addEventListener method

This method requires the following five parameters, the last three of which have default values:

  1. type:String
  2. listener:Function
  3. useCapture:Boolean = false
  4. priority:int = 0
  5. useWeakReference:Boolean = false

Will concentrate on the first two parameters

I will concentrate on the first two parameters in this lesson. In addition, I will refer you to Understanding the AS3 Event Flow by Jody Hall for an excellent discussion of the purpose and use of the third parameter.

The type of the event

The first parameter , which is the type of the event, usually looks something like the following inActionScript syntax:

Event.ACTIVATE

The event-handler function

The second parameter is the name of a function or method that processes the event. This method must accept an Event object as its only parameter and must return void. A sample ActionScript signature for a suitable event handlermethod follows:

private function activateHandler(event:Event):void

Note that the actual type of the parameter may be any subclass of Event , such as MouseEvent for example. Note also that only the name of the function (without parentheses) is passed to the addEventListener method.

Available to all subclasses of EventDispatcher

The addEventListener method is defined in the EventDispatcher class and inherited by all subclasses of that class. Therefore, the methodcan be called on any object instantiated from any subclass of the EventDispatcher class.

There are many subclasses of the EventDispatcher class

The EventDispatcher class has approximately seventy-five immediate subclasses that ultimately fan out to include hundreds and possibly thousands ofindividual classes. (For example, the Button class is a subclass of the EventDispatcher class about seven levels down the inheritance hierarchy.)

Many combinations are nonsensical

This means that hundreds of different event types can be registered on hundreds of different object types. However, many of those combinations of event types and object types make absolutely no sense at all.

The SolidColor class

For example, one of the subclasses of the EventDispatcher class is named SolidColor . You can register a handler for a MouseEvent.CLICK event on a SolidColor object with no obvious ill effects. There is no compiler error and no runtime error.

However, the registration of the event handler on the object has no effect. As far as I know, it is not possible to cause a SolidColor object to dispatch a CLICK event. Therefore, the click event handler will never be executed.

A weakness in the event model

In my opinion, the ability for the programmer to register event types on objects that will simply ignore events of that type is a major weakness in theActionScript event model. Other programming languages such as Java provide more help in avoiding such programming errors.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with actionscript. OpenStax CNX. Jun 04, 2010 Download for free at http://cnx.org/content/col11202/1.19
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with actionscript' conversation and receive update notifications?

Ask