[Golist] inconsistencies with LinearGo duration setting and actual playback time
Moses Gunesch
moses at goasap.org
Wed Aug 6 13:40:51 PDT 2008
Bobby,
One thing I can tell you about the mechanics of the Go system is that
tweens normally wait for the "next" synchronized pulse before they
start. This logic is found in LinearGo, and the purpose of it is to
enable the synchronization of large numbers of tweens, by ensuring
that their start times are all set to the same number. Without that
feature, the latency time involved even in looping through a block of
tweens in a sequence – just a millisecond or three – ends up knocking
tweens out of visual sync because their easing calculations use
different numbers.
If you want to try avoiding that feature, try adding this line to
LinearGo.start() just after the reset() call,
setup(getTimer());
I can't guarantee that this will fix the problem since the syncing of
items also affects the ending of items, which would be fairly hard to
correct for – you'd have to look ahead to find out if items will end
between pulses, or somehow pass the overshoot time to the following
tween in the sequence. (Sounds hard.)
The other trick you could try is setting GoItem.defaultPulseInterval
to 33, or 10, or 1. Don't forget though that different computers will
perform differently.
- m
On Aug 6, 2008, at 4:02 PM, rboyd at telematter.com wrote:
>
> Gil,
>
> Thanks again for the response. I had thought about this approach,
> but didn't implement it until after receiving your email last
> night. It works ok, but the root problem still stands. Only
> instead of the total overhead lag delay happening at the end of the
> playback, it spreads the problem out over the timeline of the
> sequence. This is at least better than it was, but now the problem
> is that there's tiny little pauses between sequence steps. They're
> barely noticeable though, especially on faster hardware, so I'll
> probably leave this as is for now.
>
> In the future we had thought about having a timer play along with
> the animation -- like 01:43/12:33 with the right hand side being the
> total time and the left being the (incrementing while playing)
> current time. This sort of thing is still a problem.
>
> What I did was just to extend SequenceCA with a new class which adds
> the slider HydroTween using useRelative: true. It works pretty out
> pretty ok I guess. I'm not using HydroTween because I have a custom
> IPlayable which extends PlayableBase that simply sets a boolean
> value on a target and then immediately dispatches GoEvent.COMPLETE.
> I couldn't think of how to implement this behavior with any
> HydroTween syntax. Which begs the question, how are you guys doing
> it? With display objects that don't exist or become visible until
> halfway through the animation for instance, do you dynamically
> instantiate them? Instantiate all the objects at the beginning and
> set visibility as needed (like I am)? Or maybe set their
> coordinates to some off-screen location and then translate them to
> their needed (visible) locations when needed?
>
> Thanks.
>
> -Bobby
>
>
> -------- Original Message --------
> Subject: Re: [Golist] inconsistencies with LinearGo duration setting
> and actual playback time
> From: "Gil Birman" <gil at allflashwebsite.com>
> Date: Tue, August 05, 2008 10:06 pm
> To: "Mailing list for the Go ActionScript Animation Platform"
> <golist at goasap.org>
>
> rb,
>
> When I ran your test, it was off by one second. This reminds me of
> an article I read a little while ago that describes a technique for
> creating an animation that runs in the exact time specified
> regardless of the speed of the computer (I can't remember if it
> involved tweening).... I think what you'll see is that the
> discrepancy will vary slightly depending on the speed of the computer.
>
> I'm not totally clear on your requirements, but why don't you just
> create a group for each step in the sequence? [ yourTween1,
> sliderTween1], [ yourTween2, sliderTween2 ],.... Where the
> combination of all the sliderTween's would more or less be
> equivalent to what you were doing before (only synched up better).
>
> Also, you might want to use HydroSequence for this sort of thing.
>
> Gil
> _______________________________________________
> GoList mailing list
> GoList at goasap.org
> http://goasap.org/mailman/listinfo/golist_goasap.org
> _______________________________________________
> GoList mailing list
> GoList at goasap.org
> http://goasap.org/mailman/listinfo/golist_goasap.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://goasap.org/pipermail/golist_goasap.org/attachments/20080806/43c6c787/attachment.html
More information about the GoList
mailing list