What about Fx.Transitions.Quad.easeIn together with
Fx.Transitions.Bounce.easeOut?
I googled a lot but couldn't find anything about the topic of setting
more than one transition to an effect (for example one for the easeIn
and a different one for the easeOut).
So I tried to inspect the source code (MooTools 1.2.5) to get a grasp
of what a Transition really was.
I came out first with this:
[code]
var myFx = new Fx.Morph(myObject, {
transition: new Fx.Transition(function(p,x){
return (Fx.Transitions.Back.easeOut(p,x) +
Fx.Transitions.Bounce.easeIn(p,x))/2;
}) //it works!
});
[/code]
and then with this:
[code]
Fx.Transitions.Combine = function() { //pass in one or more
FX.Transitions functions
var transitions = arguments, n = arguments.length; //establish a
closure
return new Fx.Transition(function(p, x){
var i, sum = 0;
for (i = 0; i < n; i +=1) {
sum += transitions[i](p, x);
}
return (sum / n );
})
};
var myFx = new Fx.Morph(myObject, {
transition: Fx.Transitions.Combine(Fx.Transitions.Back.easeOut,
Fx.Transitions.Bounce.easeIn,
Fx.Transitions.Elastic.easeInOut)
}); //ugly but works
[/code]
which to my great wonder worked as expected :-)
I make a new Transition that returns a normalized sum of other
transitions.
Obviously there are some problems: no error control, the sum effect is
quite bad on the endings of the effect.
I could rewrite the Combine to accept only two Transitions, one for
the first half of the effect and the other for the second half. I
wrote it in variable parameters form most for completeness and
exercise.
My questions are:
am I reinventing the wheel? is there yet another method of doing so?
is the structure of Fx.Transitions.Combine correct and uniform with
the rest of mootools?
should I add a check for the existance of the parameters? what should
I do if one is null/missing/not a function/not a Transition?
if everything is fine how should I publish it?
I know it could seem of little use, but somehow while studying Fx this
was a bit that I really though was missing :-)
Thank you for your comments