[Golist] update event for sequence / playablegroup?

Moses Gunesch moses at goasap.org
Sun Mar 23 14:59:56 PDT 2008


Thanks for the feedback on the cycles design Sebastian...

> Will there also be an update event for the whole sequence?

You mean a pulse-based update event?
I don't know, and I'm not really sure it's feasible to be honest. :(


Here are the problems involved:

1. Typically you don't want a group's UPDATE to fire until all  
children have updated first. Say you're running a complicated sequence  
with lots of parallel groups of tweens – whatever your update listener  
is doing, you normally don't want to end up with a case where only  
some of the child tweens have updated when your event fires or your  
code can't check each child's position accurately.

2. Syncing is really complex.
Any IUpdatable can specify its own pulseInterval so it's  
complicated... what if one tween has a pulse of 33 and another has a  
pulse of 100? By default the group wouldn't fire update until the 100  
pulse completed – so now the tracking has to not just count child  
updates, it has to track exactly which children have updated too.

3. SequenceCA adds more complexity.
SequenceCA tracks "trailing tweens" in a private group, which would  
have to be factored into this system. So over all, an accurate UPDATE  
event would require really quite a bit of extra code in the core  
classes.

4. Events are slow.
LinearGo gets around this by not firing events unless there are  
listeners for them. Update events are worst, they truly do affect  
performance. I'd like to avoid a situation where every child tween has  
update events subscribed in groups. Callbacks are slightly faster but  
it's still an issue.

-

Here's an alternative:

We could subclass addEventListener() in PlayableGroup and SequenceBase  
and instantiate a very simple private IUpdatable instance when UPDATE  
is subscribed. This instance could accept an update callback and be  
used to fire the UPDATE event from the group or sequence.

The docs would have to mention though, that this UPDATE would not  
necessarily be synced with child items, and may fire before all items  
have updated.

-

Thoughts? Sorry this is such a pain but, as you can see there are  
reasons why it's omitted. :)

-m


On Mar 23, 2008, at 2:58 PM, Sebastian Weyrauch wrote:

> Hi,
> think this is a good idea. A  good and tidy structure is more  
> important than a "easier" assignment.
>
> Besides my question in the last mail:
> I read you implemented a pause and resume event in 0.4.5. For the  
> whole sequence and the single steps, right?
> Will there also be an update event for the whole sequence? (I know  
> how to implemented, but a Go event would be nicer)
>
> sebastian
>
>
>
> Von: golist-bounces at goasap.org [mailto:golist-bounces at goasap.org] Im  
> Auftrag von Moses Gunesch
> Gesendet: Sonntag, 23. März 2008 19:18
> An: Mailing list for the Go ActionScript Animation Platform
> Betreff: [Golist] cycles design continued...
>
> Here's one more little puzzle piece on this:
>
> I'm thinking that sometimes people might want to repeat tweens from  
> the start, not cycle them back and forth.
>
> Since this gets pretty elaborate and clutters LinearGo's code quite  
> a bit, it might be prudent to create some kind of cycle handling  
> class that could be instantiated by the tween on start if cycles  
> isn't 1..?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://goasap.org/pipermail/golist_goasap.org/attachments/20080323/27b93da0/attachment.html 


More information about the GoList mailing list