Peepz, I was looking into how script.aculo.us handles effect to write a tutorial and for a current project I wanted to make transition between PAIR effects possible. These PAIR effects are (Appear/Fade, SlideUp/SlideDown, BlindUp/BlindDown) the effect that toggle can handle. script.aculo.us calls queue.loop each 40 milliseconds, and that calls all the effect.loop for all effects in the queue. Then Effect calls render and calls setup when its idle and calls update (with position) when its running. *update* does what the effects should do (fade, scale or move) and its called with the pos parameter 25 times a second. So know we have a problem, how does one calculate if a effect in the same queue with the same dom its trying to activate itself during the previous effect on the same dom. I think there are 2 things we can do: - Search the queue each time render is called for a effect and cancel the queue if the effect is manipulating the same dom and its PAIR effect of a other. I think this would kill the performance unless the transition only happens when a option is specified. - The second think what could be done is, passing on the effect that is created to make the transition against. This would be much more easy however it would talk more effect to use it. What do you guys think? anyone have a other opinion? Thnx, Abdur-Rahman
Well after struggling a bit with how to do it, I have a few problems. 1. I will need to determine the queue where the effect is added to (I think I will need to set the value of Effect.queue). 2. I need to know the type of effect and see if its in the PAIR array and find its opposite 3. Check if the processed effect is the opposite of the currently active effect 4. Call the pair method (doesn''t exist yet'') of the ''idle'' effect with the ''active'' effect as argument 5. Let the pair method switch the internal values of the active effect to the idle effect 6. Cancel the ''active'' effect and remove it from queue. I have made a diff with the basic structure (railsdevelopment.com/code/pair.diff). I really need some help here with 2, 4 and 5. Especially 5 because its really hard (apart from the Fade/Appear) to determine what are the internal values. Some are hardcoded into the Before/AfterSetupInternal so that will need to be fixed. thnx, Abdur-Rahman Abdur-Rahman Advany wrote:> Peepz, > > I was looking into how script.aculo.us handles effect to write a > tutorial and for a current project I wanted to make transition between > PAIR effects possible. These PAIR effects are (Appear/Fade, > SlideUp/SlideDown, BlindUp/BlindDown) the effect that toggle can handle. > > script.aculo.us calls queue.loop each 40 milliseconds, and that calls > all the effect.loop for all effects in the queue. Then Effect calls > render and calls setup when its idle and calls update (with position) > when its running. *update* does what the effects should do (fade, > scale or move) and its called with the pos parameter 25 times a > second. So know we have a problem, how does one calculate if a effect > in the same queue with the same dom its trying to activate itself > during the previous effect on the same dom. > > I think there are 2 things we can do: > - Search the queue each time render is called for a effect and cancel > the queue if the effect is manipulating the same dom and its PAIR > effect of a other. I think this would kill the performance unless the > transition only happens when a option is specified. > - The second think what could be done is, passing on the effect that > is created to make the transition against. This would be much more > easy however it would talk more effect to use it. > > What do you guys think? anyone have a other opinion? > > Thnx, > > Abdur-Rahman > > _______________________________________________ > Rails-spinoffs mailing list > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs >
Well, I have made a lot of progress, however I have problems doing the transition between effects, I REALLY need some help with this. The diff is on http://www.railsdevelopment.com/code/pair.diff ... I think we need to do some put all setup that modifies the dom object to aftersetup (and only call that when we don''t do a transition). But I need some reviewing of the current code.... Abdur-Rahman Advany wrote:> Well after struggling a bit with how to do it, I have a few problems. > > 1. I will need to determine the queue where the effect is added to (I > think I will need to set the value of Effect.queue). > 2. I need to know the type of effect and see if its in the PAIR array > and find its opposite > 3. Check if the processed effect is the opposite of the currently > active effect > 4. Call the pair method (doesn''t exist yet'') of the ''idle'' effect with > the ''active'' effect as argument > 5. Let the pair method switch the internal values of the active effect > to the idle effect > 6. Cancel the ''active'' effect and remove it from queue. > > I have made a diff with the basic structure > (railsdevelopment.com/code/pair.diff). I really need some help here > with 2, 4 and 5. Especially 5 because its really hard (apart from the > Fade/Appear) to determine what are the internal values. Some are > hardcoded into the Before/AfterSetupInternal so that will need to be > fixed. > > thnx, > > Abdur-Rahman > > Abdur-Rahman Advany wrote: >> Peepz, >> >> I was looking into how script.aculo.us handles effect to write a >> tutorial and for a current project I wanted to make transition >> between PAIR effects possible. These PAIR effects are (Appear/Fade, >> SlideUp/SlideDown, BlindUp/BlindDown) the effect that toggle can handle. >> >> script.aculo.us calls queue.loop each 40 milliseconds, and that calls >> all the effect.loop for all effects in the queue. Then Effect calls >> render and calls setup when its idle and calls update (with position) >> when its running. *update* does what the effects should do (fade, >> scale or move) and its called with the pos parameter 25 times a >> second. So know we have a problem, how does one calculate if a effect >> in the same queue with the same dom its trying to activate itself >> during the previous effect on the same dom. >> >> I think there are 2 things we can do: >> - Search the queue each time render is called for a effect and cancel >> the queue if the effect is manipulating the same dom and its PAIR >> effect of a other. I think this would kill the performance unless the >> transition only happens when a option is specified. >> - The second think what could be done is, passing on the effect that >> is created to make the transition against. This would be much more >> easy however it would talk more effect to use it. >> >> What do you guys think? anyone have a other opinion? >> >> Thnx, >> >> Abdur-Rahman >> >> _______________________________________________ >> Rails-spinoffs mailing list >> Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org >> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs >> > > _______________________________________________ > Rails-spinoffs mailing list > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs >
http://www.railsdevelopment.com/code/script.aculo.us_dev/test/functional/effects7_test.html Only fade and appear work well with the pairing of effects, I need to determine what value''s of scale need to be transfered from one effect to the other...Would appreciate help!! Abdur-Rahman Advany wrote:> Well, I have made a lot of progress, however I have problems doing the > transition between effects, I REALLY need some help with this. The > diff is on http://www.railsdevelopment.com/code/pair.diff ... > I think we need to do some put all setup that modifies the dom object > to aftersetup (and only call that when we don''t do a transition). But > I need some reviewing of the current code.... > > Abdur-Rahman Advany wrote: >> Well after struggling a bit with how to do it, I have a few problems. >> >> 1. I will need to determine the queue where the effect is added to (I >> think I will need to set the value of Effect.queue). >> 2. I need to know the type of effect and see if its in the PAIR array >> and find its opposite >> 3. Check if the processed effect is the opposite of the currently >> active effect >> 4. Call the pair method (doesn''t exist yet'') of the ''idle'' effect >> with the ''active'' effect as argument >> 5. Let the pair method switch the internal values of the active >> effect to the idle effect >> 6. Cancel the ''active'' effect and remove it from queue. >> >> I have made a diff with the basic structure >> (railsdevelopment.com/code/pair.diff). I really need some help here >> with 2, 4 and 5. Especially 5 because its really hard (apart from the >> Fade/Appear) to determine what are the internal values. Some are >> hardcoded into the Before/AfterSetupInternal so that will need to be >> fixed. >> >> thnx, >> >> Abdur-Rahman >> >> Abdur-Rahman Advany wrote: >>> Peepz, >>> >>> I was looking into how script.aculo.us handles effect to write a >>> tutorial and for a current project I wanted to make transition >>> between PAIR effects possible. These PAIR effects are (Appear/Fade, >>> SlideUp/SlideDown, BlindUp/BlindDown) the effect that toggle can >>> handle. >>> >>> script.aculo.us calls queue.loop each 40 milliseconds, and that >>> calls all the effect.loop for all effects in the queue. Then Effect >>> calls render and calls setup when its idle and calls update (with >>> position) when its running. *update* does what the effects should do >>> (fade, scale or move) and its called with the pos parameter 25 times >>> a second. So know we have a problem, how does one calculate if a >>> effect in the same queue with the same dom its trying to activate >>> itself during the previous effect on the same dom. >>> >>> I think there are 2 things we can do: >>> - Search the queue each time render is called for a effect and >>> cancel the queue if the effect is manipulating the same dom and its >>> PAIR effect of a other. I think this would kill the performance >>> unless the transition only happens when a option is specified. >>> - The second think what could be done is, passing on the effect that >>> is created to make the transition against. This would be much more >>> easy however it would talk more effect to use it. >>> >>> What do you guys think? anyone have a other opinion? >>> >>> Thnx, >>> >>> Abdur-Rahman >>> >>> _______________________________________________ >>> Rails-spinoffs mailing list >>> Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org >>> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs >>> >> >> _______________________________________________ >> Rails-spinoffs mailing list >> Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org >> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs >> > > _______________________________________________ > Rails-spinoffs mailing list > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs >
Nicely done with the fade and appear...I wish I could help with the other ones, but I don''t know overly much about the other effects. I''ll at least take a look though... -Jerod On 1/26/06, Abdur-Rahman Advany <rails-U5wbzIpkoVrQT0dZR+AlfA@public.gmane.org> wrote:> > > http://www.railsdevelopment.com/code/script.aculo.us_dev/test/functional/effects7_test.html > > Only fade and appear work well with the pairing of effects, I need to > determine what value''s of scale need to be transfered from one effect to > the other...Would appreciate help!! > > Abdur-Rahman Advany wrote: > > Well, I have made a lot of progress, however I have problems doing the > > transition between effects, I REALLY need some help with this. The > > diff is on http://www.railsdevelopment.com/code/pair.diff ... > > I think we need to do some put all setup that modifies the dom object > > to aftersetup (and only call that when we don''t do a transition). But > > I need some reviewing of the current code.... > > > > Abdur-Rahman Advany wrote: > >> Well after struggling a bit with how to do it, I have a few problems. > >> > >> 1. I will need to determine the queue where the effect is added to (I > >> think I will need to set the value of Effect.queue). > >> 2. I need to know the type of effect and see if its in the PAIR array > >> and find its opposite > >> 3. Check if the processed effect is the opposite of the currently > >> active effect > >> 4. Call the pair method (doesn''t exist yet'') of the ''idle'' effect > >> with the ''active'' effect as argument > >> 5. Let the pair method switch the internal values of the active > >> effect to the idle effect > >> 6. Cancel the ''active'' effect and remove it from queue. > >> > >> I have made a diff with the basic structure > >> (railsdevelopment.com/code/pair.diff). I really need some help here > >> with 2, 4 and 5. Especially 5 because its really hard (apart from the > >> Fade/Appear) to determine what are the internal values. Some are > >> hardcoded into the Before/AfterSetupInternal so that will need to be > >> fixed. > >> > >> thnx, > >> > >> Abdur-Rahman > >> > >> Abdur-Rahman Advany wrote: > >>> Peepz, > >>> > >>> I was looking into how script.aculo.us handles effect to write a > >>> tutorial and for a current project I wanted to make transition > >>> between PAIR effects possible. These PAIR effects are (Appear/Fade, > >>> SlideUp/SlideDown, BlindUp/BlindDown) the effect that toggle can > >>> handle. > >>> > >>> script.aculo.us calls queue.loop each 40 milliseconds, and that > >>> calls all the effect.loop for all effects in the queue. Then Effect > >>> calls render and calls setup when its idle and calls update (with > >>> position) when its running. *update* does what the effects should do > >>> (fade, scale or move) and its called with the pos parameter 25 times > >>> a second. So know we have a problem, how does one calculate if a > >>> effect in the same queue with the same dom its trying to activate > >>> itself during the previous effect on the same dom. > >>> > >>> I think there are 2 things we can do: > >>> - Search the queue each time render is called for a effect and > >>> cancel the queue if the effect is manipulating the same dom and its > >>> PAIR effect of a other. I think this would kill the performance > >>> unless the transition only happens when a option is specified. > >>> - The second think what could be done is, passing on the effect that > >>> is created to make the transition against. This would be much more > >>> easy however it would talk more effect to use it. > >>> > >>> What do you guys think? anyone have a other opinion? > >>> > >>> Thnx, > >>> > >>> Abdur-Rahman > >>> > >>> _______________________________________________ > >>> Rails-spinoffs mailing list > >>> Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > >>> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs > >>> > >> > >> _______________________________________________ > >> Rails-spinoffs mailing list > >> Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > >> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs > >> > > > > _______________________________________________ > > Rails-spinoffs mailing list > > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs > > > > _______________________________________________ > Rails-spinoffs mailing list > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs >_______________________________________________ Rails-spinoffs mailing list Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs