AS1 OOP: Custom Classes with MovieClips
by senocular
Object.registerClass
Object.registerClass (which, if you’ll notice, is a static
method of the Object class) works by changing an internal
association of a movieclip symbol in the library from what
would normally be the MovieClip class to the class of your
choice. Then, whenever an instance of that movieclip symbol
is copied onto the screen (either through the timeline or
with Actionscript), that instance will directly inherit not
from the MovieClip class, but from the class you specified –
the registered class – from a Object.registerClass call. The
association is setup using a movieclip symbol’s linkage ID
(export for actionscript identifier). So, for
Object.registerClass to work, it will need to be used with a
movieclip in your movie’s library that has a linkage ID
assigned for it. The linkage ID can be assigned when you
create the moiveclip symbol or through the properties
options from the movieclip in the library.
[ assigning
a linkage ID from the library ]
Then its just a matter of calling Object.registerClass in
the following format to setup the association between a
movieclip symbol and class.
- Object.registerClass("linkageID", myClass);
With that command, any ‘linkageID’ movieclip symbol
placed on the screen thereafter will directly inherit from,
and technically be an instance of, myClass. If you ever need
to break this connection, you may also do so by registering
the linkageID to null.
- Object.registerClass("linkageID", null);
Then new ‘linkageID’ instances will no longer be myClass
instances and will inherit from MovieClip as they would
normally.