As a variant on the __proto__ method (which I gather is what the compiler
actually uses behind the scenes anyway) I also bundle the code into a static
method
Class A {
...
// dynamicMc (no library symbol) will be added and subclassed to mcSubClass
dynamicMc:MovieClip = McSubClass.addInstance(baseMC);
}
class McSubClass extends MovieClip{
function McSubClass {
//empty constructor
}
function init(){
//initialize mc - add dynamic graphics etc
}
static function addInstance (base_mc) {
var newMc;
var nd = base_mc.getNextHighestDepth();
newMc= base_mc.createEmptyMovieClip("mcSubClass"+nd,nd);
newMc.__proto__ = new McSubClass ();
newMc.init();
return newMc;
}
}
maybe mc.__proto__ == MyClass.prototype (below) is better than my
newMc.__proto__ = new McSubClass ()
my method (i picked up on this list) does have the side effect that the
constructor can't initialize the mc, hence the separate init call after the
__proto__ / constructor; all wrapped in one method so I don't forget
Rob
> Subject: Re: [Flashcoders] Programmatically instantiating a class that
> extends MovieClip.
> To: "Flashcoders mailing list" <[email protected]>
> Message-ID:
> <[EMAIL PROTECTED]>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> Hello :)
>
> it's easy, you must use __proto__
>
> AS2 - MyClass extend MovieClip !!!
>
> MyClass extends MovieClip {
>
> // ----o Constructor
>
> public function MyClass() {
>
> }
>
> }
>
> ....
>
> var mc = createEmptyMovieClip("myInstance", 1) ;
> mc.__proto__ == MyClass.prototype ;
> MyClass.call(mc) ;
>
> EKA + :)
>
>
>
>
> 2006/6/29, Scott Hyndman <[EMAIL PROTECTED]>:
> >
> > That's exactly what I mean. As a result you can do cool things like
> > reparenting -- like moving a button from one window to another. It
> > handles the MovieClip creation itself.
> >
> > A code example really isn't too easy, because the framework that
> > allows this to be possible is quite large. If you were really
> > interested, you could look at the code. Here's a link:
> >
> > http://tinyurl.com/jqtwv
> >
> > It's a gigantic class...so it might be difficult to work through. The
> > important method is createMovieClips(), which is called when a view
> > (the type of object that encapsulates movieclips) moves to a new
> > superview.
> >
> > Scott
> >
> > On 29/06/06, Jim Kremens <[EMAIL PROTECTED]> wrote:
> > > "Why not subclass object instead? Both ActionStep and ASwing work this
> > > way, then create movieclips on the fly. It's very nice to work with."
> > >
> > > So you never really subclass movieclip, you use composition instead.
> In
> > > other words, your class has a movieclip, but it isn't a movieclip.,,
> > >
> > > Is that what you mean, or am I missing the point? Can you give a
> small
> > code
> > > example?
> > >
> > > Thanks,
> > >
> > > Jim Kremens
----------- original message ----------------------------
Subject: Re: [Flashcoders] Programmatically instantiating a class that
extends MovieClip.
To: "Flashcoders mailing list" <[email protected]>
Message-ID:
<[EMAIL PROTECTED]>
Content-Type: text/plain; charset=UTF-8; format=flowed
Hello :)
it's easy, you must use __proto__
AS2 - MyClass extend MovieClip !!!
MyClass extends MovieClip {
// ----o Constructor
public function MyClass() {
}
}
....
var mc = createEmptyMovieClip("myInstance", 1) ;
mc.__proto__ == MyClass.prototype ;
MyClass.call(mc) ;
EKA + :)
Important -
This email and any attachments may be confidential. If received in error,
please contact us and delete all copies. Before opening or using attachments
check them for viruses and defects. Regardless of any loss, damage or
consequence, whether caused by the negligence of the sender or not, resulting
directly or indirectly from the use of any attached files our liability is
limited to resupplying any affected attachments. Any representations or
opinions expressed are those of the individual sender, and not necessarily
those of the Department of Education & Training.
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com