hey moses,<br>hey list,<br><br>just checked out the go system and dude you rock!.<br>you are the first person who wrote a os lib where i felt at home instantly.<br>i just wrote a near complete animation suite for out own framework at work and<br>
it was incredible easy to implement. i just had to think about the way i want the<br>animation "language" to look like.<br><br>so, that was the love part (;<br><br>until now the overlap manager worked fine for me. but while testing delays i found a rather<br>
unexpected (at least for me) behaviour. if you tween the same property on the same target<br>with one of them having a delay one of both will be killed by the overlap manager.<br><br>Code:<br> var tween1:PropertyTween = new PropertyTween(sprite1, 4, Sine.easeOut, 'x', 400);<br>
tween1.start();<br> <br> var tween2:PropertyTween = new PropertyTween(sprite1, 4, Sine.easeOut, 'x', 10);<br> tween2.delay = 3;<br> tween2.start(); <br><br>
the problem is that the property matching is handled when calling start(). i don't know<br>if you did that for a good reason but i got it working by doing this :<br><br>LinearGo.as<br> /**<br> * Performs tween calculations on GoEngine pulse.<br>
*<br> * <p>Subclass <code>onUpdate</code> instead of this method.<br> *<br> * @param currentTime Clock time for the current block of updates.<br> * @see #onUpdate()<br>
*/<br> override public function update(currentTime:Number) : void<br> {<br> if (_state==PAUSED)<br> return;<br> <br> _currentFrame ++;<br> if (_useFrames)<br>
currentTime = _currentFrame;<br> <br> if (isNaN(_startTime)) // setup() must be called once prior to tween's 1st update.<br> setup(currentTime); // This is done here, not in start, for tighter syncing of items.<br>
<br> if (_startTime > currentTime)<br> return; // still PLAYING_DELAY<br> <br> //add to managers (added by chra)<br> if (!_started)<br> {<br>
GoEngine.manageItem(this);<br> }<br><br><br>GoEngine.as<br> /**<br> * Adds an IUpdatable instance to an update-queue corresponding to<br> * the item's pulseInterval property.<br>
*<br> * @param item Any object implementing IUpdatable that wishes<br> * to receive update calls on a pulse.<br> * <br> * @return Returns false only if this item was already in the<br>
* engine under the same pulse. (If an existing item is added<br> * but the pulseInterval has changed it will be removed,<br> * re-added, and true will be returned.)<br>
* <br> * @see #removeItem()<br> */<br> public static function addItem( item:IUpdatable ):Boolean<br> {<br>--- snip<br> // Report IManageable instances to registered managers (changed by chra)<br>
/*<br> if (item is IManageable) {<br> for each (var manager:IManager in managers)<br> manager.reserve( item as IManageable );<br> }<br> */<br>
return true;<br> }<br><br> <br> /**<br> *<br> */<br> public static function manageItem( item:IUpdatable ):Boolean<br> {<br> // Report IManageable instances to registered managers<br>
if (item is IManageable) {<br> for each (var manager:IManager in managers)<br> manager.reserve( item as IManageable );<br> }<br> return true;<br> }<br>
<br>cheers<br>Chris<br>