So I&#39;m confused a bit -seems like you said you were leaning towards 1 property per tween that exists, but you like what I&#39;m doing with that last code sample<br><br>LOL I know I missed something<br><br>I think that I started to get what you meant though - having those apart of a PlayableGroup etc is essentially what we end up with, is that about right?<br>
<br><div class="gmail_quote">On Tue, May 6, 2008 at 3:17 PM, Moses Gunesch &lt;<a href="mailto:moses@goasap.org">moses@goasap.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style="">Yeah that&#39;s good. I created a system called OpenTween – don&#39;t think I ever posted it though because I wasn&#39;t sure I liked the abstraction layer of putting a ton of information and functionality into property classes which is what happened when I tried this.<div>
<br></div><div>My property inputs were</div><div><div style="margin: 0px;">&nbsp;&nbsp;propName: <span style="color: rgb(55, 55, 55);">String</span>,&nbsp;</div><div style="margin: 0px;">&nbsp; endVal: *=<span style="color: rgb(127, 0, 85);">null</span>,&nbsp;</div>
<div style="margin: 0px;">&nbsp; endValRelative: <span style="color: rgb(55, 55, 55);">Boolean</span>=<span style="color: rgb(127, 0, 85);">false</span>,&nbsp;</div><div style="margin: 0px;">&nbsp; startVal: *=<span style="color: rgb(127, 0, 85);">null</span>,&nbsp;</div>
<div style="margin: 0px;">&nbsp; startValRelative: <span style="color: rgb(55, 55, 55);">Boolean</span>=<span style="color: rgb(127, 0, 85);">false</span></div></div><div><div><br></div><div>Then I had this functionality in there from Fuse, that lets you omit either start or end and it will figure it out. That&#39;s probably why it got complicated.&nbsp;&nbsp;(I will share OpenTween if you want.)</div>
<div><br></div><div>Anyway yeah I think there is something to a multi-property approach for sure, but I&#39;ve been leaning back toward just extending LinearGo in the simplest way possible – one property per tween class.&nbsp;<b></b></div>
<div><b><br></b></div><div><b>Here is why:</b> if every single property were in a separate tween class, OverlapMonitor works the best in that it can allow just one property to be paused, stopped and so on. That&#39;s how ZigoEngine worked, it atomized every tween internally. I&#39;ve been thinking PlayableGroup could be extended to handle multi-prop tweens by creating separate tween instances, then it could let you drill into them to grab children by property etc.&nbsp;</div>
<div><br></div><div>One could argue that it&#39;s slower to not block all similar tweens, but it also provides more control and is less abstract, and I&#39;ve found that in real practice there are usually only a very small number of &quot;blocked&quot; tweens at once... pretty soon you want to change delay/duration/easing on one property or another and you end up with a group anyway.</div>
<div><br></div><div>That said, I&#39;d love to see your concept taken all the way John...!</div><div><br></div><div>:-)</div><div><br></div></div><div><br><div><div><div></div><div class="Wj3C7c"><div>On May 6, 2008, at 3:54 PM, John Grden wrote:</div>
<br></div></div><blockquote type="cite"><div><div></div><div class="Wj3C7c"><b>Was this:</b><br>tween_0 = new Tween3D(target, 1, Equations.easeOutCubic);<br>tween_0.x = 0;<br>tween_0.y = 50;<br>tween_0.rotationZ = 0;<br>sequence.addStep(tween_0);<br>
<br>sequence.lastStep.advance = new OnDurationComplete(.2); // advance early/overlap<br> tween_0b = new Tween3D(target, 1, Equations.easeOutCubic);<br>tween_0b.z = 200;<br>sequence.addStep(tween_0b, true); // 2nd param groups it with previous step. param is &quot;addToLastStep&quot;<br>
<br>tween_1 = new Tween3D(target, 1, Equations.easeOutCubic);<br> tween_1.x = -10;<br>tween_1.y = 85;<br>tween_1.rotationZ = 15;<br>sequence.addStep(tween_1);<br>sequence.lastStep.advance = new OnDurationComplete(.25); // advance early/overlap<br>
<br>tween_2 = new Tween3D(target, 1, Equations.easeOutBounce);<br> tween_2.rotationX = 0;<br>tween_2.rotationY = 0;<br>sequence.addStep(tween_2);<br><br><b>Is now this:</b><br><br>tween_0 = new Tween3D(target, [Go3D.x(0), Go3D.y(50), Go3D.rotationZ(0)], 1, Equations.easeOutCubic);<br>
sequence.addStep(tween_0);<br> sequence.lastStep.advance = new OnDurationComplete(.2); // advance early/overlap<br><br>tween_0b = new Tween3D(target, [Go3D.z(200)], 1, Equations.easeOutCubic);<br>sequence.addStep(tween_0b, true); // 2nd param groups it with previous step. param is &quot;addToLastStep&quot;<br>
 <br>tween_1 = new Tween3D(target, [Go3D.x(-10), Go3D.y(85), Go3D.rotationZ(15)], 1, Equations.easeOutCubic);<br>sequence.addStep(tween_1);<br>sequence.lastStep.advance = new OnDurationComplete(.25); // advance early/overlap<br>
 <br>tween_2 = new Tween3D(target, [Go3D.rotationX(0), Go3D.rotationY(0)], 1, Equations.easeOutBounce);<br>sequence.addStep(tween_2);<br clear="all"><br><br>I&#39;m still thinking about this approach, but thought I would throw it out to you guys to see what you thought.&nbsp; Right now, there&#39;s static methods in Go3D that return a Go3Dproperty.&nbsp; Tween3D has an array called propertyChanges and if there is an array in the propertyChanges argument, I just set it straight away - no parsing required.&nbsp; It&#39;s all ready to go and is filled with Go3DProperty objects.<br>
 <br>Thoughts?<br>-- <br></div></div>[ JPG ] _______________________________________________<br>GoList mailing list<br><a href="mailto:GoList@goasap.org" target="_blank">GoList@goasap.org</a><br><a href="http://goasap.org/mailman/listinfo/golist_goasap.org" target="_blank">http://goasap.org/mailman/listinfo/golist_goasap.org</a><br>
</blockquote></div><br></div></div><br>_______________________________________________<br>
GoList mailing list<br>
<a href="mailto:GoList@goasap.org">GoList@goasap.org</a><br>
<a href="http://goasap.org/mailman/listinfo/golist_goasap.org" target="_blank">http://goasap.org/mailman/listinfo/golist_goasap.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>[ JPG ]