Then you are stuck and have to duplicate code.

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Ravi Kumar Gummadi
Sent: Wednesday, May 30, 2007 11:42 PM
To: flexcoders@yahoogroups.com
Subject: RE: [flexcoders] Re: Is there any way to call
super.super.method in AS3?

 

Alex,

 

The solution is pretty good, but what if Class A and B are part of the
Flex framework and we don't have the permissions to change anyone of
them?

 

Regards

Ravi

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Alex Harui
Sent: Thursday, May 31, 2007 11:37 AM
To: flexcoders@yahoogroups.com
Subject: RE: [flexcoders] Re: Is there any way to call
super.super.method in AS3?

 

Yes, or add another class layer between, or make the method replaceable,
or make the method in A callable directly, or add a flag

 

Adding another class layer is the purest form, but adds the weight of
another class

Extending from A might cause too much duplication of code from B

 

Replaceable methods and other tricks are kind of cheating but do work

 

Class A

{

            // subclasses replace the actual function they need called

            Protected var _myFunc:Function = myFuncA;

 

            Protected function myFunc(a:Object, b:Object):int

            {

                        return _myFunc(a, b);

            }

 

            Protected var myFuncA(a:Object, b:Object):int

            {

                        // A's default behavior

            }

}

 

 

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of wpding
Sent: Wednesday, May 30, 2007 6:42 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Is there any way to call super.super.method in
AS3?

 


I guess i have to extend Class C from class A directly.

I met this problem, when i tried to extend a component. In my case ,
The Class C want to replace the myMethod in this parent class Class B,
kept others unchanged.And myMethod in Class C still need to call
A.myMethod.

--- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
, "Alex Harui" <[EMAIL PROTECTED]> wrote:
>
> Sorry, but I think you're wrong or misunderstood. If a method is
> overridden, you can skip around the override like you can in some
other
> languages
> 
> 
> 
> ________________________________
> 
> From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
[mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
] On
> Behalf Of justinbuser
> Sent: Wednesday, May 30, 2007 10:50 AM
> To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> 
> Subject: [flexcoders] Re: Is there any way to call super.super.method
in
> AS3?
> 
> 
> 
> 
> 
> --- In flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> , "wpding" <wpding@> wrote:
> >
> > I want to override a method of a super class. and I can use
> > super.method to invoke the corresponding method of the super class.
> > 
> > But how i can call a method of the super super class.
> > for example.
> > Class A{
> > protected function myMethod(){}
> > }
> > Class B extends A{
> > override protected function myMethod(){}
> > }
> > 
> > Class C extends B{
> > override protected function myMethod(){}
> > }
> > 
> > Is it possible to call A.myMethod in the function C.MyMethod?
> > 
> > Thanks
> >
> Yes, exactly how you wrote it. However in order to have the top level
> function actually run before adding methods etc... with level 2 you
need
> to call super.myMethod(); from B or not override it at all in B to be
> able to access it's functionality! from C. In other words, if you
> override a function and then try to override it again in a class
> extending the one with the original override and don't call the super
> version in the intermediate class then you end up with an empty
function
> at the end.
> 
> JjB
> 
> -#As always I could be completely wrong, but it's not likely#-
>

 

Reply via email to