<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.E-MailFormatvorlage19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=DE link=blue vlink=purple style='word-wrap: break-word;-webkit-nbsp-mode: space;
-webkit-line-break: after-white-space'>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Ok, I understand the problems. I'm not sure what's better: The
alternative or leaving this away.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If it is not to complicate, you can implement this, else: let it
be :)<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
golist-bounces@goasap.org [mailto:golist-bounces@goasap.org] <b>Im Auftrag von </b>Moses
Gunesch<br>
<b>Gesendet:</b> Sonntag, 23. März 2008 23:00<br>
<b>An:</b> Mailing list for the Go ActionScript Animation Platform<br>
<b>Betreff:</b> [Golist] update event for sequence / playablegroup?<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Thanks for the feedback on the cycles design Sebastian...<o:p></o:p></p>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><span class=apple-style-span><span style='font-size:11.5pt;
font-family:"Calibri","sans-serif";color:#1F497D'>Will there also be an update
event for the whole sequence?</span></span><o:p></o:p></p>

</blockquote>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>You mean a pulse-based update event?&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>I don't know, and I'm not really sure it's feasible to be
honest. :(<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>Here are the problems involved:<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>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 &#8211; 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.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>2. Syncing is really complex.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>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
&#8211; so now the tracking has to not just count child updates, it has to
track exactly which children have updated too.&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>3. SequenceCA adds more complexity.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>SequenceCA tracks &quot;trailing tweens&quot; 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.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<div>

<p class=MsoNormal>4. Events are slow.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>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.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>-<o:p></o:p></p>

</div>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>Here's an alternative:<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>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.&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>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.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>-<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>Thoughts? Sorry this is such a pain but, as you can see
there are reasons why it's omitted. :)<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>-m<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<div>

<p class=MsoNormal>On Mar 23, 2008, at 2:58 PM, Sebastian Weyrauch wrote:<o:p></o:p></p>

<p class=MsoNormal><br>
<br>
<o:p></o:p></p>

<div>

<div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi,</span><span style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>think this is a good idea. A &nbsp;good and tidy structure is
more important than a &quot;easier&quot; assignment.</span><span
style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><span style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Besides my question in the last mail:</span><span
style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I read you implemented a pause and resume event in 0.4.5. For
the whole sequence and the single steps, right?</span><span style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Will there also be an update event for the whole sequence? (I
know how to implemented, but a Go event would be nicer)</span><span
style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><span style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>sebastian</span><span style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><span style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><span style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><span style='color:black'><o:p></o:p></span></p>

</div>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm;
border-width:initial;border-color:initial'>

<div>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:black'>Von:</span></b><span class=apple-converted-space><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>&nbsp;</span></span><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><a
href="mailto:golist-bounces@goasap.org">golist-bounces@goasap.org</a> [<a
href="mailto:golist-bounces@goasap.org">mailto:golist-bounces@goasap.org</a>]<span
class=apple-converted-space>&nbsp;</span><b>Im Auftrag von<span
class=apple-converted-space>&nbsp;</span></b>Moses Gunesch<br>
<b>Gesendet:</b><span class=apple-converted-space>&nbsp;</span>Sonntag, 23.
März 2008 19:18<br>
<b>An:</b><span class=apple-converted-space>&nbsp;</span>Mailing list for the
Go ActionScript Animation Platform<br>
<b>Betreff:</b><span class=apple-converted-space>&nbsp;</span>[Golist] cycles
design continued...</span><span style='color:black'><o:p></o:p></span></p>

</div>

</div>

</div>

<div>

<p class=MsoNormal><span style='color:black'>&nbsp;<o:p></o:p></span></p>

</div>

<div>

<div>

<p class=MsoNormal><span style='color:black'>Here's one more little puzzle
piece on this:&nbsp;<o:p></o:p></span></p>

</div>

</div>

<div>

<div>

<p class=MsoNormal><span style='color:black'>&nbsp;<o:p></o:p></span></p>

</div>

</div>

<div>

<div>

<p class=MsoNormal><span style='color:black'>I'm thinking that sometimes people
might want to repeat tweens from the start, not cycle them back and forth.&nbsp;<o:p></o:p></span></p>

</div>

</div>

<div>

<div>

<p class=MsoNormal><span style='color:black'>&nbsp;<o:p></o:p></span></p>

</div>

</div>

<div>

<div>

<p class=MsoNormal><span style='color:black'>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..?<o:p></o:p></span></p>

</div>

</div>

<div>

<div>

<p class=MsoNormal><span style='color:black'>&nbsp;<o:p></o:p></span></p>

</div>

</div>

</div>

</div>

</div>

</div>

</div>

</div>

</body>

</html>