RE: [Flashcoders] Composition access

2007-06-08 Thread David Ngo
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


Re: [Flashcoders] Composition access

2007-06-08 Thread Helmut Granda

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


Re: [Flashcoders] Composition access

2007-06-08 Thread Helmut Granda

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


Re: [Flashcoders] Composition access

2007-06-08 Thread Helmut Granda

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


RE: [Flashcoders] Composition access

2007-06-08 Thread David Ngo
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


Re: [Flashcoders] Composition access

2007-06-08 Thread Helmut Granda

Ok, figured out

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

Copy
method2 = this.method2
-method2 = calls main.method3;

so you can make them talk to each other, I just was confused how to put it
into code.

Thanks
-h

On 6/8/07, Helmut Granda [EMAIL PROTECTED] wrote:


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