Section 1
//Dialogue_70 (BiscuitGameTeaser_fla.Dialogue_70)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class Dialogue_70 extends MovieClip {
public function Dialogue_70(){
addFrameScript(1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6);
}
function frame2(){
stop();
}
function frame3(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
function frame6(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 2
//Hidex_82 (BiscuitGameTeaser_fla.Hidex_82)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class Hidex_82 extends MovieClip {
public function Hidex_82(){
addFrameScript(36, frame37);
}
function frame37(){
gotoAndPlay(15);
}
}
}//package BiscuitGameTeaser_fla
Section 3
//Hidexc_89 (BiscuitGameTeaser_fla.Hidexc_89)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class Hidexc_89 extends MovieClip {
public function Hidexc_89(){
addFrameScript(36, frame37);
}
function frame37(){
gotoAndPlay(15);
}
}
}//package BiscuitGameTeaser_fla
Section 4
//MainTimeline (BiscuitGameTeaser_fla.MainTimeline)
package BiscuitGameTeaser_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class MainTimeline extends MovieClip {
public var LMNU2:MovieClip;
public var IBPage:SimpleButton;
public var SCN:MovieClip;
public var startbutton:MovieClip;
public var FAPage:SimpleButton;
public var bgcolor:MovieClip;
public var $req:URLRequest;
public var $req1:URLRequest;
public function MainTimeline(){
addFrameScript(0, frame1, 11, frame12, 18, frame19, 23, frame24);
}
public function loading(_arg1:Event):void{
var _local2:Number = this.stage.loaderInfo.bytesTotal;
var _local3:Number = this.stage.loaderInfo.bytesLoaded;
bgcolor.alpha = (_local3 / _local2);
if (_local2 == _local3){
play();
this.removeEventListener(Event.ENTER_FRAME, loading);
};
}
public function playscene(_arg1:MouseEvent):void{
play();
}
public function openLink(_arg1:String):void{
$req = new URLRequest(_arg1);
navigateToURL($req);
}
public function openLink1(_arg1:String):void{
$req1 = new URLRequest(_arg1);
navigateToURL($req1);
}
function frame1(){
stop();
this.addEventListener(Event.ENTER_FRAME, loading);
}
function frame12(){
stop();
startbutton.addEventListener(MouseEvent.CLICK, playscene);
IBPage.addEventListener(MouseEvent.CLICK, function (_arg1){
openLink("https://inkbunny.net/Carrot");
});
FAPage.addEventListener(MouseEvent.CLICK, function (_arg1){
openLink1("http://www.furaffinity.net/user/werdna250250/");
});
}
function frame19(){
}
function frame24(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 5
//NextFlash_75 (BiscuitGameTeaser_fla.NextFlash_75)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class NextFlash_75 extends MovieClip {
public function NextFlash_75(){
addFrameScript(37, frame38);
}
function frame38(){
gotoAndPlay(15);
}
}
}//package BiscuitGameTeaser_fla
Section 6
//Scenelike_14 (BiscuitGameTeaser_fla.Scenelike_14)
package BiscuitGameTeaser_fla {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.utils.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.media.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Scenelike_14 extends MovieClip {
public var HEAD:MovieClip;
public var JAW:MovieClip;
public function Scenelike_14(){
addFrameScript(0, frame1, 8, frame9);
}
function frame1(){
JAW.gotoAndPlay(1);
}
function frame9(){
HEAD.L.play();
HEAD.R.play();
HEAD.H.play();
}
}
}//package BiscuitGameTeaser_fla
Section 7
//Scenes_13 (BiscuitGameTeaser_fla.Scenes_13)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class Scenes_13 extends MovieClip {
public function Scenes_13(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 8
//startgame_10 (BiscuitGameTeaser_fla.startgame_10)
package BiscuitGameTeaser_fla {
import flash.display.*;
import flash.events.*;
public dynamic class startgame_10 extends MovieClip {
public var Playgame:SimpleButton;
public function startgame_10(){
addFrameScript(0, frame1, 10, frame11);
}
public function rolloverplayon(_arg1:MouseEvent):void{
play();
}
public function rolloverplayoff(_arg1:MouseEvent):void{
gotoAndPlay(15);
}
function frame1(){
Playgame.addEventListener(MouseEvent.MOUSE_OVER, rolloverplayon);
Playgame.addEventListener(MouseEvent.MOUSE_OUT, rolloverplayoff);
stop();
}
function frame11(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 9
//Symbol26_35 (BiscuitGameTeaser_fla.Symbol26_35)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class Symbol26_35 extends MovieClip {
public function Symbol26_35(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 10
//Symbol34_58 (BiscuitGameTeaser_fla.Symbol34_58)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class Symbol34_58 extends MovieClip {
public function Symbol34_58(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 11
//Symbol35_44 (BiscuitGameTeaser_fla.Symbol35_44)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class Symbol35_44 extends MovieClip {
public function Symbol35_44(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 12
//Symbol63xx_66 (BiscuitGameTeaser_fla.Symbol63xx_66)
package BiscuitGameTeaser_fla {
import flash.display.*;
import flash.events.*;
public dynamic class Symbol63xx_66 extends MovieClip {
public var AUTOx:SimpleButton;
public var AUTO:SimpleButton;
public function Symbol63xx_66(){
addFrameScript(0, frame1, 8, frame9);
}
public function onRollOverMyButton(_arg1:MouseEvent):void{
gotoAndPlay(2);
}
public function onRollOutMyButton(_arg1:MouseEvent):void{
gotoAndPlay(10);
}
function frame1(){
stop();
AUTO.addEventListener(MouseEvent.CLICK, onRollOverMyButton);
}
function frame9(){
stop();
AUTOx.addEventListener(MouseEvent.CLICK, onRollOutMyButton);
}
}
}//package BiscuitGameTeaser_fla
Section 13
//Symbol64xx_67 (BiscuitGameTeaser_fla.Symbol64xx_67)
package BiscuitGameTeaser_fla {
import flash.display.*;
public dynamic class Symbol64xx_67 extends MovieClip {
public function Symbol64xx_67(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 14
//Symbol76_15 (BiscuitGameTeaser_fla.Symbol76_15)
package BiscuitGameTeaser_fla {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public dynamic class Symbol76_15 extends MovieClip {
public var ToJournal:SimpleButton;
public var $req:URLRequest;
public function Symbol76_15(){
addFrameScript(0, frame1, 7, frame8);
}
public function onRollOverMyButtoni(_arg1:MouseEvent):void{
play();
}
public function onRollOutMyButtonff(_arg1:MouseEvent):void{
gotoAndPlay(9);
}
public function openLink(_arg1:String):void{
$req = new URLRequest(_arg1);
navigateToURL($req);
}
function frame1(){
stop();
ToJournal.addEventListener(MouseEvent.MOUSE_OVER, onRollOverMyButtoni);
ToJournal.addEventListener(MouseEvent.MOUSE_OUT, onRollOutMyButtonff);
ToJournal.addEventListener(MouseEvent.CLICK, function (_arg1){
openLink("https://inkbunny.net/journalview.php?id=40881");
});
}
function frame8(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 15
//Textbox_68 (BiscuitGameTeaser_fla.Textbox_68)
package BiscuitGameTeaser_fla {
import flash.geom.*;
import fl.motion.*;
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.utils.*;
import flash.net.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.media.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.system.*;
import flash.text.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class Textbox_68 extends MovieClip {
public var BTN:SimpleButton;
public var TXT:MovieClip;
public var __motion_FADE:MotionBase;
public var FADE:AnimatorFactory;
public function Textbox_68(){
addFrameScript(0, frame1, 12, frame13);
if (__motion_FADE == null){
__motion_FADE = new Motion();
__motion_FADE.duration = 25;
__motion_FADE.overrideTargetTransform();
__motion_FADE.addPropertyArray("x", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
__motion_FADE.addPropertyArray("y", [0, -2.145, -4.29, -6.43286, -8.58, -10.725, -12.8679, -15.0129, -17.16, -19.305, -21.45, -20.499, -19.5479, -17.9189, -16.2899, -14.6609, -13.0319, -11.4029, -9.77395, -8.14496, -6.51597, -4.88697, -3.25798, -1.62899, 1.77636E-15]);
__motion_FADE.addPropertyArray("scaleX", [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);
__motion_FADE.addPropertyArray("scaleY", [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);
__motion_FADE.addPropertyArray("skewX", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
__motion_FADE.addPropertyArray("skewY", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
__motion_FADE.addPropertyArray("rotationConcat", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
__motion_FADE.addPropertyArray("blendMode", ["normal"]);
__motion_FADE.addPropertyArray("cacheAsBitmap", [false]);
__motion_FADE.addPropertyArray("alphaMultiplier", [0, 0.083333, 0.166667, 0.25, 0.333333, 0.416667, 0.5, 0.583333, 0.666667, 0.75, 0.833333, 0.916667, 1, 0.916667, 0.833333, 0.75, 0.666667, 0.583333, 0.5, 0.416667, 0.333333, 0.25, 0.166667, 0.083333, 0]);
FADE = new AnimatorFactory(__motion_FADE);
FADE.transformationPoint = new Point(0.535071, -0.12297);
};
}
public function Button1(_arg1:MouseEvent):void{
play();
}
function frame1(){
BTN.addEventListener(MouseEvent.CLICK, Button1);
TXT.play();
MovieClip(this.parent.parent.parent).SCN.play();
}
function frame13(){
stop();
}
}
}//package BiscuitGameTeaser_fla
Section 16
//AdjustColor (fl.motion.AdjustColor)
package fl.motion {
public class AdjustColor {
private var m_brightnessMatrix:ColorMatrix;
private var m_contrastMatrix:ColorMatrix;
private var m_saturationMatrix:ColorMatrix;
private var m_hueMatrix:ColorMatrix;
private var m_finalMatrix:ColorMatrix;
private static var s_arrayOfDeltaIndex:Array = [0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.2, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10];
public function set brightness(_arg1:Number):void{
if (this.m_brightnessMatrix == null){
this.m_brightnessMatrix = new ColorMatrix();
};
if (_arg1 != 0){
this.m_brightnessMatrix.SetBrightnessMatrix(_arg1);
};
}
public function set contrast(_arg1:Number):void{
var _local2:Number = _arg1;
if (_arg1 == 0){
_local2 = 127;
} else {
if (_arg1 > 0){
_local2 = ((s_arrayOfDeltaIndex[int(_arg1)] * 127) + 127);
} else {
_local2 = (((_arg1 / 100) * 127) + 127);
};
};
if (this.m_contrastMatrix == null){
this.m_contrastMatrix = new ColorMatrix();
};
this.m_contrastMatrix.SetContrastMatrix(_local2);
}
public function set saturation(_arg1:Number):void{
var _local2:Number = _arg1;
if (_arg1 == 0){
_local2 = 1;
} else {
if (_arg1 > 0){
_local2 = (1 + ((3 * _arg1) / 100));
} else {
_local2 = ((_arg1 / 100) + 1);
};
};
if (this.m_saturationMatrix == null){
this.m_saturationMatrix = new ColorMatrix();
};
this.m_saturationMatrix.SetSaturationMatrix(_local2);
}
public function set hue(_arg1:Number):void{
if (this.m_hueMatrix == null){
this.m_hueMatrix = new ColorMatrix();
};
if (_arg1 != 0){
this.m_hueMatrix.SetHueMatrix(((_arg1 * Math.PI) / 180));
};
}
public function AllValuesAreSet():Boolean{
return (((((((this.m_brightnessMatrix) && (this.m_contrastMatrix))) && (this.m_saturationMatrix))) && (this.m_hueMatrix)));
}
public function CalculateFinalFlatArray():Array{
if (this.CalculateFinalMatrix()){
return (this.m_finalMatrix.GetFlatArray());
};
return (null);
}
private function CalculateFinalMatrix():Boolean{
if (!this.AllValuesAreSet()){
return (false);
};
this.m_finalMatrix = new ColorMatrix();
this.m_finalMatrix.Multiply(this.m_brightnessMatrix);
this.m_finalMatrix.Multiply(this.m_contrastMatrix);
this.m_finalMatrix.Multiply(this.m_saturationMatrix);
this.m_finalMatrix.Multiply(this.m_hueMatrix);
return (true);
}
}
}//package fl.motion
Section 17
//Animator (fl.motion.Animator)
package fl.motion {
import flash.geom.*;
import flash.display.*;
public class Animator extends AnimatorBase {
public function Animator(_arg1:XML=null, _arg2:DisplayObject=null){
this.motion = new Motion(_arg1);
super(_arg1, _arg2);
}
override public function set motion(_arg1:MotionBase):void{
super.motion = _arg1;
var _local2:Motion = (_arg1 as Motion);
if (((((_local2) && (_local2.source))) && (_local2.source.transformationPoint))){
this.transformationPoint = _local2.source.transformationPoint.clone();
};
}
override protected function setTargetState():void{
this.targetState.scaleX = this._target.scaleX;
this.targetState.scaleY = this._target.scaleY;
this.targetState.skewX = MatrixTransformer.getSkewX(this._target.transform.matrix);
this.targetState.skewY = MatrixTransformer.getSkewY(this._target.transform.matrix);
this.targetState.bounds = this._target.getBounds(this._target);
this.initTransformPointInternal(this._target.transform.matrix);
this.targetState.z = 0;
this.targetState.rotationX = (this.targetState.rotationY = 0);
}
private function initTransformPointInternal(_arg1:Matrix):void{
var _local3:Number;
var _local4:Number;
var _local5:Point;
var _local2:Object = this.targetState.bounds;
if (this.transformationPoint){
_local3 = ((this.transformationPoint.x * _local2.width) + _local2.left);
_local4 = ((this.transformationPoint.y * _local2.height) + _local2.top);
this.targetState.transformPointInternal = new Point(_local3, _local4);
_local5 = _arg1.transformPoint(this.targetState.transformPointInternal);
this.targetState.x = _local5.x;
this.targetState.y = _local5.y;
} else {
this.targetState.transformPointInternal = new Point(0, 0);
this.targetState.x = this._target.x;
this.targetState.y = this._target.y;
};
}
override protected function setTimeClassic(_arg1:int, _arg2:MotionBase, _arg3:KeyframeBase):Boolean{
var _local6:Number;
var _local7:Number;
var _local8:Point;
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Matrix;
var _local14:Boolean;
var _local15:Point;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Matrix;
var _local22:Number;
var _local4:Motion = (_arg2 as Motion);
if (!_local4){
return (false);
};
var _local5:Matrix = _local4.getMatrix(_arg1);
if (_local5){
if (((((!(motionArray)) || (!(_lastMatrixApplied)))) || (!(matricesEqual(_local5, _lastMatrixApplied))))){
this._target.transform.matrix = _local5;
_lastMatrixApplied = _local5;
};
} else {
if (((motionArray) && (!((_local4 == _lastMotionUsed))))){
this.transformationPoint = (_local4.motion_internal::transformationPoint) ? _local4.motion_internal::transformationPoint : new Point(0.5, 0.5);
this.initTransformPointInternal(_local4.motion_internal::initialMatrix);
_lastMotionUsed = _local4;
};
_local6 = _local4.getValue(_arg1, Tweenables.X);
_local7 = _local4.getValue(_arg1, Tweenables.Y);
_local8 = new Point(_local6, _local7);
if (this.positionMatrix){
_local8 = this.positionMatrix.transformPoint(_local8);
};
_local8.x = (_local8.x + this.targetState.x);
_local8.y = (_local8.y + this.targetState.y);
_local9 = (_local4.getValue(_arg1, Tweenables.SCALE_X) * this.targetState.scaleX);
_local10 = (_local4.getValue(_arg1, Tweenables.SCALE_Y) * this.targetState.scaleY);
_local11 = 0;
_local12 = 0;
if (this.orientToPath){
_local18 = _local4.getValue((_arg1 + 1), Tweenables.X);
_local19 = _local4.getValue((_arg1 + 1), Tweenables.Y);
_local20 = (Math.atan2((_local19 - _local7), (_local18 - _local6)) * (180 / Math.PI));
if (!isNaN(_local20)){
_local11 = (_local20 + this.targetState.skewX);
_local12 = (_local20 + this.targetState.skewY);
};
} else {
_local11 = (_local4.getValue(_arg1, Tweenables.SKEW_X) + this.targetState.skewX);
_local12 = (_local4.getValue(_arg1, Tweenables.SKEW_Y) + this.targetState.skewY);
};
_local13 = new Matrix((_local9 * Math.cos((_local12 * (Math.PI / 180)))), (_local9 * Math.sin((_local12 * (Math.PI / 180)))), (-(_local10) * Math.sin((_local11 * (Math.PI / 180)))), (_local10 * Math.cos((_local11 * (Math.PI / 180)))), 0, 0);
_local14 = false;
if (_local4.useRotationConcat(_arg1)){
_local21 = new Matrix();
_local22 = _local4.getValue(_arg1, Tweenables.ROTATION_CONCAT);
_local21.rotate(_local22);
_local13.concat(_local21);
_local14 = true;
};
_local13.tx = _local8.x;
_local13.ty = _local8.y;
_local15 = _local13.transformPoint(this.targetState.transformPointInternal);
_local16 = (_local13.tx - _local15.x);
_local17 = (_local13.ty - _local15.y);
_local13.tx = (_local13.tx + _local16);
_local13.ty = (_local13.ty + _local17);
if (((((!(motionArray)) || (!(_lastMatrixApplied)))) || (!(matricesEqual(_local13, _lastMatrixApplied))))){
if (!_local14){
this._target.rotation = _local12;
};
this._target.transform.matrix = _local13;
if (((((_local14) && ((this._target.scaleX == 0)))) && ((this._target.scaleY == 0)))){
this._target.scaleX = _local9;
this._target.scaleY = _local10;
};
_lastMatrixApplied = _local13;
};
};
if (((!((_lastCacheAsBitmapApplied == _arg3.cacheAsBitmap))) || (!(_cacheAsBitmapHasBeenApplied)))){
this._target.cacheAsBitmap = _arg3.cacheAsBitmap;
_cacheAsBitmapHasBeenApplied = true;
_lastCacheAsBitmapApplied = _arg3.cacheAsBitmap;
};
return (true);
}
public static function fromXMLString(_arg1:String, _arg2:DisplayObject=null):Animator{
return (new Animator(new XML(_arg1), _arg2));
}
public static function matricesEqual(_arg1:Matrix, _arg2:Matrix):Boolean{
return ((((((((((((_arg1.a == _arg2.a)) && ((_arg1.b == _arg2.b)))) && ((_arg1.c == _arg2.c)))) && ((_arg1.d == _arg2.d)))) && ((_arg1.tx == _arg2.tx)))) && ((_arg1.ty == _arg2.ty))));
}
}
}//package fl.motion
Section 18
//AnimatorBase (fl.motion.AnimatorBase)
package fl.motion {
import flash.geom.*;
import flash.display.*;
import flash.events.*;
public class AnimatorBase extends EventDispatcher {
private var _motion:MotionBase;
private var _motionArray:Array;
protected var _lastMotionUsed:MotionBase;
protected var _lastColorTransformApplied:ColorTransform;
protected var _filtersApplied:Boolean;
protected var _lastBlendModeApplied:String;
protected var _cacheAsBitmapHasBeenApplied:Boolean;
protected var _lastCacheAsBitmapApplied:Boolean;
protected var _lastMatrixApplied:Matrix;
protected var _lastMatrix3DApplied:Object;
protected var _toRemove:Array;
protected var _lastFrameHandled:int;
protected var _lastSceneHandled:String;
protected var _registeredParent:Boolean;
public var orientToPath:Boolean;// = false
public var transformationPoint:Point;
public var transformationPointZ:int;
public var autoRewind:Boolean;// = false
public var positionMatrix:Matrix;
public var repeatCount:int;// = 1
private var _isPlaying:Boolean;// = false
protected var _target:DisplayObject;
protected var _lastTarget:DisplayObject;
private var _lastRenderedTime:int;// = -1
private var _lastRenderedMotion:MotionBase;// = null
private var _time:int;// = -1
private var _targetParent:DisplayObjectContainer;// = null
private var _targetParentBtn:SimpleButton;// = null
private var _targetName:String;// = ""
private var targetStateOriginal:Object;// = null
private var _placeholderName:String;// = null
private var _instanceFactoryClass:Class;// = null
private var instanceFactory:Object;// = null
private var _useCurrentFrame:Boolean;// = false
private var _spanStart:int;// = -1
private var _spanEnd:int;// = -1
private var _sceneName:String;// = ""
private var _frameEvent:String;// = "enterFrame"
private var _targetState3D:Array;// = null
protected var _isAnimator3D:Boolean;
private var playCount:int;// = 0
protected var targetState:Object;
private static var enterFrameBeacon:MovieClip = new MovieClip();
public function AnimatorBase(_arg1:XML=null, _arg2:DisplayObject=null){
this.target = _arg2;
this._isAnimator3D = false;
this.transformationPoint = new Point(0.5, 0.5);
this.transformationPointZ = 0;
this._sceneName = "";
this._toRemove = new Array();
this._lastFrameHandled = -1;
this._lastSceneHandled = null;
this._registeredParent = false;
}
public function get motion():MotionBase{
return (this._motion);
}
public function set motion(_arg1:MotionBase):void{
this._motion = _arg1;
if (_arg1){
if (this.motionArray){
this._spanStart = (this._spanEnd = -1);
};
this.motionArray = null;
};
}
public function get motionArray():Array{
return (this._motionArray);
}
public function set motionArray(_arg1:Array):void{
var _local2:int;
this._motionArray = (((_arg1) && ((_arg1.length > 0)))) ? _arg1 : null;
if (this._motionArray){
this.motion = null;
this._spanStart = this._motionArray[0].motion_internal::spanStart;
this._spanEnd = (this._spanStart - 1);
_local2 = 0;
while (_local2 < this._motionArray.length) {
this._spanEnd = (this._spanEnd + this._motionArray[_local2].duration);
_local2++;
};
};
}
public function get isPlaying():Boolean{
return (this._isPlaying);
}
public function get target():DisplayObject{
return (this._target);
}
public function set target(_arg1:DisplayObject):void{
if (!_arg1){
return;
};
this._target = _arg1;
if (_arg1 != this._lastTarget){
this._lastColorTransformApplied = null;
this._filtersApplied = false;
this._lastBlendModeApplied = null;
this._cacheAsBitmapHasBeenApplied = false;
this._lastMatrixApplied = null;
this._lastMatrix3DApplied = null;
this._toRemove = new Array();
};
this._lastTarget = _arg1;
var _local2:Boolean;
if (((this.targetParent) && (!((this.targetName == ""))))){
if (this.targetStateOriginal){
this.targetState = this.targetStateOriginal;
return;
};
_local2 = true;
};
this.targetState = {};
this.setTargetState();
if (_local2){
this.targetStateOriginal = this.targetState;
};
}
protected function setTargetState():void{
}
public function set initialPosition(_arg1:Array):void{
}
public function get time():int{
return (this._time);
}
public function set time(_arg1:int):void{
var _local3:Array;
var _local6:DisplayObject;
var _local7:int;
var _local8:ColorTransform;
var _local9:Array;
if (_arg1 == this._time){
return;
};
if (this._placeholderName){
_local6 = this._targetParent[this._placeholderName];
if (!_local6){
_local6 = this._targetParent.getChildByName(this._placeholderName);
};
if (((((_local6) && ((_local6.parent == this._targetParent)))) && ((this._target.parent == this._targetParent)))){
this._targetParent.addChildAt(this._target, (this._targetParent.getChildIndex(_local6) + 1));
};
};
var _local2:MotionBase = this.motion;
if (_local2){
if (_arg1 > (_local2.duration - 1)){
_arg1 = (_local2.duration - 1);
} else {
if (_arg1 < 0){
_arg1 = 0;
};
};
this._time = _arg1;
} else {
_local3 = this.motionArray;
if (_arg1 <= this._spanStart){
_local2 = _local3[0];
_arg1 = this._spanStart;
} else {
if (_arg1 >= this._spanEnd){
_local2 = _local3[(_local3.length - 1)];
_arg1 = this._spanEnd;
} else {
_local7 = 0;
while (_local7 < _local3.length) {
_local2 = _local3[_local7];
if (_arg1 <= ((_local2.motion_internal::spanStart + _local2.duration) - 1)){
break;
};
_local7++;
};
};
};
this._time = _arg1;
_arg1 = (_arg1 - _local2.motion_internal::spanStart);
};
this.dispatchEvent(new MotionEvent(MotionEvent.TIME_CHANGE));
var _local4:KeyframeBase = _local2.getCurrentKeyframe(_arg1);
var _local5:Boolean = (((((_local4.index == this._lastRenderedTime)) && (((!(_local3)) || ((this._lastRenderedMotion == _local2)))))) && (!(_local4.tweensLength)));
if (_local5){
return;
};
if (_local4.blank){
this._target.visible = false;
} else {
if (this._isAnimator3D){
this._lastMatrixApplied = null;
this.setTime3D(_arg1, _local2);
} else {
this._lastMatrix3DApplied = null;
this.setTimeClassic(_arg1, _local2, _local4);
};
_local8 = _local2.getColorTransform(_arg1);
if (_local3){
if (((!(_local8)) && (this._lastColorTransformApplied))){
_local8 = new ColorTransform();
};
if (((_local8) && (((!(this._lastColorTransformApplied)) || (!(colorTransformsEqual(_local8, this._lastColorTransformApplied))))))){
this._target.transform.colorTransform = _local8;
this._lastColorTransformApplied = _local8;
};
} else {
if (_local8){
this._target.transform.colorTransform = _local8;
};
};
_local9 = _local2.getFilters(_arg1);
if (((((_local3) && (!(_local9)))) && (this._filtersApplied))){
this._target.filters = null;
this._filtersApplied = false;
} else {
if (_local9){
this._target.filters = _local9;
this._filtersApplied = true;
};
};
if (((!(_local3)) || (!((this._lastBlendModeApplied == _local4.blendMode))))){
this._target.blendMode = _local4.blendMode;
this._lastBlendModeApplied = _local4.blendMode;
};
};
this._lastRenderedTime = _arg1;
this._lastRenderedMotion = _local2;
this.dispatchEvent(new MotionEvent(MotionEvent.MOTION_UPDATE));
}
protected function setTime3D(_arg1:int, _arg2:MotionBase):Boolean{
return (false);
}
protected function setTimeClassic(_arg1:int, _arg2:MotionBase, _arg3:KeyframeBase):Boolean{
return (false);
}
public function get targetParent():DisplayObjectContainer{
return (this._targetParent);
}
public function set targetParent(_arg1:DisplayObjectContainer):void{
this._targetParent = _arg1;
}
public function get targetParentButton():SimpleButton{
return (this._targetParentBtn);
}
public function set targetParentButton(_arg1:SimpleButton){
this._targetParentBtn = _arg1;
}
public function get targetName():String{
return (this._targetName);
}
public function set targetName(_arg1:String):void{
this._targetName = _arg1;
}
public function get placeholderName():String{
return (this._placeholderName);
}
public function set placeholderName(_arg1:String):void{
this._placeholderName = _arg1;
}
public function get instanceFactoryClass():Class{
return (this._instanceFactoryClass);
}
public function set instanceFactoryClass(_arg1:Class):void{
var f = _arg1;
if (f == this._instanceFactoryClass){
return;
};
this._instanceFactoryClass = f;
try {
this.instanceFactory = this._instanceFactoryClass["getSingleton"]();
} catch(e:Error) {
instanceFactory = null;
};
}
public function useCurrentFrame(_arg1:Boolean, _arg2:int):void{
this._useCurrentFrame = _arg1;
if (!this.motionArray){
this._spanStart = _arg2;
};
}
public function get usingCurrentFrame():Boolean{
return (this._useCurrentFrame);
}
public function get spanStart():int{
return (this._spanStart);
}
public function get spanEnd():int{
if (this._spanEnd >= 0){
return (this._spanEnd);
};
if (((this._motion) && ((this._motion.duration > 0)))){
return (((this._spanStart + this._motion.duration) - 1));
};
return (this._spanStart);
}
public function get sceneName():String{
return (this._sceneName);
}
public function set sceneName(_arg1:String):void{
this._sceneName = _arg1;
}
private function handleEnterFrame(_arg1:Event):void{
var _local2:MovieClip;
if (this._registeredParent){
_local2 = (this._targetParent as MovieClip);
if (_local2 == null){
return;
};
if (((((((!(this.usingCurrentFrame)) || (!((_local2.currentFrame == this._lastFrameHandled))))) || (!((_local2.currentScene.name == this._lastSceneHandled))))) || ((((this.target == null)) && (!((this.instanceFactoryClass == null))))))){
processCurrentFrame(_local2, this, false);
};
this.removeChildren();
this._lastFrameHandled = _local2.currentFrame;
this._lastSceneHandled = _local2.currentScene.name;
} else {
this.nextFrame();
};
}
private function removeChildren():void{
var _local2:Object;
var _local3:MovieClip;
var _local1:int;
while (_local1 < this._toRemove.length) {
_local2 = this._toRemove[_local1];
if ((((_local2.target == this._target)) || (!((_local2.target.parent == this._targetParent))))){
this._toRemove.splice(_local1, 1);
} else {
_local3 = MovieClip(this._targetParent);
if ((((_local2.currentFrame == _local3.currentFrame)) && ((((_local3.scenes.length <= 1)) || ((_local2.currentSceneName == _local3.currentScene.name)))))){
_local1++;
} else {
this.removeChildTarget(_local3, _local2.target, _local2.target.name);
this._toRemove.splice(_local1, 1);
};
};
};
}
protected function removeChildTarget(_arg1:MovieClip, _arg2:DisplayObject, _arg3:String):void{
_arg1.removeChild(_arg2);
if (((_arg1.hasOwnProperty(_arg3)) && ((_arg1[_arg3] == _arg2)))){
_arg1[_arg3] = null;
};
this._lastColorTransformApplied = null;
this._filtersApplied = false;
this._lastBlendModeApplied = null;
this._cacheAsBitmapHasBeenApplied = false;
this._lastMatrixApplied = null;
this._lastMatrix3DApplied = null;
}
public function get frameEvent():String{
return (this._frameEvent);
}
public function set frameEvent(_arg1:String):void{
this._frameEvent = _arg1;
}
public function get targetState3D():Array{
return (this._targetState3D);
}
public function set targetState3D(_arg1:Array):void{
this._targetState3D = _arg1;
}
public function nextFrame(_arg1:Boolean=false, _arg2:Boolean=true):void{
if (((((this.motionArray) && ((this.time >= this.spanEnd)))) || (((!(this.motionArray)) && ((this.time >= (this.motion.duration - 1))))))){
this.handleLastFrame(_arg1, _arg2);
} else {
this.time++;
};
}
public function play(_arg1:int=-1, _arg2:Boolean=true):void{
var _local3:DisplayObject;
var _local4:DisplayObject;
var _local5:DisplayObject;
if (!this._isPlaying){
if ((((((this._target == null)) && (this._targetParent))) && (!((this._targetName == ""))))){
_local3 = (this._targetParent.hasOwnProperty(this._targetName)) ? this._targetParent[this._targetName] : this._targetParent.getChildByName(this._targetName);
if ((((this.instanceFactory == null)) || (this.instanceFactory["isTargetForFrame"](_local3, _arg1, this.sceneName)))){
this.target = _local3;
};
if (!this.target){
_local3 = this._targetParent.getChildByName(this._targetName);
if ((((this.instanceFactory == null)) || (this.instanceFactory["isTargetForFrame"](_local3, _arg1, this.sceneName)))){
this.target = _local3;
};
if (((((!(this.target)) && (this._placeholderName))) && (this.instanceFactory))){
_local4 = this.instanceFactory["getInstance"](this._targetParent, this._targetName, _arg1, this.sceneName);
if (_local4){
_local4.name = this._targetName;
this._targetParent[this._targetName] = _local4;
_local5 = this._targetParent[this._placeholderName];
if (!_local5){
_local5 = this._targetParent.getChildByName(this._placeholderName);
};
if (_local5){
this._targetParent.addChildAt(_local4, (this._targetParent.getChildIndex(_local5) + 1));
} else {
this._targetParent.addChild(_local4);
};
this.target = _local4;
};
};
};
};
if (_arg2){
enterFrameBeacon.addEventListener(this.frameEvent, this.handleEnterFrame, false, 0, true);
};
if (!this.target){
return;
};
this._isPlaying = true;
};
this.playCount = 0;
if (_arg1 > -1){
this.time = _arg1;
} else {
this.rewind();
};
this.dispatchEvent(new MotionEvent(MotionEvent.MOTION_START));
}
public function end(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=false):void{
var _local4:MovieClip;
if (_arg2){
enterFrameBeacon.removeEventListener(this.frameEvent, this.handleEnterFrame);
};
this._isPlaying = false;
this.playCount = 0;
if (this.autoRewind){
this.rewind();
} else {
if (((this.motion) && (!((this.time == (this.motion.duration - 1)))))){
this.time = (this.motion.duration - 1);
} else {
if (((this.motionArray) && (!((this.time == this._spanEnd))))){
this.time = this._spanEnd;
};
};
};
if (_arg1){
if (((this._targetParent) && (!((this._targetName == ""))))){
if (((((((this._target) && (this.instanceFactory))) && ((this._targetParent is MovieClip)))) && ((this._targetParent == this._target.parent)))){
if (_arg3){
this.removeChildTarget(MovieClip(this._targetParent), this._target, this._targetName);
} else {
_local4 = MovieClip(this._targetParent);
this._toRemove.push({target:this._target, currentFrame:_local4.currentFrame, currentSceneName:_local4.currentScene.name});
};
};
this._target = null;
};
this._lastRenderedTime = -1;
this._time = -1;
};
this.dispatchEvent(new MotionEvent(MotionEvent.MOTION_END));
}
public function stop():void{
enterFrameBeacon.removeEventListener(this.frameEvent, this.handleEnterFrame);
this._isPlaying = false;
this.playCount = 0;
this.rewind();
this.dispatchEvent(new MotionEvent(MotionEvent.MOTION_END));
}
public function pause():void{
enterFrameBeacon.removeEventListener(this.frameEvent, this.handleEnterFrame);
this._isPlaying = false;
}
public function resume():void{
enterFrameBeacon.addEventListener(this.frameEvent, this.handleEnterFrame, false, 0, true);
this._isPlaying = true;
}
public function startFrameEvents():void{
enterFrameBeacon.addEventListener(this.frameEvent, this.handleEnterFrame, false, 0, true);
}
public function rewind():void{
this.time = (this.motionArray) ? this._spanStart : 0;
}
private function placeholderButtonEnterFrameHandler(_arg1:Event):void{
var _local3:DisplayObjectContainer;
if ((((this._targetParentBtn == null)) || ((this.instanceFactory == null)))){
this._target.removeEventListener(this.frameEvent, this.placeholderButtonEnterFrameHandler);
return;
};
var _local2:DisplayObject = this.instanceFactory["getInstance"](this._targetParentBtn, this._targetName, this._spanStart);
if (_local2 == null){
return;
};
this._target.removeEventListener(this.frameEvent, this.placeholderButtonEnterFrameHandler);
if ((((this._target.parent == null)) || ((DisplayObject(this._target.parent) == this._targetParentBtn)))){
switch (this._spanStart){
case 1:
this._targetParentBtn.overState = _local2;
break;
case 2:
this._targetParentBtn.downState = _local2;
break;
case 3:
this._targetParentBtn.hitTestState = _local2;
break;
default:
this._targetParentBtn.upState = _local2;
break;
};
} else {
_local3 = (this._target.parent as DisplayObjectContainer);
if (_local3 != null){
_local3.addChildAt(_local2, (_local3.getChildIndex(this._target) + 1));
_local3.removeChild(this._target);
};
};
this.target = _local2;
this.time = 0;
}
private function placeholderSpriteEnterFrameHandler(_arg1:Event):void{
if ((((this._targetParent == null)) || ((this.instanceFactory == null)))){
this._target.removeEventListener(this.frameEvent, this.placeholderSpriteEnterFrameHandler);
return;
};
var _local2:DisplayObject = this.instanceFactory["getInstance"](this._targetParent, this._targetName, 0);
if (_local2 == null){
return;
};
_local2.name = this._targetName;
this._targetParent[this._targetName] = _local2;
this._target.removeEventListener(this.frameEvent, this.placeholderSpriteEnterFrameHandler);
this._targetParent[this._placeholderName] = null;
this._targetParent.addChildAt(_local2, (this._targetParent.getChildIndex(this._target) + 1));
this._targetParent.removeChild(this._target);
this.target = _local2;
this.time = 0;
}
private function handleLastFrame(_arg1:Boolean=false, _arg2:Boolean=true):void{
this.playCount++;
if ((((this.repeatCount == 0)) || ((this.playCount < this.repeatCount)))){
this.rewind();
} else {
this.end(_arg1, _arg2, false);
};
}
protected static function colorTransformsEqual(_arg1:ColorTransform, _arg2:ColorTransform):Boolean{
return ((((((((((((((((_arg1.alphaMultiplier == _arg2.alphaMultiplier)) && ((_arg1.alphaOffset == _arg2.alphaOffset)))) && ((_arg1.blueMultiplier == _arg2.blueMultiplier)))) && ((_arg1.blueOffset == _arg2.blueOffset)))) && ((_arg1.greenMultiplier == _arg2.greenMultiplier)))) && ((_arg1.greenOffset == _arg2.greenOffset)))) && ((_arg1.redMultiplier == _arg2.redMultiplier)))) && ((_arg1.redOffset == _arg2.redOffset))));
}
public static function registerParentFrameHandler(_arg1:MovieClip, _arg2:AnimatorBase, _arg3:int, _arg4:int=0, _arg5:Boolean=false):void{
_arg2._registeredParent = true;
if (_arg3 == -1){
_arg3 = (_arg1.currentFrame - 1);
};
if (_arg5){
_arg2.useCurrentFrame(true, _arg3);
} else {
_arg2.repeatCount = _arg4;
};
}
public static function processCurrentFrame(_arg1:MovieClip, _arg2:AnimatorBase, _arg3:Boolean, _arg4:Boolean=false):void{
var _local5:int;
var _local6:int;
if (((_arg2) && (_arg1))){
if (_arg2.usingCurrentFrame){
_local5 = (_arg1.currentFrame - 1);
if (_arg1.scenes.length > 1){
if (_arg1.currentScene.name != _arg2.sceneName){
_local5 = -1;
};
};
if ((((_local5 >= _arg2.spanStart)) && ((_local5 <= _arg2.spanEnd)))){
_local6 = (_arg2.motionArray) ? _local5 : (_local5 - _arg2.spanStart);
if (!_arg2.isPlaying){
_arg2.play(_local6, _arg3);
} else {
if (!_arg4){
if (_local5 == _arg2.spanEnd){
_arg2.handleLastFrame(true, false);
} else {
_arg2.time = _local6;
};
};
};
} else {
if (((_arg2.isPlaying) && (!(_arg4)))){
_arg2.end(true, false, true);
} else {
if (((!(_arg2.isPlaying)) && (_arg4))){
_arg2.startFrameEvents();
};
};
};
} else {
if (((_arg2.targetParent) && (((((_arg2.targetParent.hasOwnProperty(_arg2.targetName)) && ((_arg2.targetParent[_arg2.targetName] == null)))) || ((_arg2.targetParent.getChildByName(_arg2.targetName) == null)))))){
if (_arg2.isPlaying){
_arg2.end(true, false);
} else {
if (_arg4){
_arg2.startFrameEvents();
};
};
} else {
if (!_arg2.isPlaying){
if (_arg4){
_arg2.play(0, _arg3);
};
} else {
if (!_arg4){
_arg2.nextFrame(false, false);
};
};
};
};
};
}
public static function registerButtonState(_arg1:SimpleButton, _arg2:AnimatorBase, _arg3:int, _arg4:int=-1, _arg5:String=null, _arg6:String=null, _arg7:Class=null):void{
var newTarget:DisplayObject;
var container:DisplayObjectContainer;
var targetParentBtn = _arg1;
var anim = _arg2;
var stateFrame = _arg3;
var zIndex = _arg4;
var targetName = _arg5;
var placeholderName = _arg6;
var instanceFactoryClass = _arg7;
var target:DisplayObject = targetParentBtn.upState;
switch (stateFrame){
case 1:
target = targetParentBtn.overState;
break;
case 2:
target = targetParentBtn.downState;
break;
case 3:
target = targetParentBtn.hitTestState;
break;
};
if (!target){
return;
};
if (zIndex >= 0){
try {
container = DisplayObjectContainer(target);
newTarget = container.getChildAt(zIndex);
} catch(e:Error) {
newTarget = null;
};
if (newTarget != null){
target = newTarget;
};
};
anim.target = target;
if (((!((placeholderName == null))) && (!((instanceFactoryClass == null))))){
anim.targetParentButton = targetParentBtn;
anim.targetName = targetName;
anim.instanceFactoryClass = instanceFactoryClass;
anim.useCurrentFrame(true, stateFrame);
anim.target.addEventListener(anim.frameEvent, anim.placeholderButtonEnterFrameHandler, false, 0, true);
anim.placeholderButtonEnterFrameHandler(null);
} else {
anim.time = 0;
};
}
public static function registerSpriteParent(_arg1:Sprite, _arg2:AnimatorBase, _arg3:String, _arg4:String=null, _arg5:Class=null):void{
var _local6:DisplayObject;
if ((((((_arg1 == null)) || ((_arg2 == null)))) || ((_arg3 == null)))){
return;
};
if (((!((_arg4 == null))) && (!((_arg5 == null))))){
_local6 = _arg1[_arg4];
if (_local6 == null){
_local6 = _arg1.getChildByName(_arg4);
};
_arg2.target = _local6;
_arg2.targetParent = _arg1;
_arg2.targetName = _arg3;
_arg2.placeholderName = _arg4;
_arg2.instanceFactoryClass = _arg5;
_arg2.useCurrentFrame(true, 0);
_arg2.target.addEventListener(_arg2.frameEvent, _arg2.placeholderSpriteEnterFrameHandler, false, 0, true);
_arg2.placeholderSpriteEnterFrameHandler(null);
} else {
_local6 = _arg1[_arg3];
if (_local6 == null){
_local6 = _arg1.getChildByName(_arg3);
};
_arg2.target = _local6;
_arg2.time = 0;
};
}
}
}//package fl.motion
Section 19
//AnimatorFactory (fl.motion.AnimatorFactory)
package fl.motion {
public class AnimatorFactory extends AnimatorFactoryBase {
public function AnimatorFactory(_arg1:MotionBase, _arg2:Array=null){
super(_arg1, _arg2);
}
override protected function getNewAnimator():AnimatorBase{
return (new Animator(null, null));
}
}
}//package fl.motion
Section 20
//AnimatorFactoryBase (fl.motion.AnimatorFactoryBase)
package fl.motion {
import flash.geom.*;
import flash.display.*;
import flash.utils.*;
public class AnimatorFactoryBase {
private var _motion:MotionBase;
private var _motionArray:Array;
private var _animators:Dictionary;
protected var _transformationPoint:Point;
protected var _transformationPointZ:int;
protected var _is3D:Boolean;
protected var _sceneName:String;
public function AnimatorFactoryBase(_arg1:MotionBase, _arg2:Array=null){
this._motion = _arg1;
this._motionArray = _arg2;
this._animators = new Dictionary(true);
this._transformationPoint = new Point(0.5, 0.5);
this._transformationPointZ = 0;
this._is3D = false;
this._sceneName = "";
}
public function get motion():MotionBase{
return (this._motion);
}
public function addTarget(_arg1:DisplayObject, _arg2:int=0, _arg3:Boolean=true, _arg4:int=-1, _arg5:Boolean=false):AnimatorBase{
if (_arg1){
return (this.addTargetInfo(_arg1.parent, _arg1.name, _arg2, _arg3, _arg4, _arg5));
};
return (null);
}
protected function getNewAnimator():AnimatorBase{
return (null);
}
public function addTargetInfo(_arg1:DisplayObject, _arg2:String, _arg3:int=0, _arg4:Boolean=true, _arg5:int=-1, _arg6:Boolean=false, _arg7:Array=null, _arg8:int=-1, _arg9:String=null, _arg10:Class=null):AnimatorBase{
var _local14:Class;
if (((!((_arg1 is DisplayObjectContainer))) && (!((_arg1 is SimpleButton))))){
return (null);
};
var _local11:Dictionary = this._animators[_arg1];
if (!_local11){
_local11 = new Dictionary();
this._animators[_arg1] = _local11;
};
var _local12:AnimatorBase = _local11[_arg2];
var _local13:Boolean;
if (!_local12){
_local12 = this.getNewAnimator();
_local14 = (getDefinitionByName("flash.events.Event") as Class);
if (_local14.hasOwnProperty("FRAME_CONSTRUCTED")){
_local12.frameEvent = "frameConstructed";
};
_local11[_arg2] = _local12;
_local13 = true;
};
_local12.motion = this._motion;
_local12.motionArray = this._motionArray;
_local12.transformationPoint = this._transformationPoint;
_local12.transformationPointZ = this._transformationPointZ;
_local12.sceneName = this._sceneName;
if (_local13){
if ((_arg1 is MovieClip)){
AnimatorBase.registerParentFrameHandler((_arg1 as MovieClip), _local12, _arg5, _arg3, _arg6);
};
};
if ((_arg1 is MovieClip)){
_local12.targetParent = MovieClip(_arg1);
_local12.targetName = _arg2;
_local12.placeholderName = _arg9;
_local12.instanceFactoryClass = _arg10;
} else {
if ((_arg1 is SimpleButton)){
AnimatorBase.registerButtonState((_arg1 as SimpleButton), _local12, _arg5, _arg8, _arg2, _arg9, _arg10);
} else {
if ((_arg1 is Sprite)){
AnimatorBase.registerSpriteParent((_arg1 as Sprite), _local12, _arg2, _arg9, _arg10);
};
};
};
if (_arg7){
_local12.initialPosition = _arg7;
};
if (_arg4){
AnimatorBase.processCurrentFrame((_arg1 as MovieClip), _local12, true, true);
};
return (_local12);
}
public function set transformationPoint(_arg1:Point):void{
this._transformationPoint = _arg1;
}
public function set transformationPointZ(_arg1:int):void{
this._transformationPointZ = _arg1;
}
public function set sceneName(_arg1:String):void{
this._sceneName = _arg1;
}
}
}//package fl.motion
Section 21
//BezierEase (fl.motion.BezierEase)
package fl.motion {
import flash.geom.*;
public class BezierEase implements ITween {
public var points:Array;
private var firstNode:Point;
private var lastNode:Point;
private var _target:String;// = ""
public function BezierEase(_arg1:XML=null){
this.points = [];
this.parseXML(_arg1);
}
public function get target():String{
return (this._target);
}
public function set target(_arg1:String):void{
this._target = _arg1;
}
private function parseXML(_arg1:XML=null):BezierEase{
var _local3:XML;
if (!_arg1){
return (this);
};
if (_arg1.@target.length()){
this.target = _arg1.@target;
};
var _local2:XMLList = _arg1.elements();
for each (_local3 in _local2) {
this.points.push(new Point(Number(_local3.@x), Number(_local3.@y)));
};
return (this);
}
public function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg4 <= 0){
return (NaN);
};
var _local5:Number = (_arg1 / _arg4);
if (_local5 <= 0){
return (_arg2);
};
if (_local5 >= 1){
return ((_arg2 + _arg3));
};
this.firstNode = new Point(0, _arg2);
this.lastNode = new Point(1, (_arg2 + _arg3));
var _local6:Array = [this.firstNode].concat(this.points);
_local6.push(this.lastNode);
var _local7:Number = CustomEase.getYForPercent(_local5, _local6);
return (_local7);
}
}
}//package fl.motion
Section 22
//BezierSegment (fl.motion.BezierSegment)
package fl.motion {
import flash.geom.*;
public class BezierSegment {
public var a:Point;
public var b:Point;
public var c:Point;
public var d:Point;
public function BezierSegment(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point){
this.a = _arg1;
this.b = _arg2;
this.c = _arg3;
this.d = _arg4;
}
public function getValue(_arg1:Number):Point{
var _local2:Number = this.a.x;
var _local3:Number = (((((_arg1 * _arg1) * (this.d.x - _local2)) + ((3 * (1 - _arg1)) * ((_arg1 * (this.c.x - _local2)) + ((1 - _arg1) * (this.b.x - _local2))))) * _arg1) + _local2);
var _local4:Number = this.a.y;
var _local5:Number = (((((_arg1 * _arg1) * (this.d.y - _local4)) + ((3 * (1 - _arg1)) * ((_arg1 * (this.c.y - _local4)) + ((1 - _arg1) * (this.b.y - _local4))))) * _arg1) + _local4);
return (new Point(_local3, _local5));
}
public function getYForX(_arg1:Number, _arg2:Array=null):Number{
var _local6:Number;
if (this.a.x < this.d.x){
if (_arg1 <= (this.a.x + 1E-16)){
return (this.a.y);
};
if (_arg1 >= (this.d.x - 1E-16)){
return (this.d.y);
};
} else {
if (_arg1 >= (this.a.x + 1E-16)){
return (this.a.y);
};
if (_arg1 <= (this.d.x - 1E-16)){
return (this.d.y);
};
};
if (!_arg2){
_arg2 = getCubicCoefficients(this.a.x, this.b.x, this.c.x, this.d.x);
};
var _local3:Array = getCubicRoots(_arg2[0], _arg2[1], _arg2[2], (_arg2[3] - _arg1));
var _local4:Number = NaN;
if (_local3.length == 0){
_local4 = 0;
} else {
if (_local3.length == 1){
_local4 = _local3[0];
} else {
for each (_local6 in _local3) {
if ((((0 <= _local6)) && ((_local6 <= 1)))){
_local4 = _local6;
break;
};
};
};
};
if (isNaN(_local4)){
return (NaN);
};
var _local5:Number = getSingleValue(_local4, this.a.y, this.b.y, this.c.y, this.d.y);
return (_local5);
}
public static function getSingleValue(_arg1:Number, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0):Number{
return ((((((_arg1 * _arg1) * (_arg5 - _arg2)) + ((3 * (1 - _arg1)) * ((_arg1 * (_arg4 - _arg2)) + ((1 - _arg1) * (_arg3 - _arg2))))) * _arg1) + _arg2));
}
public static function getCubicCoefficients(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Array{
return ([(((-(_arg1) + (3 * _arg2)) - (3 * _arg3)) + _arg4), (((3 * _arg1) - (6 * _arg2)) + (3 * _arg3)), ((-3 * _arg1) + (3 * _arg2)), _arg1]);
}
public static function getCubicRoots(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):Array{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:int;
var _local16:Number;
if (!_arg1){
return (BezierSegment.getQuadraticRoots(_arg2, _arg3, _arg4));
};
if (_arg1 != 1){
_arg2 = (_arg2 / _arg1);
_arg3 = (_arg3 / _arg1);
_arg4 = (_arg4 / _arg1);
};
var _local5:Number = (((_arg2 * _arg2) - (3 * _arg3)) / 9);
var _local6:Number = (((((_arg2 * _arg2) - (3 * _arg3)) / 9) * _local5) * _local5);
var _local7:Number = ((((((2 * _arg2) * _arg2) * _arg2) - ((9 * _arg2) * _arg3)) + (27 * _arg4)) / 54);
var _local8:Number = (_local6 - (_local7 * _local7));
if (_local8 >= 0){
if (!_local5){
return ([0]);
};
_local9 = Math.acos((_local7 / Math.sqrt(_local6)));
_local10 = Math.sqrt(_local5);
_local11 = (((-2 * _local10) * Math.cos((_local9 / 3))) - (_arg2 / 3));
_local12 = (((-2 * _local10) * Math.cos(((_local9 + (2 * Math.PI)) / 3))) - (_arg2 / 3));
_local13 = (((-2 * _local10) * Math.cos(((_local9 + (4 * Math.PI)) / 3))) - (_arg2 / 3));
return ([_local11, _local12, _local13]);
//unresolved jump
};
_local14 = Math.pow((Math.sqrt(-(_local8)) + Math.abs(_local7)), (1 / 3));
_local15 = ((_local7)>0) ? 1 : ((_local7 < 0)) ? -1 : 0;
_local16 = ((-(_local15) * (_local14 + (_local5 / _local14))) - (_arg2 / 3));
return ([_local16]);
}
public static function getQuadraticRoots(_arg1:Number, _arg2:Number, _arg3:Number):Array{
var _local7:Number;
var _local4:Array = [];
if (!_arg1){
if (!_arg2){
return ([]);
};
_local4[0] = (-(_arg3) / _arg2);
return (_local4);
};
var _local5:Number = ((_arg2 * _arg2) - ((4 * _arg1) * _arg3));
var _local6:int = ((_local5)>0) ? 1 : ((_local5 < 0)) ? -1 : 0;
if (_local6 < 0){
return ([]);
};
if (!_local6){
_local4[0] = (-(_arg2) / (2 * _arg1));
} else {
_local4[0] = (_local4[1] = (-(_arg2) / (2 * _arg1)));
_local7 = (Math.sqrt(_local5) / (2 * _arg1));
_local4[0] = (_local4[0] - _local7);
_local4[1] = (_local4[1] + _local7);
};
return (_local4);
}
}
}//package fl.motion
Section 23
//Color (fl.motion.Color)
package fl.motion {
import flash.geom.*;
import flash.display.*;
public class Color extends ColorTransform {
private var _tintColor:Number;// = 0
private var _tintMultiplier:Number;// = 0
public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){
super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public function get brightness():Number{
return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1));
}
public function set brightness(_arg1:Number):void{
if (_arg1 > 1){
_arg1 = 1;
} else {
if (_arg1 < -1){
_arg1 = -1;
};
};
var _local2:Number = (1 - Math.abs(_arg1));
var _local3:Number = 0;
if (_arg1 > 0){
_local3 = (_arg1 * 0xFF);
};
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2));
this.redOffset = (this.greenOffset = (this.blueOffset = _local3));
}
public function setTint(_arg1:uint, _arg2:Number):void{
this._tintColor = _arg1;
this._tintMultiplier = _arg2;
this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2)));
var _local3:uint = ((_arg1 >> 16) & 0xFF);
var _local4:uint = ((_arg1 >> 8) & 0xFF);
var _local5:uint = (_arg1 & 0xFF);
this.redOffset = Math.round((_local3 * _arg2));
this.greenOffset = Math.round((_local4 * _arg2));
this.blueOffset = Math.round((_local5 * _arg2));
}
public function get tintColor():uint{
return (this._tintColor);
}
public function set tintColor(_arg1:uint):void{
this.setTint(_arg1, this.tintMultiplier);
}
private function deriveTintColor():uint{
var _local1:Number = (1 / this.tintMultiplier);
var _local2:uint = Math.round((this.redOffset * _local1));
var _local3:uint = Math.round((this.greenOffset * _local1));
var _local4:uint = Math.round((this.blueOffset * _local1));
var _local5:uint = (((_local2 << 16) | (_local3 << 8)) | _local4);
return (_local5);
}
public function get tintMultiplier():Number{
return (this._tintMultiplier);
}
public function set tintMultiplier(_arg1:Number):void{
this.setTint(this.tintColor, _arg1);
}
private function parseXML(_arg1:XML=null):Color{
var _local3:XML;
var _local4:String;
var _local5:uint;
if (!_arg1){
return (this);
};
var _local2:XML = _arg1.elements()[0];
if (!_local2){
return (this);
};
for each (_local3 in _local2.attributes()) {
_local4 = _local3.localName();
if (_local4 == "tintColor"){
_local5 = (Number(_local3.toString()) as uint);
this.tintColor = _local5;
} else {
this[_local4] = Number(_local3.toString());
};
};
return (this);
}
public static function fromXML(_arg1:XML):Color{
return (Color(new (Color).parseXML(_arg1)));
}
public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{
var _local4:Number = (1 - _arg3);
var _local5:ColorTransform = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3)));
return (_local5);
}
public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{
var _local4:Number = (1 - _arg3);
var _local5:uint = ((_arg1 >> 24) & 0xFF);
var _local6:uint = ((_arg1 >> 16) & 0xFF);
var _local7:uint = ((_arg1 >> 8) & 0xFF);
var _local8:uint = (_arg1 & 0xFF);
var _local9:uint = ((_arg2 >> 24) & 0xFF);
var _local10:uint = ((_arg2 >> 16) & 0xFF);
var _local11:uint = ((_arg2 >> 8) & 0xFF);
var _local12:uint = (_arg2 & 0xFF);
var _local13:uint = ((_local5 * _local4) + (_local9 * _arg3));
var _local14:uint = ((_local6 * _local4) + (_local10 * _arg3));
var _local15:uint = ((_local7 * _local4) + (_local11 * _arg3));
var _local16:uint = ((_local8 * _local4) + (_local12 * _arg3));
var _local17:uint = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16);
return (_local17);
}
}
}//package fl.motion
Section 24
//ColorMatrix (fl.motion.ColorMatrix)
package fl.motion {
public class ColorMatrix extends DynamicMatrix {
protected static const LUMINANCER:Number = 0.3086;
protected static const LUMINANCEG:Number = 0.6094;
protected static const LUMINANCEB:Number = 0.082;
public function ColorMatrix(){
super(5, 5);
LoadIdentity();
}
public function SetBrightnessMatrix(_arg1:Number):void{
if (!m_matrix){
return;
};
m_matrix[0][4] = _arg1;
m_matrix[1][4] = _arg1;
m_matrix[2][4] = _arg1;
}
public function SetContrastMatrix(_arg1:Number):void{
if (!m_matrix){
return;
};
var _local2:Number = (0.5 * (127 - _arg1));
_arg1 = (_arg1 / 127);
m_matrix[0][0] = _arg1;
m_matrix[1][1] = _arg1;
m_matrix[2][2] = _arg1;
m_matrix[0][4] = _local2;
m_matrix[1][4] = _local2;
m_matrix[2][4] = _local2;
}
public function SetSaturationMatrix(_arg1:Number):void{
if (!m_matrix){
return;
};
var _local2:Number = (1 - _arg1);
var _local3:Number = (_local2 * LUMINANCER);
m_matrix[0][0] = (_local3 + _arg1);
m_matrix[1][0] = _local3;
m_matrix[2][0] = _local3;
_local3 = (_local2 * LUMINANCEG);
m_matrix[0][1] = _local3;
m_matrix[1][1] = (_local3 + _arg1);
m_matrix[2][1] = _local3;
_local3 = (_local2 * LUMINANCEB);
m_matrix[0][2] = _local3;
m_matrix[1][2] = _local3;
m_matrix[2][2] = (_local3 + _arg1);
}
public function SetHueMatrix(_arg1:Number):void{
var _local11:int;
if (!m_matrix){
return;
};
LoadIdentity();
var _local2:DynamicMatrix = new DynamicMatrix(3, 3);
var _local3:DynamicMatrix = new DynamicMatrix(3, 3);
var _local4:DynamicMatrix = new DynamicMatrix(3, 3);
var _local5:Number = Math.cos(_arg1);
var _local6:Number = Math.sin(_arg1);
var _local7:Number = 0.213;
var _local8:Number = 0.715;
var _local9:Number = 0.072;
_local2.SetValue(0, 0, _local7);
_local2.SetValue(1, 0, _local7);
_local2.SetValue(2, 0, _local7);
_local2.SetValue(0, 1, _local8);
_local2.SetValue(1, 1, _local8);
_local2.SetValue(2, 1, _local8);
_local2.SetValue(0, 2, _local9);
_local2.SetValue(1, 2, _local9);
_local2.SetValue(2, 2, _local9);
_local3.SetValue(0, 0, (1 - _local7));
_local3.SetValue(1, 0, -(_local7));
_local3.SetValue(2, 0, -(_local7));
_local3.SetValue(0, 1, -(_local8));
_local3.SetValue(1, 1, (1 - _local8));
_local3.SetValue(2, 1, -(_local8));
_local3.SetValue(0, 2, -(_local9));
_local3.SetValue(1, 2, -(_local9));
_local3.SetValue(2, 2, (1 - _local9));
_local3.MultiplyNumber(_local5);
_local4.SetValue(0, 0, -(_local7));
_local4.SetValue(1, 0, 0.143);
_local4.SetValue(2, 0, -((1 - _local7)));
_local4.SetValue(0, 1, -(_local8));
_local4.SetValue(1, 1, 0.14);
_local4.SetValue(2, 1, _local8);
_local4.SetValue(0, 2, (1 - _local9));
_local4.SetValue(1, 2, -0.283);
_local4.SetValue(2, 2, _local9);
_local4.MultiplyNumber(_local6);
_local2.Add(_local3);
_local2.Add(_local4);
var _local10:int;
while (_local10 < 3) {
_local11 = 0;
while (_local11 < 3) {
m_matrix[_local10][_local11] = _local2.GetValue(_local10, _local11);
_local11++;
};
_local10++;
};
}
public function GetFlatArray():Array{
var _local4:int;
if (!m_matrix){
return (null);
};
var _local1:Array = new Array();
var _local2:int;
var _local3:int;
while (_local3 < 4) {
_local4 = 0;
while (_local4 < 5) {
_local1[_local2] = m_matrix[_local3][_local4];
_local2++;
_local4++;
};
_local3++;
};
return (_local1);
}
}
}//package fl.motion
class XFormData {
public var ox:Number;
public var oy:Number;
public var oz:Number;
private function XFormData(){
}
}
Section 25
//CustomEase (fl.motion.CustomEase)
package fl.motion {
import flash.geom.*;
public class CustomEase implements ITween {
public var points:Array;
private var firstNode:Point;
private var lastNode:Point;
private var _target:String;// = ""
public function CustomEase(_arg1:XML=null){
this.points = [];
this.parseXML(_arg1);
this.firstNode = new Point(0, 0);
this.lastNode = new Point(1, 1);
}
public function get target():String{
return (this._target);
}
public function set target(_arg1:String):void{
this._target = _arg1;
}
private function parseXML(_arg1:XML=null):CustomEase{
var _local3:XML;
if (!_arg1){
return (this);
};
if (_arg1.@target.length()){
this.target = _arg1.@target;
};
var _local2:XMLList = _arg1.elements();
for each (_local3 in _local2) {
this.points.push(new Point(Number(_local3.@x), Number(_local3.@y)));
};
return (this);
}
public function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg4 <= 0){
return (NaN);
};
var _local5:Number = (_arg1 / _arg4);
if (_local5 <= 0){
return (_arg2);
};
if (_local5 >= 1){
return ((_arg2 + _arg3));
};
var _local6:Array = [this.firstNode].concat(this.points);
_local6.push(this.lastNode);
var _local7:Number = getYForPercent(_local5, _local6);
return ((_arg2 + (_local7 * _arg3)));
}
static function getYForPercent(_arg1:Number, _arg2:Array):Number{
var _local8:int;
var _local9:BezierSegment;
var _local3:BezierSegment = new BezierSegment(_arg2[0], _arg2[1], _arg2[2], _arg2[3]);
var _local4:Array = [_local3];
var _local5 = 3;
while (_local5 < (_arg2.length - 3)) {
_local4.push(new BezierSegment(_arg2[_local5], _arg2[(_local5 + 1)], _arg2[(_local5 + 2)], _arg2[(_local5 + 3)]));
_local5 = (_local5 + 3);
};
var _local6:BezierSegment = _local3;
if (_arg2.length >= 5){
_local8 = 0;
while (_local8 < _local4.length) {
_local9 = _local4[_local8];
if ((((_local9.a.x <= _arg1)) && ((_arg1 <= _local9.d.x)))){
_local6 = _local9;
break;
};
_local8++;
};
};
var _local7:Number = _local6.getYForX(_arg1);
return (_local7);
}
}
}//package fl.motion
Section 26
//DynamicMatrix (fl.motion.DynamicMatrix)
package fl.motion {
public class DynamicMatrix {
protected var m_width:int;
protected var m_height:int;
protected var m_matrix:Array;
public static const MATRIX_ORDER_PREPEND:int = 0;
public static const MATRIX_ORDER_APPEND:int = 1;
public function DynamicMatrix(_arg1:int, _arg2:int){
this.Create(_arg1, _arg2);
}
protected function Create(_arg1:int, _arg2:int):void{
var _local3:int;
var _local4:int;
if ((((_arg1 > 0)) && ((_arg2 > 0)))){
this.m_width = _arg1;
this.m_height = _arg2;
this.m_matrix = new Array(_arg2);
_local3 = 0;
while (_local3 < _arg2) {
this.m_matrix[_local3] = new Array(_arg1);
_local4 = 0;
while (_local4 < _arg2) {
this.m_matrix[_local3][_local4] = 0;
_local4++;
};
_local3++;
};
};
}
protected function Destroy():void{
this.m_matrix = null;
}
public function GetWidth():Number{
return (this.m_width);
}
public function GetHeight():Number{
return (this.m_height);
}
public function GetValue(_arg1:int, _arg2:int):Number{
var _local3:Number = 0;
if ((((((((_arg1 >= 0)) && ((_arg1 < this.m_height)))) && ((_arg2 >= 0)))) && ((_arg2 <= this.m_width)))){
_local3 = this.m_matrix[_arg1][_arg2];
};
return (_local3);
}
public function SetValue(_arg1:int, _arg2:int, _arg3:Number):void{
if ((((((((_arg1 >= 0)) && ((_arg1 < this.m_height)))) && ((_arg2 >= 0)))) && ((_arg2 <= this.m_width)))){
this.m_matrix[_arg1][_arg2] = _arg3;
};
}
public function LoadIdentity():void{
var _local1:int;
var _local2:int;
if (this.m_matrix){
_local1 = 0;
while (_local1 < this.m_height) {
_local2 = 0;
while (_local2 < this.m_width) {
if (_local1 == _local2){
this.m_matrix[_local1][_local2] = 1;
} else {
this.m_matrix[_local1][_local2] = 0;
};
_local2++;
};
_local1++;
};
};
}
public function LoadZeros():void{
var _local1:int;
var _local2:int;
if (this.m_matrix){
_local1 = 0;
while (_local1 < this.m_height) {
_local2 = 0;
while (_local2 < this.m_width) {
this.m_matrix[_local1][_local2] = 0;
_local2++;
};
_local1++;
};
};
}
public function Multiply(_arg1:DynamicMatrix, _arg2:int=0):Boolean{
var _local5:DynamicMatrix;
var _local6:int;
var _local7:int;
var _local8:Number;
var _local9:int;
var _local10:int;
if (((!(this.m_matrix)) || (!(_arg1)))){
return (false);
};
var _local3:int = _arg1.GetHeight();
var _local4:int = _arg1.GetWidth();
if (_arg2 == MATRIX_ORDER_APPEND){
if (this.m_width != _local3){
return (false);
};
_local5 = new DynamicMatrix(_local4, this.m_height);
_local6 = 0;
while (_local6 < this.m_height) {
_local7 = 0;
while (_local7 < _local4) {
_local8 = 0;
_local9 = 0;
_local10 = 0;
while ((((_local9 < Math.max(this.m_height, _local3))) && ((_local10 < Math.max(this.m_width, _local4))))) {
_local8 = (_local8 + (_arg1.GetValue(_local9, _local7) * this.m_matrix[_local6][_local10]));
_local9++;
_local10++;
};
_local5.SetValue(_local6, _local7, _local8);
_local7++;
};
_local6++;
};
this.Destroy();
this.Create(_local4, this.m_height);
_local6 = 0;
while (_local6 < _local3) {
_local7 = 0;
while (_local7 < this.m_width) {
this.m_matrix[_local6][_local7] = _local5.GetValue(_local6, _local7);
_local7++;
};
_local6++;
};
} else {
if (this.m_height != _local4){
return (false);
};
_local5 = new DynamicMatrix(this.m_width, _local3);
_local6 = 0;
while (_local6 < _local3) {
_local7 = 0;
while (_local7 < this.m_width) {
_local8 = 0;
_local9 = 0;
_local10 = 0;
while ((((_local9 < Math.max(_local3, this.m_height))) && ((_local10 < Math.max(_local4, this.m_width))))) {
_local8 = (_local8 + (this.m_matrix[_local9][_local7] * _arg1.GetValue(_local6, _local10)));
_local9++;
_local10++;
};
_local5.SetValue(_local6, _local7, _local8);
_local7++;
};
_local6++;
};
this.Destroy();
this.Create(this.m_width, _local3);
_local6 = 0;
while (_local6 < _local3) {
_local7 = 0;
while (_local7 < this.m_width) {
this.m_matrix[_local6][_local7] = _local5.GetValue(_local6, _local7);
_local7++;
};
_local6++;
};
};
return (true);
}
public function MultiplyNumber(_arg1:Number):Boolean{
var _local3:int;
var _local4:Number;
if (!this.m_matrix){
return (false);
};
var _local2:int;
while (_local2 < this.m_height) {
_local3 = 0;
while (_local3 < this.m_width) {
_local4 = 0;
_local4 = (this.m_matrix[_local2][_local3] * _arg1);
this.m_matrix[_local2][_local3] = _local4;
_local3++;
};
_local2++;
};
return (true);
}
public function Add(_arg1:DynamicMatrix):Boolean{
var _local5:int;
var _local6:Number;
if (((!(this.m_matrix)) || (!(_arg1)))){
return (false);
};
var _local2:int = _arg1.GetHeight();
var _local3:int = _arg1.GetWidth();
if (((!((this.m_width == _local3))) || (!((this.m_height == _local2))))){
return (false);
};
var _local4:int;
while (_local4 < this.m_height) {
_local5 = 0;
while (_local5 < this.m_width) {
_local6 = 0;
_local6 = (this.m_matrix[_local4][_local5] + _arg1.GetValue(_local4, _local5));
this.m_matrix[_local4][_local5] = _local6;
_local5++;
};
_local4++;
};
return (true);
}
}
}//package fl.motion
Section 27
//FunctionEase (fl.motion.FunctionEase)
package fl.motion {
import flash.utils.*;
public class FunctionEase implements ITween {
private var _functionName:String;// = ""
public var easingFunction:Function;// = null
public var parameters:Array;// = null
private var _target:String;// = ""
public function FunctionEase(_arg1:XML=null){
this.parseXML(_arg1);
}
public function get functionName():String{
return (this._functionName);
}
public function set functionName(_arg1:String):void{
var _local2:Array = _arg1.split(".");
var _local3:String = _local2.pop();
var _local4:String = _local2.join(".");
var _local5:Class = (getDefinitionByName(_local4) as Class);
if ((_local5[_local3] is Function)){
this.easingFunction = _local5[_local3];
this._functionName = _arg1;
};
}
public function get target():String{
return (this._target);
}
public function set target(_arg1:String):void{
this._target = _arg1;
}
private function parseXML(_arg1:XML=null):FunctionEase{
if (!_arg1){
return (this);
};
if (_arg1.@functionName.length()){
this.functionName = _arg1.@functionName;
};
if (_arg1.@target.length()){
this.target = _arg1.@target;
};
return (this);
}
public function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
var _local5:Array;
if ((this.parameters is Array)){
_local5 = [_arg1, _arg2, _arg3, _arg4].concat(this.parameters);
return (this.easingFunction.apply(null, _local5));
};
return (this.easingFunction(_arg1, _arg2, _arg3, _arg4));
}
}
}//package fl.motion
Section 28
//ITween (fl.motion.ITween)
package fl.motion {
public interface ITween {
function get target():String;
function set target(_arg1:String):void;
function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number;
}
}//package fl.motion
Section 29
//Keyframe (fl.motion.Keyframe)
package fl.motion {
import flash.filters.*;
import flash.utils.*;
public class Keyframe extends KeyframeBase {
public var tweens:Array;
public var tweenScale:Boolean;// = true
public var tweenSnap:Boolean;// = false
public var tweenSync:Boolean;// = false
public function Keyframe(_arg1:XML=null){
super(_arg1);
this.tweens = [];
this.parseXML(_arg1);
}
private function parseXML(_arg1:XML=null):KeyframeBase{
var tweenableName:String;
var elements:XMLList;
var filtersArray:Array;
var child:XML;
var attribute:XML;
var attributeValue:String;
var name:String;
var tweenChildren:XMLList;
var tweenChild:XML;
var tweenName:String;
var filtersChildren:XMLList;
var filterXML:XML;
var filterName:String;
var filterClassName:String;
var filterClass:Object;
var filterInstance:BitmapFilter;
var filterTypeInfo:XML;
var accessorList:XMLList;
var ratios:Array;
var attrib:XML;
var attribName:String;
var accessor:XML;
var attribType:String;
var attribValue:String;
var uintValue:uint;
var valuesArray:Array;
var xml = _arg1;
if (!xml){
return (this);
};
var indexString:String = xml.@index.toXMLString();
var indexValue:int = parseInt(indexString);
if (indexString){
this.index = indexValue;
} else {
throw (new Error("<Keyframe> is missing the required attribute \"index\"."));
};
if (xml.@label.length()){
this.label = xml.@label;
};
if (xml.@tweenScale.length()){
this.tweenScale = (xml.@tweenScale.toString() == "true");
};
if (xml.@tweenSnap.length()){
this.tweenSnap = (xml.@tweenSnap.toString() == "true");
};
if (xml.@tweenSync.length()){
this.tweenSync = (xml.@tweenSync.toString() == "true");
};
if (xml.@blendMode.length()){
this.blendMode = xml.@blendMode;
};
if (xml.@cacheAsBitmap.length()){
this.cacheAsBitmap = (xml.@cacheAsBitmap.toString() == "true");
};
if (xml.@rotateDirection.length()){
this.rotateDirection = xml.@rotateDirection;
};
if (xml.@rotateTimes.length()){
this.rotateTimes = parseInt(xml.@rotateTimes);
};
if (xml.@orientToPath.length()){
this.orientToPath = (xml.@orientToPath.toString() == "true");
};
if (xml.@blank.length()){
this.blank = (xml.@blank.toString() == "true");
};
var tweenableNames:Array = ["x", "y", "scaleX", "scaleY", "rotation", "skewX", "skewY"];
for each (tweenableName in tweenableNames) {
attribute = xml.attribute(tweenableName)[0];
if (!attribute){
} else {
attributeValue = attribute.toString();
if (attributeValue){
this[tweenableName] = Number(attributeValue);
};
};
};
elements = xml.elements();
filtersArray = [];
for each (child in elements) {
name = child.localName();
if (name == "tweens"){
tweenChildren = child.elements();
for each (tweenChild in tweenChildren) {
tweenName = tweenChild.localName();
if (tweenName == "SimpleEase"){
this.tweens.push(new SimpleEase(tweenChild));
} else {
if (tweenName == "CustomEase"){
this.tweens.push(new CustomEase(tweenChild));
} else {
if (tweenName == "BezierEase"){
this.tweens.push(new BezierEase(tweenChild));
} else {
if (tweenName == "FunctionEase"){
this.tweens.push(new FunctionEase(tweenChild));
};
};
};
};
};
} else {
if (name == "filters"){
filtersChildren = child.elements();
for each (filterXML in filtersChildren) {
filterName = filterXML.localName();
filterClassName = ("flash.filters." + filterName);
if (filterName == "AdjustColorFilter"){
} else {
filterClass = getDefinitionByName(filterClassName);
filterInstance = new (filterClass);
filterTypeInfo = describeType(filterInstance);
accessorList = filterTypeInfo.accessor;
ratios = [];
for each (attrib in filterXML.attributes()) {
attribName = attrib.localName();
accessor = accessorList.(@name == attribName)[0];
attribType = accessor.@type;
attribValue = attrib.toString();
if (attribType == "int"){
filterInstance[attribName] = parseInt(attribValue);
} else {
if (attribType == "uint"){
filterInstance[attribName] = (parseInt(attribValue) as uint);
uintValue = (parseInt(attribValue) as uint);
} else {
if (attribType == "Number"){
filterInstance[attribName] = Number(attribValue);
} else {
if (attribType == "Boolean"){
filterInstance[attribName] = (attribValue == "true");
} else {
if (attribType == "Array"){
attribValue = attribValue.substring(1, (attribValue.length - 1));
valuesArray = null;
if ((((attribName == "ratios")) || ((attribName == "colors")))){
valuesArray = splitUint(attribValue);
} else {
if (attribName == "alphas"){
valuesArray = splitNumber(attribValue);
};
};
if (attribName == "ratios"){
ratios = valuesArray;
} else {
if (valuesArray){
filterInstance[attribName] = valuesArray;
};
};
} else {
if (attribType == "String"){
filterInstance[attribName] = attribValue;
};
};
};
};
};
};
};
if (ratios.length){
filterInstance["ratios"] = ratios;
};
filtersArray.push(filterInstance);
};
};
} else {
if (name == "color"){
this.color = Color.fromXML(child);
};
};
};
this.filters = filtersArray;
};
return (this);
}
public function getTween(_arg1:String=""):ITween{
var _local2:ITween;
for each (_local2 in this.tweens) {
if ((((((((_local2.target == _arg1)) || ((((_local2.target == "rotation")) && ((((_arg1 == "skewX")) || ((_arg1 == "skewY")))))))) || ((((_local2.target == "position")) && ((((_arg1 == "x")) || ((_arg1 == "y")))))))) || ((((_local2.target == "scale")) && ((((_arg1 == "scaleX")) || ((_arg1 == "scaleY")))))))){
return (_local2);
};
};
return (null);
}
override protected function hasTween():Boolean{
return (!((this.getTween() == null)));
}
override public function get tweensLength():int{
return (this.tweens.length);
}
private static function splitNumber(_arg1:String):Array{
var _local2:Array = _arg1.split(",");
var _local3:int;
while (_local3 < _local2.length) {
_local2[_local3] = Number(_local2[_local3]);
_local3++;
};
return (_local2);
}
private static function splitUint(_arg1:String):Array{
var _local2:Array = _arg1.split(",");
var _local3:int;
while (_local3 < _local2.length) {
_local2[_local3] = (parseInt(_local2[_local3]) as uint);
_local3++;
};
return (_local2);
}
private static function splitInt(_arg1:String):Array{
var _local2:Array = _arg1.split(",");
var _local3:int;
while (_local3 < _local2.length) {
_local2[_local3] = (parseInt(_local2[_local3]) as int);
_local3++;
};
return (_local2);
}
}
}//package fl.motion
Section 30
//KeyframeBase (fl.motion.KeyframeBase)
package fl.motion {
import flash.geom.*;
import flash.display.*;
import flash.filters.*;
import flash.utils.*;
public class KeyframeBase {
private var _index:int;// = -1
public var x:Number;// = NAN
public var y:Number;// = NAN
public var scaleX:Number;// = NAN
public var scaleY:Number;// = NAN
public var skewX:Number;// = NAN
public var skewY:Number;// = NAN
public var rotationConcat:Number;// = NAN
public var useRotationConcat:Boolean;// = false
public var filters:Array;
public var color:Color;
public var label:String;// = ""
public var loop:String;
public var firstFrame:String;
public var cacheAsBitmap:Boolean;// = false
public var blendMode:String;
public var rotateDirection:String;// = "auto"
public var rotateTimes:uint;// = 0
public var orientToPath:Boolean;// = false
public var blank:Boolean;// = false
public var matrix3D:Object;// = null
public var matrix:Matrix;// = null
public var z:Number;// = NAN
public var rotationX:Number;// = NAN
public var rotationY:Number;// = NAN
public var adjustColorObjects:Dictionary;// = null
public function KeyframeBase(_arg1:XML=null){
this.blendMode = BlendMode.NORMAL;
super();
this.filters = [];
this.adjustColorObjects = new Dictionary();
}
public function get index():int{
return (this._index);
}
public function set index(_arg1:int):void{
this._index = ((_arg1)<0) ? 0 : _arg1;
if (this._index == 0){
this.setDefaults();
};
}
public function get rotation():Number{
return (this.skewY);
}
public function set rotation(_arg1:Number):void{
if (((isNaN(this.skewX)) || (isNaN(this.skewY)))){
this.skewX = _arg1;
} else {
this.skewX = (this.skewX + (_arg1 - this.skewY));
};
this.skewY = _arg1;
}
private function setDefaults():void{
if (isNaN(this.x)){
this.x = 0;
};
if (isNaN(this.y)){
this.y = 0;
};
if (isNaN(this.z)){
this.z = 0;
};
if (isNaN(this.scaleX)){
this.scaleX = 1;
};
if (isNaN(this.scaleY)){
this.scaleY = 1;
};
if (isNaN(this.skewX)){
this.skewX = 0;
};
if (isNaN(this.skewY)){
this.skewY = 0;
};
if (isNaN(this.rotationConcat)){
this.rotationConcat = 0;
};
if (!this.color){
this.color = new Color();
};
}
public function getValue(_arg1:String):Number{
return (Number(this[_arg1]));
}
public function setValue(_arg1:String, _arg2:Number):void{
this[_arg1] = _arg2;
}
protected function hasTween():Boolean{
return (false);
}
public function affectsTweenable(_arg1:String=""):Boolean{
return (((((((((((((((!(_arg1)) || (!(isNaN(this[_arg1]))))) || ((((_arg1 == "color")) && (this.color))))) || ((((_arg1 == "filters")) && (this.filters.length))))) || ((((_arg1 == "matrix3D")) && (this.matrix3D))))) || ((((_arg1 == "matrix")) && (this.matrix))))) || (this.blank))) || (this.hasTween())));
}
public function setAdjustColorProperty(_arg1:int, _arg2:String, _arg3):void{
var _local5:ColorMatrixFilter;
var _local6:Array;
if (_arg1 >= this.filters.length){
return;
};
var _local4:AdjustColor = this.adjustColorObjects[_arg1];
if (_local4 == null){
_local4 = new AdjustColor();
this.adjustColorObjects[_arg1] = _local4;
};
switch (_arg2){
case "adjustColorBrightness":
_local4.brightness = _arg3;
break;
case "adjustColorContrast":
_local4.contrast = _arg3;
break;
case "adjustColorSaturation":
_local4.saturation = _arg3;
break;
case "adjustColorHue":
_local4.hue = _arg3;
break;
};
if (_local4.AllValuesAreSet()){
_local5 = (this.filters[_arg1] as ColorMatrixFilter);
if (_local5){
_local6 = _local4.CalculateFinalFlatArray();
if (_local6){
_local5.matrix = _local6;
};
};
};
}
public function get tweensLength():int{
return (0);
}
}
}//package fl.motion
Section 31
//MatrixTransformer (fl.motion.MatrixTransformer)
package fl.motion {
import flash.geom.*;
public class MatrixTransformer {
public static function getScaleX(_arg1:Matrix):Number{
return (Math.sqrt(((_arg1.a * _arg1.a) + (_arg1.b * _arg1.b))));
}
public static function setScaleX(_arg1:Matrix, _arg2:Number):void{
var _local4:Number;
var _local5:Number;
var _local3:Number = getScaleX(_arg1);
if (_local3){
_local4 = (_arg2 / _local3);
_arg1.a = (_arg1.a * _local4);
_arg1.b = (_arg1.b * _local4);
} else {
_local5 = getSkewYRadians(_arg1);
_arg1.a = (Math.cos(_local5) * _arg2);
_arg1.b = (Math.sin(_local5) * _arg2);
};
}
public static function getScaleY(_arg1:Matrix):Number{
return (Math.sqrt(((_arg1.c * _arg1.c) + (_arg1.d * _arg1.d))));
}
public static function setScaleY(_arg1:Matrix, _arg2:Number):void{
var _local4:Number;
var _local5:Number;
var _local3:Number = getScaleY(_arg1);
if (_local3){
_local4 = (_arg2 / _local3);
_arg1.c = (_arg1.c * _local4);
_arg1.d = (_arg1.d * _local4);
} else {
_local5 = getSkewXRadians(_arg1);
_arg1.c = (-(Math.sin(_local5)) * _arg2);
_arg1.d = (Math.cos(_local5) * _arg2);
};
}
public static function getSkewXRadians(_arg1:Matrix):Number{
return (Math.atan2(-(_arg1.c), _arg1.d));
}
public static function setSkewXRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number = getScaleY(_arg1);
_arg1.c = (-(_local3) * Math.sin(_arg2));
_arg1.d = (_local3 * Math.cos(_arg2));
}
public static function getSkewYRadians(_arg1:Matrix):Number{
return (Math.atan2(_arg1.b, _arg1.a));
}
public static function setSkewYRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number = getScaleX(_arg1);
_arg1.a = (_local3 * Math.cos(_arg2));
_arg1.b = (_local3 * Math.sin(_arg2));
}
public static function getSkewX(_arg1:Matrix):Number{
return ((Math.atan2(-(_arg1.c), _arg1.d) * (180 / Math.PI)));
}
public static function setSkewX(_arg1:Matrix, _arg2:Number):void{
setSkewXRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function getSkewY(_arg1:Matrix):Number{
return ((Math.atan2(_arg1.b, _arg1.a) * (180 / Math.PI)));
}
public static function setSkewY(_arg1:Matrix, _arg2:Number):void{
setSkewYRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function getRotationRadians(_arg1:Matrix):Number{
return (getSkewYRadians(_arg1));
}
public static function setRotationRadians(_arg1:Matrix, _arg2:Number):void{
var _local3:Number = getRotationRadians(_arg1);
var _local4:Number = getSkewXRadians(_arg1);
setSkewXRadians(_arg1, ((_local4 + _arg2) - _local3));
setSkewYRadians(_arg1, _arg2);
}
public static function getRotation(_arg1:Matrix):Number{
return ((getRotationRadians(_arg1) * (180 / Math.PI)));
}
public static function setRotation(_arg1:Matrix, _arg2:Number):void{
setRotationRadians(_arg1, (_arg2 * (Math.PI / 180)));
}
public static function rotateAroundInternalPoint(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number):void{
var _local5:Point = new Point(_arg2, _arg3);
_local5 = _arg1.transformPoint(_local5);
_arg1.tx = (_arg1.tx - _local5.x);
_arg1.ty = (_arg1.ty - _local5.y);
_arg1.rotate((_arg4 * (Math.PI / 180)));
_arg1.tx = (_arg1.tx + _local5.x);
_arg1.ty = (_arg1.ty + _local5.y);
}
public static function rotateAroundExternalPoint(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number):void{
_arg1.tx = (_arg1.tx - _arg2);
_arg1.ty = (_arg1.ty - _arg3);
_arg1.rotate((_arg4 * (Math.PI / 180)));
_arg1.tx = (_arg1.tx + _arg2);
_arg1.ty = (_arg1.ty + _arg3);
}
public static function matchInternalPointWithExternal(_arg1:Matrix, _arg2:Point, _arg3:Point):void{
var _local4:Point = _arg1.transformPoint(_arg2);
var _local5:Number = (_arg3.x - _local4.x);
var _local6:Number = (_arg3.y - _local4.y);
_arg1.tx = (_arg1.tx + _local5);
_arg1.ty = (_arg1.ty + _local6);
}
}
}//package fl.motion
Section 32
//Motion (fl.motion.Motion)
package fl.motion {
import flash.geom.*;
import flash.filters.*;
import flash.utils.*;
public class Motion extends MotionBase {
public var source:Source;
private var _keyframesCompact:Array;
private static var typeCache:Object = {};
public function Motion(_arg1:XML=null){
var _local2:Keyframe;
super();
this.keyframes = [];
this.parseXML(_arg1);
if (!this.source){
this.source = new Source();
};
if (this.duration == 0){
_local2 = (this.getNewKeyframe() as Keyframe);
_local2.index = 0;
this.addKeyframe(_local2);
};
}
public function get keyframesCompact():Array{
var _local1:KeyframeBase;
this._keyframesCompact = [];
for each (_local1 in this.keyframes) {
if (_local1){
this._keyframesCompact.push(_local1);
};
};
return (this._keyframesCompact);
}
public function set keyframesCompact(_arg1:Array):void{
var _local2:KeyframeBase;
this._keyframesCompact = _arg1.concat();
this.keyframes = [];
for each (_local2 in this._keyframesCompact) {
this.addKeyframe(_local2);
};
}
override public function getColorTransform(_arg1:int):ColorTransform{
var _local7:Keyframe;
var _local8:ColorTransform;
var _local9:Number;
var _local10:Number;
var _local2:ColorTransform;
var _local3:Keyframe = (this.getCurrentKeyframe(_arg1, "color") as Keyframe);
if (((!(_local3)) || (!(_local3.color)))){
return (null);
};
var _local4:ColorTransform = _local3.color;
var _local5:Number = (_arg1 - _local3.index);
var _local6:ITween = ((((_local3.getTween("color")) || (_local3.getTween("alpha")))) || (_local3.getTween()));
if ((((_local5 == 0)) || (!(_local6)))){
_local2 = _local4;
} else {
if (_local6){
_local7 = (this.getNextKeyframe(_arg1, "color") as Keyframe);
if (((!(_local7)) || (!(_local7.color)))){
_local2 = _local4;
} else {
_local8 = _local7.color;
_local9 = (_local7.index - _local3.index);
_local10 = _local6.getValue(_local5, 0, 1, _local9);
_local2 = Color.interpolateTransform(_local4, _local8, _local10);
};
};
};
return (_local2);
}
override public function getFilters(_arg1:Number):Array{
var _local7:Keyframe;
var _local8:Array;
var _local9:Number;
var _local10:Number;
var _local2:Array;
var _local3:Keyframe = (this.getCurrentKeyframe(_arg1, "filters") as Keyframe);
if (((!(_local3)) || (((_local3.filters) && (!(_local3.filters.length)))))){
return ([]);
};
var _local4:Array = _local3.filters;
var _local5:Number = (_arg1 - _local3.index);
var _local6:ITween = ((_local3.getTween("filters")) || (_local3.getTween()));
if ((((_local5 == 0)) || (!(_local6)))){
_local2 = _local4;
} else {
if (_local6){
_local7 = (this.getNextKeyframe(_arg1, "filters") as Keyframe);
if (((!(_local7)) || (!(_local7.filters.length)))){
_local2 = _local4;
} else {
_local8 = _local7.filters;
_local9 = (_local7.index - _local3.index);
_local10 = _local6.getValue(_local5, 0, 1, _local9);
_local2 = interpolateFilters(_local4, _local8, _local10);
};
};
};
return (_local2);
}
override protected function findTweenedValue(_arg1:Number, _arg2:String, _arg3:KeyframeBase, _arg4:Number, _arg5:Number):Number{
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local6:Keyframe = (_arg3 as Keyframe);
if (!_local6){
return (NaN);
};
var _local7:ITween = ((_local6.getTween(_arg2)) || (_local6.getTween()));
if (((((!(_local7)) || (((!(_local6.tweenScale)) && ((((_arg2 == Tweenables.SCALE_X)) || ((_arg2 == Tweenables.SCALE_Y)))))))) || ((((_local6.rotateDirection == RotateDirection.NONE)) && ((((((_arg2 == Tweenables.ROTATION)) || ((_arg2 == Tweenables.SKEW_X)))) || ((_arg2 == Tweenables.SKEW_Y)))))))){
return (_arg5);
};
var _local8:String = _arg2;
if (_local7.target == ""){
_local8 = "";
};
var _local9:Keyframe = (this.getNextKeyframe(_arg1, _local8) as Keyframe);
if (((!(_local9)) || (_local9.blank))){
return (_arg5);
};
_local10 = _local9.getValue(_arg2);
if (isNaN(_local10)){
_local10 = _arg5;
};
_local11 = (_local10 - _arg5);
if ((((((_arg2 == Tweenables.SKEW_X)) || ((_arg2 == Tweenables.SKEW_Y)))) || ((_arg2 == Tweenables.ROTATION)))){
if (_local6.rotateDirection == RotateDirection.AUTO){
_local11 = (_local11 % 360);
if (_local11 > 180){
_local11 = (_local11 - 360);
} else {
if (_local11 < -180){
_local11 = (_local11 + 360);
};
};
} else {
if (_local6.rotateDirection == RotateDirection.CW){
if (_local11 < 0){
_local11 = ((_local11 % 360) + 360);
};
_local11 = (_local11 + (_local6.rotateTimes * 360));
} else {
if (_local11 > 0){
_local11 = ((_local11 % 360) - 360);
};
_local11 = (_local11 - (_local6.rotateTimes * 360));
};
};
};
_local12 = (_local9.index - _local6.index);
return (_local7.getValue(_arg4, _arg5, _local11, _local12));
}
private function parseXML(_arg1:XML):Motion{
var _local4:XML;
var _local5:XML;
if (!_arg1){
return (this);
};
if (_arg1.@duration.length()){
this.duration = parseInt(_arg1.@duration);
};
var _local2:XMLList = _arg1.elements();
var _local3:Number = 0;
while (_local3 < _local2.length()) {
_local4 = _local2[_local3];
if (_local4.localName() == "source"){
_local5 = _local4.children()[0];
this.source = new Source(_local5);
} else {
if (_local4.localName() == "Keyframe"){
this.addKeyframe(this.getNewKeyframe(_local4));
};
};
_local3++;
};
return (this);
}
override protected function getNewKeyframe(_arg1:XML=null):KeyframeBase{
return (new Keyframe(_arg1));
}
public static function fromXMLString(_arg1:String):Motion{
var _local2:XML = new XML(_arg1);
return (new Motion(_local2));
}
public static function interpolateFilters(_arg1:Array, _arg2:Array, _arg3:Number):Array{
var _local6:BitmapFilter;
var _local7:BitmapFilter;
var _local8:BitmapFilter;
if (_arg1.length != _arg2.length){
return (null);
};
var _local4:Array = [];
var _local5:int;
while (_local5 < _arg1.length) {
_local6 = _arg1[_local5];
_local7 = _arg2[_local5];
_local8 = interpolateFilter(_local6, _local7, _arg3);
if (_local8){
_local4.push(_local8);
};
_local5++;
};
return (_local4);
}
public static function interpolateFilter(_arg1:BitmapFilter, _arg2:BitmapFilter, _arg3:Number):BitmapFilter{
var _local8:XML;
var _local9:String;
var _local10:String;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:Array;
var _local15:Array;
var _local16:Array;
var _local17:int;
var _local18:int;
var _local19:int;
var _local20:int;
var _local21:int;
var _local22:Number;
var _local23:uint;
var _local24:Number;
var _local25:int;
var _local26:Number;
var _local27:uint;
var _local28:Number;
var _local29:int;
var _local30:uint;
var _local31:Number;
if (((!(_arg2)) || (!((_arg1["constructor"] == _arg2["constructor"]))))){
return (_arg1);
};
if (_arg3 > 1){
_arg3 = 1;
} else {
if (_arg3 < 0){
_arg3 = 0;
};
};
var _local4:Number = (1 - _arg3);
var _local5:BitmapFilter = _arg1.clone();
var _local6:XML = getTypeInfo(_arg1);
var _local7:XMLList = _local6.accessor;
for each (_local8 in _local7) {
_local9 = _local8.@name.toString();
_local10 = _local8.@type;
if ((((_local10 == "Number")) || ((_local10 == "int")))){
_local5[_local9] = ((_arg1[_local9] * _local4) + (_arg2[_local9] * _arg3));
} else {
if (_local10 == "uint"){
switch (_local9){
case "color":
case "highlightColor":
case "shadowColor":
_local11 = _arg1[_local9];
_local12 = _arg2[_local9];
_local13 = Color.interpolateColor(_local11, _local12, _arg3);
_local5[_local9] = _local13;
break;
default:
_local5[_local9] = ((_arg1[_local9] * _local4) + (_arg2[_local9] * _arg3));
break;
};
};
};
};
if ((((_arg1 is GradientGlowFilter)) || ((_arg1 is GradientBevelFilter)))){
_local14 = [];
_local15 = [];
_local16 = [];
_local17 = _arg1["ratios"].length;
_local18 = _arg2["ratios"].length;
_local19 = Math.max(_local17, _local18);
_local20 = 0;
while (_local20 < _local19) {
_local21 = Math.min(_local20, (_local17 - 1));
_local22 = _arg1["ratios"][_local21];
_local23 = _arg1["colors"][_local21];
_local24 = _arg1["alphas"][_local21];
_local25 = Math.min(_local20, (_local18 - 1));
_local26 = _arg2["ratios"][_local25];
_local27 = _arg2["colors"][_local25];
_local28 = _arg2["alphas"][_local25];
_local29 = ((_local22 * _local4) + (_local26 * _arg3));
_local30 = Color.interpolateColor(_local23, _local27, _arg3);
_local31 = ((_local24 * _local4) + (_local28 * _arg3));
_local14[_local20] = _local29;
_local15[_local20] = _local30;
_local16[_local20] = _local31;
_local20++;
};
_local5["colors"] = _local15;
_local5["alphas"] = _local16;
_local5["ratios"] = _local14;
};
return (_local5);
}
private static function getTypeInfo(_arg1):XML{
var _local2 = "";
if ((_arg1 is String)){
_local2 = _arg1;
} else {
_local2 = getQualifiedClassName(_arg1);
};
if ((_local2 in typeCache)){
return (typeCache[_local2]);
};
if ((_arg1 is String)){
_arg1 = getDefinitionByName(_arg1);
};
return ((typeCache[_local2] = describeType(_arg1)));
}
}
}//package fl.motion
Section 33
//motion_internal (fl.motion.motion_internal)
package fl.motion {
public namespace motion_internal = "http://www.adobe.com/2009/flash/motion/internal";
}//package fl.motion
Section 34
//MotionBase (fl.motion.MotionBase)
package fl.motion {
import flash.geom.*;
import flash.filters.*;
import flash.utils.*;
public class MotionBase {
public var keyframes:Array;
private var _spanStart:int;
private var _transformationPoint:Point;
private var _transformationPointZ:int;
private var _initialPosition:Array;
private var _initialMatrix:Matrix;
private var _duration:int;// = 0
private var _is3D:Boolean;// = false
private var _overrideScale:Boolean;
private var _overrideSkew:Boolean;
private var _overrideRotate:Boolean;
public function MotionBase(_arg1:XML=null){
var _local2:KeyframeBase;
super();
this.keyframes = [];
if (this.duration == 0){
_local2 = this.getNewKeyframe();
_local2.index = 0;
this.addKeyframe(_local2);
};
this._overrideScale = false;
this._overrideSkew = false;
this._overrideRotate = false;
}
motion_internal function set spanStart(_arg1:int):void{
this._spanStart = _arg1;
}
motion_internal function get spanStart():int{
return (this._spanStart);
}
motion_internal function set transformationPoint(_arg1:Point):void{
this._transformationPoint = _arg1;
}
motion_internal function get transformationPoint():Point{
return (this._transformationPoint);
}
motion_internal function set transformationPointZ(_arg1:int):void{
this._transformationPointZ = _arg1;
}
motion_internal function get transformationPointZ():int{
return (this._transformationPointZ);
}
motion_internal function set initialPosition(_arg1:Array):void{
this._initialPosition = _arg1;
}
motion_internal function get initialPosition():Array{
return (this._initialPosition);
}
motion_internal function set initialMatrix(_arg1:Matrix):void{
this._initialMatrix = _arg1;
}
motion_internal function get initialMatrix():Matrix{
return (this._initialMatrix);
}
public function get duration():int{
if (this._duration < this.keyframes.length){
this._duration = this.keyframes.length;
};
return (this._duration);
}
public function set duration(_arg1:int):void{
if (_arg1 < this.keyframes.length){
_arg1 = this.keyframes.length;
};
this._duration = _arg1;
}
public function get is3D():Boolean{
return (this._is3D);
}
public function set is3D(_arg1:Boolean):void{
this._is3D = _arg1;
}
public function overrideTargetTransform(_arg1:Boolean=true, _arg2:Boolean=true, _arg3:Boolean=true):void{
this._overrideScale = _arg1;
this._overrideSkew = _arg2;
this._overrideRotate = _arg3;
}
private function indexOutOfRange(_arg1:int):Boolean{
return (((((isNaN(_arg1)) || ((_arg1 < 0)))) || ((_arg1 > (this.duration - 1)))));
}
public function getCurrentKeyframe(_arg1:int, _arg2:String=""):KeyframeBase{
var _local4:KeyframeBase;
if (((((isNaN(_arg1)) || ((_arg1 < 0)))) || ((_arg1 > (this.duration - 1))))){
return (null);
};
var _local3:int = _arg1;
while (_local3 > 0) {
_local4 = this.keyframes[_local3];
if (((_local4) && (_local4.affectsTweenable(_arg2)))){
return (_local4);
};
_local3--;
};
return (this.keyframes[0]);
}
public function getNextKeyframe(_arg1:int, _arg2:String=""):KeyframeBase{
var _local4:KeyframeBase;
if (((((isNaN(_arg1)) || ((_arg1 < 0)))) || ((_arg1 > (this.duration - 1))))){
return (null);
};
var _local3:int = (_arg1 + 1);
while (_local3 < this.keyframes.length) {
_local4 = this.keyframes[_local3];
if (((_local4) && (_local4.affectsTweenable(_arg2)))){
return (_local4);
};
_local3++;
};
return (null);
}
public function setValue(_arg1:int, _arg2:String, _arg3:Number):void{
if (_arg1 == 0){
return;
};
var _local4:KeyframeBase = this.keyframes[_arg1];
if (!_local4){
_local4 = this.getNewKeyframe();
_local4.index = _arg1;
this.addKeyframe(_local4);
};
_local4.setValue(_arg2, _arg3);
}
public function getColorTransform(_arg1:int):ColorTransform{
var _local2:ColorTransform;
var _local3:KeyframeBase = this.getCurrentKeyframe(_arg1, "color");
if (((!(_local3)) || (!(_local3.color)))){
return (null);
};
var _local4:ColorTransform = _local3.color;
var _local5:Number = (_arg1 - _local3.index);
if (_local5 == 0){
_local2 = _local4;
};
return (_local2);
}
public function getMatrix3D(_arg1:int):Object{
var _local2:KeyframeBase = this.getCurrentKeyframe(_arg1, "matrix3D");
return ((_local2) ? _local2.matrix3D : null);
}
public function getMatrix(_arg1:int):Matrix{
var _local2:KeyframeBase = this.getCurrentKeyframe(_arg1, "matrix");
return ((_local2) ? _local2.matrix : null);
}
public function useRotationConcat(_arg1:int):Boolean{
var _local2:KeyframeBase = this.getCurrentKeyframe(_arg1, "rotationConcat");
return ((_local2) ? _local2.useRotationConcat : false);
}
public function getFilters(_arg1:Number):Array{
var _local2:Array;
var _local3:KeyframeBase = this.getCurrentKeyframe(_arg1, "filters");
if (((!(_local3)) || (((_local3.filters) && (!(_local3.filters.length)))))){
return ([]);
};
var _local4:Array = _local3.filters;
var _local5:Number = (_arg1 - _local3.index);
if (_local5 == 0){
_local2 = _local4;
};
return (_local2);
}
protected function findTweenedValue(_arg1:Number, _arg2:String, _arg3:KeyframeBase, _arg4:Number, _arg5:Number):Number{
return (NaN);
}
public function getValue(_arg1:Number, _arg2:String):Number{
var _local3:Number = NaN;
var _local4:KeyframeBase = this.getCurrentKeyframe(_arg1, _arg2);
if (((!(_local4)) || (_local4.blank))){
return (NaN);
};
var _local5:Number = _local4.getValue(_arg2);
if (((isNaN(_local5)) && ((_local4.index > 0)))){
_local5 = this.getValue((_local4.index - 1), _arg2);
};
if (isNaN(_local5)){
return (NaN);
};
var _local6:Number = (_arg1 - _local4.index);
if (_local6 == 0){
return (_local5);
};
_local3 = this.findTweenedValue(_arg1, _arg2, _local4, _local6, _local5);
return (_local3);
}
public function addKeyframe(_arg1:KeyframeBase):void{
this.keyframes[_arg1.index] = _arg1;
if (this.duration < this.keyframes.length){
this.duration = this.keyframes.length;
};
}
public function addPropertyArray(_arg1:String, _arg2:Array, _arg3:int=-1, _arg4:int=-1):void{
var _local10:KeyframeBase;
var _local11:*;
var _local12:int;
var _local13:*;
var _local5:int = _arg2.length;
var _local6:* = null;
var _local7:Boolean;
var _local8:Number = 0;
if (_local5 > 0){
if ((_arg2[0] is Number)){
_local7 = false;
if ((_arg2[0] is Number)){
_local8 = Number(_arg2[0]);
};
};
};
if (this.duration < _local5){
this.duration = _local5;
};
if ((((_arg3 == -1)) || ((_arg4 == -1)))){
_arg3 = 0;
_arg4 = this.duration;
};
var _local9:int = _arg3;
while (_local9 < _arg4) {
_local10 = KeyframeBase(this.keyframes[_local9]);
if (_local10 == null){
_local10 = this.getNewKeyframe();
_local10.index = _local9;
this.addKeyframe(_local10);
};
if (((_local10.filters) && ((_local10.filters.length == 0)))){
_local10.filters = null;
};
_local11 = _local6;
_local12 = (_local9 - _arg3);
if (_local12 < _arg2.length){
if (((_arg2[_local12]) || (!(_local7)))){
_local11 = _arg2[_local12];
};
};
switch (_arg1){
case "blendMode":
case "matrix3D":
case "matrix":
_local10[_arg1] = _local11;
break;
case "rotationConcat":
_local10.useRotationConcat = true;
if (((!(this._overrideRotate)) && (!(_local7)))){
_local10.setValue(_arg1, (((_local11 - _local8) * Math.PI) / 180));
} else {
_local10.setValue(_arg1, ((_local11 * Math.PI) / 180));
};
break;
case "brightness":
case "tintMultiplier":
case "tintColor":
case "alphaMultiplier":
case "alphaOffset":
case "redMultiplier":
case "redOffset":
case "greenMultiplier":
case "greenOffset":
case "blueMultiplier":
case "blueOffset":
if (_local10.color == null){
_local10.color = new Color();
};
_local10.color[_arg1] = _local11;
break;
case "rotationZ":
_local10.useRotationConcat = true;
this._is3D = true;
if (((!(this._overrideRotate)) && (!(_local7)))){
_local10.setValue("rotationConcat", (_local11 - _local8));
} else {
_local10.setValue("rotationConcat", _local11);
};
break;
case "rotationX":
case "rotationY":
case "z":
this._is3D = true;
default:
_local13 = _local11;
if (!_local7){
switch (_arg1){
case "scaleX":
case "scaleY":
if (!this._overrideScale){
if (_local8 == 0){
_local13 = (_local11 + 1);
} else {
_local13 = (_local11 / _local8);
};
};
break;
case "skewX":
case "skewY":
if (!this._overrideSkew){
_local13 = (_local11 - _local8);
};
break;
case "rotationX":
case "rotationY":
if (!this._overrideRotate){
_local13 = (_local11 - _local8);
};
break;
};
};
_local10.setValue(_arg1, _local13);
break;
};
_local6 = _local11;
_local9++;
};
}
public function initFilters(_arg1:Array, _arg2:Array, _arg3:int=-1, _arg4:int=-1):void{
var _local6:Class;
var _local7:int;
var _local8:KeyframeBase;
var _local9:BitmapFilter;
var _local10:int;
if ((((_arg3 == -1)) || ((_arg4 == -1)))){
_arg3 = 0;
_arg4 = this.duration;
};
var _local5:int;
while (_local5 < _arg1.length) {
_local6 = (getDefinitionByName(_arg1[_local5]) as Class);
_local7 = _arg3;
while (_local7 < _arg4) {
_local8 = KeyframeBase(this.keyframes[_local7]);
if (_local8 == null){
_local8 = this.getNewKeyframe();
_local8.index = _local7;
this.addKeyframe(_local8);
};
if (((_local8) && ((_local8.filters == null)))){
_local8.filters = new Array();
};
if (((_local8) && (_local8.filters))){
_local9 = null;
switch (_arg1[_local5]){
case "flash.filters.GradientBevelFilter":
case "flash.filters.GradientGlowFilter":
_local10 = _arg2[_local5];
_local9 = BitmapFilter(new _local6(4, 45, new Array(_local10), new Array(_local10), new Array(_local10)));
break;
default:
_local9 = BitmapFilter(new (_local6));
break;
};
if (_local9){
_local8.filters.push(_local9);
};
};
_local7++;
};
_local5++;
};
}
public function addFilterPropertyArray(_arg1:int, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{
var _local10:KeyframeBase;
var _local11:*;
var _local12:int;
var _local6:int = _arg3.length;
var _local7:* = null;
var _local8:Boolean;
if (_local6 > 0){
if ((_arg3[0] is Number)){
_local8 = false;
};
};
if (this.duration < _local6){
this.duration = _local6;
};
if ((((_arg4 == -1)) || ((_arg5 == -1)))){
_arg4 = 0;
_arg5 = this.duration;
};
var _local9:int = _arg4;
while (_local9 < _arg5) {
_local10 = KeyframeBase(this.keyframes[_local9]);
if (_local10 == null){
_local10 = this.getNewKeyframe();
_local10.index = _local9;
this.addKeyframe(_local10);
};
_local11 = _local7;
_local12 = (_local9 - _arg4);
if (_local12 < _arg3.length){
if (((_arg3[_local12]) || (!(_local8)))){
_local11 = _arg3[_local12];
};
};
switch (_arg2){
case "adjustColorBrightness":
case "adjustColorContrast":
case "adjustColorSaturation":
case "adjustColorHue":
_local10.setAdjustColorProperty(_arg1, _arg2, _local11);
break;
default:
if (_arg1 < _local10.filters.length){
_local10.filters[_arg1][_arg2] = _local11;
};
break;
};
_local7 = _local11;
_local9++;
};
}
protected function getNewKeyframe(_arg1:XML=null):KeyframeBase{
return (new KeyframeBase(_arg1));
}
}
}//package fl.motion
Section 35
//MotionEvent (fl.motion.MotionEvent)
package fl.motion {
import flash.events.*;
public class MotionEvent extends Event {
public static const MOTION_START:String = "motionStart";
public static const MOTION_END:String = "motionEnd";
public static const MOTION_UPDATE:String = "motionUpdate";
public static const TIME_CHANGE:String = "timeChange";
public function MotionEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function clone():Event{
return (new MotionEvent(this.type, this.bubbles, this.cancelable));
}
}
}//package fl.motion
Section 36
//RotateDirection (fl.motion.RotateDirection)
package fl.motion {
public class RotateDirection {
public static const AUTO:String = "auto";
public static const NONE:String = "none";
public static const CW:String = "cw";
public static const CCW:String = "ccw";
}
}//package fl.motion
Section 37
//SimpleEase (fl.motion.SimpleEase)
package fl.motion {
public class SimpleEase implements ITween {
private var _ease:Number;// = 0
private var _target:String;// = ""
public function SimpleEase(_arg1:XML=null){
this.parseXML(_arg1);
}
public function get ease():Number{
return (this._ease);
}
public function set ease(_arg1:Number):void{
this._ease = ((_arg1 > 1)) ? 1 : ((_arg1 < -1)) ? -1 : (isNaN(_arg1)) ? 0 : _arg1;
}
public function get target():String{
return (this._target);
}
public function set target(_arg1:String):void{
this._target = _arg1;
}
private function parseXML(_arg1:XML=null):SimpleEase{
if (_arg1){
if (_arg1.@ease.length()){
this.ease = Number(_arg1.@ease);
};
if (_arg1.@target.length()){
this.target = _arg1.@target;
};
};
return (this);
}
public function getValue(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (easeQuadPercent(_arg1, _arg2, _arg3, _arg4, this.ease));
}
public static function easeQuadPercent(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
if (_arg4 <= 0){
return (NaN);
};
if (_arg1 <= 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 >= 1){
return ((_arg2 + _arg3));
};
if (!_arg5){
return (((_arg3 * _arg1) + _arg2));
};
if (_arg5 > 1){
_arg5 = 1;
} else {
if (_arg5 < -1){
_arg5 = -1;
};
};
if (_arg5 < 0){
return ((((_arg3 * _arg1) * ((_arg1 * -(_arg5)) + (1 + _arg5))) + _arg2));
};
return ((((_arg3 * _arg1) * (((2 - _arg1) * _arg5) + (1 - _arg5))) + _arg2));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
if (_arg4 <= 0){
return (NaN);
};
if (_arg1 <= 0){
return (_arg2);
};
if (_arg1 >= _arg4){
return ((_arg2 + _arg3));
};
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
}
}//package fl.motion
Section 38
//Source (fl.motion.Source)
package fl.motion {
import flash.geom.*;
public class Source {
public var frameRate:Number;// = NAN
public var elementType:String;// = ""
public var symbolName:String;// = ""
public var instanceName:String;// = ""
public var linkageID:String;// = ""
public var x:Number;// = 0
public var y:Number;// = 0
public var scaleX:Number;// = 1
public var scaleY:Number;// = 1
public var skewX:Number;// = 0
public var skewY:Number;// = 0
public var rotation:Number;// = 0
public var transformationPoint:Point;
public var dimensions:Rectangle;
public function Source(_arg1:XML=null){
this.parseXML(_arg1);
}
private function parseXML(_arg1:XML=null):Source{
var _local3:XML;
var _local4:XML;
var _local5:XML;
if (!_arg1){
return (this);
};
if (_arg1.@instanceName){
this.instanceName = String(_arg1.@instanceName);
};
if (_arg1.@symbolName){
this.symbolName = String(_arg1.@symbolName);
};
if (_arg1.@linkageID){
this.linkageID = String(_arg1.@linkageID);
};
if (!isNaN(_arg1.@frameRate)){
this.frameRate = Number(_arg1.@frameRate);
};
var _local2:XMLList = _arg1.elements();
for each (_local3 in _local2) {
if (_local3.localName() == "transformationPoint"){
_local4 = _local3.children()[0];
this.transformationPoint = new Point(Number(_local4.@x), Number(_local4.@y));
} else {
if (_local3.localName() == "dimensions"){
_local5 = _local3.children()[0];
this.dimensions = new Rectangle(Number(_local5.@left), Number(_local5.@top), Number(_local5.@width), Number(_local5.@height));
};
};
};
return (this);
}
}
}//package fl.motion
Section 39
//Tweenables (fl.motion.Tweenables)
package fl.motion {
public class Tweenables {
public static const X:String = "x";
public static const Y:String = "y";
public static const Z:String = "z";
public static const SCALE_X:String = "scaleX";
public static const SCALE_Y:String = "scaleY";
public static const SKEW_X:String = "skewX";
public static const SKEW_Y:String = "skewY";
public static const ROTATION:String = "rotation";
public static const ROTATION_X:String = "rotationX";
public static const ROTATION_Y:String = "rotationY";
public static const ROTATION_CONCAT:String = "rotationConcat";
}
}//package fl.motion