STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228114
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/25458455?noj=FRM25458455-9DC" width="1" height="1"></div>

V E C T O R.swf

This is the info page for
Flash #40488

(Click the ID number above for more basic data on this flash file.)


Text
AUTOFIRE  ON  OFF

ON

OFF

SOUND  ON  OFF

BLASTONE.COM presents VECTOROIDS

MORE GAMES

PLAY

PLAY

SCORES

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffffff" letterSpacing="0.500000" kerning="0"><b>SOUNDS ON</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffffff" letterSpacing="0.500000" kerning="0"><b>PAUSE</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffffff" letterSpacing="0.500000" kerning="0"><b>MUSIC ON</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffffff" letterSpacing="0.500000" kerning="0"><b>A BLASTONE.COM GAME</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffcc00" letterSpacing="0.500000" kerning="0"><b>A BLASTONE.COM GAME</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffcc00" letterSpacing="0.500000" kerning="0"><b>A BLASTONE.COM GAME</b></font></p>

000000000

LIVES

BOMBS

00

00

NEXT LEVEL

LEVEL

00

HELP

BACK

GAME OVER

000000000

SUBMIT SCORE

POWERUPS

NASTIES

CONTROLS

HOW TO PLAY

SHOOT RED SQUARES
TO REVEAL  POWERUPS

SHIELD

ENERGY

SIDESHOT

BULLET UPGRADE

SMART BOMB

EXTRA LIFE

POINTS

ZAPPERS ATTACK WITH
ENERGY BOLTS.

SEEKERS HOME IN
ON YOUR POSITION

DESTROY SNAKES
PIECE BY PIECE

ASTEROIDS BREAK
INTO SMALLER ONES
WHEN DESTROYED

ARROW KEYS
SPACE
B
P

CONTROL SHIP
FIRE
SMART BOMB
PAUSE

SHOOT EVERYTHING.
IF IT MOVES... KILL IT

GFX & CODE MARK FENNELL 2007

GFX & CODE MARKFENNELL.COM

STRIKERS - WATCH OUT
FOR THEIR MISSILES

PULSARS STAY AWAY FROM
THE PULSE LINES

CLICK TO PLAY

MUSIC  ON  OFF

www.blastone.com

PLEASE WAIT
GENERATING SPRITES

NAME
EMAIL
COUNTRY

ONLY Enter your email IF YOU
WISH to JOIN OUR MAILING LIST

<p align="right"><font face="MicrogrammaDBolExt" size="24" color="#cccccc" letterSpacing="1.000000" kerning="1">0000000</font></p>

SUBMITTING SCORE

> MAIN MENU

> MAIN MENU

SCORE SUBMITTED

SUBMIT SCORE

<p align="left"></p>

Submit

ActionScript [AS3]

Section 1
//Asteroid (asteroids.Asteroid) package asteroids { import flash.display.*; import com.markfennell.display.*; import player.*; import utilities.*; public class Asteroid { private var speedSmall:Number;// = 3 private var diff:Number; public var smartBomb:Boolean;// = false public var id:int; public var ax:Number;// = 0 public var ay:Number;// = 0 public var type:Number; private var spinRateTemp:int; private var range:Number; private var speed:Number; private var spinRate:int; public var energyDisplayTimer:int;// = 0 private var P:Number; private var V:Number; public var asteroidSprite:BitmapSprite; private var vy1p:Number; private var h:Number; private var i:int; public var energyBar:EnergyBar; public var frame:int;// = 0 public var damage:Number; private var w:Number; private var xdiff:Number; public var energy:int; private var sina:Number; private var sind:Number; private var speedMid:Number;// = 2 public var radius:Number; public var score:Number; private var vx1p:Number; private var vy2p:Number; private var frames:int; private var dist:Number; private var cosa:Number; private var asteroid:Asteroid; private var cosd:Number; public var vx:Number; public var vy:Number; private var _frames:int; private var vx2p:Number; private var spinRateMax:int; public var energyMax:int; private var angle:Number; private var player:Player; private var asteroidArrayLength:int; private var rateInc:int; private var dangle:Number; public var mass:Number; private var ydiff:Number; public function Asteroid(_arg1:int, _arg2:BitmapSprite, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:int, _arg11:int, _arg12:int){ frame = 0; ax = 0; ay = 0; smartBomb = false; energyDisplayTimer = 0; speedMid = 2; speedSmall = 3; _frames = Constants.ROTATION_FRAMES_ASTEROID; super(); damage = _arg11; score = _arg12; id = _arg1; w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; energyMax = (_arg10 + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); energy = energyMax; radius = _arg3; mass = _arg4; asteroidSprite = _arg2; speed = (_arg5 + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_SPEED_RATE)); angle = _arg6; type = _arg9; spinRate = _arg7; spinRateMax = _arg8; frame = 0; player = Core.getInstance().ship; if (angle < 0){ angle = (angle + Constants.PI2); }; if (angle > Constants.PI2){ angle = (angle - Constants.PI2); }; vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); } public function react(_arg1:Object, _arg2:Object){ dangle = Math.atan2(ydiff, xdiff); cosa = Math.cos(dangle); sina = Math.sin(dangle); vx1p = ((cosa * _arg1.vx) + (sina * _arg1.vy)); vy1p = ((cosa * _arg1.vy) - (sina * _arg1.vx)); vx2p = ((cosa * _arg2.vx) + (sina * _arg2.vy)); vy2p = ((cosa * _arg2.vy) - (sina * _arg2.vx)); P = ((vx1p * _arg1.mass) + (vx2p * _arg2.mass)); V = (vx1p - vx2p); vx1p = ((P - (_arg2.mass * V)) / (_arg1.mass + _arg2.mass)); vx2p = (V + vx1p); _arg1.vx = ((cosa * vx1p) - (sina * vy1p)); _arg1.vy = ((cosa * vy1p) + (sina * vx1p)); _arg2.vx = ((cosa * vx2p) - (sina * vy2p)); _arg2.vy = ((cosa * vy2p) + (sina * vx2p)); diff = (((_arg1.radius + _arg2.radius) - dist) * 0.5); cosd = (cosa * diff); sind = (sina * diff); _arg1.ax = (_arg1.ax - cosd); _arg1.ay = (_arg1.ay - sind); _arg2.ax = (_arg2.ax + cosd); _arg2.ay = (_arg2.ay + sind); spinRateTemp = _arg2.spinRate; if (_arg1.spinRate >= 0){ spinRateTemp--; if (spinRateTemp < -(spinRateMax)){ spinRateTemp = -(spinRateMax); }; } else { spinRateTemp++; if (spinRateTemp > spinRateMax){ spinRateTemp = spinRateMax; }; }; if (_arg2.type >= _arg1.type){ _arg2.spinRate = spinRateTemp; }; } public function render(_arg1:Array):void{ if (energy > 0){ if (!player.isSpawning){ ax = (ax + vx); ay = (ay + vy); checkBoundaries(); frame = (frame + spinRate); if (frame <= 0){ frame = (frame + _frames); }; if (frame >= _frames){ frame = (frame - frame); }; }; asteroidArrayLength = _arg1.length; xdiff = (player.ax - ax); ydiff = (player.ay - ay); range = (Constants.PLAYER_RADIUS + radius); dist = Math.sqrt(((xdiff * xdiff) + (ydiff * ydiff))); if (dist <= range){ react(this, player); player.energyDrain(this.damage); SoundManager.getInstance().playSound("Sound_Bounce"); }; asteroidArrayLength = _arg1.length; while (asteroidArrayLength--) { asteroid = _arg1[asteroidArrayLength]; if (asteroid.id > id){ xdiff = (asteroid.ax - ax); ydiff = (asteroid.ay - ay); range = (radius + asteroid.radius); if (xdiff < range){ if (ydiff < range){ dist = Math.sqrt(((xdiff * xdiff) + (ydiff * ydiff))); if (dist <= range){ react(this, asteroid); }; }; }; }; }; } else { if (!smartBomb){ SoundManager.getInstance().playSound("Sound_Explode_Asteroid"); Core.getInstance().explosionManager.createExplosion(ax, ay, 1, true); }; type--; switch (type){ case 2: Core.getInstance().asteroidsManager.createAsteroid(2, ax, ay, ((Math.random() * speedMid) + speedMid)); Core.getInstance().asteroidsManager.createAsteroid(3, ax, ay, ((Math.random() * speedMid) + speedMid)); break; case 1: Core.getInstance().asteroidsManager.createAsteroid(4, ax, ay, ((Math.random() * speedSmall) + speedSmall)); Core.getInstance().asteroidsManager.createAsteroid(5, ax, ay, ((Math.random() * speedSmall) + speedSmall)); Core.getInstance().asteroidsManager.createAsteroid(6, ax, ay, ((Math.random() * speedSmall) + speedSmall)); break; }; Core.getInstance().asteroidsManager.remove(this); Core.getInstance().hud.addScore(this.score); }; } public function checkBoundaries(){ if ((ax + radius) < 0){ ax = (ax + (w + (2 * radius))); } else { if ((ax - radius) > w){ ax = (ax - (w + (2 * radius))); }; }; if ((ay + radius) < 0){ ay = (ay + (h + (2 * radius))); } else { if ((ay - radius) > h){ ay = (ay - (h + (2 * radius))); }; }; } public function showHealth(_arg1:BitmapData){ energyDisplayTimer--; if (energyDisplayTimer > 0){ energyBar = new EnergyBar((ax - (radius * 0.5)), ((ay + radius) + 2), energy, energyMax, _arg1); }; } } }//package asteroids
Section 2
//AsteroidManager (asteroids.AsteroidManager) package asteroids { import flash.display.*; import com.markfennell.display.*; public class AsteroidManager extends Sprite { private var id:int;// = 0 private var asteroidSpriteArrayLength:int;// = 7 private var asteroidSpriteEnergyArray:Array; private var asteroidBitmapSprite:BitmapSprite; private var spinRate:int; private var asteroidSpriteMassArray:Array; private var speed:Number; private var initialSpeed:Number; private var i:int; private var asteroidSpriteMid2:BitmapSprite; private var asteroidSpriteRadiusArray:Array; private var h:Number; private var asteroidSpriteMid1:BitmapSprite; private var asteroidArray:Array; private var w:Number; private var fade:Number;// = 0.6 private var asteroidSpriteScoreArray:Array; private var asteroidSprite:BitmapSprite; private var asteroidSpriteMid0:BitmapSprite; private var asteroidSpriteSmall0:BitmapSprite; private var asteroidSpriteSmall1:BitmapSprite; private var initialSpeedMultiple:Number;// = 2 private var asteroidBitmapData:BitmapData; private var asteroidSpriteSmall2:BitmapSprite; private var asteroidSpriteBig0:BitmapSprite; private var asteroid:Asteroid; private var spinRateMax:int;// = 2 private var asteroidSpriteBig1:BitmapSprite; private var asteroidSpriteDamageArray:Array; private var angle:Number; private var asteroidSpriteArray:Array; private var asteroidTypeArray:Array; private var asteroidArrayLength:int;// = 0 public function AsteroidManager(_arg1:BitmapData){ asteroidArray = new Array(); asteroidArrayLength = 0; fade = 0.6; initialSpeedMultiple = 2; id = 0; spinRateMax = 2; asteroidSpriteArrayLength = 7; super(); w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; asteroidBitmapData = _arg1; asteroidSpriteBig0 = Sprites.getInstance().asteroidSpriteBig0; asteroidSpriteBig1 = Sprites.getInstance().asteroidSpriteBig1; asteroidSpriteMid0 = Sprites.getInstance().asteroidSpriteMid0; asteroidSpriteMid1 = Sprites.getInstance().asteroidSpriteMid1; asteroidSpriteMid2 = Sprites.getInstance().asteroidSpriteMid2; asteroidSpriteSmall0 = Sprites.getInstance().asteroidSpriteSmall0; asteroidSpriteSmall1 = Sprites.getInstance().asteroidSpriteSmall1; asteroidSpriteSmall2 = Sprites.getInstance().asteroidSpriteSmall2; asteroidSpriteArray = [asteroidSpriteBig0, asteroidSpriteBig1, asteroidSpriteMid1, asteroidSpriteMid2, asteroidSpriteSmall0, asteroidSpriteSmall1, asteroidSpriteSmall2]; asteroidSpriteRadiusArray = [46, 46, 20, 28, 8, 10, 8]; asteroidSpriteMassArray = [260, 230, 200, 280, 80, 100, 80]; asteroidSpriteDamageArray = [90, 90, 50, 50, 30, 30, 30]; asteroidSpriteEnergyArray = [400, 200, 200, 200, 50, 50, 50]; asteroidSpriteScoreArray = [1000, 500, 500, 500, 250, 250, 250]; asteroidTypeArray = [3, 3, 2, 2, 1, 1, 1]; } public function smartBomb(){ asteroidArrayLength = asteroidArray.length; while (asteroidArrayLength--) { asteroid = asteroidArray[asteroidArrayLength]; if (asteroid != null){ asteroid.smartBomb = true; asteroid.energy = 0; }; }; } public function render(){ asteroidArrayLength = asteroidArray.length; while (asteroidArrayLength--) { asteroid = asteroidArray[asteroidArrayLength]; if (asteroid != null){ asteroid.asteroidSprite.draw(asteroidBitmapData, asteroid.ax, asteroid.ay, asteroid.frame); asteroid.render(asteroidArray); asteroid.showHealth(asteroidBitmapData); }; }; } public function removeAll(){ asteroidArray = []; id--; } public function add(_arg1:Asteroid){ asteroidArray.push(_arg1); } public function getAsteroids(){ return (asteroidArray); } public function getSpeed(){ initialSpeed = (initialSpeedMultiple + (Math.random() * initialSpeedMultiple)); return (initialSpeed); } public function remove(_arg1:Asteroid){ asteroidArrayLength = asteroidArray.length; while (asteroidArrayLength--) { if (asteroidArray[asteroidArrayLength] == _arg1){ delete asteroidArray[asteroidArrayLength]; asteroidArray.splice(asteroidArrayLength, 1); return; }; }; asteroidArrayLength = asteroidArray.length; i = 0; while (i < asteroidArrayLength) { asteroidArray[i].id = i; i++; }; } public function createOffscreenAsteroid(_arg1:int, _arg2:Number){ if (Math.random() > 0.5){ if (Math.random() > 0.5){ x = (Math.random() * (w + (2 * asteroidSpriteRadiusArray[_arg1]))); y = -(asteroidSpriteRadiusArray[_arg1]); } else { x = (Math.random() * (w + (2 * asteroidSpriteRadiusArray[_arg1]))); y = (h + asteroidSpriteRadiusArray[_arg1]); }; } else { if (Math.random() > 0.5){ y = (Math.random() * (h + (2 * asteroidSpriteRadiusArray[_arg1]))); x = -(asteroidSpriteRadiusArray[_arg1]); } else { y = (Math.random() * (h + (2 * asteroidSpriteRadiusArray[_arg1]))); x = (w + asteroidSpriteRadiusArray[_arg1]); }; }; createAsteroid(_arg1, x, y, getSpeed()); } public function createAsteroid(_arg1:int, _arg2:Number, _arg3:Number, _arg4:Number){ angle = (Math.random() * Constants.PI2); spinRate = ((((Math.random() * 2) * spinRateMax) - spinRateMax) >> 0); asteroidSprite = asteroidSpriteArray[_arg1]; asteroid = new Asteroid(id, asteroidSprite, asteroidSpriteRadiusArray[_arg1], asteroidSpriteMassArray[_arg1], _arg4, angle, spinRate, spinRateMax, asteroidTypeArray[_arg1], asteroidSpriteEnergyArray[_arg1], asteroidSpriteDamageArray[_arg1], asteroidSpriteScoreArray[_arg1]); asteroid.ax = _arg2; asteroid.ay = _arg3; add(asteroid); id++; } } }//package asteroids
Section 3
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function getObjectLength(_arg1:Object):uint{ var _local2:uint; var _local3:String; _local2 = 0; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function isInArray(_arg1:String, _arg2:Array):Boolean{ var _local3:uint; var _local4:uint; _local3 = _arg2.length; _local4 = 0; while (_local4 < _local3) { if (_arg2[_local4] == _arg1){ return (true); }; _local4++; }; return (false); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } } }//package caurina.transitions
Section 4
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * (0.3 * 1.5)); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) * 0.5) + _arg3) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5, _arg6)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5, _arg6)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) + _arg3) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } } }//package caurina.transitions
Section 5
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var valueComplete:Number; public var modifierFunction:Function; public var hasModifier:Boolean; public var valueStart:Number; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Function, _arg4:Array){ valueStart = _arg1; valueComplete = _arg2; hasModifier = Boolean(_arg3); modifierFunction = _arg3; modifierParameters = _arg4; } public function toString():String{ var _local1:String; _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj; _local1 = new PropertyInfoObj(valueStart, valueComplete, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 6
//SpecialPropertiesDefault (caurina.transitions.SpecialPropertiesDefault) package caurina.transitions { import flash.filters.*; import flash.geom.*; import flash.media.*; public class SpecialPropertiesDefault { public static function _sound_volume_get(_arg1:Object):Number{ return (_arg1.soundTransform.volume); } public static function _color_splitter(_arg1):Array{ var _local2:Array; _local2 = new Array(); if (_arg1 == null){ _local2.push({name:"_color_ra", value:1}); _local2.push({name:"_color_rb", value:0}); _local2.push({name:"_color_ga", value:1}); _local2.push({name:"_color_gb", value:0}); _local2.push({name:"_color_ba", value:1}); _local2.push({name:"_color_bb", value:0}); } else { _local2.push({name:"_color_ra", value:0}); _local2.push({name:"_color_rb", value:AuxFunctions.numberToR(_arg1)}); _local2.push({name:"_color_ga", value:0}); _local2.push({name:"_color_gb", value:AuxFunctions.numberToG(_arg1)}); _local2.push({name:"_color_ba", value:0}); _local2.push({name:"_color_bb", value:AuxFunctions.numberToB(_arg1)}); }; return (_local2); } public static function frame_get(_arg1:Object):Number{ return (_arg1.currentFrame); } public static function _sound_pan_get(_arg1:Object):Number{ return (_arg1.soundTransform.pan); } public static function _color_property_get(_arg1:Object, _arg2:Array):Number{ return (_arg1.transform.colorTransform[_arg2[0]]); } public static function _sound_volume_set(_arg1:Object, _arg2:Number):void{ var _local3:SoundTransform; _local3 = _arg1.soundTransform; _local3.volume = _arg2; _arg1.soundTransform = _local3; } public static function _autoAlpha_get(_arg1:Object):Number{ return (_arg1.alpha); } public static function _filter_splitter(_arg1:BitmapFilter):Array{ var _local2:Array; _local2 = new Array(); if ((_arg1 is BlurFilter)){ _local2.push({name:"_blur_blurX", value:BlurFilter(_arg1).blurX}); _local2.push({name:"_blur_blurY", value:BlurFilter(_arg1).blurY}); _local2.push({name:"_blur_quality", value:BlurFilter(_arg1).quality}); //unresolved jump }; return (_local2); } public static function init():void{ Tweener.registerSpecialProperty("_frame", frame_get, frame_set); Tweener.registerSpecialProperty("_sound_volume", _sound_volume_get, _sound_volume_set); Tweener.registerSpecialProperty("_sound_pan", _sound_pan_get, _sound_pan_set); Tweener.registerSpecialProperty("_color_ra", _color_property_get, _color_property_set, ["redMultiplier"]); Tweener.registerSpecialProperty("_color_rb", _color_property_get, _color_property_set, ["redOffset"]); Tweener.registerSpecialProperty("_color_ga", _color_property_get, _color_property_set, ["greenMultiplier"]); Tweener.registerSpecialProperty("_color_gb", _color_property_get, _color_property_set, ["greenOffset"]); Tweener.registerSpecialProperty("_color_ba", _color_property_get, _color_property_set, ["blueMultiplier"]); Tweener.registerSpecialProperty("_color_bb", _color_property_get, _color_property_set, ["blueOffset"]); Tweener.registerSpecialProperty("_color_aa", _color_property_get, _color_property_set, ["alphaMultiplier"]); Tweener.registerSpecialProperty("_color_ab", _color_property_get, _color_property_set, ["alphaOffset"]); Tweener.registerSpecialProperty("_autoAlpha", _autoAlpha_get, _autoAlpha_set); Tweener.registerSpecialPropertySplitter("_color", _color_splitter); Tweener.registerSpecialPropertySplitter("_colorTransform", _colorTransform_splitter); Tweener.registerSpecialPropertySplitter("_scale", _scale_splitter); Tweener.registerSpecialProperty("_blur_blurX", _filter_property_get, _filter_property_set, [BlurFilter, "blurX"]); Tweener.registerSpecialProperty("_blur_blurY", _filter_property_get, _filter_property_set, [BlurFilter, "blurY"]); Tweener.registerSpecialProperty("_blur_quality", _filter_property_get, _filter_property_set, [BlurFilter, "quality"]); Tweener.registerSpecialPropertySplitter("_filter", _filter_splitter); Tweener.registerSpecialPropertyModifier("_bezier", _bezier_modifier, _bezier_get); } public static function _sound_pan_set(_arg1:Object, _arg2:Number):void{ var _local3:SoundTransform; _local3 = _arg1.soundTransform; _local3.pan = _arg2; _arg1.soundTransform = _local3; } public static function _color_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{ var _local4:ColorTransform; _local4 = _arg1.transform.colorTransform; _local4[_arg3[0]] = _arg2; _arg1.transform.colorTransform = _local4; } public static function _filter_property_get(_arg1:Object, _arg2:Array):Number{ var _local3:Array; var _local4:uint; var _local5:Object; var _local6:String; var _local7:Object; _local3 = _arg1.filters; _local5 = _arg2[0]; _local6 = _arg2[1]; _local4 = 0; while (_local4 < _local3.length) { if ((((_local3[_local4] is BlurFilter)) && ((_local5 == BlurFilter)))){ return (_local3[_local4][_local6]); }; _local4++; }; switch (_local5){ case BlurFilter: _local7 = {blurX:0, blurY:0, quality:NaN}; break; }; return (_local7[_local6]); } public static function _bezier_get(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Array):Number{ var _local5:uint; var _local6:Number; var _local7:Number; var _local8:Number; if (_arg4.length == 1){ return ((_arg1 + (_arg3 * (((2 * (1 - _arg3)) * (_arg4[0] - _arg1)) + (_arg3 * (_arg2 - _arg1)))))); }; _local5 = Math.floor((_arg3 * _arg4.length)); _local6 = ((_arg3 - (_local5 * (1 / _arg4.length))) * _arg4.length); if (_local5 == 0){ _local7 = _arg1; _local8 = ((_arg4[0] + _arg4[1]) / 2); } else { if (_local5 == (_arg4.length - 1)){ _local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2); _local8 = _arg2; } else { _local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2); _local8 = ((_arg4[_local5] + _arg4[(_local5 + 1)]) / 2); }; }; return ((_local7 + (_local6 * (((2 * (1 - _local6)) * (_arg4[_local5] - _local7)) + (_local6 * (_local8 - _local7)))))); } public static function frame_set(_arg1:Object, _arg2:Number):void{ _arg1.gotoAndStop(Math.round(_arg2)); } public static function _filter_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{ var _local4:Array; var _local5:uint; var _local6:Object; var _local7:String; var _local8:BitmapFilter; _local4 = _arg1.filters; _local6 = _arg3[0]; _local7 = _arg3[1]; _local5 = 0; while (_local5 < _local4.length) { if ((((_local4[_local5] is BlurFilter)) && ((_local6 == BlurFilter)))){ _local4[_local5][_local7] = _arg2; _arg1.filters = _local4; return; }; _local5++; }; if (_local4 == null){ _local4 = new Array(); }; switch (_local6){ case BlurFilter: _local8 = new BlurFilter(0, 0); break; }; _local8[_local7] = _arg2; _local4.push(_local8); _arg1.filters = _local4; } public static function _autoAlpha_set(_arg1:Object, _arg2:Number):void{ _arg1.alpha = _arg2; _arg1.visible = (_arg2 > 0); } public static function _scale_splitter(_arg1:Number):Array{ var _local2:Array; _local2 = new Array(); _local2.push({name:"scaleX", value:_arg1}); _local2.push({name:"scaleY", value:_arg1}); return (_local2); } public static function _colorTransform_splitter(_arg1):Array{ var _local2:Array; _local2 = new Array(); if (_arg1 == null){ _local2.push({name:"_color_ra", value:1}); _local2.push({name:"_color_rb", value:0}); _local2.push({name:"_color_ga", value:1}); _local2.push({name:"_color_gb", value:0}); _local2.push({name:"_color_ba", value:1}); _local2.push({name:"_color_bb", value:0}); } else { if (_arg1.ra != undefined){ _local2.push({name:"_color_ra", value:_arg1.ra}); }; if (_arg1.rb != undefined){ _local2.push({name:"_color_rb", value:_arg1.rb}); }; if (_arg1.ga != undefined){ _local2.push({name:"_color_ba", value:_arg1.ba}); }; if (_arg1.gb != undefined){ _local2.push({name:"_color_bb", value:_arg1.bb}); }; if (_arg1.ba != undefined){ _local2.push({name:"_color_ga", value:_arg1.ga}); }; if (_arg1.bb != undefined){ _local2.push({name:"_color_gb", value:_arg1.gb}); }; if (_arg1.aa != undefined){ _local2.push({name:"_color_aa", value:_arg1.aa}); }; if (_arg1.ab != undefined){ _local2.push({name:"_color_ab", value:_arg1.ab}); }; }; return (_local2); } public static function _bezier_modifier(_arg1):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:String; var _local6:Object; _local2 = []; if ((_arg1 is Array)){ _local3 = _arg1; } else { _local3 = [_arg1]; }; _local6 = {}; _local4 = 0; while (_local4 < _local3.length) { for (_local5 in _local3[_local4]) { if (_local6[_local5] == undefined){ _local6[_local5] = []; }; _local6[_local5].push(_local3[_local4][_local5]); }; _local4++; }; for (_local5 in _local6) { _local2.push({name:_local5, parameters:_local6[_local5]}); }; return (_local2); } } }//package caurina.transitions
Section 7
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var setValue:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 8
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 9
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function){ splitValues = _arg1; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 10
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _specialPropertySplitterList:Object; private static var _engineExists:Boolean = false; private static var _specialPropertyModifierList:Object; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ var _local4:SpecialPropertyModifier; if (!_inited){ init(); }; _local4 = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null):void{ var _local5:SpecialProperty; if (!_inited){ init(); }; _local5 = new SpecialProperty(_arg2, _arg3, _arg4); _specialPropertyList[_arg1] = _local5; } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local4:Array; var _local5:Number; var _local6:Number; var _local7:Object; var _local8:Number; var _local9:Number; var _local10:Function; var _local11:TweenListObj; var _local12:Number; var _local13:String; if ((((arguments.length < 2)) || ((arguments[0] == undefined)))){ return (false); }; _local4 = new Array(); if ((arguments[0] is Array)){ _local5 = 0; while (_local5 < arguments[0].length) { _local4.push(arguments[0][_local5]); _local5++; }; } else { _local5 = 0; while (_local5 < (arguments.length - 1)) { _local4.push(arguments[_local5]); _local5++; }; }; _local7 = arguments[(arguments.length - 1)]; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local8 = (isNaN(_local7.time)) ? 0 : _local7.time; _local9 = (isNaN(_local7.delay)) ? 0 : _local7.delay; if (typeof(_local7.transition) == "string"){ _local13 = _local7.transition.toLowerCase(); _local10 = _transitionList[_local13]; } else { _local10 = _local7.transition; }; if (!Boolean(_local10)){ _local10 = _transitionList["easeoutexpo"]; }; _local5 = 0; while (_local5 < _local4.length) { _local11 = new TweenListObj(_local4[_local5], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), (_local7.useFrames == true), _local10); _local11.properties = null; _local11.onStart = _local7.onStart; _local11.onUpdate = _local7.onUpdate; _local11.onComplete = _local7.onComplete; _local11.onOverwrite = _local7.onOverwrite; _local11.onStartParams = _local7.onStartParams; _local11.onUpdateParams = _local7.onUpdateParams; _local11.onCompleteParams = _local7.onCompleteParams; _local11.onOverwriteParams = _local7.onOverwriteParams; _local11.isCaller = true; _local11.count = _local7.count; _local11.waitFrames = _local7.waitFrames; _tweenList.push(_local11); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local12 = (_tweenList.length - 1); updateTweenByIndex(_local12); removeTweenByIndex(_local12); }; _local5++; }; return (true); } public static function init(_arg1=null):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); SpecialPropertiesDefault.init(); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function pauseAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local3:TweenListObj; var _local4:TweenListObj; var _local5:uint; var _local6:String; var _local7:Boolean; _local3 = _tweenList[_arg1]; _local4 = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; _local2.timeStart = (_local2.timeStart + (_currentTime - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_currentTime - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } public static function debug_getList():String{ var _local1:String; var _local2:uint; var _local3:uint; _local1 = ""; _local2 = 0; while (_local2 < _tweenList.length) { _local1 = (_local1 + (("[" + _local2) + "] ::\n")); _local3 = 0; while (_local3 < _tweenList[_local2].properties.length) { _local1 = (_local1 + ((((" " + _tweenList[_local2].properties[_local3].name) + " -> ") + _tweenList[_local2].properties[_local3].valueComplete) + "\n")); _local3++; }; _local2++; }; return (_local1); } public static function getVersion():String{ return ("AS3 1.25.57"); } public static function onEnterFrame(_arg1:Event):void{ var _local2:Boolean; updateTime(); _local2 = false; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var isOver:Boolean; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var tScope:Object; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; isOver = false; if (_currentTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(_currentTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (_currentTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ try { tTweening.onStart.apply(tScope, tTweening.onStartParams); } catch(e:Error) { }; }; for (pName in tTweening.properties) { pv = getPropertyValue(tScope, pName); tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (_currentTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (_currentTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; setPropertyValue(tScope, pName, nv); }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ try { tTweening.onUpdate.apply(tScope, tTweening.onUpdateParams); } catch(e:Error) { }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ try { tTweening.onComplete.apply(tScope, tTweening.onCompleteParams); } catch(e:Error) { }; }; return (!(isOver)); }; return (true); } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ _local2 = 0; while (_local2 < _tweenList.length) { _tweenList[_local2].timeStart = (_currentTime - (((_currentTime - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_currentTime - (((_currentTime - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_currentTime - (((_currentTime - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; _timeScale = _arg1; }; } public static function resumeAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); updateTime(); } public static function removeAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local4:Array; var _local5:Number; var _local6:Number; var _local7:String; var _local8:String; var _local9:Object; var _local10:Number; var _local11:Number; var _local12:Array; var _local13:Object; var _local14:Object; var _local15:Function; var _local16:Object; var _local17:TweenListObj; var _local18:Number; var _local19:Array; var _local20:Array; var _local21:String; if ((((arguments.length < 2)) || ((arguments[0] == undefined)))){ return (false); }; _local4 = new Array(); if ((arguments[0] is Array)){ _local5 = 0; while (_local5 < arguments[0].length) { _local4.push(arguments[0][_local5]); _local5++; }; } else { _local5 = 0; while (_local5 < (arguments.length - 1)) { _local4.push(arguments[_local5]); _local5++; }; }; _local9 = arguments[(arguments.length - 1)]; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local10 = (isNaN(_local9.time)) ? 0 : _local9.time; _local11 = (isNaN(_local9.delay)) ? 0 : _local9.delay; _local12 = new Array(); _local13 = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true}; _local14 = new Object(); for (_local7 in _local9) { if (!_local13[_local7]){ if (_specialPropertySplitterList[_local7]){ _local19 = _specialPropertySplitterList[_local7].splitValues(_local9[_local7]); _local5 = 0; while (_local5 < _local19.length) { _local12[_local19[_local5].name] = {valueStart:undefined, valueComplete:_local19[_local5].value}; _local5++; }; } else { if (_specialPropertyModifierList[_local7] != undefined){ _local20 = _specialPropertyModifierList[_local7].modifyValues(_local9[_local7]); _local5 = 0; while (_local5 < _local20.length) { _local14[_local20[_local5].name] = {modifierParameters:_local20[_local5].parameters, modifierFunction:_specialPropertyModifierList[_local7].getValue}; _local5++; }; } else { _local12[_local7] = {valueStart:undefined, valueComplete:_local9[_local7]}; }; }; }; }; for (_local7 in _local14) { if (_local12[_local7] != undefined){ _local12[_local7].modifierParameters = _local14[_local7].modifierParameters; _local12[_local7].modifierFunction = _local14[_local7].modifierFunction; }; }; if (typeof(_local9.transition) == "string"){ _local21 = _local9.transition.toLowerCase(); _local15 = _transitionList[_local21]; } else { _local15 = _local9.transition; }; if (!Boolean(_local15)){ _local15 = _transitionList["easeoutexpo"]; }; _local5 = 0; while (_local5 < _local4.length) { _local16 = new Object(); for (_local7 in _local12) { _local16[_local7] = new PropertyInfoObj(_local12[_local7].valueStart, _local12[_local7].valueComplete, _local12[_local7].modifierFunction, _local12[_local7].modifierParameters); }; _local17 = new TweenListObj(_local4[_local5], (_currentTime + ((_local11 * 1000) / _timeScale)), (_currentTime + (((_local11 * 1000) + (_local10 * 1000)) / _timeScale)), (_local9.useFrames == true), _local15); _local17.properties = _local16; _local17.onStart = _local9.onStart; _local17.onUpdate = _local9.onUpdate; _local17.onComplete = _local9.onComplete; _local17.onOverwrite = _local9.onOverwrite; _local17.onStartParams = _local9.onStartParams; _local17.onUpdateParams = _local9.onUpdateParams; _local17.onCompleteParams = _local9.onCompleteParams; _local17.onOverwriteParams = _local9.onOverwriteParams; _local17.rounded = _local9.rounded; _local17.skipUpdates = _local9.skipUpdates; removeTweensByTime(_local17.scope, _local17.properties, _local17.timeStart, _local17.timeComplete); _tweenList.push(_local17); if ((((_local10 == 0)) && ((_local11 == 0)))){ _local18 = (_tweenList.length - 1); updateTweenByIndex(_local18); removeTweenByIndex(_local18); }; _local5++; }; return (true); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local4:Boolean; var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; _local4 = false; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; var _local4:Array; if (!Boolean(_tweenList)){ return ([]); }; _local4 = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (_tweenList[_local2].scope == _arg1){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } private static function setPropertyValue(_arg1:Object, _arg2:String, _arg3:Number):void{ if (_specialPropertyList[_arg2] != undefined){ if (Boolean(_specialPropertyList[_arg2].parameters)){ _specialPropertyList[_arg2].setValue(_arg1, _arg3, _specialPropertyList[_arg2].parameters); } else { _specialPropertyList[_arg2].setValue(_arg1, _arg3); }; } else { _arg1[_arg2] = _arg3; }; } private static function getPropertyValue(_arg1:Object, _arg2:String):Number{ if (_specialPropertyList[_arg2] != undefined){ if (Boolean(_specialPropertyList[_arg2].parameters)){ return (_specialPropertyList[_arg2].getValue(_arg1, _specialPropertyList[_arg2].parameters)); }; return (_specialPropertyList[_arg2].getValue(_arg1)); } else { }; return (!NULL!); } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (_tweenList[_local2].scope == _arg1){ return (true); }; _local2++; }; return (false); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; var _local3:Number; if (!Boolean(_tweenList)){ return (0); }; _local3 = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (_tweenList[_local2].scope == _arg1){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = _currentTime; _local2.isPaused = true; return (true); } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removed:Boolean; var removedLocally:Boolean; var i:uint; var tl:uint; var pName:String; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; removed = false; tl = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ try { _tweenList[i].onOverwrite.apply(_tweenList[i].scope, _tweenList[i].onOverwriteParams); } catch(e:Error) { }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function):void{ var _local3:SpecialPropertySplitter; if (!_inited){ init(); }; _local3 = new SpecialPropertySplitter(_arg2); _specialPropertySplitterList[_arg1] = _local3; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 11
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var onUpdate:Function; public var useFrames:Boolean; public var hasStarted:Boolean; public var onOverwriteParams:Array; public var timeStart:Number; public var count:Number; public var auxProperties:Object; public var timeComplete:Number; public var onStartParams:Array; public var rounded:Boolean; public var updatesSkipped:Number; public var onUpdateParams:Array; public var onComplete:Function; public var properties:Object; public var onStart:Function; public var skipUpdates:Number; public var scope:Object; public var isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var timesCalled:Number; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; auxProperties = new Object(); properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local2:TweenListObj; var _local3:String; _local2 = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local1:String; var _local2:uint; _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); _local2 = 0; while (_local2 < properties.length) { if (_local2 > 0){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local2].name)); _local1 = (_local1 + (",valueStart:" + properties[_local2].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local2].valueComplete)); _local1 = (_local1 + "]"); _local2++; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } } }//package caurina.transitions
Section 12
//Raster (com.foxaweb.utils.Raster) package com.foxaweb.utils { import flash.display.*; import flash.geom.*; public class Raster { public static function aaCircle(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:int, _arg5:Number):void{ var _local6:int; var _local7:int; var _local8:int; var _local9:Number; var _local10:Number; var _local11:Function; var _local12:Function; _local6 = _arg4; _local7 = 0; _local9 = 0; _local11 = Math.sqrt; _local12 = Math.ceil; _arg1.setPixel((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel((_arg2 - _local6), (_arg3 + _local7), _arg5); _arg1.setPixel((_arg2 + _local7), (_arg3 + _local6), _arg5); _arg1.setPixel((_arg2 + _local7), (_arg3 - _local6), _arg5); while (_local6 > (_local7 + 1)) { _local7++; _local10 = (_local12(_local11(((_arg4 * _arg4) - (_local7 * _local7)))) - _local11(((_arg4 * _arg4) - (_local7 * _local7)))); if (_local10 < _local9){ _local6--; }; drawAlphaPixel(_arg1, (_arg2 + _local6), (_arg3 + _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 + _local6) - 1), (_arg3 + _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local6), (_arg3 + _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 - _local6) + 1), (_arg3 + _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local6), (_arg3 - _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 + _local6) - 1), (_arg3 - _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local6), (_arg3 - _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 - _local6) + 1), (_arg3 - _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), (_arg3 + _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), ((_arg3 + _local6) - 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), (_arg3 + _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), ((_arg3 + _local6) - 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), (_arg3 - _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), ((_arg3 - _local6) + 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), (_arg3 - _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), ((_arg3 - _local6) + 1), _local10, _arg5); _local9 = _local10; }; } public static function cubicBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:int, _arg10:Number, _arg11:int=5):void{ var _local12:Number; var _local13:Number; var _local14:int; var _local15:int; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:int; var _local25:int; var _local26:int; var _local27:int; _local12 = _arg2; _local13 = _arg3; _local16 = 0; _local17 = (1 / _arg11); _local24 = 0; while (++_local24 <= _arg11) { _local18 = (_local17 * _local24); _local19 = ((_local17 * _local24) * _local18); _local20 = (_local19 * _local18); _local21 = (1 - _local18); _local22 = ((1 - _local18) * _local21); _local23 = (_local22 * _local21); _local14 = ((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20)); _local15 = ((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20)); _local16 = (_local16 + Math.sqrt((((_local14 - _local12) * (_local14 - _local12)) + ((_local15 - _local13) * (_local15 - _local13))))); _local12 = _local14; _local13 = _local15; }; _local25 = Math.floor(_local16); _local17 = (1 / _local25); _local26 = _arg2; _local27 = _arg3; _local24 = -1; while (++_local24 <= _local25) { _local18 = (_local17 * _local24); _local19 = ((_local17 * _local24) * _local18); _local20 = (_local19 * _local18); _local21 = (1 - _local18); _local22 = ((1 - _local18) * _local21); _local23 = (_local22 * _local21); _local14 = ((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20)); _local15 = ((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20)); line(_arg1, _local26, _local27, _local14, _local15, _arg10); _local26 = _local14; _local27 = _local15; }; } private static function checkLine(_arg1:Object, _arg2:int, _arg3:int, _arg4:BitmapData, _arg5:int, _arg6:Rectangle):void{ if (_arg1[_arg3]){ if (_arg1[_arg3] > _arg2){ _arg6.width = (_arg1[_arg3] - _arg2); _arg6.x = _arg2; _arg6.y = _arg3; _arg4.fillRect(_arg6, _arg5); } else { _arg6.width = (_arg2 - _arg1[_arg3]); _arg6.x = _arg1[_arg3]; _arg6.y = _arg3; _arg4.fillRect(_arg6, _arg5); }; } else { _arg1[_arg3] = _arg2; }; } public static function line(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{ var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; _local13 = _arg2; _local14 = _arg3; _local7 = (_arg4 - _arg2); _local8 = (_arg5 - _arg3); _local10 = ((_local7)>0) ? 1 : -1; _local11 = ((_local8)>0) ? 1 : -1; _local7 = ((_local7 ^ (_local7 >> 31)) - (_local7 >> 31)); _local8 = ((_local8 ^ (_local8 >> 31)) - (_local8 >> 31)); _arg1.setPixel32(_local13, _local14, _arg6); if (_local7 > _local8){ _local12 = (_local7 / 2); _local9 = 1; while (_local9 <= _local7) { _local13 = (_local13 + _local10); _local12 = (_local12 + _local8); if (_local12 >= _local7){ _local12 = (_local12 - _local7); _local14 = (_local14 + _local11); }; _arg1.setPixel32(_local13, _local14, _arg6); _local9++; }; } else { _local12 = (_local8 / 2); _local9 = 1; while (_local9 <= _local8) { _local14 = (_local14 + _local11); _local12 = (_local12 + _local7); if (_local12 >= _local8){ _local12 = (_local12 - _local8); _local13 = (_local13 + _local10); }; _arg1.setPixel32(_local13, _local14, _arg6); _local9++; }; }; } public static function quadBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number, _arg9:int=3):void{ var _local10:Number; var _local11:Number; var _local12:int; var _local13:int; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:int; var _local21:int; var _local22:int; var _local23:int; _local10 = _arg2; _local11 = _arg3; _local14 = 0; _local15 = (1 / _arg9); _local20 = 0; while (++_local20 <= _arg9) { _local16 = (_local15 * _local20); _local17 = ((_local15 * _local20) * _local16); _local18 = (1 - _local16); _local19 = ((1 - _local16) * _local18); _local12 = (((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6)); _local13 = (((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7)); _local14 = (_local14 + Math.sqrt((((_local12 - _local10) * (_local12 - _local10)) + ((_local13 - _local11) * (_local13 - _local11))))); _local10 = _local12; _local11 = _local13; }; _local21 = Math.floor(_local14); _local15 = (1 / _local21); _local22 = _arg2; _local23 = _arg3; _local20 = -1; while (++_local20 <= _local21) { _local16 = (_local15 * _local20); _local17 = ((_local15 * _local20) * _local16); _local18 = (1 - _local16); _local19 = ((1 - _local16) * _local18); _local12 = (((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6)); _local13 = (((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7)); line(_arg1, _local22, _local23, _local12, _local13, _arg8); _local22 = _local12; _local23 = _local13; }; } public static function circle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:Number):void{ var _local6:int; var _local7:int; var _local8:int; _local6 = 0; _local7 = _arg4; _local8 = (1 - _arg4); _arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5); while (_local7 > _local6) { if (_local8 < 0){ _local8 = (_local8 + ((2 * _local6) + 3)); } else { _local8 = (_local8 + ((2 * (_local6 - _local7)) + 5)); _local7--; }; _local6++; _arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 - _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 - _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 - _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5); }; } public static function triangle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number):void{ line(_arg1, _arg2, _arg3, _arg4, _arg5, _arg8); line(_arg1, _arg4, _arg5, _arg6, _arg7, _arg8); line(_arg1, _arg6, _arg7, _arg2, _arg3, _arg8); } public static function filledTri(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number):void{ var _local9:Object; _local9 = {}; lineTri(_local9, _arg1, _arg2, _arg3, _arg4, _arg5, _arg8); lineTri(_local9, _arg1, _arg4, _arg5, _arg6, _arg7, _arg8); lineTri(_local9, _arg1, _arg6, _arg7, _arg2, _arg3, _arg8); } public static function aaLine(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{ var _local7:Boolean; var _local8:int; var _local9:int; var _local10:int; var _local11:Number; var _local12:int; var _local13:Number; var _local14:Number; var _local15:int; var _local16:int; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:int; _local7 = (Math.abs((_arg5 - _arg3)) > Math.abs((_arg4 - _arg2))); if (_local7){ _local8 = _arg2; _arg2 = _arg3; _arg3 = _local8; _local8 = _arg4; _arg4 = _arg5; _arg5 = _local8; }; if (_arg2 > _arg4){ _local8 = _arg2; _arg2 = _arg4; _arg4 = _local8; _local8 = _arg3; _arg3 = _arg5; _arg5 = _local8; }; _local9 = (_arg4 - _arg2); _local10 = (_arg5 - _arg3); _local11 = (_local10 / _local9); _local12 = _arg2; _local13 = (_arg3 + (_local11 * (_local12 - _arg2))); _local14 = (1 - ((_arg2 + 0.5) % 1)); _local15 = _local12; _local16 = Math.floor(_local13); _local17 = ((1 - (_local13 % 1)) * _local14); if (_local7){ }; _local17 = ((_local13 % 1) * _local14); if (_local7){ }; _local18 = (_local13 + _local11); _local12 = _arg4; _local13 = (_arg5 + (_local11 * (_local12 - _arg4))); _local14 = ((_arg4 + 0.5) % 1); _local19 = _local12; _local20 = Math.floor(_local13); _local17 = ((1 - (_local13 % 1)) * _local14); if (_local7){ drawAlphaPixel(_arg1, _local20, _local19, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local19, _local20, _local17, _arg6); }; _local17 = ((_local13 % 1) * _local14); if (_local7){ drawAlphaPixel(_arg1, (_local20 + 1), _local19, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local19, (_local20 + 1), _local17, _arg6); }; _local21 = _local15; while (_local21++ < _local19) { _local17 = (1 - (_local18 % 1)); if (_local7){ drawAlphaPixel(_arg1, _local18, _local21, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local21, _local18, _local17, _arg6); }; _local17 = (_local18 % 1); if (_local7){ drawAlphaPixel(_arg1, (_local18 + 1), _local21, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local21, (_local18 + 1), _local17, _arg6); }; _local18 = (_local18 + _local11); }; } private static function drawAlphaPixel(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:Number, _arg5:Number):void{ var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:uint; _local6 = _arg1.getPixel32(_arg2, _arg3); _local7 = ((_local6 & 0xFF0000) >> 16); _local8 = ((_local6 & 0xFF00) >> 8); _local9 = (_local6 & 0xFF); _local10 = ((_arg5 & 0xFF0000) >> 16); _local11 = ((_arg5 & 0xFF00) >> 8); _local12 = (_arg5 & 0xFF); _local13 = 0xFF; _local14 = ((_local10 * _arg4) + (_local7 * (1 - _arg4))); _local15 = ((_local11 * _arg4) + (_local8 * (1 - _arg4))); _local16 = ((_local12 * _arg4) + (_local9 * (1 - _arg4))); _local17 = ((((_local13 << 24) + (_local14 << 16)) + (_local15 << 8)) + _local16); _arg1.setPixel32(_arg2, _arg3, _local17); } private static function lineTri(_arg1:Object, _arg2:BitmapData, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Number):void{ var _local8:Boolean; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:int; var _local17:int; var _local18:int; var _local19:Rectangle; var _local20:int; _local8 = (((_arg6 - _arg4) * (_arg6 - _arg4)) > ((_arg5 - _arg3) * (_arg5 - _arg3))); if (_local8){ _local9 = _arg3; _arg3 = _arg4; _arg4 = _local9; _local9 = _arg5; _arg5 = _arg6; _arg6 = _local9; }; if (_arg3 > _arg5){ _arg3 = (_arg3 ^ _arg5); _arg5 = (_arg5 ^ _arg3); _arg3 = (_arg3 ^ _arg5); _arg4 = (_arg4 ^ _arg6); _arg6 = (_arg6 ^ _arg4); _arg4 = (_arg4 ^ _arg6); }; _local10 = (_arg5 - _arg3); _local11 = Math.abs((_arg6 - _arg4)); _local12 = 0; _local13 = _arg4; _local14 = ((_arg4 < _arg6)) ? 1 : -1; _local15 = _arg3; _local16 = (_arg5 - (_local10 >> 1)); _local17 = _arg5; _local18 = _arg6; _local19 = new Rectangle(); _local20 = 0; _local19.x = 0; _local19.y = 0; _local19.width = 0; _local19.height = 1; while (_local15++ <= _local16) { if (_local8){ checkLine(_arg1, _local13, _local15, _arg2, _arg7, _local19); if (((!((_local17 == _arg5))) && (!((_local17 == _local16))))){ checkLine(_arg1, _local18, (_local17 + 1), _arg2, _arg7, _local19); }; }; _local12 = (_local12 + _local11); if ((_local12 << 1) >= _local10){ if (!_local8){ checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19); if (_local17 != _local16){ checkLine(_arg1, (_local17 + 1), _local18, _arg2, _arg7, _local19); }; }; _local20 = 0; _local13 = (_local13 + _local14); _local18 = (_local18 - _local14); _local12 = (_local12 - _local10); }; _local20++; _local17--; }; if (!_local8){ checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19); }; } } }//package com.foxaweb.utils
Section 13
//BitmapSprite (com.markfennell.display.BitmapSprite) package com.markfennell.display { import flash.display.*; import flash.geom.*; public class BitmapSprite extends Sprite { private var stepY:Number; private var stepX:Number; private var copyPoint:Point; private var BitmapDataArray:Array; private var yScale:Number; private var transformMatrix:Matrix; private var stepRot:Number; private var copyRectangle:Rectangle; private var rotScale:Number; private var xScale:Number; private var _frames:Number; private var _h:Number; private var BitmapDataTile:BitmapData; private var _w:Number; public function BitmapSprite(_arg1:MovieClip, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10){ var _local11:*; super(); _frames = _arg10; _w = _arg2; _h = _arg3; BitmapDataArray = []; xScale = _arg4; yScale = _arg6; rotScale = _arg8; stepX = ((_arg5 - _arg4) / _arg10); stepY = ((_arg7 - _arg6) / _arg10); stepRot = ((_arg9 - _arg8) / _arg10); copyRectangle = new Rectangle(0, 0, _w, _h); _local11 = 0; while (_local11 < _arg10) { BitmapDataTile = new BitmapData(_arg2, _arg3, true, 0xFFFFFF); transformMatrix = new Matrix(); transformMatrix.scale(xScale, yScale); transformMatrix.rotate(rotScale); transformMatrix.tx = (_arg2 / 2); transformMatrix.ty = (_arg3 / 2); BitmapDataTile.draw(_arg1, transformMatrix); BitmapDataArray.push(BitmapDataTile); xScale = (xScale + stepX); yScale = (yScale + stepY); rotScale = (rotScale + stepRot); _local11++; }; } public function getWidth():Number{ return (_w); } public function getBitmap(_arg1:Number){ if (_arg1 < 0){ _arg1 = 0; }; if (_arg1 >= BitmapDataArray.length){ _arg1 = (BitmapDataArray.length - 1); }; return (BitmapDataArray[_arg1]); } public function getHeight():Number{ return (_h); } public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:int){ if (_arg4 < 0){ _arg4 = 0; }; if (_arg4 >= BitmapDataArray.length){ _arg4 = (BitmapDataArray.length - 1); }; copyPoint = new Point((_arg2 - (_w / 2)), (_arg3 - (_h / 2))); _arg1.copyPixels(getBitmap(_arg4), copyRectangle, copyPoint, null, null, true); } public function getFrames():int{ return (_frames); } } }//package com.markfennell.display
Section 14
//Fx (com.markfennell.display.Fx) package com.markfennell.display { import flash.display.*; import caurina.transitions.*; import flash.filters.*; import flash.utils.*; public class Fx extends Sprite { public function zoomIn(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:String, _arg10:Function){ var _initTime:Number; var _interval:Number; var angle:Number; var blurX:*; var blurY:*; var mc:DisplayObject; var wait:*; var blurFilter:BlurFilter; var _animate:Function; var onMotionStopped:Function; var _mc = _arg1; var delay = _arg2; var duration = _arg3; var startX = _arg4; var startY = _arg5; var finishX = _arg6; var finishY = _arg7; var blur = _arg8; var transition = _arg9; var callBack = _arg10; _animate = function (){ mc.filters = [blurFilter]; Tweener.addTween(mc, {x:finishX, y:finishY, time:duration, transition:transition, onComplete:onMotionStopped}); }; onMotionStopped = function (){ this.filters = []; callBack(); }; _initTime = getTimer(); angle = Math.atan2((finishY - startY), (finishX - startX)); blurX = Math.abs(Math.floor((Math.cos(angle) * blur))); blurY = Math.abs(Math.floor((Math.sin(angle) * blur))); mc = _mc; wait = (1000 * delay); mc.x = startX; mc.y = startY; blurFilter = new BlurFilter(blurX, blurY, 1); _interval = setTimeout(_animate, wait); } public function padScore(_arg1:int, _arg2:int){ var _local3:*; var _local4:*; _local3 = "000000000000000000000"; _local4 = _arg1.toString(); if (_local4.length < _arg2){ _local4 = (_local3.substring(0, (_arg2 - _local4.length)) + _local4); }; return (_local4); } } }//package com.markfennell.display
Section 15
//FastTrig (com.markfennell.math.FastTrig) package com.markfennell.math { public final class FastTrig { public static var PI = 3.14159265358979; public static var PI2 = 6.28318530717959; public static var PI1_2 = 1.5707963267949; public static var PI3_2 = 4.71238898038469; public static function fastCos(_arg1:Number):Number{ var _local2:Number; _arg1 = (_arg1 + 1.57079632); if (_arg1 > 3.14159265){ _arg1 = (_arg1 - 6.28318531); }; if (_arg1 < 0){ _local2 = ((1.27323954 * _arg1) + ((0.405284735 * _arg1) * _arg1)); if (_local2 < 0){ _local2 = ((0.225 * ((_local2 * -(_local2)) - _local2)) + _local2); } else { _local2 = ((0.225 * ((_local2 * _local2) - _local2)) + _local2); }; } else { _local2 = ((1.27323954 * _arg1) - ((0.405284735 * _arg1) * _arg1)); if (_local2 < 0){ _local2 = ((0.225 * ((_local2 * -(_local2)) - _local2)) + _local2); } else { _local2 = ((0.225 * ((_local2 * _local2) - _local2)) + _local2); }; }; return (_local2); } public static function fastSin(_arg1:Number):Number{ var _local2:Number; if (_arg1 < -3.14159265){ _arg1 = (_arg1 + 6.28318531); } else { if (_arg1 > 3.14159265){ _arg1 = (_arg1 - 6.28318531); }; }; if (_arg1 < 0){ _local2 = ((1.27323954 * _arg1) + ((0.405284735 * _arg1) * _arg1)); if (_local2 < 0){ _local2 = ((0.225 * ((_local2 * -(_local2)) - _local2)) + _local2); } else { _local2 = ((0.225 * ((_local2 * _local2) - _local2)) + _local2); }; } else { _local2 = ((1.27323954 * _arg1) - ((0.405284735 * _arg1) * _arg1)); if (_local2 < 0){ _local2 = ((0.225 * ((_local2 * -(_local2)) - _local2)) + _local2); } else { _local2 = ((0.225 * ((_local2 * _local2) - _local2)) + _local2); }; }; return (_local2); } public static function fastSqrt(_arg1:Number){ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = 0.02; _local3 = (_arg1 * 0.25); if (_arg1 == 0){ return (0); }; do { _local5 = (_arg1 / _local3); _local3 = ((_local3 + _local5) * 0.5); _local4 = (_local3 - _local5); if (_local4 < 0){ _local4 = -(_local4); }; } while (_local4 > _local2); return (_local3); } } }//package com.markfennell.math
Section 16
//RC4 (com.meychi.ascrypt3.RC4) package com.meychi.ascrypt3 { public class RC4 { private static var mykey:Array = new Array(0xFF); private static var sbox:Array = new Array(0xFF); public function encrypt(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; _local3 = strToChars(_arg1); _local4 = strToChars(_arg2); _local5 = calculate(_local3, _local4); return (charsToHex(_local5)); } public function decrypt(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; _local3 = hexToChars(_arg1); _local4 = strToChars(_arg2); _local5 = calculate(_local3, _local4); return (charsToStr(_local5)); } private static function initialize(_arg1:Array):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = 0; _local4 = _arg1.length; _local5 = 0; _local5 = 0; while (_local5 <= 0xFF) { mykey[_local5] = _arg1[(_local5 % _local4)]; sbox[_local5] = _local5; _local5++; }; _local5 = 0; while (_local5 <= 0xFF) { _local2 = (((_local2 + sbox[_local5]) + mykey[_local5]) % 0x0100); _local3 = sbox[_local5]; sbox[_local5] = sbox[_local2]; sbox[_local2] = _local3; _local5++; }; } private static function strToChars(_arg1:String):Array{ var _local2:Array; var _local3:Number; _local2 = new Array(); _local3 = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private static function charsToStr(_arg1:Array):String{ var _local2:String; var _local3:Number; _local2 = new String(""); _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } private static function charsToHex(_arg1:Array):String{ var _local2:String; var _local3:Array; var _local4:Number; _local2 = new String(""); _local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); _local4 = 0; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } private static function calculate(_arg1:Array, _arg2:Array):Array{ var _local3:Number; var _local4:Number; var _local5:Array; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; initialize(_arg2); _local3 = 0; _local4 = 0; _local5 = new Array(); _local9 = 0; while (_local9 < _arg1.length) { _local3 = ((_local3 + 1) % 0x0100); _local4 = ((_local4 + sbox[_local3]) % 0x0100); _local7 = sbox[_local3]; sbox[_local3] = sbox[_local4]; sbox[_local4] = _local7; _local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100); _local6 = sbox[_local10]; _local8 = (_arg1[_local9] ^ _local6); _local5.push(_local8); _local9++; }; return (_local5); } private static function hexToChars(_arg1:String):Array{ var _local2:Array; var _local3:Number; _local2 = new Array(); _local3 = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } } }//package com.meychi.ascrypt3
Section 17
//Autofire (controls.Autofire) package controls { import flash.display.*; import flash.events.*; public class Autofire extends MovieClip { public var btnOn:SimpleButton; public var btnOff:SimpleButton; public function Autofire(){ var myThis:*; var On:Function; var Off:Function; super(); On = function (){ myThis.btnOn.visible = false; myThis.btnOff.visible = true; GameManager.getInstance().autofire = true; }; Off = function (){ myThis.btnOff.visible = false; myThis.btnOn.visible = true; GameManager.getInstance().autofire = false; }; myThis = this; myThis.btnOn.visible = false; myThis.btnOn.addEventListener(MouseEvent.CLICK, On); myThis.btnOff.addEventListener(MouseEvent.CLICK, Off); } public function setButtonsToRightState(){ if (GameManager.getInstance().autofire == false){ this.btnOff.visible = false; this.btnOn.visible = true; }; } } }//package controls
Section 18
//MusicControls (controls.MusicControls) package controls { import flash.display.*; import flash.events.*; public class MusicControls extends MovieClip { public var btnOn:SimpleButton; public var btnOff:SimpleButton; public function MusicControls(){ var myThis:*; var soundOn:Function; var soundOff:Function; super(); soundOn = function (){ myThis.btnOn.visible = false; myThis.btnOff.visible = true; SoundManager.getInstance().startMusic(); }; soundOff = function (){ myThis.btnOff.visible = false; myThis.btnOn.visible = true; SoundManager.getInstance().stopMusic(); }; myThis = this; myThis.btnOn.visible = false; myThis.btnOn.addEventListener(MouseEvent.CLICK, soundOn); myThis.btnOff.addEventListener(MouseEvent.CLICK, soundOff); } public function setButtonsToRightState(){ if (SoundManager.getInstance().musicEnabled == false){ this.btnOff.visible = false; this.btnOn.visible = true; SoundManager.getInstance().stopMusic(); }; } } }//package controls
Section 19
//SoundControls (controls.SoundControls) package controls { import flash.display.*; import flash.events.*; public class SoundControls extends MovieClip { public var btnOn:SimpleButton; public var btnOff:SimpleButton; public function SoundControls(){ var myThis:*; var soundOn:Function; var soundOff:Function; super(); soundOn = function (){ myThis.btnOn.visible = false; myThis.btnOff.visible = true; SoundManager.getInstance().soundsEnabled = true; }; soundOff = function (){ myThis.btnOff.visible = false; myThis.btnOn.visible = true; SoundManager.getInstance().soundsEnabled = false; }; myThis = this; myThis.btnOn.visible = false; myThis.btnOn.addEventListener(MouseEvent.CLICK, soundOn); myThis.btnOff.addEventListener(MouseEvent.CLICK, soundOff); } public function setButtonsToRightState(){ if (SoundManager.getInstance().soundsEnabled == false){ this.btnOff.visible = false; this.btnOn.visible = true; SoundManager.getInstance().stopMusic(); }; } } }//package controls
Section 20
//BlueTriangle (enemies.BlueTriangle) package enemies { import player.*; import lightning.*; public class BlueTriangle extends Enemy { public var score:int; private var zapCounter:int;// = 0 public var explodeSound:String;// = "Sound_Explode_002" private var position:Object; public var strikeRate:int; public var shardType; private var strikeDamage:Number; private var spinRate:int; private var lightning:Lightning; private var _frames:int; private var speed:Number; private var angle:Number; private var zapCounterMax:int;// = 4 public var powerup:Boolean;// = false private var player:Player; private var h:Number; private var i:int; public var damage:Number; private var strikeRateCounter:int;// = 0 public var bigExplosion:Boolean;// = true private var w:Number; public function BlueTriangle(){ strikeRate = Constants.ENEMY_LIGHTNING_STRIKERATE; shardType = Constants.SHARD_BLUE; damage = Constants.ENEMY_BLUE_DAMAGE; score = Constants.SCORE_BLUE_TRIANGLE; bigExplosion = true; powerup = false; explodeSound = "Sound_Explode_002"; strikeRateCounter = 0; strikeDamage = (Constants.ENEMY_LIGHTNING_DAMAGE + (Core.getInstance().levelManager.LevelReal / 2)); zapCounter = 0; zapCounterMax = 4; super(); radius = 15; position = setOffscreenPosition(radius); angle = position.angle; ax = position.ax; ay = position.ay; player = Core.getInstance().ship; lightning = Core.getInstance().lightning; energy = (Constants.ENERGY_BLUE_TRIANGLE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); energyMax = (Constants.ENERGY_BLUE_TRIANGLE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); _frames = Constants.ROTATION_ENEMY_FRAMES; sprite = Sprites.getInstance().blueTriangleSprite; speed = ((Constants.SPEED_BLUE_TRIANGLE * Math.random()) + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_SPEED_RATE)); if (Math.random() > 0.5){ speed = (speed * -1); }; vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); spinRate = -1; if (Math.random() > 0.5){ spinRate = 1; }; } override public function render():void{ if (strikeRateCounter == 0){ lightning.remove(); }; ax = (ax + vx); ay = (ay + vy); checkBoundaries(); frame = (frame + spinRate); if (frame > _frames){ frame = 0; } else { if (frame < 0){ frame = _frames; }; }; strikeRateCounter++; if (strikeRateCounter > strikeRate){ zapCounter++; if (zapCounter > zapCounterMax){ SoundManager.getInstance().playSound("Sound_Zapper"); strikeRateCounter = 0; zapCounter = 0; }; lightning.curDisplace = Constants.PLAYER_LIGHTNING_NORMAL; lightning.lightningBolt(ax, ay, player.ax, player.ay); player.energyDrain(strikeDamage); }; } } }//package enemies
Section 21
//Enemy (enemies.Enemy) package enemies { import flash.display.*; import com.markfennell.display.*; import player.*; import utilities.*; public class Enemy { public var energy:int; public var radius:Number; public var smartBomb:Boolean;// = false public var ax:Number; public var energyMax:Number; public var ay:Number; public var vx:Number; public var vy:Number; public var sprite:BitmapSprite; private var speed:Number; private var spinRate:int; public var energyDisplayTimer:int;// = 0 private var _frames:int; private var angle:Number; public var destroyable:Boolean;// = true public var health:int; private var player:Player; private var h:Number; private var i:int; public var energyBar:EnergyBar; public var frame:int;// = 0 private var w:Number; public function Enemy(){ frame = 0; energyDisplayTimer = 0; destroyable = true; smartBomb = false; super(); } public function setOffscreenPosition(_arg1){ var _local2:Number; var _local3:Number; angle = (Math.random() * Constants.PI2); w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; if (Math.random() > 0.5){ if (Math.random() > 0.5){ _local2 = (Math.random() * (w + (2 * _arg1))); _local3 = -(_arg1); } else { _local2 = (Math.random() * (w + (2 * _arg1))); _local3 = (h + _arg1); }; } else { if (Math.random() > 0.5){ _local3 = (Math.random() * (h + (2 * _arg1))); _local2 = -(_arg1); } else { _local3 = (Math.random() * (h + (2 * _arg1))); _local2 = (w + _arg1); }; }; return ({ax:_local2, ay:_local3, angle:angle}); } public function render():void{ } public function showHealth(_arg1:BitmapData){ energyDisplayTimer--; if (energyDisplayTimer > 0){ energyBar = new EnergyBar((ax - (radius * 0.5)), ((ay + radius) + 2), energy, energyMax, _arg1); }; } public function checkBoundaries(){ if ((ax + radius) < 0){ ax = (ax + (w + (2 * radius))); } else { if ((ax - radius) > w){ ax = (ax - (w + (2 * radius))); }; }; if ((ay + radius) < 0){ ay = (ay + (h + (2 * radius))); } else { if ((ay - radius) > h){ ay = (ay - (h + (2 * radius))); }; }; } } }//package enemies
Section 22
//EnemyManager (enemies.EnemyManager) package enemies { import flash.display.*; import player.*; import explosions.*; public class EnemyManager extends Sprite { private var EnemyBitmapData:BitmapData; private var ydiff:Number; private var EnemyArrayLength:int;// = 0 private var range:Number; private var i:int; private var h:Number; private var w:Number; private var xdiff:Number; private var enemy:Object; private var dist:Number; private var segments:int;// = 5 private var EnemyArray:Array; private var player:Player; private var explosionManager:ExplosionManager; public function EnemyManager(_arg1:BitmapData){ EnemyArray = new Array(); EnemyArrayLength = 0; segments = 5; super(); w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; EnemyBitmapData = _arg1; player = Core.getInstance().ship; } public function createEnemy(_arg1:String){ switch (_arg1){ case "blueTriangle": enemy = new BlueTriangle(); EnemyArray.push(enemy); break; case "greenTriangle": enemy = new GreenTriangle(); EnemyArray.push(enemy); break; case "redSquare": enemy = new RedSquare(); EnemyArray.push(enemy); break; case "snake": createSnake(); break; case "hexagon": enemy = new Hexagon(); EnemyArray.push(enemy); break; case "yellowTriangle": createYellowTriangle(); break; }; } public function smartBomb(){ EnemyArrayLength = EnemyArray.length; i = 0; while (i < EnemyArrayLength) { enemy = EnemyArray[i]; if (enemy != null){ enemy.smartBomb = true; enemy.energy = 0; }; i++; }; } public function fireMissile(_arg1:Number, _arg2:Number, _arg3:Number){ enemy = new Missile(_arg1, _arg2, _arg3); EnemyArray.push(enemy); } public function getBitmapData(){ return (EnemyBitmapData); } public function removeAll(){ EnemyArray = []; } public function render(){ EnemyArrayLength = EnemyArray.length; while (EnemyArrayLength--) { enemy = EnemyArray[EnemyArrayLength]; if (enemy != null){ if (!player.isSpawning){ enemy.render(); }; enemy.sprite.draw(EnemyBitmapData, enemy.ax, enemy.ay, enemy.frame); enemy.showHealth(EnemyBitmapData); if (enemy.energy <= 0){ if (!enemy.smartBomb){ Core.getInstance().explosionManager.createExplosion(enemy.ax, enemy.ay, enemy.shardType, enemy.bigExplosion); Core.getInstance().hud.addScore(enemy.score); SoundManager.getInstance().playSound(enemy.explodeSound); }; if (enemy.powerup){ Core.getInstance().powerupManager.createPowerup(enemy.ax, enemy.ay); }; Core.getInstance().lightning.remove(); delete EnemyArray[EnemyArrayLength]; EnemyArray.splice(EnemyArrayLength, 1); }; }; xdiff = (enemy.ax - player.ax); ydiff = (enemy.ay - player.ay); range = (player.radius + enemy.radius); if (xdiff < range){ if (ydiff < range){ dist = Math.sqrt(((xdiff * xdiff) + (ydiff * ydiff))); if (dist <= range){ enemy.energy = 0; enemy.powerup = false; player.energyDrain(enemy.damage); }; }; }; }; } public function add(){ } public function createSnake(){ var _local1:Array; _local1 = []; enemy = new SnakeHead(); _local1.push(enemy); EnemyArray.push(enemy); segments = Math.min(Core.getInstance().levelManager.LevelReal, Constants.ENEMY_MAX_SNAKESEGMENTS); i = 1; while (i < segments) { enemy = new SnakeSegment(); enemy.Parent = _local1[(i - 1)]; _local1.push(enemy); EnemyArray.push(enemy); i++; }; } public function createYellowTriangle(){ var _local1:Array; _local1 = []; enemy = new YellowTriangle(); _local1.push(enemy); EnemyArray.push(enemy); segments = (((Math.random() * Constants.ENEMY_MAX_YELLOWSEGMENTS) + Constants.ENEMY_MAX_YELLOWSEGMENTS) >> 0); i = 1; while (i < segments) { enemy = new YellowTriangle(); enemy.Parent = _local1[(i - 1)]; _local1.push(enemy); EnemyArray.push(enemy); i++; }; _local1[0].Parent = _local1[(segments - 1)]; } public function getEnemies(){ return (EnemyArray); } } }//package enemies
Section 23
//GreenTriangle (enemies.GreenTriangle) package enemies { import player.*; public class GreenTriangle extends Enemy { public var score:int; private var ease:Number;// = 8 private var position:Object; public var explodeSound:String;// = "Sound_Explode_000" public var shardType; private var angleTarget:Number; private var spinRate:int; private var _frames:int; private var speed:Number; private var angle:Number; private var angleThreshold:Number;// = 0.1 private var angleToTarget:Number; public var powerup:Boolean;// = false private var player:Player; private var h:Number; private var i:int; public var damage:Number; private var threshold;// = 0.05 public var bigExplosion:Boolean;// = true private var turnRate:Number;// = 0.05 private var w:Number; public function GreenTriangle(){ shardType = Constants.SHARD_GREEN; damage = Constants.ENEMY_GREEN_DAMAGE; score = Constants.SCORE_GREEN_TRIANGLE; powerup = false; bigExplosion = true; explodeSound = "Sound_Explode_000"; turnRate = 0.05; threshold = 0.05; angleThreshold = 0.1; ease = 8; super(); radius = 15; position = setOffscreenPosition(radius); angle = position.angle; ax = position.ax; ay = position.ay; player = Core.getInstance().ship; energy = (Constants.ENERGY_GREEN_TRIANGLE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); energyMax = (Constants.ENERGY_GREEN_TRIANGLE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); _frames = Constants.ROTATION_ENEMY_FRAMES; sprite = Sprites.getInstance().greenTriangleSprite; speed = (Constants.SPEED_GREEN_TRIANGLE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_SPEED_RATE)); vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); spinRate = -1; if (Math.random() > 0.5){ spinRate = 1; }; } override public function render():void{ ax = (ax + vx); ay = (ay + vy); frame = (frame + spinRate); if (frame > _frames){ frame = 0; } else { if (frame < 0){ frame = _frames; }; }; angleToTarget = getDirection(); if (angleToTarget > threshold){ angle = (angle + turnRate); } else { if (angleToTarget < -(threshold)){ angle = (angle - turnRate); }; }; vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); } function getDirection(){ var _local1:*; angle = (angle % Constants.PI2); angleTarget = Math.atan2((player.ay - ay), (player.ax - ax)); if (angleTarget < 0){ angleTarget = (angleTarget + Constants.PI2); }; _local1 = (angleTarget - angle); if (_local1 > Math.PI){ _local1 = (_local1 - Constants.PI2); } else { if (_local1 < -(Math.PI)){ _local1 = (_local1 + Constants.PI2); }; }; return (_local1); } } }//package enemies
Section 24
//Hexagon (enemies.Hexagon) package enemies { import player.*; public class Hexagon extends Enemy { private var psycho:Boolean;// = false public var score:int; private var position:Object; public var explodeSound:String;// = "Sound_Explode_001" public var strikeRate:int; public var shardType; private var angleTarget:Number; private var spinRate:int; private var timer:int;// = 0 private var speed:Number; private var angle:Number; private var _frames:int; public var powerup:Boolean;// = false private var player:Player; private var h:Number; private var i:int; public var damage:Number; private var strikeRateCounter:int;// = 0 public var bigExplosion:Boolean;// = true private var w:Number; public function Hexagon(){ strikeRate = (Constants.ENEMY_HEXAGON_STRIKERATE - Core.getInstance().levelManager.LevelReal); shardType = Constants.SHARD_PALEBLUE; damage = Constants.ENEMY_HEXAGON_DAMAGE; score = Constants.SCORE_HEXAGON; bigExplosion = true; powerup = false; explodeSound = "Sound_Explode_001"; timer = 0; psycho = false; strikeRateCounter = 0; super(); radius = 15; position = setOffscreenPosition(radius); angle = position.angle; ax = position.ax; ay = position.ay; player = Core.getInstance().ship; energy = (Constants.ENERGY_HEXAGON + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); energyMax = (Constants.ENERGY_HEXAGON + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); _frames = Constants.ROTATION_ENEMY_FRAMES; sprite = Sprites.getInstance().hexagonSprite; speed = (((Constants.SPEED_HEXAGON * Math.random()) + Constants.SPEED_HEXAGON) + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_SPEED_RATE)); if (Math.random() > 0.5){ speed = (speed * -1); }; vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); spinRate = -1; if (Math.random() > 0.5){ spinRate = 1; }; } override public function render():void{ ax = (ax + vx); ay = (ay + vy); checkBoundaries(); timer++; if ((((timer > Constants.ENEMY_HEXAGON_PSYCHO_TIMER)) && (!(psycho)))){ psycho = true; spinRate = (spinRate * 4); strikeRate = Constants.ENEMY_HEXAGON_PSYCHO_STRIKERATE; }; frame = (frame + spinRate); if (frame > _frames){ frame = 0; } else { if (frame < 0){ frame = _frames; }; }; strikeRateCounter++; if (strikeRateCounter > strikeRate){ strikeRateCounter = 0; SoundManager.getInstance().playSound("Sound_Missile"); angleTarget = Math.atan2((player.ay - ay), (player.ax - ax)); if (angleTarget < 0){ angleTarget = (angleTarget + Constants.PI2); }; Core.getInstance().enemyManager.fireMissile(ax, ay, angleTarget); }; } } }//package enemies
Section 25
//Missile (enemies.Missile) package enemies { import player.*; public class Missile extends Enemy { public var score:int; private var steps:int; private var position:Object; public var explodeSound:String;// = "Sound_Explode_005" public var shardType; private var spinRate:int; private var _frames:int; private var speed:Number; private var angle:Number; private var step:int; public var powerup:Boolean;// = false private var player:Player; private var h:Number; private var i:int; public var damage:Number; public var bigExplosion:Boolean;// = false private var w:Number; public function Missile(_arg1:Number, _arg2:Number, _arg3:Number){ shardType = Constants.SHARD_PALEBLUE; damage = Constants.ENEMY_MISSILE_DAMAGE; score = Constants.SCORE_MISSILE; powerup = false; bigExplosion = false; explodeSound = "Sound_Explode_005"; steps = Constants.ENEMY_MISSILE_TIMER; super(); radius = 4; angle = _arg3; ax = _arg1; ay = _arg2; _frames = Constants.ROTATION_ENEMY_FRAMES; frame = (((_frames * angle) / Constants.PI2) >> 0); energy = Constants.ENERGY_MISSILE; energyMax = Constants.ENERGY_MISSILE; sprite = Sprites.getInstance().missileSprite; speed = (Constants.SPEED_MISSILE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_SPEED_RATE)); vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); } override public function render():void{ ax = (ax + vx); ay = (ay + vy); step++; if (step > steps){ energy = 0; }; } } }//package enemies
Section 26
//RedSquare (enemies.RedSquare) package enemies { import player.*; public class RedSquare extends Enemy { public var score:int; private var position:Object; public var explodeSound:String;// = "Sound_Explode_004" public var shardType; private var spinRate:int; private var _frames:int; private var speed:Number; private var angle:Number; public var powerup:Boolean;// = true private var player:Player; private var h:Number; private var i:int; public var damage:Number; public var bigExplosion:Boolean;// = true private var w:Number; public function RedSquare(){ shardType = Constants.SHARD_RED; damage = (Constants.ENEMY_RED_DAMAGE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); score = Constants.SCORE_RED_SQUARE; powerup = true; bigExplosion = true; explodeSound = "Sound_Explode_004"; super(); radius = 15; position = setOffscreenPosition(radius); angle = position.angle; ax = position.ax; ay = position.ay; player = Core.getInstance().ship; energy = (Constants.ENERGY_RED_SQUARE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); energyMax = (Constants.ENERGY_RED_SQUARE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); _frames = Constants.ROTATION_ENEMY_FRAMES; sprite = Sprites.getInstance().redSquareSprite; speed = Constants.SPEED_RED_SQUARE; vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); spinRate = -1; if (Math.random() > 0.5){ spinRate = 1; }; } override public function render():void{ ax = (ax + vx); ay = (ay + vy); checkBoundaries(); frame = (frame + spinRate); if (frame > _frames){ frame = 0; } else { if (frame < 0){ frame = _frames; }; }; } } }//package enemies
Section 27
//SnakeHead (enemies.SnakeHead) package enemies { import player.*; public class SnakeHead extends Enemy { public var score:int; private var position:Object; public var explodeSound:String;// = "Sound_Explode_003" public var shardType; private var angleTarget:Number; private var _frames:int; private var speed:Number; private var angle:Number; private var angleToTarget:Number; public var powerup:Boolean;// = false private var player:Player; private var h:Number; private var i:int; public var damage:Number; private var threshold;// = 0.04 public var bigExplosion:Boolean;// = true private var turnRate:Number;// = 0.04 private var w:Number; public function SnakeHead(){ shardType = Constants.SHARD_RED; damage = Constants.ENEMY_SNAKE_DAMAGE; score = Constants.SCORE_SNAKE_HEAD; powerup = false; bigExplosion = true; explodeSound = "Sound_Explode_003"; turnRate = 0.04; threshold = 0.04; super(); radius = 15; position = setOffscreenPosition(radius); angle = position.angle; ax = position.ax; ay = position.ay; player = Core.getInstance().ship; energy = (Constants.ENERGY_SNAKE_HEAD + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); energyMax = (Constants.ENERGY_SNAKE_HEAD + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); _frames = Constants.ROTATION_ENEMY_FRAMES; sprite = Sprites.getInstance().snakeHeadSprite; speed = (Constants.SPEED_SNAKE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_SPEED_RATE)); vx = 0; vy = 0; } override public function render():void{ ax = (ax + vx); ay = (ay + vy); angleToTarget = getDirection(); if (angleToTarget > threshold){ angle = (angle + turnRate); } else { if (angleToTarget < -(threshold)){ angle = (angle - turnRate); }; }; vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); if (angle > Constants.PI2){ angle = (angle - Constants.PI2); } else { if (angle < 0){ angle = (angle + Constants.PI2); }; }; frame = (((_frames * angle) / Constants.PI2) >> 0); } function getDirection(){ var _local1:*; angle = (angle % Constants.PI2); angleTarget = Math.atan2((player.ay - ay), (player.ax - ax)); if (angleTarget < 0){ angleTarget = (angleTarget + Constants.PI2); }; _local1 = (angleTarget - angle); if (_local1 > Math.PI){ _local1 = (_local1 - Constants.PI2); } else { if (_local1 < -(Math.PI)){ _local1 = (_local1 + Constants.PI2); }; }; return (_local1); } } }//package enemies
Section 28
//SnakeSegment (enemies.SnakeSegment) package enemies { import player.*; public class SnakeSegment extends Enemy { public var score:int; private var position:Object; public var explodeSound:String;// = "Sound_Explode_003" public var shardType; private var angleTarget:Number; public var Parent:Enemy; private var _frames:int; private var speed:Number; private var angle:Number;// = 0.785398163397448 private var angleToTarget:Number; public var powerup:Boolean;// = false private var player:Player; private var h:Number; private var i:int; public var damage:Number; private var threshold;// = 0.025 public var bigExplosion:Boolean;// = false private var turnRate:Number;// = 0.025 private var w:Number; public function SnakeSegment(){ shardType = Constants.SHARD_YELLOW; damage = Constants.ENEMY_SNAKE_DAMAGE; score = Constants.SCORE_SNAKE_SEGMENT; bigExplosion = false; explodeSound = "Sound_Explode_003"; powerup = false; speed = (2 + ((Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE) / 5)); angle = (Math.PI / 4); turnRate = 0.025; threshold = 0.025; super(); destroyable = false; radius = 12; position = setOffscreenPosition(radius); angle = position.angle; ax = position.ax; ay = position.ay; player = Core.getInstance().ship; energy = (Constants.ENERGY_SNAKE_SEGMENT + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); energyMax = (Constants.ENERGY_SNAKE_SEGMENT + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); _frames = Constants.ROTATION_ENEMY_FRAMES; sprite = Sprites.getInstance().snakeSegmentSprite; speed = (Constants.SPEED_SNAKE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_SPEED_RATE)); vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); } override public function render():void{ var _local1:*; var _local2:*; var _local3:*; if (Parent.energy <= 0){ destroyable = true; ax = (ax + vx); ay = (ay + vy); angleToTarget = getDirection(); if (angleToTarget > threshold){ angle = (angle + turnRate); } else { if (angleToTarget < -(threshold)){ angle = (angle - turnRate); }; }; vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); } else { _local1 = (ax - Parent.ax); _local2 = (ay - Parent.ay); _local3 = Math.sqrt(((_local1 * _local1) + (_local2 * _local2))); ax = (Parent.ax + ((_local1 / _local3) * radius)); ay = (Parent.ay + ((_local2 / _local3) * radius)); angle = Math.atan2((Parent.ay - ay), (Parent.ax - ax)); }; if (angle > Constants.PI2){ angle = (angle - Constants.PI2); } else { if (angle < 0){ angle = (angle + Constants.PI2); }; }; frame = (((_frames * angle) / Constants.PI2) >> 0); } function getDirection(){ var _local1:*; angle = (angle % Constants.PI2); angleTarget = Math.atan2((player.ay - ay), (player.ax - ax)); if (angleTarget < 0){ angleTarget = (angleTarget + Constants.PI2); }; _local1 = (angleTarget - angle); if (_local1 > Math.PI){ _local1 = (_local1 - Constants.PI2); } else { if (_local1 < -(Math.PI)){ _local1 = (_local1 + Constants.PI2); }; }; return (_local1); } } }//package enemies
Section 29
//YellowTriangle (enemies.YellowTriangle) package enemies { import flash.display.*; import player.*; import com.foxaweb.utils.*; public class YellowTriangle extends Enemy { private var px:Number; private var py:Number; private var DistancePointLine:Number; private var position:Object; private var ix:Number; private var iy:Number; private var colourArrayLength:int; public var shardType; private var range:Number; private var spinRate:int; private var speed:Number; public var powerup:Boolean;// = false private var h:Number; private var i:int; public var damage:Number; private var u:Number; private var w:Number; private var zapCounter:int;// = 0 private var dy:Number; public var score:int; private var dx:Number; private var LineMag:Number; public var explodeSound:String;// = "Sound_Explode_005" public var strikeRate:int; private var x1:Number; private var x2:Number; private var strikeDamage:Number; public var Parent:Enemy; private var strikeBitmapData:BitmapData; private var _frames:int; private var zapCounterMax:int;// = 4 private var angle:Number; private var y1:Number; private var y2:Number; private var colour:Number; private var player:Player; private var colourArray:Array; private var strikeRateCounter:int;// = 0 public var bigExplosion:Boolean;// = true public function YellowTriangle(){ strikeRate = Constants.ENEMY_YELLOW_STRIKERATE; shardType = Constants.SHARD_YELLOW; damage = Constants.ENEMY_YELLOW_DAMAGE; score = Constants.SCORE_YELLOW_TRIANGLE; bigExplosion = true; powerup = false; explodeSound = "Sound_Explode_005"; colourArray = [4294967295, 4294770436, 4294958592, 4294957056]; colourArrayLength = colourArray.length; strikeRateCounter = 0; strikeDamage = (Constants.ENEMY_YELLOW_STRIKE_DAMAGE + (Core.getInstance().levelManager.LevelReal / 2)); zapCounter = 0; zapCounterMax = 4; super(); radius = 8; position = setOffscreenPosition(radius); angle = position.angle; ax = position.ax; ay = position.ay; player = Core.getInstance().ship; strikeBitmapData = Core.getInstance().enemyManager.getBitmapData(); energy = (Constants.ENERGY_YELLOW_TRIANGLE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); energyMax = (Constants.ENERGY_YELLOW_TRIANGLE + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_RATE)); _frames = Constants.ROTATION_ENEMY_FRAMES; sprite = Sprites.getInstance().yellowTriangleSprite; speed = (((Constants.SPEED_YELLOW_TRIANGLE * Math.random()) + Constants.SPEED_YELLOW_TRIANGLE) + (Core.getInstance().levelManager.LevelReal * Constants.ENEMY_SPEED_RATE)); if (Math.random() > 0.5){ speed = (speed * -1); }; vx = (Math.cos(angle) * speed); vy = (Math.sin(angle) * speed); spinRate = -1; if (Math.random() > 0.5){ spinRate = 1; }; } override public function render():void{ var lineMagnitude:Function; lineMagnitude = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (Math.sqrt((((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2))))); }; ax = (ax + vx); ay = (ay + vy); checkBoundaries(); frame = (frame + spinRate); if (frame > _frames){ frame = 0; } else { if (frame < 0){ frame = _frames; }; }; strikeRateCounter++; if (strikeRateCounter > strikeRate){ zapCounter++; if (zapCounter > zapCounterMax){ strikeRateCounter = 0; zapCounter = 0; }; if (Parent.energy > 0){ dx = (ax - Parent.ax); dy = (ay - Parent.ay); range = Math.sqrt(((dx * dx) + (dy * dy))); if (range < Constants.ENEMY_YELLOW_STRIKE_RANGE){ colour = colourArray[((Math.random() * colourArrayLength) >> 0)]; Raster.line(strikeBitmapData, ax, ay, Parent.ax, Parent.ay, colour); }; px = player.ax; py = player.ay; x1 = ax; y1 = ay; x2 = Parent.ax; y2 = Parent.ay; LineMag = lineMagnitude(x1, y1, x2, y2); u = (((px - x1) * (x2 - x1)) + ((py - y1) * (y2 - y1))); u = (u / (LineMag * LineMag)); if ((((u < 1E-5)) || ((u > 1)))){ ix = lineMagnitude(px, py, x1, y1); iy = lineMagnitude(px, py, x2, y2); if (ix > iy){ DistancePointLine = iy; } else { DistancePointLine = ix; }; } else { ix = (x1 + (u * (x2 - x1))); iy = (y1 + (u * (y2 - y1))); DistancePointLine = lineMagnitude(px, py, ix, iy); }; if (DistancePointLine < player.radius){ player.energyDrain(strikeDamage); }; }; }; } } }//package enemies
Section 30
//Explosion (explosions.Explosion) package explosions { import flash.display.*; import com.markfennell.display.*; public class Explosion { public var vx:Number; public var vy:Number; private var shardNumber:int; private var shardSpeed:Number; private var shardSprite:BitmapSprite; public var remove:Boolean;// = false private var step:int;// = 0 private var speed:Number;// = 30 private var shardArray:Array; private var minSpeed:Number;// = 8 private var shard:Shard; private var smartShard:SmartShard; private var steps:int; private var i:int; public var x:Number; public var y:Number; private var ExplosionBitmapData:BitmapData; private var smartBombSpeed:Number;// = 40 public function Explosion(_arg1:Number, _arg2:Number, _arg3:Array, _arg4:Array, _arg5:BitmapSprite, _arg6:BitmapData, _arg7:Boolean, _arg8:Boolean){ remove = false; speed = 30; minSpeed = 8; smartBombSpeed = 40; step = 0; shardArray = []; super(); ExplosionBitmapData = _arg6; shardSprite = _arg5; x = _arg1; y = _arg2; if (_arg7){ shardNumber = Constants.ROTATION_FRAMES_SMARTBOMB; } else { shardNumber = Constants.ROTATION_FRAMES_EXPLOSION; }; i = 0; while (i < shardNumber) { if (_arg7){ steps = Constants.EXPLOSION_SMART_SIZE; shardSpeed = smartBombSpeed; smartShard = new SmartShard(x, y, (_arg4[i] * shardSpeed), (_arg3[i] * shardSpeed)); shardArray.push(smartShard); } else { if (!_arg8){ steps = Constants.EXPLOSION_SMALL_SIZE; } else { steps = Constants.EXPLOSION_NORMAL_SIZE; }; shardSpeed = ((Math.random() * speed) + minSpeed); shard = new Shard(x, y, (_arg4[i] * shardSpeed), (_arg3[i] * shardSpeed)); shardArray.push(shard); }; i++; }; } public function render():void{ step++; if (step > steps){ step = steps; remove = true; } else { i = 0; while (i < shardNumber) { shard = shardArray[i]; shard.render(); shardSprite.draw(ExplosionBitmapData, shard.x, shard.y, i); i++; }; }; } } }//package explosions
Section 31
//ExplosionManager (explosions.ExplosionManager) package explosions { import flash.display.*; import flash.filters.*; import flash.geom.*; public class ExplosionManager extends Sprite { private var angleInc; public var shardArray; private var explosion:Explosion; private var stageRectangle:Rectangle; private var renderExplosion:Explosion; private var shardSmartXArray:Array; private var explosionSpeed;// = 2 private var shardXArray:Array; private var explosionArray:Array; private var ExplosionBitmapData:BitmapData; private var explosionArrayLength:int;// = 0 private var i:int; private var h:Number; private var w:Number; private var fade:Number;// = 0.9 private var filter:BitmapFilter; private var ExplosionBitmap:Bitmap; private var frames; private var matrix:Array; private var angle:Number; private var shardSmartYArray:Array; private var shardYArray:Array; public function ExplosionManager(_arg1:BitmapData){ shardArray = [Sprites.getInstance().shardSpriteBlue, Sprites.getInstance().shardSpritePurple, Sprites.getInstance().shardSpritePaleBlue, Sprites.getInstance().shardSpriteYellow, Sprites.getInstance().shardSpriteGreen, Sprites.getInstance().shardSpriteRed, Sprites.getInstance().shardSpriteWhite]; frames = Constants.ROTATION_FRAMES_EXPLOSION; angleInc = (Constants.PI2 - ((2 * Math.PI) / frames)); fade = 0.9; shardXArray = []; shardYArray = []; shardSmartXArray = []; shardSmartYArray = []; explosionSpeed = 2; explosionArray = new Array(); explosionArrayLength = 0; super(); w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; ExplosionBitmapData = new BitmapData(w, h, true, 0); ExplosionBitmap = new Bitmap(ExplosionBitmapData); stageRectangle = new Rectangle(0, 0, w, h); addChild(ExplosionBitmap); angle = (Constants.PI2 / Constants.ROTATION_FRAMES_EXPLOSION); i = 0; while (i < Constants.ROTATION_FRAMES_EXPLOSION) { shardXArray.push(Math.sin((angle * i))); shardYArray.push(Math.cos((angle * i))); i++; }; angle = (Constants.PI2 / Constants.ROTATION_FRAMES_SMARTBOMB); i = 0; while (i < Constants.ROTATION_FRAMES_SMARTBOMB) { shardSmartXArray.push(Math.sin((angle * i))); shardSmartYArray.push(Math.cos((angle * i))); i++; }; } public function smartBomb(_arg1:Number, _arg2:Number){ explosion = new Explosion(_arg1, _arg2, shardSmartXArray, shardSmartYArray, shardArray[Constants.SMART_BOMB_SHARD], ExplosionBitmapData, true, false); explosionArray.push(explosion); } public function createExplosion(_arg1:Number, _arg2:Number, _arg3:int, _arg4:Boolean){ explosion = new Explosion(_arg1, _arg2, shardXArray, shardYArray, shardArray[_arg3], ExplosionBitmapData, false, _arg4); explosionArray.push(explosion); } public function render(){ ExplosionBitmapData.fillRect(stageRectangle, 0); explosionArrayLength = explosionArray.length; while (explosionArrayLength--) { renderExplosion = explosionArray[explosionArrayLength]; if (renderExplosion.remove){ explosionArray.splice(explosionArrayLength, 1); } else { renderExplosion.render(); }; }; } } }//package explosions
Section 32
//Shard (explosions.Shard) package explosions { public class Shard { public var vx:Number; public var vy:Number; private var easex:Number; private var easey:Number; private var ease:Number;// = 10 public var x:Number; public var y:Number; public function Shard(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ ease = 10; super(); x = _arg1; y = _arg2; vx = _arg3; vy = _arg4; } public function render():void{ x = (x + vx); y = (y + vy); } } }//package explosions
Section 33
//SmartShard (explosions.SmartShard) package explosions { public class SmartShard extends Shard { private var easex:Number; private var easey:Number; private var ease:Number;// = 20 public function SmartShard(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ ease = 20; super(_arg1, _arg2, _arg3, _arg4); x = _arg1; y = _arg2; vx = _arg3; vy = _arg4; easex = (-(vx) / ease); easey = (-(vy) / ease); } override public function render():void{ x = (x + vx); y = (y + vy); } } }//package explosions
Section 34
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.geom.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 35
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import fl.controls.*; import flash.events.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 36
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 37
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 38
//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.events.*; import flash.utils.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 39
//Button (fl.controls.Button) package fl.controls { import fl.core.*; import flash.display.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 40
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 41
//ComboBox (fl.controls.ComboBox) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.geom.*; import fl.data.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var _dropdownWidth:Number; protected var highlightedCell:int;// = -1 protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var currentIndex:int; protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var inputField:TextInput; protected var listOverIndex:uint; protected var editableValue:String; protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; public function ComboBox(){ _rowCount = 5; _editable = false; isOpen = false; highlightedCell = -1; isKeyDown = false; super(); } protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function get dropdown():List{ return (list); } public function get dropdownWidth():Number{ return (list.width); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } public function get selectedItem():Object{ return (list.selectedItem); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function get labelField():String{ return (list.labelField); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:uint; var _local4:Number; var _local5:int; isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); _local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); _local3 = selectedIndex; _local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function onListItemUp(_arg1:MouseEvent):void{ var _local2:*; stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; _local2 = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } protected function showPrompt():void{ inputField.text = _prompt; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function get restrict():String{ return (inputField.restrict); } protected function setEmbedFonts():void{ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function get length():int{ return (list.length); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } public function get labelFunction():Function{ return (list.labelFunction); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get selectedIndex():int{ return (list.selectedIndex); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } public function get text():String{ return (inputField.text); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } override protected function draw():void{ var _local1:*; _local1 = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } protected function positionList():void{ var _local1:Point; _local1 = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } public function get prompt():String{ return (_prompt); } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (getStyleValue("buttonWidth") as Number); _local2 = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get textField():TextInput{ return (inputField); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function drawTextFormat():void{ var _local1:TextFormat; _local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controls
Section 42
//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 43
//List (fl.controls.List) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.geom.*; import fl.managers.*; import flash.utils.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 44
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 45
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 46
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 47
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import fl.data.*; import fl.managers.*; import fl.events.*; import flash.utils.*; import fl.containers.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 48
//TextInput (fl.controls.TextInput) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 49
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 50
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 51
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.utils.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 52
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); //unresolved jump }; if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; throw (new TypeError((("Error: Type Coercion failed: cannot convert " + _arg1) + " to Array or DataProvider."))); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 53
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 54
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 55
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 56
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 57
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 58
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 59
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 60
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 61
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 62
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 63
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 64
//Lightning (lightning.Lightning) package lightning { import flash.display.*; import flash.filters.*; import flash.geom.*; import com.foxaweb.utils.*; public class Lightning extends Sprite { private var curColor;// = 4289374975 private var stageRectangle:Rectangle; private var curNbrBolts;// = 1 private var h:Number; private var i:int; private var fade:Number;// = 0.7 private var filter:BitmapFilter; private var LightningBitmap:Bitmap; public var curDisplace;// = 100 private var w:Number; private var curDetail;// = 1 private var filter1:BitmapFilter; private var matrix:Array; private var LightningBitmapData:BitmapData; private var filter0:BitmapFilter; public function Lightning(_arg1){ curDisplace = 100; curNbrBolts = 1; curColor = 4289374975; curDetail = 1; fade = 0.7; super(); w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; curNbrBolts = _arg1; LightningBitmapData = new BitmapData(w, h, true, 0); LightningBitmap = new Bitmap(LightningBitmapData); stageRectangle = new Rectangle(0, 0, w, h); addChild(LightningBitmap); } public function remove(){ LightningBitmapData.fillRect(stageRectangle, 0); } public function lightningBolt(_arg1, _arg2, _arg3, _arg4){ LightningBitmapData.fillRect(stageRectangle, 0); i = 0; while (i < curNbrBolts) { strike(_arg1, _arg2, _arg3, _arg4, curDisplace); i++; }; } public function strike(_arg1, _arg2, _arg3, _arg4, _arg5){ var _local6:*; var _local7:*; if (_arg5 < curDetail){ Raster.line(LightningBitmapData, _arg1, _arg2, _arg3, _arg4, curColor); } else { _local6 = ((_arg3 + _arg1) / 2); _local7 = ((_arg4 + _arg2) / 2); _local6 = (_local6 + ((Math.random() - 0.5) * _arg5)); _local7 = (_local7 + ((Math.random() - 0.5) * _arg5)); strike(_arg1, _arg2, _local6, _local7, (_arg5 / 2)); strike(_arg3, _arg4, _local6, _local7, (_arg5 / 2)); }; } } }//package lightning
Section 65
//Bullet (player.Bullet) package player { public class Bullet { private var h:Number; public var vx:Number; public var vy:Number; private var _frames:Number; private var step:Number; public var radius:Number;// = 3.5 private var angle:Number; public var killMe:Boolean;// = false private var speed:Number;// = 15 private var steps:Number;// = 25 public var frame:Number; public var damage:Number;// = 10 public var mass:Number;// = 1 public var ax:Number; public var ay:Number; private var w:Number; public function Bullet(_arg1, _arg2, _arg3){ radius = 3.5; killMe = false; mass = 1; damage = 10; speed = 15; steps = 25; _frames = Constants.ROTATION_FRAMES_PLAYER; super(); ax = _arg1; ay = _arg2; w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; vx = (Math.cos(_arg3) * speed); vy = (Math.sin(_arg3) * speed); step = 0; frame = (((_frames * _arg3) / Constants.PI2) >> 0); } public function setSpeed(_arg1:Number){ speed = _arg1; } public function render():void{ checkBoundaries(); ax = (ax + vx); ay = (ay + vy); step++; if (step > steps){ killMe = true; }; } public function getDamage(){ return (damage); } public function setDamage(_arg1:Number){ damage = _arg1; } public function checkBoundaries(){ if ((ax + radius) < 0){ killMe = true; } else { if ((ax - radius) > w){ killMe = true; }; }; if ((ay + radius) < 0){ killMe = true; } else { if ((ay - radius) > h){ killMe = true; }; }; } } }//package player
Section 66
//BulletManager (player.BulletManager) package player { import flash.display.*; import asteroids.*; import com.markfennell.display.*; public class BulletManager extends Sprite { private var ydiff:Number; private var bullet:Bullet; private var BulletCount:int;// = 0 private var fireRateBase:int;// = 5 private var fireRate:int; private var ax:Number; private var ay:Number; private var BulletBitmapData:BitmapData; private var ship:Player; private var isFiring:Boolean;// = false private var BulletArray:Array; private var bulletMassEffect;// = 0.001 private var i:int;// = 0 private var range:Number; private var h:Number; private var w:Number; private var angleOffset; private var asteroidArray:Array; private var xdiff:Number; private var dist:Number; private var enemyArray:Array; private var asteroid:Asteroid; private var enemy:Object; private var vx:Number; private var vy:Number; private var angle:Number; private var fireRateCounter:int;// = 0 private var asteroidArrayLength:Number; private var enemyArrayLength:Number; private var bulletBitmapSprite:BitmapSprite; public function BulletManager(_arg1:BitmapData){ BulletArray = new Array(); BulletCount = 0; i = 0; fireRateCounter = 0; fireRateBase = 5; angleOffset = (Constants.PI2 / Constants.ROTATION_FRAMES_PLAYER); bulletMassEffect = 0.001; isFiring = false; super(); w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; BulletBitmapData = _arg1; bulletBitmapSprite = Sprites.getInstance().bulletSprite; fireRate = fireRateBase; ship = Core.getInstance().ship; } public function createBullet(){ isFiring = true; ax = ship.ax; ay = ship.ay; angle = ship.angle; if (fireRateCounter == 0){ SoundManager.getInstance().playSound("Sound_Bullet"); if (ship.sideShot){ makeBullet((angle - (Math.PI / 2))); makeBullet((angle + (Math.PI / 2))); }; switch (ship.getBullets()){ case 2: makeBullet((angle - angleOffset)); makeBullet((angle + angleOffset)); break; case 3: makeBullet(angle); makeBullet((angle - angleOffset)); makeBullet((angle + angleOffset)); break; case 4: makeBullet((angle - angleOffset)); makeBullet((angle + angleOffset)); makeBullet((angle - (angleOffset + angleOffset))); makeBullet((angle + (angleOffset + angleOffset))); break; case 5: makeBullet(angle); makeBullet((angle - angleOffset)); makeBullet((angle + angleOffset)); makeBullet((angle - (angleOffset + angleOffset))); makeBullet((angle + (angleOffset + angleOffset))); break; default: makeBullet(angle); break; }; }; } public function reset(){ fireRateCounter = 0; isFiring = false; } public function getBullets(){ return (BulletArray); } public function makeBullet(_arg1:Number){ _arg1 = normaliseAngle(_arg1); bullet = new Bullet(ax, ay, _arg1); BulletArray.push(bullet); } public function render(){ asteroidArray = Core.getInstance().asteroidsManager.getAsteroids(); enemyArray = Core.getInstance().enemyManager.getEnemies(); if (isFiring){ fireRateCounter++; fireRateCounter = (fireRateCounter % fireRate); }; BulletCount = BulletArray.length; while (BulletCount--) { bullet = BulletArray[BulletCount]; asteroidArrayLength = asteroidArray.length; i = 0; while (i < asteroidArrayLength) { asteroid = asteroidArray[i]; xdiff = (asteroid.ax - bullet.ax); ydiff = (asteroid.ay - bullet.ay); range = (bullet.radius + asteroid.radius); if (xdiff < range){ if (ydiff < range){ dist = Math.sqrt(((xdiff * xdiff) + (ydiff * ydiff))); if (dist <= range){ bullet.killMe = true; asteroid.vx = (asteroid.vx + (bullet.vx * bulletMassEffect)); asteroid.vy = (asteroid.vy + (bullet.vy * bulletMassEffect)); asteroid.energy = (asteroid.energy - ship.getBulletDamage()); asteroid.energyDisplayTimer = Constants.ENERGY_DISPLAY_TIME; }; }; }; i++; }; enemyArrayLength = enemyArray.length; i = 0; while (i < enemyArrayLength) { enemy = enemyArray[i]; if (enemy.destroyable){ xdiff = (enemy.ax - bullet.ax); ydiff = (enemy.ay - bullet.ay); range = (bullet.radius + enemy.radius); if (xdiff < range){ if (ydiff < range){ dist = Math.sqrt(((xdiff * xdiff) + (ydiff * ydiff))); if (dist <= range){ bullet.killMe = true; enemy.energy = (enemy.energy - ship.getBulletDamage()); enemy.energyDisplayTimer = Constants.ENERGY_DISPLAY_TIME; }; }; }; }; i++; }; bullet.render(); if (bullet.killMe){ delete BulletArray[BulletCount]; BulletArray.splice(BulletCount, 1); } else { bulletBitmapSprite.draw(BulletBitmapData, BulletArray[BulletCount].ax, BulletArray[BulletCount].ay, BulletArray[BulletCount].frame); }; }; } public function setFirerate(_arg1:Number){ fireRate = _arg1; } public function normaliseAngle(_arg1:Number){ if (_arg1 < 0){ _arg1 = (_arg1 + Constants.PI2); }; if (_arg1 > Constants.PI2){ _arg1 = (_arg1 - Constants.PI2); }; return (_arg1); } } }//package player
Section 67
//HeadsupDisplay (player.HeadsupDisplay) package player { import flash.display.*; import com.markfennell.display.*; import flash.text.*; public class HeadsupDisplay extends Sprite { private var lives:int; private var healthBar:MovieClip; private var bombText:TextField; private var bombs:int; private var nextLevelDisplay:MovieClip; private var ship:Player; private var scoreLength:int;// = 9 private var energy:int; public var score:int; private var fx:Fx; private var healthBarWidth:Number; private var hud:MovieClip; private var healthBarMaxWidth:Number; public function HeadsupDisplay(){ lives = Constants.PLAYER_LIVES; bombs = Constants.PLAYER_BOMBS; scoreLength = 9; fx = new Fx(); super(); hud = new HeadsUp(); addChild(hud); healthBarMaxWidth = hud.healthBar.width; ship = Core.getInstance().ship; nextLevelDisplay = hud.levelUp; nextLevelDisplay.y = 1000; score = 0; update(); } public function setLevel(){ hud.levelText.text = fx.padScore((Core.getInstance().levelManager.LevelReal + 1), 2); } public function setScore(){ hud.scoreText.text = fx.padScore(score, scoreLength); } public function reset(){ score = 0; healthBarWidth = healthBarMaxWidth; hud.healthBar.width = healthBarWidth; lives = Constants.PLAYER_LIVES; } public function nextLevel(){ fx.zoomIn(nextLevelDisplay, 0, 0.25, nextLevelDisplay.x, 1000, nextLevelDisplay.x, 300, 20, "easeOut", fadeDisplay); setLevel(); } public function addScore(_arg1:int){ score = (score + _arg1); setScore(); } public function setHealth(){ energy = ship.energy; hud.healthBar.width = ((healthBarMaxWidth * energy) / Constants.ENERGY_PLAYER); } public function setSmart(){ bombs = ship.smart; hud.bombText.text = fx.padScore(bombs, 2); } public function fadeDisplay(){ fx.zoomIn(nextLevelDisplay, 0.5, 0.25, nextLevelDisplay.x, 300, nextLevelDisplay.x, -1000, 10, "easeIn", null); Core.getInstance().levelManager.nextLevel(); } public function setLives(){ lives = ship.lives; hud.livesText.text = fx.padScore(lives, 2); } public function update(){ setScore(); setLives(); setSmart(); setHealth(); } } }//package player
Section 68
//Player (player.Player) package player { import flash.display.*; import com.markfennell.display.*; import lightning.*; public class Player extends Sprite { public var lives:int; public var isShielded:Boolean;// = false private var minEngineForce:Number; public var mass:Number; private var drag:Number;// = 0.0033 public var ax:Number; public var ay:Number; public var type:int;// = 3 public var spinRate:int;// = 0 public var numBullets:Number;// = 1 public var speed:Number;// = 0 public var shieldTimer:int;// = 0 private var playerBitmapData:BitmapData; private var shield:MovieClip; private var playerBitmapSprite:BitmapSprite; private var frame:int;// = 0 public var spawnTimer:int; public var energy:int; public var radius:Number; private var w:Number; public var numMissiles:Number;// = 0 public var vx:Number;// = 0 public var vy:Number;// = 0 private var maxEngineForce:Number; public var smart:int; public var turnSpeed:Number; private var _frames:int; private var engineForce:Number; public var isSpawning:Boolean;// = true public var angle:Number;// = 0 private var lightning:Lightning; private var h:Number; private var playerSpawnAnimation:MovieClip; public var turnUpgrade:Boolean;// = false public var sideShot:Boolean;// = false private var velocityAngle:Number; private var engineForceAcc:Number; public function Player(_arg1:BitmapData){ energy = Constants.ENERGY_PLAYER; angle = 0; speed = 0; lives = Constants.PLAYER_LIVES; smart = Constants.PLAYER_BOMBS; sideShot = false; vx = 0; vy = 0; isSpawning = true; isShielded = false; spawnTimer = Constants.PLAYER_SPAWN_TIMER; shieldTimer = 0; numBullets = 1; numMissiles = 0; radius = Constants.PLAYER_RADIUS; mass = Constants.PLAYER_MASS; spinRate = 0; type = 3; turnUpgrade = false; drag = 0.0033; frame = 0; _frames = Constants.ROTATION_FRAMES_PLAYER; super(); w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; playerSpawnAnimation = new src_spawn(); playerSpawnAnimation.x = (w / 2); playerSpawnAnimation.y = (h / 2); Core.getInstance().addChild(playerSpawnAnimation); playerBitmapData = _arg1; playerBitmapSprite = Sprites.getInstance().playerSprite; turnSpeed = ((Constants.PI2 / Constants.ROTATION_FRAMES_PLAYER) * Constants.PLAYER_TURN_RATE); engineForceAcc = Constants.PLAYER_FORCE_ACCELERATION; maxEngineForce = Constants.PLAYER_FORCE_MAX; minEngineForce = Constants.PLAYER_FORCE_REVERSE_MAX; lightning = Core.getInstance().lightning; lightning.curDisplace = Constants.PLAYER_LIGHTNING_DISPLACE; reset(); playerSpawnAnimation.gotoAndPlay("spawn"); } public function removeShield(){ Core.getInstance().removeChild(shield); shieldTimer = 0; isShielded = false; } public function right(){ if (!isSpawning){ angle = (angle + turnSpeed); }; } public function left(){ if (!isSpawning){ angle = (angle - turnSpeed); }; } public function addLife(){ lives++; Core.getInstance().hud.update(); } public function energyDrain(_arg1:int){ if (((!(isShielded)) && (!(isSpawning)))){ energy = (energy - _arg1); Core.getInstance().hud.update(); }; } public function addShield(){ if (!isShielded){ shield = new src_shield(); shield.x = ax; shield.y = ay; Core.getInstance().addChild(shield); shieldTimer = Constants.PLAYER_SHIELD_TIME; isShielded = true; }; } public function reset(){ energy = Constants.ENERGY_PLAYER; numBullets = 1; numMissiles = 0; sideShot = false; ax = (w / 2); ay = (h / 2); angle = 0; vx = (vy = 0); spawnTimer = Constants.PLAYER_SPAWN_TIMER; isSpawning = true; engineForce = 0; } public function checkBoundaries(){ if ((ax + radius) < 0){ ax = (ax + (w + (2 * radius))); } else { if ((ax - radius) > w){ ax = (ax - (w + (2 * radius))); }; }; if ((ay + radius) < 0){ ay = (ay + (h + (2 * radius))); } else { if ((ay - radius) > h){ ay = (ay - (h + (2 * radius))); }; }; } public function getBullets(){ return (numBullets); } public function addEnergy(){ energy = Constants.ENERGY_PLAYER; Core.getInstance().hud.update(); } public function render(){ var _local1:*; var _local2:*; var _local3:*; physics(); checkBoundaries(); if (shieldTimer > 0){ shieldTimer--; shield.x = ax; shield.y = ay; if (shieldTimer == 0){ removeShield(); shieldTimer = -1; }; }; if (spawnTimer > 0){ spawnTimer--; _local1 = ((Math.random() * Math.PI) * 2); _local2 = ((Constants.STAGE_WIDTH / 2) + (Math.sin(_local1) * Constants.STAGE_OFFSCREEN_RADIUS)); _local3 = ((Constants.STAGE_HEIGHT / 2) + (Math.cos(_local1) * Constants.STAGE_OFFSCREEN_RADIUS)); lightning.lightningBolt(_local2, _local3, ax, ay); if (spawnTimer == 0){ isSpawning = false; spawnTimer = -1; lightning.remove(); addShield(); }; } else { if (angle < 0){ angle = (angle + Constants.PI2); }; if (angle > Constants.PI2){ angle = (angle - Constants.PI2); }; frame = (((_frames * angle) / Constants.PI2) >> 0); playerBitmapSprite.draw(playerBitmapData, ax, ay, frame); if (energy <= 0){ Core.getInstance().explosionManager.createExplosion(ax, ay, Constants.SHARD_PALEBLUE, true); lives--; if (lives < 0){ Core.getInstance().gameOver(); } else { turnSpeed = ((Constants.PI2 / Constants.ROTATION_FRAMES_PLAYER) * Constants.PLAYER_TURN_RATE); turnUpgrade = false; vx = (vy = 0); angle = 0; numBullets = Math.max(Math.min(3, numBullets), (numBullets - 1)); sideShot = false; lightning.curDisplace = Constants.PLAYER_LIGHTNING_DISPLACE; isSpawning = true; spawnTimer = Constants.PLAYER_SPAWN_TIMER; playerSpawnAnimation.x = ax; playerSpawnAnimation.y = ay; playerSpawnAnimation.gotoAndPlay("spawn"); SoundManager.getInstance().playSound("Sound_Spawn"); energy = Constants.ENERGY_PLAYER; Core.getInstance().hud.update(); }; }; }; } public function getBulletDamage(){ return (Constants.PLAYER_BULLET_DAMAGE); } public function addSmart(){ smart++; Core.getInstance().hud.update(); } public function physics(){ vx = (vx * 0.99); vy = (vy * 0.99); ax = (ax + vx); ay = (ay + vy); } public function deccelerate(){ if (!isSpawning){ if (engineForce > 0){ engineForce = 0; }; engineForce = (engineForce - engineForceAcc); if (engineForce < minEngineForce){ engineForce = minEngineForce; }; speed = Math.sqrt(((vx * vx) + (vy * vy))); velocityAngle = Math.atan2(vy, vx); vx = (vx + ((Math.cos(angle) * engineForce) - ((drag * vx) * speed))); vy = (vy + ((Math.sin(angle) * engineForce) - ((drag * vy) * speed))); }; } public function addTurn(){ turnSpeed = ((Constants.PI2 / Constants.ROTATION_FRAMES_PLAYER) * Constants.PLAYER_TURN_RATE_MAX); turnUpgrade = true; } public function accelerate(){ if (!isSpawning){ if (engineForce < 0){ engineForce = 0; }; engineForce = (engineForce + engineForceAcc); if (engineForce > maxEngineForce){ engineForce = maxEngineForce; }; speed = Math.sqrt(((vx * vx) + (vy * vy))); velocityAngle = Math.atan2(vy, vx); vx = (vx + ((Math.cos(angle) * engineForce) - ((drag * vx) * speed))); vy = (vy + ((Math.sin(angle) * engineForce) - ((drag * vy) * speed))); }; } public function setBullets(_arg1:Number){ numBullets = _arg1; } } }//package player
Section 69
//Powerup (player.Powerup) package player { import flash.display.*; import flash.events.*; public class Powerup extends MovieClip { public var id:int; public var ay:Number;// = 0 public var ax:Number;// = 0 public var radius:Number; public var type:String; public var powerupDisplay:MovieClip; public var killMe:Boolean;// = false public var powerupTimer:int;// = 0 public function Powerup(_arg1:String, _arg2:Number, _arg3:Number){ ax = 0; ay = 0; radius = Constants.POWERUP_RADIUS; killMe = false; powerupTimer = 0; super(); powerupDisplay = new src_powerup(); type = _arg1; switch (_arg1){ case "shield": id = 1; break; case "points": id = 7; break; case "life": id = 6; break; case "smart": id = 5; break; case "bullet": id = 4; break; case "sideshot": id = 3; break; case "energy": id = 2; break; case "turn": id = 8; break; }; powerupDisplay.powerup.gotoAndStop(id); addChild(powerupDisplay); powerupDisplay.addEventListener(Event.ENTER_FRAME, loop); ax = _arg2; ay = _arg3; } private function loop(_arg1:Event){ powerupTimer++; if (powerupTimer > Constants.POWERUP_TIMER){ killMe = true; }; powerupDisplay.powerup.ring.rotation = (powerupDisplay.powerup.ring.rotation + 2); } } }//package player
Section 70
//PowerupManager (player.PowerupManager) package player { import flash.display.*; public class PowerupManager extends Sprite { private var ydiff:Number; private var powerupArrayLength:int; public var ax:Number; public var ay:Number; private var ship:Player; private var type:String; private var range:Number; private var sideshotScarcity:Number;// = 0.8 private var powerup:Powerup; private var i:int;// = 0 private var smartScarcity:Number;// = 0.8 private var powerupDisplayed:Boolean;// = false private var xdiff:Number; private var lifeScarcity:Number;// = 0.8 private var dist:Number; private var missileScarcity:Number;// = 0.8 private var powerupTypeArray:Array; private var powerupArray:Array; public function PowerupManager(){ powerupDisplayed = false; powerupArray = []; i = 0; missileScarcity = 0.8; lifeScarcity = 0.8; sideshotScarcity = 0.8; smartScarcity = 0.8; super(); ship = Core.getInstance().ship; } public function render(){ powerupArrayLength = powerupArray.length; while (powerupArrayLength--) { powerup = powerupArray[powerupArrayLength]; if (powerup != null){ if (powerup.killMe){ powerup = powerupArray[powerupArrayLength]; delete powerupArray[powerupArrayLength]; powerupArray.splice(powerupArrayLength, 1); removeChild(powerup); } else { xdiff = (powerup.ax - ship.ax); ydiff = (powerup.ay - ship.ay); range = (powerup.radius + ship.radius); if (xdiff < range){ if (ydiff < range){ dist = Math.sqrt(((xdiff * xdiff) + (ydiff * ydiff))); if (dist <= range){ SoundManager.getInstance().playSound("Sound_Powerup"); switch (powerup.type){ case "shield": ship.addShield(); break; case "energy": ship.addEnergy(); break; case "sideshot": ship.sideShot = true; break; case "bullet": ship.numBullets++; break; case "smart": ship.addSmart(); break; case "life": ship.addLife(); break; case "points": Core.getInstance().hud.addScore(Constants.PLAYER_POWERUP_POINTS); break; case "turn": ship.addTurn(); break; }; powerup = powerupArray[powerupArrayLength]; delete powerupArray[powerupArrayLength]; powerupArray.splice(powerupArrayLength, 1); removeChild(powerup); }; }; }; }; }; }; } public function createPowerup(_arg1:Number, _arg2:Number){ if (_arg1 < Constants.POWERUP_RADIUS){ _arg1 = (_arg1 + Constants.POWERUP_RADIUS); }; if (_arg2 < Constants.POWERUP_RADIUS){ _arg2 = (_arg2 + Constants.POWERUP_RADIUS); }; if (_arg1 > (Constants.STAGE_WIDTH - Constants.POWERUP_RADIUS)){ _arg1 = (_arg1 - Constants.POWERUP_RADIUS); }; if (_arg2 > (Constants.STAGE_HEIGHT - Constants.POWERUP_RADIUS)){ _arg2 = (_arg2 - Constants.POWERUP_RADIUS); }; powerupDisplayed = true; powerupTypeArray = []; if (ship.numBullets < Constants.PLAYER_MAX_BULLETS){ powerupTypeArray.push("bullet"); }; if (((!(ship.sideShot)) && ((Math.random() > sideshotScarcity)))){ powerupTypeArray.push("sideshot"); }; if (!ship.turnUpgrade){ powerupTypeArray.push("turn"); }; if (Core.getInstance().levelManager.LevelCurrent > 3){ if (Math.random() > lifeScarcity){ powerupTypeArray.push("life"); }; if (Math.random() > smartScarcity){ powerupTypeArray.push("smart"); }; powerupTypeArray.push("points"); }; if (Core.getInstance().levelManager.LevelCurrent > 2){ if (!ship.isShielded){ powerupTypeArray.push("shield"); }; if (ship.energy < Constants.ENERGY_PLAYER){ powerupTypeArray.push("energy"); }; }; type = powerupTypeArray[Math.floor((Math.random() * powerupTypeArray.length))]; powerup = new Powerup(type, _arg1, _arg2); powerup.x = _arg1; powerup.y = _arg2; addChild(powerup); powerupArray.push(powerup); } } }//package player
Section 71
//Thrust (player.Thrust) package player { import com.markfennell.math.*; public class Thrust { public var vx:Number; public var vy:Number; private var _frames:Number; private var easex:Number; private var easey:Number; private var step:Number; public var angle:Number; public var killMe:Boolean;// = false private var angleJitter:Number;// = 0.1 private var steps:Number;// = 20 public var speed:Number;// = 10 public var frame:Number; private var ease:Number;// = 20 public var ax:Number; public var ay:Number; public function Thrust(_arg1, _arg2, _arg3){ killMe = false; speed = 10; angleJitter = 0.1; steps = 20; ease = 20; _frames = Constants.ROTATION_FRAMES_PLAYER; super(); angle = (_arg3 + Math.PI); angle = (angle + (((Math.random() * 2) * angleJitter) - angleJitter)); speed = ((Math.random() * speed) + speed); ax = _arg1; ay = _arg2; if (angle < 0){ angle = (angle + Constants.PI2); }; if (angle > Constants.PI2){ angle = (angle - Constants.PI2); }; vx = (FastTrig.fastCos(angle) * speed); vy = (FastTrig.fastSin(angle) * speed); easex = (-(vx) / ease); easey = (-(vy) / ease); step = 0; frame = (((_frames * _arg3) / Constants.PI2) >> 0); } public function render():void{ ax = (ax + vx); ay = (ay + vy); vx = (vx + easex); vy = (vy + easey); step++; if (step > steps){ killMe = true; }; } } }//package player
Section 72
//ThrustManager (player.ThrustManager) package player { import flash.display.*; import com.markfennell.display.*; import flash.filters.*; import flash.geom.*; public class ThrustManager extends Sprite { private var stageRectangle:Rectangle; public var ax:Number;// = 0 public var ay:Number;// = 0 private var ship:Player; private var thrustBitmapSprite:BitmapSprite; private var thrust:Thrust; private var i:int;// = 0 private var h:Number; private var w:Number; private var fade:Number;// = 0.8 private var filter:BitmapFilter; private var thrustCount:int;// = 0 private var thrustBitmap:Bitmap; private var matrix:Array; public var vx:Number; public var vy:Number; public var angle:Number; private var thrustArray:Array; private var thrustBitmapData:BitmapData; public function ThrustManager(_arg1:BitmapData){ ax = 0; ay = 0; thrustArray = new Array(); thrustCount = 0; i = 0; fade = 0.8; super(); w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; thrustBitmapData = new BitmapData(w, h, true, 0); thrustBitmap = new Bitmap(thrustBitmapData); addChild(thrustBitmap); stageRectangle = new Rectangle(0, 0, w, h); thrustBitmapSprite = Sprites.getInstance().thrustSprite; filter = new BlurFilter(20, 20, 1); } public function createThrust(){ ship = Core.getInstance().ship; thrust = new Thrust(ship.ax, ship.ay, ship.angle); thrustArray.push(thrust); thrust = new Thrust(ship.ax, ship.ay, ship.angle); thrustArray.push(thrust); thrust = new Thrust(ship.ax, ship.ay, ship.angle); thrustArray.push(thrust); thrust = new Thrust(ship.ax, ship.ay, ship.angle); thrustArray.push(thrust); thrust = new Thrust(ship.ax, ship.ay, ship.angle); thrustArray.push(thrust); thrust = new Thrust(ship.ax, ship.ay, ship.angle); thrustArray.push(thrust); } public function render(){ thrustBitmapData.fillRect(stageRectangle, 0); thrustCount = thrustArray.length; while (thrustCount--) { thrust = thrustArray[thrustCount]; thrust.render(); if (thrust.killMe){ delete thrustArray[thrustCount]; thrustArray.splice(thrustCount, 1); } else { thrustBitmapSprite.draw(thrustBitmapData, thrustArray[thrustCount].ax, thrustArray[thrustCount].ay, thrustArray[thrustCount].frame); }; }; } } }//package player
Section 73
//Explosion (preloader.Explosion) package preloader { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; public class Explosion { private var particle:Particle; private var particleRectangle:Rectangle; private var STAGE:Stage; private var x:Number; private var stageRectangle:Rectangle; private var stageBitmapData:BitmapData; private var particleCycle:Number;// = 0 private var particleBitmapDataArray:Array; private var blurAmount:Number;// = 10 private var particleBitmapData:BitmapData; private var particleCount:int; private var origin:Point; private var particleExplosion:Boolean;// = false private var whiteBitmap:Bitmap; private var blurFilter:BlurFilter; private var matrix:Array; private var fireColors:Array; private var stageBitmap:Bitmap; private var particleHeight:Number;// = 80 private var bufferBitmapData:BitmapData; private var particleWidth:Number;// = 80 private var i:int;// = 0 private var particlePerCycle:Number;// = 20 private var particleCycles:Number;// = 5 private var particleBitmapMatrix:Matrix; private var y:Number; private var particleArray:Array; private var fade:Number;// = 0.93 private var filter:BitmapFilter; public function Explosion(_arg1:Number, _arg2:Number, _arg3:Stage){ particleArray = new Array(); i = 0; origin = new Point(0, 0); fade = 0.93; blurAmount = 10; particleBitmapDataArray = []; particleWidth = 80; particleHeight = 80; particlePerCycle = 20; particleCycle = 0; particleCycles = 5; particleExplosion = false; super(); STAGE = _arg3; stageBitmapData = new BitmapData(_arg1, _arg2, true, 4281545523); bufferBitmapData = new BitmapData(_arg1, _arg2, false, 0); stageRectangle = new Rectangle(0, 0, _arg1, _arg2); stageBitmap = new Bitmap(stageBitmapData); STAGE.addChild(stageBitmap); matrix = new Array(); matrix = matrix.concat([1, 0, 0, 0, 0]); matrix = matrix.concat([0, 1, 0, 0, 0]); matrix = matrix.concat([0, 0, 1, 0, 0]); matrix = matrix.concat([0, 0, 0, fade, 0]); filter = new ColorMatrixFilter(matrix); blurFilter = new BlurFilter(blurAmount, blurAmount, 1); fireColors = Gradient.getArray([0x333333, 0x333333, 0x333333, 0xFF4400, 0xFFFF00, 0xFFFFFF], [0x333333, 0x333333, 1, 1, 1, 1], [0, 34, 68, 85, 136, 0xFF]); particleBitmapMatrix = new Matrix(); particleBitmapMatrix.tx = (particleWidth / 2); particleBitmapMatrix.ty = (particleHeight / 2); particleBitmapData = new BitmapData(particleWidth, particleHeight, true, 0); particleBitmapData.draw(new starMC(), particleBitmapMatrix); STAGE.addEventListener(Event.ENTER_FRAME, render); } public function render(_arg1:Event){ if (particleExplosion){ i = 0; while (i < particlePerCycle) { particle = new Particle(x, y); particleArray.push(particle); i++; }; particleCycle++; if (particleCycle > particleCycles){ particleExplosion = false; particleCycle = 0; }; }; particleCount = particleArray.length; if (particleCount == 0){ STAGE.removeChild(stageBitmap); STAGE.removeEventListener(Event.ENTER_FRAME, render); Root.credits(); }; while (particleCount--) { particle = particleArray[particleCount]; particle.render(); if (particle.killMe){ delete particleArray[particleCount]; particleArray.splice(particleCount, 1); } else { bufferBitmapData.copyPixels(particleBitmapData, new Rectangle(0, 0, particleWidth, particleHeight), new Point(particle.x, particle.y)); }; }; stageBitmapData.copyPixels(bufferBitmapData, stageRectangle, origin); bufferBitmapData.applyFilter(bufferBitmapData, stageRectangle, origin, filter); bufferBitmapData.applyFilter(bufferBitmapData, stageRectangle, origin, blurFilter); stageBitmapData.paletteMap(stageBitmapData, stageRectangle, origin, fireColors, [], [], []); } public function createExplosion(_arg1:Number, _arg2:Number){ x = _arg1; y = _arg2; particleExplosion = true; } } }//package preloader
Section 74
//Gradient (preloader.Gradient) package preloader { import flash.display.*; import flash.geom.*; public class Gradient { private static const IDENTITY:Matrix = new Matrix(); public static function getArray(_arg1:Array, _arg2:Array, _arg3:Array):Array{ var _local4:Array; var _local5:Shape; var _local6:Matrix; var _local7:BitmapData; var _local8:Graphics; var _local9:uint; var _local10:int; _local4 = new Array(); _local5 = new Shape(); _local6 = new Matrix(); _local7 = new BitmapData(0x0100, 1, true, 0); _local8 = _local5.graphics; _local6.createGradientBox(0x0100, 0x0100, 0, 0, 0); _local8.clear(); _local8.beginGradientFill("linear", _arg1, _arg2, _arg3, _local6); _local8.drawRect(0, 0, 0x0100, 0x0100); _local8.endFill(); _local7.draw(_local5, IDENTITY); _local10 = 0; while (_local10 < 0x0100) { _local9 = _local7.getPixel32(_local10, 0); _local4.push(_local9); _local10++; }; return (_local4); } } }//package preloader
Section 75
//Particle (preloader.Particle) package preloader { public class Particle { public var vx:Number; public var vy:Number; public var spin:Number;// = 0 public var step:Number;// = 0 public var spinRate:int; public var gravity:Number; public var killMe:Boolean;// = false public var spinMax:int;// = 360 public var steps:Number; public var x:Number; public var y:Number; public function Particle(_arg1:Number, _arg2:Number){ step = 0; spin = 0; spinMax = 360; killMe = false; super(); steps = ((Math.random() * 40) + 20); x = _arg1; y = _arg2; spin = int((Math.random() * spinMax)); spinRate = 0; gravity = (0.45 + (Math.random() * 2)); vx = (Math.random() * 30); if (Math.random() > 0.5){ vx = (vx * -1); }; vy = ((Math.random() * -40) + 10); } public function render():void{ vy = (vy + gravity); vx = (vx * 0.98); x = (x + vx); y = (y + vy); spin = (spin + spinRate); if (spin < 0){ spin = (spin + spinMax); } else { if (spin > spinMax){ spin = (spin - spinMax); }; }; step++; if (step > steps){ killMe = true; }; } } }//package preloader
Section 76
//Star (starfield.Star) package starfield { public class Star { public var depth:Number; public var colour:Number; public var ax:Number; public var ay:Number; public function Star(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ ax = _arg1; ay = _arg2; depth = _arg3; colour = _arg4; } } }//package starfield
Section 77
//Starfield (starfield.Starfield) package starfield { import flash.display.*; import flash.filters.*; import flash.geom.*; import player.*; public class Starfield extends Sprite { private var depths:int; private var StarfieldBitmap:Bitmap; private var stageRectangle:Rectangle; private var colours:Array; private var ax:Number; private var ay:Number; private var star:Star; private var i:int; private var h:Number; private var StarfieldBitmapData:BitmapData; private var w:Number; private var numStars:int;// = 200 private var fade:Number;// = 0.9 private var filter:BitmapFilter; private var starsArray:Array; private var target:Object; private var starsArrayLength:int;// = 0 private var margin:Number;// = 200 private var matrix:Array; private var vy:Number; private var vx:Number; private var depth:int; private var colour:Number; private var fov:Number;// = 0.05 private var player:Player; public function Starfield(){ fade = 0.9; starsArray = new Array(); starsArrayLength = 0; numStars = 200; colours = [4281809584, 4288396018, 4280370308, 4278190301, 4278190335, 4293980400]; fov = 0.05; margin = 200; super(); depths = colours.length; w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; StarfieldBitmapData = new BitmapData(w, h, true, 0); StarfieldBitmap = new Bitmap(StarfieldBitmapData); stageRectangle = new Rectangle(0, 0, w, h); addChild(StarfieldBitmap); player = Core.getInstance().ship; i = 0; while (i < numStars) { ax = ((Math.random() * (w + (2 * margin))) - margin); ay = ((Math.random() * (h + (2 * margin))) - margin); depth++; depth = (depth % depths); colour = ((Math.random() * depths) >> 0); star = new Star(ax, ay, (depth + 1), colours[colour]); starsArray.push(star); i++; }; } public function render(){ StarfieldBitmapData.fillRect(stageRectangle, 0); vx = -(player.vx); vy = -(player.vy); i = 0; while (i < numStars) { star = starsArray[i]; star.ax = (star.ax + ((vx * star.depth) * fov)); star.ay = (star.ay + ((vy * star.depth) * fov)); if (star.ax < 0){ star.ax = (star.ax + w); }; if (star.ax > w){ star.ax = (star.ax - w); }; if (star.ay < 0){ star.ay = (star.ay + h); }; if (star.ay > w){ star.ay = (star.ay - h); }; colour = star.colour; if (Math.random() > 0.999){ colour = 4294967295; }; StarfieldBitmapData.setPixel32(star.ax, star.ay, colour); i++; }; } } }//package starfield
Section 78
//StarfieldMouse (starfield.StarfieldMouse) package starfield { import flash.display.*; import flash.filters.*; import flash.geom.*; public class StarfieldMouse extends Sprite { private var depths:int; private var oldY:Number; private var StarfieldBitmap:Bitmap; private var stageRectangle:Rectangle; private var oldX:Number; private var colours:Array; private var ax:Number; private var ay:Number; private var star:Star; private var i:int; private var h:Number; private var StarfieldBitmapData:BitmapData; private var w:Number; private var numStars:int;// = 200 private var fade:Number;// = 0.9 private var filter:BitmapFilter; private var starsArray:Array; private var target:Object; private var starsArrayLength:int;// = 0 private var margin:Number;// = 200 private var matrix:Array; private var vy:Number; private var vx:Number; private var depth:int; private var colour:Number; private var fov:Number;// = 0.05 public function StarfieldMouse(){ fade = 0.9; starsArray = new Array(); starsArrayLength = 0; numStars = 200; colours = [4281809584, 4288396018, 4280370308, 4278190301, 4278190335, 4293980400]; fov = 0.05; margin = 200; super(); depths = colours.length; w = Constants.STAGE_WIDTH; h = Constants.STAGE_HEIGHT; StarfieldBitmapData = new BitmapData(w, h, true, 0); StarfieldBitmap = new Bitmap(StarfieldBitmapData); stageRectangle = new Rectangle(0, 0, w, h); addChild(StarfieldBitmap); i = 0; while (i < numStars) { ax = ((Math.random() * (w + (2 * margin))) - margin); ay = ((Math.random() * (h + (2 * margin))) - margin); depth++; depth = (depth % depths); colour = ((Math.random() * depths) >> 0); star = new Star(ax, ay, (depth + 1), colours[colour]); starsArray.push(star); i++; }; oldX = mouseX; oldY = mouseY; } public function render(){ StarfieldBitmapData.fillRect(stageRectangle, 0); vx = (mouseX - oldX); vy = (mouseY - oldY); oldX = mouseX; oldY = mouseY; i = 0; while (i < numStars) { star = starsArray[i]; star.ax = (star.ax + ((vx * star.depth) * fov)); star.ay = (star.ay + ((vy * star.depth) * fov)); if (star.ax < 0){ star.ax = (star.ax + w); }; if (star.ax > w){ star.ax = (star.ax - w); }; if (star.ay < 0){ star.ay = (star.ay + h); }; if (star.ay > w){ star.ay = (star.ay - h); }; colour = star.colour; if (Math.random() > 0.999){ colour = 4294967295; }; StarfieldBitmapData.setPixel32(star.ax, star.ay, colour); i++; }; } } }//package starfield
Section 79
//EnergyBar (utilities.EnergyBar) package utilities { import flash.display.*; import flash.geom.*; public class EnergyBar { private var borderRectangle:Rectangle; private var fillRectangle:Rectangle; private var energyRectangle:Rectangle; private var barWidth:int; private var barHeight:int;// = 5 private var energyWidth:int; private var healthBarMultiplier:Number;// = 0.15 public function EnergyBar(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:BitmapData){ barHeight = 5; healthBarMultiplier = 0.15; super(); barWidth = ((_arg4 * healthBarMultiplier) >> 0); borderRectangle = new Rectangle(_arg1, _arg2, barWidth, barHeight); fillRectangle = new Rectangle((_arg1 + 1), (_arg2 + 1), (barWidth - 2), (barHeight - 2)); energyWidth = (((_arg3 / _arg4) * barWidth) >> 0); energyRectangle = new Rectangle((_arg1 + 1), (_arg2 + 1), (energyWidth - 2), (barHeight - 2)); _arg5.fillRect(borderRectangle, 4294967295); _arg5.fillRect(fillRectangle, 0); _arg5.fillRect(energyRectangle, 4294901760); } } }//package utilities
Section 80
//FPS (utilities.FPS) package utilities { import flash.events.*; import flash.text.*; import flash.utils.*; public class FPS extends TextField { private var ms:int; private var fs:int; public function FPS(_arg1){ var _local2:TextFormat; super(); _local2 = new TextFormat(); _local2.color = 0xFFFFFF; _local2.size = 10; _local2.bold = true; _local2.font = "Verdana"; textColor = 0xCECECE; autoSize = "left"; defaultTextFormat = _local2; ms = getTimer(); fs = 0; _arg1.addEventListener(Event.ENTER_FRAME, loop); } private function loop(_arg1:Event):void{ if ((getTimer() - 1000) > ms){ ms = getTimer(); text = fs.toString(); fs = 0; } else { fs++; }; } } }//package utilities
Section 81
//logo_85 (vector_fla.logo_85) package vector_fla { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import preloader.*; import flash.net.*; import flash.system.*; import flash.ui.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class logo_85 extends MovieClip { public var link:MovieClip; public var guide:MovieClip; public var explosion; public var mc_bomb:MovieClip; public function logo_85(){ addFrameScript(0, frame1, 65, frame66); } function frame1(){ this.x = 300; this.y = 250; } function frame66(){ explosion = new Explosion(stage.stageWidth, stage.stageHeight, stage); explosion.createExplosion((this.x - 200), (this.y - 30)); stop(); } } }//package vector_fla
Section 82
//mc_bomb_86 (vector_fla.mc_bomb_86) package vector_fla { import flash.display.*; public dynamic class mc_bomb_86 extends MovieClip { public var guide:MovieClip; public function mc_bomb_86(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package vector_fla
Section 83
//powerUp_61 (vector_fla.powerUp_61) package vector_fla { import flash.display.*; public dynamic class powerUp_61 extends MovieClip { public var ring:MovieClip; } }//package vector_fla
Section 84
//score_105 (vector_fla.score_105) package vector_fla { import flash.display.*; public dynamic class score_105 extends MovieClip { public var scores:scoreboard; } }//package vector_fla
Section 85
//score_106 (vector_fla.score_106) package vector_fla { import flash.display.*; public dynamic class score_106 extends MovieClip { public function score_106(){ addFrameScript(22, frame23); } function frame23(){ stop(); } } }//package vector_fla
Section 86
//score_107 (vector_fla.score_107) package vector_fla { import flash.display.*; public dynamic class score_107 extends MovieClip { public function score_107(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package vector_fla
Section 87
//scoreboard_110 (vector_fla.scoreboard_110) package vector_fla { import flash.display.*; public dynamic class scoreboard_110 extends MovieClip { public var bar:MovieClip; } }//package vector_fla
Section 88
//shield_63 (vector_fla.shield_63) package vector_fla { import flash.display.*; public dynamic class shield_63 extends MovieClip { public var ring:MovieClip; public function shield_63(){ addFrameScript(11, frame12); } function frame12(){ stop(); } } }//package vector_fla
Section 89
//asteroidBig0 (asteroidBig0) package { import flash.display.*; public dynamic class asteroidBig0 extends MovieClip { } }//package
Section 90
//asteroidBig1 (asteroidBig1) package { import flash.display.*; public dynamic class asteroidBig1 extends MovieClip { } }//package
Section 91
//asteroidMid0 (asteroidMid0) package { import flash.display.*; public dynamic class asteroidMid0 extends MovieClip { } }//package
Section 92
//asteroidMid1 (asteroidMid1) package { import flash.display.*; public dynamic class asteroidMid1 extends MovieClip { } }//package
Section 93
//asteroidMid2 (asteroidMid2) package { import flash.display.*; public dynamic class asteroidMid2 extends MovieClip { } }//package
Section 94
//asteroidSmall0 (asteroidSmall0) package { import flash.display.*; public dynamic class asteroidSmall0 extends MovieClip { } }//package
Section 95
//asteroidSmall1 (asteroidSmall1) package { import flash.display.*; public dynamic class asteroidSmall1 extends MovieClip { } }//package
Section 96
//asteroidSmall2 (asteroidSmall2) package { import flash.display.*; public dynamic class asteroidSmall2 extends MovieClip { } }//package
Section 97
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 98
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 99
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 100
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 101
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 102
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 103
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 104
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 105
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 106
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 107
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 108
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 109
//Constants (Constants) package { import flash.geom.*; public class Constants { public static var ENEMY_YELLOW_DAMAGE = 25; public static var MUSIC:String = "catherine48.mp3"; public static var ENEMY_HEXAGON_PSYCHO_STRIKERATE = 20; public static var PLAYER_LIVES = 3; public static var SPEED_GREEN_TRIANGLE = 2; public static var STAGE_WIDTH = 600; public static var EXPLOSION_NORMAL_SIZE = 15; public static var PLAYER_TURN_RATE_MAX = 3; public static var ROTATION_FRAMES_SMARTBOMB = 110; public static var PLAYER_SHIELD_SPIN_RATE = 2; public static var SHARD_YELLOW = 3; public static var STAGE_OFFSCREEN_RADIUS = 400; public static var PLAYER_BOMBS = 2; public static var ENEMY_MISSILE_TIMER = 120; public static var URL_MORE_GAMES = "http://www.blastone.com/"; public static var SHARD_GREEN = 4; public static var ORIGIN = new Point(0, 0); public static var ENEMY_SPEED_RATE = 0.15; public static var SCORE_HEXAGON = 1250; public static var ENEMY_RED_DAMAGE = 80; public static var STAGE_RECTANGLE = new Rectangle(0, 0, 600, 600); public static var SMART_BOMB_SHARD = 6; public static var PLAYER_MAX_BULLETS = 5; public static var SCORE_MISSILE = 50; public static var SHARD_BLUE = 0; public static var SPEED_BLUE_TRIANGLE = 4; public static var ROTATION_FRAMES_EXPLOSION = 72; public static var SCORE_BLUE_TRIANGLE = 500; public static var SPEED_SNAKE = 2.5; public static var ENEMY_HEXAGON_DAMAGE = 60; public static var IS_VANILLA:Boolean = false; public static var ENEMY_YELLOW_STRIKERATE = 10; public static var ENERGY_HEXAGON = 150; public static var PLAYER_MAX_MISSILES = 2; public static var ENERGY_MISSILE = 10; public static var SCORE_GREEN_TRIANGLE = 250; public static var PLAYER_LIGHTNING_DISPLACE = 300; public static var SHARDS = 5; public static var ENEMY_RATE = 12; public static var PI2 = 6.28318530717959; public static var SHARD_PURPLE = 1; public static var EXPLOSION_SMART_SIZE = 30; public static var SPEED_YELLOW_TRIANGLE = 1; public static var POWERUP_TIMER = 400; public static var PLAYER_BULLET_DAMAGE = 20; public static var ENEMY_HEXAGON_STRIKERATE = 80; public static var POWERUP_RADIUS = 15; public static var ROTATION_FRAMES_ASTEROID = 200; public static var SHARD_RED = 5; public static var ENERGY_PLAYER = 400; public static var ENERGY_GREEN_TRIANGLE = 150; public static var ENERGY_SNAKE_SEGMENT = 150; public static var ROTATION_ENEMY_FRAMES = 200; public static var URL_SUBMIT_SCORE = "http://www.blastone.com/games/vector/submit.php"; public static var PLAYER_SHIELD_TIME = 160; public static var ENEMY_MISSILE_DAMAGE = 30; public static var ROTATION_FRAMES = 72; public static var ENEMY_YELLOW_STRIKE_DAMAGE = 10; public static var PLAYER_TURN_RATE = 2; public static var ENEMY_HEXAGON_PSYCHO_TIMER = 120; public static var URL_HIGH_SCORE = "http://www.blastone.com/games/vector/showscores.php"; public static var ROTATION_FRAMES_PLAYER = 144; public static var ENEMY_LIGHTNING_DAMAGE = 3; public static var ENEMY_BLUE_DAMAGE = 30; public static var SCORE_RED_SQUARE = 200; public static var ENERGY_DISPLAY_TIME:int = 40; public static var SCORE_SNAKE_HEAD = 1250; public static var ENEMY_MAX_YELLOWSEGMENTS = 3; public static var STAGE_HEIGHT = 600; public static var DEG_TO_RAD = 0.0174532925199433; public static var RAD_TO_DEG = 57.2957795130823; public static var SCORE_YELLOW_TRIANGLE = 500; public static var PLAYER_RADIUS = 8; public static var PLAYER_MASS = 250; public static var ENERGY_SNAKE_HEAD = 150; public static var ENERGY_YELLOW_TRIANGLE = 150; public static var ENEMY_LIGHTNING_STRIKERATE = 100; public static var PLAYER_FORCE_ACCELERATION = 0.02; public static var PLAYER_LIGHTNING_NORMAL = 100; public static var SPEED_RED_SQUARE = 3; public static var ENERGY_RED_SQUARE = 100; public static var ENEMY_GREEN_DAMAGE = 35; public static var ENERGY_BLUE_TRIANGLE = 150; public static var EXPLOSION_SMALL_SIZE = 5; public static var SHARD_PALEBLUE = 2; public static var PLAYER_POWERUP_POINTS = 2500; public static var SPEED_HEXAGON = 2; public static var URL_GAME = "http://www.blastone.com/games/vector"; public static var PLAYER_SPAWN_TIMER = 50; public static var ENEMY_SNAKE_DAMAGE = 20; public static var ENEMY_MAX_SNAKESEGMENTS = 15; public static var PLAYER_FORCE_MAX = 0.4; public static var ENEMY_YELLOW_STRIKE_RANGE = 600; public static var PLAYER_FORCE_REVERSE_MAX = -0.3; public static var SPEED_MISSILE = 7; public static var SCORE_SNAKE_SEGMENT = 250; } }//package
Section 110
//Controls (Controls) package { import flash.display.*; import flash.events.*; import flash.text.*; import flash.net.*; public class Controls extends MovieClip { public var btnPause:SimpleButton; public var btnSound:SimpleButton; public var btnMusic:SimpleButton; private var soundToggle:Boolean; public var textPause:TextField; private var musicToggle:Boolean; public var textSound:TextField; public var btnBlastone:SimpleButton; private var pauseToggle:Boolean;// = false public var textMusic:TextField; public function Controls(){ var myThis:*; var url:Function; var soundDisplay:Function; var musicDisplay:Function; var toggleSound:Function; var toggleMusic:Function; var togglePause:Function; pauseToggle = false; super(); url = function (){ var _local1:URLRequest; _local1 = new URLRequest(Constants.URL_MORE_GAMES); navigateToURL(_local1, "_blank"); }; soundDisplay = function (){ if (!soundToggle){ textSound.text = "SOUND OFF"; } else { textSound.text = "SOUND ON"; }; }; musicDisplay = function (){ if (!musicToggle){ textMusic.text = "MUSIC OFF"; } else { textMusic.text = "MUSIC ON"; }; }; toggleSound = function (){ soundToggle = !(soundToggle); if (!soundToggle){ SoundManager.getInstance().soundsEnabled = false; } else { SoundManager.getInstance().soundsEnabled = true; }; soundDisplay(); }; toggleMusic = function (){ musicToggle = !(musicToggle); if (!musicToggle){ SoundManager.getInstance().stopMusic(); } else { SoundManager.getInstance().startMusic(); }; musicDisplay(); }; togglePause = function (){ if (!pauseToggle){ pauseToggle = true; textPause.text = "RESUME"; Core.getInstance().pause = true; } else { pauseToggle = false; textPause.text = "PAUSE"; Core.getInstance().pause = false; }; }; myThis = this; musicToggle = SoundManager.getInstance().musicEnabled; soundToggle = SoundManager.getInstance().soundsEnabled; soundDisplay(); musicDisplay(); myThis.btnMusic.addEventListener(MouseEvent.CLICK, toggleMusic); myThis.btnSound.addEventListener(MouseEvent.CLICK, toggleSound); myThis.btnPause.addEventListener(MouseEvent.CLICK, togglePause); myThis.btnBlastone.addEventListener(MouseEvent.CLICK, url); } } }//package
Section 111
//Core (Core) package { import flash.display.*; import flash.events.*; import enemies.*; import asteroids.*; import flash.filters.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import player.*; import starfield.*; import utilities.*; import explosions.*; import lightning.*; import flash.ui.*; public class Core extends Sprite { public var enemyManager:EnemyManager; private var gameBitmapData:BitmapData; private var keyCode:int; private var shipTurningLeft:Boolean;// = false private var stageRectangle:Rectangle; public var powerupManager:PowerupManager; private var shipTurningRight:Boolean;// = false public var thrustManager:ThrustManager; public var ship:Player; private var shipAccelerate:Boolean;// = false public var bulletManager:BulletManager; private var gameManager:GameManager; public var sprites:Sprites; public var asteroidsManager:AsteroidManager; private var shipAutoFiring:Boolean; private var filter:BitmapFilter; public var levelManager:LevelManager; private var gameBitmap:Bitmap; private var matrix:Array; public var lightning:Lightning; private var shipFiring:Boolean;// = false private var shipDeccelerate:Boolean;// = false public var starfield:Starfield; private var fps:FPS; public var hud:HeadsupDisplay; public var explosionManager:ExplosionManager; public var pause:Boolean;// = false public static var _instance:Core; public function Core(){ pause = false; shipTurningLeft = false; shipTurningRight = false; shipAccelerate = false; shipDeccelerate = false; shipFiring = false; super(); _instance = this; } public function init(_arg1, _arg2, _arg3){ _arg3.focus = this; gameBitmapData = new BitmapData(_arg1, _arg2, true, 0); gameBitmap = new Bitmap(gameBitmapData); stageRectangle = new Rectangle(0, 0, _arg1, _arg2); matrix = new Array(); matrix = matrix.concat([0.3, 0.59, 0.11, 0, 0]); matrix = matrix.concat([0.3, 0.59, 0.11, 0, 0]); matrix = matrix.concat([0.3, 0.59, 0.11, 0, 0]); matrix = matrix.concat([0, 0, 0, 0.3, 0]); filter = new ColorMatrixFilter(matrix); lightning = new Lightning(1); ship = new Player(gameBitmapData); starfield = new Starfield(); asteroidsManager = new AsteroidManager(gameBitmapData); enemyManager = new EnemyManager(gameBitmapData); explosionManager = new ExplosionManager(gameBitmapData); bulletManager = new BulletManager(gameBitmapData); thrustManager = new ThrustManager(gameBitmapData); powerupManager = new PowerupManager(); levelManager = new LevelManager(enemyManager, asteroidsManager); hud = new HeadsupDisplay(); hud.x = 5; hud.y = 10; addChild(starfield); addChild(gameBitmap); addChild(lightning); addChild(thrustManager); addChild(explosionManager); addChild(powerupManager); addChild(hud); addEventListener(Event.ENTER_FRAME, gameloop); _arg3.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); _arg3.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); SoundManager.getInstance().playSound("Sound_Spawn"); shipAutoFiring = GameManager.getInstance().autofire; if (shipAutoFiring){ shipFiring = true; }; } private function keyDownHandler(_arg1:KeyboardEvent):void{ keyCode = _arg1.keyCode; if (keyCode == Keyboard.LEFT){ shipTurningLeft = true; }; if (keyCode == Keyboard.RIGHT){ shipTurningRight = true; }; if (keyCode == Keyboard.UP){ shipAccelerate = true; }; if (keyCode == Keyboard.DOWN){ shipDeccelerate = true; }; if (!shipAutoFiring){ if (keyCode == Keyboard.SPACE){ shipFiring = true; }; }; if (keyCode == 66){ if ((((((ship.smart > 0)) && (!(ship.isSpawning)))) && (!(pause)))){ asteroidsManager.smartBomb(); enemyManager.smartBomb(); explosionManager.smartBomb(ship.ax, ship.ay); ship.smart--; hud.update(); SoundManager.getInstance().playSound("Sound_Explode_Smart"); }; }; if ((((keyCode == 80)) || ((keyCode == 27)))){ if (SoundManager.getInstance().musicEnabled){ if (!pause){ SoundManager.getInstance().pauseMusic(true); } else { SoundManager.getInstance().pauseMusic(false); }; }; pause = !(pause); }; } private function keyUpHandler(_arg1:KeyboardEvent):void{ keyCode = _arg1.keyCode; if (!shipAutoFiring){ if (keyCode == Keyboard.SPACE){ shipFiring = false; }; }; if (keyCode == Keyboard.LEFT){ shipTurningLeft = false; }; if (keyCode == Keyboard.RIGHT){ shipTurningRight = false; }; if (keyCode == Keyboard.UP){ shipAccelerate = false; }; if (keyCode == Keyboard.DOWN){ shipDeccelerate = false; }; } private function gameloop(_arg1:Event):void{ if (!pause){ if (!ship.isSpawning){ if (shipTurningLeft){ ship.left(); } else { if (shipTurningRight){ ship.right(); }; }; if (shipAccelerate){ ship.accelerate(); thrustManager.createThrust(); } else { if (shipDeccelerate){ ship.deccelerate(); }; }; if (shipFiring){ bulletManager.createBullet(); } else { bulletManager.reset(); }; }; render(); }; } public function gameOver(){ removeEventListener(Event.ENTER_FRAME, gameloop); GameManager.getInstance().gameScore = hud.score; GameManager.getInstance().setState("GameOver"); } private function render(){ gameBitmapData.fillRect(stageRectangle, 0); ship.render(); levelManager.render(); asteroidsManager.render(); enemyManager.render(); starfield.render(); explosionManager.render(); thrustManager.render(); powerupManager.render(); bulletManager.render(); if (ship.isSpawning){ gameBitmapData.applyFilter(gameBitmapData, stageRectangle, Constants.ORIGIN, filter); }; } public static function getInstance(){ return (_instance); } } }//package
Section 112
//Credits (Credits) package { import flash.display.*; import flash.events.*; import com.markfennell.display.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import starfield.*; import utilities.*; import flash.net.*; public class Credits extends Sprite { private var gameBitmapData:BitmapData; private var stageRectangle:Rectangle; private var console:TextField; private var gameManager:GameManager; private var sprites:Sprites; private var showLightning;// = false private var starfieldMouse:StarfieldMouse; private var gameBitmap:Bitmap; private var fx; private var fps:FPS; public function Credits(){ showLightning = false; fx = new Fx(); super(); } public function init(_arg1, _arg2, _arg3){ var titleClip:*; var btnPlay:*; var btnScores:*; var btnHelp:*; var soundControls:*; var musicControls:*; var autofire:*; var playGame:Function; var help:Function; var hiscores:Function; var moregames:Function; var stageWidth = _arg1; var stageHeight = _arg2; var _stage = _arg3; playGame = function (_arg1:MouseEvent){ SoundManager.getInstance().playSound("Sound_Click"); GameManager.getInstance().setState("Game"); }; help = function (_arg1:MouseEvent){ SoundManager.getInstance().playSound("Sound_Click"); GameManager.getInstance().setState("Help"); }; hiscores = function (){ var _local1:URLRequest; SoundManager.getInstance().playSound("Sound_Click"); _local1 = new URLRequest(Constants.URL_HIGH_SCORE); navigateToURL(_local1, "_top"); }; moregames = function (){ var _local1:URLRequest; SoundManager.getInstance().playSound("Sound_Click"); _local1 = new URLRequest(Constants.URL_MORE_GAMES); navigateToURL(_local1, "_blank"); }; starfieldMouse = new StarfieldMouse(); addChild(starfieldMouse); titleClip = new credits_title(); addChild(titleClip); fx.zoomIn(titleClip, 0, 0.25, 360, -1000, 360, 90, 20, "easeOut", null); btnPlay = new credits_playBtn(); addChild(btnPlay); fx.zoomIn(btnPlay, 0.2, 0.25, 280, 1000, 280, 230, 20, "easeOut", null); btnPlay.addEventListener(MouseEvent.CLICK, playGame); btnScores = new credits_scoresBtn(); addChild(btnScores); fx.zoomIn(btnScores, 0.4, 0.25, 280, 1000, 280, 260, 20, "easeOut", null); btnScores.addEventListener(MouseEvent.CLICK, hiscores); btnHelp = new credits_helpBtn(); addChild(btnHelp); fx.zoomIn(btnHelp, 0.6, 0.25, 280, 1000, 280, 290, 20, "easeOut", null); btnHelp.addEventListener(MouseEvent.CLICK, help); if (!Constants.IS_VANILLA){ }; soundControls = new credits_soundControls(); addChild(soundControls); fx.zoomIn(soundControls, 0.8, 0.25, 313, 1000, 313, 400, 20, "easeOut", null); musicControls = new credits_musicControls(); addChild(musicControls); fx.zoomIn(musicControls, 1, 0.25, 313, 1000, 313, 430, 20, "easeOut", null); autofire = new credits_autoFire(); addChild(autofire); fx.zoomIn(autofire, 1.2, 0.25, 313, 1000, 313, 460, 20, "easeOut", null); addEventListener(Event.ENTER_FRAME, render); musicControls.setButtonsToRightState(); soundControls.setButtonsToRightState(); autofire.setButtonsToRightState(); } private function render(_arg1:Event){ starfieldMouse.render(); } } }//package
Section 113
//credits_autoFire (credits_autoFire) package { import controls.*; public dynamic class credits_autoFire extends Autofire { } }//package
Section 114
//credits_backBtn (credits_backBtn) package { import flash.display.*; public dynamic class credits_backBtn extends SimpleButton { } }//package
Section 115
//credits_help (credits_help) package { import flash.display.*; import flash.events.*; import flash.net.*; public dynamic class credits_help extends MovieClip { public var ring1:MovieClip; public var ring5:MovieClip; public var ring4:MovieClip; public var ring6:MovieClip; public var ring7:MovieClip; public var ring3:MovieClip; public var ring2:MovieClip; public var vector1:src_red_square; public var btnLink:SimpleButton; public function credits_help(){ addFrameScript(0, frame1); } public function markfennell(_arg1:MouseEvent){ var _local2:URLRequest; _local2 = new URLRequest("http://www.markfennell.com/flash"); navigateToURL(_local2, "_blank"); } function frame1(){ addEventListener(Event.ENTER_FRAME, render); btnLink.addEventListener(MouseEvent.CLICK, markfennell); } public function render(_arg1:Event){ vector1.rotation = (vector1.rotation + 3); ring1.rotation = (ring1.rotation + 1.5); ring2.rotation = (ring2.rotation + 1.5); ring3.rotation = (ring3.rotation + 1.5); ring4.rotation = (ring4.rotation + 1.5); ring5.rotation = (ring5.rotation + 1.5); ring6.rotation = (ring6.rotation + 1.5); ring7.rotation = (ring7.rotation + 1.5); } } }//package
Section 116
//credits_helpBtn (credits_helpBtn) package { import flash.display.*; public dynamic class credits_helpBtn extends SimpleButton { } }//package
Section 117
//credits_moreBtn (credits_moreBtn) package { import flash.display.*; public dynamic class credits_moreBtn extends SimpleButton { } }//package
Section 118
//credits_musicControls (credits_musicControls) package { import controls.*; public dynamic class credits_musicControls extends MusicControls { } }//package
Section 119
//credits_playBtn (credits_playBtn) package { import flash.display.*; public dynamic class credits_playBtn extends SimpleButton { } }//package
Section 120
//credits_playgameBtn (credits_playgameBtn) package { import flash.display.*; public dynamic class credits_playgameBtn extends SimpleButton { } }//package
Section 121
//credits_scoresBtn (credits_scoresBtn) package { import flash.display.*; public dynamic class credits_scoresBtn extends SimpleButton { } }//package
Section 122
//credits_soundControls (credits_soundControls) package { import controls.*; public dynamic class credits_soundControls extends SoundControls { } }//package
Section 123
//credits_submitBtn (credits_submitBtn) package { import flash.display.*; public dynamic class credits_submitBtn extends SimpleButton { } }//package
Section 124
//credits_title (credits_title) package { import flash.display.*; import flash.events.*; public dynamic class credits_title extends MovieClip { public var vector3:src_blue_triangle; public var vector1:src_red_square; public var vector4:asteroidMid1; public var vector5:MovieClip; public var vector2:src_green_triangle; public function credits_title(){ addFrameScript(0, frame1); } function frame1(){ addEventListener(Event.ENTER_FRAME, render); } public function render(_arg1:Event){ vector1.rotation = (vector1.rotation + 2); vector2.rotation = (vector2.rotation + 2); vector3.rotation = (vector3.rotation + 2); vector4.rotation = (vector4.rotation + 2); vector5.rotation = (vector5.rotation + 2); } } }//package
Section 125
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 126
//GameManager (GameManager) package { import flash.display.*; import flash.events.*; import com.markfennell.display.*; import flash.geom.*; import flash.text.*; import flash.utils.*; public class GameManager extends Sprite { public var stageWidth:Number; public var autofire:Boolean;// = true private var currentClass; public var state:String;// = "Credits" private var soundManager:SoundManager; public var stageHeight:Number; public var gameScore:int;// = 0 private var fx; public var STAGE:Stage; public static var _instance:GameManager = null; public function GameManager(_arg1, _arg2, _arg3){ state = "Credits"; gameScore = 0; autofire = true; soundManager = new SoundManager(); currentClass = undefined; fx = new Fx(); super(); _instance = this; stageWidth = _arg1; stageHeight = _arg2; STAGE = _arg3; setState(state); } public function setState(_arg1){ switch (_arg1){ case "Credits": if (currentClass != undefined){ removeChild(currentClass); }; currentClass = new Credits(); currentClass.init(stageWidth, stageHeight, STAGE); addChild(currentClass); break; case "Game": gameScore = 0; if (currentClass != undefined){ removeChild(currentClass); }; currentClass = new Core(); currentClass.init(stageWidth, stageHeight, STAGE); addChild(currentClass); break; case "Help": if (currentClass != undefined){ removeChild(currentClass); }; currentClass = new Help(); currentClass.init(stageWidth, stageHeight, STAGE); addChild(currentClass); break; case "GameOver": if (currentClass != null){ removeChild(currentClass); currentClass = null; }; currentClass = new GameOver(); currentClass.init(stageWidth, stageHeight, STAGE); addChild(currentClass); break; case "Submit": if (currentClass != undefined){ removeChild(currentClass); }; Root.submit(); break; }; } public static function getInstance(){ return (_instance); } } }//package
Section 127
//GameOver (GameOver) package { import flash.display.*; import flash.events.*; import com.markfennell.display.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import starfield.*; import explosions.*; import flash.net.*; public class GameOver extends Sprite { private var gameBitmapData:BitmapData; private var stageRectangle:Rectangle; private var gameManager:GameManager; private var sprites:Sprites; private var i:int;// = 0 private var starfieldMouse:StarfieldMouse; private var gameBitmap:Bitmap; private var fx; public var explosionManager:ExplosionManager; public function GameOver(){ fx = new Fx(); i = 0; super(); } public function init(_arg1, _arg2, _arg3){ var gameoverClip:*; var btnSubmit:*; var btnPlay:*; var btnHelp:*; var playGame:Function; var help:Function; var hiscores:Function; var moregames:Function; var submitScore:Function; var btnMore:*; var stageWidth = _arg1; var stageHeight = _arg2; var _stage = _arg3; playGame = function (_arg1:MouseEvent){ SoundManager.getInstance().playSound("Sound_Click"); GameManager.getInstance().setState("Credits"); }; help = function (_arg1:MouseEvent){ SoundManager.getInstance().playSound("Sound_Click"); GameManager.getInstance().setState("Help"); }; hiscores = function (){ var _local1:URLRequest; SoundManager.getInstance().playSound("Sound_Click"); _local1 = new URLRequest(Constants.URL_HIGH_SCORE); navigateToURL(_local1, "_blank"); }; moregames = function (){ var _local1:URLRequest; SoundManager.getInstance().playSound("Sound_Click"); _local1 = new URLRequest(Constants.URL_MORE_GAMES); navigateToURL(_local1, "_blank"); }; submitScore = function (){ SoundManager.getInstance().playSound("Sound_Click"); GameManager.getInstance().setState("Submit"); }; gameBitmapData = new BitmapData(stageWidth, stageHeight, true, 0); gameBitmap = new Bitmap(gameBitmapData); addChild(gameBitmap); stageRectangle = new Rectangle(0, 0, stageWidth, stageHeight); starfieldMouse = new StarfieldMouse(); addChild(starfieldMouse); explosionManager = new ExplosionManager(gameBitmapData); addChild(explosionManager); gameoverClip = new src_gameover(); addChild(gameoverClip); gameoverClip.scoreText.text = fx.padScore(GameManager.getInstance().gameScore, 9); fx.zoomIn(gameoverClip, 0, 0.25, 300, -1000, 300, 180, 20, "easeOut", null); btnSubmit = new credits_submitBtn(); addChild(btnSubmit); fx.zoomIn(btnSubmit, 0.2, 0.25, 260, 1000, 260, 300, 20, "easeOut", null); btnSubmit.addEventListener(MouseEvent.CLICK, submitScore); btnPlay = new credits_playBtn(); addChild(btnPlay); fx.zoomIn(btnPlay, 0.4, 0.25, 260, 1000, 260, 330, 20, "easeOut", null); btnPlay.addEventListener(MouseEvent.CLICK, playGame); btnHelp = new credits_helpBtn(); addChild(btnHelp); fx.zoomIn(btnHelp, 0.8, 0.25, 260, 1000, 260, 360, 20, "easeOut", null); btnHelp.addEventListener(MouseEvent.CLICK, help); if (!Constants.IS_VANILLA){ btnMore = new credits_moreBtn(); addChild(btnMore); fx.zoomIn(btnMore, 0.6, 0.25, 260, 1000, 260, 390, 20, "easeOut", null); btnMore.addEventListener(MouseEvent.CLICK, moregames); }; addEventListener(Event.ENTER_FRAME, render); SoundManager.getInstance().playSound("Sound_Gameover"); } private function render(_arg1:Event){ gameBitmapData.fillRect(stageRectangle, 0); explosionManager.render(); starfieldMouse.render(); i++; if ((i % 10) == 0){ explosionManager.createExplosion((Math.random() * Constants.STAGE_WIDTH), (Math.random() * Constants.STAGE_HEIGHT), 0, true); }; } } }//package
Section 128
//HeadsUp (HeadsUp) package { import flash.display.*; import flash.text.*; public dynamic class HeadsUp extends MovieClip { public var healthBar:MovieClip; public var levelUp:level_display; public var controls:Controls; public var levelText:TextField; public var livesText:TextField; public var scoreText:TextField; public var bombText:TextField; } }//package
Section 129
//Help (Help) package { import flash.display.*; import flash.events.*; import com.markfennell.display.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import starfield.*; public class Help extends Sprite { private var gameBitmapData:BitmapData; private var stageRectangle:Rectangle; private var gameManager:GameManager; private var starfieldMouse:StarfieldMouse; private var gameBitmap:Bitmap; private var fx; public function Help(){ fx = new Fx(); super(); } public function init(_arg1, _arg2, _arg3){ var btnPlay:*; var btnBack:*; var helpClip:*; var playGame:Function; var back:Function; var stageWidth = _arg1; var stageHeight = _arg2; var _stage = _arg3; playGame = function (_arg1:MouseEvent){ GameManager.getInstance().setState("Game"); }; back = function (_arg1:MouseEvent){ GameManager.getInstance().setState("Credits"); }; starfieldMouse = new StarfieldMouse(); addChild(starfieldMouse); btnPlay = new credits_playBtn(); addChild(btnPlay); fx.zoomIn(btnPlay, 0, 0.25, 480, 1000, 480, 530, 20, "easeOut", null); btnPlay.addEventListener(MouseEvent.CLICK, playGame); btnBack = new credits_backBtn(); addChild(btnBack); fx.zoomIn(btnBack, 0, 0.25, 390, 1000, 390, 530, 20, "easeOut", null); btnBack.addEventListener(MouseEvent.CLICK, back); helpClip = new credits_help(); addChild(helpClip); fx.zoomIn(helpClip, 0, 0.25, 290, -1000, 290, 360, 20, "easeOut", null); addEventListener(Event.ENTER_FRAME, render); } private function render(_arg1:Event){ starfieldMouse.render(); } } }//package
Section 130
//inputField (inputField) package { import flash.display.*; import flash.text.*; public dynamic class inputField extends MovieClip { public var hover:MovieClip; public var textInput:TextField; } }//package
Section 131
//level_display (level_display) package { import flash.display.*; public dynamic class level_display extends MovieClip { } }//package
Section 132
//LevelManager (LevelManager) package { import flash.display.*; import enemies.*; import asteroids.*; public class LevelManager { private var enemyManager:EnemyManager; private var LevelArrayLength:int; public var LevelReal:int;// = 0 private var level10; private var level11; private var level12; private var level13; private var level14; private var level15; private var level16; private var level17; private var level18; private var nextDisplayed:Boolean;// = false private var level3; private var level4; private var level5; private var level7; private var level8; private var level9; private var LevelSpawnArrayLength:int; private var level0; public var LevelSpawnPosition:int;// = 0 private var LevelTimer:int;// = 0 private var LevelArray:Array; public var LevelSpawned:Boolean;// = false private var level19; private var i:int; private var asteroidsManager:AsteroidManager; public var LevelCurrent:int;// = 0 public function LevelManager(_arg1:EnemyManager, _arg2:AsteroidManager){ LevelCurrent = 0; LevelReal = 0; LevelSpawnPosition = 0; LevelSpawned = false; nextDisplayed = false; LevelTimer = 0; level0 = [["asteroid", 50], ["powerup", 100], ["powerup", 250], ["asteroid", 300], ["spawned", 300]]; level3 = [["greenTriangle", 50], ["powerup", 75], ["greenTriangle", 150], ["greenTriangle", 250], ["asteroid", 310], ["asteroid", 350], ["asteroid", 450], ["powerup", 470], ["greenTriangle", 550], ["greenTriangle", 560], ["greenTriangle", 570], ["spawned", 580]]; level4 = [["asteroid", 50], ["blueTriangle", 150], ["powerup", 300], ["blueTriangle", 400], ["greenTriangle", 460], ["greenTriangle", 470], ["greenTriangle", 480], ["asteroid", 500], ["powerup", 510], ["blueTriangle", 555], ["spawned", 560]]; level5 = [["asteroid", 50], ["blueTriangle", 150], ["powerup", 200], ["asteroid", 300], ["blueTriangle", 330], ["asteroid", 550], ["asteroid", 600], ["blueTriangle", 650], ["greenTriangle", 700], ["greenTriangle", 750], ["greenTriangle", 800], ["powerup", 810], ["greenTriangle", 910], ["greenTriangle", 920], ["spawned", 930]]; level7 = [["asteroid", 50], ["asteroid", 250], ["powerup", 260], ["powerup", 400], ["snake", 400], ["asteroid", 550], ["snake", 700], ["spawned", 710]]; level8 = [["asteroid", 50], ["blueTriangle", 150], ["powerup", 200], ["asteroid", 300], ["blueTriangle", 320], ["powerup", 370], ["asteroid", 450], ["asteroid", 600], ["blueTriangle", 750], ["greenTriangle", 780], ["snake", 900], ["greenTriangle", 1200], ["greenTriangle", 1210], ["blueTriangle", 1300], ["spawned", 1320]]; level9 = [["asteroid", 50], ["asteroid", 150], ["powerup", 500], ["snake", 600], ["asteroid", 750], ["snake", 900], ["greenTriangle", 1000], ["greenTriangle", 1050], ["hexagon", 1075], ["greenTriangle", 1100], ["powerup", 1110], ["greenTriangle", 1150], ["greenTriangle", 1200], ["greenTriangle", 1250], ["spawned", 1350]]; level10 = [["blueTriangle", 50], ["blueTriangle", 150], ["blueTriangle", 200], ["powerup", 500], ["snake", 510], ["blueTriangle", 600], ["snake", 750], ["blueTriangle", 900], ["powerup", 910], ["blueTriangle", 950], ["spawned", 960]]; level11 = [["greenTriangle", 50], ["asteroid", 55], ["yellowTriangle", 60], ["greenTriangle", 70], ["greenTriangle", 150], ["greenTriangle", 200], ["greenTriangle", 210], ["greenTriangle", 250], ["yellowTriangle", 300], ["asteroid", 310], ["greenTriangle", 350], ["greenTriangle", 410], ["greenTriangle", 420], ["spawned", 430]]; level12 = [["asteroid", 50], ["asteroid", 150], ["powerup", 250], ["powerup", 500], ["snake", 600], ["asteroid", 750], ["snake", 900], ["hexagon", 760], ["blueTriangle", 1000], ["blueTriangle", 1050], ["blueTriangle", 1100], ["powerup", 1110], ["blueTriangle", 1150], ["blueTriangle", 1200], ["blueTriangle", 1250], ["spawned", 1260]]; level13 = [["asteroid", 50], ["asteroid", 150], ["powerup", 250], ["snake", 600], ["asteroid", 750], ["snake", 900], ["blueTriangle", 1000], ["blueTriangle", 1050], ["blueTriangle", 1100], ["greenTriangle", 1150], ["greenTriangle", 1200], ["greenTriangle", 1250], ["powerup", 1260], ["spawned", 1270]]; level14 = [["asteroid", 50], ["blueTriangle", 150], ["powerup", 200], ["asteroid", 300], ["blueTriangle", 320], ["asteroid", 450], ["asteroid", 600], ["blueTriangle", 750], ["hexagon", 760], ["greenTriangle", 770], ["greenTriangle", 780], ["powerup", 800], ["greenTriangle", 810], ["greenTriangle", 820], ["greenTriangle", 830], ["snake", 910], ["greenTriangle", 1000], ["greenTriangle", 1010], ["greenTriangle", 1020], ["greenTriangle", 1030], ["blueTriangle", 1100], ["spawned", 1110]]; level15 = [["asteroid", 50], ["asteroid", 150], ["powerup", 250], ["snake", 300], ["asteroid", 350], ["snake", 400], ["hexagon", 470], ["blueTriangle", 600], ["blueTriangle", 650], ["blueTriangle", 700], ["powerup", 810], ["blueTriangle", 850], ["blueTriangle", 900], ["hexagon", 920], ["blueTriangle", 950], ["spawned", 960]]; level16 = [["blueTriangle", 50], ["blueTriangle", 150], ["blueTriangle", 200], ["powerup", 250], ["asteroid", 350], ["hexagon", 370], ["hexagon", 400], ["hexagon", 480], ["powerup", 500], ["snake", 510], ["blueTriangle", 600], ["snake", 650], ["snake", 700], ["blueTriangle", 700], ["blueTriangle", 750], ["spawned", 760]]; level17 = [["blueTriangle", 60], ["greenTriangle", 70], ["powerup", 130], ["blueTriangle", 140], ["greenTriangle", 150], ["hexagon", 220], ["hexagon", 300], ["hexagon", 320], ["blueTriangle", 330], ["greenTriangle", 340], ["powerup", 350], ["blueTriangle", 360], ["greenTriangle", 370], ["blueTriangle", 380], ["greenTriangle", 390], ["spawned", 400]]; level18 = [["asteroid", 50], ["yellowTriangle", 70], ["hexagon", 100], ["asteroid", 150], ["powerup", 250], ["snake", 300], ["hexagon", 300], ["asteroid", 350], ["yellowTriangle", 370], ["asteroid", 400], ["snake", 400], ["hexagon", 450], ["hexagon", 460], ["hexagon", 460], ["powerup", 500], ["spawned", 510]]; level19 = [["asteroid", 50], ["hexagon", 60], ["hexagon", 80], ["blueTriangle", 150], ["asteroid", 200], ["blueTriangle", 220], ["blueTriangle", 240], ["powerup", 270], ["asteroid", 350], ["asteroid", 400], ["blueTriangle", 450], ["greenTriangle", 460], ["greenTriangle", 470], ["hexagon", 480], ["greenTriangle", 500], ["greenTriangle", 520], ["greenTriangle", 540], ["snake", 600], ["powerup", 630], ["greenTriangle", 700], ["greenTriangle", 720], ["greenTriangle", 730], ["yellowTriangle", 740], ["blueTriangle", 800], ["hexagon", 800], ["hexagon", 820], ["hexagon", 840], ["blueTriangle", 900], ["blueTriangle", 900], ["spawned", 910]]; LevelArray = [level0, level3, level4, level5, level7, level8, level9, level10, level11, level12, level13, level14, level15, level16, level17, level19]; LevelArrayLength = LevelArray.length; super(); enemyManager = _arg1; asteroidsManager = _arg2; LevelSpawnArrayLength = LevelArray[LevelCurrent].length; } public function render(){ LevelTimer++; i = 0; while (i < LevelSpawnArrayLength) { if (LevelTimer == LevelArray[LevelCurrent][i][1]){ if (LevelArray[LevelCurrent][i][0] == "spawned"){ LevelSpawned = true; } else { spawn(LevelArray[LevelCurrent][i][0]); }; }; i++; }; if (LevelSpawned){ if ((((((enemyManager.getEnemies().length == 0)) && ((asteroidsManager.getAsteroids().length == 0)))) && (!(nextDisplayed)))){ nextDisplayed = true; Core.getInstance().hud.nextLevel(); }; }; } public function nextLevel(){ LevelTimer = 0; LevelSpawned = false; LevelCurrent++; LevelReal++; if (LevelCurrent >= LevelArray.length){ LevelCurrent = 14; }; LevelSpawnArrayLength = LevelArray[LevelCurrent].length; nextDisplayed = false; } public function spawn(_arg1){ switch (_arg1){ case "asteroid": if (Math.random() > 0.5){ asteroidsManager.createOffscreenAsteroid(0, 0); } else { asteroidsManager.createOffscreenAsteroid(1, 0); }; break; case "powerup": enemyManager.createEnemy("redSquare"); break; case "blueTriangle": enemyManager.createEnemy("blueTriangle"); break; case "greenTriangle": enemyManager.createEnemy("greenTriangle"); break; case "snake": enemyManager.createEnemy("snake"); break; case "yellowTriangle": enemyManager.createEnemy("yellowTriangle"); break; case "hexagon": enemyManager.createEnemy("hexagon"); break; }; } } }//package
Section 133
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 134
//MochiAd (MochiAd) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return ("2.1"); } public static function showTimedAd(_arg1:Object):void{ MochiAd.showInterLevelAd(_arg1); } public static function _allowDomains(_arg1:String):String{ var _local2:String; _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function load(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var depth:Number; var mc:MovieClip; var wh:Array; var lv:URLVariables; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var f:Function; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip._mochiad_loaded){ return (null); }; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); wh = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; lv = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; lv.lc = name; lv.st = getTimer(); loader = new Loader(); f = function (_arg1:Object):void{ mc._mochiad_ctr_failed = true; }; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); g = function (_arg1:Object):void{ MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{ var _local4:MovieClip; _local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id}); if (!_local4){ return (false); }; _local4.doSend(["sendHighScore", _arg1], _arg2, _arg3); return (true); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local3:Object; var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; return (_local3); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; _arg1.removeChild(_arg1._mochiad); delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ this.clip.stop(); }, ad_finished:function ():void{ this.clip.play(); }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = _local1.loaderInfo.bytesTotal; if ((((_local4 > 0)) || (("number" == "undefined")))){ chk.showing = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ _local3 = true; }; }; }; if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local3:Object; var _local4:Number; var _local5:Number; var _local6:Array; _local3 = _arg2.getBounds(_arg2.root); _local4 = 0; _local5 = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip; _local4 = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _loadCommunicator(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var clipname:String; var server:String; var depth:Number; var mc:MovieClip; var lv:URLVariables; var k:String; var lc:LocalConnection; var name:String; var req:URLRequest; var loader:Loader; var options = _arg1; DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; clipname = ("_mochiad_com_" + options.id); if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip[clipname]){ return (clip[clipname]); }; server = (options.com_server + options.id); MochiAd._allowDomains(server); delete options.id; delete options.com_server; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, clipname, depth); lv = new URLVariables(); for (k in options) { lv[k] = options[k]; }; lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.name = name; mc.lc = lc; lv.lc = name; mc._id = 0; mc._queue = []; mc.rpcResult = function (_arg1:Object):void{ var _local3:Array; var _local4:Array; var _local5:Number; var _local6:Object; var _local7:Object; _arg1 = parseInt(_arg1.toString()); _local3 = mc._callbacks[_arg1]; if (typeof(_local3) == "undefined"){ return; }; delete mc._callbacks[_arg1]; _local4 = []; _local5 = 2; while (_local5 < _local3.length) { _local4.push(_local3[_local5]); _local5++; }; _local5 = 1; while (_local5 < arguments.length) { _local4.push(arguments[_local5]); _local5++; }; _local6 = _local3[1]; _local7 = _local3[0]; if (((_local7) && ((typeof(_local6) == "string")))){ _local6 = _local7[_local6]; }; if (typeof(_local6) == "function"){ _local6.apply(_local7, _local4); }; }; mc._didConnect = function (_arg1:String):void{ var _local2:Array; var _local3:Function; var _local4:Number; var _local5:Array; mc._endpoint = _arg1; _local2 = mc._queue; delete mc._queue; _local3 = mc.doSend; _local4 = 0; while (_local4 < _local2.length) { _local5 = _local2[_local4]; _local3.apply(this, _local5); _local4++; }; }; mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{ var _local5:Number; var _local6:LocalConnection; var _local7:Array; var _local8:Number; if (mc._endpoint == null){ _local7 = []; _local8 = 0; while (_local8 < arguments.length) { _local7.push(arguments[_local8]); _local8++; }; mc._queue.push(_local7); return; }; mc._id = (mc._id + 1); _local5 = mc._id; mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))]; _local6 = new LocalConnection(); _local6.send(mc._endpoint, "rpc", _local5, _arg1); }; mc._callbacks = {}; mc._callbacks[0] = [mc, "_didConnect"]; lv.st = getTimer(); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader = new Loader(); loader.load(req); mc.addChild(loader); mc._mochiad_com = loader; return (mc); } public static function showPreGameAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var bar:MovieClip; var bar_color:Number; var bar_background:Number; var bar_outline:Number; var backing_mc:MovieClip; var backing:Object; var inside_mc:MovieClip; var inside:Object; var outline_mc:MovieClip; var outline:Object; var complete:Boolean; var unloaded:Boolean; var f:Function; var r:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, ad_started:function ():void{ this.clip.stop(); }, ad_finished:function ():void{ this.clip.play(); }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ var fn:Function; fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); bar = createEmptyMovieClip(chk, "_mochiad_bar", 4); bar.x = 10; bar.y = (h - 20); bar_color = options.color; delete options.color; bar_background = options.background; delete options.background; bar_outline = options.outline; delete options.outline; backing_mc = createEmptyMovieClip(bar, "_outline", 1); backing = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); inside_mc = createEmptyMovieClip(bar, "_inside", 2); inside = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; outline_mc = createEmptyMovieClip(bar, "_outline", 3); outline = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; f = function (_arg1:Event):void{ complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Object; var _local3:Number; var _local4:Boolean; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Object; var _local10:Number; var _local11:Number; if (!this.parent.parent){ delete this["onEnterFrame"]; return; }; _local1 = this.parent.parent.root; _local2 = this.parent._mochiad_ctr; _local3 = (getTimer() - this.started); _local4 = false; _local5 = _local1.loaderInfo.bytesTotal; _local6 = _local1.loaderInfo.bytesLoaded; _local7 = ((100 * _local6) / _local5); _local8 = ((100 * _local3) / chk.ad_msec); _local9 = this._mochiad_bar._inside; _local10 = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); if (!chk.showing){ _local11 = _local2.loaderInfo.bytesTotal; if ((((_local11 > 0)) || (("number" == "undefined")))){ chk.showing = true; chk.started = getTimer(); } else { if (_local3 > chk.ad_timeout){ _local4 = true; }; }; }; if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ MochiAd.showPreGameAd(_arg1); } public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{ var _local4:MovieClip; _local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id}); if (!_local4){ return (false); }; _local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3); return (true); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var f:Function; var mc = _arg1; f = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { mc.removeEventListener(Event.ENTER_FRAME, f); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package
Section 135
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 136
//musicTrack (musicTrack) package { import flash.media.*; public dynamic class musicTrack extends Sound { } }//package
Section 137
//Root (Root) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.net.*; public class Root extends MovieClip { public var Game; public var background:MovieClip; public var sprites; public var btn:SimpleButton; public var scoreboard:MovieClip; private var advert:MovieClip; public static var _root:MovieClip; public function Root(){ addFrameScript(0, frame1, 8, frame9, 15, frame16, 23, frame24, 29, frame30, 37, frame38, 44, frame45); _root = this; advert = new MovieClip(); _root.addChild(advert); showAds(); } function frame16(){ btn.addEventListener(MouseEvent.CLICK, moregames); stop(); } function frame24(){ sprites = new Sprites(); gotoAndPlay("game"); stop(); } function frame9(){ if (Constants.IS_VANILLA){ gotoAndPlay("credits"); } else { gotoAndPlay("intro"); }; stop(); } function frame30(){ Game = new GameManager(stage.stageWidth, stage.stageHeight, stage); addChild(Game); stop(); } function frame1(){ stop(); } public function showAds(){ stop(); MochiAd.showPreGameAd({clip:advert, id:"a9bdf848043a5c41", res:"600x600", background:0, color:0xFFC400, outline:0, no_bg:true, ad_finished:adFinished}); } function frame38(){ } public function adFinished():void{ MochiBot.track(this, "593fa121"); export(); } public function moregames(_arg1:MouseEvent){ var _local2:URLRequest; _local2 = new URLRequest(Constants.URL_MORE_GAMES); navigateToURL(_local2, "_blank"); } function frame45(){ scoreboard.scores.setScore(GameManager.getInstance().gameScore); stop(); } public static function export(){ _root.gotoAndPlay("export"); } public static function submit(){ _root.gotoAndPlay("submit"); } public static function credits(){ _root.gotoAndPlay("credits"); } public static function restart(){ _root.gotoAndPlay("game"); } } }//package
Section 138
//scoreboard (scoreboard) package { import fl.controls.*; import fl.data.*; public dynamic class scoreboard extends Scoreboard { public var j1; public var collObj1:DataProvider; public var __id2_:ComboBox; public var collProp1:Object; public var itemObj1:SimpleCollectionItem; public var collProps1:Array; public var i1:int; public function scoreboard(){ __setProp___id2__score_1(); } function __setProp___id2__score_1(){ try { __id2_["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj1 = new DataProvider(); collProps1 = []; i1 = 0; while (i1 < collProps1.length) { itemObj1 = new SimpleCollectionItem(); collProp1 = collProps1[i1]; for (j1 in collProp1) { itemObj1[j1] = collProp1[j1]; }; collObj1.addItem(itemObj1); i1++; }; __id2_.dataProvider = collObj1; __id2_.editable = false; __id2_.enabled = true; __id2_.prompt = ""; __id2_.restrict = ""; __id2_.rowCount = 5; __id2_.visible = true; try { __id2_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 139
//Scoreboard (Scoreboard) package { import fl.controls.*; import flash.display.*; import flash.events.*; import com.markfennell.display.*; import flash.filters.*; import flash.text.*; import com.meychi.ascrypt3.*; import flash.net.*; public class Scoreboard extends MovieClip { private var inputEmail:MovieClip; private var inputCountries:ComboBox; private var offsetX:Number;// = 10 private var spacer:Number;// = 30 private var offsetY:Number;// = -40 private var loader:URLLoader; private var KEY:String;// = "bLaStONe" public var btnBack:SimpleButton; private var countryArray; private var inputName:MovieClip; private var inputSubmit:MovieClip; private var score; private var textOptional:String;// = "(Optional)" private var glow:GlowFilter; private var centerY:Number; private var centerX:Number; public var preloaderBar:MovieClip; private var fx:Fx; private var score2:String;// = "null" public var scoreText:TextField; private var PADDING:int;// = 7 public function Scoreboard(){ var _local1:TextFormat; var _local2:*; PADDING = 7; KEY = "bLaStONe"; offsetX = 10; offsetY = -40; centerX = (stage.stageWidth / 2); centerY = (stage.stageHeight / 2); spacer = 30; textOptional = "(Optional)"; glow = new GlowFilter(0xFF0000, 6, 6, 2); score2 = "null"; fx = new Fx(); countryArray = [[null, "Select Your Country"], ["AF", "Afghanistan"], ["AL", "Albania"], ["DZ", "Algeria"], ["AS", "American Samoa"], ["AG", "Antigua Barbuda"], ["AR", "Argentina"], ["AU", "Australia"], ["AT", "Austria"], ["AZ", "Azerbaijan"], ["BH", "Bahrain"], ["BD", "Bangladesh"], ["BB", "Barbados"], ["BY", "Belarus"], ["BE", "Belgium"], ["BZ", "Belize"], ["BJ", "Benin"], ["BM", "Bermuda"], ["BT", "Bhutan"], ["BO", "Bolivia"], ["BA", "Bosnia Herzegovina"], ["BW", "Botswana"], ["BR", "Brazil"], ["BN", "Brunei"], ["BG", "Bulgaria"], ["BF", "Burkina Faso"], ["BI", "Burundi"], ["KH", "Cambodia"], ["CM", "Cameroon"], ["CA", "Canada"], ["CV", "Cape Verde"], ["KY", "Cayman Islands"], ["CF", "Cent African Rep"], ["TD", "Chad"], ["JI", "Channel Islands"], ["CL", "Chile"], ["CN", "China"], ["CO", "Columbia"], ["KM", "Comoros"], ["CG", "Congo"], ["CK", "Cook Islands"], ["CR", "Costa Rica"], ["HR", "Croatia"], ["CU", "Cuba"], ["CY", "Cyprus"], ["CZ", "Czech Republic"], ["DK", "Denmark"], ["DM", "Dominica"], ["DO", "Dominican Republic"], ["TL", "East Timor"], ["EC", "Ecuador"], ["EG", "Egypt"], ["SV", "El Salvador"], ["GQ", "Equatorial Guinea"], ["ER", "Eritrea"], ["EE", "Estonia"], ["ET", "Ethiopia"], ["FJ", "Fiji"], ["FI", "Finland"], ["FR", "France"], ["GF", "French Guiana"], ["PF", "French Polynesia"], ["GM", "Gambia"], ["GE", "Georgia"], ["DE", "Germany"], ["GH", "Ghana"], ["GI", "Gibraltar"], ["GR", "Greece"], ["GL", "Greenland"], ["GD", "Grenada"], ["GP", "Guadeloupe"], ["GU", "Guam"], ["GT", "Guatemala"], ["GW", "Guinea Bissau"], ["GY", "Guyana"], ["HT", "Haiti"], ["HW", "Hawaii"], ["HN", "Honduras"], ["HK", "Hong Kong"], ["HU", "Hungary"], ["IS", "Iceland"], ["IN", "India"], ["ID", "Indonesia"], ["IR", "Iran"], ["IQ", "Iraq"], ["IE", "Ireland"], ["IM", "Isle of Man"], ["IL", "Israel"], ["IT", "Italy"], ["CI", "Ivory Coast"], ["JM", "Jamaica"], ["JP", "Japan"], ["JO", "Jordan"], ["KZ", "Kazakhstan"], ["KE", "Kenya"], ["KS", "Korea South"], ["KW", "Kuwait"], ["KG", "Kyrgyzstan"], ["LA", "Laos"], ["LV", "Latvia"], ["LB", "Lebanon"], ["LS", "Lesotho"], ["LR", "Liberia"], ["LY", "Libya"], ["LI", "Liechtenstein"], ["LT", "Lithuania"], ["LU", "Luxembourg"], ["MO", "Macau"], ["MK", "Macedonia"], ["MG", "Madagascar"], ["MW", "Malawi"], ["MY", "Malaysia"], ["MV", "Maldives"], ["ML", "Mali"], ["MT", "Malta"], ["MQ", "Martinique"], ["MU", "Mauritius"], ["YT", "Mayotte"], ["MX", "Mexico"], ["MD", "Moldova"], ["MC", "Monaco"], ["MN", "Mongolia"], ["MS", "Montserrat"], ["MA", "Morocco"], ["MZ", "Mozambique"], ["MM", "Myanmar"], ["NA", "Namibia"], ["NR", "Nauru"], ["NP", "Nepal"], ["NL", "Netherlands"], ["NC", "New Caledonia"], ["NZ", "New Zealand"], ["NI", "Nicaragua"], ["NE", "Niger"], ["NG", "Nigeria"], ["NO", "Norway"], ["OM", "Oman"], ["PK", "Pakistan"], ["PA", "Panama"], ["PG", "Papua New Guinea"], ["PY", "Paraguay"], ["PE", "Peru"], ["PH", "Philippines"], ["PN", "Pitcairn Island"], ["PL", "Poland"], ["PT", "Portugal"], ["PR", "Puerto Rico"], ["QA", "Qatar"], ["RE", "Reunion"], ["RO", "Romania"], ["RU", "Russia"], ["RW", "Rwanda"], ["SM", "San Marino"], ["ST", "Sao Tome Principe"], ["SA", "Saudi Arabia"], ["SN", "Senegal"], ["CS", "Serbia Montenegro"], ["SL", "Sierra Leone"], ["SG", "Singapore"], ["SK", "Slovakia"], ["SI", "Slovenia"], ["SB", "Solomon Islands"], ["SO", "Somalia"], ["ZA", "South Africa"], ["ES", "Spain"], ["LK", "Sri Lanka"], ["SH", "St Helena"], ["KN", "St Kitts-Nevis"], ["LC", "St Lucia"], ["MB", "St Maarten"], ["PM", "St Pierre Miquelon"], ["VC", "St Vincent Grenadines"], ["SD", "Sudan"], ["SR", "Suriname"], ["SZ", "Swaziland"], ["SE", "Sweden"], ["CH", "Switzerland"], ["SY", "Syria"], ["TA", "Tahiti"], ["TW", "Taiwan"], ["TJ", "Tajikistan"], ["TZ", "Tanzania"], ["TH", "Thailand"], ["TG", "Togo"], ["TT", "Trinidad Tobago"], ["TN", "Tunisia"], ["TR", "Turkey"], ["TM", "Turkmenistan"], ["UA", "Ukraine"], ["AE", "UAE"], ["GB", "United Kingdom"], ["US", "USA"], ["UY", "Uruguay"], ["UZ", "Uzbekistan"], ["VU", "Vanuatu"], ["VE", "Venezuela"], ["VN", "Vietnam"], ["VI", "Virgin Islands"], ["EH", "Western Sahara"], ["ZM", "Zambia"], ["ZW", "Zimbabwe"]]; super(); this.y = 1000; fx.zoomIn(this, 0.5, 0.25, this.x, this.y, this.x, 0, 10, "linear", null); inputName = new inputField(); inputName.x = offsetX; inputName.y = offsetY; setInput(inputName); inputEmail = new inputField(); inputEmail.x = offsetX; inputEmail.y = (offsetY + spacer); inputEmail.textInput.text = textOptional; setInput(inputEmail); inputCountries = new ComboBox(); inputCountries.setSize(160, 22); inputCountries.setStyle("color", 0xFF0000); _local1 = new TextFormat(); _local1.size = 11; _local1.color = 0xDDDDDD; inputCountries.textField.setStyle("textFormat", _local1); inputCountries.dropdown.setRendererStyle("textFormat", _local1); _local2 = 0; while (_local2 < countryArray.length) { inputCountries.addItem({label:countryArray[_local2][1], data:countryArray[_local2][0]}); _local2++; }; inputCountries.move(offsetX, (offsetY + (2 * spacer))); inputCountries.addEventListener(MouseEvent.CLICK, inputClear); inputSubmit = new submitButton(); inputSubmit.x = offsetX; inputSubmit.y = (offsetY + (4 * spacer)); inputSubmit.stop(); inputSubmit.addEventListener(MouseEvent.ROLL_OVER, inputSubmitHover); inputSubmit.addEventListener(MouseEvent.ROLL_OUT, inputSubmitRevert); inputSubmit.addEventListener(MouseEvent.CLICK, validate); addChild(inputName); addChild(inputEmail); addChild(inputCountries); addChild(inputSubmit); btnBack.addEventListener(MouseEvent.CLICK, mainMenu); } public function inputSubmitRevert(_arg1:MouseEvent){ _arg1.target.gotoAndStop(1); } private function validateEmail(_arg1:String):Boolean{ var _local2:RegExp; var _local3:Object; _local2 = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/; _local3 = _local2.exec(_arg1); if (_local3 == null){ return (false); }; return (true); } function validate(_arg1:MouseEvent){ inputSubmit.gotoAndPlay(3); inputSubmit.alpha = 50; if (inputName.textInput.text.length > 1){ if ((((((inputEmail.textInput.text.length == 1)) || (validateEmail(inputEmail.textInput.text)))) || ((inputEmail.textInput.text == textOptional)))){ if (inputCountries.selectedIndex > 0){ fx.zoomIn(this, 0, 0.25, this.x, this.y, this.x, (this.y - 610), 10, "linear", submitData); } else { inputCountries.filters = [glow]; inputSubmit.alpha = 100; return (false); }; } else { inputEmail.filters = [glow]; inputSubmit.alpha = 100; return (false); }; } else { inputName.filters = [glow]; inputSubmit.alpha = 100; return (false); }; } private function submitData(){ var user:String; var email:String; var img:String; var rc4_text:String; var rc4:*; var rc4_hash:*; var url:String; var variables:URLVariables; var request:URLRequest; user = inputName.textInput.text; user.replace("|", ""); user.replace(",", ""); email = inputEmail.textInput.text; if (email == textOptional){ email = ""; }; img = inputCountries.selectedItem.data; rc4_text = (email + "|"); rc4_text = (rc4_text + (user + "|")); rc4_text = (rc4_text + (((score + "|") + checksum(score.toString())) + "|")); rc4_text = (rc4_text + (((score2 + "|") + checksum(score2.toString())) + "|")); rc4_text = (rc4_text + (((img + "|") + checksum(img.toString())) + "|")); rc4_text = (rc4_text + checksum(email)); rc4 = new RC4(); rc4_hash = rc4.encrypt(rc4_text, KEY); url = Constants.URL_SUBMIT_SCORE; variables = new URLVariables(); variables.xj25 = rc4_hash; request = new URLRequest(url); request.data = variables; request.method = URLRequestMethod.POST; loader = new URLLoader(); loader.addEventListener(Event.COMPLETE, thanks); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, thanks); loader.addEventListener(IOErrorEvent.IO_ERROR, thanks); try { loader.load(request); } catch(e:Error) { }; } private function checksum(_arg1:String){ var _local2:Number; var _local3:*; _local2 = 0; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + _arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } public function setScore(_arg1){ score = _arg1; if ((score is Number)){ scoreText.text = fx.padScore(score, PADDING); } else { scoreText.text = _arg1; }; } public function inputRevert(_arg1:MouseEvent){ _arg1.target.hover.visible = false; } private function is_null(_arg1:String){ if ((((_arg1 == null)) || ((_arg1 == "")))){ return ("null"); }; return (_arg1); } public function setInput(_arg1:MovieClip){ _arg1.hover.visible = false; _arg1.addEventListener(MouseEvent.ROLL_OVER, inputHover); _arg1.addEventListener(MouseEvent.ROLL_OUT, inputRevert); _arg1.addEventListener(MouseEvent.CLICK, inputClick); } public function inputHover(_arg1:MouseEvent){ _arg1.target.hover.visible = true; } public function inputClear(_arg1:MouseEvent){ _arg1.target.filters = []; _arg1.target.parent.filters = []; } private function thanks(_arg1:Event){ fx.zoomIn(this, 0.5, 0.25, this.x, this.y, this.x, (this.y - 480), 10, "linear", null); fx.zoomIn(btnBack, 0.5, 0.25, btnBack.x, 2000, btnBack.x, 1124, 10, "linear", null); } public function mainMenu(_arg1:MouseEvent){ Root.restart(); } public function inputSubmitHover(_arg1:MouseEvent){ _arg1.target.gotoAndStop(2); } public function inputClick(_arg1:MouseEvent){ _arg1.target.filters = []; _arg1.target.parent.filters = []; if (_arg1.target.text == textOptional){ _arg1.target.text = ""; }; } } }//package
Section 140
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 141
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 142
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 143
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 144
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 145
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 146
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 147
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 148
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 149
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 150
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 151
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 152
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 153
//Sound_Bounce (Sound_Bounce) package { import flash.media.*; public dynamic class Sound_Bounce extends Sound { } }//package
Section 154
//Sound_Bullet (Sound_Bullet) package { import flash.media.*; public dynamic class Sound_Bullet extends Sound { } }//package
Section 155
//Sound_Click (Sound_Click) package { import flash.media.*; public dynamic class Sound_Click extends Sound { } }//package
Section 156
//Sound_Explode_000 (Sound_Explode_000) package { import flash.media.*; public dynamic class Sound_Explode_000 extends Sound { } }//package
Section 157
//Sound_Explode_001 (Sound_Explode_001) package { import flash.media.*; public dynamic class Sound_Explode_001 extends Sound { } }//package
Section 158
//Sound_Explode_002 (Sound_Explode_002) package { import flash.media.*; public dynamic class Sound_Explode_002 extends Sound { } }//package
Section 159
//Sound_Explode_003 (Sound_Explode_003) package { import flash.media.*; public dynamic class Sound_Explode_003 extends Sound { } }//package
Section 160
//Sound_Explode_004 (Sound_Explode_004) package { import flash.media.*; public dynamic class Sound_Explode_004 extends Sound { } }//package
Section 161
//Sound_Explode_005 (Sound_Explode_005) package { import flash.media.*; public dynamic class Sound_Explode_005 extends Sound { } }//package
Section 162
//Sound_Explode_Smart (Sound_Explode_Smart) package { import flash.media.*; public dynamic class Sound_Explode_Smart extends Sound { } }//package
Section 163
//Sound_Gameover (Sound_Gameover) package { import flash.media.*; public dynamic class Sound_Gameover extends Sound { } }//package
Section 164
//Sound_Intro (Sound_Intro) package { import flash.media.*; public dynamic class Sound_Intro extends Sound { } }//package
Section 165
//Sound_Missile (Sound_Missile) package { import flash.media.*; public dynamic class Sound_Missile extends Sound { } }//package
Section 166
//Sound_Powerup (Sound_Powerup) package { import flash.media.*; public dynamic class Sound_Powerup extends Sound { } }//package
Section 167
//Sound_Spawn (Sound_Spawn) package { import flash.media.*; public dynamic class Sound_Spawn extends Sound { } }//package
Section 168
//Sound_Zapper (Sound_Zapper) package { import flash.media.*; public dynamic class Sound_Zapper extends Sound { } }//package
Section 169
//SoundManager (SoundManager) package { import flash.events.*; import flash.media.*; public class SoundManager { private var music_position:Number;// = 0 private var sound_zapper:Sound_Zapper; private var sound_bullet_channel:SoundChannel;// = null private var sound_explode_asteroid:Sound_Explode_001; private var sound_explode_000:Sound_Explode_000; private var sound_explode_001:Sound_Explode_005; private var sound_explode_002:Sound_Explode_002; private var sound_explode_003:Sound_Explode_003; private var sound_explode_004:Sound_Explode_004; private var music:SoundChannel; private var music_track:Sound; private var sound_bullet:Sound_Bullet; private var sound_powerup:Sound_Powerup; private var sound_bounce:Sound_Bounce; private var sound_explode_smart:Sound_Explode_Smart; private var sound_intro:Sound_Intro; private var sound_spawn:Sound_Spawn; private var sound_zapper_channel:SoundChannel;// = null private var sound_click:Sound_Click; public var musicEnabled:Boolean;// = false public var soundsEnabled:Boolean;// = true private var sound_gameover:Sound_Gameover; private var sound_missile:Sound_Missile; private static var _instance:SoundManager = null; public function SoundManager(){ soundsEnabled = true; musicEnabled = false; sound_intro = new Sound_Intro(); sound_spawn = new Sound_Spawn(); sound_bullet = new Sound_Bullet(); sound_bullet_channel = null; sound_explode_000 = new Sound_Explode_000(); sound_explode_001 = new Sound_Explode_005(); sound_explode_002 = new Sound_Explode_002(); sound_explode_003 = new Sound_Explode_003(); sound_explode_004 = new Sound_Explode_004(); sound_explode_asteroid = new Sound_Explode_001(); sound_explode_smart = new Sound_Explode_Smart(); sound_click = new Sound_Click(); sound_powerup = new Sound_Powerup(); sound_gameover = new Sound_Gameover(); sound_zapper = new Sound_Zapper(); sound_zapper_channel = null; sound_missile = new Sound_Missile(); sound_bounce = new Sound_Bounce(); music_track = new Sound(); music_position = 0; super(); _instance = this; if (!musicEnabled){ music_track = new musicTrack(); startMusic(); }; } public function musicRestart(_arg1:Event){ music.stop(); music = music_track.play(0, 9999); } public function playSound(_arg1:String){ if (soundsEnabled){ switch (_arg1){ case "Sound_Intro": sound_intro.play(0, 1); break; case "Sound_Spawn": sound_spawn.play(0, 1); break; case "Sound_Bullet": if ((((sound_bullet_channel == null)) || ((sound_bullet_channel.position == 0)))){ sound_bullet_channel = sound_bullet.play(0, 1); }; break; case "Sound_Gameover": sound_gameover.play(0, 1); break; case "Sound_Click": sound_click.play(0, 1); break; case "Sound_Powerup": sound_powerup.play(0, 1); break; case "Sound_Explode_Smart": sound_explode_smart.play(0, 1); break; case "Sound_Explode_000": sound_explode_001.play(0, 1); break; case "Sound_Explode_001": sound_explode_001.play(0, 1); break; case "Sound_Explode_002": sound_explode_002.play(0, 1); break; case "Sound_Explode_003": sound_explode_003.play(0, 1); break; case "Sound_Explode_004": sound_explode_004.play(0, 1); break; case "Sound_Explode_Asteroid": sound_explode_asteroid.play(0, 1); break; case "Sound_Bounce": sound_bounce.play(0, 1); break; case "Sound_Zapper": sound_zapper_channel = sound_zapper.play(0, 1); break; case "Sound_Missile": sound_missile.play(0, 1); break; }; }; } public function stopMusic(){ musicEnabled = false; music.stop(); } public function pauseMusic(_arg1){ if (_arg1){ music_position = music.position; music.stop(); } else { music_track.play(music_position, 9999); }; } public function startMusic(){ var _local1:SoundTransform; if (!musicEnabled){ music = music_track.play(0, 999, null); musicEnabled = true; _local1 = music.soundTransform; _local1.volume = 0.4; music.soundTransform = _local1; }; } public function stopSounds(){ } public static function getInstance():SoundManager{ if (_instance == null){ _instance = new (SoundManager); }; return (_instance); } } }//package
Section 170
//Sprites (Sprites) package { import flash.display.*; import com.markfennell.display.*; import flash.text.*; public class Sprites extends Sprite { public var hexagonSprite:BitmapSprite; public var playerSprite:BitmapSprite; public var shardSpritePaleBlue:BitmapSprite; public var snakeHeadSprite:BitmapSprite; private var angleStep:Number; public var thrustSprite:BitmapSprite; private var percent:int;// = 0 public var shardSpriteBlue:BitmapSprite; private var console:TextField; public var shardSpriteRed:BitmapSprite; public var bulletSprite:BitmapSprite; public var asteroidSpriteMid1:BitmapSprite; public var asteroidSpriteMid2:BitmapSprite; public var asteroidSpriteMid0:BitmapSprite; public var snakeSegmentSprite:BitmapSprite; public var redSquareSprite:BitmapSprite; public var shardSpriteGreen:BitmapSprite; public var asteroidSpriteSmall1:BitmapSprite; public var asteroidSpriteSmall0:BitmapSprite; private var percentageStep:Number; public var shardSpriteYellow:BitmapSprite; public var yellowTriangleSprite:BitmapSprite; public var asteroidSpriteSmall2:BitmapSprite; public var shardSpriteWhite:BitmapSprite; public var missileSprite:BitmapSprite; public var asteroidSpriteBig0:BitmapSprite; public var asteroidSpriteBig1:BitmapSprite; private var frames:Number; private var spriteNum:int;// = 23 public var greenTriangleSprite:BitmapSprite; public var shardSpritePurple:BitmapSprite; public var blueTriangleSprite:BitmapSprite; private static var _instance:Sprites = null; public function Sprites(){ percent = 0; spriteNum = 23; percentageStep = (100 / spriteNum); super(); _instance = this; init(); } public function init(){ frames = Constants.ROTATION_FRAMES_PLAYER; angleStep = (Constants.PI2 - (Constants.PI2 / frames)); playerSprite = new BitmapSprite(new src_player(), 40, 40, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); bulletSprite = new BitmapSprite(new src_bullet(), 20, 20, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); thrustSprite = new BitmapSprite(new src_thrust(), 20, 20, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); frames = Constants.ROTATION_FRAMES_ASTEROID; angleStep = (Constants.PI2 - (Constants.PI2 / frames)); asteroidSpriteBig0 = new BitmapSprite(new asteroidBig0(), 120, 120, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); asteroidSpriteBig1 = new BitmapSprite(new asteroidBig1(), 120, 120, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); asteroidSpriteMid0 = new BitmapSprite(new asteroidMid0(), 80, 80, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); asteroidSpriteMid1 = new BitmapSprite(new asteroidMid1(), 80, 80, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); asteroidSpriteMid2 = new BitmapSprite(new asteroidMid2(), 80, 80, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); asteroidSpriteSmall0 = new BitmapSprite(new asteroidSmall0(), 50, 50, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); asteroidSpriteSmall1 = new BitmapSprite(new asteroidSmall1(), 50, 50, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); asteroidSpriteSmall2 = new BitmapSprite(new asteroidSmall2(), 50, 50, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); frames = Constants.ROTATION_FRAMES_EXPLOSION; angleStep = (Constants.PI2 - (Constants.PI2 / frames)); shardSpriteBlue = new BitmapSprite(new src_shard_blue(), 100, 100, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); shardSpriteGreen = new BitmapSprite(new src_shard_green(), 100, 100, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); shardSpritePurple = new BitmapSprite(new src_shard_purple(), 100, 100, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); shardSpriteYellow = new BitmapSprite(new src_shard_yellow(), 100, 100, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); shardSpritePaleBlue = new BitmapSprite(new src_shard_paleblue(), 100, 100, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); shardSpriteRed = new BitmapSprite(new src_shard_red(), 100, 100, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); frames = Constants.ROTATION_FRAMES_SMARTBOMB; angleStep = (Constants.PI2 - (Constants.PI2 / frames)); shardSpriteWhite = new BitmapSprite(new src_shard_white(), 100, 100, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); frames = Constants.ROTATION_ENEMY_FRAMES; angleStep = (Constants.PI2 - (Constants.PI2 / frames)); blueTriangleSprite = new BitmapSprite(new src_blue_triangle(), 40, 40, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); greenTriangleSprite = new BitmapSprite(new src_green_triangle(), 40, 40, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); yellowTriangleSprite = new BitmapSprite(new src_yellow_triangle(), 40, 40, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); redSquareSprite = new BitmapSprite(new src_red_square(), 40, 40, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); snakeHeadSprite = new BitmapSprite(new src_snake_head(), 40, 40, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); snakeSegmentSprite = new BitmapSprite(new src_snake_segment(), 40, 40, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); hexagonSprite = new BitmapSprite(new src_polygon(), 40, 40, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); missileSprite = new BitmapSprite(new src_missile(), 20, 20, 1, 1, 1, 1, 0, angleStep, frames); updateStatus(); } public function updateStatus(){ percent = (percent + percentageStep); percent = int(percent); } public static function getInstance():Sprites{ return (_instance); } } }//package
Section 171
//src_blue_triangle (src_blue_triangle) package { import flash.display.*; public dynamic class src_blue_triangle extends MovieClip { } }//package
Section 172
//src_bullet (src_bullet) package { import flash.display.*; public dynamic class src_bullet extends MovieClip { } }//package
Section 173
//src_gameover (src_gameover) package { import flash.display.*; import flash.text.*; public dynamic class src_gameover extends MovieClip { public var scoreText:TextField; } }//package
Section 174
//src_green_triangle (src_green_triangle) package { import flash.display.*; public dynamic class src_green_triangle extends MovieClip { } }//package
Section 175
//src_missile (src_missile) package { import flash.display.*; public dynamic class src_missile extends MovieClip { } }//package
Section 176
//src_player (src_player) package { import flash.display.*; public dynamic class src_player extends MovieClip { } }//package
Section 177
//src_polygon (src_polygon) package { import flash.display.*; public dynamic class src_polygon extends MovieClip { } }//package
Section 178
//src_powerup (src_powerup) package { import flash.display.*; public dynamic class src_powerup extends MovieClip { public var powerup:MovieClip; } }//package
Section 179
//src_red_square (src_red_square) package { import flash.display.*; public dynamic class src_red_square extends MovieClip { } }//package
Section 180
//src_shard_blue (src_shard_blue) package { import flash.display.*; public dynamic class src_shard_blue extends MovieClip { } }//package
Section 181
//src_shard_green (src_shard_green) package { import flash.display.*; public dynamic class src_shard_green extends MovieClip { } }//package
Section 182
//src_shard_paleblue (src_shard_paleblue) package { import flash.display.*; public dynamic class src_shard_paleblue extends MovieClip { } }//package
Section 183
//src_shard_purple (src_shard_purple) package { import flash.display.*; public dynamic class src_shard_purple extends MovieClip { } }//package
Section 184
//src_shard_red (src_shard_red) package { import flash.display.*; public dynamic class src_shard_red extends MovieClip { } }//package
Section 185
//src_shard_white (src_shard_white) package { import flash.display.*; public dynamic class src_shard_white extends MovieClip { } }//package
Section 186
//src_shard_yellow (src_shard_yellow) package { import flash.display.*; public dynamic class src_shard_yellow extends MovieClip { } }//package
Section 187
//src_shield (src_shield) package { import flash.display.*; public dynamic class src_shield extends MovieClip { public var powerup:MovieClip; } }//package
Section 188
//src_snake_head (src_snake_head) package { import flash.display.*; public dynamic class src_snake_head extends MovieClip { } }//package
Section 189
//src_snake_segment (src_snake_segment) package { import flash.display.*; public dynamic class src_snake_segment extends MovieClip { } }//package
Section 190
//src_spawn (src_spawn) package { import flash.display.*; public dynamic class src_spawn extends MovieClip { public function src_spawn(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 191
//src_thrust (src_thrust) package { import flash.display.*; public dynamic class src_thrust extends MovieClip { } }//package
Section 192
//src_yellow_triangle (src_yellow_triangle) package { import flash.display.*; public dynamic class src_yellow_triangle extends MovieClip { } }//package
Section 193
//starMC (starMC) package { import flash.display.*; public dynamic class starMC extends MovieClip { } }//package
Section 194
//submitButton (submitButton) package { import flash.display.*; public dynamic class submitButton extends MovieClip { public function submitButton(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 195
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 196
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:47 373 374
Symbol 3 MovieClip {fl.core.ComponentShim}Used by:20 46 47 373 374
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClip {List_skin}Uses:4Used by:47
Symbol 6 GraphicUsed by:7
Symbol 7 MovieClip {CellRenderer_upSkin}Uses:6Used by:20
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClip {CellRenderer_disabledSkin}Uses:8Used by:20
Symbol 10 GraphicUsed by:11 12
Symbol 11 MovieClip {CellRenderer_downSkin}Uses:10Used by:20
Symbol 12 MovieClip {CellRenderer_overSkin}Uses:10Used by:20
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClip {CellRenderer_selectedDisabledSkin}Uses:13Used by:20
Symbol 15 GraphicUsed by:16 17
Symbol 16 MovieClip {CellRenderer_selectedDownSkin}Uses:15Used by:20
Symbol 17 MovieClip {CellRenderer_selectedOverSkin}Uses:15Used by:20
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClip {CellRenderer_selectedUpSkin}Uses:18Used by:20
Symbol 20 MovieClip {fl.controls.listClasses.CellRenderer}Uses:7 3 9 11 12 14 16 17 19Used by:47
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClip {focusRectSkin}Uses:21Used by:46 47 373 374
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClip {ScrollTrack_skin}Uses:23Used by:46
Symbol 25 GraphicUsed by:27 28 31 34
Symbol 26 GraphicUsed by:27 28 31 34 36 39
Symbol 27 MovieClip {ScrollArrowUp_downSkin}Uses:25 26Used by:46
Symbol 28 MovieClip {ScrollArrowDown_downSkin}Uses:25 26Used by:46
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {ScrollThumb_downSkin}Uses:29Used by:46
Symbol 31 MovieClip {ScrollArrowDown_overSkin}Uses:25 26Used by:46
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClip {ScrollThumb_overSkin}Uses:32Used by:46
Symbol 34 MovieClip {ScrollArrowUp_overSkin}Uses:25 26Used by:46
Symbol 35 GraphicUsed by:36 39
Symbol 36 MovieClip {ScrollArrowUp_upSkin}Uses:35 26Used by:46
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClip {ScrollThumb_upSkin}Uses:37Used by:46
Symbol 39 MovieClip {ScrollArrowDown_upSkin}Uses:35 26Used by:46
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClip {ScrollArrowDown_disabledSkin}Uses:40Used by:46
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClip {ScrollArrowUp_disabledSkin}Uses:42Used by:46
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClip {ScrollBar_thumbIcon}Uses:44Used by:46
Symbol 46 MovieClip {fl.controls.ScrollBar}Uses:24 3 22 27 28 30 31 33 34 36 38 39 41 43 45Used by:47
Symbol 47 MovieClip {fl.controls.List}Uses:2 3 5 20 22 46Used by:374
Symbol 48 FontUsed by:49 57 201 202 203 204 261
Symbol 49 TextUses:48Used by:56
Symbol 50 FontUsed by:51 54 150 153 158 191 193 198 258
Symbol 51 TextUses:50Used by:53 55
Symbol 52 GraphicUsed by:53 55
Symbol 53 ButtonUses:51 52Used by:56 58 262
Symbol 54 TextUses:50Used by:55
Symbol 55 ButtonUses:54 52 51Used by:56 58 262
Symbol 56 MovieClip {credits_autoFire}Uses:49 53 55Used by:Timeline
Symbol 57 TextUses:48Used by:58
Symbol 58 MovieClip {credits_soundControls}Uses:57 53 55Used by:Timeline
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClipUses:59Used by:69 149 187 235
Symbol 61 GraphicUsed by:69 235
Symbol 62 GraphicUsed by:69
Symbol 63 GraphicUsed by:69
Symbol 64 GraphicUsed by:69 235
Symbol 65 GraphicUsed by:69 235
Symbol 66 GraphicUsed by:69
Symbol 67 GraphicUsed by:69 316
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClip {vector_fla.powerUp_61}Uses:60 61 62 63 64 65 66 67 68Used by:70
Symbol 70 MovieClip {src_powerup}Uses:69Used by:Timeline
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:Timeline
Symbol 73 FontUsed by:74 296 328 331 332 341 342 345 347 358
Symbol 74 TextUses:73Used by:Timeline
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:78
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClip {src_bullet}Uses:76 77Used by:Timeline
Symbol 79 GraphicUsed by:82 189
Symbol 80 GraphicUsed by:81 121
Symbol 81 MovieClipUses:80Used by:82 189
Symbol 82 MovieClip {src_player}Uses:79 81Used by:Timeline
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:87
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:87
Symbol 87 MovieClip {asteroidBig0}Uses:84 86Used by:Timeline
Symbol 88 GraphicUsed by:91
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:91
Symbol 91 MovieClip {asteroidMid0}Uses:88 90Used by:235  Timeline
Symbol 92 GraphicUsed by:95
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:95
Symbol 95 MovieClip {asteroidMid1}Uses:92 94Used by:149  Timeline
Symbol 96 GraphicUsed by:99
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClipUses:97Used by:99
Symbol 99 MovieClip {asteroidMid2}Uses:96 98Used by:Timeline
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:100Used by:104
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:102Used by:104
Symbol 104 MovieClip {asteroidSmall0}Uses:101 103Used by:235  Timeline
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClipUses:105Used by:109
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClipUses:107Used by:109
Symbol 109 MovieClip {asteroidSmall1}Uses:106 108Used by:235  Timeline
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:114
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClipUses:112Used by:114
Symbol 114 MovieClip {asteroidSmall2}Uses:111 113Used by:Timeline
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClipUses:115Used by:117
Symbol 117 MovieClip {src_green_triangle}Uses:116Used by:149 235  Timeline
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:118Used by:120
Symbol 120 MovieClip {src_blue_triangle}Uses:119Used by:149 235  Timeline
Symbol 121 MovieClipUses:80Used by:122
Symbol 122 MovieClip {src_snake_segment}Uses:121Used by:235  Timeline
Symbol 123 GraphicUsed by:124
Symbol 124 MovieClipUses:123Used by:125
Symbol 125 MovieClip {src_snake_head}Uses:124Used by:235  Timeline
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:128 129 130 131 132 147
Symbol 128 MovieClip {src_shard_purple}Uses:127Used by:Timeline
Symbol 129 MovieClip {src_shard_blue}Uses:127Used by:Timeline
Symbol 130 MovieClip {src_shard_green}Uses:127Used by:Timeline
Symbol 131 MovieClip {src_shard_paleblue}Uses:127Used by:Timeline
Symbol 132 MovieClip {src_shard_yellow}Uses:127Used by:Timeline
Symbol 133 GraphicUsed by:134
Symbol 134 MovieClipUses:133Used by:135
Symbol 135 MovieClip {src_thrust}Uses:134Used by:Timeline
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:138
Symbol 138 MovieClip {src_shard_white}Uses:137Used by:Timeline
Symbol 139 GraphicUsed by:140
Symbol 140 MovieClipUses:139Used by:141
Symbol 141 MovieClip {src_red_square}Uses:140Used by:149 235  Timeline
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClipUses:142Used by:146
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:144Used by:146
Symbol 146 MovieClip {asteroidBig1}Uses:143 145Used by:Timeline
Symbol 147 MovieClip {src_shard_red}Uses:127Used by:Timeline
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClip {credits_title}Uses:95 117 120 141 60 148Used by:Timeline
Symbol 150 TextUses:50Used by:152
Symbol 151 GraphicUsed by:152
Symbol 152 Button {credits_moreBtn}Uses:150 151Used by:Timeline
Symbol 153 TextUses:50Used by:157
Symbol 154 GraphicUsed by:157 159 192 194
Symbol 155 FontUsed by:156 182 195 196
Symbol 156 TextUses:155Used by:157 159 192 194
Symbol 157 Button {credits_playBtn}Uses:153 154 156Used by:Timeline
Symbol 158 TextUses:50Used by:159
Symbol 159 Button {credits_scoresBtn}Uses:158 154 156Used by:Timeline
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:186
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClipUses:162Used by:186
Symbol 164 FontUsed by:165 166 167 168 169 171
Symbol 165 EditableTextUses:164Used by:175
Symbol 166 EditableTextUses:164Used by:175
Symbol 167 EditableTextUses:164Used by:175
Symbol 168 EditableTextUses:164Used by:172
Symbol 169 EditableTextUses:164Used by:172
Symbol 170 GraphicUsed by:172
Symbol 171 EditableTextUses:164Used by:172
Symbol 172 ButtonUses:168 169 170 171Used by:175
Symbol 173 GraphicUsed by:174 319
Symbol 174 ButtonUses:173Used by:175
Symbol 175 MovieClip {Controls}Uses:165 166 167 172 174Used by:186
Symbol 176 FontUsed by:177 178 179 180 181 184 185
Symbol 177 EditableTextUses:176Used by:186
Symbol 178 TextUses:176Used by:186
Symbol 179 TextUses:176Used by:186
Symbol 180 EditableTextUses:176Used by:186
Symbol 181 EditableTextUses:176Used by:186
Symbol 182 TextUses:155Used by:183
Symbol 183 MovieClip {level_display}Uses:182Used by:186
Symbol 184 TextUses:176Used by:186
Symbol 185 EditableTextUses:176Used by:186
Symbol 186 MovieClip {HeadsUp}Uses:161 163 175 177 178 179 180 181 183 184 185Used by:Timeline
Symbol 187 MovieClip {vector_fla.shield_63}Uses:60Used by:188
Symbol 188 MovieClip {src_shield}Uses:187Used by:Timeline
Symbol 189 MovieClipUses:79 81Used by:190
Symbol 190 MovieClip {src_spawn}Uses:189Used by:Timeline
Symbol 191 TextUses:50Used by:192
Symbol 192 Button {credits_helpBtn}Uses:191 154 156Used by:Timeline
Symbol 193 TextUses:50Used by:194
Symbol 194 Button {credits_backBtn}Uses:193 154 156Used by:Timeline
Symbol 195 TextUses:155Used by:197
Symbol 196 EditableTextUses:155Used by:197
Symbol 197 MovieClip {src_gameover}Uses:195 196Used by:Timeline
Symbol 198 TextUses:50Used by:200
Symbol 199 GraphicUsed by:200
Symbol 200 Button {credits_submitBtn}Uses:198 199Used by:Timeline
Symbol 201 TextUses:48Used by:235
Symbol 202 TextUses:48Used by:235
Symbol 203 TextUses:48Used by:235
Symbol 204 TextUses:48Used by:235
Symbol 205 GraphicUsed by:235
Symbol 206 GraphicUsed by:235
Symbol 207 FontUsed by:208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 230 231 320
Symbol 208 TextUses:207Used by:235
Symbol 209 TextUses:207Used by:235
Symbol 210 TextUses:207Used by:235
Symbol 211 TextUses:207Used by:235
Symbol 212 TextUses:207Used by:235
Symbol 213 TextUses:207Used by:235
Symbol 214 TextUses:207Used by:235
Symbol 215 TextUses:207Used by:235
Symbol 216 TextUses:207Used by:235
Symbol 217 TextUses:207Used by:235
Symbol 218 TextUses:207Used by:235
Symbol 219 TextUses:207Used by:235
Symbol 220 TextUses:207Used by:235
Symbol 221 TextUses:207Used by:235
Symbol 222 TextUses:207Used by:235
Symbol 223 TextUses:207Used by:226
Symbol 224 TextUses:207Used by:226
Symbol 225 GraphicUsed by:226
Symbol 226 ButtonUses:223 224 225Used by:235
Symbol 227 GraphicUsed by:228
Symbol 228 MovieClipUses:227Used by:229
Symbol 229 MovieClip {src_polygon}Uses:228Used by:235  Timeline
Symbol 230 TextUses:207Used by:235
Symbol 231 TextUses:207Used by:235
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClipUses:232Used by:234
Symbol 234 MovieClip {src_yellow_triangle}Uses:233Used by:235  Timeline
Symbol 235 MovieClip {credits_help}Uses:141 201 202 120 117 122 125 91 104 109 203 204 60 61 205 64 65 206 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 226 229 230 231 234Used by:Timeline
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:236Used by:238
Symbol 238 MovieClip {src_missile}Uses:237Used by:Timeline
Symbol 239 GraphicUsed by:257
Symbol 240 Sound {musicTrack}Used by:257
Symbol 241 Sound {Sound_Missile}Used by:257
Symbol 242 Sound {Sound_Zapper}Used by:257
Symbol 243 Sound {Sound_Click}Used by:257
Symbol 244 Sound {Sound_Powerup}Used by:257
Symbol 245 Sound {Sound_Gameover}Used by:257
Symbol 246 Sound {Sound_Bounce}Used by:257
Symbol 247 Sound {Sound_Explode_Smart}Used by:257
Symbol 248 Sound {Sound_Explode_005}Used by:257
Symbol 249 Sound {Sound_Explode_004}Used by:257
Symbol 250 Sound {Sound_Explode_003}Used by:257
Symbol 251 Sound {Sound_Explode_002}Used by:257
Symbol 252 Sound {Sound_Explode_001}Used by:257
Symbol 253 Sound {Sound_Explode_000}Used by:257
Symbol 254 Sound {Sound_Bullet}Used by:257
Symbol 255 Sound {Sound_Spawn}Used by:257
Symbol 256 Sound {Sound_Intro}Used by:257
Symbol 257 MovieClipUses:239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256Used by:Timeline
Symbol 258 TextUses:50Used by:260
Symbol 259 GraphicUsed by:260
Symbol 260 Button {credits_playgameBtn}Uses:258 259Used by:Timeline
Symbol 261 TextUses:48Used by:262
Symbol 262 MovieClip {credits_musicControls}Uses:261 53 55Used by:Timeline
Symbol 263 BitmapUsed by:264
Symbol 264 GraphicUses:263Used by:265
Symbol 265 MovieClipUses:264Used by:266
Symbol 266 MovieClip {vector_fla.mc_bomb_86}Uses:265Used by:318
Symbol 267 GraphicUsed by:268
Symbol 268 MovieClipUses:267Used by:275
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClipUses:269Used by:275
Symbol 271 ShapeTweeningUsed by:275
Symbol 272 ShapeTweeningUsed by:275
Symbol 273 ShapeTweeningUsed by:275
Symbol 274 GraphicUsed by:275
Symbol 275 MovieClipUses:268 270 271 272 273 274Used by:276
Symbol 276 MovieClipUses:275Used by:280
Symbol 277 GraphicUsed by:278
Symbol 278 MovieClipUses:277Used by:279
Symbol 279 MovieClipUses:278Used by:280
Symbol 280 MovieClipUses:276 279Used by:281
Symbol 281 MovieClipUses:280Used by:282
Symbol 282 MovieClipUses:281Used by:318
Symbol 283 SoundUsed by:318
Symbol 284 SoundUsed by:318
Symbol 285 ShapeTweeningUsed by:318
Symbol 286 GraphicUsed by:289
Symbol 287 BitmapUsed by:288
Symbol 288 GraphicUses:287Used by:289 295
Symbol 289 MovieClipUses:286 288Used by:318
Symbol 290 GraphicUsed by:291
Symbol 291 MovieClipUses:290Used by:318
Symbol 292 GraphicUsed by:318
Symbol 293 ShapeTweeningUsed by:318
Symbol 294 GraphicUsed by:295
Symbol 295 MovieClipUses:294 288Used by:318
Symbol 296 TextUses:73Used by:301
Symbol 297 GraphicUsed by:301
Symbol 298 ShapeTweeningUsed by:300
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClipUses:298 299Used by:301
Symbol 301 MovieClipUses:296 297 300Used by:318
Symbol 302 GraphicUsed by:318
Symbol 303 GraphicUsed by:318
Symbol 304 GraphicUsed by:318
Symbol 305 GraphicUsed by:318
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClipUses:306Used by:318
Symbol 308 GraphicUsed by:318
Symbol 309 GraphicUsed by:318
Symbol 310 GraphicUsed by:318
Symbol 311 GraphicUsed by:318
Symbol 312 GraphicUsed by:318
Symbol 313 GraphicUsed by:318
Symbol 314 GraphicUsed by:318
Symbol 315 GraphicUsed by:318
Symbol 316 MovieClip {starMC}Uses:67Used by:318
Symbol 317 SoundUsed by:318
Symbol 318 MovieClip {vector_fla.logo_85}Uses:266 282 283 284 285 289 291 292 293 295 301 302 303 304 305 307 308 309 310 311 312 313 314 315 316 317Used by:Timeline
Symbol 319 ButtonUses:173Used by:Timeline
Symbol 320 TextUses:207Used by:Timeline
Symbol 321 ShapeTweeningUsed by:323
Symbol 322 GraphicUsed by:323
Symbol 323 MovieClip {vector_fla.score_107}Uses:321 322Used by:324
Symbol 324 MovieClip {vector_fla.score_106}Uses:323Used by:376
Symbol 325 BitmapUsed by:326
Symbol 326 GraphicUses:325Used by:327
Symbol 327 MovieClipUses:326Used by:376
Symbol 328 TextUses:73Used by:375
Symbol 329 FontUsed by:330
Symbol 330 TextUses:329Used by:375
Symbol 331 EditableTextUses:73Used by:375
Symbol 332 TextUses:73Used by:375
Symbol 333 GraphicUsed by:334 340
Symbol 334 MovieClipUses:333Used by:340
Symbol 335 GraphicUsed by:336 337
Symbol 336 MovieClipUses:335Used by:337
Symbol 337 MovieClipUses:335 336Used by:338
Symbol 338 MovieClipUses:337Used by:340
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClip {vector_fla.scoreboard_110}Uses:333 334 338 339Used by:375
Symbol 341 TextUses:73Used by:344
Symbol 342 TextUses:73Used by:344
Symbol 343 GraphicUsed by:344
Symbol 344 ButtonUses:341 342 343Used by:375
Symbol 345 TextUses:73Used by:375
Symbol 346 GraphicUsed by:375
Symbol 347 TextUses:73Used by:375
Symbol 348 GraphicUsed by:375
Symbol 349 GraphicUsed by:355
Symbol 350 GraphicUsed by:351
Symbol 351 MovieClipUses:350Used by:355
Symbol 352 GraphicUsed by:355
Symbol 353 FontUsed by:354
Symbol 354 EditableTextUses:353Used by:355
Symbol 355 MovieClip {inputField}Uses:349 351 352 354Used by:375
Symbol 356 GraphicUsed by:360
Symbol 357 GraphicUsed by:360
Symbol 358 TextUses:73Used by:360
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClip {submitButton}Uses:356 357 358 359Used by:375
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClip {ComboBox_upSkin}Uses:361Used by:374
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClip {ComboBox_disabledSkin}Uses:363Used by:374
Symbol 365 GraphicUsed by:366
Symbol 366 MovieClip {ComboBox_overSkin}Uses:365Used by:374
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClip {ComboBox_downSkin}Uses:367Used by:374
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClip {TextInput_disabledSkin}Uses:369Used by:373
Symbol 371 GraphicUsed by:372
Symbol 372 MovieClip {TextInput_upSkin}Uses:371Used by:373
Symbol 373 MovieClip {fl.controls.TextInput}Uses:2 3 370 372 22Used by:374
Symbol 374 MovieClip {fl.controls.ComboBox}Uses:2 3 22 362 364 366 368 373 47Used by:375
Symbol 375 MovieClip {scoreboard}Uses:328 330 331 332 340 344 345 346 347 348 355 360 374Used by:376
Symbol 376 MovieClip {vector_fla.score_105}Uses:324 327 375Used by:Timeline

Instance Names

"background"Frame 1Symbol 72 MovieClip
"btn"Frame 16Symbol 319 Button
"scoreboard"Frame 45Symbol 376 MovieClip {vector_fla.score_105}
"btnOn"Symbol 56 MovieClip {credits_autoFire} Frame 1Symbol 53 Button
"btnOff"Symbol 56 MovieClip {credits_autoFire} Frame 1Symbol 55 Button
"btnOn"Symbol 58 MovieClip {credits_soundControls} Frame 1Symbol 53 Button
"btnOff"Symbol 58 MovieClip {credits_soundControls} Frame 1Symbol 55 Button
"ring"Symbol 69 MovieClip {vector_fla.powerUp_61} Frame 1Symbol 60 MovieClip
"powerup"Symbol 70 MovieClip {src_powerup} Frame 1Symbol 69 MovieClip {vector_fla.powerUp_61}
"vector4"Symbol 149 MovieClip {credits_title} Frame 1Symbol 95 MovieClip {asteroidMid1}
"vector2"Symbol 149 MovieClip {credits_title} Frame 1Symbol 117 MovieClip {src_green_triangle}
"vector3"Symbol 149 MovieClip {credits_title} Frame 1Symbol 120 MovieClip {src_blue_triangle}
"vector1"Symbol 149 MovieClip {credits_title} Frame 1Symbol 141 MovieClip {src_red_square}
"vector5"Symbol 149 MovieClip {credits_title} Frame 1Symbol 60 MovieClip
"textSound"Symbol 175 MovieClip {Controls} Frame 1Symbol 165 EditableText
"textPause"Symbol 175 MovieClip {Controls} Frame 1Symbol 166 EditableText
"textMusic"Symbol 175 MovieClip {Controls} Frame 1Symbol 167 EditableText
"btnBlastone"Symbol 175 MovieClip {Controls} Frame 1Symbol 172 Button
"btnMusic"Symbol 175 MovieClip {Controls} Frame 1Symbol 174 Button
"btnSound"Symbol 175 MovieClip {Controls} Frame 1Symbol 174 Button
"btnPause"Symbol 175 MovieClip {Controls} Frame 1Symbol 174 Button
"healthBar"Symbol 186 MovieClip {HeadsUp} Frame 1Symbol 161 MovieClip
"controls"Symbol 186 MovieClip {HeadsUp} Frame 1Symbol 175 MovieClip {Controls}
"scoreText"Symbol 186 MovieClip {HeadsUp} Frame 1Symbol 177 EditableText
"livesText"Symbol 186 MovieClip {HeadsUp} Frame 1Symbol 180 EditableText
"bombText"Symbol 186 MovieClip {HeadsUp} Frame 1Symbol 181 EditableText
"levelUp"Symbol 186 MovieClip {HeadsUp} Frame 1Symbol 183 MovieClip {level_display}
"levelText"Symbol 186 MovieClip {HeadsUp} Frame 1Symbol 185 EditableText
"ring"Symbol 187 MovieClip {vector_fla.shield_63} Frame 1Symbol 60 MovieClip
"ring"Symbol 187 MovieClip {vector_fla.shield_63} Frame 3Symbol 60 MovieClip
"ring"Symbol 187 MovieClip {vector_fla.shield_63} Frame 6Symbol 60 MovieClip
"ring"Symbol 187 MovieClip {vector_fla.shield_63} Frame 9Symbol 60 MovieClip
"ring"Symbol 187 MovieClip {vector_fla.shield_63} Frame 11Symbol 60 MovieClip
"powerup"Symbol 188 MovieClip {src_shield} Frame 1Symbol 187 MovieClip {vector_fla.shield_63}
"scoreText"Symbol 197 MovieClip {src_gameover} Frame 1Symbol 196 EditableText
"vector1"Symbol 235 MovieClip {credits_help} Frame 1Symbol 141 MovieClip {src_red_square}
"ring1"Symbol 235 MovieClip {credits_help} Frame 1Symbol 60 MovieClip
"ring2"Symbol 235 MovieClip {credits_help} Frame 1Symbol 60 MovieClip
"ring3"Symbol 235 MovieClip {credits_help} Frame 1Symbol 60 MovieClip
"ring4"Symbol 235 MovieClip {credits_help} Frame 1Symbol 60 MovieClip
"ring5"Symbol 235 MovieClip {credits_help} Frame 1Symbol 60 MovieClip
"ring6"Symbol 235 MovieClip {credits_help} Frame 1Symbol 60 MovieClip
"ring7"Symbol 235 MovieClip {credits_help} Frame 1Symbol 60 MovieClip
"btnLink"Symbol 235 MovieClip {credits_help} Frame 1Symbol 226 Button
"btnOn"Symbol 262 MovieClip {credits_musicControls} Frame 1Symbol 53 Button
"btnOff"Symbol 262 MovieClip {credits_musicControls} Frame 1Symbol 55 Button
"guide"Symbol 266 MovieClip {vector_fla.mc_bomb_86} Frame 1Symbol 265 MovieClip
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 1Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"guide"Symbol 318 MovieClip {vector_fla.logo_85} Frame 20Symbol 289 MovieClip
"guide"Symbol 318 MovieClip {vector_fla.logo_85} Frame 27Symbol 289 MovieClip
"guide"Symbol 318 MovieClip {vector_fla.logo_85} Frame 29Symbol 295 MovieClip
"link"Symbol 318 MovieClip {vector_fla.logo_85} Frame 31Symbol 301 MovieClip
"guide"Symbol 318 MovieClip {vector_fla.logo_85} Frame 32Symbol 295 MovieClip
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 50Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 51Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 52Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 53Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 54Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 55Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 56Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 57Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 58Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"mc_bomb"Symbol 318 MovieClip {vector_fla.logo_85} Frame 59Symbol 266 MovieClip {vector_fla.mc_bomb_86}
"bar"Symbol 340 MovieClip {vector_fla.scoreboard_110} Frame 1Symbol 334 MovieClip
"hover"Symbol 355 MovieClip {inputField} Frame 1Symbol 351 MovieClip
"textInput"Symbol 355 MovieClip {inputField} Frame 1Symbol 354 EditableText
"scoreText"Symbol 375 MovieClip {scoreboard} Frame 1Symbol 331 EditableText
"preloaderBar"Symbol 375 MovieClip {scoreboard} Frame 1Symbol 340 MovieClip {vector_fla.scoreboard_110}
"btnBack"Symbol 375 MovieClip {scoreboard} Frame 1Symbol 344 Button
"__id2_"Symbol 375 MovieClip {scoreboard} Frame 1Symbol 374 MovieClip {fl.controls.ComboBox}
"scores"Symbol 376 MovieClip {vector_fla.score_105} Frame 1Symbol 375 MovieClip {scoreboard}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""

Labels

"preload"Frame 1
"export"Frame 9
"intro"Frame 16
"credits"Frame 23
"game"Frame 30
"bad"Frame 38
"submit"Frame 45
"spawn"Symbol 190 MovieClip {src_spawn} Frame 2




http://swfchan.com/9/40488/info.shtml
Created: 11/5 -2019 03:29:02 Last modified: 11/5 -2019 03:29:02 Server time: 09/05 -2024 22:54:57