<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_Tutorial%2FAnimation%2FTimer</id>
		<title>JavaScript Tutorial/Animation/Timer - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_Tutorial%2FAnimation%2FTimer"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_Tutorial/Animation/Timer&amp;action=history"/>
		<updated>2026-04-05T05:45:27Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_Tutorial/Animation/Timer&amp;diff=8981&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_Tutorial/Animation/Timer&amp;diff=8981&amp;oldid=prev"/>
				<updated>2010-05-26T08:24:41Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 08:24, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_Tutorial/Animation/Timer&amp;diff=8980&amp;oldid=prev</id>
		<title> в 18:52, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_Tutorial/Animation/Timer&amp;diff=8980&amp;oldid=prev"/>
				<updated>2010-05-25T18:52:56Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Count down timer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;A Simple Page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;refresh&amp;quot; content=&amp;quot;30&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
var x=30;&lt;br /&gt;
var y=1;&lt;br /&gt;
function startClock(){&lt;br /&gt;
    x=x-y;&lt;br /&gt;
    document.form1.clock.value = x;&lt;br /&gt;
    timerID=setTimeout(&amp;quot;startClock()&amp;quot;, 1000);&lt;br /&gt;
}&lt;br /&gt;
//  --&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body onload=&amp;quot;startClock()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form name=&amp;quot;form1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;clock&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Jtween animation==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;JSTween&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**********************************************************************&lt;br /&gt;
TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
Open source under the BSD License.&lt;br /&gt;
Copyright (c) 2001 Robert Penner&lt;br /&gt;
JavaScript version copyright (C) 2006 by Philippe Maegerman&lt;br /&gt;
All rights reserved.&lt;br /&gt;
Redistribution and use in source and binary forms, with or without&lt;br /&gt;
modification, are permitted provided that the following conditions are&lt;br /&gt;
met:&lt;br /&gt;
   * Redistributions of source code must retain the above copyright&lt;br /&gt;
notice, this list of conditions and the following disclaimer.&lt;br /&gt;
   * Redistributions in binary form must reproduce the above&lt;br /&gt;
copyright notice, this list of conditions and the following disclaimer&lt;br /&gt;
in the documentation and/or other materials provided with the&lt;br /&gt;
distribution.&lt;br /&gt;
   * Neither the name of the author nor the names of contributors may&lt;br /&gt;
be used to endorse or promote products derived from this software&lt;br /&gt;
without specific prior written permission.&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
&amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT&lt;br /&gt;
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,&lt;br /&gt;
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE&lt;br /&gt;
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
*****************************************/&lt;br /&gt;
function Delegate() {}&lt;br /&gt;
Delegate.create = function (o, f) {&lt;br /&gt;
  var a = new Array() ;&lt;br /&gt;
  var l = arguments.length ;&lt;br /&gt;
  for(var i = 2 ; i &amp;lt; l ; i++) a[i - 2] = arguments[i] ;&lt;br /&gt;
  return function() {&lt;br /&gt;
    var aP = [].concat(arguments, a) ;&lt;br /&gt;
    f.apply(o, aP);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
Tween = function(obj, prop, func, begin, finish, duration, suffixe){&lt;br /&gt;
  this.init(obj, prop, func, begin, finish, duration, suffixe)&lt;br /&gt;
}&lt;br /&gt;
var t = Tween.prototype;&lt;br /&gt;
t.obj = new Object();&lt;br /&gt;
t.prop=&amp;quot;&amp;quot;;&lt;br /&gt;
t.func = function (t, b, c, d) { return c*t/d + b; };&lt;br /&gt;
t.begin = 0;&lt;br /&gt;
t.change = 0;&lt;br /&gt;
t.prevTime = 0;&lt;br /&gt;
t.prevPos = 0;&lt;br /&gt;
t.looping = false;&lt;br /&gt;
t._duration = 0;&lt;br /&gt;
t._time = 0;&lt;br /&gt;
t._pos = 0;&lt;br /&gt;
t._position = 0;&lt;br /&gt;
t._startTime = 0;&lt;br /&gt;
t._finish = 0;&lt;br /&gt;
t.name = &amp;quot;&amp;quot;;&lt;br /&gt;
t.suffixe = &amp;quot;&amp;quot;;&lt;br /&gt;
t._listeners = new Array();  &lt;br /&gt;
t.setTime = function(t){&lt;br /&gt;
  this.prevTime = this._time;&lt;br /&gt;
  if (t &amp;gt; this.getDuration()) {&lt;br /&gt;
    if (this.looping) {&lt;br /&gt;
      this.rewind (t - this._duration);&lt;br /&gt;
      this.update();&lt;br /&gt;
      this.broadcastMessage(&amp;quot;onMotionLooped&amp;quot;,{target:this,type:&amp;quot;onMotionLooped&amp;quot;});&lt;br /&gt;
    } else {&lt;br /&gt;
      this._time = this._duration;&lt;br /&gt;
      this.update();&lt;br /&gt;
      this.stop();&lt;br /&gt;
      this.broadcastMessage(&amp;quot;onMotionFinished&amp;quot;,{target:this,type:&amp;quot;onMotionFinished&amp;quot;});&lt;br /&gt;
    }&lt;br /&gt;
  } else if (t &amp;lt; 0) {&lt;br /&gt;
    this.rewind();&lt;br /&gt;
    this.update();&lt;br /&gt;
  } else {&lt;br /&gt;
    this._time = t;&lt;br /&gt;
    this.update();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
t.getTime = function(){&lt;br /&gt;
  return this._time;&lt;br /&gt;
}&lt;br /&gt;
t.setDuration = function(d){&lt;br /&gt;
  this._duration = (d == null || d &amp;lt;= 0) ? 100000 : d;&lt;br /&gt;
}&lt;br /&gt;
t.getDuration = function(){&lt;br /&gt;
  return this._duration;&lt;br /&gt;
}&lt;br /&gt;
t.setPosition = function(p){&lt;br /&gt;
  this.prevPos = this._pos;&lt;br /&gt;
  var a = this.suffixe != &amp;quot;&amp;quot; ? this.suffixe : &amp;quot;&amp;quot;;&lt;br /&gt;
  this.obj[this.prop] = Math.round(p) + a;&lt;br /&gt;
  this._pos = p;&lt;br /&gt;
  this.broadcastMessage(&amp;quot;onMotionChanged&amp;quot;,{target:this,type:&amp;quot;onMotionChanged&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
t.getPosition = function(t){&lt;br /&gt;
  if (t == undefined) t = this._time;&lt;br /&gt;
  return this.func(t, this.begin, this.change, this._duration);&lt;br /&gt;
};&lt;br /&gt;
t.setFinish = function(f){&lt;br /&gt;
  this.change = f - this.begin;&lt;br /&gt;
};&lt;br /&gt;
t.geFinish = function(){&lt;br /&gt;
  return this.begin + this.change;&lt;br /&gt;
};&lt;br /&gt;
t.init = function(obj, prop, func, begin, finish, duration, suffixe){&lt;br /&gt;
  if (!arguments.length) return;&lt;br /&gt;
  this._listeners = new Array();&lt;br /&gt;
  this.addListener(this);&lt;br /&gt;
  if(suffixe) this.suffixe = suffixe;&lt;br /&gt;
  this.obj = obj;&lt;br /&gt;
  this.prop = prop;&lt;br /&gt;
  this.begin = begin;&lt;br /&gt;
  this._pos = begin;&lt;br /&gt;
  this.setDuration(duration);&lt;br /&gt;
  if (func!=null &amp;amp;&amp;amp; func!=&amp;quot;&amp;quot;) {&lt;br /&gt;
    this.func = func;&lt;br /&gt;
  }&lt;br /&gt;
  this.setFinish(finish);&lt;br /&gt;
}&lt;br /&gt;
t.start = function(){&lt;br /&gt;
  this.rewind();&lt;br /&gt;
  this.startEnterFrame();&lt;br /&gt;
  this.broadcastMessage(&amp;quot;onMotionStarted&amp;quot;,{target:this,type:&amp;quot;onMotionStarted&amp;quot;});&lt;br /&gt;
  //alert(&amp;quot;in&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
t.rewind = function(t){&lt;br /&gt;
  this.stop();&lt;br /&gt;
  this._time = (t == undefined) ? 0 : t;&lt;br /&gt;
  this.fixTime();&lt;br /&gt;
  this.update();&lt;br /&gt;
}&lt;br /&gt;
t.fforward = function(){&lt;br /&gt;
  this._time = this._duration;&lt;br /&gt;
  this.fixTime();&lt;br /&gt;
  this.update();&lt;br /&gt;
}&lt;br /&gt;
t.update = function(){&lt;br /&gt;
  this.setPosition(this.getPosition(this._time));&lt;br /&gt;
  }&lt;br /&gt;
t.startEnterFrame = function(){&lt;br /&gt;
  this.stopEnterFrame();&lt;br /&gt;
  this.isPlaying = true;&lt;br /&gt;
  this.onEnterFrame();&lt;br /&gt;
}&lt;br /&gt;
t.onEnterFrame = function(){&lt;br /&gt;
  if(this.isPlaying) {&lt;br /&gt;
    this.nextFrame();&lt;br /&gt;
    setTimeout(Delegate.create(this, this.onEnterFrame), 0);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
t.nextFrame = function(){&lt;br /&gt;
  this.setTime((this.getTimer() - this._startTime) / 1000);&lt;br /&gt;
  }&lt;br /&gt;
t.stop = function(){&lt;br /&gt;
  this.stopEnterFrame();&lt;br /&gt;
  this.broadcastMessage(&amp;quot;onMotionStopped&amp;quot;,{target:this,type:&amp;quot;onMotionStopped&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
t.stopEnterFrame = function(){&lt;br /&gt;
  this.isPlaying = false;&lt;br /&gt;
}&lt;br /&gt;
t.continueTo = function(finish, duration){&lt;br /&gt;
  this.begin = this._pos;&lt;br /&gt;
  this.setFinish(finish);&lt;br /&gt;
  if (this._duration != undefined)&lt;br /&gt;
    this.setDuration(duration);&lt;br /&gt;
  this.start();&lt;br /&gt;
}&lt;br /&gt;
t.resume = function(){&lt;br /&gt;
  this.fixTime();&lt;br /&gt;
  this.startEnterFrame();&lt;br /&gt;
  this.broadcastMessage(&amp;quot;onMotionResumed&amp;quot;,{target:this,type:&amp;quot;onMotionResumed&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
t.yoyo = function (){&lt;br /&gt;
  this.continueTo(this.begin,this._time);&lt;br /&gt;
}&lt;br /&gt;
t.addListener = function(o){&lt;br /&gt;
  this.removeListener (o);&lt;br /&gt;
  return this._listeners.push(o);&lt;br /&gt;
}&lt;br /&gt;
t.removeListener = function(o){&lt;br /&gt;
  var a = this._listeners;  &lt;br /&gt;
  var i = a.length;&lt;br /&gt;
  while (i--) {&lt;br /&gt;
    if (a[i] == o) {&lt;br /&gt;
      a.splice (i, 1);&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
t.broadcastMessage = function(){&lt;br /&gt;
  var arr = new Array();&lt;br /&gt;
  for(var i = 0; i &amp;lt; arguments.length; i++){&lt;br /&gt;
    arr.push(arguments[i])&lt;br /&gt;
  }&lt;br /&gt;
  var e = arr.shift();&lt;br /&gt;
  var a = this._listeners;&lt;br /&gt;
  var l = a.length;&lt;br /&gt;
  for (var i=0; i&amp;lt;l; i++){&lt;br /&gt;
    if(a[i][e])&lt;br /&gt;
    a[i][e].apply(a[i], arr);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
t.fixTime = function(){&lt;br /&gt;
  this._startTime = this.getTimer() - this._time * 1000;&lt;br /&gt;
}&lt;br /&gt;
t.getTimer = function(){&lt;br /&gt;
  return new Date().getTime() - this._time;&lt;br /&gt;
}&lt;br /&gt;
Tween.backEaseIn = function(t,b,c,d,a,p){&lt;br /&gt;
  if (s == undefined) var s = 1.70158;&lt;br /&gt;
  return c*(t/=d)*t*((s+1)*t - s) + b;&lt;br /&gt;
}&lt;br /&gt;
Tween.backEaseOut = function(t,b,c,d,a,p){&lt;br /&gt;
  if (s == undefined) var s = 1.70158;&lt;br /&gt;
  return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;&lt;br /&gt;
}&lt;br /&gt;
Tween.backEaseInOut = function(t,b,c,d,a,p){&lt;br /&gt;
  if (s == undefined) var s = 1.70158; &lt;br /&gt;
  if ((t/=d/2) &amp;lt; 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;&lt;br /&gt;
  return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;&lt;br /&gt;
}&lt;br /&gt;
Tween.elasticEaseIn = function(t,b,c,d,a,p){&lt;br /&gt;
    if (t==0) return b;  &lt;br /&gt;
    if ((t/=d)==1) return b+c;  &lt;br /&gt;
    if (!p) p=d*.3;&lt;br /&gt;
    if (!a || a &amp;lt; Math.abs(c)) {&lt;br /&gt;
      a=c; var s=p/4;&lt;br /&gt;
    }&lt;br /&gt;
    else &lt;br /&gt;
      var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
    &lt;br /&gt;
    return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
Tween.elasticEaseOut = function (t,b,c,d,a,p){&lt;br /&gt;
    if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;&lt;br /&gt;
    if (!a || a &amp;lt; Math.abs(c)) { a=c; var s=p/4; }&lt;br /&gt;
    else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
    return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);&lt;br /&gt;
  }&lt;br /&gt;
Tween.elasticEaseInOut = function (t,b,c,d,a,p){&lt;br /&gt;
  if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) var p=d*(.3*1.5);&lt;br /&gt;
  if (!a || a &amp;lt; Math.abs(c)) {var a=c; var s=p/4; }&lt;br /&gt;
  else var s = p/(2*Math.PI) * Math.asin (c/a);&lt;br /&gt;
  if (t &amp;lt; 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;&lt;br /&gt;
  return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;&lt;br /&gt;
}&lt;br /&gt;
Tween.bounceEaseOut = function(t,b,c,d){&lt;br /&gt;
  if ((t/=d) &amp;lt; (1/2.75)) {&lt;br /&gt;
    return c*(7.5625*t*t) + b;&lt;br /&gt;
  } else if (t &amp;lt; (2/2.75)) {&lt;br /&gt;
    return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;&lt;br /&gt;
  } else if (t &amp;lt; (2.5/2.75)) {&lt;br /&gt;
    return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;&lt;br /&gt;
  } else {&lt;br /&gt;
    return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
Tween.bounceEaseIn = function(t,b,c,d){&lt;br /&gt;
  return c - Tween.bounceEaseOut (d-t, 0, c, d) + b;&lt;br /&gt;
  }&lt;br /&gt;
Tween.bounceEaseInOut = function(t,b,c,d){&lt;br /&gt;
  if (t &amp;lt; d/2) return Tween.bounceEaseIn (t*2, 0, c, d) * .5 + b;&lt;br /&gt;
  else return Tween.bounceEaseOut (t*2-d, 0, c, d) * .5 + c*.5 + b;&lt;br /&gt;
  }&lt;br /&gt;
Tween.strongEaseInOut = function(t,b,c,d){&lt;br /&gt;
  return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
  }&lt;br /&gt;
Tween.regularEaseIn = function(t,b,c,d){&lt;br /&gt;
  return c*(t/=d)*t + b;&lt;br /&gt;
  }&lt;br /&gt;
Tween.regularEaseOut = function(t,b,c,d){&lt;br /&gt;
  return -c *(t/=d)*(t-2) + b;&lt;br /&gt;
  }&lt;br /&gt;
Tween.regularEaseInOut = function(t,b,c,d){&lt;br /&gt;
  if ((t/=d/2) &amp;lt; 1) return c/2*t*t + b;&lt;br /&gt;
  return -c/2 * ((--t)*(t-2) - 1) + b;&lt;br /&gt;
  }&lt;br /&gt;
Tween.strongEaseIn = function(t,b,c,d){&lt;br /&gt;
  return c*(t/=d)*t*t*t*t + b;&lt;br /&gt;
  }&lt;br /&gt;
Tween.strongEaseOut = function(t,b,c,d){&lt;br /&gt;
  return c*((t=t/d-1)*t*t*t*t + 1) + b;&lt;br /&gt;
  }&lt;br /&gt;
Tween.strongEaseInOut = function(t,b,c,d){&lt;br /&gt;
  if ((t/=d/2) &amp;lt; 1) return c/2*t*t*t*t*t + b;&lt;br /&gt;
  return c/2*((t-=2)*t*t*t*t + 2) + b;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**********************************************************************&lt;br /&gt;
TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
Open source under the BSD License.&lt;br /&gt;
Copyright (c) 2001 Robert Penner&lt;br /&gt;
JavaScript version copyright (C) 2006 by Philippe Maegerman&lt;br /&gt;
All rights reserved.&lt;br /&gt;
Redistribution and use in source and binary forms, with or without&lt;br /&gt;
modification, are permitted provided that the following conditions are&lt;br /&gt;
met:&lt;br /&gt;
   * Redistributions of source code must retain the above copyright&lt;br /&gt;
notice, this list of conditions and the following disclaimer.&lt;br /&gt;
   * Redistributions in binary form must reproduce the above&lt;br /&gt;
copyright notice, this list of conditions and the following disclaimer&lt;br /&gt;
in the documentation and/or other materials provided with the&lt;br /&gt;
distribution.&lt;br /&gt;
   * Neither the name of the author nor the names of contributors may&lt;br /&gt;
be used to endorse or promote products derived from this software&lt;br /&gt;
without specific prior written permission.&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
&amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT&lt;br /&gt;
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,&lt;br /&gt;
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE&lt;br /&gt;
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
*****************************************/&lt;br /&gt;
OpacityTween.prototype = new Tween();&lt;br /&gt;
OpacityTween.prototype.constructor = Tween;&lt;br /&gt;
OpacityTween.superclass = Tween.prototype;&lt;br /&gt;
function OpacityTween(obj,func,fromOpacity,toOpacity,duration){&lt;br /&gt;
  this.targetObject = obj;&lt;br /&gt;
  this.init(new Object(),&amp;quot;x&amp;quot;,func,fromOpacity,toOpacity,duration);&lt;br /&gt;
}&lt;br /&gt;
var o = OpacityTween.prototype;&lt;br /&gt;
o.targetObject = {};&lt;br /&gt;
o.onMotionChanged = function(evt){&lt;br /&gt;
  var v = evt.target._pos;&lt;br /&gt;
  var t = this.targetObject;&lt;br /&gt;
  t.style[&amp;quot;opacity&amp;quot;] = v / 100;&lt;br /&gt;
  t.style[&amp;quot;-moz-opacity&amp;quot;] = v / 100;&lt;br /&gt;
  if(t.filters) t.filters.alpha[&amp;quot;opacity&amp;quot;] = v;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**********************************************************************&lt;br /&gt;
TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
Open source under the BSD License.&lt;br /&gt;
Copyright (c) 2001 Robert Penner&lt;br /&gt;
JavaScript version copyright (C) 2006 by Philippe Maegerman&lt;br /&gt;
All rights reserved.&lt;br /&gt;
Redistribution and use in source and binary forms, with or without&lt;br /&gt;
modification, are permitted provided that the following conditions are&lt;br /&gt;
met:&lt;br /&gt;
   * Redistributions of source code must retain the above copyright&lt;br /&gt;
notice, this list of conditions and the following disclaimer.&lt;br /&gt;
   * Redistributions in binary form must reproduce the above&lt;br /&gt;
copyright notice, this list of conditions and the following disclaimer&lt;br /&gt;
in the documentation and/or other materials provided with the&lt;br /&gt;
distribution.&lt;br /&gt;
   * Neither the name of the author nor the names of contributors may&lt;br /&gt;
be used to endorse or promote products derived from this software&lt;br /&gt;
without specific prior written permission.&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
&amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT&lt;br /&gt;
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,&lt;br /&gt;
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE&lt;br /&gt;
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
*****************************************/&lt;br /&gt;
ColorTween.prototype = new Tween();&lt;br /&gt;
ColorTween.prototype.constructor = Tween;&lt;br /&gt;
ColorTween.superclass = Tween.prototype;&lt;br /&gt;
function ColorTween(obj,prop,func,fromColor,toColor,duration){&lt;br /&gt;
  this.targetObject = obj;&lt;br /&gt;
  this.targetProperty = prop;  &lt;br /&gt;
  this.fromColor = fromColor;&lt;br /&gt;
  this.toColor = toColor;&lt;br /&gt;
  this.init(new Object(),&amp;quot;x&amp;quot;,func,0,100,duration);&lt;br /&gt;
  this.listenerObj = new Object();&lt;br /&gt;
  this.listenerObj.onMotionChanged = Delegate.create(this,this.onColorChanged);&lt;br /&gt;
  this.addListener(this.listenerObj);&lt;br /&gt;
}&lt;br /&gt;
var o = ColorTween.prototype;&lt;br /&gt;
o.targetObject = {};&lt;br /&gt;
o.targetProperty = {};&lt;br /&gt;
o.fromColor = &amp;quot;&amp;quot;;&lt;br /&gt;
o.toColor = &amp;quot;&amp;quot;;&lt;br /&gt;
o.currentColor = &amp;quot;&amp;quot;;&lt;br /&gt;
o.listenerObj = {};&lt;br /&gt;
o.onColorChanged = function(){&lt;br /&gt;
  this.currentColor = this.getColor(this.fromColor,this.toColor,this._pos);&lt;br /&gt;
  this.targetObject[this.targetProperty] = this.currentColor;&lt;br /&gt;
}&lt;br /&gt;
/***********************************************&lt;br /&gt;
*&lt;br /&gt;
* Function    : getColor&lt;br /&gt;
*&lt;br /&gt;
* Parameters  :    start - the start color (in the form &amp;quot;RRGGBB&amp;quot; e.g. &amp;quot;FF00AC&amp;quot;)&lt;br /&gt;
*            end - the end color (in the form &amp;quot;RRGGBB&amp;quot; e.g. &amp;quot;FF00AC&amp;quot;)&lt;br /&gt;
*            percent - the percent (0-100) of the fade between start &amp;amp; end&lt;br /&gt;
*&lt;br /&gt;
* returns      : color in the form &amp;quot;#RRGGBB&amp;quot; e.g. &amp;quot;#FA13CE&amp;quot;&lt;br /&gt;
*&lt;br /&gt;
* Description : This is a utility function. Given a start and end color and&lt;br /&gt;
*            a percentage fade it returns a color in between the 2 colors&lt;br /&gt;
*&lt;br /&gt;
* Author      : www.JavaScript-FX.ru&lt;br /&gt;
*&lt;br /&gt;
*************************************************/ &lt;br /&gt;
o.getColor = function(start, end, percent)&lt;br /&gt;
{&lt;br /&gt;
  var r1=this.hex2dec(start.slice(0,2));&lt;br /&gt;
    var g1=this.hex2dec(start.slice(2,4));&lt;br /&gt;
    var b1=this.hex2dec(start.slice(4,6));&lt;br /&gt;
    var r2=this.hex2dec(end.slice(0,2));&lt;br /&gt;
    var g2=this.hex2dec(end.slice(2,4));&lt;br /&gt;
    var b2=this.hex2dec(end.slice(4,6));&lt;br /&gt;
    var pc = percent/100;&lt;br /&gt;
    r= Math.floor(r1+(pc*(r2-r1)) + .5);&lt;br /&gt;
    g= Math.floor(g1+(pc*(g2-g1)) + .5);&lt;br /&gt;
    b= Math.floor(b1+(pc*(b2-b1)) + .5);&lt;br /&gt;
    return(&amp;quot;#&amp;quot; + this.dec2hex(r) + this.dec2hex(g) + this.dec2hex(b));&lt;br /&gt;
}&lt;br /&gt;
/*** These are the simplest HEX/DEC conversion routines I could come up with ***/&lt;br /&gt;
/*** I have seen a lot of fade routines that seem to make this a             ***/&lt;br /&gt;
/*** very complex task. I am sure somene else must&amp;quot;ve had this idea          ***/&lt;br /&gt;
/************************************************/  &lt;br /&gt;
o.dec2hex = function(dec){return(this.hexDigit[dec&amp;gt;&amp;gt;4]+this.hexDigit[dec&amp;amp;15]);}&lt;br /&gt;
o.hexDigit=new Array(&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;3&amp;quot;,&amp;quot;4&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;6&amp;quot;,&amp;quot;7&amp;quot;,&amp;quot;8&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;A&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;E&amp;quot;,&amp;quot;F&amp;quot;);&lt;br /&gt;
o.hex2dec = function(hex){return(parseInt(hex,16))};&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**********************************************************************&lt;br /&gt;
TERMS OF USE - EASING EQUATIONS&lt;br /&gt;
Open source under the BSD License.&lt;br /&gt;
Copyright (c) 2001 Robert Penner&lt;br /&gt;
JavaScript version copyright (C) 2006 by Philippe Maegerman&lt;br /&gt;
All rights reserved.&lt;br /&gt;
Redistribution and use in source and binary forms, with or without&lt;br /&gt;
modification, are permitted provided that the following conditions are&lt;br /&gt;
met:&lt;br /&gt;
   * Redistributions of source code must retain the above copyright&lt;br /&gt;
notice, this list of conditions and the following disclaimer.&lt;br /&gt;
   * Redistributions in binary form must reproduce the above&lt;br /&gt;
copyright notice, this list of conditions and the following disclaimer&lt;br /&gt;
in the documentation and/or other materials provided with the&lt;br /&gt;
distribution.&lt;br /&gt;
   * Neither the name of the author nor the names of contributors may&lt;br /&gt;
be used to endorse or promote products derived from this software&lt;br /&gt;
without specific prior written permission.&lt;br /&gt;
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS&lt;br /&gt;
&amp;quot;AS IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR&lt;br /&gt;
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT&lt;br /&gt;
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,&lt;br /&gt;
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT&lt;br /&gt;
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,&lt;br /&gt;
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY&lt;br /&gt;
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE&lt;br /&gt;
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
*****************************************/&lt;br /&gt;
function Delegate() {}&lt;br /&gt;
Delegate.create = function (o, f) {&lt;br /&gt;
  var a = new Array() ;&lt;br /&gt;
  var l = arguments.length ;&lt;br /&gt;
  for(var i = 2 ; i &amp;lt; l ; i++) a[i - 2] = arguments[i] ;&lt;br /&gt;
  return function() {&lt;br /&gt;
    var aP = [].concat(arguments, a) ;&lt;br /&gt;
    f.apply(o, aP);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
function Sequence(){&lt;br /&gt;
  this.children = new Array();&lt;br /&gt;
  this.currentChildIndex = 0;&lt;br /&gt;
  this._listeners = new Array();&lt;br /&gt;
  this.nextObject = new Object();&lt;br /&gt;
  this.addListener(this);&lt;br /&gt;
}&lt;br /&gt;
var s = Sequence.prototype;&lt;br /&gt;
s.addChild = function(tween){&lt;br /&gt;
  this.children.push(tween)&lt;br /&gt;
}&lt;br /&gt;
s.removeChild = function(tween){&lt;br /&gt;
  var a = this.children;  &lt;br /&gt;
  var i = a.length;&lt;br /&gt;
  while (i--) {&lt;br /&gt;
    if (a[i] == tween) {&lt;br /&gt;
      a.splice (i, 1);&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
s.start = function(){&lt;br /&gt;
  this.rewind();&lt;br /&gt;
  this.play();&lt;br /&gt;
  this.broadcastMessage(&amp;quot;onMotionStarted&amp;quot;,{target:this,type:&amp;quot;onMotionStarted&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
s.next = function(){&lt;br /&gt;
  this.children[this.currentChildIndex].removeListener(this.nextObject);&lt;br /&gt;
  if(this.currentChildIndex &amp;lt; this.children.length-1){&lt;br /&gt;
    this.currentChildIndex++;&lt;br /&gt;
    this.play();&lt;br /&gt;
  }&lt;br /&gt;
  else{&lt;br /&gt;
    this.stop();&lt;br /&gt;
    this.broadcastMessage(&amp;quot;onMotionFinished&amp;quot;,{target:this,type:&amp;quot;onMotionFinished&amp;quot;});&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
s.play = function(){&lt;br /&gt;
  this.nextObject = new Object();&lt;br /&gt;
  this.nextObject.onMotionFinished = Delegate.create(this, this.next);&lt;br /&gt;
  this.children[this.currentChildIndex].addListener(this.nextObject);&lt;br /&gt;
  this.children[this.currentChildIndex].start();&lt;br /&gt;
}&lt;br /&gt;
s.stop = function(){&lt;br /&gt;
  this.children[this.currentChildIndex].stop();&lt;br /&gt;
  this.broadcastMessage(&amp;quot;onMotionStopped&amp;quot;,{target:this,type:&amp;quot;onMotionStopped&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
s.rewind = function(){&lt;br /&gt;
  this.children[this.currentChildIndex].removeListener(this.nextObject);&lt;br /&gt;
  this.currentChildIndex = 0;&lt;br /&gt;
  for(var i = 0; i &amp;lt; this.children.length; i++){&lt;br /&gt;
    this.children[i].rewind();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
s.fforward = function(){&lt;br /&gt;
  this.children[this.currentChildIndex].removeListener(this.nextObject);&lt;br /&gt;
  for(var i = 0; i &amp;lt; this.children.length; i++){&lt;br /&gt;
    this.children[i].fforward();&lt;br /&gt;
  }&lt;br /&gt;
  this.currentChildIndex = this.children.length - 1;&lt;br /&gt;
}&lt;br /&gt;
s.resume = function(){&lt;br /&gt;
  this.children[this.currentChildIndex].resume();&lt;br /&gt;
  this.broadcastMessage(&amp;quot;onMotionResumed&amp;quot;,{target:this,type:&amp;quot;onMotionStopped&amp;quot;});&lt;br /&gt;
}&lt;br /&gt;
s.addListener = function(o){&lt;br /&gt;
  this.removeListener (o);&lt;br /&gt;
  return this._listeners.push(o);&lt;br /&gt;
}&lt;br /&gt;
s.removeListener = function(o){&lt;br /&gt;
  var a = this._listeners;  &lt;br /&gt;
  var i = a.length;&lt;br /&gt;
  while (i--) {&lt;br /&gt;
    if (a[i] == o) {&lt;br /&gt;
      a.splice (i, 1);&lt;br /&gt;
      return true;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return false;&lt;br /&gt;
}&lt;br /&gt;
s.broadcastMessage = function(){&lt;br /&gt;
  var arr = new Array();&lt;br /&gt;
  for(var i = 0; i &amp;lt; arguments.length; i++){&lt;br /&gt;
    arr.push(arguments[i])&lt;br /&gt;
  }&lt;br /&gt;
  var e = arr.shift();&lt;br /&gt;
  var a = this._listeners;&lt;br /&gt;
  var l = a.length;&lt;br /&gt;
  for (var i=0; i&amp;lt;l; i++){&lt;br /&gt;
    if(a[i][e])&lt;br /&gt;
    a[i][e].apply(a[i], arr);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function init(){&lt;br /&gt;
  t1 = new Sequence();&lt;br /&gt;
  t2 = new Sequence();&lt;br /&gt;
  t3 = new Sequence();&lt;br /&gt;
  t4 = new Sequence();&lt;br /&gt;
  for(var i = 1; i &amp;lt; 4; i++){&lt;br /&gt;
    var elem = document.getElementById(&amp;quot;sq&amp;quot; + i);&lt;br /&gt;
    t1.addChild(new OpacityTween(elem,Tween.bounceEaseOut,100,0,1));&lt;br /&gt;
    t2.addChild(new ColorTween(elem.style,&amp;quot;backgroundColor&amp;quot;,Tween.bounceEaseOut,&amp;quot;FF0000&amp;quot;,&amp;quot;00FF00&amp;quot;,1));&lt;br /&gt;
    t3.addChild(new Tween(elem.style,&amp;quot;width&amp;quot;,Tween.bounceEaseOut,25,100,0.5,&amp;quot;px&amp;quot;));&lt;br /&gt;
  }&lt;br /&gt;
  t4.addChild(t3);&lt;br /&gt;
  t4.addChild(t2);&lt;br /&gt;
  t4.addChild(t1);&lt;br /&gt;
}&lt;br /&gt;
function dumpThis(a){&lt;br /&gt;
  var z = &amp;quot;&amp;quot;;&lt;br /&gt;
  for(var i in a){&lt;br /&gt;
    z += i + &amp;quot; : &amp;quot; + a[i] + &amp;quot;\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  alert(z);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
.square{&lt;br /&gt;
float:left;&lt;br /&gt;
position:relative;&lt;br /&gt;
filter:Alpha(opacity=100);&lt;br /&gt;
}&lt;br /&gt;
.bgRed{&lt;br /&gt;
background-color:#FF0000;&lt;br /&gt;
}&lt;br /&gt;
#sq1{&lt;br /&gt;
left:10px;&lt;br /&gt;
}&lt;br /&gt;
#sq2{&lt;br /&gt;
left:20px;&lt;br /&gt;
}&lt;br /&gt;
#sq3{&lt;br /&gt;
left:30px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1�) I create 4 sequences&lt;br /&gt;
t1 = new Sequence();&lt;br /&gt;
t2 = new Sequence();&lt;br /&gt;
t3 = new Sequence();&lt;br /&gt;
t4 = new Sequence();&lt;br /&gt;
2�) I add Tweens to these sequences for each square&lt;br /&gt;
for(var i = 1; i &amp;lt; 4; i++){&lt;br /&gt;
  var elem = document.getElementById(&amp;quot;sq&amp;quot; + i);&lt;br /&gt;
  t1.addChild(new OpacityTween(elem,Tween.bounceEaseOut,100,0,1));&lt;br /&gt;
  t2.addChild(new ColorTween(elem.style,&amp;quot;backgroundColor&amp;quot;,Tween.bounceEaseOut,&amp;quot;FF0000&amp;quot;,&amp;quot;00FF00&amp;quot;,1));&lt;br /&gt;
  t3.addChild(new Tween(elem.style,&amp;quot;width&amp;quot;,Tween.bounceEaseOut,25,100,0.5,&amp;quot;px&amp;quot;));&lt;br /&gt;
}&lt;br /&gt;
3�)&lt;br /&gt;
I add the first 3 sequences to the 4th (sequence of sequences)&lt;br /&gt;
t4.addChild(t3);&lt;br /&gt;
t4.addChild(t2);&lt;br /&gt;
t4.addChild(t1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;sq1&amp;quot; class=&amp;quot;square bgRed&amp;quot; style=&amp;quot;width:25px;height:25px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;sq2&amp;quot; class=&amp;quot;square bgRed&amp;quot; style=&amp;quot;width:25px;height:25px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;sq3&amp;quot; class=&amp;quot;square bgRed&amp;quot; style=&amp;quot;width:25px;height:25px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;padding-top:25px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Sequence t1 : opacity&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t1.start();&amp;quot; value=&amp;quot;start()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t1.stop();&amp;quot; value=&amp;quot;stop()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t1.resume();&amp;quot; value=&amp;quot;resume()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t1.rewind();&amp;quot; value=&amp;quot;rewind()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t1.fforward();&amp;quot; value=&amp;quot;fforward()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Sequence t2 : color&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t2.start();&amp;quot; value=&amp;quot;start()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t2.stop();&amp;quot; value=&amp;quot;stop()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t2.resume();&amp;quot; value=&amp;quot;resume()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t2.rewind();&amp;quot; value=&amp;quot;rewind()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t2.fforward();&amp;quot; value=&amp;quot;fforward()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Sequence t3 : size&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t3.start();&amp;quot; value=&amp;quot;start()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t3.stop();&amp;quot; value=&amp;quot;stop()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t3.resume();&amp;quot; value=&amp;quot;resume()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t3.rewind();&amp;quot; value=&amp;quot;rewind()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t3.fforward();&amp;quot; value=&amp;quot;fforward()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Sequence t4 : Sequence t3 + Sequence t2 + Sequence t1&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t4.start();&amp;quot; value=&amp;quot;start()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t4.stop();&amp;quot; value=&amp;quot;stop()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t4.resume();&amp;quot; value=&amp;quot;resume()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t4.rewind();&amp;quot; value=&amp;quot;rewind()&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot; onclick=&amp;quot;t4.fforward();&amp;quot; value=&amp;quot;fforward()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>