No. You would have to create wrappers for all three methods. It sounds like
you should be using Inheritance instead of Composition if you're overriding
that many methods...



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Helmut
Granda
Sent: Friday, June 08, 2007 12:40 PM
To: flashcoders@chattyfig.figleaf.com
Subject: Re: [Flashcoders] Composition access

One more question while in Composition mode

lets say I have my main class

Main
-method1 (calls method2)
-method2 (calls method3)
-method3

With Inheritance I could do

Copy

-method2 (calls method3 of Main)

When instantiating Copy it would know to use method1, and method3 from
original while using method2 from the copy.

Is there a way to achieve the same issue with composition?

So far thanks to the explanation above I can access the methods of Main from
a Copy instantiation but cant access methods of Copy from Main when needed.
I might be approaching this all wrong which might be the main issue :(

TIA

On 6/8/07, Helmut Granda <[EMAIL PROTECTED]> wrote:
>
> hey David,
>
> your suggestion works perfectly, it was my implementation that was
> breaking the code.
>
> Thanks again.
> -h
>
> On 6/8/07, Helmut Granda <[EMAIL PROTECTED]> wrote:
> >
> > Thanks David,
> >
> > For some odd reason if I do in my coopy
> >
> > public function init():Void
> > {
> > trace("init in copy class");
> > }
> >
> > it wont fire but it will fire the init method from the Original Class
> > (which by the way seem very similar to inheritance :) ).... any ideas
why
> > this could be happening?
> >
> > Thanks again...
> >
> > On 6/8/07, David Ngo < [EMAIL PROTECTED]> wrote:
> > >
> > > You'd basically create a 'wrapper' method:
> > >
> > > class CopyClass {
> > >
> > >         private var original:OriginalClass;
> > >         private var mc:MovieClip;
> > >
> > >         public function CopyClass(mc:MovieClip)
> > >         {
> > >                 this.mc = mc;
> > >                 original = new OriginalClass(mc);
> > >         }
> > >
> > >         public function init():Void
> > >         {
> > >                 original.init ();
> > >         }
> > > }
> > >
> > >
> > > It's almost like calling super. However, if you're looking to override
> > > the
> > > original class' init(), then you don't need to call original.init()
> > > and just
> > > create your logic in your CopyClass' init method. This is the one
> > > drawback
> > > to using Composition over Inheritance, but I would say it's worth it
> > > in the
> > > long-run.
> > >
> > >
> > > David
> > >
> > >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED]
> > > [mailto:[EMAIL PROTECTED] On Behalf Of Helmut
> > > Granda
> > > Sent: Friday, June 08, 2007 10:27 AM
> > > To: Flashcoders mailing list
> > > Subject: [Flashcoders] Composition access
> > >
> > > I am slowly moving from inheritance to composition for a specific
> > > project,
> > > one way to "extend" my classes is by creating a copy of them into the
> > > new
> > > created classes...
> > >
> > > class OriginalClass {
> > >
> > > var mc:MovieClip;
> > >
> > > function original(mc:MovieClip) {
> > >   this.mc = mc;
> > >   init();
> > > };
> > >
> > > function init() {
> > >   trace("original");
> > > }
> > >
> > > ------ now trying to overwrite init
> > >
> > > class CopyClass {
> > >
> > > var original : OriginalClass;
> > > var mc : MovieClip;
> > >
> > > function CopyClass(mc:MovieClip) {
> > > this.mc = mc;
> > > original = new OriginalClass(mc);
> > >
> > > }
> > >
> > > //How do I access init from the original class? I know that doing
> > > inheritance I can just declare a new init method in my CopyClass but
> > > in this
> > > case it doesnt work that way.
> > >
> > > TIA
> > > _______________________________________________
> > > 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