|
The Action (t)ad animation
package
{
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class atadAnimation extends Sprite
{
private var atadMain:Timer = new Timer(100, 19);
private var glowTimer:Timer = new Timer(100, 78);
private var loopTime:Number = 0;
private var fromTtoA:Timer = new Timer(100, 9);
[Embed(source="pieces/1ani.swf")]
private var The1ani:Class;
private var ani1er:Sprite = new The1ani();
[Embed(source="pieces/2ani.swf")]
private var The2ani:Class;
private var ani2er:Sprite = new The2ani();
[Embed(source="pieces/a.swf")]
private var Thea:Class;
private var aer:Sprite = new Thea();
[Embed(source="pieces/ad.swf")]
private var Thead:Class;
private var ader:Sprite = new Thead();
[Embed(source="pieces/c.swf")]
private var Thec:Class;
private var cer:Sprite = new Thec();
[Embed(source="pieces/d.swf")]
private var Thed:Class;
private var der:Sprite = new Thed();
[Embed(source="pieces/firstt.swf")]
private var Thefirstt:Class;
private var firstter:Sprite = new Thefirstt();
[Embed(source="pieces/i.swf")]
private var Thei:Class;
private var ier:Sprite = new Thei();
[Embed(source="pieces/leftb.swf")]
private var Theleftb:Class;
private var leftber:Sprite = new Theleftb();
[Embed(source="pieces/n.swf")]
private var Thenn:Class;
private var ner:Sprite = new Thenn();
[Embed(source="pieces/o.swf")]
private var Theo:Class;
private var oer:Sprite = new Theo();
[Embed(source="pieces/on.swf")]
private var Theon:Class;
private var oner:Sprite = new Theon();
[Embed(source="pieces/rightb.swf")]
private var Therightb:Class;
private var rightber:Sprite = new Therightb();
[Embed(source="pieces/t.swf")]
private var Thet:Class;
private var ter:Sprite = new Thet();
[Embed(source="pieces/spacelight.swf")]
private var Thesp:Class;
private var sper:Sprite = new Thesp();
[Embed(source="pieces/glow1.swf")]
private var Thegone:Class;
private var glowone:Sprite = new Thegone();
[Embed(source="pieces/glow2.swf")]
private var Thegtwo:Class;
private var glowtwo:Sprite = new Thegtwo();
[Embed(source="pieces/glow3.swf")]
private var Thegtree:Class;
private var glowtree:Sprite = new Thegtree();
[Embed(source="pieces/glow4.swf")]
private var Thegfour:Class;
private var glowfour:Sprite = new Thegfour();
public function atadAnimation()
{
/* note: This is also an example of setting up a file to be loaded by another.
To do so, one must do away with all stage references.
When loaded by another swf that loader swf is the parent and it has the stage.
There can only be one stage, so after this file is loaded by a parent swf,
it is the parents stage that is holding 'this' child.
So to be sure of child placement we use this.addChildAt.
'this' to refer to the current display object container, not the stage.
And in this way even when this file is loaded by another swf, it will display properly,
and run on its own as a child. */
/* the animation sequence order
ani1er ani2er cer firstter ier oer oner ner sper leftber ter rightber aer ader der ader aer rightber ter */
this.addChildAt(ani1er, 0);
this.addChildAt(ani2er, 1);
this.addChildAt(cer, 2);
this.addChildAt(firstter, 3);
this.addChildAt(ier, 4);
this.addChildAt(oer, 5);
this.addChildAt(oner, 6);
this.addChildAt(ner, 7);
this.addChildAt(sper, 8);
this.addChildAt(leftber, 9);
this.addChildAt(ter, 10);
this.addChildAt(rightber, 11);
this.addChildAt(aer, 12);
this.addChildAt(ader, 13);
this.addChildAt(der, 14);
this.addChildAt(glowone, 15);
this.addChildAt(glowtwo, 16);
this.addChildAt(glowtree, 17);
this.addChildAt(glowfour, 18);
makeAllNotVisible();
atadMain.addEventListener(TimerEvent.TIMER, goMainAnimation);
glowTimer.addEventListener(TimerEvent.TIMER, doTheGlow);
fromTtoA.addEventListener(TimerEvent.TIMER, goFromTtoA);
atadMain.addEventListener(TimerEvent.TIMER_COMPLETE, function ():void {glowTimer.start();} );
atadMain.start();
}
private function goMainAnimation(e:TimerEvent):void
{
loopTime = 0;
var animationCount:Number = e.target.currentCount;
/* first 15 children */
var aniStart:Number = 15 - animationCount;
var aniEnd:Number = 14 - aniStart;
var endNum:Number;
for (var vi:int=0;vi<=19;vi++)
{
/* from the a to the d */
if (vi==aniEnd && vi<=14) {this.getChildAt(vi).alpha=1;}
else
{if (vi<=14 && vi!=aniEnd && aniEnd<=14) {this.getChildAt(vi).alpha=0;} }
/* into the parens */
if (vi==15)endNum=2;
if (vi==16)endNum=4;
if (vi==17)endNum=6;
if (vi==18)endNum=8;
if (vi>=15 && vi==aniEnd) {this.getChildAt(vi-endNum+1).alpha=0;this.getChildAt(vi-endNum).alpha=1;}
/* end on the t in the parens */
if (vi==18 && aniEnd==18)this.getChildAt(10).alpha=1;
}
}
private function goFromTtoA(ta:TimerEvent):void
{
switch (ta.target.currentCount)
{
case 1:
{
makeGlow(10, 9);
break;
}
case 2:
{
makeGlow(9, 8);
break;
}
case 3:
{
makeGlow(8, 7);
break;
}
case 4:
{
makeGlow(7, 6);
break;
}
case 5:
{
makeGlow(6, 5);
break;
}
case 6:
{
makeGlow(5, 4);
break;
}
case 7:
{
makeGlow(4, 3);
break;
}
case 8:
{
makeGlow(3, 2);
break;
}
case 9:
{
makeGlow(2, 1);atadMain.start();
break;
}
}
}
private function makeGlow(tpof:Number, bton:Number):void
{
this.getChildAt(tpof).alpha = 0;
this.getChildAt(bton).alpha = 1;
}
private function doTheGlow(eg:TimerEvent):void
{
var theCount:Number = eg.target.currentCount;
switch (theCount)
{
case 1:
{
makeGlow(10, 15);
break;
}
case 2:
{
makeGlow(15, 16);
break;
}
case 3:
{
makeGlow(16, 17);
break;
}
case 4:
{
makeGlow(17, 18);
break;
}
case 5:
{
makeGlow(18, 17);
break;
}
case 6:
{
makeGlow(17, 16);
break;
}
case 7:
{
makeGlow(16, 15);
break;
}
case 8:
{
makeGlow(15, 10);
break;
}
}
if (theCount==70)
{
loopTime += 1;
if (loopTime<=2)
{
atadMain.reset();fromTtoA.stop();fromTtoA.reset();glowTimer.stop();
glowTimer.reset();glowTimer.start();
}
else
{
eg.target.stop();eg.target.reset();atadMain.stop();
atadMain.reset();fromTtoA.stop();fromTtoA.reset();fromTtoA.start();
}
}
}
private function makeAllNotVisible():void
{
var allImages:Number = this.numChildren;
for (var i:int = 0;i<allImages;i++)
{this.getChildAt(i).alpha=0;}
}
}
}
|