Nice!
Didn't know that one :) 

> -----Oorspronkelijk bericht-----
> Van: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] Namens Tyler Wright
> Verzonden: woensdag 5 juli 2006 17:47
> Aan: Flashcoders mailing list
> Onderwerp: Re: [Flashcoders] Re: Programmatically 
> instantiating a classthatextends MovieClip
> 
> There's a really light class called Prototype which is free 
> to download at http://codext.com/code/9. It does the same 
> thing except with full constructor support. It also has a 
> really simple/clean API:
> 
> mc = createEmptyMovieClip("mc", 1);
> Prototype.makeInstanceof(mc, MyMovieClipClass);
> 
> thats it! I've loved it ... works on extending other elements 
> too, like TextFields or _root (I use that one constantly).
> 
> Tyler
> 
> 
> On 7/3/06, Bernard Visscher <[EMAIL PROTECTED]> wrote:
> >
> > I've tested the following a while ago and it works perfectly.
> > It uses the acme ClassUtilities class.
> >
> > MovieFactory:
> >
> > import com.acme.ClassUtilities;
> >
> > class nl.debit.util.MovieFactory {
> >
> >         private static var instance : MovieFactory;
> >
> >         public static function getInstance() : MovieFactory
> >         {
> >                 if (instance == null)
> >                         instance = new MovieFactory();
> >                 return instance;
> >         }
> >
> >         private function MovieFactory()
> >         {
> >                 ClassUtilities.registerPackage();
> >         }
> >
> >         public static function
> > createMC(target:MovieClip,id:String,className:Function):MovieClip
> >         {
> >         if (instance == null)
> >                         instance = new MovieFactory();
> >
> >                 if(!className.symbolLinked)
> >                 {
> >                 var classPath:String = 
> ClassUtilities.getPath(className);
> >                 className.symbolName = "__Packages." + classPath;
> >                 className.symbolLinked = 
> > Object.registerClass(className.symbolName,className);
> >                 }
> >
> >                 return
> > 
> target.attachMovie(className.symbolName,id,target.getNextHighe
> stDepth());
> >     }
> > }
> >
> >
> > MyClass:
> >
> > class MyClass extends MovieClip{
> >
> >         public function MyClass() {
> >                 beginFill(0x000000);
> >                 moveTo(0,0);
> >                 lineTo(100,0);
> >                 lineTo(100,100);
> >                 lineTo(0,100);
> >                 lineTo(0,0);
> >                 endFill();
> >         }
> > }
> >
> > Then use in your code:
> >
> > var mClip:MovieClip = MovieFactory.createMC(_root,"test",MyClass);
> >
> >
> > Greetz,
> >
> > Bernard
> >
> > > -----Oorspronkelijk bericht-----
> > > Van: [EMAIL PROTECTED]
> > > [mailto:[EMAIL PROTECTED] Namens 
> Costello, 
> > > Rob R
> > > Verzonden: maandag 3 juli 2006 17:05
> > > Aan: flashcoders@chattyfig.figleaf.com
> > > Onderwerp: [Flashcoders] Re: Programmatically 
> instantiating a class 
> > > thatextends MovieClip
> > >
> > > 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" 
> <flashcoders@chattyfig.figleaf.com>
> > >
> > > > 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" <flashcoders@chattyfig.figleaf.com>
> > >
> > > 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.
> > > _______________________________________________
> > > Flashcoders@chattyfig.figleaf.com
> > > 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
> > >
> >
> > _______________________________________________
> > Flashcoders@chattyfig.figleaf.com
> > 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
> >
> _______________________________________________
> Flashcoders@chattyfig.figleaf.com
> 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
> 

_______________________________________________
Flashcoders@chattyfig.figleaf.com
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

Reply via email to