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 -~----------~----~----~----~------~----~------~--~---