Thanks John and Rajeev,

I will lookk further into "this.arguments.callee.parent" and all
that... Im rather new to "mootools inheritance", so that has me a bit
lost since it doesn't really work as C++ OOP...

Im sure this has been asked hundreds of time before, but I've always
seen quite different answers...

In my Fx.MorphPath, my "compute" method is been called as expected
(sin Im overriding it) Isn't the current structure supposed to call
its parent (fx.morph::compute) and that method call (fx.css::compute)
afterwards??


On 10/22/08, Rajeev J Sebastian <[EMAIL PROTECTED]> wrote:
> On Wed, Oct 22, 2008 at 12:47 PM, Rajeev J Sebastian
>  <[EMAIL PROTECTED]> wrote:
>  > On Wed, Oct 22, 2008 at 9:05 AM, Iván N Paz <[EMAIL PROTECTED]> wrote:
>  >> Hi guys,
>  >>
>  >> Im extending Fx.Morph onto another class that will basicly have the same
>  >> functionality plus other stuff it doesnt do right now (i.e. bezier 
> pathing)
>  >>
>  >> Maybe I've gotten wrong the whole implement/extend deal, and have surfed a
>  >> lot thru all the threads in here that treat such subject, and Aaorons book
>  >> as well....
>  >>
>  >> Well... to the point... this is what I have:
>  >>
>  >>
>  >> Fx.MorphPath = new Class({
>  >>
>  >>     Extends: Fx.Morph,
>  >>
>  >>     compute: function(from, to, delta){
>  >>         var now = {};
>  >>         //check if we have a motion path
>  >>         var mp = (this.options.motionpath ? this.options.motionpath : 
> false);
>  >>         for (var p in from)
>  >>         {
>  >>             //motionpath is only applied to top/left css properties
>  >>             if(mp) {
>  >>                 var coords = mp.getCoordinates(1-delta);
>  >>                 var x = coords.x + 'px';
>  >>                 var y = coords.y + 'px';
>  >>             }
>  >>             //Go rewriting as usual, but take motionpath in consideration 
> now...
>  >>             if(p == 'left' && mp){
>  >>                 //calculate X movement (left)
>  >>                 now[p] = x;
>  >>             }else if(p == 'top' && mp){
>  >>                 //calculate Y movement (top)
>  >>                 now[p] = y;
>  >>             }else{
>  >>                 //standard mootool calculation
>  >>                 now[p] = this.parent(from[p], to[p], delta);
>  >>             }
>  >>         }
>  >>         return now;
>  >>     }
>  >>
>  >> });
>  >>
>  >> So, where's the problem... the problem lies, in that I can do the bezier
>  >> pathing morphin thingy without problem BUT if I try to also morph another
>  >> property such as width, opacity, whatever, it breaks....
>  >>
>  >> I suspect the problem is here:
>  >>
>  >>                 //standard mootool calculation
>  >>                 now[p] = this.parent(from[p], to[p], delta);
>  >
>  > Main Problem is, you have to call the Fx.CSS's compute, and not Fx.Morph.
>  >
>  > What I would suggest, is
>  > a) to "fork" Fx.Morph into your own Fx.MorphPath.
>  > b) pass this.parent(from, to, delta) instead.
>
>
> Btw, those are alternatives ... you might want to start with (b) first.
>
>  Regards
>
> Rajeev J Sebastian
>



-- 
◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦◦
Ivanicus' Code Box
http://ivanicus.com/

Reply via email to