Not sure when it was added, i have only in the last week or so been using it 
myself!...

Alex Mcauley
http://www.thevacancymarket.com
----- Original Message ----- 
From: "Scott Haines" <sc...@newfrontproductions.com>
To: "Prototype & script.aculo.us" <prototype-scriptaculous@googlegroups.com>
Sent: Thursday, August 27, 2009 11:29 PM
Subject: [Proto-Scripty] Re: complete handler for effects.js



Just found that bug. Didn't know about afterFinish, is that
automatically added within effects.js. I didn't have that function in
my version of effects.js, would have saved me a bunch of time!

- Scott

On Aug 26, 1:16 am, "Alex McAuley" <webmas...@thecarmarketplace.com>
wrote:
> You have put a trailing comma on the last option wich will cause an error 
> in
> IE !!!...
>
> Alex Mcauleyhttp://www.thevacancymarket.com
>
> ----- Original Message -----
> From: "Scott Haines" <sc...@newfrontproductions.com>
> To: "Prototype & script.aculo.us" 
> <prototype-scriptaculous@googlegroups.com>
> Sent: Wednesday, August 26, 2009 2:36 AM
> Subject: [Proto-Scripty] complete handler for effects.js
>
> > In case anyone has run into the need to have an onComplete style
> > handler for effects.js I have made a successful addition to the source
> > code.
>
> > Step 1:
> > In the main effect.js code skip to about line 100, it should look like
> > this:
>
> > DefaultOptions: {
> > duration: 1.0, // seconds
> > fps: 100, // 100= assume 66fps max.
> > sync: false, // true for combining
> > from: 0.0,
> > to: 1.0,
> > delay: 0.0,
> > queue: 'parallel',
> > complete: 0,
> > },
>
> > You are adding 'complete: 0,' to the defaults, this will allow you to
> > run a subsequent function once the effect has completed. (This is the
> > first step of three).
>
> > Step 2:
> > Register the function within the Effect you would like to extend the
> > onComplete handler to. I needed this for the Effect.Fade and
> > Effect.Appear functions.
>
> > Example: Effect.Fade (starts around line 535)
>
> > Effect.Fade = function(element) {
> > element = $(element);
> > var oldOpacity = element.getInlineOpacity();
> > var options = Object.extend({
> > from: element.getOpacity() || 1.0,
> > to: 0.0,
> > afterFinishInternal: function(effect) {
> > if(effect.options.complete != 0){
> > effect.options.complete();
> > }
> > if (effect.options.to!=0) return;
> > effect.element.hide().setStyle({opacity: oldOpacity});
> > }
> > }, arguments[1] || { });
> > return new Effect.Opacity(element,options);
> > };
>
> > *on the afterFinishInternal you know that the effect has finished, so
> > you then ask whether or not the option for complete (onComplete) was
> > issued and piped into the function, if so you allow Javascript to read
> > the string as a function and you are golden.
>
> > Step 3: Using the onComplete (complete) option in your code.
>
> > example:
> > function fadeObj(obj,func){
> > Effect.Fade($(obj),{duration:1,complete:func});
> > }
>
> > function setInStone(){
> > alert('onComplete handler working for effects.js');
> > }
>
> > usage:
> > fadeObj('fadediv',setInStone);
>
> > I hope this helps anyone else who ran into the same issue. I wanted to
> > simulate the functionality of the caurina Tweener methods from
> > actionscript 3, or the complete handler from the SPRY lib in the more
> > useful effect.js.
>
> > Cheers,
> > Scott Haines
> > Newfront Creative
> >http://www.newfrontcreative.com



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to