![]() ![]() ![]() | |
![]() | |
![]() | |
![]() |
Event listeners let an object, called a listener object, receive events generated by another object, called a broadcaster object. The broadcaster object registers the listener object to receive events generated by the broadcaster. For example, you could register a movie clip object to receive onResize
notifications from the Stage, or a button instance could receive onChanged
notifications from a text field object. You can register multiple listener objects to receive events from a single broadcaster, and you can register a single listener object to receive events from multiple broadcasters.
The event model for event listeners is similar to that of event handlers (see Using event handler methods), with two main differences:
addListener()
, which registers the listener object to receive its events. To use event listeners, you create a listener object with a property that has the name of the event being generated by the broadcaster object. You then assign a function to the event listener that responds in some way to the event. Lastly, you call addListener()
on the object that's broadcasting the event, passing it the name of the listener object. The following code outlines the event listener model.
listenerObject
.eventName
= function(){ // your code here };broadcastObject
.addListener(listenerObject
);
The specified listener object can be any object, such as a movie clip or button instance on the Stage, or an instance of any ActionScript class. The event name is an event that occurs on broadCastObject
, which then broadcasts the event to listenerObject
. You can register multiple listeners to one event broadcaster.
The following example shows how to use the Selection.onSetFocus
event listener to create a simple focus manager for a group of input text fields. In this case, the border of the text field that receives keyboard focus is enabled (displayed), and the border of the text field that lost focus is disabled.
Make sure the Show Border Around Text option is not selected for this text field. Continue to create input text fields if desired.
var focusListener = new Object(); focusListener.onSetFocus = function(oldFocus_txt, newFocus_txt) { oldFocus_txt.border = false; newFocus_txt.border = true; }
This code creates a new (generic) ActionScript object named focusListener
. This object defines for itself an onSetFocus
property, to which it assigns a function. The function takes two parameters: a reference to the text field that lost focus, and one to the text field that gained focus. The function sets the border
property of the text field that lost focus to false
, and sets the border
property of the text field that gained focus to true
.
focusListener
object to receive events from the Selection object, add the following code to the Actions panel:
Selection.addListener(focusListener);
To unregister a listener object from receiving events, you call the removeListener()
method of the broadcaster object, passing it the name of the listener object.
broadcastObject
.removeListener(listenerObject
);
Event listeners are available to objects of the following ActionScript classes: Key, Mouse, MovieClipLoader, Selection, TextField, and Stage. For a list of event listeners available to each class, see these class entries in ActionScript Dictionary Overview.
![]() | |
![]() | |
![]() | |
![]() ![]() ![]() |