We need to work with the w3c to see if we can get the css transitions proposal to support interrupted animations better... I'll have a patch that delegates animations to the css engine ready soon.
On May 26, 2010, at 9:03 AM, Bret Simister <[email protected]> wrote: > As the creator of the animation engine for OpenLaszlo, I need to explain the > architecture to answer this question more clearly. > > One of the guiding principles for creating the LZX language was to embrace > the deterministic style of programming without sacrificing the kind of > experience I was seeking in developing animated experiences within LZX. The > base animation engine has achieved that. It allows engineers "in effect" to > simply describe the desired end-state interaction and allow the LZX engine to > calculate the necessary steps to give the experience a continuous feel. There > is no physics modeling within Laszlo, even though things "act" as if they > have weight when they move. I know how to model physical dynamics, I have > degrees in physics, computer science, and math. This is, however, is about > user interaction. Interaction that can take place at anytime and that "could" > interrupt existing animations. I did not want developers to be stressed with > having to alter currently executing animations by recalculating some bezier > splice in order to program a smooth simple bounce to an object for something > as! simple as mouseover/mouseout interactions. > > Below is code that any developer could easily understand. I challenge all of > you, however, to run this code as see how different the full interaction is > when you mouseover "slowly" across the boxes as well as "fast" . You may even > try mousing back and forth as fast as you can. The > Object.animate('attribute",to,value,...) call creates a new animation > everytime it is invoked. This call also attaches a new animation object to > the attribute. The previous animations ARE NOT cancelled. They proceed as > defined, and it's the set of animations working together that gives Laszlo > animations a "continuous feel", creating simulated weight properties to > objects. This is why we called it a "cinematic user experience". > > Max, what you may want to ask is "How do I get that same experience when I > change the attributes to an existing animation object" like I do when I call > object.animate( ...) for an object that is already being animated. That is a > good question and needs to be fixed without the OpenLaszlo platfrom. > > And finally, as far as I know, this type of behavior is not available in the > current CSS style of animation being proposed. At least not with the type of > code syntax used below. > > <canvas> > <class name="animatedbox" width="50" height="50" bgcolor="blue" > onmouseover="this.animate('height',150,500)" > onmouseout="this.animate('height',50,500)" /> > > <simplelayout axis="x" spacing="1" /> > <animatedbox/> > <animatedbox/> > <animatedbox/> > <animatedbox/> > <animatedbox/> > <animatedbox/> > <animatedbox/> > <animatedbox/> > <animatedbox/> > > </canvas> > > ----- > Bret Simister > Chief Interface Architect and Cofounder > Laszlo Systems, Inc. > > On May 25, 2010, at 12:49 PM, Max Carlson wrote: > >> It would it be more efficient to have a single animator per attribute and >> reuse that... Is there an advantage to having multiple simultaneous >> animators running at the same time, vs. setting the 'to' attribute on an >> existing animator? >> >> -- >> Regards, >> Max Carlson >> OpenLaszlo.org >
