Skip to content

Instantly share code, notes, and snippets.

@ek
Created August 11, 2015 15:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ek/0dac86393f00b1e6e885 to your computer and use it in GitHub Desktop.
Save ek/0dac86393f00b1e6e885 to your computer and use it in GitHub Desktop.
EdgemoorIntro.as - Actionscript 3 - Animation code for Edgemoor
package wolken.edgemoor {
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.display.MovieClip;
import flash.text.TextField;
import flash.text.TextFormat;
import fl.transitions.Tween;
import fl.transitions.TweenEvent;
import fl.transitions.easing.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
import caurina.transitions.*;
public class EdgemoorIntro extends EventDispatcher {
public var status:String = "not_started";
private var _config:EdgemoorConfig;
private var _loader:EdgemoorLoader;
private var _document:MovieClip;
private var _status = false;
public var currentIndex;
public var nextStep:String = "";
public var delayTime:int = 2;
private var angleTL:MovieClip;
private var angleTR:MovieClip;
private var angleBL:MovieClip;
private var angleBR:MovieClip;
private var imageClip:MovieClip;
private var _texto:TextField;
private var _textFormat:TextFormat;
private var cropClip:MovieClip;
public var images:Array;
private var introTimer:Timer;
public function EdgemoorIntro( config, loader, document ) {
_loader = loader;
_config = config;
_document = document;
_status = "not_started";
_document.centertext_mc.alpha = 0;
_texto = _document.centertext_mc.text_txt;
_textFormat = _texto.getTextFormat();
angleTL = _document.angleTL;
angleTR = _document.angleTR;
angleBL = _document.angleBL;
angleBR = _document.angleBR;
imageClip = _document.image_mc;
images = new Array();
cropClip = _document.crop_mc;
_loader.addEventListener( Event.CHANGE, checkLoader );
}
private function checkLoader(event:Event):void {
if(_loader.status == "intro" && _status == "not_started") {
currentIndex = 0;
playFrame( currentIndex );
}
}
private function playNextFrame():void {
currentIndex ++;
if(currentIndex < _config.introFrames.length) {
playFrame( currentIndex );
} else {
status = "done";
lastFrame();
dispatchEvent( new Event(Event.COMPLETE) );
}
}
private function playFrame( frameNumber:int ):void {
nextStep = "showimage";
takeNextStep();
}
private function takeNextStep():void {
trace( nextStep );
switch( nextStep ) {
case "showimage":
delayTime = 0;
showImage(currentIndex);
nextStep = "hideimage";
break;
case "hideimage":
delayTime = _config.delayTime;
hideImage(currentIndex);
nextStep = "showtext";
break;
case "showtext":
delayTime = 0;
showText(currentIndex);
nextStep = "hidetext";
break;
case "hidetext":
delayTime = _config.delayTime;
hideText(currentIndex);
nextStep = "nextframe";
break;
case "nextframe":
playNextFrame();
break;
}
}
private function showImage( imageNumber:int ):void {
cropClip.scaleX = .25;
cropClip.scaleY = .25;
var newImage = imageClip.addChild( _loader.images[currentIndex].sprite );
newImage.alpha = 0;
Tweener.addTween(newImage, {alpha:1,time:.5, transition:"easeoutExpo", onComplete: takeNextStep, delay: delayTime });
images.push( newImage );
Tweener.addTween( cropClip, { scaleX: 1, scaleY: 1, time: .5, transition:"easeoutExpo", delay: delayTime });
}
private function hideImage( imageNumber:int ):void {
var targetImage = images[ imageNumber ];
Tweener.addTween(targetImage, {alpha:0,time:.5, transition:"easeoutExpo", onStart: takeNextStep, delay: delayTime });
Tweener.addTween( cropClip, { scaleX: .5, scaleY: .25, time: .5, transition:"easeoutExpo", delay: delayTime });
}
private function showText( textNumber:int ):void {
var textValue = _config.introFrames[textNumber]['text'];
_texto.text = textValue;
_texto.setTextFormat( _textFormat );
Tweener.addTween( _document.centertext_mc, { alpha: 1, time:.5, onComplete: takeNextStep, delay: delayTime } );
moveAnglesIn();
}
private function hideText( textNumber:int ):void {
Tweener.addTween( _document.centertext_mc, { alpha: 0, time:.5, onStart: takeNextStep, delay: delayTime } );
moveAnglesOut();
}
private function moveAnglesIn() {
Tweener.addTween(angleTL, {x:135, y:125,time:.5, transition:"easeoutExpo", delay: delayTime});
Tweener.addTween(angleTR, {x:395, y:125,time:.5, transition:"easeoutExpo", delay: delayTime});
Tweener.addTween(angleBR, {x:395, y:225,time:.5, transition:"easeoutExpo", delay: delayTime});
Tweener.addTween(angleBL, {x:135, y:225,time:.5, transition:"easeoutExpo", delay: delayTime});
}
private function moveAnglesOut() {
Tweener.addTween(angleTL, {x:-10, y:-10,time:.5, transition:"easeoutExpo", delay: delayTime});
Tweener.addTween(angleTR, {x:540, y:-10,time:.5, transition:"easeoutExpo", delay: delayTime});
Tweener.addTween(angleBR, {x:540, y:360,time:.5, transition:"easeoutExpo", delay: delayTime});
Tweener.addTween(angleBL, {x:-10, y:360,time:.5, transition:"easeoutExpo", delay: delayTime});
}
private function lastFrame() {
cropClip.scaleX = .25;
cropClip.scaleY = .25;
var targetImage = images[0];
targetImage.alpha = 0;
Tweener.addTween(targetImage, {alpha:1,time:.5, transition:"easeoutExpo" });
Tweener.addTween( cropClip, { scaleX: 1, scaleY: 1, time: .5, transition:"easeoutExpo"});
moveAnglesOut();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment