Working with Movie Clips and Buttons > Handling events with ActionScript > Defining event handler methods in the prototype object |
![]() ![]() ![]() |
Defining event handler methods in the prototype object
You can create a new ActionScript class for movie clips and define the event handler methods in the prototype object of that new class. Defining the methods in the prototype object makes all the instances of this symbol respond the same way to these events.
You can also add an onClipEvent
or on
event handler action to an individual instance to provide unique instructions that run only when that instance's event occurs. The onClipEvent
and on
actions don't override the event handler method; both events cause their scripts to run. However, if you define the event handler methods in the prototype object and also define an event handler method for a specific instance, the instance definition overrides the prototype definition.
To define an event handler method in an object's prototype object:
1 |
Place a movie clip symbol with linkage ID |
2 |
Select a frame in the Timeline of the object. |
3 |
Choose Window > Actions to open the Actions panel if it isn't already open. |
4 |
If the Actions panel is in normal mode, choose Expert Mode from the View Options pop-up menu above the Script pane. |
5 |
Use the |
// define a class function myClipClass() {} |
|
This new class will be assigned to all instances of the movie clip that are added to the movie by the Timeline, or that are added to the movie with the |
|
6 |
Enter code like the following in the Script pane: |
// inherit from MovieClip class myClipClass.prototype = new MovieClip(); |
|
Now the class |
|
7 |
Enter code like the following to define the event handler methods for the new class: |
// define event handler methods for myClipClass class myClipClass.prototype.onLoad = function() {trace ("movie clip loaded");} myClipClass.prototype.onEnterFrame = function() {trace ("movie clip entered frame");} |
|
8 |
Choose Window > Library to open the Library panel if it isn't already open. |
9 |
Select the symbols that you want to associate with your new class, and choose Linkage from the pop-up menu in the upper right of the Library panel. |
10 |
In the Linkage Properties dialog box, select Export for ActionScript. |
11 |
Enter an identifier in the Identifier box. |
The identifier must be the same for all symbols that you want to associate with the new class. In the |
|
12 |
Enter code like the following in the Script pane: |
// register class Object.registerClass("theID", myClipClass); _root.attachMovie("theID","myName",1); |
This registers any symbol whose linkage identifier is theID
with the class myClipClass
. All instances of myClipClass
have event handler methods that behave as you defined them in step 6. They also behave like all instances of the class MovieClip, because you told the new class to inherit from the class MovieClip in step 5.
function myClipClass(){} myClipClass.prototype = new MovieClip(); myClipClass.prototype.onLoad = function(){ trace("movie clip loaded"); } myClipClass.prototype.onPress = function(){ trace("pressed"); } myClipClass.prototype.onEnterFrame = function(){ trace("movie clip entered frame"); } myClipClass.prototype.myfunction = function(){ trace("myfunction called"); } Object.registerClass("myclipID",myClipClass); _root.attachMovie("myclipID","ablue2",3);
![]() ![]() ![]() |