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

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

StarFish Game - help the little fish to collect all star fish.swf

This is the info page for
Flash #91796

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


Text
<p align="center"><font face="akaDylan Plain" size="72" color="#b8f9ff" letterSpacing="0.000000" kerning="1">0%</font></p>

<p align="left"><font face="akaDylan Plain" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="left"><font face="akaDylan Plain" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">time: 000</font></p>

+1

-50!

ActionScript [AS3]

Section 1
//CDK (com.coreyoneil.collision.CDK) package com.coreyoneil.collision { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.text.*; import flash.errors.*; public class CDK { private var colorTransform2:ColorTransform; private var colorTransform1:ColorTransform; private var _returnAngleType:String; private var pixels1:ByteArray; private var pixels2:ByteArray; private var bmdResample:BitmapData; private var _returnAngle:Boolean; private var transMatrix2:Matrix; private var rect1:Rectangle; private var rect2:Rectangle; private var transMatrix1:Matrix; protected var objectCheckArray:Array; private var _alphaThreshold:Number; private var item1Registration:Point; private var bmd1:BitmapData; private var bmd2:BitmapData; protected var objectArray:Array; private var item2Registration:Point; protected var objectCollisionArray:Array; private var _numChildren:uint; private var colorExclusionArray:Array; public function CDK():void{ if (getQualifiedClassName(this) == "com.coreyoneil.collision::CDK"){ throw (new Error("CDK is an abstract class and is not meant for instantiation - use CollisionGroup or CollisionList")); }; init(); } public function get returnAngle():Boolean{ return (_returnAngle); } public function set returnAngle(_arg1:Boolean):void{ _returnAngle = _arg1; } protected function findCollisions(_arg1, _arg2):void{ var item1xDiff:Number; var item1yDiff:Number; var locY:Number; var locX:Number; var locStage:Point; var alpha1:uint; var alpha2:uint; var colorFlag:Boolean; var red1:uint; var red2:uint; var green1:uint; var green2:uint; var blue1:uint; var blue2:uint; var colorObj:Object; var aPlus:uint; var aMinus:uint; var rPlus:uint; var rMinus:uint; var gPlus:uint; var gMinus:uint; var bPlus:uint; var bMinus:uint; var item1Flags:uint; var item2Flags:uint; var n:uint; var angle:Number; var recordedCollision:Object; var item1 = _arg1; var item2 = _arg2; var item1_isText:Boolean; var item2_isText:Boolean; if ((item1 is TextField)){ item1_isText = ((item1.antiAliasType)=="advanced") ? true : false; item1.antiAliasType = ((item1.antiAliasType)=="advanced") ? "normal" : item1.antiAliasType; }; if ((item2 is TextField)){ item2_isText = ((item2.antiAliasType)=="advanced") ? true : false; item2.antiAliasType = ((item2.antiAliasType)=="advanced") ? "normal" : item2.antiAliasType; }; colorTransform1 = item1.transform.colorTransform; colorTransform2 = item2.transform.colorTransform; item1Registration = new Point(); item2Registration = new Point(); item1Registration = item1.localToGlobal(item1Registration); item2Registration = item2.localToGlobal(item2Registration); bmd1 = new BitmapData(item1.width, item1.height, true, 0xFFFFFF); bmd2 = new BitmapData(item1.width, item1.height, true, 0xFFFFFF); transMatrix1 = item1.transform.matrix; var currentObj:* = item1; while (currentObj.parent != null) { transMatrix1.concat(currentObj.parent.transform.matrix); currentObj = currentObj.parent; }; rect1 = item1.getBounds(currentObj); if (item1 != currentObj){ rect1.x = (rect1.x + currentObj.x); rect1.y = (rect1.y + currentObj.y); }; var _local4 = (item1Registration.x - rect1.left); item1xDiff = _local4; transMatrix1.tx = _local4; _local4 = (item1Registration.y - rect1.top); item1yDiff = _local4; transMatrix1.ty = _local4; transMatrix2 = item2.transform.matrix; currentObj = item2; while (currentObj.parent != null) { transMatrix2.concat(currentObj.parent.transform.matrix); currentObj = currentObj.parent; }; transMatrix2.tx = (item2Registration.x - rect1.left); transMatrix2.ty = (item2Registration.y - rect1.top); bmd1.draw(item1, transMatrix1, colorTransform1, null, null, true); bmd2.draw(item2, transMatrix2, colorTransform2, null, null, true); pixels1 = bmd1.getPixels(new Rectangle(0, 0, bmd1.width, bmd1.height)); pixels2 = bmd2.getPixels(new Rectangle(0, 0, bmd1.width, bmd1.height)); var k:uint; var value1:uint; var value2:uint; var collisionPoint:Number = -1; var overlap:Boolean; var overlapping:Array = []; var hasColors:int = colorExclusionArray.length; pixels1.position = 0; pixels2.position = 0; var pixelLength:int = pixels1.length; while (k < pixelLength) { k = pixels1.position; try { value1 = pixels1.readUnsignedInt(); value2 = pixels2.readUnsignedInt(); } catch(e:EOFError) { break; }; alpha1 = ((value1 >> 24) & 0xFF); alpha2 = ((value2 >> 24) & 0xFF); if ((((alpha1 > _alphaThreshold)) && ((alpha2 > _alphaThreshold)))){ colorFlag = false; if (hasColors){ red1 = ((value1 >> 16) & 0xFF); red2 = ((value2 >> 16) & 0xFF); green1 = ((value1 >> 8) & 0xFF); green2 = ((value2 >> 8) & 0xFF); blue1 = (value1 & 0xFF); blue2 = (value2 & 0xFF); n = 0; while (n < hasColors) { colorObj = Object(colorExclusionArray[n]); item1Flags = 0; item2Flags = 0; if ((((blue1 >= colorObj.bMinus)) && ((blue1 <= colorObj.bPlus)))){ item1Flags = (item1Flags + 1); }; if ((((blue2 >= colorObj.bMinus)) && ((blue2 <= colorObj.bPlus)))){ item2Flags = (item2Flags + 1); }; if ((((green1 >= colorObj.gMinus)) && ((green1 <= colorObj.gPlus)))){ item1Flags = (item1Flags + 1); }; if ((((green2 >= colorObj.gMinus)) && ((green2 <= colorObj.gPlus)))){ item2Flags = (item2Flags + 1); }; if ((((red1 >= colorObj.rMinus)) && ((red1 <= colorObj.rPlus)))){ item1Flags = (item1Flags + 1); }; if ((((red2 >= colorObj.rMinus)) && ((red2 <= colorObj.rPlus)))){ item2Flags = (item2Flags + 1); }; if ((((alpha1 >= colorObj.aMinus)) && ((alpha1 <= colorObj.aPlus)))){ item1Flags = (item1Flags + 1); }; if ((((alpha2 >= colorObj.aMinus)) && ((alpha2 <= colorObj.aPlus)))){ item2Flags = (item2Flags + 1); }; if ((((item1Flags == 4)) || ((item2Flags == 4)))){ colorFlag = true; }; n = (n + 1); }; }; if (!colorFlag){ overlap = true; collisionPoint = (k >> 2); locY = (collisionPoint / bmd1.width); locX = (collisionPoint % bmd1.width); locY = (locY - item1yDiff); locX = (locX - item1xDiff); locStage = item1.localToGlobal(new Point(locX, locY)); overlapping.push(locStage); }; }; }; if (overlap){ angle = (_returnAngle) ? findAngle(item1, item2) : 0; recordedCollision = {object1:item1, object2:item2, angle:angle, overlapping:overlapping}; objectCollisionArray.push(recordedCollision); }; if (item1_isText){ item1.antiAliasType = "advanced"; }; if (item2_isText){ item2.antiAliasType = "advanced"; }; _local4 = false; item2_isText = _local4; item1_isText = _local4; } private function init():void{ objectCheckArray = []; objectCollisionArray = []; objectArray = []; colorExclusionArray = []; _alphaThreshold = 0; _returnAngle = true; _returnAngleType = "RADIANS"; } public function dispose():void{ objectArray = []; } public function excludeColor(_arg1:uint, _arg2:uint=0xFF, _arg3:uint=20, _arg4:uint=20, _arg5:uint=20):void{ var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:uint; var _local14:uint; var _local15:uint; var _local6:int = colorExclusionArray.length; var _local7:uint; while (_local7 < _local6) { if (colorExclusionArray[_local7].color == _arg1){ throw (new Error((("Color could not be added - color already in the exclusion list [" + _arg1) + "]"))); }; _local7++; }; _local8 = (((_arg1 >> 24) & 0xFF) + _arg2); _local9 = (_local8 - (_arg2 << 1)); _local10 = (((_arg1 >> 16) & 0xFF) + _arg3); _local11 = (_local10 - (_arg3 << 1)); _local12 = (((_arg1 >> 8) & 0xFF) + _arg4); _local13 = (_local12 - (_arg4 << 1)); _local14 = ((_arg1 & 0xFF) + _arg5); _local15 = (_local14 - (_arg5 << 1)); var _local16:Object = {color:_arg1, aPlus:_local8, aMinus:_local9, rPlus:_local10, rMinus:_local11, gPlus:_local12, gMinus:_local13, bPlus:_local14, bMinus:_local15}; colorExclusionArray.push(_local16); } public function get numChildren():uint{ return (objectArray.length); } public function get alphaThreshold():Number{ return (_alphaThreshold); } public function removeItem(_arg1):void{ var _local2:int = objectArray.indexOf(_arg1); if (_local2 > -1){ objectArray.splice(_local2, 1); } else { throw (new Error((_arg1 + " could not be removed - object not found in item list."))); }; } public function set returnAngleType(_arg1:String):void{ _arg1 = _arg1.toUpperCase(); switch (_arg1){ case "DEGREES": case "DEGREE": case "DEG": case "DEGS": _returnAngleType = "DEGREES"; break; case "RADIANS": case "RADIAN": case "RAD": case "RADS": _returnAngleType = "RADIANS"; break; default: throw (new Error("returnAngleType expects 'DEGREES' or 'RADIANS'")); }; } private function findAngle(_arg1:DisplayObject, _arg2:DisplayObject):Number{ var pixel:uint; var thisAlpha:uint; var lastAlpha:int; var edgePoint:int; var k:uint; var upperLimit:int; var colorFlag:Boolean; var red1:uint; var green1:uint; var blue1:uint; var colorObj:Object; var a:uint; var r:uint; var g:uint; var b:uint; var item1Flags:uint; var n:uint; var item1 = _arg1; var item2 = _arg2; var center:Point = new Point((item1.width >> 1), (item1.height >> 1)); var pixels:ByteArray = pixels2; transMatrix2.tx = (transMatrix2.tx + center.x); transMatrix2.ty = (transMatrix2.ty + center.y); bmdResample = new BitmapData((item1.width << 1), (item1.height << 1), true, 0xFFFFFF); bmdResample.draw(item2, transMatrix2, colorTransform2, null, null, true); pixels = bmdResample.getPixels(new Rectangle(0, 0, bmdResample.width, bmdResample.height)); center.x = (bmdResample.width >> 1); center.y = (bmdResample.height >> 1); var columnHeight:uint = Math.round(bmdResample.height); var rowWidth:uint = Math.round(bmdResample.width); var edgeArray:Array = []; var hasColors:int = colorExclusionArray.length; var j:uint; while (j < columnHeight) { k = ((j * rowWidth) << 2); pixels.position = k; lastAlpha = -1; upperLimit = (((j + 1) * rowWidth) << 2); while (k < upperLimit) { k = pixels.position; try { pixel = pixels.readUnsignedInt(); } catch(e:EOFError) { break; }; thisAlpha = ((pixel >> 24) & 0xFF); if (lastAlpha == -1){ lastAlpha = thisAlpha; } else { if (thisAlpha > _alphaThreshold){ colorFlag = false; if (hasColors){ red1 = ((pixel >> 16) & 0xFF); green1 = ((pixel >> 8) & 0xFF); blue1 = (pixel & 0xFF); n = 0; while (n < hasColors) { colorObj = Object(colorExclusionArray[n]); item1Flags = 0; if ((((blue1 >= colorObj.bMinus)) && ((blue1 <= colorObj.bPlus)))){ item1Flags = (item1Flags + 1); }; if ((((green1 >= colorObj.gMinus)) && ((green1 <= colorObj.gPlus)))){ item1Flags = (item1Flags + 1); }; if ((((red1 >= colorObj.rMinus)) && ((red1 <= colorObj.rPlus)))){ item1Flags = (item1Flags + 1); }; if ((((thisAlpha >= colorObj.aMinus)) && ((thisAlpha <= colorObj.aPlus)))){ item1Flags = (item1Flags + 1); }; if (item1Flags == 4){ colorFlag = true; }; n = (n + 1); }; }; if (!colorFlag){ edgeArray.push((k >> 2)); }; }; }; }; j = (j + 1); }; var numEdges:int = edgeArray.length; var slopeYAvg:Number = 0; var slopeXAvg:Number = 0; j = 0; while (j < numEdges) { edgePoint = int(edgeArray[j]); slopeYAvg = (slopeYAvg + (center.y - (edgePoint / rowWidth))); slopeXAvg = (slopeXAvg + ((edgePoint % rowWidth) - center.x)); j = (j + 1); }; var average:Number = -(Math.atan2(slopeYAvg, slopeXAvg)); average = ((_returnAngleType == "RADIANS")) ? average : (average * 57.2957795); return (average); } public function addItem(_arg1):void{ if ((_arg1 is DisplayObject)){ objectArray.push(_arg1); } else { throw (new Error((("Cannot add item: " + _arg1) + " - item must be a Display Object."))); }; } public function get returnAngleType():String{ return (_returnAngleType); } public function set alphaThreshold(_arg1:Number):void{ if ((((_arg1 <= 1)) && ((_arg1 >= 0)))){ _alphaThreshold = (_arg1 * 0xFF); } else { throw (new Error("alphaThreshold expects a value from 0 to 1")); }; } public function removeExcludeColor(_arg1:uint):void{ var _local2:Boolean; var _local3:int = colorExclusionArray.length; var _local4:uint; while (_local4 < _local3) { if (colorExclusionArray[_local4].color == _arg1){ colorExclusionArray.splice(_local4, 1); _local2 = true; break; }; _local4++; }; if (!_local2){ throw (new Error((("Color could not be removed - color not found in exclusion list [" + _arg1) + "]"))); }; } protected function clearArrays():void{ objectCheckArray = []; objectCollisionArray = []; } } }//package com.coreyoneil.collision
Section 2
//CollisionList (com.coreyoneil.collision.CollisionList) package com.coreyoneil.collision { import flash.display.*; public class CollisionList extends CDK { public function CollisionList(_arg1, ... _args):void{ addItem(_arg1); var _local3:uint; while (_local3 < _args.length) { addItem(_args[_local3]); _local3++; }; } public function checkCollisions():Array{ var _local3:DisplayObject; clearArrays(); var _local1:uint = objectArray.length; var _local2:* = DisplayObject(objectArray[0]); var _local4:uint = 1; while (_local4 < _local1) { _local3 = DisplayObject(objectArray[_local4]); if (_local2.hitTestObject(_local3)){ if ((_local3.width * _local3.height) > (_local2.width * _local2.height)){ objectCheckArray.push([_local2, _local3]); } else { objectCheckArray.push([_local3, _local2]); }; }; _local4++; }; _local1 = objectCheckArray.length; _local4 = 0; while (_local4 < _local1) { findCollisions(DisplayObject(objectCheckArray[_local4][0]), DisplayObject(objectCheckArray[_local4][1])); _local4++; }; return (objectCollisionArray); } public function swapTarget(_arg1):void{ if ((_arg1 is DisplayObject)){ objectArray[0] = _arg1; } else { throw (new Error((("Cannot swap target: " + _arg1) + " - item must be a Display Object."))); }; } override public function removeItem(_arg1):void{ var _local2:int = objectArray.indexOf(_arg1); if (_local2 > 0){ objectArray.splice(_local2, 1); } else { if (_local2 == 0){ throw (new Error("You cannot remove the target from CollisionList. Use swapTarget to change the target.")); }; throw (new Error((_arg1 + " could not be removed - object not found in item list."))); }; } } }//package com.coreyoneil.collision
Section 3
//PropTween (gs.core.tween.PropTween) package gs.core.tween { public class PropTween { public var priority:int; public var start:Number; public var prevNode:PropTween; public var change:Number; public var target:Object; public var name:String; public var property:String; public var nextNode:PropTween; public var isPlugin:Boolean; public function PropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean, _arg7:PropTween=null, _arg8:int=0){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; this.nextNode = _arg7; this.priority = _arg8; } } }//package gs.core.tween
Section 4
//SimpleTimeline (gs.core.tween.SimpleTimeline) package gs.core.tween { public class SimpleTimeline extends Tweenable { public var autoRemoveChildren:Boolean; protected var _lastChild:Tweenable; protected var _firstChild:Tweenable; public function SimpleTimeline(_arg1:Object=null){ super(0, _arg1); } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local5:Number; var _local6:Tweenable; var _local4:Tweenable = _firstChild; this.cachedTotalTime = _arg1; this.cachedTime = _arg1; while (_local4) { _local6 = _local4.nextNode; if (((_local4.active) || ((((_arg1 >= _local4.startTime)) && (!(_local4.cachedPaused)))))){ if (!_local4.cachedReversed){ _local4.renderTime(((_arg1 - _local4.startTime) * _local4.cachedTimeScale), _arg2, false); } else { _local5 = (_local4.cacheIsDirty) ? _local4.totalDuration : _local4.cachedTotalDuration; _local4.renderTime((_local5 - ((_arg1 - _local4.startTime) * _local4.cachedTimeScale)), _arg2, false); }; }; _local4 = _local6; }; } public function addChild(_arg1:Tweenable):void{ if (((!((_arg1.timeline == null))) && (!(_arg1.gc)))){ _arg1.timeline.remove(_arg1, true); }; _arg1.timeline = this; if (_arg1.gc){ _arg1.setEnabled(true, true); }; if (_firstChild != null){ _firstChild.prevNode = _arg1; _arg1.nextNode = _firstChild; } else { _arg1.nextNode = null; }; _firstChild = _arg1; _arg1.prevNode = null; } public function remove(_arg1:Tweenable, _arg2:Boolean=false):void{ if (((!(_arg1.gc)) && (!(_arg2)))){ _arg1.setEnabled(false, true); }; if (_arg1.nextNode != null){ _arg1.nextNode.prevNode = _arg1.prevNode; } else { if (_lastChild == _arg1){ _lastChild = _arg1.prevNode; }; }; if (_arg1.prevNode != null){ _arg1.prevNode.nextNode = _arg1.nextNode; } else { if (_firstChild == _arg1){ _firstChild = _arg1.nextNode; }; }; _arg1.nextNode = (_arg1.prevNode = null); } public function get rawTime():Number{ return (this.cachedTotalTime); } } }//package gs.core.tween
Section 5
//Tweenable (gs.core.tween.Tweenable) package gs.core.tween { import gs.*; public class Tweenable { public var timeline:SimpleTimeline; public var initted:Boolean; protected var _hasUpdate:Boolean; public var active:Boolean; public var cachedTimeScale:Number; protected var _delay:Number; public var startTime:Number; public var cachedReversed:Boolean; public var nextNode:Tweenable; public var cachedTime:Number; public var gc:Boolean; public var cachedDuration:Number; public var prevNode:Tweenable; public var cacheIsDirty:Boolean; protected var _rawPrevTime:Number;// = -1 public var vars:Object; public var cachedTotalTime:Number; public var cachedPaused:Boolean; public var cachedTotalDuration:Number; public var data; public static const version:Number = 0.8; protected static var _classInitted:Boolean; public function Tweenable(_arg1:Number=0, _arg2:Object=null){ this.vars = ((_arg2) || ({})); this.cachedDuration = (this.cachedTotalDuration = ((_arg1) || (0))); _delay = ((this.vars.delay) || (0)); this.cachedTimeScale = ((this.vars.timeScale) || (1)); this.active = Boolean((((((_arg1 == 0)) && ((_delay == 0)))) && (!((this.vars.immediateRender == false))))); this.cachedTotalTime = (this.cachedTime = 0); this.data = this.vars.data; if (!_classInitted){ if (isNaN(TweenLite.rootFrame)){ TweenLite.initClass(); _classInitted = true; } else { return; }; }; var _local3:SimpleTimeline = ((this.vars.timeline is SimpleTimeline)) ? this.vars.timeline : (this.vars.useFrames) ? TweenLite.rootFramesTimeline : TweenLite.rootTimeline; this.startTime = (_local3.cachedTotalTime + _delay); _local3.addChild(this); } public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{ } public function get totalDuration():Number{ return (this.cachedTotalDuration); } public function get delay():Number{ return (_delay); } public function get duration():Number{ return (this.cachedDuration); } public function set delay(_arg1:Number):void{ this.startTime = (this.startTime + (_arg1 - _delay)); _delay = _arg1; } public function set totalDuration(_arg1:Number):void{ this.duration = _arg1; } public function set duration(_arg1:Number):void{ this.cachedDuration = (this.cachedTotalDuration = _arg1); } public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ } public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):void{ if (_arg1 == this.gc){ this.gc = !(_arg1); if (_arg1){ this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); if (!_arg2){ this.timeline.addChild(this); }; } else { this.active = false; if (!_arg2){ this.timeline.remove(this); }; }; }; } } }//package gs.core.tween
Section 6
//TweenEvent (gs.events.TweenEvent) package gs.events { import flash.events.*; public class TweenEvent extends Event { public static const COMPLETE:String = "complete"; public static const START:String = "init"; public static const UPDATE:String = "change"; public static const REVERSE_COMPLETE:String = "reverseComplete"; public static const VERSION:Number = 1; public static const REPEAT:String = "repeat"; public function TweenEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function clone():Event{ return (new TweenEvent(this.type, this.bubbles, this.cancelable)); } } }//package gs.events
Section 7
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin) package gs.plugins { import flash.display.*; import gs.*; public class AutoAlphaPlugin extends VisiblePlugin { protected var _ignoreVisible:Boolean; public static const VERSION:Number = 2.1; public static const API:Number = 1; public function AutoAlphaPlugin(){ this.propName = "autoAlpha"; this.overwriteProps = ["alpha", "visible"]; } override public function killProps(_arg1:Object):void{ super.killProps(_arg1); _ignoreVisible = Boolean(("visible" in _arg1)); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ init(_arg1, Boolean(!((_arg2 == 0))), _arg3); addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (!_ignoreVisible){ _target.visible = Boolean(!((_target.alpha == 0))); }; } } }//package gs.plugins
Section 8
//BevelFilterPlugin (gs.plugins.BevelFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BevelFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BevelFilterPlugin(){ this.propName = "bevelFilter"; this.overwriteProps = ["bevelFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BevelFilter; initFilter(_arg2, new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.plugins
Section 9
//BezierPlugin (gs.plugins.BezierPlugin) package gs.plugins { import gs.core.tween.*; import gs.*; public class BezierPlugin extends TweenPlugin { protected var _future:Object; protected var _orient:Boolean; protected var _orientData:Array; protected var _target:Object; protected var _beziers:Object; protected static const _RAD2DEG:Number = 57.2957795130823; public static const VERSION:Number = 2.1; public static const API:Number = 1; public function BezierPlugin(){ _future = {}; super(); this.propName = "bezier"; this.overwriteProps = []; } override public function killProps(_arg1:Object):void{ var _local2:String; for (_local2 in _beziers) { if ((_local2 in _arg1)){ delete _beziers[_local2]; }; }; super.killProps(_arg1); } protected function init(_arg1:TweenLite, _arg2:Array, _arg3:Boolean):void{ var _local6:int; var _local7:String; var _local8:Object; _target = _arg1.target; var _local4:Object = ((_arg1.vars.isTV)==true) ? _arg1.vars.exposedVars : _arg1.vars; if (_local4.orientToBezier == true){ _orientData = [["x", "y", "rotation", 0, 0.01]]; _orient = true; } else { if ((_local4.orientToBezier is Array)){ _orientData = _local4.orientToBezier; _orient = true; }; }; var _local5:Object = {}; _local6 = 0; while (_local6 < _arg2.length) { for (_local7 in _arg2[_local6]) { if (_local5[_local7] == undefined){ _local5[_local7] = [_arg1.target[_local7]]; }; if (typeof(_arg2[_local6][_local7]) == "number"){ _local5[_local7].push(_arg2[_local6][_local7]); } else { _local5[_local7].push((_arg1.target[_local7] + Number(_arg2[_local6][_local7]))); }; }; _local6++; }; for (_local7 in _local5) { this.overwriteProps[this.overwriteProps.length] = _local7; if (_local4[_local7] != undefined){ if (typeof(_local4[_local7]) == "number"){ _local5[_local7].push(_local4[_local7]); } else { _local5[_local7].push((_arg1.target[_local7] + Number(_local4[_local7]))); }; _local8 = {}; _local8[_local7] = true; _arg1.killVars(_local8, false); delete _local4[_local7]; }; }; _beziers = parseBeziers(_local5, _arg3); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), false); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:String; var _local4:Object; var _local5:Number; var _local6:uint; var _local7:Number; var _local8:int; var _local9:Object; var _local10:Number; var _local11:Number; var _local12:Array; var _local13:Number; var _local14:Object; var _local15:Boolean; if (_arg1 == 1){ for (_local3 in _beziers) { _local2 = (_beziers[_local3].length - 1); _target[_local3] = _beziers[_local3][_local2][2]; }; } else { for (_local3 in _beziers) { _local6 = _beziers[_local3].length; if (_arg1 < 0){ _local2 = 0; } else { if (_arg1 >= 1){ _local2 = (_local6 - 1); } else { _local2 = int((_local6 * _arg1)); }; }; _local5 = ((_arg1 - (_local2 * (1 / _local6))) * _local6); _local4 = _beziers[_local3][_local2]; if (this.round){ _local7 = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); _local8 = ((_local7)<0) ? -1 : 1; _target[_local3] = ((((_local7 % 1) * _local8))>0.5) ? (int(_local7) + _local8) : int(_local7); } else { _target[_local3] = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); }; }; }; if (_orient){ _local2 = _orientData.length; _local9 = {}; while (_local2-- > 0) { _local12 = _orientData[_local2]; _local9[_local12[0]] = _target[_local12[0]]; _local9[_local12[1]] = _target[_local12[1]]; }; _local14 = _target; _local15 = this.round; _target = _future; this.round = false; _orient = false; _local2 = _orientData.length; while (_local2-- > 0) { _local12 = _orientData[_local2]; this.changeFactor = (_arg1 + ((_local12[4]) || (0.01))); _local13 = ((_local12[3]) || (0)); _local10 = (_future[_local12[0]] - _local9[_local12[0]]); _local11 = (_future[_local12[1]] - _local9[_local12[1]]); _local14[_local12[2]] = ((Math.atan2(_local11, _local10) * _RAD2DEG) + _local13); }; _target = _local14; this.round = _local15; _orient = true; }; } public static function parseBeziers(_arg1:Object, _arg2:Boolean=false):Object{ var _local3:int; var _local4:Array; var _local5:Object; var _local6:String; var _local7:Object = {}; if (_arg2){ for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 2){ _local5[_local5.length] = [_local4[0], (_local4[1] - ((_local4[2] - _local4[0]) / 4)), _local4[1]]; _local3 = 1; while (_local3 < (_local4.length - 1)) { _local5[_local5.length] = [_local4[_local3], (_local4[_local3] + (_local4[_local3] - _local5[(_local3 - 1)][1])), _local4[(_local3 + 1)]]; _local3++; }; } else { _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; } else { for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 3){ _local5[_local5.length] = [_local4[0], _local4[1], ((_local4[1] + _local4[2]) / 2)]; _local3 = 2; while (_local3 < (_local4.length - 2)) { _local5[_local5.length] = [_local5[(_local3 - 2)][2], _local4[_local3], ((_local4[_local3] + _local4[(_local3 + 1)]) / 2)]; _local3++; }; _local5[_local5.length] = [_local5[(_local5.length - 1)][2], _local4[(_local4.length - 2)], _local4[(_local4.length - 1)]]; } else { if (_local4.length == 3){ _local5[_local5.length] = [_local4[0], _local4[1], _local4[2]]; } else { if (_local4.length == 2){ _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; }; }; }; return (_local7); } } }//package gs.plugins
Section 10
//BezierThroughPlugin (gs.plugins.BezierThroughPlugin) package gs.plugins { import gs.*; public class BezierThroughPlugin extends BezierPlugin { public static const VERSION:Number = 1.1; public static const API:Number = 1; public function BezierThroughPlugin(){ this.propName = "bezierThrough"; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), true); return (true); } } }//package gs.plugins
Section 11
//BlurFilterPlugin (gs.plugins.BlurFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BlurFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BlurFilterPlugin(){ this.propName = "blurFilter"; this.overwriteProps = ["blurFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BlurFilter; initFilter(_arg2, new BlurFilter(0, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.plugins
Section 12
//ColorMatrixFilterPlugin (gs.plugins.ColorMatrixFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class ColorMatrixFilterPlugin extends FilterPlugin { protected var _matrix:Array; protected var _matrixTween:EndArrayPlugin; public static const API:Number = 1; public static const VERSION:Number = 1.1; protected static var _lumG:Number = 0.71516; protected static var _lumR:Number = 0.212671; protected static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; protected static var _lumB:Number = 0.072169; public function ColorMatrixFilterPlugin(){ this.propName = "colorMatrixFilter"; this.overwriteProps = ["colorMatrixFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = ColorMatrixFilter; var _local4:Object = _arg2; initFilter({remove:_arg2.remove, index:_arg2.index, addFilter:_arg2.addFilter}, new ColorMatrixFilter(_idMatrix.slice())); _matrix = ColorMatrixFilter(_filter).matrix; var _local5:Array = []; if (((!((_local4.matrix == null))) && ((_local4.matrix is Array)))){ _local5 = _local4.matrix; } else { if (_local4.relative == true){ _local5 = _matrix.slice(); } else { _local5 = _idMatrix.slice(); }; _local5 = setBrightness(_local5, _local4.brightness); _local5 = setContrast(_local5, _local4.contrast); _local5 = setHue(_local5, _local4.hue); _local5 = setSaturation(_local5, _local4.saturation); _local5 = setThreshold(_local5, _local4.threshold); if (!isNaN(_local4.colorize)){ _local5 = colorize(_local5, _local4.colorize, _local4.amount); }; }; _matrixTween = new EndArrayPlugin(); _matrixTween.init(_matrix, _local5); return (true); } override public function set changeFactor(_arg1:Number):void{ _matrixTween.changeFactor = _arg1; ColorMatrixFilter(_filter).matrix = _matrix; super.changeFactor = _arg1; } public static function setSaturation(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Number = (1 - _arg2); var _local4:Number = (_local3 * _lumR); var _local5:Number = (_local3 * _lumG); var _local6:Number = (_local3 * _lumB); var _local7:Array = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local7, _arg1)); } public static function setHue(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 * (Math.PI / 180)); var _local3:Number = Math.cos(_arg2); var _local4:Number = Math.sin(_arg2); var _local5:Array = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; return (applyMatrix(_local5, _arg1)); } public static function setThreshold(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Array = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function applyMatrix(_arg1:Array, _arg2:Array):Array{ var _local6:int; var _local7:int; if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (_arg2); }; var _local3:Array = []; var _local4:int; var _local5:int; _local6 = 0; while (_local6 < 4) { _local7 = 0; while (_local7 < 5) { if (_local7 == 4){ _local5 = _arg1[(_local4 + 4)]; } else { _local5 = 0; }; _local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5); _local7++; }; _local4 = (_local4 + 5); _local6++; }; return (_local3); } public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{ if (isNaN(_arg2)){ return (_arg1); }; if (isNaN(_arg3)){ _arg3 = 1; }; var _local4:Number = (((_arg2 >> 16) & 0xFF) / 0xFF); var _local5:Number = (((_arg2 >> 8) & 0xFF) / 0xFF); var _local6:Number = ((_arg2 & 0xFF) / 0xFF); var _local7:Number = (1 - _arg3); var _local8:Array = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local8, _arg1)); } public static function setBrightness(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = ((_arg2 * 100) - 100); return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1)); } public static function setContrast(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 + 0.01); var _local3:Array = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } } }//package gs.plugins
Section 13
//DropShadowFilterPlugin (gs.plugins.DropShadowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class DropShadowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function DropShadowFilterPlugin(){ this.propName = "dropShadowFilter"; this.overwriteProps = ["dropShadowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = DropShadowFilter; initFilter(_arg2, new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout, _arg2.hideObject)); return (true); } } }//package gs.plugins
Section 14
//EndArrayPlugin (gs.plugins.EndArrayPlugin) package gs.plugins { import flash.display.*; import gs.*; public class EndArrayPlugin extends TweenPlugin { protected var _a:Array; protected var _info:Array; public static const VERSION:Number = 1.5; public static const API:Number = 1; public function EndArrayPlugin(){ _info = []; super(); this.propName = "endArray"; this.overwriteProps = ["endArray"]; } public function init(_arg1:Array, _arg2:Array):void{ _a = _arg1; var _local3:int = (_arg2.length - 1); while (_local3 > -1) { if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){ _info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3])); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (false); }; init((_arg1 as Array), _arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:ArrayTweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _a[_local3.index] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } } }//package gs.plugins class ArrayTweenInfo { public var change:Number; public var start:Number; public var index:uint; private function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } }
Section 15
//FilterPlugin (gs.plugins.FilterPlugin) package gs.plugins { import flash.display.*; import gs.core.tween.*; import gs.*; import flash.filters.*; public class FilterPlugin extends TweenPlugin { protected var _remove:Boolean; protected var _target:Object; protected var _index:int; protected var _filter:BitmapFilter; protected var _type:Class; public static const VERSION:Number = 1.03; public static const API:Number = 1; public function onCompleteTween():void{ var _local1:int; var _local2:Array; if (_remove){ _local2 = _target.filters; if (!(_local2[_index] is _type)){ _local1 = (_local2.length - 1); while (_local1 > -1) { if ((_local2[_local1] is _type)){ _local2.splice(_local1, 1); break; }; _local1--; }; } else { _local2.splice(_index, 1); }; _target.filters = _local2; }; } protected function initFilter(_arg1:Object, _arg2:BitmapFilter):void{ var _local4:String; var _local5:int; var _local6:HexColorsPlugin; var _local3:Array = _target.filters; _index = -1; if (_arg1.index != null){ _index = _arg1.index; } else { _local5 = (_local3.length - 1); while (_local5 > -1) { if ((_local3[_local5] is _type)){ _index = _local5; break; }; _local5--; }; }; if ((((((_index == -1)) || ((_local3[_index] == null)))) || ((_arg1.addFilter == true)))){ _index = ((_arg1.index)!=null) ? _arg1.index : _local3.length; _local3[_index] = _arg2; _target.filters = _local3; }; _filter = _local3[_index]; _remove = Boolean((_arg1.remove == true)); if (_remove){ this.onComplete = onCompleteTween; }; var _local7:Object = ((_arg1.isTV)==true) ? _arg1.exposedVars : _arg1; for (_local4 in _local7) { if (((((((((!((_local4 in _filter))) || ((_filter[_local4] == _local7[_local4])))) || ((_local4 == "remove")))) || ((_local4 == "index")))) || ((_local4 == "addFilter")))){ } else { if ((((((_local4 == "color")) || ((_local4 == "highlightColor")))) || ((_local4 == "shadowColor")))){ _local6 = new HexColorsPlugin(); _local6.initColor(_filter, _local4, _filter[_local4], _local7[_local4]); _tweens[_tweens.length] = new PropTween(_local6, "changeFactor", 0, 1, _local4, false); } else { if ((((((((_local4 == "quality")) || ((_local4 == "inner")))) || ((_local4 == "knockout")))) || ((_local4 == "hideObject")))){ _filter[_local4] = _local7[_local4]; } else { addTween(_filter, _local4, _filter[_local4], _local7[_local4], _local4); }; }; }; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:PropTween; var _local4:Array = _target.filters; _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; if (!(_local4[_index] is _type)){ _index = (_local4.length - 1); _local2 = (_local4.length - 1); while (_local2 > -1) { if ((_local4[_local2] is _type)){ _index = _local2; break; }; _local2--; }; }; _local4[_index] = _filter; _target.filters = _local4; } } }//package gs.plugins
Section 16
//FramePlugin (gs.plugins.FramePlugin) package gs.plugins { import flash.display.*; import gs.*; public class FramePlugin extends TweenPlugin { protected var _target:MovieClip; public var frame:int; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function FramePlugin(){ this.propName = "frame"; this.overwriteProps = ["frame", "frameLabel"]; this.round = true; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; addTween(this, "frame", this.frame, _arg2, "frame"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } } }//package gs.plugins
Section 17
//GlowFilterPlugin (gs.plugins.GlowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class GlowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function GlowFilterPlugin(){ this.propName = "glowFilter"; this.overwriteProps = ["glowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = GlowFilter; initFilter(_arg2, new GlowFilter(0xFFFFFF, 0, 0, 0, ((_arg2.strength) || (1)), ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout)); return (true); } } }//package gs.plugins
Section 18
//HexColorsPlugin (gs.plugins.HexColorsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class HexColorsPlugin extends TweenPlugin { protected var _colors:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function HexColorsPlugin(){ this.propName = "hexColors"; this.overwriteProps = []; _colors = []; } override public function killProps(_arg1:Object):void{ var _local2:int = (_colors.length - 1); while (_local2 > -1) { if (_arg1[_colors[_local2][1]] != undefined){ _colors.splice(_local2, 1); }; _local2--; }; super.killProps(_arg1); } public function initColor(_arg1:Object, _arg2:String, _arg3:uint, _arg4:uint):void{ var _local5:Number; var _local6:Number; var _local7:Number; if (_arg3 != _arg4){ _local5 = (_arg3 >> 16); _local6 = ((_arg3 >> 8) & 0xFF); _local7 = (_arg3 & 0xFF); _colors[_colors.length] = [_arg1, _arg2, _local5, ((_arg4 >> 16) - _local5), _local6, (((_arg4 >> 8) & 0xFF) - _local6), _local7, ((_arg4 & 0xFF) - _local7)]; this.overwriteProps[this.overwriteProps.length] = _arg2; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:Array; _local2 = (_colors.length - 1); while (_local2 > -1) { _local3 = _colors[_local2]; _local3[0][_local3[1]] = ((((_local3[2] + (_arg1 * _local3[3])) << 16) | ((_local3[4] + (_arg1 * _local3[5])) << 8)) | (_local3[6] + (_arg1 * _local3[7]))); _local2--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; for (_local4 in _arg2) { initColor(_arg1, _local4, uint(_arg1[_local4]), uint(_arg2[_local4])); }; return (true); } } }//package gs.plugins
Section 19
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin) package gs.plugins { import flash.display.*; import gs.*; public class RemoveTintPlugin extends TintPlugin { public static const VERSION:Number = 1.01; public static const API:Number = 1; public function RemoveTintPlugin(){ this.propName = "removeTint"; } } }//package gs.plugins
Section 20
//RoundPropsPlugin (gs.plugins.RoundPropsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class RoundPropsPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function RoundPropsPlugin(){ this.propName = "roundProps"; this.overwriteProps = []; this.round = true; } public function add(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ addTween(_arg1, _arg2, _arg3, (_arg3 + _arg4), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.plugins
Section 21
//ShortRotationPlugin (gs.plugins.ShortRotationPlugin) package gs.plugins { import flash.display.*; import gs.*; public class ShortRotationPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function ShortRotationPlugin(){ this.propName = "shortRotation"; this.overwriteProps = []; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; if (typeof(_arg2) == "number"){ return (false); }; for (_local4 in _arg2) { initRotation(_arg1, _local4, _arg1[_local4], _arg2[_local4]); }; return (true); } public function initRotation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ var _local5:Number = ((_arg4 - _arg3) % 360); if (((_arg4 - _arg3) % 360) != (_local5 % 180)){ _local5 = ((_local5)<0) ? (_local5 + 360) : (_local5 - 360); }; addTween(_arg1, _arg2, _arg3, (_arg3 + _local5), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.plugins
Section 22
//TintPlugin (gs.plugins.TintPlugin) package gs.plugins { import flash.display.*; import gs.core.tween.*; import gs.*; import flash.geom.*; public class TintPlugin extends TweenPlugin { protected var _ct:ColorTransform; protected var _transform:Transform; protected var _ignoreAlpha:Boolean; public static const VERSION:Number = 1.1; public static const API:Number = 1; protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"]; public function TintPlugin(){ this.propName = "tint"; this.overwriteProps = ["tint"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg1 is DisplayObject)){ return (false); }; var _local4:ColorTransform = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.vars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:ColorTransform; updateTweens(_arg1); if (_ignoreAlpha){ _local2 = _transform.colorTransform; _ct.alphaMultiplier = _local2.alphaMultiplier; _ct.alphaOffset = _local2.alphaOffset; }; _transform.colorTransform = _ct; } public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{ var _local4:String; _transform = _arg1.transform; _ct = _transform.colorTransform; var _local3:int = _props.length; while (_local3-- > 0) { _local4 = _props[_local3]; if (_ct[_local4] != _arg2[_local4]){ _tweens[_tweens.length] = new PropTween(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false); }; }; } } }//package gs.plugins
Section 23
//TweenPlugin (gs.plugins.TweenPlugin) package gs.plugins { import gs.core.tween.*; import gs.*; public class TweenPlugin { public var onEnable:Function; public var priority:int;// = 0 public var overwriteProps:Array; protected var _tweens:Array; public var onDisable:Function; public var propName:String; public var round:Boolean; public var onComplete:Function; protected var _changeFactor:Number;// = 0 public static const VERSION:Number = 1.1; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; super(); } protected function updateTweens(_arg1:Number):void{ var _local2:int; var _local3:PropTween; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function get changeFactor():Number{ return (_changeFactor); } public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _changeFactor = _arg1; } protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{ var _local6:Number; if (_arg4 != null){ _local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4); if (_local6 != 0){ _tweens[_tweens.length] = new PropTween(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false); }; }; } public function killProps(_arg1:Object):void{ var _local2:int; _local2 = (this.overwriteProps.length - 1); while (_local2 > -1) { if ((this.overwriteProps[_local2] in _arg1)){ this.overwriteProps.splice(_local2, 1); }; _local2--; }; _local2 = (_tweens.length - 1); while (_local2 > -1) { if ((_tweens[_local2].name in _arg1)){ _tweens.splice(_local2, 1); }; _local2--; }; } public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName); return (true); } public static function activate(_arg1:Array):Boolean{ var _local2:int; var _local3:Object; TweenLite.onPluginEvent = TweenPlugin.onTweenEvent; _local2 = (_arg1.length - 1); while (_local2 > -1) { if (_arg1[_local2].hasOwnProperty("API")){ _local3 = new (_arg1[_local2]); TweenLite.plugins[_local3.propName] = _arg1[_local2]; }; _local2--; }; return (true); } private static function onTweenEvent(_arg1:String, _arg2:PropTween):PropTween{ var _local4:Array; var _local5:int; var _local3:PropTween = _arg2; if (_arg1 == "onInit"){ _local4 = []; while (_local3 != null) { _local4[_local4.length] = _local3; _local3 = _local3.nextNode; }; _local4.sortOn("priority", (Array.NUMERIC | Array.DESCENDING)); _local5 = _local4.length; while (_local5-- > 0) { _local4[_local5].nextNode = _local4[(_local5 + 1)]; _local4[_local5].prevNode = _local4[(_local5 - 1)]; }; _local3 = _local4[0]; } else { while (_local3 != null) { if (((_local3.isPlugin) && (!((_local3.target[_arg1] == null))))){ var _local6 = _local3.target; _local6[_arg1](); }; _local3 = _local3.nextNode; }; }; return (_local3); } } }//package gs.plugins
Section 24
//VisiblePlugin (gs.plugins.VisiblePlugin) package gs.plugins { import flash.display.*; import gs.*; public class VisiblePlugin extends TweenPlugin { protected var _tween:TweenLite; protected var _hideAtStart:Boolean; protected var _target:Object; protected var _visible:Boolean; public static const VERSION:Number = 1.53; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; this.onComplete = onCompleteTween; } public function onCompleteTween():void{ if (((!(_hideAtStart)) && (((!((_tween.cachedTime == 0))) || ((_tween.duration == 0)))))){ _target.visible = _visible; }; } protected function init(_arg1:Object, _arg2:Boolean, _arg3:TweenLite):void{ _target = _arg1; _tween = _arg3; _visible = _arg2; if ((((((_tween.vars.runBackwards == true)) && ((_tween.vars.immediateRender == true)))) && ((_arg2 == false)))){ _hideAtStart = true; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ init(_arg1, Boolean(_arg2), _arg3); return (true); } override public function set changeFactor(_arg1:Number):void{ if (((_hideAtStart) && ((_tween.cachedTotalTime == 0)))){ _target.visible = false; } else { if (_target.visible != true){ _target.visible = true; }; }; } } }//package gs.plugins
Section 25
//VolumePlugin (gs.plugins.VolumePlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.media.*; public class VolumePlugin extends TweenPlugin { protected var _target:Object; protected var _st:SoundTransform; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function VolumePlugin(){ this.propName = "volume"; this.overwriteProps = ["volume"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){ return (false); }; _target = _arg1; _st = _target.soundTransform; addTween(_st, "volume", _st.volume, _arg2, "volume"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } } }//package gs.plugins
Section 26
//OverwriteManager (gs.OverwriteManager) package gs { import flash.utils.*; import gs.core.tween.*; import flash.errors.*; public class OverwriteManager { public static const ALL:int = 1; public static const NONE:int = 0; public static const AUTO:int = 2; public static const CONCURRENT:int = 3; public static const version:Number = 5.03; public static var mode:int; public static var enabled:Boolean; public static function manageOverwrites(_arg1:TweenLite, _arg2:Object, _arg3:Array):void{ var _local9:int; var _local10:TweenLite; var _local11:Number; var _local12:Number; var _local13:Tweenable; var _local14:Number; var _local15:SimpleTimeline; var _local4:Object = _arg1.vars; var _local5:int = ((_local4.overwrite)==undefined) ? mode : int(_local4.overwrite); if ((((_local5 < 2)) || ((_arg3 == null)))){ return; }; var _local6:Number = _arg1.startTime; var _local7:Array = []; var _local8:Array = []; _local9 = (_arg3.length - 1); while (_local9 > -1) { _local10 = _arg3[_local9]; if ((((_local10 == _arg1)) || (_local10.gc))){ } else { if (_local10.timeline != _arg1.timeline){ _local8[_local8.length] = _local10; } else { if ((((((_local10.startTime <= _local6)) && (((_local10.startTime + _local10.totalDuration) > _local6)))) && (!(getGlobalPaused(_local10))))){ _local7[_local7.length] = _local10; }; }; }; _local9--; }; if (_local8.length != 0){ _local11 = _arg1.cachedTimeScale; _local12 = _local6; _local15 = _arg1.timeline; while (_local15 != null) { _local11 = (_local11 * _local15.cachedTimeScale); _local12 = (_local12 + _local15.startTime); _local15 = _local15.timeline; }; _local6 = (_local11 * _local12); _local9 = (_local8.length - 1); while (_local9 > -1) { _local13 = _local8[_local9]; _local11 = _local13.cachedTimeScale; _local12 = _local13.startTime; _local15 = _local13.timeline; while (_local15 != null) { _local11 = (_local11 * _local15.cachedTimeScale); _local12 = (_local12 + _local15.startTime); _local15 = _local15.timeline; }; _local14 = (_local11 * _local12); if ((((_local14 <= _local6)) && (((((_local14 + (_local13.totalDuration * _local11)) > _local6)) || ((_local13.cachedDuration == 0)))))){ _local7[_local7.length] = _local13; }; _local9--; }; }; if (_local7.length == 0){ return; }; if (_local5 == AUTO){ _local9 = (_local7.length - 1); while (_local9 > -1) { _local7[_local9].killVars(_arg2); _local9--; }; } else { _local9 = (_local7.length - 1); while (_local9 > -1) { _local7[_local9].enabled = false; _local9--; }; }; } public static function init(_arg1:int=2):int{ if (TweenLite.version < 11.099){ }; TweenLite.overwriteManager = OverwriteManager; mode = _arg1; enabled = true; return (mode); } public static function getGlobalPaused(_arg1:Tweenable):Boolean{ var _local2:Tweenable = _arg1; while (_local2 != null) { if (_local2.cachedPaused){ return (true); }; _local2 = _local2.timeline; }; return (false); } } }//package gs
Section 27
//TweenLite (gs.TweenLite) package gs { import flash.display.*; import flash.events.*; import flash.utils.*; import gs.core.tween.*; import gs.plugins.*; public class TweenLite extends Tweenable { protected var _hasPlugins:Boolean; public var propTweenLookup:Object; protected var _overwrittenProps:Object; public var target:Object; protected var _notifyPluginsOfEnabled:Boolean; public var ease:Function; protected var _firstPropTween:PropTween; public static const version:Number = 11.0991; public static var rootTimeline:SimpleTimeline; public static var onPluginEvent:Function; public static var rootFramesTimeline:SimpleTimeline; public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var masterList:Dictionary = new Dictionary(false); public static var overwriteManager:Object; public static var rootFrame:Number; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _shape:Shape = new Shape(); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, useFrames:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, onReverseComplete:1, onReverseCompleteParams:1, onRepeat:1, onRepeatParams:1, proxiedEase:1, easeParams:1, yoyo:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1, immediateRender:1, repeat:1, repeatDelay:1, timeline:1, data:1, paused:1}; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ var _local4:int; var _local5:Array; var _local6:TweenLite; super(_arg2, _arg3); this.ease = ((typeof(this.vars.ease))!="function") ? defaultEase : this.vars.ease; this.target = _arg1; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.ease; this.ease = easeProxy; }; propTweenLookup = {}; if (!(_arg1 in masterList)){ masterList[_arg1] = [this]; } else { _local4 = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if (_local4 == 1){ _local5 = masterList[_arg1]; for each (_local6 in _local5) { if (!_local6.gc){ _local6.setEnabled(false, false); }; }; masterList[_arg1] = [this]; } else { masterList[_arg1].push(this); }; }; if (((this.active) || (this.vars.immediateRender))){ renderTime(0, false, true); }; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:Number; var _local5:Boolean; var _local6:Number = this.cachedTime; this.active = true; if (_arg1 >= this.cachedDuration){ this.cachedTotalTime = (this.cachedTime = this.cachedDuration); _local4 = 1; _local5 = true; if (this.cachedDuration == 0){ if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){ _arg3 = true; }; _rawPrevTime = _arg1; }; } else { if (_arg1 <= 0){ _local4 = 0; this.cachedTotalTime = (this.cachedTime = _local4); if (_arg1 < 0){ this.active = false; if (this.cachedDuration == 0){ if (_rawPrevTime > 0){ _arg3 = true; _local5 = true; }; _rawPrevTime = _arg1; }; }; } else { this.cachedTotalTime = (this.cachedTime = _arg1); _local4 = this.ease(_arg1, 0, 1, this.cachedDuration); }; }; if ((((this.cachedTime == _local6)) && (!(_arg3)))){ return; }; if (!this.initted){ init(); }; if ((((((_local6 == 0)) && (!((this.vars.onStart == null))))) && (!(_arg2)))){ this.vars.onStart.apply(null, this.vars.onStartParams); }; var _local7:PropTween = _firstPropTween; while (_local7) { _local7.target[_local7.property] = (_local7.start + (_local4 * _local7.change)); _local7 = _local7.nextNode; }; if (((_hasUpdate) && (!(_arg2)))){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local5){ complete(true, _arg2); }; } protected function removePropTween(_arg1:PropTween):void{ if (((_arg1.isPlugin) && (!((_arg1.target.onDisable == null))))){ _arg1.target.onDisable(); }; if (_arg1.nextNode != null){ _arg1.nextNode.prevNode = _arg1.prevNode; }; if (_arg1.prevNode != null){ _arg1.prevNode.nextNode = _arg1.nextNode; } else { if (_firstPropTween == _arg1){ _firstPropTween = _arg1.nextNode; }; }; } protected function insertPropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String, _arg6:Boolean, _arg7:PropTween):PropTween{ var _local9:Array; var _local10:int; var _local8:PropTween = new PropTween(_arg1, _arg2, _arg3, ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4), _arg5, _arg6, _arg7); if (_arg7 != null){ _arg7.prevNode = _local8; }; if (((_arg6) && ((_arg5 == "_MULTIPLE_")))){ _local9 = _arg1.overwriteProps; _local10 = _local9.length; while (_local10-- > 0) { propTweenLookup[_local9[_local10]] = _local8; }; } else { propTweenLookup[_arg5] = _local8; }; return (_local8); } protected function init():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:Boolean; var _local6:PropTween; var _local5:Object = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars; propTweenLookup = {}; if (((!((_local5.timeScale == undefined))) && ((this.target is Tweenable)))){ _firstPropTween = insertPropTween(this.target, "timeScale", this.target.timeScale, _local5.timeScale, "timeScale", false, _firstPropTween); }; for (_local1 in _local5) { if ((_local1 in _reservedProps)){ } else { if ((_local1 in plugins)){ _local3 = new (plugins[_local1]); if (_local3.onInitTween(this.target, _local5[_local1], this) == false){ _firstPropTween = insertPropTween(this.target, _local1, this.target[_local1], _local5[_local1], _local1, false, _firstPropTween); } else { _firstPropTween = insertPropTween(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true, _firstPropTween); _hasPlugins = true; if (_local3.priority != 0){ _firstPropTween.priority = _local3.priority; _local4 = true; }; if (((!((_local3.onDisable == null))) || (!((_local3.onEnable == null))))){ _notifyPluginsOfEnabled = true; }; }; } else { _firstPropTween = insertPropTween(this.target, _local1, this.target[_local1], _local5[_local1], _local1, false, _firstPropTween); }; }; }; if (_local4){ _firstPropTween = onPluginEvent("onInit", _firstPropTween); }; if (this.vars.runBackwards == true){ _local6 = _firstPropTween; while (_local6) { _local6.start = (_local6.start + _local6.change); _local6.change = -(_local6.change); _local6 = _local6.nextNode; }; }; _hasUpdate = Boolean(!((this.vars.onUpdate == null))); if (_overwrittenProps != null){ killVars(_overwrittenProps); }; if (((((((TweenLite.overwriteManager.enabled) && (!((_firstPropTween == null))))) && ((TweenLite.overwriteManager.mode > 1)))) && ((this.target in masterList)))){ overwriteManager.manageOverwrites(this, propTweenLookup, masterList[this.target]); }; this.initted = true; } override public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{ if (!_arg1){ renderTime(this.cachedTotalDuration, _arg2, false); return; }; if (_hasPlugins){ onPluginEvent("onComplete", _firstPropTween); }; if (this.timeline.autoRemoveChildren){ this.setEnabled(false, false); } else { this.active = false; }; if (((((!((this.vars.onComplete == null))) && (((!((this.cachedTotalTime == 0))) || ((this.cachedDuration == 0)))))) && (!(_arg2)))){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public function killVars(_arg1:Object, _arg2:Boolean=true):void{ var _local3:String; var _local4:PropTween; if (_overwrittenProps == null){ _overwrittenProps = {}; }; for (_local3 in _arg1) { if ((_local3 in propTweenLookup)){ _local4 = propTweenLookup[_local3]; if (((_local4.isPlugin) && ((_local4.name == "_MULTIPLE_")))){ _local4.target.killProps(_arg1); if (_local4.target.overwriteProps.length == 0){ removePropTween(_local4); delete propTweenLookup[_local3]; }; } else { removePropTween(_local4); delete propTweenLookup[_local3]; }; }; if (_arg2){ _overwrittenProps[_local3] = 1; }; }; } override public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):void{ if (_arg1 == this.gc){ if (_arg1){ if (!(this.target in TweenLite.masterList)){ TweenLite.masterList[this.target] = [this]; } else { TweenLite.masterList[this.target].push(this); }; }; super.setEnabled(_arg1, _arg2); if (_notifyPluginsOfEnabled){ onPluginEvent((_arg1) ? "onEnable" : "onDisable", _firstPropTween); }; }; } public static function removeTween(_arg1:TweenLite):void{ if (_arg1 != null){ _arg1.setEnabled(false, false); }; } public static function initClass():void{ rootFrame = 0; rootTimeline = new SimpleTimeline(null); rootFramesTimeline = new SimpleTimeline(null); rootTimeline.startTime = (getTimer() * 0.001); rootFramesTimeline.startTime = rootFrame; rootTimeline.autoRemoveChildren = true; rootFramesTimeline.autoRemoveChildren = true; _shape.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; } public static function killTweensOf(_arg1:Object, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; if ((_arg1 in masterList)){ _local3 = masterList[_arg1]; _local4 = _local3.length; while (_local4-- > 0) { if (!_local3[_local4].gc){ if (_arg2){ _local3[_local4].complete(false, false); } else { _local3[_local4].setEnabled(false, false); }; }; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; if (_arg3.immediateRender != false){ _arg3.immediateRender = true; }; return (new TweenLite(_arg1, _arg2, _arg3)); } protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0})); } protected static function updateAll(_arg1:Event=null):void{ var _local2:Dictionary; var _local3:Object; var _local4:Array; var _local5:int; rootTimeline.renderTime((((getTimer() * 0.001) - rootTimeline.startTime) * rootTimeline.cachedTimeScale), false, false); rootFrame++; rootFramesTimeline.renderTime(((rootFrame - rootFramesTimeline.startTime) * rootFramesTimeline.cachedTimeScale), false, false); if (!(rootFrame % 60)){ _local2 = masterList; for (_local3 in _local2) { _local4 = _local2[_local3]; _local5 = _local4.length; while (_local5-- > 0) { if (_local4[_local5].gc){ _local4.splice(_local5, 1); }; }; if (_local4.length == 0){ delete _local2[_local3]; }; }; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gs
Section 28
//TweenMax (gs.TweenMax) package gs { import flash.display.*; import flash.events.*; import flash.utils.*; import gs.core.tween.*; import gs.plugins.*; import gs.events.*; public class TweenMax extends TweenLite implements IEventDispatcher { public var yoyo:Boolean; protected var _repeat:int;// = 0 protected var _cyclesComplete:uint;// = 0 protected var _dispatcher:EventDispatcher; protected var _hasUpdateListener:Boolean; protected var _pauseTime:Number; protected var _repeatDelay:Number;// = 0 public static const version:Number = 11.0994; public static var removeTween:Function = TweenLite.removeTween; private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init(); ; public static var killTweensOf:Function = TweenLite.killTweensOf; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _activatedPlugins:Boolean = TweenPlugin.activate([AutoAlphaPlugin, EndArrayPlugin, FramePlugin, RemoveTintPlugin, TintPlugin, VisiblePlugin, VolumePlugin, BevelFilterPlugin, BezierPlugin, BezierThroughPlugin, BlurFilterPlugin, ColorMatrixFilterPlugin, DropShadowFilterPlugin, GlowFilterPlugin, HexColorsPlugin, RoundPropsPlugin, ShortRotationPlugin, {}]); public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){ super(_arg1, _arg2, _arg3); if (TweenLite.version < 11.0991){ throw (new Error("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com.")); }; if ((((typeof(this.vars.yoyo) == "number")) || (!((this.vars.loop == undefined))))){ throw (new Error("WARNING: Your tween uses the old 'yoyo' or 'loop' syntax which has been deprecated in favor of the new, more flexible 'repeat' and 'yoyo' usage. See http://www.TweenMax.com for details.")); }; _cyclesComplete = 0; this.yoyo = Boolean(this.vars.yoyo); _repeat = ((this.vars.repeat) || (0)); _repeatDelay = ((this.vars.repeatDelay) || (0)); this.cacheIsDirty = true; if (((((((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))) || (!((this.vars.onRepeatListener == null))))) || (!((this.vars.onReverseCompleteListener == null))))){ initDispatcher(); if ((((_arg2 == 0)) && ((this.delay == 0)))){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE)); _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; }; if (this.vars.reversed == true){ this.cachedReversed = true; }; if (this.vars.paused == true){ this.paused = true; }; if (((!((this.vars.timeScale == undefined))) && (!((this.target is Tweenable))))){ this.cachedTimeScale = this.vars.timeScale; }; } public function stop():void{ this.paused = true; } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local6:Boolean; var _local7:Number; var _local8:Boolean; var _local10:Number; if (((!(this.active)) && (!(this.cachedPaused)))){ this.active = true; }; var _local4:Number = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration; var _local5:Number = this.cachedTime; if (_arg1 >= _local4){ this.cachedTotalTime = _local4; this.cachedTime = this.cachedDuration; _local7 = 1; _local6 = true; if (this.cachedDuration == 0){ if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){ _arg3 = true; }; _rawPrevTime = _arg1; }; } else { if (_arg1 <= 0){ if (_arg1 < 0){ this.active = false; if (this.cachedDuration == 0){ if (_rawPrevTime > 0){ _arg3 = true; _local6 = true; }; _rawPrevTime = _arg1; }; }; _local7 = 0; this.cachedTotalTime = (this.cachedTime = _local7); if (((this.cachedReversed) && (!((_local5 == 0))))){ _local6 = true; }; } else { this.cachedTotalTime = (this.cachedTime = _arg1); if (_repeat == 0){ _local7 = this.ease(this.cachedTime, 0, 1, this.cachedDuration); }; }; }; if (_repeat != 0){ _local10 = (this.cachedDuration + _repeatDelay); if (_arg1 > 0){ this.cachedTime = (((((this.yoyo) && ((((this.cachedTotalTime / _local10) % 2) >= 1)))) || (((!(this.yoyo)) && (!(((this.cachedTotalTime / _local10) % 1))))))) ? (this.cachedDuration - (this.cachedTotalTime % _local10)) : (this.cachedTotalTime % _local10); if (this.cachedTime >= this.cachedDuration){ this.cachedTime = this.cachedDuration; _local7 = 1; } else { if (this.cachedTime <= 0){ _local7 = 0; this.cachedTime = _local7; } else { _local7 = this.ease(this.cachedTime, 0, 1, this.cachedDuration); }; }; }; if (((!((_cyclesComplete == int((this.cachedTotalTime / _local10))))) && (!(_local6)))){ _local8 = true; _cyclesComplete = int((this.cachedTotalTime / _local10)); }; }; if ((((_local5 == this.cachedTime)) && (!(_arg3)))){ return; }; if (!this.initted){ init(); }; if ((((_local5 == 0)) && (!(_arg2)))){ if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (_dispatcher != null){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START)); }; }; var _local9:PropTween = _firstPropTween; while (_local9) { _local9.target[_local9.property] = (_local9.start + (_local7 * _local9.change)); _local9 = _local9.nextNode; }; if (((_hasUpdate) && (!(_arg2)))){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (((_hasUpdateListener) && (!(_arg2)))){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE)); }; if (_local6){ complete(true, _arg2); } else { if (((_local8) && (!(_arg2)))){ if (this.vars.onRepeat != null){ this.vars.onRepeat.apply(null, this.vars.onRepeatParams); }; if (_dispatcher != null){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.REPEAT)); }; }; }; } public function set reversed(_arg1:Boolean):void{ var _local2:Number; var _local3:Number; if (_arg1 != this.cachedReversed){ _local2 = (_arg1) ? (1 - this.totalProgress) : this.totalProgress; _local3 = ((_pauseTime) || (this.timeline.cachedTotalTime)); this.startTime = (_local3 - ((_local2 * this.totalDuration) / this.cachedTimeScale)); this.cachedReversed = _arg1; }; } public function willTrigger(_arg1:String):Boolean{ return (((_dispatcher)==null) ? false : _dispatcher.willTrigger(_arg1)); } public function restart(_arg1:Boolean=false):void{ this.reversed = false; this.paused = false; this.totalTime = (_arg1) ? -(_delay) : 0; } override protected function init():void{ var _local1:int; var _local2:int; var _local3:String; var _local4:String; var _local5:Array; var _local6:Object; var _local7:PropTween; if (this.vars.startAt != null){ this.vars.startAt.overwrite = 0; this.vars.startAt.immediateRender = true; new TweenMax(this.target, 0, this.vars.startAt); }; super.init(); if ((((this.vars.roundProps is Array)) && (!((TweenLite.plugins.roundProps == null))))){ _local5 = this.vars.roundProps; _local1 = (_local5.length - 1); while (_local1 > -1) { _local3 = _local5[_local1]; _local7 = this._firstPropTween; while (_local7) { if (_local7.name == _local3){ if (_local7.isPlugin){ _local7.target.round = true; } else { if (_local6 == null){ _local6 = new TweenLite.plugins.roundProps(); _local6.add(_local7.target, _local3, _local7.start, _local7.change); _hasPlugins = true; _firstPropTween = insertPropTween(_local6, "changeFactor", 0, 1, "_MULTIPLE_", true, _firstPropTween); } else { _local6.add(_local7.target, _local3, _local7.start, _local7.change); this.removePropTween(_local7); }; }; } else { if (((((_local7.isPlugin) && ((_local7.name == "_MULTIPLE_")))) && (!(_local7.target.round)))){ _local4 = ((" " + _local7.target.overwriteProps.join(" ")) + " "); if (_local4.indexOf(((" " + _local3) + " ")) != -1){ _local7.target.round = true; }; }; }; _local7 = _local7.nextNode; }; _local1--; }; }; } public function get totalProgress():Number{ return ((this.cachedTotalTime / this.totalDuration)); } protected function adjustStartValues():void{ var _local2:Number; var _local3:Number; var _local4:PropTween; var _local5:Number; var _local6:int; var _local1:Number = this.progress; if (_local1 != 0){ _local2 = this.ease(_local1, 0, 1, 1); _local3 = (1 / (1 - _local2)); _local4 = _firstPropTween; while (_local4) { _local5 = (_local4.start + _local4.change); if (_local4.isPlugin){ _local4.change = ((_local5 - _local2) * _local3); } else { _local4.change = ((_local5 - _local4.target[_local4.property]) * _local3); }; _local4.start = (_local5 - _local4.change); _local4 = _local4.nextNode; }; }; } public function set time(_arg1:Number):void{ if (_cyclesComplete == 0){ this.totalTime = _arg1; } else { this.totalTime = (_arg1 + (_cyclesComplete * this.duration)); }; } override public function set delay(_arg1:Number):void{ super.delay = _arg1; setDirtyCache(true); } public function set totalProgress(_arg1:Number):void{ this.totalTime = (this.totalDuration * _arg1); } override public function set duration(_arg1:Number):void{ this.cachedDuration = _arg1; this.setDirtyCache(true); } public function resume():void{ this.paused = false; } public function get paused():Boolean{ return (this.cachedPaused); } public function killProperties(_arg1:Array):void{ var _local3:int; var _local2:Object = {}; _local3 = (_arg1.length - 1); while (_local3 > -1) { _local2[_arg1[_local3]] = true; _local3--; }; killVars(_local2); } public function play():void{ this.reversed = false; this.paused = false; } public function get totalTime():Number{ return (this.cachedTotalTime); } override public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{ super.complete(_arg1, _arg2); if (!_arg2){ if (((((this.cachedReversed) && ((this.cachedTotalTime == 0)))) && (!((this.cachedDuration == 0))))){ if (this.vars.onReverseComplete != null){ this.vars.onReverseComplete.apply(null, this.vars.onReverseCompleteParams); }; if (_dispatcher != null){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.REVERSE_COMPLETE)); }; } else { if (_dispatcher != null){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; }; }; } public function invalidate():void{ _firstPropTween = null; _overwrittenProps = null; _hasUpdate = (_hasUpdateListener = false); _rawPrevTime = -1; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ initDispatcher(); }; this.yoyo = Boolean((this.vars.yoyo == true)); _repeat = ((this.vars.repeat) || (0)); _repeatDelay = ((this.vars.repeatDelay) || (0)); this.initted = (this.active = false); } public function get progress():Number{ return ((this.cachedTime / this.duration)); } public function dispatchEvent(_arg1:Event):Boolean{ return (((_dispatcher)==null) ? false : _dispatcher.dispatchEvent(_arg1)); } public function get reversed():Boolean{ return (this.cachedReversed); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (_dispatcher != null){ _dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{ var _local4:Object = {}; _local4[_arg1] = _arg2; updateProperties(_local4, _arg3); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (_dispatcher == null){ initDispatcher(); }; if (_arg1 == TweenEvent.UPDATE){ _hasUpdateListener = true; }; _dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } protected function initDispatcher():void{ if (_dispatcher == null){ _dispatcher = new EventDispatcher(this); }; if ((this.vars.onStartListener is Function)){ _dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true); }; if ((this.vars.onUpdateListener is Function)){ _dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true); _hasUpdateListener = true; }; if ((this.vars.onCompleteListener is Function)){ _dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true); }; if ((this.vars.onRepeatListener is Function)){ _dispatcher.addEventListener(TweenEvent.REPEAT, this.vars.onRepeatListener, false, 0, true); }; if ((this.vars.onReverseCompleteListener is Function)){ _dispatcher.addEventListener(TweenEvent.REVERSE_COMPLETE, this.vars.onReverseCompleteListener, false, 0, true); }; } protected function setDirtyCache(_arg1:Boolean=true):void{ var _local2:Tweenable = (_arg1) ? this : this.timeline; while (_local2) { _local2.cacheIsDirty = true; _local2 = _local2.timeline; }; } public function set progress(_arg1:Number):void{ if (_cyclesComplete == 0){ this.totalTime = (this.duration * _arg1); } else { this.totalTime = ((this.duration * _arg1) + (_cyclesComplete * this.cachedDuration)); }; } protected function updateProperties(_arg1:Object, _arg2:Boolean=true):void{ var _local5:String; var _local6:Object; var _local7:Boolean; var _local8:Object; var _local9:int; var _local3:PropTween = _firstPropTween; var _local4:Number = this.cachedTotalTime; if (this.initted){ if (!_arg2){ this.time = 0; }; killVars(_arg1, false); for (_local5 in _arg1) { if ((_local5 in _reservedProps)){ } else { if ((_local5 in plugins)){ _local6 = new (plugins[_local5]); if (_local6.onInitTween(this.target, _arg1[_local5], this) == false){ _firstPropTween = insertPropTween(this.target, _local5, this.target[_local5], _arg1[_local5], _local5, false, _firstPropTween); } else { _local8 = {}; _local9 = _local6.overwriteProps.length; while (_local9-- > 0) { _local8[_local6.overwriteProps[_local9]] = true; }; killVars(_local8, false); _firstPropTween = insertPropTween(_local6, "changeFactor", 0, 1, ((_local6.overwriteProps.length)==1) ? _local6.overwriteProps[0] : "_MULTIPLE_", true, _firstPropTween); _hasPlugins = true; if (_local6.priority != 0){ _firstPropTween.priority = _local6.priority; _local7 = true; }; }; } else { _firstPropTween = insertPropTween(this.target, _local5, this.target[_local5], _arg1[_local5], _local5, false, _firstPropTween); }; }; this.vars[_local5] = _arg1[_local5]; }; if (_local7){ _firstPropTween = onPluginEvent("onInit", _firstPropTween); }; if (((_arg2) && (!((this.cachedTotalTime == 0))))){ adjustStartValues(); this.time = _local4; }; } else { for (_local5 in _arg1) { this.vars[_local5] = _arg1[_local5]; }; }; } public function set totalTime(_arg1:Number):void{ var _local3:Number; var _local2:Number = ((_pauseTime) || (this.timeline.cachedTotalTime)); if (this.cachedReversed){ _local3 = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration; this.startTime = (_local2 - ((_local3 - _arg1) / this.cachedTimeScale)); } else { this.startTime = (_local2 - (_arg1 / this.cachedTimeScale)); }; renderTime(_arg1, false, false); setDirtyCache(false); } public function set paused(_arg1:Boolean):void{ if (_arg1 != this.cachedPaused){ if (_arg1){ _pauseTime = this.timeline.rawTime; } else { this.startTime = (this.startTime + (this.timeline.rawTime - _pauseTime)); _pauseTime = NaN; setDirtyCache(false); }; this.cachedPaused = _arg1; this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); }; if (((!(_arg1)) && (this.gc))){ this.setEnabled(true, false); }; } public function get time():Number{ return (this.cachedTime); } public function reverse(_arg1:Boolean=true):void{ this.reversed = true; setDirtyCache(false); if (_arg1){ this.paused = false; } else { if (this.gc){ this.setEnabled(true, false); }; }; } public function hasEventListener(_arg1:String):Boolean{ return (((_dispatcher)==null) ? false : _dispatcher.hasEventListener(_arg1)); } public function pause():void{ this.paused = true; } override public function set totalDuration(_arg1:Number):void{ if (_repeat == -1){ return; }; this.duration = ((_arg1 - (_repeat * _repeatDelay)) / (_repeat + 1)); } override public function get totalDuration():Number{ if (this.cacheIsDirty){ this.cachedTotalDuration = ((_repeat)==-1) ? 999999999999 : ((this.cachedDuration * (_repeat + 1)) + (_repeatDelay * _repeat)); this.cacheIsDirty = false; }; return (this.cachedTotalDuration); } public function set timeScale(_arg1:Number):void{ if (_arg1 == 0){ _arg1 = 0.0001; }; var _local2:Number = ((_pauseTime) || (this.timeline.cachedTotalTime)); this.startTime = (_local2 - (((_local2 - this.startTime) * this.cachedTimeScale) / _arg1)); this.cachedTimeScale = _arg1; } public function get timeScale():Number{ return (this.cachedTimeScale); } public static function set globalTimeScale(_arg1:Number):void{ if (_arg1 == 0){ _arg1 = 0.0001; }; var _local2:SimpleTimeline = TweenLite.rootTimeline; var _local3:Number = (getTimer() * 0.001); _local2.startTime = (_local3 - (((_local3 - _local2.startTime) * _local2.cachedTimeScale) / _arg1)); _local2 = TweenLite.rootFramesTimeline; _local3 = TweenLite.rootFrame; _local2.startTime = (_local3 - (((_local3 - _local2.startTime) * _local2.cachedTimeScale) / _arg1)); TweenLite.rootFramesTimeline.cachedTimeScale = (TweenLite.rootTimeline.cachedTimeScale = _arg1); } public static function fromTo(_arg1:Object, _arg2:Number, _arg3:Object, _arg4:Object):TweenMax{ _arg4.startAt = _arg3; if (_arg3.immediateRender == true){ _arg4.immediateRender = true; }; return (new TweenMax(_arg1, _arg2, _arg4)); } public static function allFromTo(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Object, _arg5:Number=0, _arg6:Function=null, _arg7:Array=null):Array{ _arg4.startAt = _arg3; if (_arg3.immediateRender == true){ _arg4.immediateRender = true; }; return (allTo(_arg1, _arg2, _arg4, _arg5, _arg6, _arg7)); } public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(true, _arg1, _arg2); } public static function getTweensOf(_arg1:Object):Array{ var _local4:int; var _local2:Array = masterList[_arg1]; var _local3:Array = []; if (_local2 != null){ _local4 = _local2.length; while (_local4-- > 0) { if (!_local2[_local4].gc){ _local3[_local3.length] = _local2[_local4]; }; }; }; return (_local3); } public static function killAllDelayedCalls(_arg1:Boolean=false):void{ killAll(_arg1, false, true); } public static function get globalTimeScale():Number{ return (TweenLite.rootTimeline.cachedTimeScale); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{ return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0})); } public static function isTweening(_arg1:Object):Boolean{ var _local2:Array = getTweensOf(_arg1); var _local3:int = _local2.length; while (_local3-- > 0) { if (((((_local2[_local3].active) || ((((_local2[_local3].startTime == _local2[_local3].timeline.cachedTime)) && (_local2[_local3].timeline.active))))) && (!(_local2[_local3].gc)))){ return (true); }; }; return (false); } public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{ var _local5:Boolean; var _local4:Array = getAllTweens(); var _local6:int = _local4.length; while (_local6-- > 0) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){ if (_arg1){ _local4[_local6].complete(false); } else { _local4[_local6].setEnabled(false, false); }; }; }; } public static function killChildTweensOf(_arg1:DisplayObjectContainer, _arg2:Boolean=false):void{ var _local4:Object; var _local5:DisplayObjectContainer; var _local3:Array = getAllTweens(); var _local6:int = _local3.length; while (_local6-- > 0) { _local4 = _local3[_local6].target; if ((_local4 is DisplayObject)){ _local5 = _local4.parent; while (_local5 != null) { if (_local5 == _arg1){ if (_arg2){ _local3[_local6].complete(false); } else { _local3[_local6].setEnabled(false, false); }; }; _local5 = _local5.parent; }; }; }; } public static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{ var _local5:Boolean; var _local4:Array = getAllTweens(); var _local6:int = _local4.length; while (_local6-- > 0) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local4[_local6] is TweenMax)) && ((((_local5 == _arg3)) || (!((_local5 == _arg2))))))){ (_local4[_local6] as TweenMax).paused = _arg1; }; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ _arg3.runBackwards = true; if (_arg3.immediateRender != false){ _arg3.immediateRender = true; }; return (new TweenMax(_arg1, _arg2, _arg3)); } public static function allFrom(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Number=0, _arg5:Function=null, _arg6:Array=null):Array{ _arg3.runBackwards = true; if (_arg3.immediateRender != false){ _arg3.immediateRender = true; }; return (allTo(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } public static function killAllTweens(_arg1:Boolean=false):void{ killAll(_arg1, true, false); } public static function getAllTweens():Array{ var _local3:Array; var _local4:int; var _local1:Dictionary = masterList; var _local2:Array = []; for each (_local3 in _local1) { _local4 = _local3.length; while (_local4-- > 0) { if (!_local3[_local4].gc){ _local2[_local2.length] = _local3[_local4]; }; }; }; return (_local2); } public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(false, _arg1, _arg2); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ return (new TweenMax(_arg1, _arg2, _arg3)); } public static function allTo(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Number=0, _arg5:Function=null, _arg6:Array=null):Array{ var i:int; var vars:Object; var p:String; var onCompleteProxy:Function; var onCompleteParamsProxy:Array; var $targets = _arg1; var $duration = _arg2; var $vars = _arg3; var $stagger = _arg4; var $onCompleteAll = _arg5; var $onCompleteAllParams = _arg6; var l:uint = $targets.length; var a:Array = []; var curDelay:Number = (($vars.delay) || (0)); onCompleteProxy = $vars.onComplete; onCompleteParamsProxy = $vars.onCompleteParams; var lastIndex:int = (($stagger)<=0) ? 0 : (l - 1); i = 0; while (i < l) { vars = {}; for (p in $vars) { vars[p] = $vars[p]; }; vars.delay = curDelay; if ((((i == lastIndex)) && (!(($onCompleteAll == null))))){ vars.onComplete = function ():void{ if (onCompleteProxy != null){ onCompleteProxy.apply(null, onCompleteParamsProxy); }; $onCompleteAll.apply(null, $onCompleteAllParams); }; }; a[a.length] = new TweenMax($targets[i], $duration, vars); curDelay = (curDelay + $stagger); i = (i + 1); }; return (a); } } }//package gs
Section 29
//ActionTrigger (idv.cjcat.stardust.common.actions.triggers.ActionTrigger) package idv.cjcat.stardust.common.actions.triggers { import idv.cjcat.stardust.common.actions.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; public class ActionTrigger extends CompositeAction { override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (testTrigger(_arg1, _arg2, _arg3)){ super.update(_arg1, _arg2, _arg3); }; } override public function getElementTypeXMLTag():XML{ return (<triggers/> ); } override public function getXMLTagName():String{ return ("ActionTrigger"); } public function testTrigger(_arg1:Emitter, _arg2:Particle, _arg3:Number):Boolean{ return (false); } } }//package idv.cjcat.stardust.common.actions.triggers
Section 30
//DeathTrigger (idv.cjcat.stardust.common.actions.triggers.DeathTrigger) package idv.cjcat.stardust.common.actions.triggers { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; public class DeathTrigger extends ActionTrigger { public function DeathTrigger(){ priority = -100; } override public function getXMLTagName():String{ return ("DeathTrigger"); } override public function testTrigger(_arg1:Emitter, _arg2:Particle, _arg3:Number):Boolean{ return (_arg2.isDead); } } }//package idv.cjcat.stardust.common.actions.triggers
Section 31
//LifeTrigger (idv.cjcat.stardust.common.actions.triggers.LifeTrigger) package idv.cjcat.stardust.common.actions.triggers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; public class LifeTrigger extends ActionTrigger { public var triggerEvery:Number; public var triggerWithinBounds:Boolean; private var _upperBound:Number; private var _lowerBound:Number; public function LifeTrigger(_arg1:Number=0, _arg2:Number=1.79769313486232E308, _arg3:Boolean=true, _arg4:Number=1){ this.lowerBound = _arg1; this.upperBound = _arg2; this.triggerWithinBounds = _arg3; this.triggerEvery = _arg4; } override public function getXMLTagName():String{ return ("LifeTrigger"); } override public function testTrigger(_arg1:Emitter, _arg2:Particle, _arg3:Number):Boolean{ if (triggerWithinBounds){ if ((((_arg2.life >= lowerBound)) && ((_arg2.life <= upperBound)))){ return (((_arg2.life % triggerEvery) < _arg3)); }; } else { if ((((_arg2.life < lowerBound)) || ((_arg2.life > upperBound)))){ return (((_arg2.life % triggerEvery) < _arg3)); }; }; return (false); } public function set upperBound(_arg1:Number):void{ if (_arg1 < _lowerBound){ _lowerBound = _arg1; }; _upperBound = _arg1; } public function get upperBound():Number{ return (_upperBound); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); triggerWithinBounds = (_arg1.@triggerWithinBounds == "true"); triggerEvery = parseFloat(_arg1.@triggerEvery); lowerBound = parseFloat(_arg1.@lowerBound); upperBound = parseFloat(_arg1.@upperBound); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@triggerWithinBounds = triggerWithinBounds; _local1.@triggerEvery = triggerEvery; _local1.@lowerBound = lowerBound; _local1.@upperBound = upperBound; return (_local1); } public function set lowerBound(_arg1:Number):void{ if (_arg1 > _upperBound){ _upperBound = _arg1; }; _lowerBound = _arg1; } public function get lowerBound():Number{ return (_lowerBound); } } }//package idv.cjcat.stardust.common.actions.triggers
Section 32
//Action (idv.cjcat.stardust.common.actions.Action) package idv.cjcat.stardust.common.actions { import flash.events.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.common.emitters.*; public class Action extends StardustElement implements IEventDispatcher { private var _priority:int; public var active:Boolean; private var _mask:int; protected var _supports3D:Boolean; private var _eventDispatcher:EventDispatcher; protected var _supports2D:Boolean; public function Action(){ _supports2D = (_supports3D = true); _eventDispatcher = new EventDispatcher(this); priority = CommonActionPriority.getInstance().getPriority((Object(this).constructor as Class)); active = true; _mask = 1; } public function dispatchEvent(_arg1:Event):Boolean{ return (_eventDispatcher.dispatchEvent(_arg1)); } public function set priority(_arg1:int):void{ _priority = _arg1; dispatchEvent(new ActionEvent(ActionEvent.PRIORITY_CHANGE, this)); } public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function postUpdate(_arg1:Emitter, _arg2:Number):void{ } override public function getElementTypeXMLTag():XML{ return (<actions/> ); } public function preUpdate(_arg1:Emitter, _arg2:Number):void{ } public function set mask(_arg1:int):void{ _mask = _arg1; } public function get needsSortedParticles():Boolean{ return (false); } public function get supports2D():Boolean{ return (_supports2D); } public function willTrigger(_arg1:String):Boolean{ return (_eventDispatcher.willTrigger(_arg1)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@active = active; _local1.@mask = mask; return (_local1); } public function get priority():int{ return (_priority); } override public function getXMLTagName():String{ return ("Action"); } public function get mask():int{ return (_mask); } final public function doUpdate(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (!active){ return; }; if ((mask & _arg2.mask) == 0){ return; }; update(_arg1, _arg2, _arg3); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); active = (_arg1.@active == "true"); mask = parseInt(_arg1.@mask); } public function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public function get supports3D():Boolean{ return (_supports3D); } } }//package idv.cjcat.stardust.common.actions
Section 33
//ActionCollection (idv.cjcat.stardust.common.actions.ActionCollection) package idv.cjcat.stardust.common.actions { import flash.events.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.*; public class ActionCollection implements ActionCollector { sd var actions:Array; public function ActionCollection(){ actions = []; } final public function clearActions():void{ var _local1:Action; for each (_local1 in actions) { removeAction(_local1); }; } final public function sortActions(_arg1:Event=null):void{ actions.sortOn("priority", (Array.NUMERIC | Array.DESCENDING)); } final public function removeAction(_arg1:Action):void{ var _local2:int; while ((_local2 = actions.indexOf(_arg1)) >= 0) { _arg1 = (actions.splice(_local2, 1)[0] as Action); _arg1.removeEventListener(ActionEvent.PRIORITY_CHANGE, sortActions); }; } final public function addAction(_arg1:Action):void{ actions.push(_arg1); _arg1.addEventListener(ActionEvent.PRIORITY_CHANGE, sortActions); sortActions(); } } }//package idv.cjcat.stardust.common.actions
Section 34
//ActionCollector (idv.cjcat.stardust.common.actions.ActionCollector) package idv.cjcat.stardust.common.actions { public interface ActionCollector { function clearActions():void; function removeAction(_arg1:Action):void; function addAction(_arg1:Action):void; } }//package idv.cjcat.stardust.common.actions
Section 35
//ActionPriority (idv.cjcat.stardust.common.actions.ActionPriority) package idv.cjcat.stardust.common.actions { import flash.utils.*; public class ActionPriority { protected var priorities:Dictionary; private static var _instance:ActionPriority; public function ActionPriority(){ priorities = new Dictionary(); populatePriorities(); } final public function getPriority(_arg1:Class):int{ if (priorities[_arg1] == undefined){ return (0); }; return (priorities[_arg1]); } protected function populatePriorities():void{ } public static function getInstance():ActionPriority{ if (!_instance){ _instance = new (ActionPriority); }; return (_instance); } } }//package idv.cjcat.stardust.common.actions
Section 36
//Age (idv.cjcat.stardust.common.actions.Age) package idv.cjcat.stardust.common.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Age extends Action { public var multiplier:Number; public function Age(_arg1:Number=1){ this.multiplier = _arg1; } override public function getXMLTagName():String{ return ("Age"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); multiplier = parseFloat(_arg1.@multiplier); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ _arg2.life = (_arg2.life - (_arg3 * multiplier)); if (_arg2.life < 0){ _arg2.life = 0; }; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@multiplier = multiplier; return (_local1); } } }//package idv.cjcat.stardust.common.actions
Section 37
//AlphaCurve (idv.cjcat.stardust.common.actions.AlphaCurve) package idv.cjcat.stardust.common.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.easing.*; public class AlphaCurve extends Action { public var inAlpha:Number; private var _outFunction:Function; public var inLifespan:Number; private var _inFunctionExtraParams:Array; private var _outFunctionExtraParams:Array; public var outAlpha:Number; public var outLifespan:Number; private var _inFunction:Function; public function AlphaCurve(_arg1:Number=0, _arg2:Number=0, _arg3:Function=null, _arg4:Function=null){ this.inAlpha = 0; this.outAlpha = 0; this.inLifespan = _arg1; this.outLifespan = _arg2; this.inFunction = _arg3; this.outFunction = _arg4; this.inFunctionExtraParams = []; this.outFunctionExtraParams = []; } public function get outFunction():Function{ return (_outFunction); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if ((_arg2.initLife - _arg2.life) < inLifespan){ _arg2.alpha = _inFunction.apply(null, [(_arg2.initLife - _arg2.life), inAlpha, (_arg2.initAlpha - inAlpha), inLifespan].concat(_inFunctionExtraParams)); } else { if (_arg2.life < outLifespan){ _arg2.alpha = _outFunction.apply(null, [(outLifespan - _arg2.life), _arg2.initAlpha, (outAlpha - _arg2.initAlpha), outLifespan].concat(_outFunctionExtraParams)); } else { _arg2.alpha = _arg2.initAlpha; }; }; } public function set outFunction(_arg1:Function):void{ if (_arg1 == null){ _arg1 = Linear.easeOut; }; _outFunction = _arg1; } public function get outFunctionExtraParams():Array{ return (_outFunctionExtraParams); } public function get inFunctionExtraParams():Array{ return (_inFunctionExtraParams); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@inAlpha = inAlpha; _local1.@outAlpha = outAlpha; _local1.@inLifespan = inLifespan; _local1.@outLifespan = outLifespan; _local1.@inFunction = EasingFunctionType.functions[inFunction]; _local1.@outFunction = EasingFunctionType.functions[outFunction]; return (_local1); } public function get inFunction():Function{ return (_inFunction); } override public function getXMLTagName():String{ return ("AlphaCurve"); } public function set outFunctionExtraParams(_arg1:Array):void{ if (!_arg1){ _arg1 = []; }; _outFunctionExtraParams = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); inAlpha = parseFloat(_arg1.@inAlpha); outAlpha = parseFloat(_arg1.@outAlpha); inLifespan = parseFloat(_arg1.@inLifespan); outLifespan = parseFloat(_arg1.@outLifespan); inFunction = EasingFunctionType.functions[_arg1.@inFunction.toString()]; outFunction = EasingFunctionType.functions[_arg1.@outFunction.toString()]; } public function set inFunctionExtraParams(_arg1:Array):void{ if (!_arg1){ _arg1 = []; }; _inFunctionExtraParams = _arg1; } public function set inFunction(_arg1:Function):void{ if (_arg1 == null){ _arg1 = Linear.easeIn; }; _inFunction = _arg1; } } }//package idv.cjcat.stardust.common.actions
Section 38
//CommonActionPriority (idv.cjcat.stardust.common.actions.CommonActionPriority) package idv.cjcat.stardust.common.actions { import idv.cjcat.stardust.common.actions.triggers.*; public class CommonActionPriority extends ActionPriority { private static var _instance:CommonActionPriority; final override protected function populatePriorities():void{ priorities[DeathLife] = -1; priorities[DeathTrigger] = -5; priorities[LifeTrigger] = -5; } public static function getInstance():CommonActionPriority{ if (!_instance){ _instance = new (CommonActionPriority); }; return (_instance); } } }//package idv.cjcat.stardust.common.actions
Section 39
//CompositeAction (idv.cjcat.stardust.common.actions.CompositeAction) package idv.cjcat.stardust.common.actions { import flash.events.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.*; public class CompositeAction extends Action implements ActionCollector { public var checkComponentMasks:Boolean; sd var actions:ActionCollection; public function CompositeAction(){ checkComponentMasks = false; actions = new ActionCollection(); } public function removeAction(_arg1:Action):void{ var _local2:int; var _local3:Action; while ((_local2 = actions.actions.indexOf(_arg1)) >= 0) { _local3 = actions.actions.splice(_local2, 1)[0]; _local3.removeEventListener(ActionEvent.PRIORITY_CHANGE, sortActions); }; } final override public function get needsSortedParticles():Boolean{ var _local1:Action; for each (_local1 in actions.actions) { if (_local1.needsSortedParticles){ return (true); }; }; return (false); } override public function toXML():XML{ var _local2:Action; var _local1:XML = super.toXML(); _local1.@checkComponentMasks = checkComponentMasks; if (actions.actions.length > 0){ _local1.appendChild(<actions/> ); for each (_local2 in actions.actions) { _local1.actions.appendChild(_local2.getXMLTag()); }; }; return (_local1); } final public function sortActions(_arg1:Event=null):void{ actions.actions.sortOn("priority", (Array.NUMERIC | Array.DESCENDING)); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Action; if (checkComponentMasks){ for each (_local4 in actions.actions) { if (_local4.active){ _local4.doUpdate(_arg1, _arg2, _arg3); }; }; } else { for each (_local4 in actions.actions) { if (_local4.active){ _local4.update(_arg1, _arg2, _arg3); }; }; }; } override public function getXMLTagName():String{ return ("CompositeAction"); } override public function preUpdate(_arg1:Emitter, _arg2:Number):void{ var _local3:Action; for each (_local3 in actions.actions) { _local3.preUpdate(_arg1, _arg2); }; } override public function getRelatedObjects():Array{ return (actions.actions.concat()); } public function clearActions():void{ var _local1:Action; for each (_local1 in actions.actions) { removeAction(_local1); }; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); checkComponentMasks = (_arg1.@checkComponentMasks == "true"); clearActions(); for each (_local3 in _arg1.actions.*) { addAction((_arg2.getElementByName(_local3.@name) as Action)); }; } public function addAction(_arg1:Action):void{ actions.actions.push(_arg1); _arg1.addEventListener(ActionEvent.PRIORITY_CHANGE, sortActions); sortActions(); } } }//package idv.cjcat.stardust.common.actions
Section 40
//DeathLife (idv.cjcat.stardust.common.actions.DeathLife) package idv.cjcat.stardust.common.actions { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; public class DeathLife extends Action { public var threshold:Number; override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (_arg2.life <= 0){ _arg2.isDead = true; }; } override public function getXMLTagName():String{ return ("DeathLife"); } } }//package idv.cjcat.stardust.common.actions
Section 41
//Die (idv.cjcat.stardust.common.actions.Die) package idv.cjcat.stardust.common.actions { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Die extends Action { override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ _arg2.isDead = true; } override public function getXMLTagName():String{ return ("Die"); } } }//package idv.cjcat.stardust.common.actions
Section 42
//ScaleCurve (idv.cjcat.stardust.common.actions.ScaleCurve) package idv.cjcat.stardust.common.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.easing.*; public class ScaleCurve extends Action { private var _outFunction:Function; public var inLifespan:Number; private var _inFunctionExtraParams:Array; public var outScale:Number; public var inScale:Number; private var _outFunctionExtraParams:Array; public var outLifespan:Number; private var _inFunction:Function; public function ScaleCurve(_arg1:Number=0, _arg2:Number=0, _arg3:Function=null, _arg4:Function=null){ this.inScale = 0; this.outScale = 0; this.inLifespan = _arg1; this.outLifespan = _arg2; this.inFunction = _arg3; this.outFunction = _arg4; this.inFunctionExtraParams = []; this.outFunctionExtraParams = []; } public function get outFunction():Function{ return (_outFunction); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if ((_arg2.initLife - _arg2.life) < inLifespan){ _arg2.scale = _inFunction.apply(null, [(_arg2.initLife - _arg2.life), inScale, (_arg2.initScale - inScale), inLifespan].concat(_inFunctionExtraParams)); } else { if (_arg2.life < outLifespan){ _arg2.scale = _outFunction.apply(null, [(outLifespan - _arg2.life), _arg2.initScale, (outScale - _arg2.initScale), outLifespan].concat(_outFunctionExtraParams)); } else { _arg2.scale = _arg2.initScale; }; }; } public function set outFunction(_arg1:Function):void{ if (_arg1 == null){ _arg1 = Linear.easeOut; }; _outFunction = _arg1; } public function get outFunctionExtraParams():Array{ return (_outFunctionExtraParams); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); inScale = parseFloat(_arg1.@inScale); inScale = parseFloat(_arg1.@inScale); inLifespan = parseFloat(_arg1.@inLifespan); outLifespan = parseFloat(_arg1.@outLifespan); inFunction = EasingFunctionType.functions[_arg1.@inFunction.toString()]; outFunction = EasingFunctionType.functions[_arg1.@outFunction.toString()]; } public function get inFunctionExtraParams():Array{ return (_inFunctionExtraParams); } public function get inFunction():Function{ return (_inFunction); } public function set outFunctionExtraParams(_arg1:Array):void{ if (!_arg1){ _arg1 = []; }; _outFunctionExtraParams = _arg1; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@inScale = inScale; _local1.@outScale = outScale; _local1.@inLifespan = inLifespan; _local1.@outLifespan = outLifespan; _local1.@inFunction = EasingFunctionType.functions[inFunction]; _local1.@outFunction = EasingFunctionType.functions[outFunction]; return (_local1); } override public function getXMLTagName():String{ return ("ScaleCurve"); } public function set inFunctionExtraParams(_arg1:Array):void{ if (!_arg1){ _arg1 = []; }; _inFunctionExtraParams = _arg1; } public function set inFunction(_arg1:Function):void{ if (_arg1 == null){ _arg1 = Linear.easeIn; }; _inFunction = _arg1; } } }//package idv.cjcat.stardust.common.actions
Section 43
//Clock (idv.cjcat.stardust.common.clocks.Clock) package idv.cjcat.stardust.common.clocks { import idv.cjcat.stardust.common.*; public class Clock extends StardustElement { public function getTicks(_arg1:Number):int{ return (0); } override public function getElementTypeXMLTag():XML{ return (<clocks/> ); } } }//package idv.cjcat.stardust.common.clocks
Section 44
//ClockCollection (idv.cjcat.stardust.common.clocks.ClockCollection) package idv.cjcat.stardust.common.clocks { import idv.cjcat.stardust.*; public class ClockCollection implements ClockCollector { sd var clocks:Array; public function ClockCollection(){ clocks = []; } final public function clearClocks():void{ clocks = []; } final public function removeClock(_arg1:Clock):void{ var _local2:int; while ((_local2 = clocks.indexOf(_arg1)) >= 0) { clocks.splice(_local2, 1); }; } final public function addClock(_arg1:Clock):void{ clocks.push(_arg1); } } }//package idv.cjcat.stardust.common.clocks
Section 45
//ClockCollector (idv.cjcat.stardust.common.clocks.ClockCollector) package idv.cjcat.stardust.common.clocks { public interface ClockCollector { function clearClocks():void; function removeClock(_arg1:Clock):void; function addClock(_arg1:Clock):void; } }//package idv.cjcat.stardust.common.clocks
Section 46
//CompositeClock (idv.cjcat.stardust.common.clocks.CompositeClock) package idv.cjcat.stardust.common.clocks { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.*; public class CompositeClock extends Clock implements ClockCollector { protected var clockCollection:ClockCollection; public function CompositeClock(){ clockCollection = new ClockCollection(); } override public function getTicks(_arg1:Number):int{ var _local3:Clock; var _local2:int; for each (_local3 in clockCollection.sd::clocks) { _local2 = (_local2 + _local3.getTicks(_arg1)); }; return (_local2); } override public function getXMLTagName():String{ return ("CompositeClock"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); clearClocks(); for each (_local3 in _arg1.clocks.*) { addClock((_arg2.getElementByName(_local3.@name) as Clock)); }; } final public function addClock(_arg1:Clock):void{ clockCollection.addClock(_arg1); } final public function removeClock(_arg1:Clock):void{ clockCollection.removeClock(_arg1); } final public function clearClocks():void{ clockCollection.clearClocks(); } override public function toXML():XML{ var _local2:Clock; var _local1:XML = super.toXML(); if (clockCollection.sd::clocks.length > 0){ _local1.appendChild(<clocks/> ); for each (_local2 in clockCollection.sd::clocks) { _local1.clocks.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function getRelatedObjects():Array{ return (clockCollection.sd::clocks.concat()); } } }//package idv.cjcat.stardust.common.clocks
Section 47
//ImpulseClock (idv.cjcat.stardust.common.clocks.ImpulseClock) package idv.cjcat.stardust.common.clocks { import flash.events.*; import idv.cjcat.stardust.common.xml.*; public class ImpulseClock extends Clock { private var _discharged:Boolean; private var _dischargeCount:int; public var repeatCount:int; public var impulseCount:int; public function ImpulseClock(_arg1:int=0, _arg2:int=1){ this.impulseCount = _arg1; this.repeatCount = _arg2; _discharged = true; } override public function getTicks(_arg1:Number):int{ var _local2:int; if (!_discharged){ if (_dischargeCount >= repeatCount){ _discharged = true; _local2 = 0; } else { _local2 = impulseCount; _dischargeCount++; }; } else { _local2 = 0; }; return (_local2); } override public function getXMLTagName():String{ return ("ImpulseClock"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); impulseCount = parseInt(_arg1.@impulseCount); repeatCount = parseInt(_arg1.@repeatCount); } public function impulse(_arg1:Event=null):void{ _dischargeCount = 0; _discharged = false; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@impulseCount = impulseCount; _local1.@repeatCount = repeatCount; return (_local1); } } }//package idv.cjcat.stardust.common.clocks
Section 48
//RandomClock (idv.cjcat.stardust.common.clocks.RandomClock) package idv.cjcat.stardust.common.clocks { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.math.*; public class RandomClock extends Clock { private var _random:Random; public function RandomClock(_arg1:Random=null){ this.random = _arg1; } override public function getTicks(_arg1:Number):int{ var _local2:Number = (random.random() * _arg1); var _local3 = (_local2 | 0); return ((_local3 + int((((_local2 - _local3))>Math.random()) ? 1 : 0))); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); random = (_arg2.getElementByName(_arg1.@random) as Random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _random = _arg1; } public function get random():Random{ return (_random); } override public function getXMLTagName():String{ return ("RandomClock"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@random = _random.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_random]); } } }//package idv.cjcat.stardust.common.clocks
Section 49
//SteadyClock (idv.cjcat.stardust.common.clocks.SteadyClock) package idv.cjcat.stardust.common.clocks { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.math.*; public class SteadyClock extends Clock { public var ticksPerCall:Number; public function SteadyClock(_arg1:Number=0){ this.ticksPerCall = _arg1; } override public function getTicks(_arg1:Number):int{ return (StardustMath.randomFloor((ticksPerCall * _arg1))); } override public function getXMLTagName():String{ return ("SteadyClock"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); ticksPerCall = parseFloat(_arg1.@ticksPerCall); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@ticksPerCall = ticksPerCall; return (_local1); } } }//package idv.cjcat.stardust.common.clocks
Section 50
//Back (idv.cjcat.stardust.common.easing.Back) package idv.cjcat.stardust.common.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _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)); } } }//package idv.cjcat.stardust.common.easing
Section 51
//Circ (idv.cjcat.stardust.common.easing.Circ) package idv.cjcat.stardust.common.easing { public class Circ { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeInOut(_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)); } } }//package idv.cjcat.stardust.common.easing
Section 52
//Cubic (idv.cjcat.stardust.common.easing.Cubic) package idv.cjcat.stardust.common.easing { public class Cubic { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_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)); } } }//package idv.cjcat.stardust.common.easing
Section 53
//EasingFunctionType (idv.cjcat.stardust.common.easing.EasingFunctionType) package idv.cjcat.stardust.common.easing { import flash.utils.*; public class EasingFunctionType { private static var _functions:Dictionary; public static function get functions():Dictionary{ if (!_functions){ _functions = new Dictionary(); _functions["Back.easeIn"] = Back.easeIn; _functions["Back.easeInOut"] = Back.easeInOut; _functions["Back.easeOut"] = Back.easeOut; _functions["Circ.easeIn"] = Circ.easeIn; _functions["Circ.easeInOut"] = Circ.easeInOut; _functions["Circ.easeOut"] = Circ.easeOut; _functions["Cubic.easeIn"] = Cubic.easeIn; _functions["Cubic.easeInOut"] = Cubic.easeInOut; _functions["Cubic.easeOut"] = Cubic.easeOut; _functions["Elastic.easeIn"] = Elastic.easeIn; _functions["Elastic.easeInOut"] = Elastic.easeInOut; _functions["Elastic.easeOut"] = Elastic.easeOut; _functions["Expo.easeIn"] = Expo.easeIn; _functions["Expo.easeInOut"] = Expo.easeInOut; _functions["Expo.easeOut"] = Expo.easeOut; _functions["Linear.easeIn"] = Linear.easeIn; _functions["Linear.easeInOut"] = Linear.easeInOut; _functions["Linear.easeNone"] = Linear.easeNone; _functions["Linear.easeOut"] = Linear.easeOut; _functions["Quad.easeIn"] = Quad.easeIn; _functions["Quad.easeInOut"] = Quad.easeInOut; _functions["Quad.easeOut"] = Quad.easeOut; _functions["Quart.easeIn"] = Quart.easeIn; _functions["Quart.easeInOut"] = Quart.easeInOut; _functions["Quart.easeOut"] = Quart.easeOut; _functions["Quint.easeIn"] = Quint.easeIn; _functions["Quint.easeInOut"] = Quint.easeInOut; _functions["Quint.easeOut"] = Quint.easeOut; _functions["Sine.easeIn"] = Sine.easeIn; _functions["Sine.easeInOut"] = Sine.easeInOut; _functions["Sine.easeOut"] = Sine.easeOut; _functions[Back.easeIn] = "Back.easeIn"; _functions[Back.easeInOut] = "Back.easeInOut"; _functions[Back.easeOut] = "Back.easeOut"; _functions[Circ.easeIn] = "Circ.easeIn"; _functions[Circ.easeInOut] = "Circ.easeInOut"; _functions[Circ.easeOut] = "Circ.easeOut"; _functions[Cubic.easeIn] = "Cubic.easeIn"; _functions[Cubic.easeInOut] = "Cubic.easeInOut"; _functions[Cubic.easeOut] = "Cubic.easeOut"; _functions[Elastic.easeIn] = "Elastic.easeIn"; _functions[Elastic.easeInOut] = "Elastic.easeInOut"; _functions[Elastic.easeOut] = "Elastic.easeOut"; _functions[Expo.easeIn] = "Expo.easeIn"; _functions[Expo.easeInOut] = "Expo.easeInOut"; _functions[Expo.easeOut] = "Expo.easeOut"; _functions[Linear.easeIn] = "Linear.easeIn"; _functions[Linear.easeInOut] = "Linear.easeInOut"; _functions[Linear.easeNone] = "Linear.easeNone"; _functions[Linear.easeOut] = "Linear.easeOut"; _functions[Quad.easeIn] = "Quad.easeIn"; _functions[Quad.easeInOut] = "Quad.easeInOut"; _functions[Quad.easeOut] = "Quad.easeOut"; _functions[Quart.easeIn] = "Quart.easeIn"; _functions[Quart.easeInOut] = "Quart.easeInOut"; _functions[Quart.easeOut] = "Quart.easeOut"; _functions[Quint.easeIn] = "Quint.easeIn"; _functions[Quint.easeInOut] = "Quint.easeInOut"; _functions[Quint.easeOut] = "Quint.easeOut"; _functions[Sine.easeIn] = "Sine.easeIn"; _functions[Sine.easeInOut] = "Sine.easeInOut"; _functions[Sine.easeOut] = "Sine.easeOut"; }; return (_functions); } } }//package idv.cjcat.stardust.common.easing
Section 54
//Elastic (idv.cjcat.stardust.common.easing.Elastic) package idv.cjcat.stardust.common.easing { public class Elastic { private static const _2PI:Number = 6.28318530717959; public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):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 / _2PI) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):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 / _2PI) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) * 0.5) + _arg3) + _arg2)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):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 / _2PI) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) + _arg3) + _arg2)); } } }//package idv.cjcat.stardust.common.easing
Section 55
//Expo (idv.cjcat.stardust.common.easing.Expo) package idv.cjcat.stardust.common.easing { public class Expo { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : ((_arg3 * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==0) ? _arg2 : ((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2)); } public static function easeInOut(_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)); }; --_arg1; return ((((_arg3 / 2) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } } }//package idv.cjcat.stardust.common.easing
Section 56
//Linear (idv.cjcat.stardust.common.easing.Linear) package idv.cjcat.stardust.common.easing { public class Linear { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package idv.cjcat.stardust.common.easing
Section 57
//Quad (idv.cjcat.stardust.common.easing.Quad) package idv.cjcat.stardust.common.easing { public class Quad { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_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)); } } }//package idv.cjcat.stardust.common.easing
Section 58
//Quart (idv.cjcat.stardust.common.easing.Quart) package idv.cjcat.stardust.common.easing { public class Quart { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_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)); } } }//package idv.cjcat.stardust.common.easing
Section 59
//Quint (idv.cjcat.stardust.common.easing.Quint) package idv.cjcat.stardust.common.easing { public class Quint { public static function easeOut(_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 easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_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)); } } }//package idv.cjcat.stardust.common.easing
Section 60
//Sine (idv.cjcat.stardust.common.easing.Sine) package idv.cjcat.stardust.common.easing { public class Sine { private static const _HALF_PI:Number = 1.5707963267949; public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * _HALF_PI))) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * _HALF_PI))) + _arg3) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } } }//package idv.cjcat.stardust.common.easing
Section 61
//Emitter (idv.cjcat.stardust.common.emitters.Emitter) package idv.cjcat.stardust.common.emitters { import flash.events.*; import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.actions.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.clocks.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.*; import idv.cjcat.stardust.common.errors.*; public class Emitter extends StardustElement implements IEventDispatcher, ActionCollector, InitializerCollector { public var active:Boolean; protected var factory:ParticleFactory; private var _clock:Clock; public var stepTimeInterval:Number;// = 1 private var _eventDispatcher:EventDispatcher; sd var particles:Array; private var _actionCollection:ActionCollection; public var needsSort:Boolean; protected var particleSorter:ParticleSorter; public function Emitter(_arg1:Clock=null){ _eventDispatcher = new EventDispatcher(this); needsSort = false; particleSorter = ParticleSorter.getInstane(); if (!_arg1){ _arg1 = new SteadyClock(0); }; this.clock = _arg1; this.active = true; _actionCollection = new ActionCollection(); particles = []; } public function addInitializer(_arg1:Initializer):void{ factory.addInitializer(_arg1); } final public function removeDeadParticles():void{ var _local6:Particle; var _local1:int = particles.length; var _local2:int; var _local3:int; var _local4:Array = new Array(_local1); var _local5:Array = new Array(_local1); for each (_local6 in particles) { if (_local6.isDead){ _local1--; _local4[_local2] = _local6; _local2++; } else { _local5[_local3] = _local6; _local3++; }; }; _local4.length = (particles.length - _local1); _local5.length = _local1; particles = _local5; if (_local4.length > 0){ dispatchEvent(new EmitterEvent(EmitterEvent.PARTICLES_REMOVED, _local4)); }; for each (_local6 in _local4) { _local6.destroy(); factory.particlePool.recycle(_local6); }; } final public function removeParticles(_arg1:Array):void{ var _local3:int; var _local4:Particle; var _local2:Array = []; for each (_local4 in _arg1) { _local3 = _arg1.indexOf(_local4); if (_local3 >= 0){ _arg1.splice(_local3, 1); _local2.push(_local4); }; }; if (_local2.length > 0){ dispatchEvent(new EmitterEvent(EmitterEvent.PARTICLES_REMOVED, _local2)); }; for each (_local4 in _local2) { _local4.destroy(); factory.particlePool.recycle(_local4); }; } public function willTrigger(_arg1:String):Boolean{ return (_eventDispatcher.willTrigger(_arg1)); } public function get clock():Clock{ return (_clock); } final public function addParticles(_arg1:Array):void{ var _local2:Particle; var _local3:int; if (!_arg1){ return; }; for each (_local2 in _arg1) { if ((!(_local2) is factory.particlePool.particleClass)){ throw (new ParticleClassError(((("Invalid particle class: " + (Object(_local2).constructor as Class)) + ". Expedted particle class: ") + factory.particlePool.particleClass), (Object(_local2).constructor as Class), (Object(_local2).constructor as Class))); }; }; this.particles.length = (this.particles.length + _arg1.length); _local3 = 0; while (_local3 < _arg1.length) { this.particles[(this.particles.length - (_local3 + 1))] = _arg1[_local3]; _local3++; }; if (_arg1.length > 0){ dispatchEvent(new EmitterEvent(EmitterEvent.PARTICLES_ADDED, _arg1)); }; } public function set clock(_arg1:Clock):void{ if (!_arg1){ _arg1 = new SteadyClock(0); }; _clock = _arg1; } override public function toXML():XML{ var _local2:Action; var _local3:Initializer; var _local1:XML = super.toXML(); _local1.@clock = _clock.name; if (actions.length > 0){ _local1.appendChild(<actions/> ); for each (_local2 in actions) { _local1.actions.appendChild(_local2.getXMLTag()); }; }; if (initializers.length > 0){ _local1.appendChild(<initializers/> ); for each (_local3 in initializers) { _local1.initializers.appendChild(_local3.getXMLTag()); }; }; return (_local1); } override public function getXMLTagName():String{ return ("Emitter"); } final public function removeInitializer(_arg1:Initializer):void{ factory.removeInitializer(_arg1); } public function dispatchEvent(_arg1:Event):Boolean{ return (_eventDispatcher.dispatchEvent(_arg1)); } override public function getElementTypeXMLTag():XML{ return (<emitters/> ); } public function addAction(_arg1:Action):void{ _actionCollection.addAction(_arg1); } final public function get numParticles():int{ return (particles.length); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } final public function step(_arg1:Event=null):void{ var _local3:int; var _local4:Particle; var _local6:Action; var _local7:int; var _local8:Array; var _local2:Boolean; if (active){ _local7 = clock.getTicks(stepTimeInterval); _local8 = factory.createParticles(_local7); addParticles(_local8); }; var _local5:Boolean; for each (_local6 in actions) { _local6.preUpdate(this, stepTimeInterval); if (!_local2){ if (_local6.needsSortedParticles){ particleSorter.sort(particles); _local3 = 0; while (_local3 < particles.length) { Particle(particles[_local3]).sortedIndex = _local3; _local3++; }; _local2 = true; }; }; if (_local5){ for each (_local4 in particles) { _local6.doUpdate(this, _local4, stepTimeInterval); }; _local5 = false; } else { for each (_local4 in particles) { _local6.doUpdate(this, _local4, stepTimeInterval); }; }; _local6.postUpdate(this, stepTimeInterval); }; removeDeadParticles(); dispatchEvent(new EmitterEvent(EmitterEvent.STEPPED, particles)); if (!numParticles){ dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_EMPTY, null)); }; } final public function clearInitializers():void{ factory.clearInitializers(); } final sd function get initializers():Array{ return (factory.initializerCollection.initializers); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } override public function getRelatedObjects():Array{ return ([_clock].concat(initializers).concat(actions)); } final public function clearParticles():void{ var _local2:Particle; var _local1:Array = particles; particles = []; if (_local1.length > 0){ dispatchEvent(new EmitterEvent(EmitterEvent.PARTICLES_REMOVED, _local1)); }; for each (_local2 in _local1) { _local2.destroy(); factory.particlePool.recycle(_local2); }; } final public function removeAction(_arg1:Action):void{ _actionCollection.removeAction(_arg1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); _actionCollection.clearActions(); factory.clearInitializers(); clock = (_arg2.getElementByName(_arg1.@clock) as Clock); for each (_local3 in _arg1.actions.*) { addAction((_arg2.getElementByName(_local3.@name) as Action)); }; for each (_local3 in _arg1.initializers.*) { addInitializer((_arg2.getElementByName(_local3.@name) as Initializer)); }; } final public function clearActions():void{ _actionCollection.clearActions(); } public function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } final sd function get actions():Array{ return (_actionCollection.actions); } } }//package idv.cjcat.stardust.common.emitters
Section 62
//DuplicateElementNameError (idv.cjcat.stardust.common.errors.DuplicateElementNameError) package idv.cjcat.stardust.common.errors { import idv.cjcat.stardust.common.*; public class DuplicateElementNameError extends Error { private var _element2:StardustElement; private var _name:String; private var _element1:StardustElement; public function DuplicateElementNameError(_arg1, _arg2:String, _arg3:StardustElement, _arg4:StardustElement){ super(_arg1); _element1 = _arg3; _element2 = _arg4; _name = _arg2; } public function get element2():StardustElement{ return (_element2); } public function get elementName():String{ return (_name); } public function get element1():StardustElement{ return (_element1); } } }//package idv.cjcat.stardust.common.errors
Section 63
//ParticleClassError (idv.cjcat.stardust.common.errors.ParticleClassError) package idv.cjcat.stardust.common.errors { public class ParticleClassError extends Error { private var _invalidClass:Class; private var _expectedClass:Class; public function ParticleClassError(_arg1, _arg2:Class, _arg3:Class){ super(_arg1); _invalidClass = _arg2; _expectedClass = _arg3; } public function get invalidClass():Class{ return (_invalidClass); } public function get expectedClass():Class{ return (_expectedClass); } } }//package idv.cjcat.stardust.common.errors
Section 64
//ActionEvent (idv.cjcat.stardust.common.events.ActionEvent) package idv.cjcat.stardust.common.events { import flash.events.*; import idv.cjcat.stardust.common.actions.*; public class ActionEvent extends Event { private var _action:Action; public static const PRIORITY_CHANGE:String = "stardustActoinPriorityChange"; public function ActionEvent(_arg1:String, _arg2:Action){ super(_arg1); _action = _arg2; } public function get action():Action{ return (_action); } } }//package idv.cjcat.stardust.common.events
Section 65
//EmitterEvent (idv.cjcat.stardust.common.events.EmitterEvent) package idv.cjcat.stardust.common.events { import flash.events.*; public class EmitterEvent extends Event { private var _particles:Array; public static const EMITTER_EMPTY:String = "stardustEmitterEmpty"; public static const PARTICLES_ADDED:String = "stardustEmitterParticleAdded"; public static const STEPPED:String = "stardustEmitterStepped"; public static const PARTICLES_REMOVED:String = "stardustEmitterParticleRemoved"; public function EmitterEvent(_arg1:String, _arg2:Array){ super(_arg1); _particles = _arg2; } public function get particles():Array{ return (_particles); } } }//package idv.cjcat.stardust.common.events
Section 66
//InitializerEvent (idv.cjcat.stardust.common.events.InitializerEvent) package idv.cjcat.stardust.common.events { import flash.events.*; import idv.cjcat.stardust.common.initializers.*; public class InitializerEvent extends Event { private var _initializer:Initializer; public static const PRIORITY_CHANGE:String = "stardustInitializerPriorityChange"; public function InitializerEvent(_arg1:String, _arg2:Initializer){ super(_arg1); _initializer = _arg2; } public function get initializer():Initializer{ return (_initializer); } } }//package idv.cjcat.stardust.common.events
Section 67
//Alpha (idv.cjcat.stardust.common.initializers.Alpha) package idv.cjcat.stardust.common.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.math.*; public class Alpha extends Initializer { private var _random:Random; public function Alpha(_arg1:Random=null){ this.random = _arg1; } override public function initialize(_arg1:Particle):void{ _arg1.initAlpha = (_arg1.alpha = random.random()); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); random = (_arg2.getElementByName(_arg1.@random) as Random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(1, 0); }; _random = _arg1; } public function get random():Random{ return (_random); } override public function getXMLTagName():String{ return ("Alpha"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@random = _random.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_random]); } } }//package idv.cjcat.stardust.common.initializers
Section 68
//CollisionRadius (idv.cjcat.stardust.common.initializers.CollisionRadius) package idv.cjcat.stardust.common.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; public class CollisionRadius extends Initializer { public var radius:Number; public function CollisionRadius(_arg1:Number=0){ this.radius = _arg1; } override public function initialize(_arg1:Particle):void{ _arg1.collisionRadius = radius; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); radius = parseFloat(_arg1.@radius); } override public function getXMLTagName():String{ return ("CollisionRadius"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@radius = radius; return (_local1); } } }//package idv.cjcat.stardust.common.initializers
Section 69
//Color (idv.cjcat.stardust.common.initializers.Color) package idv.cjcat.stardust.common.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; public class Color extends Initializer { public var color:uint; public function Color(_arg1:uint=0xFFFFFF){ this.color = _arg1; } override public function initialize(_arg1:Particle):void{ _arg1.color = color; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); color = parseInt(_arg1.@color, 16); } override public function getXMLTagName():String{ return ("Color"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@color = color.toString(16); return (_local1); } } }//package idv.cjcat.stardust.common.initializers
Section 70
//CommonInitializerPriority (idv.cjcat.stardust.common.initializers.CommonInitializerPriority) package idv.cjcat.stardust.common.initializers { public class CommonInitializerPriority extends InitializerPriority { private static var _instance:CommonInitializerPriority; final override protected function populatePriorities():void{ priorities[Mask] = 1; } public static function getInstance():CommonInitializerPriority{ if (!_instance){ _instance = new (CommonInitializerPriority); }; return (_instance); } } }//package idv.cjcat.stardust.common.initializers
Section 71
//CompositeInitializer (idv.cjcat.stardust.common.initializers.CompositeInitializer) package idv.cjcat.stardust.common.initializers { import flash.events.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.events.*; public class CompositeInitializer extends Initializer implements InitializerCollector { protected var initializers:Array; public function CompositeInitializer(){ initializers = []; } public function addInitializer(_arg1:Initializer):void{ if (initializers.indexOf(_arg1) < 0){ initializers.push(_arg1); }; _arg1.addEventListener(InitializerEvent.PRIORITY_CHANGE, sortInitializers); sortInitializers(); } override public function getXMLTagName():String{ return ("CompositeInitializer"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); clearInitializers(); for each (_local3 in _arg1.initializers.*) { addInitializer((_arg2.getElementByName(_local3.@name) as Initializer)); }; } public function clearInitializers():void{ var _local1:Initializer; for each (_local1 in initializers) { removeInitializer(_local1); }; } final public function sortInitializers(_arg1:Event=null):void{ initializers.sortOn("priority", (Array.NUMERIC | Array.DESCENDING)); } override public function initialize(_arg1:Particle):void{ var _local2:Initializer; for each (_local2 in initializers) { _local2.doInitialize(_arg1); }; } public function removeInitializer(_arg1:Initializer):void{ var _local2:int; _local2 = initializers.indexOf(_arg1); if (_local2 >= 0){ _arg1 = (initializers.splice(_local2, 1)[0] as Initializer); _arg1.removeEventListener(InitializerEvent.PRIORITY_CHANGE, sortInitializers); }; } override public function toXML():XML{ var _local2:Initializer; var _local1:XML = super.toXML(); if (initializers.length > 0){ _local1.appendChild(<initializers/> ); for each (_local2 in initializers) { _local1.initializers.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function getRelatedObjects():Array{ return (initializers); } } }//package idv.cjcat.stardust.common.initializers
Section 72
//Initializer (idv.cjcat.stardust.common.initializers.Initializer) package idv.cjcat.stardust.common.initializers { import flash.events.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.events.*; public class Initializer extends StardustElement implements IEventDispatcher { private var _priority:int; protected var _supports3D:Boolean; public var active:Boolean; private var _eventDispatcher:EventDispatcher; protected var _supports2D:Boolean; public function Initializer(){ _supports2D = (_supports3D = true); _eventDispatcher = new EventDispatcher(this); priority = CommonInitializerPriority.getInstance().getPriority((Object(this).constructor as Class)); active = true; } public function dispatchEvent(_arg1:Event):Boolean{ return (_eventDispatcher.dispatchEvent(_arg1)); } final public function doInitialize(_arg1:Particle):void{ if (!active){ return; }; initialize(_arg1); } public function set priority(_arg1:int):void{ _priority = _arg1; dispatchEvent(new InitializerEvent(InitializerEvent.PRIORITY_CHANGE, this)); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function initialize(_arg1:Particle):void{ } override public function getElementTypeXMLTag():XML{ return (<initializers/> ); } public function get supports2D():Boolean{ return (_supports2D); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); active = (_arg1.@active == "true"); } public function willTrigger(_arg1:String):Boolean{ return (_eventDispatcher.willTrigger(_arg1)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@active = active; return (_local1); } public function get priority():int{ return (_priority); } override public function getXMLTagName():String{ return ("Initializer"); } public function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public function get supports3D():Boolean{ return (_supports3D); } } }//package idv.cjcat.stardust.common.initializers
Section 73
//InitializerCollection (idv.cjcat.stardust.common.initializers.InitializerCollection) package idv.cjcat.stardust.common.initializers { import flash.events.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.*; public class InitializerCollection implements InitializerCollector { sd var initializers:Array; public function InitializerCollection(){ initializers = []; } final public function addInitializer(_arg1:Initializer):void{ if (initializers.indexOf(_arg1) < 0){ initializers.push(_arg1); }; _arg1.addEventListener(InitializerEvent.PRIORITY_CHANGE, sortInitializers); sortInitializers(); } final public function clearInitializers():void{ var _local1:Initializer; for each (_local1 in initializers) { removeInitializer(_local1); }; } final public function removeInitializer(_arg1:Initializer):void{ var _local2:int; _local2 = initializers.indexOf(_arg1); if (_local2 >= 0){ _arg1 = (initializers.splice(_local2, 1)[0] as Initializer); _arg1.removeEventListener(InitializerEvent.PRIORITY_CHANGE, sortInitializers); }; } final public function sortInitializers(_arg1:Event=null):void{ initializers.sortOn("priority", (Array.NUMERIC | Array.DESCENDING)); } } }//package idv.cjcat.stardust.common.initializers
Section 74
//InitializerCollector (idv.cjcat.stardust.common.initializers.InitializerCollector) package idv.cjcat.stardust.common.initializers { public interface InitializerCollector { function addInitializer(_arg1:Initializer):void; function clearInitializers():void; function removeInitializer(_arg1:Initializer):void; } }//package idv.cjcat.stardust.common.initializers
Section 75
//InitializerPriority (idv.cjcat.stardust.common.initializers.InitializerPriority) package idv.cjcat.stardust.common.initializers { import flash.utils.*; public class InitializerPriority { protected var priorities:Dictionary; private static var _instance:InitializerPriority; public function InitializerPriority(){ priorities = new Dictionary(); populatePriorities(); } public function getPriority(_arg1:Class):int{ if (priorities[_arg1] == undefined){ return (0); }; return (priorities[_arg1]); } protected function populatePriorities():void{ } public static function getInstance():InitializerPriority{ if (!_instance){ _instance = new (InitializerPriority); }; return (_instance); } } }//package idv.cjcat.stardust.common.initializers
Section 76
//Life (idv.cjcat.stardust.common.initializers.Life) package idv.cjcat.stardust.common.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.math.*; public class Life extends Initializer { private var _random:Random; public function Life(_arg1:Random=null){ this.random = _arg1; } override public function initialize(_arg1:Particle):void{ _arg1.initLife = (_arg1.life = random.random()); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); random = (_arg2.getElementByName(_arg1.@random) as Random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _random = _arg1; } public function get random():Random{ return (_random); } override public function getXMLTagName():String{ return ("Life"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@random = _random.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_random]); } } }//package idv.cjcat.stardust.common.initializers
Section 77
//Mask (idv.cjcat.stardust.common.initializers.Mask) package idv.cjcat.stardust.common.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; public class Mask extends Initializer { private var _mask:int; public function Mask(_arg1:int=1){ _mask = _arg1; } override public function initialize(_arg1:Particle):void{ _arg1.mask = _mask; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); mask = parseInt(_arg1.@mask); } override public function getXMLTagName():String{ return ("Mask"); } public function set mask(_arg1:int):void{ if (_arg1 < 0){ _arg1 = 0; }; _mask = _arg1; } public function get mask():int{ return (_mask); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@mask = mask; return (_local1); } } }//package idv.cjcat.stardust.common.initializers
Section 78
//Mass (idv.cjcat.stardust.common.initializers.Mass) package idv.cjcat.stardust.common.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.math.*; public class Mass extends Initializer { private var _random:Random; public function Mass(_arg1:Random=null){ this.random = _arg1; } override public function initialize(_arg1:Particle):void{ _arg1.mass = random.random(); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); random = (_arg2.getElementByName(_arg1.@random) as Random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(1, 0); }; _random = _arg1; } public function get random():Random{ return (_random); } override public function getXMLTagName():String{ return ("Mass"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@random = random.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_random]); } } }//package idv.cjcat.stardust.common.initializers
Section 79
//Scale (idv.cjcat.stardust.common.initializers.Scale) package idv.cjcat.stardust.common.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.math.*; public class Scale extends Initializer { private var _random:Random; public function Scale(_arg1:Random=null){ this.random = _arg1; } override public function initialize(_arg1:Particle):void{ _arg1.initScale = (_arg1.scale = random.random()); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); random = (_arg2.getElementByName(_arg1.@random) as Random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(1, 0); }; _random = _arg1; } public function get random():Random{ return (_random); } override public function getXMLTagName():String{ return ("Scale"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@random = _random.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_random]); } } }//package idv.cjcat.stardust.common.initializers
Section 80
//SwitchInitializer (idv.cjcat.stardust.common.initializers.SwitchInitializer) package idv.cjcat.stardust.common.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.utils.*; public class SwitchInitializer extends Initializer { private var collection:WeightedCollection; public function SwitchInitializer(_arg1:Array=null, _arg2:Array=null){ if (((!(_arg1)) || (!(_arg2)))){ _arg1 = []; _arg2 = []; }; setInitializers(_arg1, _arg2); } override public function initialize(_arg1:Particle):void{ var _local2:Initializer = (collection.get() as Initializer); _local2.initialize(_arg1); } public function setInitializers(_arg1:Array, _arg2:Array):void{ collection = new WeightedCollection(_arg1, _arg2); } override public function getXMLTagName():String{ return ("SwitchInitializer"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; var _local4:Initializer; var _local5:Number; super.parseXML(_arg1, _arg2); collection.clear(); for each (_local3 in _arg1.initializers.*) { _local4 = (_arg2.getElementByName(_local3.@name) as Initializer); _local5 = parseFloat(_local3.@weight); collection.addContent(_local4, _local5); }; } override public function toXML():XML{ var _local3:Array; var _local4:int; var _local5:XML; var _local1:XML = super.toXML(); var _local2:Array = collection.contents; if (_local2.length > 0){ _local3 = collection.weights; _local1.appendChild(<initializers/> ); _local4 = 0; while (_local4 < _local2.length) { _local5 = Initializer(_local2[_local4]).getXMLTag(); _local5.@weight = _local3[_local4]; _local1.initializers.appendChild(_local5); _local4++; }; }; return (_local1); } override public function getRelatedObjects():Array{ return (collection.contents); } } }//package idv.cjcat.stardust.common.initializers
Section 81
//AveragedRandom (idv.cjcat.stardust.common.math.AveragedRandom) package idv.cjcat.stardust.common.math { import idv.cjcat.stardust.common.xml.*; public class AveragedRandom extends Random { public var randomObj:Random; public var sampleCount:int; public function AveragedRandom(_arg1:Random=null, _arg2:int=3){ this.randomObj = _arg1; this.sampleCount = _arg2; } override public function random():Number{ if (!randomObj){ return (0); }; var _local1:Number = 0; var _local2:int; while (_local2 < sampleCount) { _local1 = (_local1 + randomObj.random()); _local2++; }; return ((_local1 / sampleCount)); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); randomObj = (_arg2.getElementByName(_arg1.@randomObj) as Random); sampleCount = parseInt(_arg1.@sampleCount); } override public function getXMLTagName():String{ return ("AveragedRandom"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@randomObj = randomObj.name; _local1.@sampleCount = sampleCount; return (_local1); } override public function getRelatedObjects():Array{ return ([randomObj]); } } }//package idv.cjcat.stardust.common.math
Section 82
//Random (idv.cjcat.stardust.common.math.Random) package idv.cjcat.stardust.common.math { import idv.cjcat.stardust.common.*; public class Random extends StardustElement { override public function getElementTypeXMLTag():XML{ return (<randoms/> ); } override public function getXMLTagName():String{ return ("Random"); } public function getRange():Array{ return ([0.5, 0.5]); } public function random():Number{ return (0.5); } public function setRange(_arg1:Number, _arg2:Number):void{ } } }//package idv.cjcat.stardust.common.math
Section 83
//StardustMath (idv.cjcat.stardust.common.math.StardustMath) package idv.cjcat.stardust.common.math { public class StardustMath { public static const HALF_PI:Number = 1.5707963267949; public static const TWO_PI:Number = 6.28318530717959; public static const RADIAN_TO_DEGREE:Number = 57.2957795130823; public static const DEGREE_TO_RADIAN:Number = 0.0174532925199433; public static function interpolate(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{ return ((_arg2 - (((_arg2 - _arg4) * (_arg1 - _arg5)) / (_arg1 - _arg3)))); } public static function mod(_arg1:Number, _arg2:Number):Number{ var _local3:Number = (_arg1 % _arg2); return (((_local3)<0) ? (_local3 + _arg2) : _local3); } public static function randomFloor(_arg1:Number):int{ var _local2 = (_arg1 | 0); return ((_local2 + int((((_arg1 - _local2))>Math.random()) ? 1 : 0))); } public static function clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ if (_arg1 < _arg2){ return (_arg2); }; if (_arg1 > _arg3){ return (_arg3); }; return (_arg1); } } }//package idv.cjcat.stardust.common.math
Section 84
//UniformRandom (idv.cjcat.stardust.common.math.UniformRandom) package idv.cjcat.stardust.common.math { import idv.cjcat.stardust.common.xml.*; public class UniformRandom extends Random { public var radius:Number; public var center:Number; public function UniformRandom(_arg1:Number=0.5, _arg2:Number=0){ this.center = _arg1; this.radius = _arg2; } override public function random():Number{ if (radius){ return ((((radius * 2) * (Math.random() - 0.5)) + center)); }; return (center); } override public function getXMLTagName():String{ return ("UniformRandom"); } override public function getRange():Array{ return ([(center - radius), (center + radius)]); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); center = parseFloat(_arg1.@center); radius = parseFloat(_arg1.@radius); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@center = center; _local1.@radius = radius; return (_local1); } override public function setRange(_arg1:Number, _arg2:Number):void{ var _local3:Number = (_arg2 - _arg1); radius = (0.5 * _local3); center = (_arg1 + radius); } } }//package idv.cjcat.stardust.common.math
Section 85
//Particle (idv.cjcat.stardust.common.particles.Particle) package idv.cjcat.stardust.common.particles { import flash.utils.*; public class Particle { public var scale:Number; public var target; public var sortedIndex:int; public var dictionary:Dictionary; public var initScale:Number; public var alpha:Number; public var collisionRadius:Number; public var color:uint; public var initLife:Number; public var initAlpha:Number; public var mask:int; public var isDead:Boolean; public var mass:Number; public var life:Number; public function Particle(){ dictionary = new Dictionary(); } public function destroy():void{ var _local1:*; target = null; for (_local1 in dictionary) { delete dictionary[_local1]; }; } public function init():void{ initLife = (life = 0); initScale = (scale = 1); initAlpha = (alpha = 1); mass = 1; mask = 1; isDead = false; collisionRadius = 0; target = null; color = 0; sortedIndex = NaN; } } }//package idv.cjcat.stardust.common.particles
Section 86
//ParticleFactory (idv.cjcat.stardust.common.particles.ParticleFactory) package idv.cjcat.stardust.common.particles { import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.*; public class ParticleFactory implements InitializerCollector { sd var initializerCollection:InitializerCollection; sd var particlePool:ParticlePool; sd var usePool:Boolean; public function ParticleFactory(){ usePool = false; particlePool = ParticlePool.getInstance(); initializerCollection = new InitializerCollection(); } public function addInitializer(_arg1:Initializer):void{ initializerCollection.addInitializer(_arg1); } final public function removeInitializer(_arg1:Initializer):void{ initializerCollection.removeInitializer(_arg1); } final public function clearInitializers():void{ initializerCollection.clearInitializers(); } final public function createParticles(_arg1:int):Array{ var _local3:int; var _local4:Particle; var _local5:Initializer; var _local2:Array = []; if (usePool){ _local3 = 0; while (_local3 < _arg1) { _local4 = particlePool.get(); _local4.init(); for each (_local5 in initializerCollection.initializers) { _local5.doInitialize(_local4); }; _local2.push(_local4); _local3++; }; } else { _local3 = 0; while (_local3 < _arg1) { _local4 = new particlePool.particleClass(); _local4.init(); for each (_local5 in initializerCollection.initializers) { _local5.doInitialize(_local4); }; _local2.push(_local4); _local3++; }; }; return (_local2); } } }//package idv.cjcat.stardust.common.particles
Section 87
//ParticlePool (idv.cjcat.stardust.common.particles.ParticlePool) package idv.cjcat.stardust.common.particles { import idv.cjcat.stardust.*; public class ParticlePool { sd var particleClass:Class; private var _position:int; private var _array:Array; private static var _instance:ParticlePool; public function ParticlePool(_arg1:Class){ this.particleClass = _arg1; _array = [new (_arg1)]; _position = 0; } final public function recycle(_arg1:Particle):void{ if (_position == 0){ return; }; _array[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; if (_array.length >= 16){ if (_position < (_array.length >> 4)){ _array.length = (_array.length >> 1); }; }; } final public function get():Particle{ var _local1:int; if (_position == _array.length){ _array.length = (_array.length << 1); _local1 = _position; while (_local1 < _array.length) { _array[_local1] = new particleClass(); _local1++; }; }; _position++; return ((_array[(_position - 1)] as Particle)); } public static function getInstance():ParticlePool{ if (!_instance){ _instance = new ParticlePool(Particle); }; return (_instance); } } }//package idv.cjcat.stardust.common.particles
Section 88
//ParticleSorter (idv.cjcat.stardust.common.particles.ParticleSorter) package idv.cjcat.stardust.common.particles { public class ParticleSorter { private static var _instance:ParticleSorter; public function sort(_arg1:Array):void{ } public static function getInstane():ParticleSorter{ if (!_instance){ _instance = new (ParticleSorter); }; return (_instance); } } }//package idv.cjcat.stardust.common.particles
Section 89
//Renderer (idv.cjcat.stardust.common.renderers.Renderer) package idv.cjcat.stardust.common.renderers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.common.emitters.*; public class Renderer extends StardustElement { private var _emitters:Array; public function Renderer(){ _emitters = []; } override public function getElementTypeXMLTag():XML{ return (<renderers/> ); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); clearEmitters(); for each (_local3 in _arg1.emitters.*) { addEmitter((_arg2.getElementByName(_local3.@name) as Emitter)); }; } final public function get numParticles():int{ var _local2:Emitter; var _local1:int; for each (_local2 in _emitters) { _local1 = (_local1 + _local2.numParticles); }; return (_local1); } final public function removeEmitter(_arg1:Emitter):void{ var _local2:int = _emitters.indexOf(_arg1); if (_local2 >= 0){ _emitters.splice(_local2, 1); _arg1.removeEventListener(EmitterEvent.PARTICLES_ADDED, particlesCreated); _arg1.removeEventListener(EmitterEvent.PARTICLES_REMOVED, particlesCreated); _arg1.removeEventListener(EmitterEvent.STEPPED, render); }; } override public function getXMLTagName():String{ return ("Renderer"); } final public function addEmitter(_arg1:Emitter):void{ if (_emitters.indexOf(_arg1) < 0){ _arg1.addEventListener(EmitterEvent.PARTICLES_ADDED, particlesCreated); _arg1.addEventListener(EmitterEvent.PARTICLES_REMOVED, particlesRemoved); _arg1.addEventListener(EmitterEvent.STEPPED, render); _emitters.push(_arg1); }; } final public function clearEmitters():void{ var _local1:Emitter; for each (_local1 in _emitters) { removeEmitter(_local1); }; } protected function render(_arg1:EmitterEvent):void{ } protected function particlesRemoved(_arg1:EmitterEvent):void{ } protected function particlesCreated(_arg1:EmitterEvent):void{ } override public function toXML():XML{ var _local2:Emitter; var _local1:XML = super.toXML(); if (_emitters.length > 0){ _local1.appendChild(<emitters/> ); for each (_local2 in _emitters) { _local1.emitters.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function getRelatedObjects():Array{ return (_emitters); } } }//package idv.cjcat.stardust.common.renderers
Section 90
//construct (idv.cjcat.stardust.common.utils.construct) package idv.cjcat.stardust.common.utils { import flash.errors.*; public function construct(_arg1:Class, _arg2:Array=null){ if (!_arg2){ return (new (_arg1)); }; switch (_arg2.length){ case 0: return (new (_arg1)); case 1: return (new _arg1(_arg2[0])); case 2: return (new _arg1(_arg2[0], _arg2[1])); case 3: return (new _arg1(_arg2[0], _arg2[1], _arg2[2])); case 4: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3])); case 5: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4])); case 6: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5])); case 7: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6])); case 8: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7])); case 9: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8])); case 10: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8], _arg2[9])); default: throw (new IllegalOperationError("The number of parameters given exceeds the maximum number this method can handle.")); }; } }//package idv.cjcat.stardust.common.utils
Section 91
//WeightedCollection (idv.cjcat.stardust.common.utils.WeightedCollection) package idv.cjcat.stardust.common.utils { public class WeightedCollection { private var _weights:Array; private var _accumulatedWeights:Array; private var _contents:Array; private var totalWeight:Number; public function WeightedCollection(_arg1:Array, _arg2:Array){ clear(); var _local3:int; while (_local3 < _arg1.length) { addContent(_arg1[_local3], _arg2[_local3]); _local3++; }; } public function clear():void{ _contents = []; _weights = []; _accumulatedWeights = []; totalWeight = 0; } public function get(){ if (_contents.length == 1){ return (_contents[0]); }; if (_contents.length == 0){ return (null); }; var _local1:int; var _local2:Number = (totalWeight * Math.random()); while (_accumulatedWeights[_local1] < _local2) { _local1++; }; return (_contents[_local1]); } public function addContent(_arg1, _arg2:Number):void{ _contents.push(_arg1); _weights.push(_arg2); _accumulatedWeights.push((totalWeight + _arg2)); totalWeight = (totalWeight + _arg2); } public function get contents():Array{ return (_contents.concat()); } public function get weights():Array{ return (_weights.concat()); } } }//package idv.cjcat.stardust.common.utils
Section 92
//ClassPackage (idv.cjcat.stardust.common.xml.ClassPackage) package idv.cjcat.stardust.common.xml { public class ClassPackage { protected var classes:Array; private static var _instance:ClassPackage; public function ClassPackage(){ classes = []; populateClasses(); } final public function getClasses():Array{ return (classes.concat()); } protected function populateClasses():void{ } public static function getInstance():ClassPackage{ if (_instance){ _instance = new (ClassPackage); }; return (_instance); } } }//package idv.cjcat.stardust.common.xml
Section 93
//XMLBuilder (idv.cjcat.stardust.common.xml.XMLBuilder) package idv.cjcat.stardust.common.xml { import idv.cjcat.stardust.common.*; import flash.utils.*; import idv.cjcat.stardust.threeD.*; import idv.cjcat.stardust.twoD.*; import idv.cjcat.stardust.*; import idv.cjcat.stardust.common.errors.*; import flash.errors.*; public class XMLBuilder { private var elements:Dictionary; private var elementClasses:Dictionary; public function XMLBuilder(){ elementClasses = new Dictionary(); elements = new Dictionary(); registerClasseFromClassPackage(CommonClassPackage.getInstance()); registerClasseFromClassPackage(TwoDClassPackage.getInstance()); registerClasseFromClassPackage(ThreeDClassPackage.getInstance()); } public function registerClasses(_arg1:Array):void{ var _local2:Class; for each (_local2 in _arg1) { registerClass(_local2); }; } public function registerClass(_arg1:Class):void{ var _local2:StardustElement = (new (_arg1) as StardustElement); if (!_local2){ throw (new IllegalOperationError("The class is not a subclass of the StardustElement class.")); }; if (elementClasses[_local2.getXMLTagName()] != undefined){ throw (new IllegalOperationError(("This element class name is already registered: " + _local2.getXMLTagName()))); }; elementClasses[_local2.getXMLTagName()] = _arg1; } public function buildFromXML(_arg1:XML):void{ var _local2:StardustElement; var _local3:XML; var _local4:*; if (elements){ for (_local4 in elements) { delete elements[_local4]; }; }; elements = new Dictionary(); for each (_local3 in _arg1.*.*) { _local2 = (new (elementClasses[_local3.name()]) as StardustElement); if (elements[_local3.@name] != undefined){ throw (new DuplicateElementNameError(("Duplicate element name: " + _local3.@name), _local3.@name, elements[_local3.@name], _local2)); }; elements[_local3.@name.toString()] = _local2; }; for each (_local3 in _arg1.*.*) { _local2 = (elements[_local3.@name.toString()] as StardustElement); _local2.parseXML(_local3, this); }; } public function registerClasseFromClassPackage(_arg1:ClassPackage):void{ registerClasses(_arg1.getClasses()); } public function unregisterClass(_arg1:String):void{ delete elementClasses[_arg1]; } public function getElementByName(_arg1:String):StardustElement{ if (elements[_arg1] == undefined){ throw (new IllegalOperationError(("Element not found: " + _arg1))); }; return (elements[_arg1]); } private static function elementTypeSorter(_arg1:StardustElement, _arg2:StardustElement):Number{ if (_arg1.getElementTypeXMLTag().name() > _arg2.getElementTypeXMLTag().name()){ return (1); }; if (_arg1.getElementTypeXMLTag().name() < _arg2.getElementTypeXMLTag().name()){ return (-1); }; if (_arg1.getXMLTagName() > _arg2.getXMLTagName()){ return (1); }; if (_arg1.getXMLTagName() < _arg2.getXMLTagName()){ return (-1); }; if (_arg1.name > _arg2.name){ return (1); }; return (-1); } public static function buildXML(_arg1:StardustElement):XML{ var _local6:XML; var _local7:XML; var _local2:Dictionary = new Dictionary(); var _local3:XML = <StardustParticleSystem/> ; _local3.@version = Stardust.VERSION; var _local4:Dictionary = new Dictionary(); traverseRelatedObjects(_arg1, _local4); var _local5:Array = []; for each (_arg1 in _local4) { _local5.push(_arg1); }; _local5.sort(elementTypeSorter); for each (_arg1 in _local5) { _local6 = _arg1.toXML(); _local7 = _arg1.getElementTypeXMLTag(); if (_local3[_local7.name()].length() == 0){ _local3.appendChild(_local7); }; _local3[_local7.name()].appendChild(_local6); }; return (_local3); } private static function traverseRelatedObjects(_arg1:StardustElement, _arg2:Dictionary):void{ var _local3:StardustElement; if (_arg2[_arg1.name] != undefined){ if (_arg2[_arg1.name] != _arg1){ throw (new DuplicateElementNameError(("Duplicate element name: " + _arg1.name), _arg1.name, _arg2[_arg1.name], _arg1)); }; } else { _arg2[_arg1.name] = _arg1; }; for each (_local3 in _arg1.getRelatedObjects()) { traverseRelatedObjects(_local3, _arg2); }; } } }//package idv.cjcat.stardust.common.xml
Section 94
//XMLConvertible (idv.cjcat.stardust.common.xml.XMLConvertible) package idv.cjcat.stardust.common.xml { public interface XMLConvertible { function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void; function toXML():XML; } }//package idv.cjcat.stardust.common.xml
Section 95
//CommonClassPackage (idv.cjcat.stardust.common.CommonClassPackage) package idv.cjcat.stardust.common { import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.actions.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.clocks.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.common.actions.triggers.*; public class CommonClassPackage extends ClassPackage { private static var _instance:CommonClassPackage; final override protected function populateClasses():void{ classes.push(AlphaCurve); classes.push(CompositeAction); classes.push(DeathLife); classes.push(Die); classes.push(ScaleCurve); classes.push(DeathTrigger); classes.push(LifeTrigger); classes.push(CompositeClock); classes.push(ImpulseClock); classes.push(RandomClock); classes.push(SteadyClock); classes.push(Emitter); classes.push(Age); classes.push(Alpha); classes.push(CollisionRadius); classes.push(Color); classes.push(CompositeInitializer); classes.push(Life); classes.push(Mask); classes.push(Mass); classes.push(Scale); classes.push(SwitchInitializer); classes.push(AveragedRandom); classes.push(UniformRandom); } public static function getInstance():CommonClassPackage{ if (!_instance){ _instance = new (CommonClassPackage); }; return (_instance); } } }//package idv.cjcat.stardust.common
Section 96
//StardustElement (idv.cjcat.stardust.common.StardustElement) package idv.cjcat.stardust.common { import idv.cjcat.stardust.common.xml.*; import flash.utils.*; public class StardustElement implements XMLConvertible { public var name:String; private static var elementCounter:Dictionary = new Dictionary(); public function StardustElement(){ var _local1:String = getXMLTagName(); if (elementCounter[_local1] == undefined){ elementCounter[_local1] = 0; } else { var _local2 = elementCounter; var _local3 = _local1; var _local4 = (_local2[_local3] + 1); _local2[_local3] = _local4; }; this.name = ((_local1 + "_") + elementCounter[_local1]); } public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ name = _arg1.@name; } public function getXMLTagName():String{ return ("StardustElement"); } final public function getXMLTag():XML{ var _local1:XML = XML((("<" + getXMLTagName()) + "/>")); _local1.@name = name; return (_local1); } public function getElementTypeXMLTag():XML{ return (<elements/> ); } public function toXML():XML{ var _local1:XML = getXMLTag(); return (_local1); } public function getRelatedObjects():Array{ return ([]); } } }//package idv.cjcat.stardust.common
Section 97
//ActionTrigger3D (idv.cjcat.stardust.threeD.actions.triggers.ActionTrigger3D) package idv.cjcat.stardust.threeD.actions.triggers { import idv.cjcat.stardust.threeD.actions.*; import idv.cjcat.stardust.common.actions.triggers.*; public class ActionTrigger3D extends ActionTrigger { public function ActionTrigger3D(){ _supports2D = false; priority = Action3DPriority.getInstance().getPriority((Object(this).constructor as Class)); } override public function getXMLTagName():String{ return ("ActionTrigger3D"); } } }//package idv.cjcat.stardust.threeD.actions.triggers
Section 98
//ZoneTrigger3D (idv.cjcat.stardust.threeD.actions.triggers.ZoneTrigger3D) package idv.cjcat.stardust.threeD.actions.triggers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.threeD.zones.*; public class ZoneTrigger3D extends ActionTrigger3D { private var _zone:Zone3D; public function ZoneTrigger3D(_arg1:Zone3D=null){ this.zone = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); zone = (_arg2.getElementByName(_arg1.@zone) as Zone3D); } override public function getXMLTagName():String{ return ("ZoneTrigger3D"); } override public function testTrigger(_arg1:Emitter, _arg2:Particle, _arg3:Number):Boolean{ var _local4:Particle3D = (_arg2 as Particle3D); return (_zone.contains(_local4.x, _local4.y, _local4.z)); } public function set zone(_arg1:Zone3D):void{ if (!_arg1){ _arg1 = new SinglePoint3D(0, 0); }; _zone = _arg1; } public function get zone():Zone3D{ return (_zone); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@zone = _zone.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_zone]); } } }//package idv.cjcat.stardust.threeD.actions.triggers
Section 99
//Accelerate3D (idv.cjcat.stardust.threeD.actions.Accelerate3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Accelerate3D extends Action3D { public var acceleration:Number; public function Accelerate3D(_arg1:Number=0.1){ this.acceleration = _arg1; } override public function getXMLTagName():String{ return ("Accelerate3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); acceleration = parseFloat(_arg1.@acceleration); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle3D = (_arg2 as Particle3D); var _local5:Vec3D = Vec3DPool.get(_local4.vx, _local4.vy, _local4.vz); if (_local5.length > 0){ _local5.length = (_local5.length + (acceleration * _arg3)); _local4.vx = _local5.x; _local4.vy = _local5.y; _local4.vz = _local5.z; }; Vec3DPool.recycle(_local5); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@acceleration = acceleration; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 100
//Action3D (idv.cjcat.stardust.threeD.actions.Action3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.actions.*; public class Action3D extends Action { public function Action3D(){ _supports2D = false; priority = Action3DPriority.getInstance().getPriority((Object(this).constructor as Class)); } override public function getXMLTagName():String{ return ("Action3D"); } } }//package idv.cjcat.stardust.threeD.actions
Section 101
//Action3DPriority (idv.cjcat.stardust.threeD.actions.Action3DPriority) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.actions.*; import idv.cjcat.stardust.threeD.actions.triggers.*; public class Action3DPriority extends ActionPriority { private static var _instance:Action3DPriority; final override protected function populatePriorities():void{ priorities[Damping3D] = -1; priorities[DeathZone3D] = -1; priorities[Gravity3D] = -2; priorities[MutualGravity3D] = -2; priorities[VelocityField3D] = -3; priorities[Move3D] = -4; priorities[Spin3D] = -4; priorities[Deflect3D] = -5; priorities[BillboardOriented] = -6; priorities[Collide3D] = -6; priorities[DeathZone3D] = -6; priorities[Oriented3D] = -6; priorities[ZoneTrigger3D] = -6; } public static function getInstance():Action3DPriority{ if (!_instance){ _instance = new (Action3DPriority); }; return (_instance); } } }//package idv.cjcat.stardust.threeD.actions
Section 102
//BillboardOriented (idv.cjcat.stardust.threeD.actions.BillboardOriented) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; public class BillboardOriented extends Action3D { public var offset:Number; public var factor:Number; public function BillboardOriented(_arg1:Number=1, _arg2:Number=0){ this.factor = _arg1; this.offset = _arg2; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); factor = parseFloat(_arg1.@factor); offset = parseFloat(_arg1.@offset); } override public function getXMLTagName():String{ return ("BillboardOriented"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle3D = (_arg2 as Particle3D); var _local5:Number = (((Math.atan2(_local4.screenVX, -(_local4.screenVY)) * StardustMath.RADIAN_TO_DEGREE) + offset) - _local4.rotationZ); _local4.rotationZ = (_local4.rotationZ + (factor * _local5)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@factor = factor; _local1.@offset = offset; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 103
//CalculateScreenVelocity (idv.cjcat.stardust.threeD.actions.CalculateScreenVelocity) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class CalculateScreenVelocity extends Action3D { override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (_arg2.dictionary["screenVel"] == undefined){ return; }; var _local4:Vec3D = (_arg2.dictionary["screenVel"] as Vec3D); var _local5:Particle3D = (_arg2 as Particle3D); _local5.screenVX = _local4.x; _local5.screenVY = _local4.y; } override public function getXMLTagName():String{ return ("CalculateScreenVelocity"); } } }//package idv.cjcat.stardust.threeD.actions
Section 104
//Collide3D (idv.cjcat.stardust.threeD.actions.Collide3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.*; public class Collide3D extends MutualAction3D { public function Collide3D(){ maxDistance = 0; } override public function preUpdate(_arg1:Emitter, _arg2:Number):void{ var _local6:Particle; var _local3:Array = _arg1.sd::particles; if (_local3.length <= 1){ return; }; var _local4:Number = 0; var _local5:Number = 0; for each (_local6 in _local3) { if (_local6.collisionRadius > _local4){ _local5 = _local4; _local4 = (_local6.collisionRadius * _local6.scale); } else { if (_local6.collisionRadius > _local5){ _local5 = (_local6.collisionRadius * _local6.scale); }; }; }; maxDistance = (_local4 + _local5); } override protected function doMutualAction(_arg1:Particle3D, _arg2:Particle3D, _arg3:Number):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Vec3D; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Vec3D; var _local19:Vec3D; var _local20:Vec3D; var _local21:Vec3D; var _local22:Vec3D; var _local23:Number; if ((_arg1.mask & _arg2.mask)){ _local4 = (_arg1.x - _arg2.x); _local5 = (_arg1.y - _arg2.y); _local6 = (_arg1.z - _arg2.z); _local7 = (_arg1.collisionRadius * _arg1.scale); _local8 = (_arg2.collisionRadius * _arg2.scale); _local9 = (_local7 + _local8); if ((((_local4 * _local4) + (_local5 * _local5)) + (_local6 * _local6)) > (_local9 * _local9)){ return; }; _local10 = Vec3DPool.get(_local4, _local5, _local6); _local11 = (1 / _local9); _local12 = (((_arg1.x * _local8) + (_arg2.x * _local7)) * _local11); _local13 = (((_arg1.y * _local8) + (_arg2.y * _local7)) * _local11); _local14 = (((_arg1.z * _local8) + (_arg2.z * _local7)) * _local11); _local10.length = _local7; _arg1.x = (_local12 + _local10.x); _arg1.y = (_local13 + _local10.y); _arg1.z = (_local14 + _local10.z); _local10.length = _local8; _arg2.x = (_local12 - _local10.x); _arg2.y = (_local13 - _local10.y); _arg2.z = (_local14 - _local10.z); _local15 = (_arg1.mass * _arg1.scale); _local16 = (_arg2.mass * _arg2.scale); _local17 = (1 / (_local15 + _local16)); _local18 = Vec3DPool.get(_arg1.vx, _arg1.vy, _arg1.vz); _local19 = Vec3DPool.get(_arg2.vx, _arg2.vy, _arg2.vz); _local18.projectThis(_local10); _local19.projectThis(_local10); _local20 = Vec3DPool.get((_arg1.vx - _local18.x), (_arg1.vy - _local18.y), (_arg1.vz - _local18.z)); _local21 = Vec3DPool.get((_arg2.vx - _local19.x), (_arg2.vy - _local19.y), (_arg2.vz - _local19.z)); _local22 = Vec3DPool.get((_local18.x - _local19.x), (_local18.y - _local19.y), (_local18.z - _local19.z)); _local23 = (_local15 - _local16); _local18.x = (((_local23 * _local18.x) + ((2 * _local16) * _local19.x)) * _local17); _local18.y = (((_local23 * _local18.y) + ((2 * _local16) * _local19.y)) * _local17); _local18.z = (((_local23 * _local18.z) + ((2 * _local16) * _local19.z)) * _local17); _local19.x = (_local22.x + _local18.x); _local19.y = (_local22.y + _local18.y); _local19.z = (_local22.z + _local18.z); _arg1.vx = (_local18.x + _local20.x); _arg1.vy = (_local18.y + _local20.y); _arg1.vz = (_local18.z + _local20.z); _arg2.vx = (_local19.x + _local21.x); _arg2.vy = (_local19.y + _local21.y); _arg2.vz = (_local19.z + _local21.z); Vec3DPool.recycle(_local10); Vec3DPool.recycle(_local18); Vec3DPool.recycle(_local19); Vec3DPool.recycle(_local20); Vec3DPool.recycle(_local21); Vec3DPool.recycle(_local22); }; } override public function getXMLTagName():String{ return ("Collide3D"); } } }//package idv.cjcat.stardust.threeD.actions
Section 105
//Damping3D (idv.cjcat.stardust.threeD.actions.Damping3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Damping3D extends Action3D { public var damping:Number; public function Damping3D(_arg1:Number=0){ this.damping = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); damping = parseFloat(_arg1.@damping); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle3D = (_arg2 as Particle3D); var _local5:Number = 1; var _local6:Number = 1; if (damping != 0){ _local6 = Math.pow((1 - damping), _arg3); }; _local4.vx = (_local4.vx * _local6); _local4.vy = (_local4.vy * _local6); _local4.vz = (_local4.vz * _local6); } override public function getXMLTagName():String{ return ("Damping3D"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@damping = damping; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 106
//DeathZone3D (idv.cjcat.stardust.threeD.actions.DeathZone3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.threeD.zones.*; public class DeathZone3D extends Action3D { public var inverted:Boolean; public var zone:Zone3D; public function DeathZone3D(_arg1:Zone3D=null, _arg2:Boolean=false){ this.zone = _arg1; this.inverted = _arg2; } override public function getXMLTagName():String{ return ("DeathZone3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); if (_arg1.@zone == "null"){ zone = null; } else { zone = (_arg2.getElementByName(_arg1.@zone) as Zone3D); }; inverted = (_arg1.@inverted == "true"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (!zone){ return; }; var _local4:Particle3D = (_arg2 as Particle3D); var _local5 = !(zone.contains(_local4.x, _local4.y, _local4.z)); if (inverted){ _local5 = !(_local5); }; if (!_local5){ _arg2.isDead = true; }; } override public function toXML():XML{ var _local1:XML = super.toXML(); if (!zone){ _local1.@zone = "null"; } else { _local1.@zone = zone.name; }; _local1.@inverted = inverted; return (_local1); } override public function getRelatedObjects():Array{ if (!zone){ return ([]); }; return ([zone]); } } }//package idv.cjcat.stardust.threeD.actions
Section 107
//Deflect3D (idv.cjcat.stardust.threeD.actions.Deflect3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.threeD.deflectors.*; import idv.cjcat.stardust.*; public class Deflect3D extends Action3D { sd var deflectors:Array; public function Deflect3D(){ deflectors = []; } override public function toXML():XML{ var _local2:Deflector3D; var _local1:XML = super.toXML(); if (deflectors.length > 0){ _local1.appendChild(<deflectors/> ); for each (_local2 in deflectors) { _local1.deflectors.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function getXMLTagName():String{ return ("Deflect3D"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local5:Deflector3D; var _local6:MotionData6D; var _local4:Particle3D = (_arg2 as Particle3D); for each (_local5 in deflectors) { _local6 = _local5.getMotionData6D(_local4); _local4.x = _local6.x; _local4.y = _local6.y; _local4.z = _local6.z; _local4.vx = _local6.vx; _local4.vy = _local6.vy; _local4.vz = _local6.vz; MotionData6DPool.recycle(_local6); }; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); clearDeflectors(); for each (_local3 in _arg1.deflectors.*) { addDeflector((_arg2.getElementByName(_local3.@name) as Deflector3D)); }; } public function removeDeflector(_arg1:Deflector3D):void{ var _local2:int = deflectors.indexOf(_arg1); if (_local2 >= 0){ deflectors.splice(_local2, 1); }; } public function addDeflector(_arg1:Deflector3D):void{ if (deflectors.indexOf(_arg1) < 0){ deflectors.push(_arg1); }; } public function clearDeflectors():void{ deflectors = []; } override public function getRelatedObjects():Array{ return (deflectors); } } }//package idv.cjcat.stardust.threeD.actions
Section 108
//Explode3D (idv.cjcat.stardust.threeD.actions.Explode3D) package idv.cjcat.stardust.threeD.actions { import flash.events.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Explode3D extends Action3D { public var y:Number; public var strength:Number; public var growSpeed:Number; private var _discharged:Boolean; private var _currentOuterRadius:Number; public var epsilon:Number; private var _currentInnerRadius:Number; public var x:Number; public var maxDistance:Number; public var z:Number; public var attenuationPower:Number; public function Explode3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=5, _arg5:Number=40, _arg6:Number=200, _arg7:Number=0.1, _arg8:Number=1){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.strength = _arg4; this.growSpeed = _arg5; this.maxDistance = _arg6; this.attenuationPower = _arg7; this.epsilon = _arg8; _discharged = true; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (_discharged){ return; }; var _local4:Particle3D = (_arg2 as Particle3D); var _local5:Vec3D = Vec3DPool.get((_local4.x - x), (_local4.y - y), (_local4.z - z)); var _local6:Number = _local5.length; if (_local6 < epsilon){ _local6 = epsilon; }; if ((((_local6 >= _currentInnerRadius)) && ((_local6 < _currentOuterRadius)))){ _local5.length = (strength * Math.pow(_local6, -(attenuationPower))); _local4.vx = (_local4.vx + (_local5.x * _arg3)); _local4.vy = (_local4.vy + (_local5.y * _arg3)); _local4.vz = (_local4.vz + (_local5.z * _arg3)); }; Vec3DPool.recycle(_local5); } override public function postUpdate(_arg1:Emitter, _arg2:Number):void{ if (_discharged){ return; }; _currentInnerRadius = (_currentInnerRadius + growSpeed); _currentOuterRadius = (_currentOuterRadius + growSpeed); if (_currentInnerRadius > maxDistance){ _discharged = true; }; } public function explode(_arg1:Event=null):void{ _discharged = false; _currentInnerRadius = 0; _currentOuterRadius = growSpeed; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@strength = strength; _local1.@growSpeed = growSpeed; _local1.@maxDistance = maxDistance; _local1.@attenuationPower = attenuationPower; _local1.@epsilon = epsilon; return (_local1); } override public function getXMLTagName():String{ return ("Explode3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); strength = parseFloat(_arg1.@strength); growSpeed = parseFloat(_arg1.@growSpeed); maxDistance = parseFloat(_arg1.@maxDistance); attenuationPower = parseFloat(_arg1.@attenuationPower); epsilon = parseFloat(_arg1.@epsilon); } } }//package idv.cjcat.stardust.threeD.actions
Section 109
//Gravity3D (idv.cjcat.stardust.threeD.actions.Gravity3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.threeD.fields.*; import idv.cjcat.stardust.*; public class Gravity3D extends Action3D { sd var fields:Array; public function Gravity3D(){ fields = []; } public function addField(_arg1:Field3D):void{ if (fields.indexOf(_arg1) < 0){ fields.push(_arg1); }; } override public function toXML():XML{ var _local2:Field3D; var _local1:XML = super.toXML(); if (fields.length > 0){ _local1.appendChild(<fields/> ); for each (_local2 in fields) { _local1.fields.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); clearFields(); for each (_local3 in _arg1.fields.*) { addField((_arg2.getElementByName(_local3.@name) as Field3D)); }; } public function clearFields():void{ fields = []; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local5:Field3D; var _local6:MotionData3D; var _local4:Particle3D = (_arg2 as Particle3D); for each (_local5 in fields) { _local6 = _local5.getMotionData3D(_local4); _local4.vx = (_local4.vx + (_local6.x * _arg3)); _local4.vy = (_local4.vy + (_local6.y * _arg3)); _local4.vz = (_local4.vz + (_local6.z * _arg3)); MotionData3DPool.recycle(_local6); }; } override public function getXMLTagName():String{ return ("Gravity3D"); } public function removeField(_arg1:Field3D):void{ var _local2:int = fields.indexOf(_arg1); if (_local2 >= 0){ fields.splice(_local2, 1); }; } override public function getRelatedObjects():Array{ return (fields); } } }//package idv.cjcat.stardust.threeD.actions
Section 110
//Move3D (idv.cjcat.stardust.threeD.actions.Move3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Move3D extends Action3D { public var multiplier:Number; public function Move3D(_arg1:Number=1){ this.multiplier = _arg1; } override public function getXMLTagName():String{ return ("Move3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); multiplier = parseFloat(_arg1.@multiplier); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle3D; _local4 = (_arg2 as Particle3D); var _local5:Number = (_arg3 * multiplier); _local4.x = (_local4.x + (_local4.vx * _local5)); _local4.y = (_local4.y + (_local4.vy * _local5)); _local4.z = (_local4.z + (_local4.vz * _local5)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@multiplier = multiplier; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 111
//MutualAction3D (idv.cjcat.stardust.threeD.actions.MutualAction3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.*; public class MutualAction3D extends Action3D { public var maxDistance:Number; override public function getXMLTagName():String{ return ("MutualAction3D"); } protected function doMutualAction(_arg1:Particle3D, _arg2:Particle3D, _arg3:Number):void{ } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); maxDistance = parseFloat(_arg1.@maxDistance); } final override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local7:Number; var _local8:Number; var _local9:Number; var _local4:Array = _arg1.sd::particles; var _local5:int = _arg2.sortedIndex; var _local6:int = (_local5 + 1); while (_local6 < _local4.length) { _local7 = (_local4[_local6].x - _local4[_local5].x); if (_local7 <= maxDistance){ _local8 = (_local4[_local6].y - _local4[_local5].y); _local9 = (_local4[_local6].z - _local4[_local5].z); if (((_local8 * _local8) + (_local9 * _local9)) <= (maxDistance * maxDistance)){ doMutualAction((_local4[_local6] as Particle3D), (_local4[_local5] as Particle3D), _arg3); }; } else { break; }; _local6++; }; } final override public function get needsSortedParticles():Boolean{ return (active); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@maxDistance = maxDistance; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 112
//MutualGravity3D (idv.cjcat.stardust.threeD.actions.MutualGravity3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class MutualGravity3D extends MutualAction3D { public var strength:Number; public var epsilon:Number; public var massless:Boolean; public var attenuationPower:Number; public function MutualGravity3D(_arg1:Number=1, _arg2:Number=100, _arg3:Number=1){ this.strength = _arg1; this.maxDistance = _arg2; this.epsilon = 1; this.attenuationPower = _arg3; this.massless = true; } override public function getXMLTagName():String{ return ("MutualGravity3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); strength = parseFloat(_arg1.@strength); epsilon = parseFloat(_arg1.@epsilon); attenuationPower = parseFloat(_arg1.@attenuationPower); massless = (_arg1.@massless == "true"); } override protected function doMutualAction(_arg1:Particle3D, _arg2:Particle3D, _arg3:Number):void{ var _local9:Number; var _local4:Number = (_arg1.x - _arg2.x); var _local5:Number = (_arg1.y - _arg2.y); var _local6:Number = (_arg1.z - _arg2.z); var _local7:Number = Math.sqrt((((_local4 * _local4) + (_local5 * _local5)) + (_local6 * _local6))); if (_local7 < epsilon){ _local7 = epsilon; }; var _local8:Vec3D = Vec3DPool.get(_local4, _local5, _local6); if (massless){ _local8.length = (strength * Math.pow(_local7, -(attenuationPower))); _arg2.vx = (_arg2.vx + (_local8.x * _arg3)); _arg2.vy = (_arg2.vy + (_local8.y * _arg3)); _arg2.vz = (_arg2.vz + (_local8.z * _arg3)); _arg1.vx = (_arg1.vx - (_local8.x * _arg3)); _arg1.vy = (_arg1.vy - (_local8.y * _arg3)); _arg1.vz = (_arg1.vz - (_local8.z * _arg3)); } else { _local9 = (((strength * _arg1.mass) * _arg2.mass) * Math.pow(_local7, -(attenuationPower))); _local8.length = (_local9 / _arg2.mass); _arg2.vx = (_arg2.vx + (_local8.x * _arg3)); _arg2.vy = (_arg2.vy + (_local8.y * _arg3)); _arg2.vz = (_arg2.vz + (_local8.z * _arg3)); _local8.length = (_local9 / _arg1.mass); _arg1.vx = (_arg1.vx - (_local8.x * _arg3)); _arg1.vy = (_arg1.vy - (_local8.y * _arg3)); _arg1.vz = (_arg1.vz - (_local8.z * _arg3)); }; Vec3DPool.recycle(_local8); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@strength = strength; _local1.@epsilon = epsilon; _local1.@attenuationPower = attenuationPower; _local1.@massless = massless; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 113
//NormalDrift3D (idv.cjcat.stardust.threeD.actions.NormalDrift3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; public class NormalDrift3D extends Action3D { private var _random:Random; public var max:Number; public var massless:Boolean; public function NormalDrift3D(_arg1:Number=0.2, _arg2:Random=null){ this.massless = true; this.max = _arg1; this.random = _arg2; } public function get random():Random{ return (_random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _random = _arg1; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle3D; var _local5:Vec3D; _local4 = (_arg2 as Particle3D); _local5 = Vec3DPool.get(_local4.vx, _local4.vy, _local4.vz); var _local6:Vec3D = Vec3DPool.get(Math.random(), Math.random(), Math.random()); _local6 = _local6.cross(_local5); random.setRange(-(max), max); _local6.length = random.random(); _local6.rotateThis(_local5, (360 * Math.random())); if (!massless){ _local5.length = (_local5.length / _local4.mass); }; _local4.vx = (_local4.vx + (_local6.x * _arg3)); _local4.vy = (_local4.vy + (_local6.y * _arg3)); _local4.vz = (_local4.vz + (_local6.z * _arg3)); Vec3DPool.recycle(_local5); Vec3DPool.recycle(_local6); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); massless = (_arg1.@massless == "true"); max = parseFloat(_arg1.@max); random = (_arg2.getElementByName(_arg1.@random) as Random); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@massless = massless; _local1.@max = max; _local1.@random = _random.name; return (_local1); } override public function getXMLTagName():String{ return ("NormalDrift3D"); } } }//package idv.cjcat.stardust.threeD.actions
Section 114
//Oriented3D (idv.cjcat.stardust.threeD.actions.Oriented3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; public class Oriented3D extends Action3D { public var offsetX:Number; public var offsetY:Number; public var offsetZ:Number; public var factor:Number; public function Oriented3D(_arg1:Number=1, _arg2:Number=0, _arg3:Number=90, _arg4:Number=0){ this.factor = _arg1; this.offsetX = _arg2; this.offsetY = _arg3; this.offsetZ = _arg4; } override public function getXMLTagName():String{ return ("Oriented3D"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle3D = (_arg2 as Particle3D); var _local5:Number = (((Math.atan2(Math.sqrt(((_local4.vx * _local4.vx) + (_local4.vz * _local4.vz))), _local4.vy) * StardustMath.RADIAN_TO_DEGREE) + offsetX) - _local4.rotationX); var _local6:Number = (((Math.atan2(-(_local4.vz), _local4.vx) * StardustMath.RADIAN_TO_DEGREE) + offsetY) - _local4.rotationY); var _local7:Number = (offsetZ - _local4.rotationZ); var _local8:Number = (factor / _arg3); _local4.rotationX = (_local4.rotationX + (_local8 * _local5)); _local4.rotationY = (_local4.rotationY + (_local8 * _local6)); _local4.rotationZ = (_local4.rotationZ + (_local8 * _local7)); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); factor = parseFloat(_arg1.@factor); offsetX = parseFloat(_arg1.@offsetX); offsetY = parseFloat(_arg1.@offsetY); offsetZ = parseFloat(_arg1.@offsetZ); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@factor = factor; _local1.@offsetX = offsetX; _local1.@offsetY = offsetY; _local1.@offsetZ = offsetZ; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 115
//RandomDrift3D (idv.cjcat.stardust.threeD.actions.RandomDrift3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; public class RandomDrift3D extends Action3D { private var _randomX:Random; public var massless:Boolean; public var maxX:Number; private var _randomY:Random; private var _randomZ:Random; public var maxY:Number; public var maxZ:Number; public function RandomDrift3D(_arg1:Number=0.2, _arg2:Number=0.2, _arg3:Number=0.2, _arg4:Random=null, _arg5:Random=null, _arg6:Random=null){ this.massless = true; this.maxX = _arg1; this.maxY = _arg2; this.maxZ = _arg3; this.randomX = _arg4; this.randomY = _arg5; this.randomZ = _arg6; } public function set randomY(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomY = _arg1; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local8:Number; var _local4:Particle3D = (_arg2 as Particle3D); randomX.setRange(-(maxX), maxX); randomY.setRange(-(maxY), maxY); randomZ.setRange(-(maxZ), maxZ); var _local5:Number = randomX.random(); var _local6:Number = randomY.random(); var _local7:Number = randomZ.random(); if (!massless){ _local8 = (1 / _local4.mass); _local5 = (_local5 * _local8); _local6 = (_local6 * _local8); _local7 = (_local7 * _local8); }; _local4.vx = (_local4.vx + (_local5 * _arg3)); _local4.vy = (_local4.vy + (_local6 * _arg3)); _local4.vz = (_local4.vz + (_local7 * _arg3)); } public function get randomX():Random{ return (_randomX); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@massless = massless; _local1.@maxX = maxX; _local1.@maxY = maxY; _local1.@maxZ = maxZ; _local1.@randomX = _randomX.name; _local1.@randomY = _randomY.name; _local1.@randomZ = _randomZ.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_randomX, _randomY, _randomZ]); } override public function getXMLTagName():String{ return ("RandomDrift3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); massless = (_arg1.@massless == "true"); maxX = parseFloat(_arg1.@maxX); maxY = parseFloat(_arg1.@maxY); maxZ = parseFloat(_arg1.@maxZ); randomX = (_arg2.getElementByName(_arg1.@randomX) as Random); randomY = (_arg2.getElementByName(_arg1.@randomY) as Random); randomZ = (_arg2.getElementByName(_arg1.@randomZ) as Random); } public function set randomZ(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomZ = _arg1; } public function set randomX(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomX = _arg1; } public function get randomY():Random{ return (_randomY); } public function get randomZ():Random{ return (_randomZ); } } }//package idv.cjcat.stardust.threeD.actions
Section 116
//Spawn3D (idv.cjcat.stardust.threeD.actions.Spawn3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.*; public class Spawn3D extends Action3D implements InitializerCollector { public var inheritDirection:Boolean; private var _factory:Particle3DFactory; private var _countRandom:Random; public var inheritVelocity:Boolean; public function Spawn3D(_arg1:Random=null, _arg2:Boolean=true, _arg3:Boolean=false){ this.inheritDirection = _arg2; this.inheritVelocity = _arg3; this.countRandom = _arg1; _factory = new Particle3DFactory(); } public function addInitializer(_arg1:Initializer):void{ _factory.addInitializer(_arg1); } override public function toXML():XML{ var _local2:Initializer; var _local1:XML = super.toXML(); _local1.@inheritDirection = inheritDirection; _local1.@inheritVelocity = inheritVelocity; _local1.@countRandom = _countRandom.name; if (_factory.sd::initializerCollection.sd::initializers.length > 0){ _local1.appendChild(<initializers/> ); for each (_local2 in _factory.sd::initializerCollection.sd::initializers) { _local1.initializers.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local6:Particle3D; var _local7:Vec3D; var _local4:Particle3D = (_arg2 as Particle3D); var _local5:Array = _factory.createParticles(StardustMath.randomFloor((_countRandom.random() * _arg3))); for each (_local6 in _local5) { _local6.x = (_local6.x + _local4.x); _local6.y = (_local6.y + _local4.y); _local6.z = (_local6.z + _local4.z); if (inheritVelocity){ _local6.vx = (_local6.vx + _local4.vx); _local6.vy = (_local6.vy + _local4.vy); _local6.vz = (_local6.vz + _local4.vz); }; if (inheritDirection){ _local7 = Vec3DPool.get(_local6.vx, _local6.vy, _local6.vz); _local7.rotateXThis(Math.atan2(Math.sqrt(((_local4.vx * _local4.vx) + (_local4.vz * _local4.vz))), -(_local4.vy)), true); _local7.rotateYThis((Math.atan2(-(_local4.vz), _local4.vx) - StardustMath.HALF_PI), true); _local6.vx = _local7.x; _local6.vy = _local7.y; _local6.vz = _local7.z; Vec3DPool.recycle(_local7); }; }; _arg1.addParticles(_local5); } public function clearInitializers():void{ _factory.clearInitializers(); } override public function getXMLTagName():String{ return ("Spawn3D"); } public function get countRandom():Random{ return (_countRandom); } public function set countRandom(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _countRandom = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); inheritDirection = (_arg1.@inheritDirection == "true"); inheritVelocity = (_arg1.@inheritVelocity == "true"); countRandom = (_arg2.getElementByName(_arg1.@countRandom) as Random); clearInitializers(); for each (_local3 in _arg1.initializers.*) { addInitializer((_arg2.getElementByName(_local3.@name) as Initializer)); }; } public function removeInitializer(_arg1:Initializer):void{ _factory.removeInitializer(_arg1); } override public function getRelatedObjects():Array{ return ([_countRandom].concat(_factory.sd::initializerCollection.sd::initializers)); } } }//package idv.cjcat.stardust.threeD.actions
Section 117
//SpeedLimit3D (idv.cjcat.stardust.threeD.actions.SpeedLimit3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class SpeedLimit3D extends Action3D { public var limit:Number; public function SpeedLimit3D(_arg1:Number=1.79769313486232E308){ this.limit = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); limit = parseFloat(_arg1.@limit); } override public function getXMLTagName():String{ return ("SpeedLimit3D"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local6:Number; var _local4:Particle3D = (_arg2 as Particle3D); var _local5:Number = (((_local4.vx * _local4.vx) + (_local4.vy * _local4.vy)) + (_local4.vz * _local4.vz)); if (_local5 > (limit * limit)){ _local6 = (limit / Math.sqrt(_local5)); _local4.vx = (_local4.vx * _local6); _local4.vy = (_local4.vy * _local6); _local4.vz = (_local4.vz * _local6); }; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@limit = limit; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 118
//Spin3D (idv.cjcat.stardust.threeD.actions.Spin3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Spin3D extends Action3D { public var multiplier:Number; public function Spin3D(_arg1:Number=1){ this.multiplier = _arg1; } override public function getXMLTagName():String{ return ("Spin3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); multiplier = parseFloat(_arg1.@multiplier); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle3D = (_arg2 as Particle3D); var _local5:Number = (_arg3 * multiplier); _local4.rotationX = (_local4.rotationX + (_local4.omegaX * _local5)); _local4.rotationY = (_local4.rotationY + (_local4.omegaY * _local5)); _local4.rotationZ = (_local4.rotationZ + (_local4.omegaZ * _local5)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@multiplier = multiplier; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 119
//VelocityField3D (idv.cjcat.stardust.threeD.actions.VelocityField3D) package idv.cjcat.stardust.threeD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.threeD.fields.*; public class VelocityField3D extends Action3D { public var field:Field3D; public function VelocityField3D(_arg1:Field3D=null){ this.field = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); if (_arg1.@field == "null"){ field = null; } else { field = (_arg2.getElementByName(_arg1.@field) as Field3D); }; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (!field){ return; }; var _local4:Particle3D = (_arg2 as Particle3D); var _local5:MotionData3D = field.getMotionData3D(_local4); _local4.vx = _local5.x; _local4.vy = _local5.y; _local4.vz = _local5.z; MotionData3DPool.recycle(_local5); } override public function getXMLTagName():String{ return ("VelocityField3D"); } override public function toXML():XML{ var _local1:XML = super.toXML(); if (!field){ _local1.@field = "null"; } else { _local1.@field = field.name; }; return (_local1); } } }//package idv.cjcat.stardust.threeD.actions
Section 120
//Camera3D (idv.cjcat.stardust.threeD.cameras.Camera3D) package idv.cjcat.stardust.threeD.cameras { import idv.cjcat.stardust.threeD.geom.*; public class Camera3D { private var _direction:Vec3D; private var _position:Vec3D; public var focalLength:Number;// = 500 public var zoom:Number;// = 1 public var usePerspective:Boolean;// = true public var rotation:Number;// = 0 public function Camera3D(){ _position = new Vec3D(0, 0, 0); _direction = new Vec3D(0, 0, 1); super(); } public function get position():Vec3D{ return (_position); } public function get direction():Vec3D{ return (_direction); } } }//package idv.cjcat.stardust.threeD.cameras
Section 121
//BoundingCube (idv.cjcat.stardust.threeD.deflectors.BoundingCube) package idv.cjcat.stardust.threeD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class BoundingCube extends Deflector3D { public var depth:Number; public var width:Number; public var height:Number; public var x:Number; public var y:Number; public var z:Number; public function BoundingCube(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=640, _arg5:Number=480, _arg6:Number=480){ this.bounce = 1; this.x = _arg1; this.y = _arg2; this.z = _arg3; this.width = _arg4; this.height = _arg5; this.depth = _arg6; } override public function getXMLTagName():String{ return ("BoundingCube"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); width = parseFloat(_arg1.@width); height = parseFloat(_arg1.@height); depth = parseFloat(_arg1.@depth); } override protected function calculateMotionData6D(_arg1:Particle3D):MotionData6D{ var _local2:Number = (_arg1.collisionRadius * _arg1.scale); var _local3:Number = (x + _local2); var _local4:Number = ((x + width) - _local2); var _local5:Number = (y + _local2); var _local6:Number = ((y + height) - _local2); var _local7:Number = (z + _local2); var _local8:Number = ((z + depth) - _local2); var _local9:Number = -(bounce); var _local10:Number = _arg1.x; var _local11:Number = _arg1.y; var _local12:Number = _arg1.z; var _local13:Number = _arg1.vx; var _local14:Number = _arg1.vy; var _local15:Number = _arg1.vz; if (_arg1.x <= _local3){ _local10 = _local3; _local13 = (_local13 * _local9); } else { if (_arg1.x >= _local4){ _local10 = _local4; _local13 = (_local13 * _local9); }; }; if (_arg1.y <= _local5){ _local11 = _local5; _local14 = (_local14 * _local9); } else { if (_arg1.y >= _local6){ _local11 = _local6; _local14 = (_local14 * _local9); }; }; if (_arg1.z <= _local7){ _local12 = _local7; _local15 = (_local15 * _local9); } else { if (_arg1.z >= _local8){ _local12 = _local8; _local15 = (_local15 * _local9); }; }; return (MotionData6DPool.get(_local10, _local11, _local12, _local13, _local14, _local15)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@width = width; _local1.@height = height; _local1.@depth = depth; return (_local1); } } }//package idv.cjcat.stardust.threeD.deflectors
Section 122
//BoundingSphere (idv.cjcat.stardust.threeD.deflectors.BoundingSphere) package idv.cjcat.stardust.threeD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class BoundingSphere extends Deflector3D { public var y:Number; public var radius:Number; public var x:Number; public var z:Number; public function BoundingSphere(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1000){ this.bounce = 1; this.x = _arg1; this.y = _arg2; this.z = _arg3; this.radius = _arg4; } override public function getXMLTagName():String{ return ("BoundingSphere"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); radius = parseFloat(_arg1.@radius); } override protected function calculateMotionData6D(_arg1:Particle3D):MotionData6D{ var _local2:Number = (_arg1.collisionRadius * _arg1.scale); var _local3:Vec3D = Vec3DPool.get((_arg1.x - x), (_arg1.y - y), (_arg1.z - z)); var _local4:Number = (_local3.length + _local2); if (_local4 < radius){ return (MotionData6DPool.get(_arg1.x, _arg1.y, _arg1.z, _arg1.vx, _arg1.vy, _arg1.vz)); }; _local3.length = (radius - _local2); var _local5:Vec3D = Vec3DPool.get(_arg1.vx, _arg1.vy, _arg1.vz); _local5.projectThis(_local3); var _local6:Number = (1 + bounce); Vec3DPool.recycle(_local3); Vec3DPool.recycle(_local5); return (MotionData6DPool.get((x + _local3.x), (y + _local3.y), (z + _local3.z), (_arg1.vx - (_local6 * _local5.x)), (_arg1.vy - (_local6 * _local5.y)), (_arg1.vz - (_local6 * _local5.z)))); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@radius = radius; return (_local1); } } }//package idv.cjcat.stardust.threeD.deflectors
Section 123
//Deflector3D (idv.cjcat.stardust.threeD.deflectors.Deflector3D) package idv.cjcat.stardust.threeD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class Deflector3D extends StardustElement { public var active:Boolean; public var bounce:Number; public function Deflector3D(){ active = true; bounce = 0.8; } override public function getElementTypeXMLTag():XML{ return (<deflectors/> ); } override public function getXMLTagName():String{ return ("Deflector3D"); } final public function getMotionData6D(_arg1:Particle3D):MotionData6D{ if (!active){ return (MotionData6DPool.get(_arg1.x, _arg1.y, _arg1.z, _arg1.vx, _arg1.vy, _arg1.vz)); }; return (calculateMotionData6D(_arg1)); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); active = (_arg1.@active == "true"); bounce = parseFloat(_arg1.@bounce); } protected function calculateMotionData6D(_arg1:Particle3D):MotionData6D{ return (null); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@active = active; _local1.@bounce = bounce; return (_local1); } } }//package idv.cjcat.stardust.threeD.deflectors
Section 124
//PlaneDeflector (idv.cjcat.stardust.threeD.deflectors.PlaneDeflector) package idv.cjcat.stardust.threeD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class PlaneDeflector extends Deflector3D { private var _normal:Vec3D; public var x:Number; public var y:Number; public var z:Number; public function PlaneDeflector(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=-1, _arg6:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; _normal = new Vec3D(_arg4, _arg5, _arg6); } override public function getXMLTagName():String{ return ("PlaneDeflector"); } public function get normal():Vec3D{ return (_normal); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); normal.x = parseFloat(_arg1.@normalX); normal.y = parseFloat(_arg1.@normalY); normal.z = parseFloat(_arg1.@normalZ); } override protected function calculateMotionData6D(_arg1:Particle3D):MotionData6D{ var _local2:Vec3D = Vec3DPool.get((_arg1.x - x), (_arg1.y - y), (_arg1.z - z)); _local2 = _local2.project(normal); var _local3:Number = _local2.dot(normal); var _local4:Number = (_arg1.collisionRadius * _arg1.scale); var _local5:Number = _local2.length; if (_local3 > 0){ if (_local5 > _local4){ return (new MotionData6D(_arg1.x, _arg1.y, _arg1.z, _arg1.vx, _arg1.vy, _arg1.vz)); }; _local2.length = (_local4 - _local5); } else { _local2.length = -((_local5 + _local4)); }; var _local6:Vec3D = Vec3DPool.get(_arg1.vx, _arg1.vy, _arg1.vz); _local6 = _local6.project(normal); var _local7:Number = (1 + bounce); Vec3DPool.recycle(_local2); Vec3DPool.recycle(_local6); return (MotionData6DPool.get((_arg1.x + _local2.x), (_arg1.y + _local2.y), (_arg1.z + _local2.z), (_arg1.vx - (_local6.x * _local7)), (_arg1.vy - (_local6.y * _local7)), (_arg1.vz - (_local6.z * _local7)))); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@normalX = normal.x; _local1.@normalY = normal.y; _local1.@normalZ = normal.z; return (_local1); } } }//package idv.cjcat.stardust.threeD.deflectors
Section 125
//SphereDeflector (idv.cjcat.stardust.threeD.deflectors.SphereDeflector) package idv.cjcat.stardust.threeD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class SphereDeflector extends Deflector3D { public var y:Number;// = 0 public var radius:Number; public var x:Number;// = 0 public var z:Number;// = 0 public function SphereDeflector(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=100){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.radius = _arg4; } override public function getXMLTagName():String{ return ("SphereDeflector"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); radius = parseFloat(_arg1.@radius); } override protected function calculateMotionData6D(_arg1:Particle3D):MotionData6D{ var _local2:Number = (_arg1.collisionRadius * _arg1.scale); var _local3:Vec3D = Vec3DPool.get((_arg1.x - x), (_arg1.y - y), (_arg1.z - z)); var _local4:Number = (_local3.length - _local2); if (_local4 > radius){ return (MotionData6DPool.get(_arg1.x, _arg1.y, _arg1.z, _arg1.vx, _arg1.vy, _arg1.vz)); }; _local3.length = (radius + _local2); var _local5:Vec3D = Vec3DPool.get(_arg1.vx, _arg1.vy, _arg1.vz); _local5.projectThis(_local3); var _local6:Number = (1 + bounce); Vec3DPool.recycle(_local3); Vec3DPool.recycle(_local5); return (MotionData6DPool.get((x + _local3.x), (y + _local3.y), (z + _local3.z), (_arg1.vx - (_local5.x * _local6)), (_arg1.vy - (_local5.y * _local6)), (_arg1.vz - (_local5.z * _local6)))); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@radius = radius; return (_local1); } } }//package idv.cjcat.stardust.threeD.deflectors
Section 126
//WrappingCube (idv.cjcat.stardust.threeD.deflectors.WrappingCube) package idv.cjcat.stardust.threeD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class WrappingCube extends Deflector3D { public var depth:Number; public var width:Number; public var height:Number; public var x:Number; public var y:Number; public var z:Number; public function WrappingCube(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=640, _arg5:Number=480, _arg6:Number=480){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.width = _arg4; this.height = _arg5; this.depth = _arg6; } override public function getXMLTagName():String{ return ("WrappingCube"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); width = parseFloat(_arg1.@width); height = parseFloat(_arg1.@height); depth = parseFloat(_arg1.@depth); } override protected function calculateMotionData6D(_arg1:Particle3D):MotionData6D{ var _local2:Number = x; var _local3:Number = (x + width); var _local4:Number = y; var _local5:Number = (y + height); var _local6:Number = z; var _local7:Number = (z + depth); var _local8:Number = (_arg1.x - x); var _local9:Number = (_arg1.y - y); var _local10:Number = (_arg1.z - z); while (_local8 < 0) { _local8 = (_local8 + width); }; while (_local8 > width) { _local8 = (_local8 - width); }; while (_local9 < 0) { _local9 = (_local9 + height); }; while (_local9 > height) { _local9 = (_local9 - height); }; while (_local10 < 0) { _local10 = (_local10 + depth); }; while (_local10 > depth) { _local10 = (_local10 - depth); }; return (MotionData6DPool.get((x + _local8), (y + _local9), (z + _local10), _arg1.vx, _arg1.vy, _arg1.vz)); } override public function toXML():XML{ var _local1:XML = super.toXML(); delete _local1.@bounce; _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@width = width; _local1.@height = height; _local1.@depth = depth; return (_local1); } } }//package idv.cjcat.stardust.threeD.deflectors
Section 127
//Emitter3D (idv.cjcat.stardust.threeD.emitters.Emitter3D) package idv.cjcat.stardust.threeD.emitters { import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.actions.*; import flash.utils.*; import idv.cjcat.stardust.common.clocks.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.*; import flash.errors.*; public class Emitter3D extends Emitter { public function Emitter3D(_arg1:Clock=null){ super(_arg1); particleSorter = Particle3DXSorter.getInstance(); factory = new Particle3DFactory(); factory.sd::usePool = true; } final override public function addInitializer(_arg1:Initializer):void{ if (!_arg1.supports3D){ throw (new IllegalOperationError(("This initializer does not support 3D: " + getQualifiedClassName((Object(_arg1).constructor as Class))))); }; super.addInitializer(_arg1); } override public function getXMLTagName():String{ return ("Emitter3D"); } final override public function addAction(_arg1:Action):void{ if (!_arg1.supports3D){ throw (new IllegalOperationError(("This action does not support 3D: " + getQualifiedClassName((Object(_arg1).constructor as Class))))); }; super.addAction(_arg1); } } }//package idv.cjcat.stardust.threeD.emitters
Section 128
//Vec3DEvent (idv.cjcat.stardust.threeD.events.Vec3DEvent) package idv.cjcat.stardust.threeD.events { import flash.events.*; import idv.cjcat.stardust.threeD.geom.*; public class Vec3DEvent extends Event { private var _vec:Vec3D; public static const CHANGE:String = "stardustVec3DChange"; public function Vec3DEvent(_arg1:String, _arg2:Vec3D){ super(_arg1); _vec = _arg2; } public function get vec():Vec3D{ return (_vec); } } }//package idv.cjcat.stardust.threeD.events
Section 129
//Field3D (idv.cjcat.stardust.threeD.fields.Field3D) package idv.cjcat.stardust.threeD.fields { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class Field3D extends StardustElement { public var active:Boolean; public var massless:Boolean; public function Field3D(){ active = true; massless = true; } override public function getElementTypeXMLTag():XML{ return (<fields/> ); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); active = (_arg1.@active == "action"); massless = (_arg1.@active == "massless"); } final public function getMotionData3D(_arg1:Particle3D):MotionData3D{ var _local3:Number; if (!active){ return (MotionData3DPool.get(0, 0, 0)); }; var _local2:MotionData3D = calculateMotionData3D(_arg1); if (!massless){ _local3 = (1 / _arg1.mass); _local2.x = (_local2.x * _local3); _local2.y = (_local2.y * _local3); _local2.z = (_local2.z * _local3); }; return (_local2); } override public function getXMLTagName():String{ return ("Field3D"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@active = active; _local1.@massless = massless; return (_local1); } protected function calculateMotionData3D(_arg1:Particle3D):MotionData3D{ return (null); } } }//package idv.cjcat.stardust.threeD.fields
Section 130
//RadialField3D (idv.cjcat.stardust.threeD.fields.RadialField3D) package idv.cjcat.stardust.threeD.fields { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class RadialField3D extends Field3D { public var strength:Number; public var attenuationPower:Number; public var epsilon:Number; public var x:Number; public var y:Number; public var z:Number; public function RadialField3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1, _arg5:Number=0, _arg6:Number=1){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.strength = _arg4; this.attenuationPower = _arg5; this.epsilon = _arg6; } override public function getXMLTagName():String{ return ("RadialField3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); strength = parseFloat(_arg1.@strength); attenuationPower = parseFloat(_arg1.@attenuationPower); epsilon = parseFloat(_arg1.@epsilon); } override protected function calculateMotionData3D(_arg1:Particle3D):MotionData3D{ var _local2:Vec3D = Vec3DPool.get((_arg1.x - x), (_arg1.y - y), (_arg1.x - z)); var _local3:Number = _local2.length; if (_local3 < epsilon){ _local3 = epsilon; }; _local2.length = (strength * Math.pow(_local3, (-0.5 * attenuationPower))); Vec3DPool.recycle(_local2); return (MotionData3DPool.get(_local2.x, _local2.y, _local2.z)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@strength = strength; _local1.@attenuationPower = attenuationPower; _local1.@epsilon = epsilon; return (_local1); } } }//package idv.cjcat.stardust.threeD.fields
Section 131
//UniformField3D (idv.cjcat.stardust.threeD.fields.UniformField3D) package idv.cjcat.stardust.threeD.fields { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; public class UniformField3D extends Field3D { public var x:Number; public var y:Number; public var z:Number; public function UniformField3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); } override public function getXMLTagName():String{ return ("UniformField3D"); } override protected function calculateMotionData3D(_arg1:Particle3D):MotionData3D{ return (MotionData3DPool.get(x, y, z)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; return (_local1); } } }//package idv.cjcat.stardust.threeD.fields
Section 132
//Matrix3D (idv.cjcat.stardust.threeD.geom.Matrix3D) package idv.cjcat.stardust.threeD.geom { public class Matrix3D { public var ty:Number; public var tx:Number; public var tz:Number; private var temp:Matrix3D; public var a:Number; public var b:Number; public var c:Number; public var d:Number; public var e:Number; public var f:Number; public var g:Number; public var h:Number; public var i:Number; public function Matrix3D(_arg1:Number=1, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=1, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0, _arg9:Number=1, _arg10:Number=0, _arg11:Number=0, _arg12:Number=0){ this.a = _arg1; this.b = _arg2; this.c = _arg3; this.d = _arg4; this.e = _arg5; this.f = _arg6; this.g = _arg7; this.h = _arg8; this.i = _arg9; this.tx = _arg10; this.ty = _arg11; this.tz = _arg12; } public function concat(_arg1:Matrix3D):Matrix3D{ var _local2:Matrix3D = clone(); a = (((_local2.a * _arg1.a) + (_local2.b * _arg1.d)) + (_local2.c * _arg1.g)); b = (((_local2.a * _arg1.b) + (_local2.b * _arg1.e)) + (_local2.c * _arg1.h)); c = (((_local2.a * _arg1.c) + (_local2.b * _arg1.f)) + (_local2.c * _arg1.i)); d = (((_local2.d * _arg1.a) + (_local2.e * _arg1.d)) + (_local2.f * _arg1.g)); e = (((_local2.d * _arg1.b) + (_local2.e * _arg1.e)) + (_local2.f * _arg1.h)); f = (((_local2.d * _arg1.c) + (_local2.e * _arg1.f)) + (_local2.f * _arg1.i)); g = (((_local2.g * _arg1.a) + (_local2.h * _arg1.d)) + (_local2.i * _arg1.g)); h = (((_local2.g * _arg1.b) + (_local2.h * _arg1.e)) + (_local2.i * _arg1.h)); i = (((_local2.g * _arg1.c) + (_local2.h * _arg1.f)) + (_local2.i * _arg1.i)); tx = ((((_local2.a * _arg1.tx) + (_local2.b * _arg1.ty)) + (_local2.c * _arg1.tz)) + _local2.tx); ty = ((((_local2.d * _arg1.tx) + (_local2.e * _arg1.ty)) + (_local2.f * _arg1.tz)) + _local2.ty); tz = ((((_local2.g * _arg1.tx) + (_local2.h * _arg1.ty)) + (_local2.i * _arg1.tz)) + _local2.tz); return (this); } public function translate(_arg1:Number, _arg2:Number, _arg3:Number):void{ tx = (tx + _arg1); ty = (ty + _arg2); tz = (tz + _arg3); } public function transformThisVec(_arg1:Vec3D):Vec3D{ _arg1.set(((((a * _arg1.x) + (b * _arg1.y)) + (c * _arg1.z)) + tx), ((((d * _arg1.x) + (e * _arg1.y)) + (f * _arg1.z)) + ty), ((((g * _arg1.x) + (h * _arg1.y)) + (i * _arg1.z)) + tz)); return (_arg1); } public function rotateX(_arg1:Number):void{ temp = Matrix3DPool.get(1, 0, 0, 0, Math.cos(_arg1), -(Math.sin(_arg1)), 0, Math.sin(_arg1), Math.cos(_arg1), 0, 0, 0); concat(temp); Matrix3DPool.recycle(temp); temp = null; } public function rotateY(_arg1:Number):void{ temp = Matrix3DPool.get(Math.cos(_arg1), 0, Math.sin(_arg1), 0, 1, 0, -(Math.sin(_arg1)), 0, Math.cos(_arg1), 0, 0, 0); concat(temp); Matrix3DPool.recycle(temp); temp = null; } public function rotateZ(_arg1:Number):void{ temp = Matrix3DPool.get(Math.cos(_arg1), -(Math.sin(_arg1)), 0, Math.sin(_arg1), Math.cos(_arg1), 0, 0, 0, 1, 0, 0, 0); concat(temp); Matrix3DPool.recycle(temp); temp = null; } public function transform(_arg1:Vec3D):Vec3D{ return (transformThisVec(_arg1.clone())); } public function set(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1, _arg5:Number=1, _arg6:Number=1, _arg7:Number=0, _arg8:Number=0, _arg9:Number=0, _arg10:int=0):void{ identity(); if (_arg1 != 0){ rotateX(_arg1); }; if (_arg2 != 0){ rotateY(_arg2); }; if (_arg3 != 0){ rotateZ(_arg3); }; if (((((!((_arg4 == 1))) || (!((_arg5 == 1))))) || (!((_arg6 == 1))))){ scale(_arg4, _arg5, _arg6); }; if (((((!((_arg7 == 0))) || (!((_arg8 == 0))))) || (!((_arg9 == 0))))){ translate(_arg7, _arg8, _arg9); }; } public function clone():Matrix3D{ return (new Matrix3D(a, b, c, d, e, f, g, h, i, tx, ty, tz)); } public function scale(_arg1:Number, _arg2:Number, _arg3:Number):void{ temp = Matrix3DPool.get(_arg1, 0, 0, 0, _arg2, 0, 0, 0, _arg3, 0, 0, 0); concat(temp); Matrix3DPool.recycle(temp); temp = null; } public function toString():String{ return ((((((((((((((((((((((((("[Matrix3D a=" + a) + ", b=") + b) + ", c=") + c) + ", d=") + d) + ", e=") + e) + ", f=") + f) + ", g=") + g) + ", h=") + h) + ", i=") + i) + ", tx=") + tx) + ", ty=") + ty) + ", tz=") + tz) + "]")); } public function identity():void{ a = 1; b = 0; c = 0; d = 0; e = 1; f = 0; g = 0; h = 0; i = 1; tx = (ty = (tz = 0)); } } }//package idv.cjcat.stardust.threeD.geom
Section 133
//Matrix3DPool (idv.cjcat.stardust.threeD.geom.Matrix3DPool) package idv.cjcat.stardust.threeD.geom { public class Matrix3DPool { private static var _vec:Array = [new Matrix3D()]; private static var _position:int = 0; public static function recycle(_arg1:Matrix3D):void{ if (_position == 0){ return; }; if (!_arg1){ return; }; _vec[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; if (_vec.length >= 16){ if (_position < (_vec.length >> 4)){ _vec.length = (_vec.length >> 1); }; }; } public static function get(_arg1:Number=1, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=1, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0, _arg9:Number=1, _arg10:Number=0, _arg11:Number=0, _arg12:Number=0):Matrix3D{ var _local14:int; if (_position == _vec.length){ _vec.length = (_vec.length << 1); _local14 = _position; while (_local14 < _vec.length) { _vec[_local14] = new Matrix3D(); _local14++; }; }; _position++; var _local13:Matrix3D = (_vec[(_position - 1)] as Matrix3D); _local13.a = _arg1; _local13.b = _arg2; _local13.c = _arg3; _local13.d = _arg4; _local13.e = _arg5; _local13.f = _arg6; _local13.g = _arg7; _local13.h = _arg8; _local13.i = _arg9; _local13.tx = _arg10; _local13.ty = _arg11; _local13.tz = _arg12; return (_local13); } } }//package idv.cjcat.stardust.threeD.geom
Section 134
//MotionData3D (idv.cjcat.stardust.threeD.geom.MotionData3D) package idv.cjcat.stardust.threeD.geom { public class MotionData3D { public var x:Number; public var y:Number; public var z:Number; public function MotionData3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } } }//package idv.cjcat.stardust.threeD.geom
Section 135
//MotionData3DPool (idv.cjcat.stardust.threeD.geom.MotionData3DPool) package idv.cjcat.stardust.threeD.geom { public class MotionData3DPool { private static var _vec:Array = [new MotionData3D()]; private static var _position:int = 0; public static function recycle(_arg1:MotionData3D):void{ if (_position == 0){ return; }; if (!_arg1){ return; }; _vec[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; if (_vec.length >= 16){ if (_position < (_vec.length >> 4)){ _vec.length = (_vec.length >> 1); }; }; } public static function get(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):MotionData3D{ var _local5:int; if (_position == _vec.length){ _vec.length = (_vec.length << 1); _local5 = _position; while (_local5 < _vec.length) { _vec[_local5] = new MotionData3D(); _local5++; }; }; _position++; var _local4:MotionData3D = (_vec[(_position - 1)] as MotionData3D); _local4.x = _arg1; _local4.y = _arg2; _local4.z = _arg3; return (_local4); } } }//package idv.cjcat.stardust.threeD.geom
Section 136
//MotionData6D (idv.cjcat.stardust.threeD.geom.MotionData6D) package idv.cjcat.stardust.threeD.geom { public class MotionData6D { public var vx:Number; public var vy:Number; public var vz:Number; public var x:Number; public var y:Number; public var z:Number; public function MotionData6D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.vx = _arg4; this.vy = _arg5; this.vz = _arg6; } } }//package idv.cjcat.stardust.threeD.geom
Section 137
//MotionData6DPool (idv.cjcat.stardust.threeD.geom.MotionData6DPool) package idv.cjcat.stardust.threeD.geom { public class MotionData6DPool { private static var _vec:Array = [new MotionData6D()]; private static var _position:int = 0; public static function recycle(_arg1:MotionData6D):void{ if (_position == 0){ return; }; if (!_arg1){ return; }; _vec[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; if (_vec.length >= 16){ if (_position < (_vec.length >> 4)){ _vec.length = (_vec.length >> 1); }; }; } public static function get(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0):MotionData6D{ var _local8:int; if (_position == _vec.length){ _vec.length = (_vec.length << 1); _local8 = _position; while (_local8 < _vec.length) { _vec[_local8] = new MotionData6D(); _local8++; }; }; _position++; var _local7:MotionData6D = (_vec[(_position - 1)] as MotionData6D); _local7.x = _arg1; _local7.y = _arg2; _local7.z = _arg3; _local7.vx = _arg4; _local7.vy = _arg5; _local7.vz = _arg6; return (_local7); } } }//package idv.cjcat.stardust.threeD.geom
Section 138
//Vec3D (idv.cjcat.stardust.threeD.geom.Vec3D) package idv.cjcat.stardust.threeD.geom { import flash.events.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.threeD.events.*; public class Vec3D extends EventDispatcher { private var _z:Number; private var _y:Number; private var _x:Number; public function Vec3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ _x = _arg1; _y = _arg2; _z = _arg3; } public function cross(_arg1:Vec3D):Vec3D{ return (new Vec3D(((_y * _arg1._z) - (_z * _arg1._y)), ((_z * _arg1._x) - (_x * _arg1._z)), ((_x * _arg1._y) - (_y * _arg1._x)))); } override public function toString():String{ return (((((((("[Vec3D" + " x=") + _x) + " y=") + _y) + " z=") + _z) + "]")); } public function get y():Number{ return (_y); } public function dot(_arg1:Vec3D):Number{ return ((((_x * _arg1._x) + (_y * _arg1._y)) + (_z * _arg1._z))); } public function set length(_arg1:Number):void{ if ((((((_x == 0)) && ((_y == 0)))) && ((_z == 0)))){ return; }; var _local2:Number = (_arg1 / length); _x = (_x * _local2); _y = (_y * _local2); _z = (_z * _local2); dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function projectThis(_arg1:Vec3D):void{ var _local2:Vec3D = Vec3DPool.get(_arg1._x, _arg1._y, _arg1._z); _local2.length = 1; _local2.length = dot(_local2); _x = _local2._x; _y = _local2._y; _z = _local2._z; Vec3DPool.recycle(_local2); } public function project(_arg1:Vec3D):Vec3D{ var _local2:Vec3D = clone(); _local2.projectThis(_arg1); return (_local2); } public function rotate(_arg1:Vec3D, _arg2:Number, _arg3:Boolean=false):Vec3D{ if (!_arg3){ _arg2 = (_arg2 * StardustMath.DEGREE_TO_RADIAN); }; var _local4:Vec3D = _arg1.unitVec(); var _local5:Number = this.dot(_local4); var _local6:Vec3D = new Vec3D((_local5 * _local4._x), (_local5 * _local4._y), (_local5 * _local4._z)); var _local7:Vec3D = new Vec3D((_x - _local6._x), (_y - _local6._y), (_z - _local6._z)); var _local8:Vec3D = _local4.cross(this); var _local9:Number = Math.cos(_arg2); var _local10:Number = Math.sin(_arg2); return (new Vec3D((((_local9 * _local7._x) + (_local10 * _local8._x)) + _local6._x), (((_local9 * _local7._y) + (_local10 * _local8._y)) + _local6._y), (((_local9 * _local7._z) + (_local10 * _local8._z)) + _local6._z))); } public function rotateYThis(_arg1:Number, _arg2:Boolean=false):void{ if (!_arg2){ _arg1 = (_arg1 * StardustMath.DEGREE_TO_RADIAN); }; var _local3:Number = _z; _z = ((_local3 * Math.cos(_arg1)) - (_x * Math.sin(_arg1))); _x = ((_local3 * Math.sin(_arg1)) + (_x * Math.cos(_arg1))); dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function rotateX(_arg1:Number, _arg2:Boolean=false):Vec3D{ var _local3:Vec3D = new Vec3D(_x, _y, _z); _local3.rotateXThis(_arg1, _arg2); return (_local3); } public function rotateY(_arg1:Number, _arg2:Boolean=false):Vec3D{ var _local3:Vec3D = new Vec3D(_x, _y, _z); _local3.rotateYThis(_arg1, _arg2); return (_local3); } public function rotateZ(_arg1:Number, _arg2:Boolean=false):Vec3D{ var _local3:Vec3D = new Vec3D(_x, _y, _z); _local3.rotateZThis(_arg1, _arg2); return (_local3); } public function rotateThis(_arg1:Vec3D, _arg2:Number, _arg3:Boolean=false):void{ var _local4:Vec3D = rotate(_arg1, _arg2, _arg3); _x = _local4._x; _y = _local4._y; _z = _local4._z; dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function rotateXThis(_arg1:Number, _arg2:Boolean=false):void{ if (!_arg2){ _arg1 = (_arg1 * StardustMath.DEGREE_TO_RADIAN); }; var _local3:Number = _y; _y = ((_local3 * Math.cos(_arg1)) - (_z * Math.sin(_arg1))); _z = ((_local3 * Math.sin(_arg1)) + (_z * Math.cos(_arg1))); dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function clone():Vec3D{ return (new Vec3D(_x, _y, _z)); } public function get length():Number{ return (Math.sqrt((((_x * _x) + (_y * _y)) + (_z * _z)))); } public function set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _x = _arg1; _y = _arg2; _z = _arg3; dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function rotateZThis(_arg1:Number, _arg2:Boolean=false):void{ if (!_arg2){ _arg1 = (_arg1 * StardustMath.DEGREE_TO_RADIAN); }; var _local3:Number = _x; _x = ((_local3 * Math.cos(_arg1)) - (_y * Math.sin(_arg1))); _y = ((_local3 * Math.sin(_arg1)) + (_y * Math.cos(_arg1))); dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function set x(_arg1:Number):void{ _x = _arg1; dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function set y(_arg1:Number):void{ _y = _arg1; dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function set z(_arg1:Number):void{ _z = _arg1; dispatchEvent(new Vec3DEvent(Vec3DEvent.CHANGE, this)); } public function unitVec():Vec3D{ if (length == 0){ return (new Vec3D()); }; var _local1:Number = (1 / length); return (new Vec3D((_x * _local1), (_y * _local1), (_z * _local1))); } public function get x():Number{ return (_x); } public function get z():Number{ return (_z); } public static function angleBetween(_arg1:Vec3D, _arg2:Vec3D, _arg3:Boolean=false):Number{ var _local4:Number = Math.acos((_arg1.dot(_arg2) / (_arg1.length * _arg2.length))); if (!_arg3){ _local4 = (_local4 * StardustMath.RADIAN_TO_DEGREE); }; return (_local4); } } }//package idv.cjcat.stardust.threeD.geom
Section 139
//Vec3DPool (idv.cjcat.stardust.threeD.geom.Vec3DPool) package idv.cjcat.stardust.threeD.geom { public class Vec3DPool { private static var _vec:Array = [new Vec3D()]; private static var _position:int = 0; public static function recycle(_arg1:Vec3D):void{ if (_position == 0){ return; }; if (!_arg1){ return; }; _vec[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; if (_vec.length >= 16){ if (_position < (_vec.length >> 4)){ _vec.length = (_vec.length >> 1); }; }; } public static function get(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):Vec3D{ var _local5:int; if (_position == _vec.length){ _vec.length = (_vec.length << 1); _local5 = _position; while (_local5 < _vec.length) { _vec[_local5] = new Vec3D(); _local5++; }; }; _position++; var _local4:Vec3D = (_vec[(_position - 1)] as Vec3D); _local4.x = _arg1; _local4.y = _arg2; _local4.z = _arg3; return (_local4); } } }//package idv.cjcat.stardust.threeD.geom
Section 140
//ZData (idv.cjcat.stardust.threeD.geom.ZData) package idv.cjcat.stardust.threeD.geom { import flash.display.*; import idv.cjcat.stardust.threeD.particles.*; public class ZData { public var displayObject:DisplayObject; public var particle:Particle3D; public var cameraVelocity:Vec3D; public var cameraDiff:Vec3D; public function ZData(){ cameraDiff = new Vec3D(); cameraVelocity = new Vec3D(); super(); } } }//package idv.cjcat.stardust.threeD.geom
Section 141
//ZDataPool (idv.cjcat.stardust.threeD.geom.ZDataPool) package idv.cjcat.stardust.threeD.geom { import flash.display.*; import idv.cjcat.stardust.threeD.particles.*; public class ZDataPool { private static var _vec:Array = [new ZData()]; private static var _position:int = 0; public static function recycle(_arg1:ZData):void{ _arg1.displayObject = null; if (_position == 0){ return; }; if (!_arg1){ return; }; _vec[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; } public static function get(_arg1:DisplayObject, _arg2:Particle3D, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0):ZData{ var _local7:int; if (_position == _vec.length){ _vec.length = (_vec.length << 1); _local7 = _position; while (_local7 < _vec.length) { _vec[_local7] = new ZData(); _local7++; }; }; _position++; var _local6:ZData = (_vec[(_position - 1)] as ZData); _local6.displayObject = _arg1; _local6.particle = _arg2; _local6.cameraDiff.x = _arg3; _local6.cameraDiff.y = _arg4; _local6.cameraDiff.z = _arg5; return (_local6); } } }//package idv.cjcat.stardust.threeD.geom
Section 142
//DisplayObjectClass3D (idv.cjcat.stardust.threeD.initializers.DisplayObjectClass3D) package idv.cjcat.stardust.threeD.initializers { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.utils.*; public class DisplayObjectClass3D extends Initializer3D { public var constructorParams:Array; public var displayObjectClass:Class; public function DisplayObjectClass3D(_arg1:Class=null, _arg2:Array=null){ this.displayObjectClass = _arg1; this.constructorParams = _arg2; } override public function getXMLTagName():String{ return ("DisplayObjectClass3D"); } override public function initialize(_arg1:Particle):void{ if (!displayObjectClass){ return; }; _arg1.target = construct(displayObjectClass, constructorParams); } } }//package idv.cjcat.stardust.threeD.initializers
Section 143
//Initializer3D (idv.cjcat.stardust.threeD.initializers.Initializer3D) package idv.cjcat.stardust.threeD.initializers { import idv.cjcat.stardust.common.initializers.*; public class Initializer3D extends Initializer { public function Initializer3D(){ _supports2D = false; priority = Initializer3DPriority.getInstance().getPriority((Object(this).constructor as Class)); } } }//package idv.cjcat.stardust.threeD.initializers
Section 144
//Initializer3DPriority (idv.cjcat.stardust.threeD.initializers.Initializer3DPriority) package idv.cjcat.stardust.threeD.initializers { import idv.cjcat.stardust.common.initializers.*; public class Initializer3DPriority extends InitializerPriority { private static var _instance:Initializer3DPriority; final override protected function populatePriorities():void{ priorities[DisplayObjectClass3D] = 1; } public static function getInstance():Initializer3DPriority{ if (!_instance){ _instance = new (Initializer3DPriority); }; return (_instance); } } }//package idv.cjcat.stardust.threeD.initializers
Section 145
//Omega3D (idv.cjcat.stardust.threeD.initializers.Omega3D) package idv.cjcat.stardust.threeD.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.math.*; public class Omega3D extends Initializer3D { private var _randomX:Random; private var _randomY:Random; private var _randomZ:Random; public function Omega3D(_arg1:Random=null, _arg2:Random=null, _arg3:Random=null){ this.randomX = _arg1; this.randomY = _arg2; this.randomZ = _arg3; } override public function getRelatedObjects():Array{ return ([_randomX, _randomY, _randomZ]); } override public function getXMLTagName():String{ return ("Omega3D"); } public function set randomZ(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _randomZ = _arg1; } public function set randomX(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _randomX = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); randomX = (_arg2.getElementByName(_arg1.@randomX) as Random); randomY = (_arg2.getElementByName(_arg1.@randomY) as Random); randomZ = (_arg2.getElementByName(_arg1.@randomZ) as Random); } public function set randomY(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _randomY = _arg1; } public function get randomX():Random{ return (_randomX); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@randomX = _randomX.name; _local1.@randomY = _randomY.name; _local1.@randomZ = _randomZ.name; return (_local1); } public function get randomY():Random{ return (_randomY); } public function get randomZ():Random{ return (_randomZ); } override public function initialize(_arg1:Particle):void{ var _local2:Particle3D = (_arg1 as Particle3D); _local2.omegaX = _randomX.random(); _local2.omegaY = _randomY.random(); _local2.omegaZ = _randomZ.random(); } } }//package idv.cjcat.stardust.threeD.initializers
Section 146
//Position3D (idv.cjcat.stardust.threeD.initializers.Position3D) package idv.cjcat.stardust.threeD.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.threeD.zones.*; public class Position3D extends Initializer3D { private var _zone:Zone3D; public function Position3D(_arg1:Zone3D=null){ this.zone = _arg1; } override public function initialize(_arg1:Particle):void{ var _local2:Particle3D; var _local3:MotionData3D; _local2 = (_arg1 as Particle3D); _local3 = _zone.getPoint(); _local2.x = _local3.x; _local2.y = _local3.y; _local2.z = _local3.z; MotionData3DPool.recycle(_local3); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); zone = (_arg2.getElementByName(_arg1.@zone) as Zone3D); } override public function getXMLTagName():String{ return ("Position3D"); } public function set zone(_arg1:Zone3D):void{ if (!_arg1){ _arg1 = new SinglePoint3D(0, 0, 0); }; _zone = _arg1; } public function get zone():Zone3D{ return (_zone); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@zone = _zone.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_zone]); } } }//package idv.cjcat.stardust.threeD.initializers
Section 147
//Rotation3D (idv.cjcat.stardust.threeD.initializers.Rotation3D) package idv.cjcat.stardust.threeD.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.math.*; public class Rotation3D extends Initializer3D { private var _randomX:Random; private var _randomY:Random; private var _randomZ:Random; public function Rotation3D(_arg1:Random=null, _arg2:Random=null, _arg3:Random=null){ this.randomX = _arg1; this.randomY = _arg2; this.randomZ = _arg3; } override public function getRelatedObjects():Array{ return ([_randomX, _randomY, _randomZ]); } override public function getXMLTagName():String{ return ("Rotation3D"); } public function set randomZ(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _randomZ = _arg1; } public function set randomX(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _randomX = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); randomX = (_arg2.getElementByName(_arg1.@randomX) as Random); randomY = (_arg2.getElementByName(_arg1.@randomY) as Random); randomZ = (_arg2.getElementByName(_arg1.@randomZ) as Random); } public function set randomY(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _randomY = _arg1; } public function get randomX():Random{ return (_randomX); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@randomX = _randomX.name; _local1.@randomY = _randomY.name; _local1.@randomZ = _randomZ.name; return (_local1); } public function get randomY():Random{ return (_randomY); } public function get randomZ():Random{ return (_randomZ); } override public function initialize(_arg1:Particle):void{ var _local2:Particle3D = (_arg1 as Particle3D); _local2.rotationX = randomX.random(); _local2.rotationY = randomY.random(); _local2.rotationZ = randomZ.random(); } } }//package idv.cjcat.stardust.threeD.initializers
Section 148
//Velocity3D (idv.cjcat.stardust.threeD.initializers.Velocity3D) package idv.cjcat.stardust.threeD.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.threeD.zones.*; public class Velocity3D extends Initializer3D { private var _zone:Zone3D; public function Velocity3D(_arg1:Zone3D=null){ this.zone = _arg1; } override public function initialize(_arg1:Particle):void{ var _local2:Particle3D = (_arg1 as Particle3D); var _local3:MotionData3D = zone.getPoint(); _local2.vx = _local3.x; _local2.vy = _local3.y; _local2.vz = _local3.z; MotionData3DPool.recycle(_local3); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); zone = (_arg2.getElementByName(_arg1.@zone) as Zone3D); } override public function getXMLTagName():String{ return ("Velocity3D"); } public function set zone(_arg1:Zone3D):void{ if (!_arg1){ _arg1 = new SinglePoint3D(0, 0); }; _zone = _arg1; } public function get zone():Zone3D{ return (_zone); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@zone = zone.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_zone]); } } }//package idv.cjcat.stardust.threeD.initializers
Section 149
//Particle3D (idv.cjcat.stardust.threeD.particles.Particle3D) package idv.cjcat.stardust.threeD.particles { import idv.cjcat.stardust.common.particles.*; public class Particle3D extends Particle { public var vx:Number; public var vy:Number; public var vz:Number; public var omegaX:Number; public var omegaZ:Number; public var rotationX:Number; public var rotationY:Number; public var rotationZ:Number; public var omegaY:Number; public var screenX:Number; public var screenY:Number; public var screenVX:Number; public var screenVY:Number; public var x:Number; public var y:Number; public var z:Number; override public function init():void{ super.init(); x = 0; y = 0; z = 0; screenX = 0; screenY = 0; vx = 0; vy = 0; vz = 0; screenVX = 0; screenVY = 0; rotationX = 0; rotationY = 0; rotationZ = 0; omegaX = 0; omegaY = 0; omegaZ = 0; } } }//package idv.cjcat.stardust.threeD.particles
Section 150
//Particle3DFactory (idv.cjcat.stardust.threeD.particles.Particle3DFactory) package idv.cjcat.stardust.threeD.particles { import idv.cjcat.stardust.common.initializers.*; import flash.utils.*; import idv.cjcat.stardust.common.particles.*; import flash.errors.*; public class Particle3DFactory extends ParticleFactory { public function Particle3DFactory(){ particlePool = Particle3DPool.getInstance(); } override public function addInitializer(_arg1:Initializer):void{ if (!_arg1.supports3D){ throw (new IllegalOperationError(("This initializer does not support 3D: " + getQualifiedClassName((Object(_arg1).constructor as Class))))); }; super.addInitializer(_arg1); } } }//package idv.cjcat.stardust.threeD.particles
Section 151
//Particle3DPool (idv.cjcat.stardust.threeD.particles.Particle3DPool) package idv.cjcat.stardust.threeD.particles { import idv.cjcat.stardust.common.particles.*; public class Particle3DPool extends ParticlePool { private static var _instance:Particle3DPool; public function Particle3DPool(_arg1:Class){ super(_arg1); } public static function getInstance():Particle3DPool{ if (!_instance){ _instance = new Particle3DPool(Particle3D); }; return (_instance); } } }//package idv.cjcat.stardust.threeD.particles
Section 152
//Particle3DXSorter (idv.cjcat.stardust.threeD.particles.Particle3DXSorter) package idv.cjcat.stardust.threeD.particles { import idv.cjcat.stardust.common.particles.*; public class Particle3DXSorter extends ParticleSorter { private static var _instance:Particle3DXSorter; override public function sort(_arg1:Array):void{ _arg1.sortOn("x", Array.NUMERIC); } public static function getInstance():Particle3DXSorter{ if (!_instance){ _instance = new (Particle3DXSorter); }; return (_instance); } } }//package idv.cjcat.stardust.threeD.particles
Section 153
//DisplayObjectRenderer3D (idv.cjcat.stardust.threeD.renderers.DisplayObjectRenderer3D) package idv.cjcat.stardust.threeD.renderers { import flash.display.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.threeD.particles.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.threeD.cameras.*; import idv.cjcat.stardust.common.renderers.*; public class DisplayObjectRenderer3D extends Renderer { public var container:DisplayObjectContainer; private var _camera:Camera3D; public var forceParentChange:Boolean; private var _zdList:Array; private var _cameraDiff:Vec3D; private var _cameraMatrix:Matrix3D; public function DisplayObjectRenderer3D(_arg1:DisplayObjectContainer=null, _arg2:Camera3D=null){ _cameraMatrix = new Matrix3D(); _cameraDiff = new Vec3D(); _zdList = []; super(); this.container = _arg1; this.camera = _arg2; forceParentChange = false; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@forceParentChange = forceParentChange; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); forceParentChange = (_arg1.@forceParentChange == "true"); } public function set camera(_arg1:Camera3D):void{ if (!_arg1){ _arg1 = new Camera3D(); _arg1.position.set(0, 0, -1000); }; _camera = _arg1; } private function renderDisplayObject(_arg1:Particle3D):void{ var _local2:DisplayObject = (_arg1.target as DisplayObject); if (!_local2){ return; }; _local2.x = _arg1.screenX; _local2.y = _arg1.screenY; _local2.rotation = _arg1.rotationZ; _local2.scaleX = (_local2.scaleY = (_arg1.scale * Number(_arg1.dictionary[DisplayObjectRenderer3D]))); _local2.alpha = _arg1.alpha; } public function get camera():Camera3D{ return (_camera); } final override protected function particlesRemoved(_arg1:EmitterEvent):void{ var _local2:Particle3D; var _local3:DisplayObject; for each (_local2 in _arg1.particles) { _local3 = (_local2.target as DisplayObject); if (!_local3){ } else { DisplayObjectContainer(_local3.parent).removeChild(_local3); }; }; } private function zdSorter(_arg1:ZData, _arg2:ZData):Number{ if (_arg1.cameraDiff.z > _arg2.cameraDiff.z){ return (-1); }; return (1); } final override protected function render(_arg1:EmitterEvent):void{ var _local2:int; var _local3:Particle3D; var _local4:ZData; var _local5:Number; _cameraMatrix.identity(); _cameraMatrix.rotateX(Math.atan2(_camera.direction.y, Math.sqrt(((_camera.direction.x * _camera.direction.x) + (_camera.direction.z * _camera.direction.z))))); _cameraMatrix.rotateY(Math.atan2(-(_camera.direction.x), _camera.direction.z)); _zdList.length = _arg1.particles.length; _local2 = 0; for each (_local3 in _arg1.particles) { _cameraDiff.set((_local3.x - _camera.position.x), (_local3.y - _camera.position.y), (_local3.z - _camera.position.z)); _cameraMatrix.transformThisVec(_cameraDiff); _local3.dictionary[ZData] = (_zdList[_local2] = ZDataPool.get((_local3.target as DisplayObject), _local3, _cameraDiff.x, _cameraDiff.y, _cameraDiff.z)); _cameraDiff.set(_local3.vx, _local3.vy, _local3.vz); _cameraMatrix.transformThisVec(_cameraDiff); _local3.dictionary["screenVel"] = _cameraDiff.clone(); _local2++; }; _zdList.sort(zdSorter); for each (_local4 in _zdList) { container.addChild(_local4.displayObject); if (_local4.cameraDiff.z < 0){ _local4.displayObject.visible = false; } else { _local4.displayObject.visible = true; }; if (_camera.usePerspective){ _local5 = (_camera.zoom / ((_local4.cameraDiff.z / _camera.focalLength) + 1)); _local4.particle.screenX = (_local4.cameraDiff.x * _local5); _local4.particle.screenY = (_local4.cameraDiff.y * _local5); _local4.particle.dictionary[DisplayObjectRenderer3D] = (_local5 * _local4.particle.initScale); } else { _local4.particle.screenX = (_camera.zoom * _local4.cameraDiff.x); _local4.particle.screenY = (_camera.zoom * _local4.cameraDiff.y); _local4.particle.dictionary[DisplayObjectRenderer3D] = 1; }; renderDisplayObject(_local4.particle); ZDataPool.recycle(_local4); }; } final override protected function particlesCreated(_arg1:EmitterEvent):void{ var _local2:Particle3D; var _local3:DisplayObject; if (!container){ return; }; for each (_local2 in _arg1.particles) { _local3 = (_local2.target as DisplayObject); if (!_local3){ } else { if (!forceParentChange){ //unresolved if } else { container.addChild(_local3); }; }; }; } override public function getXMLTagName():String{ return ("DisplayObjectRenderer3D"); } } }//package idv.cjcat.stardust.threeD.renderers
Section 154
//CubeZone (idv.cjcat.stardust.threeD.zones.CubeZone) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.common.math.*; public class CubeZone extends Zone3D { private var _depth:Number; private var _height:Number; private var _width:Number; private var _randomX:Random; private var _randomY:Random; private var _randomZ:Random; public var y:Number; public var z:Number; public var x:Number; public function CubeZone(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=640, _arg5:Number=480, _arg6:Number=480, _arg7:Random=null, _arg8:Random=null, _arg9:Random=null){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.width = _arg4; this.height = _arg5; this.depth = _arg6; this.randomX = _arg7; this.randomY = _arg8; this.randomZ = _arg9; } public function get depth():Number{ return (_depth); } override protected function updateVolume():void{ volume = ((_width * _height) * _depth); } public function get width():Number{ return (_width); } override public function calculateMotionData3D():MotionData3D{ randomX.setRange(x, (x + _width)); randomY.setRange(y, (y + _height)); randomZ.setRange(z, (z + _depth)); return (new MotionData3D(randomX.random(), randomY.random(), randomZ.random())); } public function set randomZ(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomZ = _arg1; } public function set width(_arg1:Number):void{ _width = _arg1; updateVolume(); } public function set height(_arg1:Number):void{ _height = _arg1; updateVolume(); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@width = width; _local1.@height = height; _local1.@depth = depth; _local1.@randomX = randomX.name; _local1.@randomY = randomY.name; _local1.@randomZ = randomZ.name; return (_local1); } public function set depth(_arg1:Number):void{ _depth = _arg1; updateVolume(); } override public function contains(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ if ((((_arg1 < this.x)) || ((_arg1 > (this.x + _width))))){ return (false); }; if ((((_arg2 < this.y)) || ((_arg2 > (this.y + _height))))){ return (false); }; if ((((_arg3 < this.z)) || ((_arg3 > (this.z + _depth))))){ return (false); }; return (true); } override public function getXMLTagName():String{ return ("CubeZone"); } override public function getRelatedObjects():Array{ return ([_randomX, _randomY, _randomZ]); } public function get height():Number{ return (_height); } public function set randomX(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomX = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); width = parseFloat(_arg1.@width); height = parseFloat(_arg1.@height); depth = parseFloat(_arg1.@depth); randomX = (_arg2.getElementByName(_arg1.@randomX) as Random); randomY = (_arg2.getElementByName(_arg1.@randomY) as Random); randomZ = (_arg2.getElementByName(_arg1.@randomZ) as Random); } public function get randomX():Random{ return (_randomX); } public function set randomY(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomY = _arg1; } public function get randomY():Random{ return (_randomY); } public function get randomZ():Random{ return (_randomZ); } } }//package idv.cjcat.stardust.threeD.zones
Section 155
//DiskZone (idv.cjcat.stardust.threeD.zones.DiskZone) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.common.math.*; public class DiskZone extends Surface { public var y:Number; private var _minRadius:Number; private var _maxRadius:Number; private var _randomT:Random; public var x:Number; public var z:Number; private var _randomR:Random; public function DiskZone(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=100, _arg6:Random=null){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.minRadius = _arg4; this.maxRadius = _arg5; this.randomR = _arg6; _randomT = new UniformRandom(); } override protected function updateVolume():void{ var _local1:Number; if (_minRadius > _maxRadius){ _local1 = _minRadius; _minRadius = _maxRadius; _maxRadius = _local1; }; volume = ((((_maxRadius * _maxRadius) - (_minRadius * minRadius)) * Math.PI) * virtualThickness); } public function get minRadius():Number{ return (_minRadius); } public function set minRadius(_arg1:Number):void{ _minRadius = _arg1; updateVolume(); } public function get maxRadius():Number{ return (_maxRadius); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@minRadius = minRadius; _local1.@maxRadius = maxRadius; _local1.@randomR = randomR.name; return (_local1); } public function set randomR(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomR = _arg1; } override public function getRelatedObjects():Array{ return ([_randomR]); } override public function getXMLTagName():String{ return ("DiskZone"); } public function set maxRadius(_arg1:Number):void{ _maxRadius = _arg1; updateVolume(); } public function get randomR():Random{ return (_randomR); } override public function calculateMotionData3D():MotionData3D{ if (_maxRadius == 0){ return (new MotionData3D(x, y, z)); }; randomR.setRange(_minRadius, _maxRadius); _randomT.setRange(0, StardustMath.TWO_PI); var _local1:Number = _randomT.random(); var _local2:Number = (_maxRadius * Math.sqrt((randomR.random() / _maxRadius))); return (new MotionData3D(((_local2 * Math.cos(_local1)) + x), y, ((_local2 * Math.sin(_local1)) + y))); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); minRadius = parseFloat(_arg1.@minRadius); maxRadius = parseFloat(_arg1.@maxRadius); randomR = (_arg2.getElementByName(_arg1.@randomR) as Random); } } }//package idv.cjcat.stardust.threeD.zones
Section 156
//SinglePoint3D (idv.cjcat.stardust.threeD.zones.SinglePoint3D) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; public class SinglePoint3D extends Surface { public var x:Number; public var y:Number; public var z:Number; public function SinglePoint3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } override protected function updateVolume():void{ volume = (((((4 / 3) * virtualThickness) * virtualThickness) * virtualThickness) * Math.PI); } override public function getXMLTagName():String{ return ("SinglePoint3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); } override public function calculateMotionData3D():MotionData3D{ return (MotionData3DPool.get(x, y, z)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; return (_local1); } override public function contains(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ if ((((((this.x == _arg1)) && ((this.y == _arg2)))) && ((this.z == _arg3)))){ return (true); }; return (false); } } }//package idv.cjcat.stardust.threeD.zones
Section 157
//SphereCap (idv.cjcat.stardust.threeD.zones.SphereCap) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.common.math.*; public class SphereCap extends Zone3D { private var _minRadius:Number; private var _angle:Number; private var _maxRadius:Number; public var x:Number; public var y:Number; public var z:Number; public function SphereCap(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=50, _arg5:Number=100, _arg6:Number=30){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.minRadius = _arg4; this.maxRadius = _arg5; this.angle = _arg6; } override public function contains(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number = (this.x - _arg1); var _local5:Number = (this.y - _arg2); var _local6:Number = (this.z - _arg3); var _local7:Number = (((_local4 * _local4) + (_local5 * _local5)) + (_local6 * _local6)); return ((((_local7 <= (_maxRadius * _maxRadius))) && ((_local7 >= (_minRadius * _minRadius))))); } override protected function updateVolume():void{ volume = (((StardustMath.TWO_PI / 3) * (((_maxRadius * _maxRadius) * _maxRadius) - ((_minRadius * _minRadius) * _minRadius))) * (1 - Math.cos((angle * StardustMath.DEGREE_TO_RADIAN)))); } public function get minRadius():Number{ return (_minRadius); } public function set minRadius(_arg1:Number):void{ _minRadius = _arg1; updateVolume(); } public function get angle():Number{ return (_angle); } public function get maxRadius():Number{ return (_maxRadius); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@minRadius = minRadius; _local1.@maxRadius = maxRadius; _local1.@angle = angle; return (_local1); } override public function getRelatedObjects():Array{ return ([]); } override public function getXMLTagName():String{ return ("SphereCap"); } public function set angle(_arg1:Number):void{ if (_arg1 <= 0){ _arg1 = 0; }; _angle = _arg1; updateVolume(); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); minRadius = parseFloat(_arg1.@minRadius); maxRadius = parseFloat(_arg1.@maxRadius); angle = parseFloat(_arg1.@angle); } public function set maxRadius(_arg1:Number):void{ _maxRadius = _arg1; updateVolume(); } override public function calculateMotionData3D():MotionData3D{ var _local1:Number = (StardustMath.TWO_PI * Math.random()); var _local2:Number = Math.random(); var _local3:Vec3D = Vec3DPool.get((_local2 * Math.cos(_local1)), (-1 / Math.tan((angle * StardustMath.DEGREE_TO_RADIAN))), (_local2 * Math.sin(_local1))); _local3.length = StardustMath.interpolate(0, _minRadius, 1, _maxRadius, Math.random()); Vec3DPool.recycle(_local3); return (MotionData3DPool.get(_local3.x, _local3.y, _local3.z)); } } }//package idv.cjcat.stardust.threeD.zones
Section 158
//SphereShell (idv.cjcat.stardust.threeD.zones.SphereShell) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; import idv.cjcat.stardust.common.math.*; public class SphereShell extends Zone3D { private var _minRadius:Number; private var _maxRadius:Number; public var x:Number; public var y:Number; public var z:Number; public function SphereShell(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=50, _arg5:Number=100){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.minRadius = _arg4; this.maxRadius = _arg5; } override protected function updateVolume():void{ volume = (((4 / 3) * Math.PI) * (((_maxRadius * _maxRadius) * _maxRadius) - ((_minRadius * _minRadius) * _minRadius))); } public function get minRadius():Number{ return (_minRadius); } override public function getRelatedObjects():Array{ return ([]); } public function set minRadius(_arg1:Number):void{ _minRadius = _arg1; updateVolume(); } override public function getXMLTagName():String{ return ("SphereShell"); } public function set maxRadius(_arg1:Number):void{ _maxRadius = _arg1; updateVolume(); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); minRadius = parseFloat(_arg1.@minRadius); maxRadius = parseFloat(_arg1.@maxRadius); } public function get maxRadius():Number{ return (_maxRadius); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@minRadius = minRadius; _local1.@maxRadius = maxRadius; return (_local1); } override public function calculateMotionData3D():MotionData3D{ var _local1:Vec3D = Vec3DPool.get((Math.random() - 0.5), (Math.random() - 0.5), (Math.random() - 0.5)); _local1.length = StardustMath.interpolate(0, _minRadius, 1, _maxRadius, Math.random()); Vec3DPool.recycle(_local1); return (MotionData3DPool.get(_local1.x, _local1.y, _local1.z)); } override public function contains(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number = (this.x - _arg1); var _local5:Number = (this.y - _arg2); var _local6:Number = (this.z - _arg3); var _local7:Number = (((_local4 * _local4) + (_local5 * _local5)) + (_local6 * _local6)); return ((((_local7 <= (_maxRadius * _maxRadius))) && ((_local7 >= (_minRadius * _minRadius))))); } } }//package idv.cjcat.stardust.threeD.zones
Section 159
//SphereSurface (idv.cjcat.stardust.threeD.zones.SphereSurface) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; public class SphereSurface extends Surface { private var _radius:Number; public var x:Number; public var y:Number; public var z:Number; public function SphereSurface(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=100){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.radius = _arg4; } public function get radius():Number{ return (_radius); } override protected function updateVolume():void{ volume = ((((4 * Math.PI) * _radius) * _radius) * virtualThickness); } public function set radius(_arg1:Number):void{ _radius = _arg1; updateVolume(); } override public function getRelatedObjects():Array{ return ([]); } override public function getXMLTagName():String{ return ("SphereSurface"); } override public function calculateMotionData3D():MotionData3D{ var _local1:Vec3D = Vec3DPool.get((Math.random() - 0.5), (Math.random() - 0.5), (Math.random() - 0.5)); _local1.length = _radius; Vec3DPool.recycle(_local1); return (MotionData3DPool.get(_local1.x, _local1.y, _local1.z)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@radius = radius; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); radius = parseFloat(_arg1.@radius); } override public function contains(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number = (this.x - _arg1); var _local5:Number = (this.y - _arg2); var _local6:Number = (this.z - _arg3); return (((((_local4 * _local4) + (_local5 * _local5)) + (_local6 * _local6)) == (_radius * _radius))); } } }//package idv.cjcat.stardust.threeD.zones
Section 160
//SphereZone (idv.cjcat.stardust.threeD.zones.SphereZone) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.geom.*; public class SphereZone extends Zone3D { private var _radius:Number; public var x:Number; public var y:Number; public var z:Number; public function SphereZone(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=100){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.radius = _arg4; } public function get radius():Number{ return (_radius); } override protected function updateVolume():void{ volume = (((((4 / 3) * Math.PI) * _radius) * _radius) * _radius); } public function set radius(_arg1:Number):void{ _radius = _arg1; updateVolume(); } override public function getRelatedObjects():Array{ return ([]); } override public function getXMLTagName():String{ return ("SphereZone"); } override public function calculateMotionData3D():MotionData3D{ var _local1:Vec3D = Vec3DPool.get((0.5 - Math.random()), (0.5 - Math.random()), (0.5 - Math.random())); _local1.length = (_radius * Math.random()); Vec3DPool.recycle(_local1); return (MotionData3DPool.get(_local1.x, _local1.y, _local1.z)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@z = z; _local1.@radius = radius; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); z = parseFloat(_arg1.@z); radius = parseFloat(_arg1.@radius); } override public function contains(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number = (this.x - _arg1); var _local5:Number = (this.y - _arg2); var _local6:Number = (this.z - _arg3); return (((((_local4 * _local4) + (_local5 * _local5)) + (_local6 * _local6)) <= (_radius * _radius))); } } }//package idv.cjcat.stardust.threeD.zones
Section 161
//Surface (idv.cjcat.stardust.threeD.zones.Surface) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; public class Surface extends Zone3D { private var _virtualThickness:Number; public function Surface(){ _virtualThickness = 1; } final public function set virtualThickness(_arg1:Number):void{ _virtualThickness = _arg1; updateVolume(); } override public function getXMLTagName():String{ return ("Surface"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); virtualThickness = parseFloat(_arg1.@virtualThickness); } final public function get virtualThickness():Number{ return (_virtualThickness); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@virtualThickness = virtualThickness; return (_local1); } } }//package idv.cjcat.stardust.threeD.zones
Section 162
//Zone3D (idv.cjcat.stardust.threeD.zones.Zone3D) package idv.cjcat.stardust.threeD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.threeD.geom.*; public class Zone3D extends StardustElement { public var rotationY:Number; public var rotationX:Number; protected var volume:Number; public var rotationZ:Number; public function Zone3D(){ rotationX = 0; rotationY = 0; rotationZ = 0; } final public function getPoint():MotionData3D{ var _local2:Vec3D; var _local1:MotionData3D = calculateMotionData3D(); if (rotationZ != 0){ _local2 = Vec3DPool.get(_local1.x, _local1.y, _local1.z); _local2.rotateZThis(rotationZ); _local1.x = _local2.x; _local1.y = _local2.y; _local1.z = _local2.z; Vec3DPool.recycle(_local2); }; if (rotationY != 0){ _local2 = Vec3DPool.get(_local1.x, _local1.y, _local1.z); _local2.rotateYThis(rotationY); _local1.x = _local2.x; _local1.y = _local2.y; _local1.z = _local2.z; Vec3DPool.recycle(_local2); }; if (rotationX != 0){ _local2 = Vec3DPool.get(_local1.x, _local1.y, _local1.z); _local2.rotateXThis(rotationX); _local1.x = _local2.x; _local1.y = _local2.y; _local1.z = _local2.z; Vec3DPool.recycle(_local2); }; return (_local1); } protected function updateVolume():void{ } override public function getXMLTagName():String{ return ("Zone3D"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); rotationX = parseFloat(_arg1.@rotationX); rotationY = parseFloat(_arg1.@rotationY); rotationZ = parseFloat(_arg1.@rotationZ); } override public function getElementTypeXMLTag():XML{ return (<zones/> ); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@rotationX = rotationX; _local1.@rotationY = rotationY; _local1.@rotationZ = rotationZ; return (_local1); } final public function getVolume():Number{ return (volume); } public function calculateMotionData3D():MotionData3D{ return (null); } public function contains(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ return (false); } } }//package idv.cjcat.stardust.threeD.zones
Section 163
//ThreeDClassPackage (idv.cjcat.stardust.threeD.ThreeDClassPackage) package idv.cjcat.stardust.threeD { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.threeD.initializers.*; import idv.cjcat.stardust.threeD.actions.*; import idv.cjcat.stardust.threeD.zones.*; import idv.cjcat.stardust.threeD.fields.*; import idv.cjcat.stardust.threeD.deflectors.*; import idv.cjcat.stardust.threeD.emitters.*; import idv.cjcat.stardust.threeD.renderers.*; import idv.cjcat.stardust.threeD.actions.triggers.*; public class ThreeDClassPackage extends ClassPackage { private static var _instance:ThreeDClassPackage; final override protected function populateClasses():void{ classes.push(RandomDrift3D); classes.push(Accelerate3D); classes.push(BillboardOriented); classes.push(CalculateScreenVelocity); classes.push(Collide3D); classes.push(DeathZone3D); classes.push(Damping3D); classes.push(Deflect3D); classes.push(Explode3D); classes.push(Gravity3D); classes.push(Move3D); classes.push(MutualGravity3D); classes.push(NormalDrift3D); classes.push(Oriented3D); classes.push(Spawn3D); classes.push(SpeedLimit3D); classes.push(Spin3D); classes.push(VelocityField3D); classes.push(ZoneTrigger3D); classes.push(BoundingCube); classes.push(BoundingSphere); classes.push(PlaneDeflector); classes.push(SphereDeflector); classes.push(WrappingCube); classes.push(Emitter3D); classes.push(RadialField3D); classes.push(UniformField3D); classes.push(DisplayObjectClass3D); classes.push(Omega3D); classes.push(Position3D); classes.push(Rotation3D); classes.push(Velocity3D); classes.push(DisplayObjectRenderer3D); classes.push(CubeZone); classes.push(DiskZone); classes.push(SinglePoint3D); classes.push(SphereCap); classes.push(SphereShell); classes.push(SphereSurface); classes.push(SphereZone); } public static function getInstance():ThreeDClassPackage{ if (!_instance){ _instance = new (ThreeDClassPackage); }; return (_instance); } } }//package idv.cjcat.stardust.threeD
Section 164
//ActionTrigger2D (idv.cjcat.stardust.twoD.actions.triggers.ActionTrigger2D) package idv.cjcat.stardust.twoD.actions.triggers { import idv.cjcat.stardust.twoD.actions.*; import idv.cjcat.stardust.common.actions.triggers.*; public class ActionTrigger2D extends ActionTrigger { public function ActionTrigger2D(){ _supports3D = false; priority = Action2DPriority.getInstance().getPriority((Object(this).constructor as Class)); } override public function getXMLTagName():String{ return ("ActionTrigger2D"); } } }//package idv.cjcat.stardust.twoD.actions.triggers
Section 165
//ZoneTrigger (idv.cjcat.stardust.twoD.actions.triggers.ZoneTrigger) package idv.cjcat.stardust.twoD.actions.triggers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.twoD.zones.*; public class ZoneTrigger extends ActionTrigger2D { private var _zone:Zone; public function ZoneTrigger(_arg1:Zone=null){ this.zone = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); zone = (_arg2.getElementByName(_arg1.@zone) as Zone); } override public function getXMLTagName():String{ return ("ZoneTrigger"); } override public function testTrigger(_arg1:Emitter, _arg2:Particle, _arg3:Number):Boolean{ var _local4:Particle2D = (_arg2 as Particle2D); return (_zone.contains(_local4.x, _local4.y)); } public function set zone(_arg1:Zone):void{ if (!_arg1){ _arg1 = new SinglePoint(0, 0); }; _zone = _arg1; } public function get zone():Zone{ return (_zone); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@zone = _zone.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_zone]); } } }//package idv.cjcat.stardust.twoD.actions.triggers
Section 166
//Accelerate (idv.cjcat.stardust.twoD.actions.Accelerate) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Accelerate extends Action2D { public var acceleration:Number; public function Accelerate(_arg1:Number=0.1){ this.acceleration = _arg1; } override public function getXMLTagName():String{ return ("Accelerate"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); acceleration = parseFloat(_arg1.@acceleration); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local5:Vec2D; var _local4:Particle2D = (_arg2 as Particle2D); _local5 = Vec2DPool.get(_local4.vx, _local4.vy); if (_local5.length > 0){ _local5.length = (_local5.length + (acceleration * _arg3)); _local4.vx = _local5.x; _local4.vy = _local5.y; }; Vec2DPool.recycle(_local5); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@acceleration = acceleration; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 167
//Action2D (idv.cjcat.stardust.twoD.actions.Action2D) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.actions.*; public class Action2D extends Action { public function Action2D(){ _supports3D = false; priority = Action2DPriority.getInstance().getPriority((Object(this).constructor as Class)); } override public function getXMLTagName():String{ return ("Action2D"); } } }//package idv.cjcat.stardust.twoD.actions
Section 168
//Action2DPriority (idv.cjcat.stardust.twoD.actions.Action2DPriority) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.actions.*; import idv.cjcat.stardust.twoD.actions.triggers.*; public class Action2DPriority extends ActionPriority { private static var _instance:Action2DPriority; final override protected function populatePriorities():void{ priorities[Damping] = -1; priorities[DeathZone] = -1; priorities[Gravity] = -2; priorities[MutualGravity] = -2; priorities[VelocityField] = -3; priorities[Move] = -4; priorities[Spin] = -4; priorities[Deflect] = -5; priorities[Collide] = -6; priorities[DeathZone] = -6; priorities[Oriented] = -6; priorities[ZoneTrigger] = -6; } public static function getInstance():Action2DPriority{ if (!_instance){ _instance = new (Action2DPriority); }; return (_instance); } } }//package idv.cjcat.stardust.twoD.actions
Section 169
//Collide (idv.cjcat.stardust.twoD.actions.Collide) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.*; public class Collide extends MutualAction { public function Collide(){ maxDistance = 0; } override public function preUpdate(_arg1:Emitter, _arg2:Number):void{ var _local6:Particle; var _local3:Array = _arg1.sd::particles; if (_local3.length <= 1){ return; }; var _local4:Number = 0; var _local5:Number = 0; for each (_local6 in _local3) { if (_local6.collisionRadius > _local4){ _local5 = _local4; _local4 = (_local6.collisionRadius * _local6.scale); } else { if (_local6.collisionRadius > _local5){ _local5 = (_local6.collisionRadius * _local6.scale); }; }; }; maxDistance = (_local4 + _local5); } override protected function doMutualAction(_arg1:Particle2D, _arg2:Particle2D, _arg3:Number):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Vec2D; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Vec2D; var _local17:Vec2D; var _local18:Vec2D; var _local19:Vec2D; var _local20:Vec2D; var _local21:Number; if ((_arg1.mask & _arg2.mask)){ _local4 = (_arg1.x - _arg2.x); _local5 = (_arg1.y - _arg2.y); _local6 = (_arg1.collisionRadius * _arg1.scale); _local7 = (_arg2.collisionRadius * _arg2.scale); _local8 = (_local6 + _local7); if (((_local4 * _local4) + (_local5 * _local5)) > (_local8 * _local8)){ return; }; _local9 = Vec2DPool.get(_local4, _local5); _local10 = (1 / _local8); _local11 = (((_arg1.x * _local7) + (_arg2.x * _local6)) * _local10); _local12 = (((_arg1.y * _local7) + (_arg2.y * _local6)) * _local10); _local9.length = _local6; _arg1.x = (_local11 + _local9.x); _arg1.y = (_local12 + _local9.y); _local9.length = _local7; _arg2.x = (_local11 - _local9.x); _arg2.y = (_local12 - _local9.y); _local13 = (_arg1.mass * _arg1.scale); _local14 = (_arg2.mass * _arg2.scale); _local15 = (1 / (_local13 + _local14)); _local16 = Vec2DPool.get(_arg1.vx, _arg1.vy); _local17 = Vec2DPool.get(_arg2.vx, _arg2.vy); _local16.projectThis(_local9); _local17.projectThis(_local9); _local18 = Vec2DPool.get((_arg1.vx - _local16.x), (_arg1.vy - _local16.y)); _local19 = Vec2DPool.get((_arg2.vx - _local17.x), (_arg2.vy - _local17.y)); _local20 = Vec2DPool.get((_local16.x - _local17.x), (_local16.y - _local17.y)); _local21 = (_local13 - _local14); _local16.x = (((_local21 * _local16.x) + ((2 * _local14) * _local17.x)) * _local15); _local16.y = (((_local21 * _local16.y) + ((2 * _local14) * _local17.y)) * _local15); _local17.x = (_local20.x + _local16.x); _local17.y = (_local20.y + _local16.y); _arg1.vx = (_local16.x + _local18.x); _arg1.vy = (_local16.y + _local18.y); _arg2.vx = (_local17.x + _local19.x); _arg2.vy = (_local17.y + _local19.y); Vec2DPool.recycle(_local9); Vec2DPool.recycle(_local16); Vec2DPool.recycle(_local17); Vec2DPool.recycle(_local18); Vec2DPool.recycle(_local19); Vec2DPool.recycle(_local20); }; } override public function getXMLTagName():String{ return ("Collide"); } } }//package idv.cjcat.stardust.twoD.actions
Section 170
//Damping (idv.cjcat.stardust.twoD.actions.Damping) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Damping extends Action2D { public var damping:Number; public function Damping(_arg1:Number=0){ this.damping = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); damping = parseFloat(_arg1.@damping); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D = (_arg2 as Particle2D); var _local5:Number = 1; var _local6:Number = 1; if (damping != 0){ _local6 = Math.pow((1 - damping), _arg3); }; _local4.vx = (_local4.vx * _local6); _local4.vy = (_local4.vy * _local6); } override public function getXMLTagName():String{ return ("Damping"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@damping = damping; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 171
//DeathZone (idv.cjcat.stardust.twoD.actions.DeathZone) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.twoD.zones.*; public class DeathZone extends Action2D { public var inverted:Boolean; public var zone:Zone; public function DeathZone(_arg1:Zone=null, _arg2:Boolean=false){ this.zone = _arg1; this.inverted = _arg2; } override public function getXMLTagName():String{ return ("DeathZone"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); if (_arg1.@zone == "null"){ zone = null; } else { zone = (_arg2.getElementByName(_arg1.@zone) as Zone); }; inverted = (_arg1.@inverted == "true"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (!zone){ return; }; var _local4:Particle2D = (_arg2 as Particle2D); var _local5 = !(zone.contains(_local4.x, _local4.y)); if (inverted){ _local5 = !(_local5); }; if (!_local5){ _arg2.isDead = true; }; } override public function toXML():XML{ var _local1:XML = super.toXML(); if (!zone){ _local1.@zone = "null"; } else { _local1.@zone = zone.name; }; _local1.@inverted = inverted; return (_local1); } override public function getRelatedObjects():Array{ if (!zone){ return ([]); }; return ([zone]); } } }//package idv.cjcat.stardust.twoD.actions
Section 172
//Deflect (idv.cjcat.stardust.twoD.actions.Deflect) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.twoD.deflectors.*; import idv.cjcat.stardust.*; public class Deflect extends Action2D { sd var deflectors:Array; public function Deflect(){ deflectors = []; } override public function toXML():XML{ var _local2:Deflector; var _local1:XML = super.toXML(); if (deflectors.length > 0){ _local1.appendChild(<deflectors/> ); for each (_local2 in deflectors) { _local1.deflectors.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function getXMLTagName():String{ return ("Deflect"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local5:Deflector; var _local6:MotionData4D; var _local4:Particle2D = (_arg2 as Particle2D); for each (_local5 in deflectors) { _local6 = _local5.getMotionData4D(_local4); _local4.x = _local6.x; _local4.y = _local6.y; _local4.vx = _local6.vx; _local4.vy = _local6.vy; MotionData4DPool.recycle(_local6); }; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); clearDeflectors(); for each (_local3 in _arg1.deflectors.*) { addDeflector((_arg2.getElementByName(_local3.@name) as Deflector)); }; } public function removeDeflector(_arg1:Deflector):void{ var _local2:int = deflectors.indexOf(_arg1); if (_local2 >= 0){ deflectors.splice(_local2, 1); }; } public function addDeflector(_arg1:Deflector):void{ if (deflectors.indexOf(_arg1) < 0){ deflectors.push(_arg1); }; } public function clearDeflectors():void{ deflectors = []; } override public function getRelatedObjects():Array{ return (deflectors); } } }//package idv.cjcat.stardust.twoD.actions
Section 173
//Explode (idv.cjcat.stardust.twoD.actions.Explode) package idv.cjcat.stardust.twoD.actions { import flash.events.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Explode extends Action2D { public var maxDistance:Number; public var strength:Number; private var _discharged:Boolean; private var _currentOuterRadius:Number; public var epsilon:Number; private var _currentInnerRadius:Number; public var growSpeed:Number; public var x:Number; public var y:Number; public var attenuationPower:Number; public function Explode(_arg1:Number=0, _arg2:Number=0, _arg3:Number=5, _arg4:Number=40, _arg5:Number=200, _arg6:Number=0.1, _arg7:Number=1){ this.x = _arg1; this.y = _arg2; this.strength = _arg3; this.growSpeed = _arg4; this.maxDistance = _arg5; this.attenuationPower = _arg6; this.epsilon = _arg7; _discharged = true; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (_discharged){ return; }; var _local4:Particle2D = (_arg2 as Particle2D); var _local5:Vec2D = Vec2DPool.get((_local4.x - x), (_local4.y - y)); var _local6:Number = _local5.length; if (_local6 < epsilon){ _local6 = epsilon; }; if ((((_local6 >= _currentInnerRadius)) && ((_local6 < _currentOuterRadius)))){ _local5.length = (strength * Math.pow(_local6, -(attenuationPower))); _local4.vx = (_local4.vx + (_local5.x * _arg3)); _local4.vy = (_local4.vy + (_local5.y * _arg3)); }; Vec2DPool.recycle(_local5); } override public function postUpdate(_arg1:Emitter, _arg2:Number):void{ if (_discharged){ return; }; _currentInnerRadius = (_currentInnerRadius + growSpeed); _currentOuterRadius = (_currentOuterRadius + growSpeed); if (_currentInnerRadius > maxDistance){ _discharged = true; }; } public function explode(_arg1:Event=null):void{ _discharged = false; _currentInnerRadius = 0; _currentOuterRadius = growSpeed; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@strength = strength; _local1.@growSpeed = growSpeed; _local1.@maxDistance = maxDistance; _local1.@attenuationPower = attenuationPower; _local1.@epsilon = epsilon; return (_local1); } override public function getXMLTagName():String{ return ("Explode"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); strength = parseFloat(_arg1.@strength); growSpeed = parseFloat(_arg1.@growSpeed); maxDistance = parseFloat(_arg1.@maxDistance); attenuationPower = parseFloat(_arg1.@attenuationPower); epsilon = parseFloat(_arg1.@epsilon); } } }//package idv.cjcat.stardust.twoD.actions
Section 174
//Gravity (idv.cjcat.stardust.twoD.actions.Gravity) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.twoD.fields.*; import idv.cjcat.stardust.*; public class Gravity extends Action2D { sd var fields:Array; public function Gravity(){ fields = []; } public function addField(_arg1:Field):void{ if (fields.indexOf(_arg1) < 0){ fields.push(_arg1); }; } override public function toXML():XML{ var _local2:Field; var _local1:XML = super.toXML(); if (fields.length > 0){ _local1.appendChild(<fields/> ); for each (_local2 in fields) { _local1.fields.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); clearFields(); for each (_local3 in _arg1.fields.*) { addField((_arg2.getElementByName(_local3.@name) as Field)); }; } public function clearFields():void{ fields = []; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local5:Field; var _local6:MotionData2D; var _local4:Particle2D = (_arg2 as Particle2D); for each (_local5 in fields) { _local6 = _local5.getMotionData2D(_local4); _local4.vx = (_local4.vx + (_local6.x * _arg3)); _local4.vy = (_local4.vy + (_local6.y * _arg3)); MotionData2DPool.recycle(_local6); }; } override public function getXMLTagName():String{ return ("Gravity"); } public function removeField(_arg1:Field):void{ var _local2:int = fields.indexOf(_arg1); if (_local2 >= 0){ fields.splice(_local2, 1); }; } override public function getRelatedObjects():Array{ return (fields); } } }//package idv.cjcat.stardust.twoD.actions
Section 175
//Impulse (idv.cjcat.stardust.twoD.actions.Impulse) package idv.cjcat.stardust.twoD.actions { import flash.events.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.twoD.fields.*; public class Impulse extends Action2D { private var _discharged:Boolean; private var _field:Field; public function Impulse(_arg1:Field=null){ this.field = _arg1; _discharged = true; } override public function getXMLTagName():String{ return ("Impulse"); } override public function postUpdate(_arg1:Emitter, _arg2:Number):void{ _discharged = true; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); field = (_arg2.getElementByName(_arg1.@field) as Field); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if (_discharged){ return; }; var _local4:Particle2D = (_arg2 as Particle2D); var _local5:MotionData2D = field.getMotionData2D(_local4); _local4.vx = (_local4.vx + (_local5.x * _arg3)); _local4.vy = (_local4.vy + (_local5.y * _arg3)); MotionData2DPool.recycle(_local5); } public function set field(_arg1:Field):void{ if (!_arg1){ _arg1 = new UniformField(0, 0); }; _field = _arg1; } public function impulse(_arg1:Event=null):void{ _discharged = false; } public function get field():Field{ return (_field); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@field = field.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_field]); } } }//package idv.cjcat.stardust.twoD.actions
Section 176
//LazyAction (idv.cjcat.stardust.twoD.actions.LazyAction) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.actions.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.deflectors.*; import idv.cjcat.stardust.twoD.fields.*; import idv.cjcat.stardust.common.actions.triggers.*; import idv.cjcat.stardust.*; import idv.cjcat.stardust.common.easing.*; public class LazyAction extends CompositeAction { private var _oriented:Oriented; private var _gravity:Gravity; private var _deathLife:DeathLife; private var _collide:Collide; private var _spin:Spin; private var _age:Age; private var _speedLimit:SpeedLimit; private var _scaleCurve:ScaleCurve; private var _accelerate:Accelerate; private var _deathTrigger:DeathTrigger; private var _stardustSpriteUpdateAction:StardustSpriteUpdate; private var _move:Move; private var _damping:Damping; private var _alphaCurve:AlphaCurve; private var additionalActions:ActionCollection; private var _deflect:Deflect; public function LazyAction(){ additionalActions = new ActionCollection(); super(); _age = new Age(); _deathLife = new DeathLife(); _move = new Move(); _spin = new Spin(); _oriented = new Oriented(1, 90); _oriented.active = false; _stardustSpriteUpdateAction = new StardustSpriteUpdate(); _stardustSpriteUpdateAction.active = false; _deathTrigger = new DeathTrigger(); superAddAction(_age); superAddAction(_deathLife); superAddAction(_move); superAddAction(_spin); superAddAction(_oriented); superAddAction(_stardustSpriteUpdateAction); superAddAction(_deathTrigger); _collide = new Collide(); _speedLimit = new SpeedLimit(25); _deflect = new Deflect(); _gravity = new Gravity(); _damping = new Damping(); _accelerate = new Accelerate(0); _collide.active = false; superAddAction(_collide); superAddAction(_speedLimit); superAddAction(_deflect); superAddAction(_damping); superAddAction(_gravity); superAddAction(_accelerate); _scaleCurve = new ScaleCurve(0, 0); _alphaCurve = new AlphaCurve(0, 0); superAddAction(_scaleCurve); superAddAction(_alphaCurve); } public function set acceleration(_arg1:Number):void{ _accelerate.acceleration = _arg1; } public function get damping():Number{ return (_damping.damping); } public function set damping(_arg1:Number):void{ _damping.damping = _arg1; } public function get outScaleLifespan():Number{ return (_scaleCurve.outLifespan); } public function set outScaleLifespan(_arg1:Number):void{ _scaleCurve.outLifespan = _arg1; } public function set orientationOffset(_arg1:Number):void{ _oriented.offset = _arg1; } public function get stardustSpriteUpdate():Boolean{ return (_stardustSpriteUpdateAction.active); } public function set outScaleFunctionExtraParams(_arg1:Array):void{ _scaleCurve.outFunctionExtraParams = _arg1; } public function set inScaleLifespan(_arg1:Number):void{ _scaleCurve.inLifespan = _arg1; } public function get inScaleFunction():Function{ return (_scaleCurve.inFunction); } public function get ageMultiplier():Number{ return (_age.multiplier); } public function set stardustSpriteUpdate(_arg1:Boolean):void{ _stardustSpriteUpdateAction.active = _arg1; } public function get inScale():Number{ return (_scaleCurve.inScale); } public function set outScaleFunction(_arg1:Function):void{ _scaleCurve.outFunction = _arg1; } override public function getXMLTagName():String{ return ("LazyAction"); } public function set outAlphaLifespan(_arg1:Number):void{ _alphaCurve.outLifespan = _arg1; } public function get outAlphaLifespan():Number{ return (_alphaCurve.outLifespan); } public function get inAlphaFunction():Function{ return (_alphaCurve.inFunction); } public function get collision():Boolean{ return (_collide.active); } override public function addAction(_arg1:Action):void{ super.addAction(_arg1); additionalActions.addAction(_arg1); } public function set outScale(_arg1:Number):void{ _scaleCurve.outScale = _arg1; } public function get inAlpha():Number{ return (_alphaCurve.inAlpha); } public function set inScaleFunction(_arg1:Function):void{ _scaleCurve.inFunction = _arg1; } public function set inAlphaLifespan(_arg1:Number):void{ _alphaCurve.inLifespan = _arg1; } public function get orientationFactor():Number{ return (_oriented.factor); } public function set spinMultiplier(_arg1:Number):void{ _spin.multiplier = _arg1; } public function set ageMultiplier(_arg1:Number):void{ _age.multiplier = _arg1; } public function set oriented(_arg1:Boolean):void{ _oriented.active = _arg1; } public function set inScale(_arg1:Number):void{ _scaleCurve.inScale = _arg1; } public function get gravity():Gravity{ return (_gravity); } public function set outAlphaFunction(_arg1:Function):void{ _alphaCurve.outFunction = _arg1; } public function get inScaleFunctionExtraParams():Array{ return (_scaleCurve.inFunctionExtraParams); } override public function getRelatedObjects():Array{ return (deathTrigger.sd::actions.sd::actions.concat(additionalActions.sd::actions)); } public function get deflectors():Deflect{ return (_deflect); } public function set inAlphaFunction(_arg1:Function):void{ _alphaCurve.inFunction = _arg1; } public function set outAlpha(_arg1:Number):void{ _alphaCurve.outAlpha = _arg1; } public function set speedLimit(_arg1:Number):void{ _speedLimit.limit = _arg1; } public function set collision(_arg1:Boolean):void{ _collide.active = _arg1; } public function get moveMultiplier():Number{ return (_move.multiplier); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; name = _arg1.@name; active = (_arg1.@active == "true"); mask = parseInt(_arg1.@mask); ageMultiplier = parseFloat(_arg1.@ageMultiplier); moveMultiplier = parseFloat(_arg1.@moveMultiplier); spinMultiplier = parseFloat(_arg1.@spinMultiplier); oriented = (_arg1.@oriented == "true"); orientationFactor = parseFloat(_arg1.@orientationFactor); orientationOffset = parseFloat(_arg1.@orientationOffset); undead = (_arg1.@undead == "true"); stardustSpriteUpdate = (_arg1.@stardustSpriteUpdate == "true"); _deathTrigger.clearActions(); for each (_local3 in _arg1.deathTriggerActions.*) { _deathTrigger.addAction((_arg2.getElementByName(_local3.@name) as Action)); }; additionalActions.clearActions(); for each (_local3 in _arg1.actions.*) { addAction((_arg2.getElementByName(_local3.@name) as Action)); }; collision = (_arg1.@collision == "true"); speedLimit = parseFloat(_arg1.@speedLimit); damping = parseFloat(_arg1.@damping); acceleration = parseFloat(_arg1.@acceleration); deflectors.clearDeflectors(); for each (_local3 in _arg1.deflectors.*) { deflectors.addDeflector((_arg2.getElementByName(_local3.@name) as Deflector)); }; gravity.clearFields(); for each (_local3 in _arg1.gravityFields.*) { gravity.addField((_arg2.getElementByName(_local3.@name) as Field)); }; inScale = parseFloat(_arg1.@inScale); outScale = parseFloat(_arg1.@outScale); inScaleLifespan = parseFloat(_arg1.@inScaleLifespan); outScaleLifespan = parseFloat(_arg1.@outScaleLifespan); inScaleFunction = EasingFunctionType.functions[_arg1.@inScaleFunction.toString()]; outScaleFunction = EasingFunctionType.functions[_arg1.@outScaleFunction.toString()]; inAlpha = parseFloat(_arg1.@inAlpha); outAlpha = parseFloat(_arg1.@outAlpha); inAlphaLifespan = parseFloat(_arg1.@inAlphaLifespan); outAlphaLifespan = parseFloat(_arg1.@outAlphaLifespan); inAlphaFunction = EasingFunctionType.functions[_arg1.@inAlphaFunction.toString()]; outAlphaFunction = EasingFunctionType.functions[_arg1.@outAlphaFunction.toString()]; } public function set inAlpha(_arg1:Number):void{ _alphaCurve.inAlpha = _arg1; } public function get undead():Boolean{ return (!(_deathLife.active)); } public function set orientationFactor(_arg1:Number):void{ _oriented.factor = _arg1; } public function get outScaleFunctionExtraParams():Array{ return (_scaleCurve.outFunctionExtraParams); } public function get orientationOffset():Number{ return (_oriented.offset); } public function get inScaleLifespan():Number{ return (_scaleCurve.inLifespan); } public function get acceleration():Number{ return (_accelerate.acceleration); } public function set inAlphaFunctionExtraParams(_arg1:Array):void{ _alphaCurve.inFunctionExtraParams = _arg1; } public function get outScaleFunction():Function{ return (_scaleCurve.outFunction); } public function get outScale():Number{ return (_scaleCurve.outScale); } public function get inAlphaLifespan():Number{ return (_alphaCurve.inLifespan); } public function get spinMultiplier():Number{ return (_spin.multiplier); } public function get oriented():Boolean{ return (_oriented.active); } public function get outAlphaFunction():Function{ return (_alphaCurve.outFunction); } public function get deathTrigger():DeathTrigger{ return (_deathTrigger); } public function set inScaleFunctionExtraParams(_arg1:Array):void{ _scaleCurve.inFunctionExtraParams = _arg1; } public function get speedLimit():Number{ return (_speedLimit.limit); } public function get outAlpha():Number{ return (_alphaCurve.outAlpha); } override public function toXML():XML{ var _local2:Action; var _local3:Deflector; var _local4:Field; var _local1:XML = super.toXML(); delete _local1.actions; _local1.@ageMultiplier = ageMultiplier; _local1.@moveMultiplier = moveMultiplier; _local1.@spinMultiplier = spinMultiplier; _local1.@oriented = oriented; _local1.@orientationFactor = orientationFactor; _local1.@orientationOffset = orientationOffset; _local1.@undead = undead; _local1.@stardustSpriteUpdate = stardustSpriteUpdate; if (deathTrigger.sd::actions.sd::actions.length > 0){ _local1.appendChild(<deathTriggerActions/> ); for each (_local2 in deathTrigger.sd::actions.sd::actions) { _local1.deathTriggerActions.appendChild(_local2.getXMLTag()); }; }; if (additionalActions.sd::actions.length > 0){ _local1.appendChild(<actions/> ); for each (_local2 in additionalActions.sd::actions) { _local1.actions.appendChild(_local2.getXMLTag()); }; }; _local1.@collision = collision; _local1.@speedLimit = speedLimit; _local1.@damping = damping; _local1.@acceleration = acceleration; if (deflectors.sd::deflectors.length > 0){ _local1.appendChild(<deflectors/> ); for each (_local3 in deflectors.sd::deflectors) { _local1.deflectors.appendChild(_local3.getXMLTag()); }; }; if (gravity.sd::fields.length > 0){ _local1.appendChild(<gravityFields/> ); for each (_local4 in gravity.sd::fields) { _local1.gravityFields.appendChild(_local4.getXMLTag()); }; }; _local1.@inScale = inScale; _local1.@outScale = outScale; _local1.@inScaleLifespan = inScaleLifespan; _local1.@outScaleLifespan = outScaleLifespan; _local1.@inScaleFunction = EasingFunctionType.functions[inScaleFunction]; _local1.@outScaleFunction = EasingFunctionType.functions[outScaleFunction]; _local1.@inAlpha = inAlpha; _local1.@outAlpha = outAlpha; _local1.@inAlphaLifespan = inAlphaLifespan; _local1.@outAlphaLifespan = outAlphaLifespan; _local1.@inAlphaFunction = EasingFunctionType.functions[inAlphaFunction]; _local1.@outAlphaFunction = EasingFunctionType.functions[outAlphaFunction]; return (_local1); } public function get inAlphaFunctionExtraParams():Array{ return (_alphaCurve.inFunctionExtraParams); } override public function set mask(_arg1:int):void{ super.mask = (_move.mask = (_spin.mask = (_oriented.mask = (_deathLife.mask = (_stardustSpriteUpdateAction.mask = (_deathTrigger.mask = (_collide.mask = (_speedLimit.mask = (_deflect.mask = (_damping.mask = (_gravity.mask = (_accelerate.mask = (_scaleCurve.mask = (_alphaCurve.mask = _arg1)))))))))))))); } override public function removeAction(_arg1:Action):void{ super.removeAction(_arg1); additionalActions.removeAction(_arg1); } public function set outAlphaFunctionExtraParams(_arg1:Array):void{ _alphaCurve.outFunctionExtraParams = _arg1; } public function set moveMultiplier(_arg1:Number):void{ _move.multiplier = _arg1; } override public function get mask():int{ return (super.mask); } public function get outAlphaFunctionExtraParams():Array{ return (_alphaCurve.outFunctionExtraParams); } public function set undead(_arg1:Boolean):void{ _deathLife.active = !(_arg1); } protected function superAddAction(_arg1:Action):void{ super.addAction(_arg1); } override public function clearActions():void{ super.clearActions(); additionalActions.clearActions(); } } }//package idv.cjcat.stardust.twoD.actions
Section 177
//Move (idv.cjcat.stardust.twoD.actions.Move) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Move extends Action2D { public var multiplier:Number; public function Move(_arg1:Number=1){ this.multiplier = _arg1; } override public function getXMLTagName():String{ return ("Move"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); multiplier = parseFloat(_arg1.@multiplier); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D = (_arg2 as Particle2D); var _local5:Number = (_arg3 * multiplier); _local4.x = (_local4.x + (_local4.vx * _local5)); _local4.y = (_local4.y + (_local4.vy * _local5)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@multiplier = multiplier; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 178
//MutualAction (idv.cjcat.stardust.twoD.actions.MutualAction) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.*; public class MutualAction extends Action2D { public var maxDistance:Number; override public function getXMLTagName():String{ return ("MutualAction"); } protected function doMutualAction(_arg1:Particle2D, _arg2:Particle2D, _arg3:Number):void{ } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); maxDistance = parseFloat(_arg1.@maxDistance); } final override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local7:Number; var _local8:Number; var _local4:Array = _arg1.sd::particles; var _local5:int = _arg2.sortedIndex; var _local6:int = (_local5 + 1); while (_local6 < _local4.length) { _local7 = (_local4[_local6].x - _local4[_local5].x); if (_local7 <= maxDistance){ _local8 = (_local4[_local6].y - _local4[_local5].y); if (_local8 <= maxDistance){ doMutualAction((_local4[_local6] as Particle2D), (_local4[_local5] as Particle2D), _arg3); }; } else { break; }; _local6++; }; } final override public function get needsSortedParticles():Boolean{ return (active); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@maxDistance = maxDistance; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 179
//MutualGravity (idv.cjcat.stardust.twoD.actions.MutualGravity) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class MutualGravity extends MutualAction { public var strength:Number; public var epsilon:Number; public var massless:Boolean; public var attenuationPower:Number; public function MutualGravity(_arg1:Number=1, _arg2:Number=100, _arg3:Number=1){ this.strength = _arg1; this.maxDistance = _arg2; this.epsilon = 1; this.attenuationPower = _arg3; this.massless = true; } override public function getXMLTagName():String{ return ("MutualGravity"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); strength = parseFloat(_arg1.@strength); epsilon = parseFloat(_arg1.@epsilon); attenuationPower = parseFloat(_arg1.@attenuationPower); massless = (_arg1.@massless == "true"); } override protected function doMutualAction(_arg1:Particle2D, _arg2:Particle2D, _arg3:Number):void{ var _local8:Number; var _local4:Number = (_arg1.x - _arg2.x); var _local5:Number = (_arg1.y - _arg2.y); var _local6:Number = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local6 < epsilon){ _local6 = epsilon; }; var _local7:Vec2D = Vec2DPool.get(_local4, _local5); if (massless){ _local7.length = (strength * Math.pow(_local6, -(attenuationPower))); _arg2.vx = (_arg2.vx + (_local7.x * _arg3)); _arg2.vy = (_arg2.vy + (_local7.y * _arg3)); _arg1.vx = (_arg1.vx - (_local7.x * _arg3)); _arg1.vy = (_arg1.vy - (_local7.y * _arg3)); } else { _local8 = (((strength * _arg1.mass) * _arg2.mass) * Math.pow(_local6, -(attenuationPower))); _local7.length = (_local8 / _arg2.mass); _arg2.vx = (_arg2.vx + (_local7.x * _arg3)); _arg2.vy = (_arg2.vy + (_local7.y * _arg3)); _local7.length = (_local8 / _arg1.mass); _arg1.vx = (_arg1.vx - (_local7.x * _arg3)); _arg1.vy = (_arg1.vy - (_local7.y * _arg3)); }; Vec2DPool.recycle(_local7); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@strength = strength; _local1.@epsilon = epsilon; _local1.@attenuationPower = attenuationPower; _local1.@massless = massless; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 180
//NormalDrift (idv.cjcat.stardust.twoD.actions.NormalDrift) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; public class NormalDrift extends Action2D { private var _random:Random; public var max:Number; public var massless:Boolean; public function NormalDrift(_arg1:Number=0.2, _arg2:Random=null){ this.massless = true; this.max = _arg1; this.random = _arg2; } public function get random():Random{ return (_random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _random = _arg1; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D = (_arg2 as Particle2D); var _local5:Vec2D = Vec2DPool.get(_local4.vy, _local4.vx); random.setRange(-(max), max); _local5.length = random.random(); if (!massless){ _local5.length = (_local5.length / _local4.mass); }; _local4.vx = (_local4.vx + (_local5.x * _arg3)); _local4.vy = (_local4.vy + (_local5.y * _arg3)); Vec2DPool.recycle(_local5); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); massless = (_arg1.@massless == "true"); max = parseFloat(_arg1.@max); random = (_arg2.getElementByName(_arg1.@random) as Random); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@massless = massless; _local1.@max = max; _local1.@random = _random.name; return (_local1); } override public function getXMLTagName():String{ return ("NormalDrift"); } override public function getRelatedObjects():Array{ return ([_random]); } } }//package idv.cjcat.stardust.twoD.actions
Section 181
//Oriented (idv.cjcat.stardust.twoD.actions.Oriented) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; public class Oriented extends Action2D { public var offset:Number; public var factor:Number; public function Oriented(_arg1:Number=1, _arg2:Number=0){ this.factor = _arg1; this.offset = _arg2; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); factor = parseFloat(_arg1.@factor); offset = parseFloat(_arg1.@offset); } override public function getXMLTagName():String{ return ("Oriented"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D = (_arg2 as Particle2D); var _local5:Number = ((((Math.atan2(_local4.vy, _local4.vx) * StardustMath.RADIAN_TO_DEGREE) + offset) + 90) - _local4.rotation); _local4.rotation = (_local4.rotation + ((factor / _arg3) * _local5)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@factor = factor; _local1.@offset = offset; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 182
//RandomDrift (idv.cjcat.stardust.twoD.actions.RandomDrift) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; public class RandomDrift extends Action2D { public var massless:Boolean; public var maxX:Number; private var _randomX:Random; private var _randomY:Random; public var maxY:Number; public function RandomDrift(_arg1:Number=0.2, _arg2:Number=0.2, _arg3:Random=null, _arg4:Random=null){ this.massless = true; this.maxX = _arg1; this.maxY = _arg2; this.randomX = _arg3; this.randomY = _arg4; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@massless = massless; _local1.@maxX = maxX; _local1.@maxY = maxY; _local1.@randomX = _randomX.name; _local1.@randomY = _randomY.name; return (_local1); } override public function getXMLTagName():String{ return ("RandomDrift"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); massless = (_arg1.@massless == "true"); maxX = parseFloat(_arg1.@maxX); maxY = parseFloat(_arg1.@maxY); randomX = (_arg2.getElementByName(_arg1.@randomX) as Random); randomY = (_arg2.getElementByName(_arg1.@randomY) as Random); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local7:Number; var _local4:Particle2D = (_arg2 as Particle2D); randomX.setRange(-(maxX), maxX); randomY.setRange(-(maxY), maxY); var _local5:Number = randomX.random(); var _local6:Number = randomY.random(); if (!massless){ _local7 = (1 / _local4.mask); _local5 = (_local5 * _local7); _local6 = (_local6 * _local7); }; _local4.vx = (_local4.vx + (_local5 * _arg3)); _local4.vy = (_local4.vy + (_local6 * _arg3)); } public function set randomX(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomX = _arg1; } public function get randomX():Random{ return (_randomX); } public function set randomY(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomY = _arg1; } public function get randomY():Random{ return (_randomY); } override public function getRelatedObjects():Array{ return ([_randomX, _randomY]); } } }//package idv.cjcat.stardust.twoD.actions
Section 183
//ReorderDisplayObject (idv.cjcat.stardust.twoD.actions.ReorderDisplayObject) package idv.cjcat.stardust.twoD.actions { import flash.display.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.twoD.display.*; public class ReorderDisplayObject extends Action2D { public var addChildMode:int; public function ReorderDisplayObject(_arg1:int=0){ this.addChildMode = _arg1; } override public function getXMLTagName():String{ return ("ReorderDisplayObject"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); addChildMode = parseInt(_arg1.@addChildMode); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D = (_arg2 as Particle2D); var _local5:DisplayObject = (_local4.target as DisplayObject); var _local6:DisplayObjectContainer = (_local5.parent as DisplayObjectContainer); switch (addChildMode){ case AddChildMode.TOP: _local6.addChild(_local5); break; case AddChildMode.BOTTOM: _local6.addChildAt(_local5, 0); break; default: _local6.addChildAt(_local5, Math.floor((Math.random() * _local6.numChildren))); break; }; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@addChildMode = addChildMode; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 184
//Spawn (idv.cjcat.stardust.twoD.actions.Spawn) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.*; public class Spawn extends Action2D implements InitializerCollector { public var inheritDirection:Boolean; private var _factory:Particle2DFactory; private var _countRandom:Random; public var inheritVelocity:Boolean; public function Spawn(_arg1:Random=null, _arg2:Boolean=true, _arg3:Boolean=false){ this.inheritDirection = _arg2; this.inheritVelocity = _arg3; this.countRandom = _arg1; _factory = new Particle2DFactory(); } public function addInitializer(_arg1:Initializer):void{ _factory.addInitializer(_arg1); } override public function toXML():XML{ var _local2:Initializer; var _local1:XML = super.toXML(); _local1.@inheritDirection = inheritDirection; _local1.@inheritVelocity = inheritVelocity; _local1.@countRandom = _countRandom.name; if (_factory.sd::initializerCollection.sd::initializers.length > 0){ _local1.appendChild(<initializers/> ); for each (_local2 in _factory.sd::initializerCollection.sd::initializers) { _local1.initializers.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local6:Particle2D; var _local7:Vec2D; var _local4:Particle2D = (_arg2 as Particle2D); var _local5:Array = _factory.createParticles(StardustMath.randomFloor((_countRandom.random() * _arg3))); for each (_local6 in _local5) { _local6.x = (_local6.x + _local4.x); _local6.y = (_local6.y + _local4.y); if (inheritVelocity){ _local6.vx = (_local6.vx + _local4.vx); _local6.vy = (_local6.vy + _local4.vy); }; if (inheritDirection){ _local7 = Vec2DPool.get(_local6.vx, _local6.vy); _local7.rotateThis(Math.atan2(_local4.vx, -(_local4.vy)), true); _local6.vx = _local7.x; _local6.vy = _local7.y; Vec2DPool.recycle(_local7); }; }; _arg1.addParticles(_local5); } public function clearInitializers():void{ _factory.clearInitializers(); } override public function getXMLTagName():String{ return ("Spawn"); } public function get countRandom():Random{ return (_countRandom); } public function set countRandom(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _countRandom = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); inheritDirection = (_arg1.@inheritDirection == "true"); inheritVelocity = (_arg1.@inheritVelocity == "true"); countRandom = (_arg2.getElementByName(_arg1.@countRandom) as Random); clearInitializers(); for each (_local3 in _arg1.initializers.*) { addInitializer((_arg2.getElementByName(_local3.@name) as Initializer)); }; } public function removeInitializer(_arg1:Initializer):void{ _factory.removeInitializer(_arg1); } override public function getRelatedObjects():Array{ return ([_countRandom].concat(_factory.sd::initializerCollection.sd::initializers)); } } }//package idv.cjcat.stardust.twoD.actions
Section 185
//SpeedLimit (idv.cjcat.stardust.twoD.actions.SpeedLimit) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class SpeedLimit extends Action2D { public var limit:Number; public function SpeedLimit(_arg1:Number=1.79769313486232E308){ this.limit = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); limit = parseFloat(_arg1.@limit); } override public function getXMLTagName():String{ return ("SpeedLimit"); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local6:Number; var _local4:Particle2D = (_arg2 as Particle2D); var _local5:Number = ((_local4.vx * _local4.vx) + (_local4.vy * _local4.vy)); if (_local5 > (limit * limit)){ _local6 = (limit / Math.sqrt(_local5)); _local4.vx = (_local4.vx * _local6); _local4.vy = (_local4.vy * _local6); }; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@limit = limit; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 186
//Spin (idv.cjcat.stardust.twoD.actions.Spin) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; public class Spin extends Action2D { public var multiplier:Number; public function Spin(_arg1:Number=1){ this.multiplier = _arg1; } override public function getXMLTagName():String{ return ("Spin"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); multiplier = parseFloat(_arg1.@multiplier); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D = (_arg2 as Particle2D); (_arg2 as Particle2D).rotation = (_local4.rotation + ((_local4.omega * _arg3) * multiplier)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@multiplier = multiplier; return (_local1); } } }//package idv.cjcat.stardust.twoD.actions
Section 187
//StardustSpriteUpdate (idv.cjcat.stardust.twoD.actions.StardustSpriteUpdate) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.twoD.display.*; public class StardustSpriteUpdate extends Action2D { override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ if ((_arg2.target is StardustSprite)){ StardustSprite(_arg2.target).update(_arg1, _arg2, _arg3); }; } override public function getXMLTagName():String{ return ("StardustSpriteUpdate"); } } }//package idv.cjcat.stardust.twoD.actions
Section 188
//VelocityField (idv.cjcat.stardust.twoD.actions.VelocityField) package idv.cjcat.stardust.twoD.actions { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.twoD.fields.*; public class VelocityField extends Action2D { public var field:Field; public function VelocityField(_arg1:Field=null){ this.field = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); if (_arg1.@field == "null"){ field = null; } else { field = (_arg2.getElementByName(_arg1.@field) as Field); }; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local5:MotionData2D; if (!field){ return; }; var _local4:Particle2D = (_arg2 as Particle2D); _local5 = field.getMotionData2D(_local4); _local4.vx = _local5.x; _local4.vy = _local5.y; MotionData2DPool.recycle(_local5); } override public function getXMLTagName():String{ return ("VelocityField"); } override public function toXML():XML{ var _local1:XML = super.toXML(); if (!field){ _local1.@field = "null"; } else { _local1.@field = field.name; }; return (_local1); } override public function getRelatedObjects():Array{ if (field != null){ return ([field]); }; return ([]); } } }//package idv.cjcat.stardust.twoD.actions
Section 189
//BoundingBox (idv.cjcat.stardust.twoD.deflectors.BoundingBox) package idv.cjcat.stardust.twoD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class BoundingBox extends Deflector { public var width:Number; public var height:Number; public var x:Number; public var y:Number; public function BoundingBox(_arg1:Number=0, _arg2:Number=0, _arg3:Number=640, _arg4:Number=480){ this.bounce = 1; this.x = _arg1; this.y = _arg2; this.width = _arg3; this.height = _arg4; } override public function getXMLTagName():String{ return ("BoundingBox"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); width = parseFloat(_arg1.@width); height = parseFloat(_arg1.@height); } override protected function calculateMotionData4D(_arg1:Particle2D):MotionData4D{ var _local2:Number = (_arg1.collisionRadius * _arg1.scale); var _local3:Number = (x + _local2); var _local4:Number = ((x + width) - _local2); var _local5:Number = (y + _local2); var _local6:Number = ((y + height) - _local2); var _local7:Number = -(bounce); var _local8:Number = _arg1.x; var _local9:Number = _arg1.y; var _local10:Number = _arg1.vx; var _local11:Number = _arg1.vy; if (_arg1.x <= _local3){ _local8 = _local3; _local10 = (_local10 * _local7); } else { if (_arg1.x >= _local4){ _local8 = _local4; _local10 = (_local10 * _local7); }; }; if (_arg1.y <= _local5){ _local9 = _local5; _local11 = (_local11 * _local7); } else { if (_arg1.y >= _local6){ _local9 = _local6; _local11 = (_local11 * _local7); }; }; return (MotionData4DPool.get(_local8, _local9, _local10, _local11)); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@width = width; _local1.@height = height; return (_local1); } } }//package idv.cjcat.stardust.twoD.deflectors
Section 190
//BoundingCircle (idv.cjcat.stardust.twoD.deflectors.BoundingCircle) package idv.cjcat.stardust.twoD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class BoundingCircle extends Deflector { public var y:Number; public var radius:Number; public var x:Number; public function BoundingCircle(_arg1:Number=0, _arg2:Number=0, _arg3:Number=100){ this.bounce = 1; this.x = _arg1; this.y = _arg2; this.radius = _arg3; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); radius = parseFloat(_arg1.@radius); } override public function getXMLTagName():String{ return ("BoundingCircle"); } override protected function calculateMotionData4D(_arg1:Particle2D):MotionData4D{ var _local2:Number = (_arg1.collisionRadius * _arg1.scale); var _local3:Vec2D = Vec2DPool.get((_arg1.x - x), (_arg1.y - y)); var _local4:Number = (_local3.length + _local2); if (_local4 < radius){ return (MotionData4DPool.get(_arg1.x, _arg1.y, _arg1.vx, _arg1.vy)); }; _local3.length = (radius - _local2); var _local5:Vec2D = Vec2DPool.get(_arg1.vx, _arg1.vy); _local5.projectThis(_local3); var _local6:Number = (1 + bounce); Vec2DPool.recycle(_local3); Vec2DPool.recycle(_local5); return (MotionData4DPool.get((x + _local3.x), (y + _local3.y), (_arg1.vx - (_local6 * _local5.x)), (_arg1.vy - (_local6 * _local5.y)))); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@radius = radius; return (_local1); } } }//package idv.cjcat.stardust.twoD.deflectors
Section 191
//CircleDeflector (idv.cjcat.stardust.twoD.deflectors.CircleDeflector) package idv.cjcat.stardust.twoD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class CircleDeflector extends Deflector { public var y:Number;// = 0 public var radius:Number; public var x:Number;// = 0 public function CircleDeflector(_arg1:Number=0, _arg2:Number=0, _arg3:Number=100){ this.x = _arg1; this.y = _arg2; this.radius = _arg3; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); radius = parseFloat(_arg1.@radius); } override public function getXMLTagName():String{ return ("CircleDeflector"); } override protected function calculateMotionData4D(_arg1:Particle2D):MotionData4D{ var _local2:Number = (_arg1.collisionRadius * _arg1.scale); var _local3:Vec2D = Vec2DPool.get((_arg1.x - x), (_arg1.y - y)); var _local4:Number = (_local3.length - _local2); if (_local4 > radius){ return (MotionData4DPool.get(_arg1.x, _arg1.y, _arg1.vx, _arg1.vy)); }; _local3.length = (radius + _local2); var _local5:Vec2D = Vec2DPool.get(_arg1.vx, _arg1.vy); _local5.projectThis(_local3); var _local6:Number = (1 + bounce); Vec2DPool.recycle(_local3); Vec2DPool.recycle(_local5); return (MotionData4DPool.get((x + _local3.x), (y + _local3.y), (_arg1.vx - (_local5.x * _local6)), (_arg1.vy - (_local5.y * _local6)))); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@radius = radius; return (_local1); } } }//package idv.cjcat.stardust.twoD.deflectors
Section 192
//Deflector (idv.cjcat.stardust.twoD.deflectors.Deflector) package idv.cjcat.stardust.twoD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class Deflector extends StardustElement { public var bounce:Number; public var active:Boolean; public function Deflector(){ active = true; bounce = 0.8; } override public function getElementTypeXMLTag():XML{ return (<deflectors/> ); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); active = (_arg1.@active == "true"); bounce = parseFloat(_arg1.@bounce); } final public function getMotionData4D(_arg1:Particle2D):MotionData4D{ if (!active){ return (MotionData4DPool.get(_arg1.x, _arg1.y, _arg1.vx, _arg1.vy)); }; return (calculateMotionData4D(_arg1)); } override public function getXMLTagName():String{ return ("Deflector"); } protected function calculateMotionData4D(_arg1:Particle2D):MotionData4D{ return (null); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@active = active; _local1.@bounce = bounce; return (_local1); } } }//package idv.cjcat.stardust.twoD.deflectors
Section 193
//LineDeflector (idv.cjcat.stardust.twoD.deflectors.LineDeflector) package idv.cjcat.stardust.twoD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class LineDeflector extends Deflector { private var _normal:Vec2D; public var x:Number; public var y:Number; public function LineDeflector(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=-1){ this.x = _arg1; this.y = _arg2; _normal = new Vec2D(_arg3, _arg4); } override public function getXMLTagName():String{ return ("LineDeflector"); } public function get normal():Vec2D{ return (_normal); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); normal.x = parseFloat(_arg1.@normalX); normal.y = parseFloat(_arg1.@normalY); } override protected function calculateMotionData4D(_arg1:Particle2D):MotionData4D{ var _local2:Vec2D = Vec2DPool.get((_arg1.x - x), (_arg1.y - y)); _local2 = _local2.project(normal); var _local3:Number = _local2.dot(normal); var _local4:Number = (_arg1.collisionRadius * _arg1.scale); var _local5:Number = _local2.length; if (_local3 > 0){ if (_local5 > _local4){ return (new MotionData4D(_arg1.x, _arg1.y, _arg1.vx, _arg1.vy)); }; _local2.length = (_local4 - _local5); } else { _local2.length = -((_local5 + _local4)); }; var _local6:Vec2D = Vec2DPool.get(_arg1.vx, _arg1.vy); _local6 = _local6.project(normal); var _local7:Number = (1 + bounce); Vec2DPool.recycle(_local2); Vec2DPool.recycle(_local6); return (MotionData4DPool.get((_arg1.x + _local2.x), (_arg1.y + _local2.y), (_arg1.vx - (_local6.x * _local7)), (_arg1.vy - (_local6.y * _local7)))); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@normalX = normal.x; _local1.@normalY = normal.y; return (_local1); } } }//package idv.cjcat.stardust.twoD.deflectors
Section 194
//WrappingBox (idv.cjcat.stardust.twoD.deflectors.WrappingBox) package idv.cjcat.stardust.twoD.deflectors { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.math.*; public class WrappingBox extends Deflector { public var width:Number; public var height:Number; public var x:Number; public var y:Number; public function WrappingBox(_arg1:Number=0, _arg2:Number=0, _arg3:Number=640, _arg4:Number=480){ this.x = _arg1; this.y = _arg2; this.width = _arg3; this.height = _arg4; } override public function getXMLTagName():String{ return ("WrappingBox"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); width = parseFloat(_arg1.@width); height = parseFloat(_arg1.@height); } override protected function calculateMotionData4D(_arg1:Particle2D):MotionData4D{ var _local2:Number = x; var _local3:Number = (x + width); var _local4:Number = y; var _local5:Number = (y + height); var _local6:Number = StardustMath.mod((_arg1.x - x), width); var _local7:Number = StardustMath.mod((_arg1.y - y), height); return (MotionData4DPool.get((x + _local6), (y + _local7), _arg1.vx, _arg1.vy)); } override public function toXML():XML{ var _local1:XML = super.toXML(); delete _local1.@bounce; _local1.@x = x; _local1.@y = y; _local1.@width = width; _local1.@height = height; return (_local1); } } }//package idv.cjcat.stardust.twoD.deflectors
Section 195
//AddChildMode (idv.cjcat.stardust.twoD.display.AddChildMode) package idv.cjcat.stardust.twoD.display { public class AddChildMode { public static const RANDOM:int = 0; public static const TOP:int = 1; public static const BOTTOM:int = 2; } }//package idv.cjcat.stardust.twoD.display
Section 196
//StardustSprite (idv.cjcat.stardust.twoD.display.StardustSprite) package idv.cjcat.stardust.twoD.display { import flash.display.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.emitters.*; public class StardustSprite extends Sprite { public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ } } }//package idv.cjcat.stardust.twoD.display
Section 197
//Emitter2D (idv.cjcat.stardust.twoD.emitters.Emitter2D) package idv.cjcat.stardust.twoD.emitters { import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.actions.*; import flash.utils.*; import idv.cjcat.stardust.common.clocks.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.emitters.*; import idv.cjcat.stardust.*; import flash.errors.*; public class Emitter2D extends Emitter { public function Emitter2D(_arg1:Clock=null){ super(_arg1); particleSorter = Particle2DXSorter.getInstance(); factory = new Particle2DFactory(); factory.sd::usePool = true; } final override public function addInitializer(_arg1:Initializer):void{ if (!_arg1.supports2D){ throw (new IllegalOperationError(("This initializer does not support 2D: " + getQualifiedClassName((Object(_arg1).constructor as Class))))); }; super.addInitializer(_arg1); } override public function getXMLTagName():String{ return ("Emitter2D"); } final override public function addAction(_arg1:Action):void{ if (!_arg1.supports2D){ throw (new IllegalOperationError(("This action does not support 2D: " + getQualifiedClassName((Object(_arg1).constructor as Class))))); }; super.addAction(_arg1); } } }//package idv.cjcat.stardust.twoD.emitters
Section 198
//Vec2DEvent (idv.cjcat.stardust.twoD.events.Vec2DEvent) package idv.cjcat.stardust.twoD.events { import flash.events.*; import idv.cjcat.stardust.twoD.geom.*; public class Vec2DEvent extends Event { private var _vec:Vec2D; public static const CHANGE:String = "stardustVec2DChange"; public function Vec2DEvent(_arg1:String, _arg2:Vec2D){ super(_arg1); _vec = _arg2; } public function get vec():Vec2D{ return (_vec); } } }//package idv.cjcat.stardust.twoD.events
Section 199
//BitmapField (idv.cjcat.stardust.twoD.fields.BitmapField) package idv.cjcat.stardust.twoD.fields { import flash.display.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.math.*; public class BitmapField extends Field { public var scaleX:Number; public var scaleY:Number; private var _bmpd:BitmapData; public var max:Number; public var tile:Boolean; public var channelX:uint; public var channelY:uint; public var x:Number; public var y:Number; public function BitmapField(_arg1:Number=0, _arg2:Number=0, _arg3:Number=1, _arg4:uint=1, _arg5:uint=2){ this.x = _arg1; this.y = _arg2; this.max = _arg3; this.channelX = _arg4; this.channelY = _arg5; this.scaleX = 1; this.scaleY = 1; this.tile = true; update(); } public function update(_arg1:BitmapData=null):void{ if (!_arg1){ _arg1 = new BitmapData(1, 1, false, 0x808080); }; _bmpd = _arg1; } override protected function calculateMotionData2D(_arg1:Particle2D):MotionData2D{ var _local5:Number; var _local6:Number; var _local2:Number = (_arg1.x / scaleX); var _local3:Number = (_arg1.y / scaleY); if (tile){ _local2 = StardustMath.mod(_local2, _bmpd.width); _local3 = StardustMath.mod(_local3, _bmpd.height); } else { if ((((((((_local2 < 0)) || ((_local2 >= _bmpd.width)))) || ((_local3 < 0)))) || ((_local3 >= _bmpd.height)))){ return (MotionData2DPool.get(0, 0)); }; }; var _local4:int = _bmpd.getPixel(int(_local2), int(_local3)); switch (channelX){ case BitmapDataChannel.RED: _local5 = ((2 * ((((_local4 & 0xFF0000) >> 16) / 0xFF) - 0.5)) * max); break; case BitmapDataChannel.GREEN: _local5 = ((2 * ((((_local4 & 0xFF00) >> 8) / 0xFF) - 0.5)) * max); break; case BitmapDataChannel.BLUE: _local5 = ((2 * (((_local4 & 0xFF) / 0xFF) - 0.5)) * max); break; }; switch (channelY){ case BitmapDataChannel.RED: _local6 = ((2 * ((((_local4 & 0xFF0000) >> 16) / 0xFF) - 0.5)) * max); break; case BitmapDataChannel.GREEN: _local6 = ((2 * ((((_local4 & 0xFF00) >> 8) / 0xFF) - 0.5)) * max); break; case BitmapDataChannel.BLUE: _local6 = ((2 * (((_local4 & 0xFF) / 0xFF) - 0.5)) * max); break; }; return (MotionData2DPool.get(_local5, _local6)); } override public function getXMLTagName():String{ return ("BitmapField"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); channelX = parseFloat(_arg1.@channelX); channelY = parseFloat(_arg1.@channelY); max = parseFloat(_arg1.@max); scaleX = parseFloat(_arg1.@scaleX); scaleY = parseFloat(_arg1.@scaleY); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@channelX = channelX; _local1.@channelY = channelY; _local1.@max = max; _local1.@scaleX = scaleX; _local1.@scaleY = scaleY; return (_local1); } } }//package idv.cjcat.stardust.twoD.fields
Section 200
//Field (idv.cjcat.stardust.twoD.fields.Field) package idv.cjcat.stardust.twoD.fields { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class Field extends StardustElement { public var active:Boolean; public var massless:Boolean; public function Field(){ active = true; massless = true; } override public function getElementTypeXMLTag():XML{ return (<fields/> ); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); active = (_arg1.@active == "action"); massless = (_arg1.@active == "massless"); } final public function getMotionData2D(_arg1:Particle2D):MotionData2D{ var _local3:Number; if (!active){ return (MotionData2DPool.get(0, 0)); }; var _local2:MotionData2D = calculateMotionData2D(_arg1); if (!massless){ _local3 = (1 / _arg1.mass); _local2.x = (_local2.x * _local3); _local2.y = (_local2.y * _local3); }; return (_local2); } override public function getXMLTagName():String{ return ("Field"); } protected function calculateMotionData2D(_arg1:Particle2D):MotionData2D{ return (null); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@active = active; _local1.@massless = massless; return (_local1); } } }//package idv.cjcat.stardust.twoD.fields
Section 201
//RadialField (idv.cjcat.stardust.twoD.fields.RadialField) package idv.cjcat.stardust.twoD.fields { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class RadialField extends Field { public var strength:Number; public var epsilon:Number; public var x:Number; public var y:Number; public var attenuationPower:Number; public function RadialField(_arg1:Number=0, _arg2:Number=0, _arg3:Number=1, _arg4:Number=0, _arg5:Number=1){ this.x = _arg1; this.y = _arg2; this.strength = _arg3; this.attenuationPower = _arg4; this.epsilon = _arg5; } override public function getXMLTagName():String{ return ("RadialField"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); strength = parseFloat(_arg1.@strength); attenuationPower = parseFloat(_arg1.@attenuationPower); epsilon = parseFloat(_arg1.@epsilon); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@strength = strength; _local1.@attenuationPower = attenuationPower; _local1.@epsilon = epsilon; return (_local1); } override protected function calculateMotionData2D(_arg1:Particle2D):MotionData2D{ var _local2:Vec2D = Vec2DPool.get((_arg1.x - x), (_arg1.y - y)); var _local3:Number = _local2.length; if (_local3 < epsilon){ _local3 = epsilon; }; _local2.length = (strength * Math.pow(_local3, (-0.5 * attenuationPower))); Vec2DPool.recycle(_local2); return (MotionData2DPool.get(_local2.x, _local2.y)); } } }//package idv.cjcat.stardust.twoD.fields
Section 202
//UniformField (idv.cjcat.stardust.twoD.fields.UniformField) package idv.cjcat.stardust.twoD.fields { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; public class UniformField extends Field { public var x:Number; public var y:Number; public function UniformField(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } override public function getXMLTagName():String{ return ("UniformField"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; return (_local1); } override protected function calculateMotionData2D(_arg1:Particle2D):MotionData2D{ return (MotionData2DPool.get(x, y)); } } }//package idv.cjcat.stardust.twoD.fields
Section 203
//MotionData2D (idv.cjcat.stardust.twoD.geom.MotionData2D) package idv.cjcat.stardust.twoD.geom { public class MotionData2D { public var x:Number; public var y:Number; public function MotionData2D(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } } }//package idv.cjcat.stardust.twoD.geom
Section 204
//MotionData2DPool (idv.cjcat.stardust.twoD.geom.MotionData2DPool) package idv.cjcat.stardust.twoD.geom { public class MotionData2DPool { private static var _vec:Array = [new MotionData2D()]; private static var _position:int = 0; public static function recycle(_arg1:MotionData2D):void{ if (_position == 0){ return; }; if (!_arg1){ return; }; _vec[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; if (_vec.length >= 16){ if (_position < (_vec.length >> 4)){ _vec.length = (_vec.length >> 1); }; }; } public static function get(_arg1:Number=0, _arg2:Number=0):MotionData2D{ var _local4:int; if (_position == _vec.length){ _vec.length = (_vec.length << 1); _local4 = _position; while (_local4 < _vec.length) { _vec[_local4] = new MotionData2D(); _local4++; }; }; _position++; var _local3:MotionData2D = (_vec[(_position - 1)] as MotionData2D); _local3.x = _arg1; _local3.y = _arg2; return (_local3); } } }//package idv.cjcat.stardust.twoD.geom
Section 205
//MotionData4D (idv.cjcat.stardust.twoD.geom.MotionData4D) package idv.cjcat.stardust.twoD.geom { public class MotionData4D { public var vx:Number; public var vy:Number; public var x:Number; public var y:Number; public function MotionData4D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.x = _arg1; this.y = _arg2; this.vx = _arg3; this.vy = _arg4; } } }//package idv.cjcat.stardust.twoD.geom
Section 206
//MotionData4DPool (idv.cjcat.stardust.twoD.geom.MotionData4DPool) package idv.cjcat.stardust.twoD.geom { public class MotionData4DPool { private static var _vec:Array = [new MotionData4D()]; private static var _position:int = 0; public static function recycle(_arg1:MotionData4D):void{ if (_position == 0){ return; }; if (!_arg1){ return; }; _vec[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; if (_vec.length >= 16){ if (_position < (_vec.length >> 4)){ _vec.length = (_vec.length >> 1); }; }; } public static function get(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):MotionData4D{ var _local6:int; if (_position == _vec.length){ _vec.length = (_vec.length << 1); _local6 = _position; while (_local6 < _vec.length) { _vec[_local6] = new MotionData4D(); _local6++; }; }; _position++; var _local5:MotionData4D = (_vec[(_position - 1)] as MotionData4D); _local5.x = _arg1; _local5.y = _arg2; _local5.vx = _arg3; _local5.vy = _arg4; return (_local5); } } }//package idv.cjcat.stardust.twoD.geom
Section 207
//Vec2D (idv.cjcat.stardust.twoD.geom.Vec2D) package idv.cjcat.stardust.twoD.geom { import flash.events.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.twoD.events.*; public class Vec2D extends EventDispatcher { private var _x:Number; private var _y:Number; public function Vec2D(_arg1:Number=0, _arg2:Number=0){ _x = _arg1; _y = _arg2; } public function project(_arg1:Vec2D):Vec2D{ var _local2:Vec2D = clone(); _local2.projectThis(_arg1); return (_local2); } public function set y(_arg1:Number):void{ _y = _arg1; dispatchEvent(new Vec2DEvent(Vec2DEvent.CHANGE, this)); } public function set(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; dispatchEvent(new Vec2DEvent(Vec2DEvent.CHANGE, this)); } override public function toString():String{ return (((((("[Vec2D" + " x=") + _x) + " y=") + _y) + "]")); } public function get length():Number{ return (Math.sqrt(((_x * _x) + (_y * _y)))); } public function dot(_arg1:Vec2D):Number{ return (((_x * _arg1._x) + (_y * _arg1._y))); } public function get angle():Number{ return ((Math.atan2(_y, _x) * StardustMath.RADIAN_TO_DEGREE)); } public function set length(_arg1:Number):void{ if ((((_x == 0)) && ((_y == 0)))){ return; }; var _local2:Number = (_arg1 / length); _x = (_x * _local2); _y = (_y * _local2); dispatchEvent(new Vec2DEvent(Vec2DEvent.CHANGE, this)); } public function set angle(_arg1:Number):void{ var _local2:Number = length; var _local3:Number = (_arg1 * StardustMath.DEGREE_TO_RADIAN); _x = (_local2 * Math.cos(_local3)); _y = (_local2 * Math.sin(_local3)); dispatchEvent(new Vec2DEvent(Vec2DEvent.CHANGE, this)); } public function set x(_arg1:Number):void{ _x = _arg1; dispatchEvent(new Vec2DEvent(Vec2DEvent.CHANGE, this)); } public function rotateThis(_arg1:Number, _arg2:Boolean=false):void{ if (!_arg2){ _arg1 = (_arg1 * StardustMath.DEGREE_TO_RADIAN); }; var _local3:Number = _x; _x = ((_local3 * Math.cos(_arg1)) - (_y * Math.sin(_arg1))); _y = ((_local3 * Math.sin(_arg1)) + (_y * Math.cos(_arg1))); dispatchEvent(new Vec2DEvent(Vec2DEvent.CHANGE, this)); } public function projectThis(_arg1:Vec2D):void{ var _local2:Vec2D = Vec2DPool.get(_arg1._x, _arg1._y); _local2.length = 1; _local2.length = dot(_local2); _x = _local2._x; _y = _local2._y; Vec2DPool.recycle(_local2); } public function get x():Number{ return (_x); } public function get y():Number{ return (_y); } public function rotate(_arg1:Number, _arg2:Boolean=false):Vec2D{ var _local3:Vec2D = new Vec2D(_x, _y); _local3.rotateThis(_arg1, _arg2); return (_local3); } public function clone():Vec2D{ return (new Vec2D(_x, _y)); } public function unitVec():Vec2D{ if (length == 0){ return (new Vec2D()); }; var _local1:Number = (1 / length); return (new Vec2D((_x * _local1), (_y * _local1))); } } }//package idv.cjcat.stardust.twoD.geom
Section 208
//Vec2DPool (idv.cjcat.stardust.twoD.geom.Vec2DPool) package idv.cjcat.stardust.twoD.geom { public class Vec2DPool { private static var _vec:Array = [new Vec2D()]; private static var _position:int = 0; public static function recycle(_arg1:Vec2D):void{ if (_position == 0){ return; }; if (!_arg1){ return; }; _vec[(_position - 1)] = _arg1; _position--; if (_position < 0){ _position = 0; }; if (_vec.length >= 16){ if (_position < (_vec.length >> 4)){ _vec.length = (_vec.length >> 1); }; }; } public static function get(_arg1:Number=0, _arg2:Number=0):Vec2D{ var _local4:int; if (_position == _vec.length){ _vec.length = (_vec.length << 1); _local4 = _position; while (_local4 < _vec.length) { _vec[_local4] = new Vec2D(); _local4++; }; }; _position++; var _local3:Vec2D = (_vec[(_position - 1)] as Vec2D); _local3.x = _arg1; _local3.y = _arg2; return (_local3); } } }//package idv.cjcat.stardust.twoD.geom
Section 209
//DisplayObjectClass (idv.cjcat.stardust.twoD.initializers.DisplayObjectClass) package idv.cjcat.stardust.twoD.initializers { import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.common.utils.*; public class DisplayObjectClass extends Initializer2D { public var constructorParams:Array; public var displayObjectClass:Class; public function DisplayObjectClass(_arg1:Class=null, _arg2:Array=null){ this.displayObjectClass = _arg1; this.constructorParams = _arg2; } override public function getXMLTagName():String{ return ("DisplayObjectClass"); } override public function initialize(_arg1:Particle):void{ if (!displayObjectClass){ return; }; _arg1.target = construct(displayObjectClass, constructorParams); } } }//package idv.cjcat.stardust.twoD.initializers
Section 210
//DisplayObjectParent (idv.cjcat.stardust.twoD.initializers.DisplayObjectParent) package idv.cjcat.stardust.twoD.initializers { import flash.display.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; public class DisplayObjectParent extends Initializer2D { public var container:DisplayObjectContainer; public function DisplayObjectParent(_arg1:DisplayObjectContainer=null){ priority = -100; this.container = _arg1; } override public function initialize(_arg1:Particle):void{ if (!container){ return; }; var _local2:Particle2D = (_arg1 as Particle2D); var _local3:DisplayObject = (_local2.target as DisplayObject); if (!_local3){ return; }; container.addChild(_local3); } override public function getXMLTagName():String{ return ("DisplayObjectParent"); } } }//package idv.cjcat.stardust.twoD.initializers
Section 211
//Initializer2D (idv.cjcat.stardust.twoD.initializers.Initializer2D) package idv.cjcat.stardust.twoD.initializers { import idv.cjcat.stardust.common.initializers.*; public class Initializer2D extends Initializer { public function Initializer2D(){ _supports3D = false; priority = Initializer2DPriority.getInstance().getPriority((Object(this).constructor as Class)); } } }//package idv.cjcat.stardust.twoD.initializers
Section 212
//Initializer2DPriority (idv.cjcat.stardust.twoD.initializers.Initializer2DPriority) package idv.cjcat.stardust.twoD.initializers { import idv.cjcat.stardust.common.initializers.*; public class Initializer2DPriority extends InitializerPriority { private static var _instance:Initializer2DPriority; final override protected function populatePriorities():void{ priorities[DisplayObjectClass] = 1; priorities[DisplayObjectParent] = 1; } public static function getInstance():Initializer2DPriority{ if (!_instance){ _instance = new (Initializer2DPriority); }; return (_instance); } } }//package idv.cjcat.stardust.twoD.initializers
Section 213
//LazyInitializer (idv.cjcat.stardust.twoD.initializers.LazyInitializer) package idv.cjcat.stardust.twoD.initializers { import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.xml.*; import flash.utils.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.twoD.zones.*; import idv.cjcat.stardust.*; public class LazyInitializer extends CompositeInitializer { private var _massInit:Mass; private var _lifeInit:Life; private var _rotationInit:Rotation; private var _alphaInit:Alpha; private var _inScaleit:Scale; private var _omegaInit:Omega; private var additionalInitializers:InitializerCollection; private var _displayObjectClassParams:Array; private var _displayObjectClassInit:DisplayObjectClass; private var _posInit:Position; private var _massInitRand:UniformRandom; private var _lifeInitRand:UniformRandom; private var _rotationInitRand:UniformRandom; private var _alphaInitRand:UniformRandom; private var _collisionRadiusInit:CollisionRadius; private var _inScaleitRand:UniformRandom; private var _omegaInitRand:UniformRandom; private var _velocityInit:Velocity; private var _velocityInitSector:LazySectorZone; private var _maskInit:Mask; public function LazyInitializer(_arg1:Class=null, _arg2:Zone=null){ additionalInitializers = new InitializerCollection(); super(); if (!_arg2){ _arg2 = new SinglePoint(); }; _displayObjectClassInit = new DisplayObjectClass(_arg1); _posInit = new Position(_arg2); _rotationInitRand = new UniformRandom(0, 180); _rotationInit = new Rotation(_rotationInitRand); _lifeInitRand = new UniformRandom(50, 0); _lifeInit = new Life(_lifeInitRand); _velocityInitSector = new LazySectorZone(3, 0); _velocityInitSector.direction.set(0, -1); _velocityInit = new Velocity(_velocityInitSector); _omegaInitRand = new UniformRandom(0, 0); _omegaInit = new Omega(_omegaInitRand); _inScaleitRand = new UniformRandom(1, 0); _inScaleit = new Scale(_inScaleitRand); _massInitRand = new UniformRandom(1, 0); _massInit = new Mass(_massInitRand); _maskInit = new Mask(1); _collisionRadiusInit = new CollisionRadius(0); _alphaInitRand = new UniformRandom(1, 0); _alphaInit = new Alpha(_alphaInitRand); superAddInitializer(_displayObjectClassInit); superAddInitializer(_posInit); superAddInitializer(_rotationInit); superAddInitializer(_lifeInit); superAddInitializer(_velocityInit); superAddInitializer(_omegaInit); superAddInitializer(_inScaleit); superAddInitializer(_massInit); superAddInitializer(_maskInit); superAddInitializer(_collisionRadiusInit); superAddInitializer(_alphaInit); } public function set scaleVar(_arg1:Number):void{ _inScaleitRand.radius = _arg1; } override public function addInitializer(_arg1:Initializer):void{ super.addInitializer(_arg1); additionalInitializers.addInitializer(_arg1); } public function set omegaVar(_arg1:Number):void{ _omegaInitRand.radius = _arg1; } public function set speed(_arg1:Number):void{ _velocityInitSector.radius = _arg1; } public function get massVar():Number{ return (_massInitRand.radius); } public function set rotation(_arg1:Number):void{ _rotationInitRand.center = _arg1; } public function get omegaVar():Number{ return (_omegaInitRand.radius); } public function set rotationVar(_arg1:Number):void{ _rotationInitRand.radius = _arg1; } public function set scale(_arg1:Number):void{ _inScaleitRand.center = _arg1; } public function set lifeVar(_arg1:Number):void{ _lifeInitRand.radius = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; name = _arg1.@name; active = (_arg1.@active == "true"); displayObjectClass = (getDefinitionByName(_arg1.@displayObjectClass) as Class); position = (_arg2.getElementByName(_arg1.@position) as Zone); rotation = parseFloat(_arg1.@rotation); rotationVar = parseFloat(_arg1.@rotationVar); life = parseFloat(_arg1.@life); lifeVar = parseFloat(_arg1.@lifeVar); direction.x = parseFloat(_arg1.@directionX); direction.y = parseFloat(_arg1.@directionY); omega = parseFloat(_arg1.@omega); omegaVar = parseFloat(_arg1.@omegaVar); scale = parseFloat(_arg1.@scale); scaleVar = parseFloat(_arg1.@scaleVar); mask = parseInt(_arg1.@mask); mass = parseFloat(_arg1.@mass); collisionRadius = parseFloat(_arg1.@collisionRadius); alpha = parseFloat(_arg1.@alpha); alphaVar = parseFloat(_arg1.@alphaVar); additionalInitializers.clearInitializers(); for each (_local3 in _arg1.initializers.*) { addInitializer((_arg2.getElementByName(_local3.@name) as Initializer)); }; } public function get lifeVar():Number{ return (_lifeInitRand.radius); } public function get position():Zone{ return (_posInit.zone); } public function set massVar(_arg1:Number):void{ _massInitRand.radius = _arg1; } public function get directionVar():Number{ return (_velocityInitSector.directionVar); } override public function toXML():XML{ var _local2:Initializer; var _local1:XML = super.toXML(); delete _local1.initializers; _local1.@displayObjectClass = getQualifiedClassName(displayObjectClass); _local1.@position = position.name; _local1.@rotation = rotation; _local1.@rotationVar = rotationVar; _local1.@life = life; _local1.@lifeVar = lifeVar; _local1.@speed = speedVar; _local1.@speedVar = speedVar; _local1.@directionX = direction.x; _local1.@directionY = direction.y; _local1.@omega = omega; _local1.@omegaVar = omegaVar; _local1.@scale = scale; _local1.@scaleVar = scaleVar; _local1.@mass = mass; _local1.@mask = mask; _local1.@collisionRadius = collisionRadius; _local1.@alpha = alpha; _local1.@alphaVar = alphaVar; if (additionalInitializers.sd::initializers.length > 0){ _local1.appendChild(<initializers/> ); for each (_local2 in additionalInitializers.sd::initializers) { _local1.initializers.appendChild(_local2.getXMLTag()); }; }; return (_local1); } public function set displayObjectClass(_arg1:Class):void{ _displayObjectClassInit.displayObjectClass = _arg1; } public function set alpha(_arg1:Number):void{ _alphaInitRand.center = _arg1; } public function get displayObjectClassParams():Array{ return (_displayObjectClassInit.constructorParams); } override public function removeInitializer(_arg1:Initializer):void{ super.removeInitializer(_arg1); additionalInitializers.removeInitializer(_arg1); } public function set speedVar(_arg1:Number):void{ _velocityInitSector.radiusVar = _arg1; } public function set omega(_arg1:Number):void{ _omegaInitRand.center = _arg1; } override public function getXMLTagName():String{ return ("LazyInitializer"); } public function get speed():Number{ return (_velocityInitSector.radius); } public function get rotationVar():Number{ return (_rotationInitRand.radius); } public function get scale():Number{ return (_inScaleitRand.center); } public function set collisionRadius(_arg1:Number):void{ _collisionRadiusInit.radius = _arg1; } public function set position(_arg1:Zone):void{ _posInit.zone = _arg1; } protected function superAddInitializer(_arg1:Initializer):void{ super.addInitializer(_arg1); } public function get displayObjectClass():Class{ return (_displayObjectClassInit.displayObjectClass); } public function set directionVar(_arg1:Number):void{ _velocityInitSector.directionVar = _arg1; } public function get speedVar():Number{ return (_velocityInitSector.radiusVar); } public function get omega():Number{ return (_omegaInitRand.center); } public function get alpha():Number{ return (_alphaInitRand.center); } override public function getRelatedObjects():Array{ return ([position].concat(additionalInitializers.sd::initializers)); } public function set mask(_arg1:int):void{ _maskInit.mask = _arg1; } public function set mass(_arg1:Number):void{ _massInitRand.center = _arg1; } public function get alphaVar():Number{ return (_alphaInitRand.radius); } public function set alphaVar(_arg1:Number):void{ _alphaInitRand.radius = _arg1; } public function get collisionRadius():Number{ return (_collisionRadiusInit.radius); } public function get mask():int{ return (_maskInit.mask); } public function get mass():Number{ return (_massInitRand.center); } override public function clearInitializers():void{ super.clearInitializers(); additionalInitializers.clearInitializers(); } public function set life(_arg1:Number):void{ _lifeInitRand.center = _arg1; } public function set displayObjectClassParams(_arg1:Array):void{ _displayObjectClassInit.constructorParams = _arg1; } public function get life():Number{ return (_lifeInitRand.center); } public function get scaleVar():Number{ return (_inScaleitRand.radius); } public function get rotation():Number{ return (_rotationInitRand.center); } public function get direction():Vec2D{ return (_velocityInitSector.direction); } } }//package idv.cjcat.stardust.twoD.initializers
Section 214
//Omega (idv.cjcat.stardust.twoD.initializers.Omega) package idv.cjcat.stardust.twoD.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.math.*; public class Omega extends Initializer2D { private var _random:Random; public function Omega(_arg1:Random=null){ this.random = _arg1; } override public function initialize(_arg1:Particle):void{ var _local2:Particle2D = (_arg1 as Particle2D); _local2.omega = _random.random(); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); random = (_arg2.getElementByName(_arg1.@random) as Random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _random = _arg1; } public function get random():Random{ return (_random); } override public function getXMLTagName():String{ return ("Omega"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@random = _random.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_random]); } } }//package idv.cjcat.stardust.twoD.initializers
Section 215
//Position (idv.cjcat.stardust.twoD.initializers.Position) package idv.cjcat.stardust.twoD.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.twoD.zones.*; public class Position extends Initializer2D { private var _zone:Zone; public function Position(_arg1:Zone=null){ this.zone = _arg1; } override public function initialize(_arg1:Particle):void{ var _local2:Particle2D = (_arg1 as Particle2D); var _local3:MotionData2D = zone.getPoint(); _local2.x = _local3.x; _local2.y = _local3.y; MotionData2DPool.recycle(_local3); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); zone = (_arg2.getElementByName(_arg1.@zone) as Zone); } override public function getXMLTagName():String{ return ("Position"); } public function set zone(_arg1:Zone):void{ if (!_arg1){ _arg1 = new SinglePoint(0, 0); }; _zone = _arg1; } public function get zone():Zone{ return (_zone); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@zone = zone.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_zone]); } } }//package idv.cjcat.stardust.twoD.initializers
Section 216
//Rotation (idv.cjcat.stardust.twoD.initializers.Rotation) package idv.cjcat.stardust.twoD.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.math.*; public class Rotation extends Initializer2D { private var _random:Random; public function Rotation(_arg1:Random=null){ this.random = _arg1; } override public function initialize(_arg1:Particle):void{ var _local2:Particle2D = (_arg1 as Particle2D); _local2.rotation = random.random(); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); random = (_arg2.getElementByName(_arg1.@random) as Random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(0, 0); }; _random = _arg1; } public function get random():Random{ return (_random); } override public function getXMLTagName():String{ return ("Rotation"); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@random = _random.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_random]); } } }//package idv.cjcat.stardust.twoD.initializers
Section 217
//Velocity (idv.cjcat.stardust.twoD.initializers.Velocity) package idv.cjcat.stardust.twoD.initializers { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.particles.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.twoD.zones.*; public class Velocity extends Initializer2D { private var _zone:Zone; public function Velocity(_arg1:Zone=null){ this.zone = _arg1; } override public function initialize(_arg1:Particle):void{ var _local3:MotionData2D; var _local2:Particle2D = (_arg1 as Particle2D); _local3 = zone.getPoint(); _local2.vx = _local3.x; _local2.vy = _local3.y; MotionData2DPool.recycle(_local3); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); zone = (_arg2.getElementByName(_arg1.@zone) as Zone); } override public function getXMLTagName():String{ return ("Velocity"); } public function set zone(_arg1:Zone):void{ if (!_arg1){ _arg1 = new SinglePoint(0, 0); }; _zone = _arg1; } public function get zone():Zone{ return (_zone); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@zone = zone.name; return (_local1); } override public function getRelatedObjects():Array{ return ([_zone]); } } }//package idv.cjcat.stardust.twoD.initializers
Section 218
//Particle2D (idv.cjcat.stardust.twoD.particles.Particle2D) package idv.cjcat.stardust.twoD.particles { import idv.cjcat.stardust.common.particles.*; public class Particle2D extends Particle { public var omega:Number; public var vx:Number; public var vy:Number; public var x:Number; public var y:Number; public var rotation:Number; override public function init():void{ super.init(); x = 0; y = 0; vx = 0; vy = 0; rotation = 0; omega = 0; } } }//package idv.cjcat.stardust.twoD.particles
Section 219
//Particle2DFactory (idv.cjcat.stardust.twoD.particles.Particle2DFactory) package idv.cjcat.stardust.twoD.particles { import idv.cjcat.stardust.common.initializers.*; import flash.utils.*; import idv.cjcat.stardust.common.particles.*; import flash.errors.*; public class Particle2DFactory extends ParticleFactory { public function Particle2DFactory(){ particlePool = Particle2DPool.getInstance(); } override public function addInitializer(_arg1:Initializer):void{ if (!_arg1.supports2D){ throw (new IllegalOperationError(("This initializer does not support 2D: " + getQualifiedClassName((Object(_arg1).constructor as Class))))); }; super.addInitializer(_arg1); } } }//package idv.cjcat.stardust.twoD.particles
Section 220
//Particle2DPool (idv.cjcat.stardust.twoD.particles.Particle2DPool) package idv.cjcat.stardust.twoD.particles { import idv.cjcat.stardust.common.particles.*; public class Particle2DPool extends ParticlePool { private static var _instance:Particle2DPool; public function Particle2DPool(_arg1:Class){ super(_arg1); } public static function getInstance():Particle2DPool{ if (!_instance){ _instance = new Particle2DPool(Particle2D); }; return (_instance); } } }//package idv.cjcat.stardust.twoD.particles
Section 221
//Particle2DXSorter (idv.cjcat.stardust.twoD.particles.Particle2DXSorter) package idv.cjcat.stardust.twoD.particles { import idv.cjcat.stardust.common.particles.*; public class Particle2DXSorter extends ParticleSorter { private static var _instance:Particle2DXSorter; override public function sort(_arg1:Array):void{ _arg1.sortOn("x", Array.NUMERIC); } public static function getInstance():Particle2DXSorter{ if (!_instance){ _instance = new (Particle2DXSorter); }; return (_instance); } } }//package idv.cjcat.stardust.twoD.particles
Section 222
//BitmapRenderer (idv.cjcat.stardust.twoD.renderers.BitmapRenderer) package idv.cjcat.stardust.twoD.renderers { import flash.display.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.particles.*; import flash.geom.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.common.renderers.*; public class BitmapRenderer extends Renderer { public var targetBitmapData:BitmapData; public var blendMode:String; public function BitmapRenderer(_arg1:BitmapData=null, _arg2:String="normal"){ this.targetBitmapData = _arg1; this.blendMode = _arg2; } final override protected function particlesCreated(_arg1:EmitterEvent):void{ } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@blendMode = blendMode; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); blendMode = _arg1.@blendMode; } override public function getXMLTagName():String{ return ("BitmapRenderer"); } final override protected function render(_arg1:EmitterEvent):void{ var _local2:Particle2D; var _local3:DisplayObject; var _local4:Matrix; if (!targetBitmapData){ return; }; targetBitmapData.lock(); for each (_local2 in _arg1.particles) { _local3 = (_local2.target as DisplayObject); if (!_local3){ } else { _local4 = new Matrix(); _local4.scale(_local2.scale, _local2.scale); _local4.rotate((_local2.rotation * StardustMath.DEGREE_TO_RADIAN)); _local4.translate(_local2.x, _local2.y); targetBitmapData.draw(_local3, _local4, new ColorTransform(1, 1, 1, _local2.alpha), blendMode); }; }; targetBitmapData.unlock(); } final override protected function particlesRemoved(_arg1:EmitterEvent):void{ } } }//package idv.cjcat.stardust.twoD.renderers
Section 223
//DisplayObjectRenderer (idv.cjcat.stardust.twoD.renderers.DisplayObjectRenderer) package idv.cjcat.stardust.twoD.renderers { import flash.display.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.twoD.display.*; import idv.cjcat.stardust.common.renderers.*; public class DisplayObjectRenderer extends Renderer { public var container:DisplayObjectContainer; public var forceParentChange:Boolean; public var addChildMode:int; public function DisplayObjectRenderer(_arg1:DisplayObjectContainer=null, _arg2:int=0){ this.container = _arg1; this.addChildMode = _arg2; forceParentChange = false; } override public function getXMLTagName():String{ return ("DisplayObjectRenderer"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); addChildMode = parseInt(_arg1.@addChildMode); forceParentChange = (_arg1.@forceParentChange == "true"); } final override protected function particlesRemoved(_arg1:EmitterEvent):void{ var _local2:Particle2D; var _local3:DisplayObject; for each (_local2 in _arg1.particles) { _local3 = (_local2.target as DisplayObject); if (!_local3){ } else { DisplayObjectContainer(_local3.parent).removeChild(_local3); }; }; } final override protected function render(_arg1:EmitterEvent):void{ var _local2:Particle2D; var _local3:DisplayObject; for each (_local2 in _arg1.particles) { _local3 = (_local2.target as DisplayObject); if (!_local3){ } else { _local3.x = _local2.x; _local3.y = _local2.y; _local3.rotation = _local2.rotation; _local3.scaleX = (_local3.scaleY = _local2.scale); _local3.alpha = _local2.alpha; }; }; } final override protected function particlesCreated(_arg1:EmitterEvent):void{ var _local2:Particle2D; var _local3:DisplayObject; if (!container){ return; }; for each (_local2 in _arg1.particles) { _local3 = (_local2.target as DisplayObject); if (!_local3){ } else { if (!forceParentChange){ //unresolved if } else { switch (addChildMode){ case AddChildMode.TOP: container.addChild(_local3); break; case AddChildMode.BOTTOM: container.addChildAt(_local3, 0); break; default: container.addChildAt(_local3, Math.floor((Math.random() * container.numChildren))); break; }; }; }; }; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@addChildMode = addChildMode; _local1.@forceParentChange = forceParentChange; return (_local1); } } }//package idv.cjcat.stardust.twoD.renderers
Section 224
//PixelRenderer (idv.cjcat.stardust.twoD.renderers.PixelRenderer) package idv.cjcat.stardust.twoD.renderers { import flash.display.*; import idv.cjcat.stardust.twoD.particles.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.common.renderers.*; public class PixelRenderer extends Renderer { public var targetBitmapData:BitmapData; public function PixelRenderer(_arg1:BitmapData=null){ this.targetBitmapData = _arg1; } final override protected function particlesRemoved(_arg1:EmitterEvent):void{ } final override protected function render(_arg1:EmitterEvent):void{ var _local2:Particle2D; var _local3:int; var _local4:int; var _local5:uint; if (!targetBitmapData){ return; }; targetBitmapData.lock(); for each (_local2 in _arg1.particles) { _local3 = int((_local2.x + 0.5)); if ((((_local3 < 0)) || ((_local3 >= targetBitmapData.width)))){ } else { _local4 = int((_local2.y + 0.5)); if ((((_local4 < 0)) || ((_local4 >= targetBitmapData.height)))){ } else { _local5 = ((_local2.color & 0xFFFFFF) | uint((uint((_local2.alpha * 0xFF)) << 24))); targetBitmapData.setPixel32(_local3, _local4, _local5); }; }; }; targetBitmapData.unlock(); } final override protected function particlesCreated(_arg1:EmitterEvent):void{ } override public function getXMLTagName():String{ return ("PixelRenderer"); } } }//package idv.cjcat.stardust.twoD.renderers
Section 225
//SingularBitmapRenderer (idv.cjcat.stardust.twoD.renderers.SingularBitmapRenderer) package idv.cjcat.stardust.twoD.renderers { import flash.display.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.particles.*; import flash.geom.*; import idv.cjcat.stardust.common.events.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.common.renderers.*; public class SingularBitmapRenderer extends Renderer { public var displayObject:DisplayObject; public var targetBitmapData:BitmapData; public var blendMode:String; public function SingularBitmapRenderer(_arg1:DisplayObject=null, _arg2:BitmapData=null, _arg3:String="normal"){ this.displayObject = _arg1; this.targetBitmapData = _arg2; this.blendMode = _arg3; } override public function getXMLTagName():String{ return ("SingularBitmapRenderer"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); blendMode = _arg1.@blendMode; } final override protected function render(_arg1:EmitterEvent):void{ var _local2:Particle2D; var _local3:Matrix; if (!displayObject){ return; }; if (!targetBitmapData){ return; }; targetBitmapData.lock(); for each (_local2 in _arg1.particles) { _local3 = new Matrix(); _local3.scale(_local2.scale, _local2.scale); _local3.rotate((_local2.rotation * StardustMath.DEGREE_TO_RADIAN)); _local3.translate(_local2.x, _local2.y); targetBitmapData.draw(displayObject, _local3, new ColorTransform(1, 1, 1, _local2.alpha), blendMode); }; targetBitmapData.unlock(); } final override protected function particlesRemoved(_arg1:EmitterEvent):void{ } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@blendMode = blendMode; return (_local1); } final override protected function particlesCreated(_arg1:EmitterEvent):void{ } } }//package idv.cjcat.stardust.twoD.renderers
Section 226
//BitmapZone (idv.cjcat.stardust.twoD.zones.BitmapZone) package idv.cjcat.stardust.twoD.zones { import flash.display.*; import idv.cjcat.stardust.common.xml.*; import flash.utils.*; import idv.cjcat.stardust.twoD.geom.*; public class BitmapZone extends Zone { public var scaleY:Number; public var scaleX:Number; private var xCoords:Array; private var yCoords:Array; public var x:Number; public var y:Number; private var coordLength:int; public function BitmapZone(_arg1:BitmapData=null, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1, _arg5:Number=1){ this.x = _arg2; this.y = _arg3; this.scaleX = _arg4; this.scaleY = _arg5; xCoords = []; yCoords = []; update(_arg1); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@scaleX = scaleX; _local1.@scaleY = scaleY; return (_local1); } override public function getXMLTagName():String{ return ("BitmapZone"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); scaleX = parseFloat(_arg1.@scaleX); scaleY = parseFloat(_arg1.@scaleY); } public function update(_arg1:BitmapData=null):void{ if (!_arg1){ _arg1 = new BitmapData(1, 1, true, 4286611584); }; var _local2:ByteArray = _arg1.getPixels(_arg1.rect); var _local3 = (_local2.length >> 2); xCoords.length = (yCoords.length = _local3); var _local4:int; var _local5:int; coordLength = 0; var _local6:int; while (_local6 < _local3) { if (_local2[(_local6 * 4)] > 0){ xCoords[coordLength] = _local4; yCoords[coordLength] = _local5; coordLength++; }; _local4++; if (_local4 == _arg1.width){ _local4 = 0; _local5++; }; _local6++; }; } override public function calculateMotionData2D():MotionData2D{ if (xCoords.length == 0){ return (MotionData2DPool.get(x, y)); }; var _local1:int = int((coordLength * Math.random())); return (MotionData2DPool.get(((xCoords[_local1] * scaleX) + x), ((yCoords[_local1] * scaleY) + y))); } } }//package idv.cjcat.stardust.twoD.zones
Section 227
//CircleContour (idv.cjcat.stardust.twoD.zones.CircleContour) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.common.math.*; public class CircleContour extends Contour { private var _radiusSQ:Number; private var _area:Number; private var _radius:Number; public var x:Number; public var y:Number; private var _r1SQ:Number; private var _r2SQ:Number; public function CircleContour(_arg1:Number=0, _arg2:Number=0, _arg3:Number=100){ this.x = _arg1; this.y = _arg2; this.radius = _arg3; } public function get radius():Number{ return (_radius); } override public function calculateMotionData2D():MotionData2D{ var _local1:Number = (StardustMath.TWO_PI * Math.random()); return (new MotionData2D(((_radius * Math.cos(_local1)) + x), ((_radius * Math.sin(_local1)) + y))); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@radius = radius; return (_local1); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ var _local3:Number = (this.x - _arg1); var _local4:Number = (this.y - _arg2); var _local5:Number = ((_local3 * _local3) + (_local4 * _local4)); if ((((_local5 > _r1SQ)) || ((_local5 < _r2SQ)))){ return (false); }; return (true); } public function set radius(_arg1:Number):void{ _radius = _arg1; _radiusSQ = (_arg1 * _arg1); var _local2:Number = (_arg1 + (0.5 * virtualThickness)); var _local3:Number = (_arg1 - (0.5 * virtualThickness)); _r1SQ = (_local2 * _local2); _r2SQ = (_local3 * _local3); updateArea(); } override public function getRelatedObjects():Array{ return ([]); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); radius = parseFloat(_arg1.@radius); } override public function getXMLTagName():String{ return ("CircleContour"); } override protected function updateArea():void{ area = (((_r1SQ - _r2SQ) * Math.PI) * virtualThickness); } } }//package idv.cjcat.stardust.twoD.zones
Section 228
//CircleZone (idv.cjcat.stardust.twoD.zones.CircleZone) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.common.math.*; public class CircleZone extends Zone { public var y:Number; private var _radiusSQ:Number; private var _radius:Number; public var x:Number; public function CircleZone(_arg1:Number=0, _arg2:Number=0, _arg3:Number=100){ this.x = _arg1; this.y = _arg2; this.radius = _arg3; } public function set radius(_arg1:Number):void{ _radius = _arg1; _radiusSQ = (_arg1 * _arg1); updateArea(); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ var _local3:Number = (this.x - _arg1); var _local4:Number = (this.y - _arg2); return (((((_local3 * _local3) + (_local4 * _local4)))<=_radiusSQ) ? true : false); } override public function getXMLTagName():String{ return ("CircleZone"); } override public function getRelatedObjects():Array{ return ([]); } override protected function updateArea():void{ area = (_radiusSQ * Math.PI); } override public function calculateMotionData2D():MotionData2D{ var _local1:Number = (StardustMath.TWO_PI * Math.random()); var _local2:Number = (_radius * Math.sqrt(Math.random())); return (MotionData2DPool.get(((_local2 * Math.cos(_local1)) + x), ((_local2 * Math.sin(_local1)) + y))); } public function get radius():Number{ return (_radius); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@radius = radius; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); radius = parseFloat(_arg1.@radius); } } }//package idv.cjcat.stardust.twoD.zones
Section 229
//CompositeZone (idv.cjcat.stardust.twoD.zones.CompositeZone) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; public class CompositeZone extends Zone { private var _zones:Array; public function CompositeZone(){ _zones = []; } override public function getXMLTagName():String{ return ("CompositeZone"); } override public function getRelatedObjects():Array{ return (_zones); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ var _local3:XML; super.parseXML(_arg1, _arg2); clearZones(); for each (_local3 in _arg1.zones.*) { addZone((_arg2.getElementByName(_local3.@name) as Zone)); }; } final public function addZone(_arg1:Zone):void{ _zones.push(_arg1); updateArea(); } override protected function updateArea():void{ var _local1:Zone; area = 0; for each (_local1 in _zones) { area = (area + _local1.getArea()); }; } final public function removeZone(_arg1:Zone):void{ var _local2:int; while ((_local2 = _zones.indexOf(_arg1)) >= 0) { _zones.splice(_local2, 1); }; updateArea(); } override public function calculateMotionData2D():MotionData2D{ var _local1:Number = (Math.random() * getArea()); var _local2:Number = 0; var _local3:int; while (_local3 < _zones.length) { _local2 = (_local2 + Zone(_zones[_local3]).getArea()); if (_local1 < _local2){ return (Zone(_zones[_local3]).calculateMotionData2D()); }; _local3++; }; return (new MotionData2D()); } final public function clearZones():void{ _zones = []; updateArea(); } override public function toXML():XML{ var _local2:Zone; var _local1:XML = super.toXML(); if (_zones.length > 0){ _local1.appendChild(<zones/> ); for each (_local2 in _zones) { _local1.zones.appendChild(_local2.getXMLTag()); }; }; return (_local1); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ var _local3:Zone; for each (_local3 in _zones) { if (_local3.contains(_arg1, _arg2)){ return (true); }; }; return (false); } } }//package idv.cjcat.stardust.twoD.zones
Section 230
//Contour (idv.cjcat.stardust.twoD.zones.Contour) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; public class Contour extends Zone { private var _virtualThickness:Number; public function Contour(){ _virtualThickness = 1; } final public function set virtualThickness(_arg1:Number):void{ _virtualThickness = _arg1; updateArea(); } override public function getXMLTagName():String{ return ("Contour"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); virtualThickness = parseFloat(_arg1.@virtualThickness); } final public function get virtualThickness():Number{ return (_virtualThickness); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@virtualThickness = virtualThickness; return (_local1); } } }//package idv.cjcat.stardust.twoD.zones
Section 231
//LazySectorZone (idv.cjcat.stardust.twoD.zones.LazySectorZone) package idv.cjcat.stardust.twoD.zones { import flash.events.*; import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.twoD.events.*; public class LazySectorZone extends SectorZone { private var _direction:Vec2D; private var _radius:Number; private var _radiusVar:Number; private var _directionVar:Number; public function LazySectorZone(_arg1:Number=50, _arg2:Number=50){ _radius = _arg1; _radiusVar = _arg2; _direction = new Vec2D(0, -1); _direction.addEventListener(Vec2DEvent.CHANGE, updateSector); _directionVar = 180; updateSector(); } public function set radius(_arg1:Number):void{ _radius = _arg1; updateSector(); } public function get direction():Vec2D{ return (_direction); } public function get directionVar():Number{ return (_directionVar); } public function set radiusVar(_arg1:Number):void{ _radiusVar = _arg1; updateSector(); } override public function getXMLTagName():String{ return ("LazySectorZone"); } public function updateSector(_arg1:Event=null):void{ minRadius = (_radius - _radiusVar); maxRadius = (_radius + _radiusVar); minAngle = (_direction.angle - _directionVar); maxAngle = (_direction.angle + _directionVar); } public function set directionVar(_arg1:Number):void{ _directionVar = _arg1; updateSector(); } public function get radius():Number{ return (_radius); } public function get radiusVar():Number{ return (_radiusVar); } override public function toXML():XML{ var _local1:XML = getXMLTag(); _local1.@radius = radius; _local1.@radiusVar = radiusVar; _local1.@directionX = direction.x; _local1.@directionY = direction.y; _local1.@directionVar = directionVar; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); radius = parseFloat(_arg1.@radius); radiusVar = parseFloat(_arg1.@radiusVar); direction.x = parseFloat(_arg1.@directionX); direction.y = parseFloat(_arg1.@directionY); directionVar = parseFloat(_arg1.@directionVar); } } }//package idv.cjcat.stardust.twoD.zones
Section 232
//Line (idv.cjcat.stardust.twoD.zones.Line) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.common.math.*; public class Line extends Contour { public var x1:Number; private var _random:Random; public var y1:Number; public var y2:Number; public var x2:Number; public function Line(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Random=null){ this.x1 = _arg1; this.y1 = _arg2; this.x2 = _arg3; this.y2 = _arg4; this.random = _arg5; updateArea(); } public function get random():Random{ return (_random); } public function set random(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _random = _arg1; } override public function getXMLTagName():String{ return ("Line"); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ if ((((_arg1 < x1)) && ((_arg1 < x2)))){ return (false); }; if ((((_arg1 > x1)) && ((_arg1 > x2)))){ return (false); }; if (((_arg1 - x1) / (x2 - x1)) == ((_arg2 - y1) / (y2 - y1))){ return (true); }; return (false); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x1 = parseFloat(_arg1.@x1); y1 = parseFloat(_arg1.@y1); x2 = parseFloat(_arg1.@x2); y2 = parseFloat(_arg1.@y2); } override protected function updateArea():void{ var _local1:Number = (x1 - x2); var _local2:Number = (y1 - y2); area = (Math.sqrt(((_local1 * _local1) + (_local2 * _local2))) * virtualThickness); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x1 = x1; _local1.@y1 = y1; _local1.@x2 = x2; _local1.@y2 = y2; return (_local1); } override public function calculateMotionData2D():MotionData2D{ _random.setRange(0, 1); var _local1:Number = _random.random(); return (new MotionData2D(StardustMath.interpolate(0, x1, 1, x2, _local1), StardustMath.interpolate(0, y1, 1, y2, _local1))); } } }//package idv.cjcat.stardust.twoD.zones
Section 233
//RectContour (idv.cjcat.stardust.twoD.zones.RectContour) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; public class RectContour extends CompositeZone { private var _line3:Line; private var _line4:Line; private var _line1:Line; private var _height:Number; private var _width:Number; private var _virtualThickness:Number; private var _x:Number; private var _y:Number; private var _line2:Line; public function RectContour(_arg1:Number=0, _arg2:Number=0, _arg3:Number=640, _arg4:Number=480){ _line1 = new Line(); _line2 = new Line(); _line3 = new Line(); _line4 = new Line(); addZone(_line1); addZone(_line2); addZone(_line3); addZone(_line4); virtualThickness = 1; this.x = _arg1; this.y = _arg2; this.width = _arg3; this.height = _arg4; } public function get width():Number{ return (_width); } public function set virtualThickness(_arg1:Number):void{ _line1.virtualThickness = _arg1; _line2.virtualThickness = _arg1; _line3.virtualThickness = _arg1; _line4.virtualThickness = _arg1; updateArea(); } public function set width(_arg1:Number):void{ _width = _arg1; updateContour(); updateArea(); } public function set height(_arg1:Number):void{ _height = _arg1; updateContour(); updateArea(); } private function updateContour():void{ _line1.x1 = x; _line1.y1 = y; _line1.x2 = (x + width); _line1.y2 = y; _line2.x1 = x; _line2.y1 = (y + height); _line2.x2 = (x + width); _line2.y2 = (y + height); _line3.x1 = x; _line3.y1 = y; _line3.x2 = x; _line3.y2 = (y + height); _line4.x1 = (x + width); _line4.y1 = y; _line4.x2 = (x + width); _line4.y2 = (y + height); } override public function toXML():XML{ var _local1:XML = super.toXML(); delete _local1.zones; _local1.@virtualThickness = virtualThickness; _local1.@x = x; _local1.@y = y; _local1.@width = width; _local1.@height = height; return (_local1); } override public function getRelatedObjects():Array{ return ([]); } override public function getXMLTagName():String{ return ("RectContour"); } public function get height():Number{ return (_height); } public function get virtualThickness():Number{ return (_virtualThickness); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); virtualThickness = parseFloat(_arg1.@virtualThickness); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); width = parseFloat(_arg1.@width); height = parseFloat(_arg1.@height); } public function set x(_arg1:Number):void{ _x = _arg1; updateContour(); updateArea(); } public function set y(_arg1:Number):void{ _y = _arg1; updateContour(); updateArea(); } public function get x():Number{ return (_x); } public function get y():Number{ return (_y); } } }//package idv.cjcat.stardust.twoD.zones
Section 234
//RectZone (idv.cjcat.stardust.twoD.zones.RectZone) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.common.math.*; public class RectZone extends Zone { private var _randomX:Random; private var _height:Number; private var _width:Number; private var _randomY:Random; public var x:Number; public var y:Number; public function RectZone(_arg1:Number=0, _arg2:Number=0, _arg3:Number=640, _arg4:Number=480, _arg5:Random=null, _arg6:Random=null){ if (!_arg5){ _arg5 = new UniformRandom(); }; if (!_arg6){ _arg6 = new UniformRandom(); }; this.x = _arg1; this.y = _arg2; this.width = _arg3; this.height = _arg4; this.randomX = _arg5; this.randomY = _arg6; } public function get width():Number{ return (_width); } public function set width(_arg1:Number):void{ _width = _arg1; updateArea(); } public function set height(_arg1:Number):void{ _height = _arg1; updateArea(); } override public function calculateMotionData2D():MotionData2D{ randomX.setRange(x, (x + _width)); randomY.setRange(y, (y + _height)); return (new MotionData2D(randomX.random(), randomY.random())); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@width = width; _local1.@height = height; _local1.@randomX = randomX.name; _local1.@randomY = randomY.name; return (_local1); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ if ((((_arg1 < this.x)) || ((_arg1 > (this.x + width))))){ return (false); }; if ((((_arg2 < this.y)) || ((_arg2 > (this.y + height))))){ return (false); }; return (true); } override public function getXMLTagName():String{ return ("RectZone"); } override public function getRelatedObjects():Array{ return ([_randomX, _randomY]); } public function get height():Number{ return (_height); } public function set randomX(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomX = _arg1; } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); width = parseFloat(_arg1.@width); height = parseFloat(_arg1.@height); randomX = (_arg2.getElementByName(_arg1.@randomX) as Random); randomY = (_arg2.getElementByName(_arg1.@randomY) as Random); } public function set randomY(_arg1:Random):void{ if (!_arg1){ _arg1 = new UniformRandom(); }; _randomY = _arg1; } public function get randomX():Random{ return (_randomX); } override protected function updateArea():void{ area = (_width * _height); } public function get randomY():Random{ return (_randomY); } } }//package idv.cjcat.stardust.twoD.zones
Section 235
//SectorZone (idv.cjcat.stardust.twoD.zones.SectorZone) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; import idv.cjcat.stardust.common.math.*; public class SectorZone extends Zone { private var _minRadius:Number; private var _maxAngle:Number; private var _minAngle:Number; private var _maxAngleRad:Number; private var _maxRadius:Number; private var _randomT:Random; private var _minAngleRad:Number; public var x:Number; public var y:Number; private var _r1SQ:Number; private var _r2SQ:Number; public function SectorZone(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=100, _arg5:Number=0, _arg6:Number=360){ _randomT = new UniformRandom(); this.x = 0; this.y = 0; this._minRadius = _arg3; this._maxRadius = _arg4; this._minAngle = _arg5; this._maxAngle = _arg6; updateArea(); } public function set minAngle(_arg1:Number):void{ _minAngle = _arg1; updateArea(); } public function get minRadius():Number{ return (_minRadius); } public function set minRadius(_arg1:Number):void{ _minRadius = _arg1; updateArea(); } public function get maxAngle():Number{ return (_maxAngle); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); minRadius = parseFloat(_arg1.@minRadius); maxRadius = parseFloat(_arg1.@maxRadius); minAngle = parseFloat(_arg1.@minAngle); maxAngle = parseFloat(_arg1.@maxAngle); } public function get maxRadius():Number{ return (_maxRadius); } override public function calculateMotionData2D():MotionData2D{ if (_maxRadius == 0){ return (new MotionData2D(x, y)); }; _randomT.setRange(_minAngleRad, _maxAngleRad); var _local1:Number = _randomT.random(); var _local2:Number = StardustMath.interpolate(0, _minRadius, 1, _maxRadius, Math.sqrt(Math.random())); return (new MotionData2D(((_local2 * Math.cos(_local1)) + x), ((_local2 * Math.sin(_local1)) + y))); } public function set maxAngle(_arg1:Number):void{ _maxAngle = _arg1; updateArea(); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ return (false); } public function get minAngle():Number{ return (_minAngle); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; _local1.@minRadius = minRadius; _local1.@maxRadius = maxRadius; _local1.@minAngle = minAngle; _local1.@maxAngle = maxAngle; return (_local1); } override public function getRelatedObjects():Array{ return ([]); } override public function getXMLTagName():String{ return ("SectorZone"); } public function set maxRadius(_arg1:Number):void{ _maxRadius = _arg1; updateArea(); } override protected function updateArea():void{ _minAngleRad = (_minAngle * StardustMath.DEGREE_TO_RADIAN); _maxAngleRad = (_maxAngle * StardustMath.DEGREE_TO_RADIAN); var _local1:Number = (_maxAngleRad - _minAngleRad); _r1SQ = (_minRadius * _minRadius); _r2SQ = (_maxRadius * _maxRadius); var _local2:Number = (_r2SQ - _r1SQ); area = Math.abs((_local2 * _local1)); } } }//package idv.cjcat.stardust.twoD.zones
Section 236
//SinglePoint (idv.cjcat.stardust.twoD.zones.SinglePoint) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.geom.*; public class SinglePoint extends Contour { public var y:Number; public var x:Number; public function SinglePoint(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@x = x; _local1.@y = y; return (_local1); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); x = parseFloat(_arg1.@x); y = parseFloat(_arg1.@y); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ if ((((this.x == _arg1)) && ((this.y == _arg2)))){ return (true); }; return (false); } override public function getXMLTagName():String{ return ("SinglePoint"); } override protected function updateArea():void{ area = ((virtualThickness * virtualThickness) * Math.PI); } override public function calculateMotionData2D():MotionData2D{ return (MotionData2DPool.get(x, y)); } } }//package idv.cjcat.stardust.twoD.zones
Section 237
//Zone (idv.cjcat.stardust.twoD.zones.Zone) package idv.cjcat.stardust.twoD.zones { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.common.*; import idv.cjcat.stardust.twoD.geom.*; public class Zone extends StardustElement { protected var area:Number; public var rotation:Number; public function Zone(){ rotation = 0; } final public function getArea():Number{ return (area); } override public function getXMLTagName():String{ return ("Zone"); } override public function parseXML(_arg1:XML, _arg2:XMLBuilder=null):void{ super.parseXML(_arg1, _arg2); rotation = parseFloat(_arg1.@rotation); } override public function getElementTypeXMLTag():XML{ return (<zones/> ); } override public function toXML():XML{ var _local1:XML = super.toXML(); _local1.@rotation = rotation; return (_local1); } protected function updateArea():void{ } public function calculateMotionData2D():MotionData2D{ return (null); } final public function getPoint():MotionData2D{ var _local2:Vec2D; var _local1:MotionData2D = calculateMotionData2D(); if (rotation != 0){ _local2 = Vec2DPool.get(_local1.x, _local1.y); _local2.rotateThis(rotation); _local1.x = _local2.x; _local1.y = _local2.y; Vec2DPool.recycle(_local2); }; return (_local1); } public function contains(_arg1:Number, _arg2:Number):Boolean{ return (false); } } }//package idv.cjcat.stardust.twoD.zones
Section 238
//TwoDClassPackage (idv.cjcat.stardust.twoD.TwoDClassPackage) package idv.cjcat.stardust.twoD { import idv.cjcat.stardust.common.xml.*; import idv.cjcat.stardust.twoD.initializers.*; import idv.cjcat.stardust.twoD.actions.*; import idv.cjcat.stardust.twoD.zones.*; import idv.cjcat.stardust.twoD.deflectors.*; import idv.cjcat.stardust.twoD.fields.*; import idv.cjcat.stardust.twoD.emitters.*; import idv.cjcat.stardust.twoD.renderers.*; import idv.cjcat.stardust.twoD.actions.triggers.*; public class TwoDClassPackage extends ClassPackage { private static var _instance:TwoDClassPackage; final override protected function populateClasses():void{ classes.push(RandomDrift); classes.push(Accelerate); classes.push(Collide); classes.push(Damping); classes.push(DeathZone); classes.push(Deflect); classes.push(Explode); classes.push(Gravity); classes.push(Impulse); classes.push(LazyAction); classes.push(Move); classes.push(MutualGravity); classes.push(NormalDrift); classes.push(Oriented); classes.push(ReorderDisplayObject); classes.push(Spawn); classes.push(SpeedLimit); classes.push(Spin); classes.push(StardustSpriteUpdate); classes.push(VelocityField); classes.push(ZoneTrigger); classes.push(BoundingBox); classes.push(BoundingCircle); classes.push(CircleDeflector); classes.push(LineDeflector); classes.push(WrappingBox); classes.push(Emitter2D); classes.push(BitmapField); classes.push(RadialField); classes.push(UniformField); classes.push(DisplayObjectClass); classes.push(DisplayObjectParent); classes.push(LazyInitializer); classes.push(Omega); classes.push(Position); classes.push(Rotation); classes.push(Velocity); classes.push(BitmapRenderer); classes.push(DisplayObjectRenderer); classes.push(SingularBitmapRenderer); classes.push(PixelRenderer); classes.push(BitmapZone); classes.push(CircleContour); classes.push(CircleZone); classes.push(CompositeZone); classes.push(LazySectorZone); classes.push(Line); classes.push(RectContour); classes.push(RectZone); classes.push(SectorZone); classes.push(SinglePoint); } public static function getInstance():TwoDClassPackage{ if (!_instance){ _instance = new (TwoDClassPackage); }; return (_instance); } } }//package idv.cjcat.stardust.twoD
Section 239
//sd (idv.cjcat.stardust.sd) package idv.cjcat.stardust { public namespace sd = "http://cjcat.idv/stardust"; }//package idv.cjcat.stardust
Section 240
//Stardust (idv.cjcat.stardust.Stardust) package idv.cjcat.stardust { public class Stardust { public static const BLOG:String = "http://cjcat.blogspot.com"; public static const PROJECT_NAME:String = "Stardust Particle Engine"; public static const GALLERY:String = "http://cjcat2266.deviantart.com"; public static const PROJECT_HOMEPAGE:String = "http://code.google.com/p/stardust-particle-engine"; public static const AUTHOR:String = "CJ Cat (Allen Chou)"; public static const EMAIL:String = "cjcat2266@gmail.com"; public static const VERSION:String = "1.0.92 Beta"; } }//package idv.cjcat.stardust
Section 241
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; var sendHostProgress:Boolean; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (_local2); }; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = 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{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (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.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _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 _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _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++; }; }; if (_local3.id == "test"){ }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var clip:Object; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {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); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = 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; //unresolved jump }; var lv:URLVariables = 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; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{ }); loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 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 adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }, progress_override:function (_arg1:Object):Number{ return (NaN); }, bar_offset:0}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = 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); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = (10 + options.bar_offset); bar.y = (h - 20); }; var bar_w:Number = ((w - bar.x) - 10); var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo(bar_w, 0); backing.lineTo(bar_w, 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo(bar_w, 0); inside.lineTo(bar_w, 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo(bar_w, 0); outline.lineTo(bar_w, 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 = (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; var progress:Number = Math.min(1, options.progress_override(clip)); var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; if (!isNaN(progress)){ complete = (progress == 1); } else { if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){ complete = true; } else { if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local12:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; var _local7:Number = Math.min(1, options.progress_override(_local1)); if (_local7 == 1){ complete = true; }; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local8:Number = ((100 * _local6) / _local5); if (!isNaN(_local7)){ _local8 = (100 * _local7); }; var _local9:Number = ((100 * _local3) / chk.ad_msec); var _local10:Object = this._mochiad_bar._inside; var _local11:Number = Math.min(100, Math.min(((_local8) || (0)), _local9)); _local11 = Math.max(this.last_pcnt, _local11); this.last_pcnt = _local11; _local10.scaleX = (_local11 * 0.01); options.ad_progress(_local11); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local8}); if (_local8 >= 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local12 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local12 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local8 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (unloaded){ MochiAd.unload(_local1); } else { 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 showTimedAd(_arg1:Object):void{ MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi.as3
Section 242
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const LOGGED_IN:String = "LoggedIn"; public static const STORE_ITEMS:String = "StoreItems"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const ITEM_NEW:String = "ItemNew"; public static const USER_INFO:String = "UserInfo"; public static const IO_ERROR:String = "IOError"; public static const ITEM_OWNED:String = "ItemOwned"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const ERROR:String = "Error"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_HIDE:String = "LoginHide"; public static const LOGIN_SHOW:String = "LoginShow"; public static const STORE_SHOW:String = "StoreShow"; public static const PROFILE_HIDE:String = "ProfileHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } } }//package mochi.as3
Section 243
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function set value(_arg1:Number):void{ setValue(_arg1); } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function get value():Number{ return (Number(this.toString())); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 244
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3
Section 245
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local4:Object; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function endGame():void{ var _local1:Number = (new Date().time - gameStart); trigger("end_game", {time:_local1}); } public static function startGame():void{ gameStart = new Date().time; trigger("start_game"); } public static function trigger(_arg1:String, _arg2:Object=null):void{ if (_arg2 == null){ _arg2 = {}; } else { if (_arg2["kind"] != undefined){ _arg2["kind"] = _arg1; }; }; MochiServices.send("events_triggerEvent", {eventObject:_arg2}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startLevel():void{ levelStart = new Date().time; trigger("start_level"); } public static function endLevel():void{ var _local1:Number = (new Date().time - levelStart); trigger("end_level", {time:_local1}); } } }//package mochi.as3
Section 246
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ } else { if (Math.floor(n) != n){ }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); //unresolved jump }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); //unresolved jump }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); //unresolved jump }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; var _local2:Object = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ } else { if (Math.floor(_arg1) != _arg1){ }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 247
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _clip:MovieClip; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _loader:Loader; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(_arg1:Object):void{ var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = _clip._callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; var methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; //unresolved jump }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { }; }; }; delete _clip._callbacks[cb]; } public static function get childClip():Object{ return (_clip); } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ return; }; if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ //unresolved jump }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ //unresolved jump }; return; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: return; }; _local3++; }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.3 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_clip._queue))){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "sync": servicesSync.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function urlOptions(_arg1:Object):Object{ var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; MochiServices.disconnect(); MochiServices.onError("IOError"); } private static function initComChannels():void{ if (!_connected){ _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_clip._queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function loadLCBridge(_arg1:Object):void{ var loader:Loader; var clip = _arg1; loader = new Loader(); var mochiLCURL:String = (_servURL + _mochiLC); var req:URLRequest = new URLRequest(mochiLCURL); var complete:Function = function (_arg1:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; } public static function get clip():Object{ return (_container); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var _local3:String = ("_mochiservices_com_" + _arg1); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; var _local4:String = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local4 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local4); _clip = createEmptyMovieClip(_arg2, _local3, 10336, false); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var _local5:URLRequest = new URLRequest(_local4); var _local6:URLVariables = new URLVariables(); _local6.listenLC = _listenChannelName; _local6.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local6.api_version = getVersion(); if (widget){ _local6.widget = true; }; _local5.data = _local6; _loader.load(_local5); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ _connecting = true; init(id, clip); }; //unresolved jump }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ }; }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; var mc:MovieClip = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 248
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ _syncContainer = {}; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ if (_syncContainer[_arg1] == _arg2){ return; }; var _local3:String = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } } }//package mochi.as3
Section 249
//gameEngine (photonstorm.starfish.gameEngine) package photonstorm.starfish { import flash.display.*; import flash.events.*; public class gameEngine extends Sprite { private var sfx:soundFX; private var alreadyPlayed:Boolean;// = false private var reveal:revealSequence; private var game:gameLoop; private var stageRef:Stage; private var mochiMC:MovieClip; private var menu:mainMenu; public function gameEngine():void{ sfx = new soundFX(); game = new gameLoop(); reveal = new revealSequence(); super(); } private function swapMenu(_arg1:Event):void{ removeChild(menu); startGame(); } private function showGameOver(_arg1:Event):void{ game.removeEventListener(gameLoop.GAME_OVER, showGameOver); reveal.addEventListener(revealSequence.REVEAL_COVERED, swapGame); reveal.go(); } private function swapGame(_arg1:Event):void{ removeChild(game); removeChild(mochiMC); reveal.removeEventListener(revealSequence.REVEAL_COVERED, swapGame); playMainMenu(true); } private function playMainMenu(_arg1:Boolean=false):void{ addChildAt(menu, 0); if (alreadyPlayed == false){ menu.init(sfx); }; menu.addEventListener(mainMenu.MAINMENU_STARTGAME, showReveal, false, 0, true); if (_arg1){ reveal.wipeOut(menu.go); } else { menu.go(); }; } private function startGame():void{ addChildAt(mochiMC, 0); addChildAt(game, 0); if (alreadyPlayed == false){ game.init(stageRef, sfx); }; game.go(alreadyPlayed); reveal.removeEventListener(revealSequence.REVEAL_COVERED, swapMenu); reveal.wipeOutClean(); game.addEventListener(gameLoop.GAME_OVER, showGameOver, false, 0, true); } public function init(_arg1:Stage, _arg2:MovieClip, _arg3:Boolean):void{ stageRef = _arg1; mochiMC = _arg2; menu = new mainMenu(_arg3); addEventListener(Event.ADDED_TO_STAGE, startUp); } private function showReveal(_arg1:Event):void{ menu.removeEventListener(mainMenu.MAINMENU_STARTGAME, startGame); reveal.addEventListener(revealSequence.REVEAL_COVERED, swapMenu); reveal.go(); } private function startUp(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, startUp); addChild(reveal); playMainMenu(); } } }//package photonstorm.starfish
Section 250
//gameLoop (photonstorm.starfish.gameLoop) package photonstorm.starfish { import flash.display.*; import flash.events.*; import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.actions.*; import flash.utils.*; import gs.*; import idv.cjcat.stardust.common.clocks.*; import idv.cjcat.stardust.twoD.initializers.*; import idv.cjcat.stardust.twoD.actions.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.twoD.zones.*; import idv.cjcat.stardust.twoD.fields.*; import mochi.as3.*; import com.coreyoneil.collision.*; import idv.cjcat.stardust.twoD.emitters.*; import idv.cjcat.stardust.twoD.renderers.*; import flash.text.*; public class gameLoop extends Sprite { private var level:MovieClip; private var sfx:soundFX; private var currentLevel:int; private var timerText:TextField; private var starFishText:TextField; private var mouseOver:Boolean;// = false private var muteButton:MovieClip; private var levelIndex:int; private var countdown:int; private var utils:globalUtils; private var starfishTotal:int; private var stageRef:Stage; private var background:MovieClip; private var othergames:MovieClip; private var help:MovieClip; private var renderer:DisplayObjectRenderer; private var timer:int; private var foregroundLeaderboard:MovieClip; private var foreground:MovieClip; private var player:MovieClip; private var playerSpeed:Number;// = 16 private var bubbles:Sprite; private var badCollisionList:CollisionList; private var emitter:Emitter2D; private var levels:Array; private var collisionList:CollisionList; private var starfishThisLevel:int; public static const GAME_OVER:String = "gameOver"; private static const DEGTORAD:Number = 0.0174532925199433; private static const RADTODEG:Number = 57.2957795130823; public function gameLoop(){ utils = new globalUtils(); background = new backgroundMC(); foregroundLeaderboard = new foregroundMC(); foreground = new foregroundIngameMC(); player = new playerFishMC(); othergames = new otherGamesMC(); super(); } public function angleToCoordinates(_arg1:DisplayObject, _arg2:int, _arg3:int):Number{ var _local4:Number = Math.atan2((_arg3 - _arg1.y), (_arg2 - _arg1.x)); return ((_local4 * RADTODEG)); } public function init(_arg1:Stage, _arg2:soundFX):void{ stageRef = _arg1; sfx = _arg2; background.mouseEnabled = false; foreground.mouseEnabled = false; starFishText = TextField(foreground.getChildByName("score")); timerText = TextField(foreground.getChildByName("timer")); player.cacheAsBitmap = true; player.mouseEnabled = false; player.scaleX = 0.3; player.scaleY = 0.3; player.x = 320; player.y = 200; muteButton = MovieClip(foreground.getChildByName("muteButton")); muteButton.mouseEnabled = true; muteButton.buttonMode = true; muteButton.useHandCursor = true; bubbles = new Sprite(); bubbles.mouseEnabled = false; help = new helpOverlayMC(); levels = new Array(); levels.push(new level01MC()); levels.push(new level02MC()); levels.push(new level03MC()); levels.push(new level04MC()); levels.push(new level05MC()); levels.push(new level06MC()); levels.push(new level07MC()); levels.push(new level08MC()); levels.push(new level09MC()); levels.push(new level10MC()); levels.push(new level11MC()); levels.push(new level12MC()); levels.push(new level13MC()); levels.push(new level14MC()); levels.push(new level15MC()); levels.push(new level16MC()); levels.push(new level17MC()); levels.push(new level18MC()); levels.push(new level19MC()); levels.push(new level20MC()); levels.push(new level21MC()); levels.push(new level22MC()); levels.push(new level23MC()); levels.push(new level24MC()); levels.push(new level25MC()); currentLevel = 0; parseLevel(); foregroundLeaderboard.mouseEnabled = false; foregroundLeaderboard.visible = false; othergames.visible = false; othergames.x = 120; othergames.y = 390; addChild(background); addChild(bubbles); addChild(level); addChild(player); addChild(foregroundLeaderboard); addChild(foreground); addChild(help); addChild(othergames); levelIndex = getChildIndex(level); } private function toggleMute(_arg1:MouseEvent):void{ if (sfx.isMuted){ sfx.unMute(); muteButton.gotoAndPlay(1); } else { sfx.mute(); muteButton.gotoAndPlay(2); }; } private function kickIt(_arg1:Event):void{ help.removeEventListener(MouseEvent.CLICK, kickIt); TweenMax.to(help, 0.5, {autoAlpha:0}); addEventListener(Event.ENTER_FRAME, mainLoop); } private function bubbleMachine():void{ emitter = new Emitter2D(new SteadyClock(0.5)); renderer = new DisplayObjectRenderer(bubbles); renderer.addEmitter(emitter); var _local1:DisplayObjectClass = new DisplayObjectClass(bubbleMC); var _local2:Position = new Position(new Line(10, 480, 630, 480)); var _local3:Velocity = new Velocity(new SinglePoint(0, -1)); var _local4:Alpha = new Alpha(new UniformRandom(0.3, 0.2)); var _local5:Scale = new Scale(new UniformRandom(0.5, 0.3)); emitter.addInitializer(_local4); emitter.addInitializer(_local5); emitter.addInitializer(_local1); emitter.addInitializer(_local2); emitter.addInitializer(_local3); var _local6:Move = new Move(); var _local7:DeathZone = new DeathZone(new RectZone(-32, 0, 672, 500), true); var _local8:RandomDrift = new RandomDrift(0.2, 0.4); var _local9:Gravity = new Gravity(); _local9.addField(new UniformField(0, -0.1)); emitter.addAction(_local9); emitter.addAction(_local6); emitter.addAction(_local7); emitter.addAction(_local8); } public function angleToObject(_arg1:DisplayObject, _arg2:Boolean=true):Number{ var _local3:Number = Math.atan2((mouseY - _arg1.y), (mouseX - _arg1.x)); if (_arg2){ return ((_local3 * RADTODEG)); }; return (_local3); } private function parseLevel(_arg1:Boolean=false):void{ var _local2:int; var _local3:int; level = utils.duplicateMovieClip(levels[currentLevel]); level.cacheAsBitmap = true; starfishThisLevel = 0; collisionList = new CollisionList(player); badCollisionList = new CollisionList(player); var _local4:int; while (_local4 < level.numChildren) { if (level.getChildAt(_local4) != null){ switch (level.getChildAt(_local4).name){ case "playerStart": _local2 = MovieClip(level.getChildAt(_local4)).x; _local3 = MovieClip(level.getChildAt(_local4)).y; MovieClip(level.getChildAt(_local4)).visible = false; break; case "starfish": level.getChildAt(_local4).cacheAsBitmap = true; collisionList.addItem(level.getChildAt(_local4)); starfishThisLevel++; break; default: level.getChildAt(_local4).cacheAsBitmap = true; badCollisionList.addItem(level.getChildAt(_local4)); break; }; }; _local4++; }; if (_arg1){ player.rotation = angleToCoordinates(player, _local2, _local3); if ((((((player.rotation >= -180)) && ((player.rotation <= -90)))) || ((((player.rotation <= 180)) && ((player.rotation >= 90)))))){ if (player.scaleY == 0.3){ player.scaleY = -0.3; }; } else { if (player.scaleY == -0.3){ player.scaleY = 0.3; }; }; TweenMax.to(player, 2, {x:_local2, y:_local3}); } else { player.x = _local2; player.y = _local3; }; } public function asRadians(_arg1:Number):Number{ return ((_arg1 * DEGTORAD)); } private function randomizeArray(_arg1:Array):Array{ var _local2:Array = new Array(); while (_arg1.length > 0) { _local2.push(_arg1.splice(Math.floor((Math.random() * _arg1.length)), 1)); }; return (_local2); } public function distanceToObject(_arg1:DisplayObject, _arg2:Boolean=true):Number{ var _local3:Number = (_arg1.x - mouseX); var _local4:Number = (_arg1.y - mouseY); var _local5:Number = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); if (_arg2){ return (Math.round(_local5)); }; return (_local5); } private function timeFormat(_arg1:uint):String{ var _local2:int; var _local3:int; var _local4:int; var _local5:String; if (_arg1 > 6000){ _local3 = Math.floor((_arg1 / 60)); _local4 = (_arg1 - (_local3 * 60)); _local5 = (_local3.toString() + ":"); } else { if (_arg1 > 600){ _local3 = Math.floor((_arg1 / 60)); _local4 = (_arg1 - (_local3 * 60)); _local5 = (_local3.toString() + ":"); } else { if ((((_arg1 >= 60)) && ((_arg1 < 600)))){ _local3 = Math.floor((_arg1 / 60)); _local4 = (_arg1 - (_local3 * 60)); _local5 = (("0" + _local3.toString()) + ":"); } else { _local4 = _arg1; _local5 = "00:"; }; }; }; if (_local4 < 10){ _local5 = _local5.concat("0"); }; _local5 = _local5.concat(_local4.toString()); return (_local5); } private function showLeaderboard():void{ foregroundLeaderboard.visible = true; foreground.visible = false; othergames.visible = true; var o:Object = {n:[5, 0, 4, 12, 13, 14, 10, 12, 10, 15, 2, 3, 4, 3, 9, 15], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:starfishTotal, onClose:afterScoreSubmit, onError:afterScoreSubmit}); } private function startLevel():void{ addEventListener(MouseEvent.CLICK, startLevelClick); } private function afterScoreSubmit(_arg1=false):void{ removeChild(level); removeEventListener(Event.ENTER_FRAME, emitter.step); othergames.visible = false; dispatchEvent(new Event(GAME_OVER)); } private function stopListening():void{ stage.removeEventListener(MouseEvent.MOUSE_OVER, function (_arg1){ mouseOver = true; }); stage.removeEventListener(MouseEvent.MOUSE_OUT, function (_arg1){ mouseOver = false; }); stage.removeEventListener(Event.MOUSE_LEAVE, function (_arg1){ mouseOver = false; }); muteButton.removeEventListener(MouseEvent.CLICK, toggleMute); removeEventListener(Event.ENTER_FRAME, mainLoop); } private function levelComplete():void{ removeEventListener(Event.ENTER_FRAME, mainLoop); level.visible = false; removeChild(level); collisionList.dispose(); badCollisionList.dispose(); currentLevel++; if (currentLevel >= levels.length){ currentLevel = 0; }; parseLevel(true); addChildAt(level, levelIndex); countdown = (countdown + 10); timerText.text = ("time: " + timeFormat(countdown)); TweenMax.to(level, 0, {blurFilter:{blurX:32, blurY:32}}); TweenMax.to(level, 2, {blurFilter:{blurX:0, blurY:0, delay:0.2}, onComplete:startLevel}); level.visible = true; } public function go(_arg1:Boolean):void{ player.rotation = 0; player.scaleX = 0.3; player.scaleY = 0.3; player.filters = []; foregroundLeaderboard.visible = false; foreground.visible = true; TweenMax.to(player, 0, {blurFilter:{blurX:0, blurY:0}}); if (sfx.isMuted){ muteButton.gotoAndStop(2); } else { muteButton.gotoAndStop(1); }; currentLevel = 0; if (_arg1){ parseLevel(); }; bubbleMachine(); starfishTotal = 0; countdown = (levels.length * 8); timerText.text = ("time: " + timeFormat(countdown)); timer = (getTimer() + 1000); help.alpha = 1; help.visible = true; startListening(); } private function startLevelClick(_arg1:MouseEvent):void{ removeEventListener(MouseEvent.CLICK, startLevelClick); addEventListener(Event.ENTER_FRAME, mainLoop); } private function levelQuit(_arg1:Event):void{ dispatchEvent(new Event(GAME_OVER)); } private function gameOver():void{ timerText.text = "time: 0"; TweenMax.to(level, 2, {blurFilter:{blurX:32, blurY:32}}); TweenMax.to(player, 2, {blurFilter:{blurX:32, blurY:32}, onComplete:showLeaderboard}); collisionList.dispose(); badCollisionList.dispose(); stopListening(); } private function startListening():void{ stage.addEventListener(MouseEvent.MOUSE_OVER, function (_arg1){ mouseOver = true; }); stage.addEventListener(MouseEvent.MOUSE_OUT, function (_arg1){ mouseOver = false; }); stage.addEventListener(Event.MOUSE_LEAVE, function (_arg1){ mouseOver = false; }); muteButton.addEventListener(MouseEvent.CLICK, toggleMute); help.addEventListener(MouseEvent.CLICK, kickIt); addEventListener(Event.ENTER_FRAME, emitter.step); } private function mainLoop(_arg1:Event):void{ var _local5:Number; var _local6:Object; var _local7:MovieClip; var _local8:MovieClip; var _local2:Boolean; timerText.text = ("time: " + timeFormat(countdown)); starFishText.text = starfishTotal.toString(); if (getTimer() > timer){ timer = (getTimer() + 1000); countdown = (countdown - 1); }; if (mouseOver){ player.rotation = angleToObject(player); if ((((((player.rotation >= -180)) && ((player.rotation <= -90)))) || ((((player.rotation <= 180)) && ((player.rotation >= 90)))))){ if (player.scaleY == 0.3){ player.scaleY = -0.3; }; } else { if (player.scaleY == -0.3){ player.scaleY = 0.3; }; }; }; if (player.hitTestPoint(mouseX, mouseY, false) == false){ if (distanceToObject(player) > 150){ player.x = (player.x + (Math.cos((player.rotation * 0.0174532925199433)) * playerSpeed)); player.y = (player.y + (Math.sin((player.rotation * 0.0174532925199433)) * playerSpeed)); } else { _local5 = (distanceToObject(player) / (150 / playerSpeed)); if (_local5 > 0.5){ player.x = (player.x + (Math.cos((player.rotation * 0.0174532925199433)) * _local5)); player.y = (player.y + (Math.sin((player.rotation * 0.0174532925199433)) * _local5)); }; }; }; var _local3:Array = collisionList.checkCollisions(); var _local4:int; while (_local4 < _local3.length) { _local6 = _local3[_local4]; starfishThisLevel--; starfishTotal++; _local7 = new scorePopMC(); _local7.cacheAsBitmap = true; _local7.mouseEnabled = false; _local7.x = player.x; _local7.y = player.y; level.addChild(_local7); sfx.playEffectBubbles(); TweenMax.to(_local7, 0.5, {y:"-200", autoAlpha:0}); if (_local6.object1 == player){ TweenMax.to(MovieClip(_local6.object2), 0.5, {scaleX:0, scaleY:0, autoAlpha:0, delay:0.1}); collisionList.removeItem(_local6.object2); } else { TweenMax.to(MovieClip(_local6.object1), 0.5, {scaleX:0, scaleY:0, autoAlpha:0, delay:0.1}); collisionList.removeItem(_local6.object1); }; if (starfishThisLevel <= 0){ _local2 = true; break; }; _local4++; }; _local3 = badCollisionList.checkCollisions(); _local4 = 0; while (_local4 < _local3.length) { _local6 = _local3[_local4]; countdown = (countdown - 50); _local8 = new impactPopMC(); _local8.cacheAsBitmap = true; _local8.mouseEnabled = false; _local8.x = player.x; _local8.y = player.y; level.addChild(_local8); sfx.playEffectCollision(); TweenMax.to(_local8, 1.4, {y:"200", autoAlpha:0}); if (_local6.object1 == player){ TweenMax.to(MovieClip(_local6.object2), 0.8, {scaleX:2, scaleY:2, autoAlpha:0}); badCollisionList.removeItem(_local6.object2); } else { TweenMax.to(MovieClip(_local6.object1), 0.8, {scaleX:2, scaleY:2, autoAlpha:0}); badCollisionList.removeItem(_local6.object1); }; _local4++; }; if (countdown <= 0){ gameOver(); }; if (_local2){ levelComplete(); }; } } }//package photonstorm.starfish
Section 251
//globalUtils (photonstorm.starfish.globalUtils) package photonstorm.starfish { import flash.display.*; import flash.utils.*; import flash.geom.*; public class globalUtils { public function duplicateSprite(_arg1:DisplayObject):Sprite{ var _local4:Rectangle; var _local2:Class = Object(_arg1).constructor; var _local3:DisplayObject = new (_local2); _local3.transform = _arg1.transform; _local3.filters = _arg1.filters; _local3.cacheAsBitmap = _arg1.cacheAsBitmap; _local3.opaqueBackground = _arg1.opaqueBackground; if (_arg1.scale9Grid){ _local4 = _arg1.scale9Grid; _local3.scale9Grid = _local4; }; return (Sprite(_local3)); } public function createMovieClipFromLinkageValue(_arg1:String):MovieClip{ var libraryReference:Class; var linkageValue = _arg1; try { libraryReference = (getDefinitionByName(linkageValue) as Class); } catch(error:ReferenceError) { }; if (libraryReference){ return (new (libraryReference)); }; return (new MovieClip()); } public function duplicateMovieClip(_arg1:DisplayObject):MovieClip{ var _local4:Rectangle; var _local2:Class = Object(_arg1).constructor; var _local3:DisplayObject = new (_local2); _local3.transform = _arg1.transform; _local3.filters = _arg1.filters; _local3.cacheAsBitmap = _arg1.cacheAsBitmap; _local3.opaqueBackground = _arg1.opaqueBackground; if (_arg1.scale9Grid){ _local4 = _arg1.scale9Grid; _local3.scale9Grid = _local4; }; return (MovieClip(_local3)); } public function duplicateDisplayObject(_arg1:DisplayObject, _arg2:Boolean=false):DisplayObject{ var _local5:Rectangle; var _local3:Class = Object(_arg1).constructor; var _local4:DisplayObject = new (_local3); _local4.transform = _arg1.transform; _local4.filters = _arg1.filters; _local4.cacheAsBitmap = _arg1.cacheAsBitmap; _local4.opaqueBackground = _arg1.opaqueBackground; if (_arg1.scale9Grid){ _local5 = _arg1.scale9Grid; _local4.scale9Grid = _local5; }; if (((_arg2) && (_arg1.parent))){ _arg1.parent.addChild(_local4); }; return (_local4); } } }//package photonstorm.starfish
Section 252
//mainMenu (photonstorm.starfish.mainMenu) package photonstorm.starfish { import flash.display.*; import flash.events.*; import idv.cjcat.stardust.common.initializers.*; import idv.cjcat.stardust.common.actions.*; import idv.cjcat.stardust.common.clocks.*; import idv.cjcat.stardust.twoD.initializers.*; import idv.cjcat.stardust.twoD.actions.*; import idv.cjcat.stardust.common.math.*; import idv.cjcat.stardust.twoD.zones.*; import idv.cjcat.stardust.twoD.deflectors.*; import idv.cjcat.stardust.twoD.fields.*; import idv.cjcat.stardust.twoD.emitters.*; import idv.cjcat.stardust.twoD.renderers.*; import flash.net.*; public class mainMenu extends Sprite { private var container:Sprite; private var renderer:DisplayObjectRenderer; public var level:uint; private var sfx:soundFX; private var showKaiser:Boolean;// = false private var deflektor:CircleDeflector; private var menu:MovieClip; private var player:MovieClip; private var moreGamesURL:String;// = "http://www.photonstorm.com/gamedata/starfish.php" private var playerSpeed:Number;// = 10 private var kibaGamesURL:String;// = "http://www.kibagames.com" private var background:MovieClip; private var sponsorURL:String;// = "http://www.photonstorm.com/gamedata/starfish.php?d=sponsor" private var emitter:Emitter2D; public static const MAINMENU_STARTGAME:String = "mainMenuStartGame"; private static const RADTODEG:Number = 57.2957795130823; public function mainMenu(_arg1:Boolean):void{ player = new playerFishMC(); background = new backgroundMC(); super(); showKaiser = _arg1; } public function init(_arg1:soundFX):void{ sfx = _arg1; player.cacheAsBitmap = true; player.mouseEnabled = false; player.scaleX = 0.3; player.scaleY = 0.3; player.x = 320; player.y = 200; menu = new mainMenuMC(); menu.showKaiser = showKaiser; } private function mainLoop(_arg1:Event):void{ var _local2:Number; emitter.step(); deflektor.x = player.x; deflektor.y = player.y; player.rotation = angleToObject(player); if ((((((player.rotation >= -180)) && ((player.rotation <= -90)))) || ((((player.rotation <= 180)) && ((player.rotation >= 90)))))){ if (player.scaleY == 0.3){ player.scaleY = -0.3; }; } else { if (player.scaleY == -0.3){ player.scaleY = 0.3; }; }; if (player.hitTestPoint(mouseX, mouseY, false) == false){ if (distanceToObject(player) > 150){ player.x = (player.x + (Math.cos((player.rotation * 0.0174532925199433)) * playerSpeed)); player.y = (player.y + (Math.sin((player.rotation * 0.0174532925199433)) * playerSpeed)); } else { _local2 = (distanceToObject(player) / (150 / playerSpeed)); if (_local2 > 0.5){ player.x = (player.x + (Math.cos((player.rotation * 0.0174532925199433)) * _local2)); player.y = (player.y + (Math.sin((player.rotation * 0.0174532925199433)) * _local2)); }; }; }; } private function showCredits(_arg1:Event):void{ sfx.playEffectMenuClick(); menu.gotoAndPlay("credits_on"); } private function bubbleMachine():void{ emitter = new Emitter2D(new SteadyClock(1)); container = new Sprite(); container.mouseEnabled = false; renderer = new DisplayObjectRenderer(container); renderer.addEmitter(emitter); deflektor = new CircleDeflector(0, 0, 32); deflektor.bounce = 0; var _local1:Deflect = new Deflect(); _local1.addDeflector(deflektor); var _local2:DisplayObjectClass = new DisplayObjectClass(bubbleMC); var _local3:Position = new Position(new Line(10, 480, 630, 480)); var _local4:Velocity = new Velocity(new SinglePoint(0, -3)); var _local5:Alpha = new Alpha(new UniformRandom(0.5, 0.3)); var _local6:Scale = new Scale(new UniformRandom(0.5, 0.3)); emitter.addInitializer(_local5); emitter.addInitializer(_local6); emitter.addInitializer(_local2); emitter.addInitializer(_local3); emitter.addInitializer(_local4); var _local7:Gravity = new Gravity(); _local7.addField(new UniformField(0, -0.1)); emitter.addAction(_local7); var _local8:Move = new Move(); var _local9:DeathZone = new DeathZone(new RectZone(-32, 0, 672, 500), true); var _local10:RandomDrift = new RandomDrift(0.2, 0.4); emitter.addAction(_local1); emitter.addAction(new Age(1)); emitter.addAction(_local8); emitter.addAction(_local9); emitter.addAction(_local10); } private function kibaGames(_arg1:Event):void{ sfx.playEffectMenuClick(); navigateToURL(new URLRequest(kibaGamesURL), "_blank"); } public function angleToObject(_arg1:DisplayObject, _arg2:Boolean=true):Number{ var _local3:Number = Math.atan2((mouseY - _arg1.y), (mouseX - _arg1.x)); if (_arg2){ return ((_local3 * RADTODEG)); }; return (_local3); } public function go(_arg1:Boolean=false):void{ bubbleMachine(); sfx.playMusic(); menu.addEventListener("startGame", startGame, false, 0, true); menu.addEventListener("showCredits", showCredits, false, 0, true); menu.addEventListener("kibaGames", kibaGames, false, 0, true); menu.addEventListener("showMoreGames", showMoreGames, false, 0, true); menu.addEventListener("openSponsorPage", openSponsorPage, false, 0, true); addChild(background); addChild(container); addChild(player); addChild(menu); if (_arg1){ menu.gotoAndPlay(15); player.visible = true; } else { menu.gotoAndPlay("start"); }; addEventListener(Event.ENTER_FRAME, mainLoop); } private function showMoreGames(_arg1:Event):void{ sfx.playEffectMenuClick(); navigateToURL(new URLRequest(moreGamesURL), "_blank"); } public function distanceToObject(_arg1:DisplayObject, _arg2:Boolean=true):Number{ var _local3:Number = (_arg1.x - mouseX); var _local4:Number = (_arg1.y - mouseY); var _local5:Number = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); if (_arg2){ return (Math.round(_local5)); }; return (_local5); } private function openSponsorPage(_arg1:Event):void{ sfx.playEffectMenuClick(); navigateToURL(new URLRequest(sponsorURL), "_blank"); } private function startGame(_arg1:Event):void{ menu.gotoAndStop(15); player.visible = false; emitter.active = false; sfx.playEffectMenuClick(); removeEventListener(Event.ENTER_FRAME, mainLoop); menu.removeEventListener("startGame", startGame); menu.removeEventListener("showCredits", showCredits); menu.removeEventListener("showMoreGames", showMoreGames); menu.removeEventListener("openSponsorPage", openSponsorPage); dispatchEvent(new Event(mainMenu.MAINMENU_STARTGAME)); } } }//package photonstorm.starfish
Section 253
//revealSequence (photonstorm.starfish.revealSequence) package photonstorm.starfish { import flash.display.*; import flash.events.*; import gs.*; public class revealSequence extends Sprite { public static const REVEAL_DONE:String = "revealDone"; public static const REVEAL_COVERED:String = "revealCovered"; public function go():void{ var _local1:MovieClip; var _local4:int; var _local5:Number; var _local2:Number = 0; var _local3 = -32; while (_local3 < 500) { _local4 = -32; while (_local4 < 680) { if (Math.random() > 0.5){ _local1 = new yellowClamMC(); } else { _local1 = new pinkClamMC(); }; _local1.isDaisy = true; _local1.cacheAsBitmap = true; _local1.x = (_local4 + (Math.random() * 32)); _local1.y = (_local3 + (Math.random() * 32)); _local1.scaleX = 0; _local1.scaleY = 0; addChild(_local1); _local5 = (1.8 + (Math.random() / 2)); TweenMax.to(_local1, 0.1, {scaleX:_local5, scaleY:_local5, delay:_local2}); _local2 = (_local2 + 0.1); _local4 = (_local4 + 56); }; _local2 = 0; _local3 = (_local3 + 56); }; TweenMax.delayedCall(1.5, sendSignal); } public function wipeOutClean():void{ var _local1:Number = 0; var _local2:uint; while (_local2 < this.numChildren) { if (MovieClip(getChildAt(_local2)).isDaisy){ TweenMax.to((getChildAt(_local2) as MovieClip), 0.3, {alpha:0.1, scaleX:0, scaleY:0, delay:_local1, onComplete:tidyUp, onCompleteParams:[(getChildAt(_local2) as MovieClip)]}); if ((_local2 % 8) == 0){ _local1 = (_local1 + 0.1); }; }; _local2++; }; } private function tidyUp(_arg1:MovieClip):void{ removeChild(_arg1); } public function wipeOut(_arg1:Function):void{ var _local2:Number = 0; var _local3:uint; while (_local3 < this.numChildren) { if (MovieClip(getChildAt(_local3)).isDaisy){ TweenMax.to((getChildAt(_local3) as MovieClip), 0.3, {alpha:0.1, scaleX:0, scaleY:0, delay:_local2, onComplete:tidyUp, onCompleteParams:[(getChildAt(_local3) as MovieClip)]}); if ((_local3 % 8) == 0){ _local2 = (_local2 + 0.1); }; }; _local3++; }; TweenMax.delayedCall(_local2, _arg1, [true]); } private function sendSignal():void{ dispatchEvent(new Event(REVEAL_COVERED)); } } }//package photonstorm.starfish
Section 254
//soundFX (photonstorm.starfish.soundFX) package photonstorm.starfish { import flash.display.*; import flash.media.*; public class soundFX extends Sprite { private var musicIntro:Sound; private var globalTransform:SoundTransform; private var effectBubbles:Sound; public var musicPlaying:Boolean;// = false private var musicChannel:SoundChannel; private var effectMenuClick:Sound; private var effectCollision:Sound; private var effectsChannel:SoundChannel; public var fxPlaying:Boolean;// = false private static var soundMuted:Boolean = false; public function soundFX(){ musicIntro = new gameMusic(); effectMenuClick = new menuClickFX(); effectCollision = new collisionFX(); effectBubbles = new bubblesFX(); musicChannel = new SoundChannel(); effectsChannel = new SoundChannel(); globalTransform = new SoundTransform(); super(); } public function stopMusic():void{ musicChannel.stop(); musicPlaying = false; } public function playEffectMenuClick():void{ if (soundMuted == false){ effectsChannel = effectMenuClick.play(0, 0); globalTransform.volume = 1; effectsChannel.soundTransform = globalTransform; }; } public function playEffectCollision():void{ if (soundMuted == false){ effectsChannel = effectCollision.play(0, 0); globalTransform.volume = 1; effectsChannel.soundTransform = globalTransform; }; } public function playMusic():void{ if ((((soundMuted == false)) && ((musicPlaying == false)))){ musicChannel = musicIntro.play(0, int.MAX_VALUE); globalTransform.volume = 1; musicChannel.soundTransform = globalTransform; musicPlaying = true; }; } public function muteToggle():void{ if (soundMuted){ unMute(); } else { mute(); }; } public function playEffectBubbles():void{ if (soundMuted == false){ effectsChannel = effectBubbles.play(0, 0); globalTransform.volume = 1; effectsChannel.soundTransform = globalTransform; }; } public function mute():void{ soundMuted = true; globalTransform.volume = 0; musicChannel.soundTransform = globalTransform; effectsChannel.soundTransform = globalTransform; } public function unMute():void{ soundMuted = false; globalTransform.volume = 1; musicChannel.soundTransform = globalTransform; effectsChannel.soundTransform = globalTransform; } public function get isMuted():Boolean{ return (soundMuted); } } }//package photonstorm.starfish
Section 255
//button1_65 (StarFish_fla.button1_65) package StarFish_fla { import flash.display.*; import flash.accessibility.*; import flash.errors.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.text.*; import flash.ui.*; import flash.utils.*; public dynamic class button1_65 extends MovieClip { public function button1_65(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package StarFish_fla
Section 256
//button2_66 (StarFish_fla.button2_66) package StarFish_fla { import flash.display.*; import flash.accessibility.*; import flash.errors.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.text.*; import flash.ui.*; import flash.utils.*; public dynamic class button2_66 extends MovieClip { public function button2_66(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package StarFish_fla
Section 257
//button3_67 (StarFish_fla.button3_67) package StarFish_fla { import flash.display.*; import flash.accessibility.*; import flash.errors.*; import flash.events.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.text.*; import flash.ui.*; import flash.utils.*; public dynamic class button3_67 extends MovieClip { public function button3_67(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package StarFish_fla
Section 258
//backgroundMC (backgroundMC) package { import flash.display.*; public dynamic class backgroundMC extends MovieClip { } }//package
Section 259
//bubbleMC (bubbleMC) package { import flash.display.*; public dynamic class bubbleMC extends MovieClip { } }//package
Section 260
//bubblesFX (bubblesFX) package { import flash.media.*; public dynamic class bubblesFX extends Sound { } }//package
Section 261
//buttonMuteMC (buttonMuteMC) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.errors.*; import flash.system.*; import flash.accessibility.*; import flash.ui.*; public dynamic class buttonMuteMC extends MovieClip { public function buttonMuteMC(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 262
//collisionFX (collisionFX) package { import flash.media.*; public dynamic class collisionFX extends Sound { } }//package
Section 263
//daisyMC (daisyMC) package { import flash.display.*; public dynamic class daisyMC extends MovieClip { } }//package
Section 264
//foregroundIngameMC (foregroundIngameMC) package { import flash.display.*; import flash.text.*; public dynamic class foregroundIngameMC extends MovieClip { public var score:TextField; public var timer:TextField; public var muteButton:buttonMuteMC; } }//package
Section 265
//foregroundMC (foregroundMC) package { import flash.display.*; public dynamic class foregroundMC extends MovieClip { } }//package
Section 266
//gameFrame (gameFrame) package { import flash.display.*; public dynamic class gameFrame extends MovieClip { } }//package
Section 267
//gameMusic (gameMusic) package { import flash.media.*; public dynamic class gameMusic extends Sound { } }//package
Section 268
//helpOverlayMC (helpOverlayMC) package { import flash.display.*; public dynamic class helpOverlayMC extends MovieClip { } }//package
Section 269
//impactPopMC (impactPopMC) package { import flash.display.*; import flash.text.*; public dynamic class impactPopMC extends MovieClip { public var score:TextField; } }//package
Section 270
//leaf1MC (leaf1MC) package { import flash.display.*; public dynamic class leaf1MC extends MovieClip { } }//package
Section 271
//leaf2MC (leaf2MC) package { import flash.display.*; public dynamic class leaf2MC extends MovieClip { } }//package
Section 272
//level01MC (level01MC) package { import flash.display.*; public dynamic class level01MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 273
//level02MC (level02MC) package { import flash.display.*; public dynamic class level02MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 274
//level03MC (level03MC) package { import flash.display.*; public dynamic class level03MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 275
//level04MC (level04MC) package { import flash.display.*; public dynamic class level04MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 276
//level05MC (level05MC) package { import flash.display.*; public dynamic class level05MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 277
//level06MC (level06MC) package { import flash.display.*; public dynamic class level06MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 278
//level07MC (level07MC) package { import flash.display.*; public dynamic class level07MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 279
//level08MC (level08MC) package { import flash.display.*; public dynamic class level08MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 280
//level09MC (level09MC) package { import flash.display.*; public dynamic class level09MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 281
//level10MC (level10MC) package { import flash.display.*; public dynamic class level10MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 282
//level11MC (level11MC) package { import flash.display.*; public dynamic class level11MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 283
//level12MC (level12MC) package { import flash.display.*; public dynamic class level12MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 284
//level13MC (level13MC) package { import flash.display.*; public dynamic class level13MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 285
//level14MC (level14MC) package { import flash.display.*; public dynamic class level14MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 286
//level15MC (level15MC) package { import flash.display.*; public dynamic class level15MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 287
//level16MC (level16MC) package { import flash.display.*; public dynamic class level16MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 288
//level17MC (level17MC) package { import flash.display.*; public dynamic class level17MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 289
//level18MC (level18MC) package { import flash.display.*; public dynamic class level18MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 290
//level19MC (level19MC) package { import flash.display.*; public dynamic class level19MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 291
//level20MC (level20MC) package { import flash.display.*; public dynamic class level20MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 292
//level21MC (level21MC) package { import flash.display.*; public dynamic class level21MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 293
//level22MC (level22MC) package { import flash.display.*; public dynamic class level22MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 294
//level23MC (level23MC) package { import flash.display.*; public dynamic class level23MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 295
//level24MC (level24MC) package { import flash.display.*; public dynamic class level24MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 296
//level25MC (level25MC) package { import flash.display.*; public dynamic class level25MC extends MovieClip { public var playerStart:playerFishMC; public var starfish:MovieClip; } }//package
Section 297
//mainMenuMC (mainMenuMC) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.errors.*; import flash.system.*; import flash.accessibility.*; import flash.ui.*; public dynamic class mainMenuMC extends MovieClip { public var button2:MovieClip; public var button3:MovieClip; public var foreground:MovieClip; public var buttonPlay:MovieClip; public var buttonCredits:MovieClip; public var showKaiser:Boolean; public var buttonMoreGames:MovieClip; public var kiba:SimpleButton; public var bubbles:MovieClip; public var logo:SimpleButton; public var button1:MovieClip; public function mainMenuMC(){ addFrameScript(0, frame1, 29, frame30, 54, frame55, 69, frame70); } function frame30(){ stop(); foreground = MovieClip(getChildAt(6)); foreground.mouseEnabled = false; logo = SimpleButton(getChildAt(5)); logo.addEventListener(MouseEvent.CLICK, showMoreGames); kiba.addEventListener(MouseEvent.CLICK, kibaGames); if (showKaiser == false){ kiba.visible = false; }; button1 = MovieClip(getChildAt(2)); button2 = MovieClip(getChildAt(3)); button3 = MovieClip(getChildAt(4)); button1.useHandCursor = true; button1.buttonMode = true; button2.useHandCursor = true; button2.buttonMode = true; button3.useHandCursor = true; button3.buttonMode = true; button1.addEventListener(MouseEvent.MOUSE_OVER, mouseOverButton, false, 0, true); button1.addEventListener(MouseEvent.MOUSE_OUT, mouseOutButton, false, 0, true); button1.addEventListener(MouseEvent.CLICK, startGame, false, 0, true); button2.addEventListener(MouseEvent.MOUSE_OVER, mouseOverButton, false, 1, true); button2.addEventListener(MouseEvent.MOUSE_OUT, mouseOutButton, false, 1, true); button2.addEventListener(MouseEvent.CLICK, showCredits, false, 0, true); button3.addEventListener(MouseEvent.MOUSE_OVER, mouseOverButton, false, 0, true); button3.addEventListener(MouseEvent.MOUSE_OUT, mouseOutButton, false, 0, true); button3.addEventListener(MouseEvent.CLICK, showMoreGames, false, 0, true); } function frame70(){ gotoAndPlay("start"); } function frame55(){ stop(); this.addEventListener(MouseEvent.CLICK, carryOn, false, 0, true); } public function openSponsorPage(_arg1:MouseEvent):void{ dispatchEvent(new Event("openSponsorPage")); } public function startGame(_arg1:MouseEvent):void{ dispatchEvent(new Event("startGame")); } public function showCredits(_arg1:MouseEvent):void{ dispatchEvent(new Event("showCredits")); } public function carryOn(_arg1:MouseEvent):void{ this.removeEventListener(MouseEvent.CLICK, carryOn); gotoAndPlay("credits_off"); } public function showMoreGames(_arg1:MouseEvent):void{ dispatchEvent(new Event("showMoreGames")); } public function mouseOverButton(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndStop(2); } public function kibaGames(_arg1:MouseEvent):void{ dispatchEvent(new Event("kibaGames")); } public function mouseOutButton(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndStop(1); } function frame1(){ stop(); } } }//package
Section 298
//menuClickFX (menuClickFX) package { import flash.media.*; public dynamic class menuClickFX extends Sound { } }//package
Section 299
//mochiHolder (mochiHolder) package { import flash.display.*; public dynamic class mochiHolder extends MovieClip { } }//package
Section 300
//otherGamesMC (otherGamesMC) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.errors.*; import flash.system.*; import flash.accessibility.*; import flash.ui.*; public dynamic class otherGamesMC extends MovieClip { public var game2:SimpleButton; public var game3:SimpleButton; public var game4:SimpleButton; public var game1:SimpleButton; public function otherGamesMC(){ addFrameScript(0, frame1); } function frame1(){ game1.useHandCursor = true; game2.useHandCursor = true; game3.useHandCursor = true; game4.useHandCursor = true; game1.addEventListener(MouseEvent.CLICK, visitGame1); game2.addEventListener(MouseEvent.CLICK, visitGame2); game3.addEventListener(MouseEvent.CLICK, visitGame3); game4.addEventListener(MouseEvent.CLICK, visitGame4); } public function visitGame1(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.robotjamgames.com/games.php?game=flyingplatypus&refer=starfish"); navigateToURL(_local2, "_blank"); } public function visitGame2(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.robotjamgames.com/games.php?game=blobuloids&refer=starfish"); navigateToURL(_local2, "_blank"); } public function visitGame3(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.robotjamgames.com/games.php?game=monkeyBoom&refer=starfish"); navigateToURL(_local2, "_blank"); } public function visitGame4(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.robotjamgames.com/games.php?game=TheBubbleKing&refer=starfish"); navigateToURL(_local2, "_blank"); } } }//package
Section 301
//pinkClamMC (pinkClamMC) package { import flash.display.*; public dynamic class pinkClamMC extends MovieClip { } }//package
Section 302
//playerFishMC (playerFishMC) package { import flash.display.*; public dynamic class playerFishMC extends MovieClip { } }//package
Section 303
//robotLogoAnim (robotLogoAnim) package { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.geom.*; import flash.filters.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.errors.*; import flash.system.*; import flash.accessibility.*; import flash.ui.*; public dynamic class robotLogoAnim extends MovieClip { public function robotLogoAnim(){ addFrameScript(106, frame107); } function frame107(){ dispatchEvent(new Event("startGame")); stop(); } } }//package
Section 304
//scorePopMC (scorePopMC) package { import flash.display.*; import flash.text.*; public dynamic class scorePopMC extends MovieClip { public var score:TextField; } }//package
Section 305
//starfish (starfish) package { import flash.display.*; import flash.events.*; import photonstorm.starfish.*; import mochi.as3.*; import flash.text.*; import flash.net.*; import flash.ui.*; public class starfish extends MovieClip { private var skipMochiAd:Boolean;// = false private var showKaiser:Boolean;// = false public var mochiAdHolder:mochiHolder; public var _mochiads_game_id:String; private var mochiMC:MovieClip; public var stats:TextField; public var p:TextField; private var intro:MovieClip; private var loadComplete:Boolean;// = false public function starfish(){ mochiMC = new MovieClip(); super(); addFrameScript(0, frame1, 1, frame2); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.focus = null; var _local1:ContextMenu = new ContextMenu(); _local1.hideBuiltInItems(); this.contextMenu = _local1; var _local2:LocalConnection = new LocalConnection(); var _local3:String = _local2.domain; var _local4 = "4ef99aae18d0b641"; if (_local3.search("cdn.kaisergames.com") > -1){ showKaiser = true; }; addEventListener(Event.ADDED_TO_STAGE, init); } private function init(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, init); addChild(mochiMC); if (skipMochiAd == false){ MochiServices.connect("4ef99aae18d0b641", mochiMC); MochiAd.showPreGameAd({clip:mochiMC, id:"4ef99aae18d0b641", res:"640x480", ad_finished:startIntro, no_bg:true, color:8049150, background:0xFFFFFF, outline:6318097}); }; addEventListener(Event.ENTER_FRAME, mainLoop); } public function progressUpdate(_arg1:Event){ var _local2:Number = ((_arg1.target.bytesLoaded / _arg1.target.bytesTotal) * 100); p.text = (_local2.toFixed(0) + "%"); if (_arg1.target.bytesLoaded >= _arg1.target.bytesTotal){ p.text = "100%"; gotoAndPlay(2); }; } function frame1(){ _mochiads_game_id = "4ef99aae18d0b641"; p = stats; this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressUpdate); stop(); } function frame2(){ stop(); } private function startIntro():void{ intro = new robotLogoAnim(); addChild(intro); intro.addEventListener("startGame", startGame, false, 0, true); intro.gotoAndPlay(1); } private function startGame(_arg1:Event):void{ removeChild(intro); mochiMC.y = -50; var _local2:gameEngine = new gameEngine(); var _local3:MovieClip = new gameFrame(); _local2.init(this.stage, mochiMC, showKaiser); addChild(_local2); addChild(_local3); } private function mainLoop(_arg1:Event):void{ if (currentFrame == 2){ removeEventListener(Event.ENTER_FRAME, mainLoop); loadComplete = true; if (skipMochiAd){ startIntro(); }; }; } } }//package
Section 306
//yellowClamMC (yellowClamMC) package { import flash.display.*; public dynamic class yellowClamMC extends MovieClip { } }//package

Library Items

Symbol 1 BitmapUsed by:2
Symbol 2 GraphicUses:1Used by:3
Symbol 3 MovieClip {backgroundMC}Uses:2Used by:Timeline
Symbol 4 BitmapUsed by:5 272
Symbol 5 GraphicUses:4Used by:6
Symbol 6 MovieClip {foregroundMC}Uses:5Used by:141  Timeline
Symbol 7 FontUsed by:8 273 274 281 283
Symbol 8 EditableTextUses:7Used by:Timeline
Symbol 9 MovieClip {mochiHolder}Used by:Timeline
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClip {gameFrame}Uses:10Used by:Timeline
Symbol 12 Sound {gameMusic}
Symbol 13 Sound {menuClickFX}
Symbol 14 Sound {bubblesFX}
Symbol 15 Sound {collisionFX}
Symbol 16 BitmapUsed by:17
Symbol 17 GraphicUses:16Used by:18
Symbol 18 ButtonUses:17Used by:30
Symbol 19 BitmapUsed by:20
Symbol 20 GraphicUses:19Used by:21
Symbol 21 ButtonUses:20Used by:30
Symbol 22 BitmapUsed by:23
Symbol 23 GraphicUses:22Used by:24
Symbol 24 ButtonUses:23Used by:30
Symbol 25 BitmapUsed by:26
Symbol 26 GraphicUses:25Used by:27
Symbol 27 ButtonUses:26Used by:30
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClipUses:28Used by:30
Symbol 30 MovieClip {otherGamesMC}Uses:18 21 24 27 29
Symbol 31 GraphicUsed by:99
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:99
Symbol 34 GraphicUsed by:99
Symbol 35 SoundUsed by:99
Symbol 36 GraphicUsed by:99
Symbol 37 GraphicUsed by:99
Symbol 38 GraphicUsed by:99
Symbol 39 GraphicUsed by:99
Symbol 40 GraphicUsed by:99
Symbol 41 GraphicUsed by:99
Symbol 42 GraphicUsed by:99
Symbol 43 GraphicUsed by:99
Symbol 44 ShapeTweeningUsed by:99
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:99
Symbol 47 GraphicUsed by:99
Symbol 48 GraphicUsed by:99
Symbol 49 GraphicUsed by:99
Symbol 50 GraphicUsed by:99
Symbol 51 GraphicUsed by:99
Symbol 52 GraphicUsed by:99
Symbol 53 GraphicUsed by:99
Symbol 54 GraphicUsed by:99
Symbol 55 GraphicUsed by:99
Symbol 56 GraphicUsed by:99
Symbol 57 GraphicUsed by:99
Symbol 58 GraphicUsed by:99
Symbol 59 GraphicUsed by:99
Symbol 60 GraphicUsed by:99
Symbol 61 GraphicUsed by:99
Symbol 62 GraphicUsed by:99
Symbol 63 GraphicUsed by:99
Symbol 64 GraphicUsed by:99
Symbol 65 GraphicUsed by:99
Symbol 66 GraphicUsed by:99
Symbol 67 GraphicUsed by:99
Symbol 68 GraphicUsed by:99
Symbol 69 GraphicUsed by:99
Symbol 70 GraphicUsed by:99
Symbol 71 GraphicUsed by:99
Symbol 72 GraphicUsed by:99
Symbol 73 GraphicUsed by:99
Symbol 74 GraphicUsed by:99
Symbol 75 GraphicUsed by:99
Symbol 76 GraphicUsed by:99
Symbol 77 GraphicUsed by:99
Symbol 78 GraphicUsed by:99
Symbol 79 GraphicUsed by:99
Symbol 80 GraphicUsed by:99
Symbol 81 GraphicUsed by:99
Symbol 82 GraphicUsed by:99
Symbol 83 GraphicUsed by:99
Symbol 84 GraphicUsed by:99
Symbol 85 GraphicUsed by:99
Symbol 86 GraphicUsed by:99
Symbol 87 GraphicUsed by:99
Symbol 88 GraphicUsed by:99
Symbol 89 GraphicUsed by:99
Symbol 90 GraphicUsed by:99
Symbol 91 GraphicUsed by:99
Symbol 92 GraphicUsed by:99
Symbol 93 GraphicUsed by:99
Symbol 94 GraphicUsed by:99
Symbol 95 GraphicUsed by:99
Symbol 96 GraphicUsed by:99
Symbol 97 GraphicUsed by:99
Symbol 98 SoundUsed by:99
Symbol 99 MovieClip {robotLogoAnim}Uses:31 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClip {leaf1MC}Uses:100
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClip {daisyMC}Uses:102
Symbol 104 GraphicUsed by:105
Symbol 105 MovieClip {leaf2MC}Uses:104
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:141
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:110
Symbol 110 MovieClipUses:109Used by:141
Symbol 111 GraphicUsed by:112 114
Symbol 112 MovieClipUses:111Used by:114
Symbol 113 GraphicUsed by:114
Symbol 114 ButtonUses:112 113 111Used by:141
Symbol 115 BitmapUsed by:116
Symbol 116 GraphicUses:115Used by:119
Symbol 117 BitmapUsed by:118
Symbol 118 GraphicUses:117Used by:119
Symbol 119 MovieClip {StarFish_fla.button1_65}Uses:116 118Used by:141
Symbol 120 BitmapUsed by:121
Symbol 121 GraphicUses:120Used by:124
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:124
Symbol 124 MovieClip {StarFish_fla.button2_66}Uses:121 123Used by:141
Symbol 125 BitmapUsed by:126
Symbol 126 GraphicUses:125Used by:129
Symbol 127 BitmapUsed by:128
Symbol 128 GraphicUses:127Used by:129
Symbol 129 MovieClip {StarFish_fla.button3_67}Uses:126 128Used by:141
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:132 134
Symbol 132 MovieClipUses:131Used by:134
Symbol 133 GraphicUsed by:134
Symbol 134 ButtonUses:131 132 133Used by:141
Symbol 135 BitmapUsed by:136
Symbol 136 GraphicUses:135Used by:137
Symbol 137 MovieClipUses:136Used by:141
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:140
Symbol 140 MovieClipUses:139Used by:141
Symbol 141 MovieClip {mainMenuMC}Uses:107 110 114 6 119 124 129 134 137 140
Symbol 142 GraphicUsed by:143
Symbol 143 MovieClipUses:142Used by:175 176 191 194 197 209 212 215 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 275
Symbol 144 GraphicUsed by:161
Symbol 145 GraphicUsed by:161
Symbol 146 GraphicUsed by:161
Symbol 147 ShapeTweeningUsed by:161
Symbol 148 ShapeTweeningUsed by:161
Symbol 149 GraphicUsed by:161
Symbol 150 GraphicUsed by:151
Symbol 151 MovieClipUses:150Used by:161
Symbol 152 GraphicUsed by:161
Symbol 153 GraphicUsed by:161
Symbol 154 ShapeTweeningUsed by:161
Symbol 155 ShapeTweeningUsed by:161
Symbol 156 ShapeTweeningUsed by:161
Symbol 157 ShapeTweeningUsed by:161
Symbol 158 ShapeTweeningUsed by:161
Symbol 159 ShapeTweeningUsed by:161
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClip {playerFishMC}Uses:144 145 146 147 148 149 151 152 153 154 155 156 157 158 159 160Used by:175 176 191 194 197 209 212 215 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClip {pinkClamMC}Uses:162Used by:175 197 250 251 261
Symbol 164 GraphicUsed by:171
Symbol 165 GraphicUsed by:171
Symbol 166 GraphicUsed by:171
Symbol 167 GraphicUsed by:171
Symbol 168 GraphicUsed by:171
Symbol 169 GraphicUsed by:171
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:164 165 166 167 168 169 170Used by:175 176 194 250 251 265
Symbol 172 GraphicUsed by:174
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:172 173Used by:175 250 251 254 266
Symbol 175 MovieClip {level07MC}Uses:143 161 163 171 174
Symbol 176 MovieClip {level13MC}Uses:161 171 143
Symbol 177 GraphicUsed by:190
Symbol 178 ShapeTweeningUsed by:190
Symbol 179 GraphicUsed by:190
Symbol 180 ShapeTweeningUsed by:190
Symbol 181 GraphicUsed by:190
Symbol 182 ShapeTweeningUsed by:190
Symbol 183 ShapeTweeningUsed by:190
Symbol 184 ShapeTweeningUsed by:190
Symbol 185 ShapeTweeningUsed by:190
Symbol 186 ShapeTweeningUsed by:190
Symbol 187 ShapeTweeningUsed by:190
Symbol 188 GraphicUsed by:190
Symbol 189 GraphicUsed by:190
Symbol 190 MovieClipUses:177 178 179 180 181 182 183 184 185 186 187 188 189Used by:191 250 251 262
Symbol 191 MovieClip {level25MC}Uses:161 143 190
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192Used by:194 215 250 251
Symbol 194 MovieClip {level24MC}Uses:161 143 171 193
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClip {yellowClamMC}Uses:195Used by:197 251 260
Symbol 197 MovieClip {level23MC}Uses:161 143 163 196
Symbol 198 ShapeTweeningUsed by:206
Symbol 199 ShapeTweeningUsed by:206
Symbol 200 ShapeTweeningUsed by:206
Symbol 201 GraphicUsed by:206
Symbol 202 GraphicUsed by:206
Symbol 203 GraphicUsed by:206
Symbol 204 GraphicUsed by:206
Symbol 205 GraphicUsed by:206
Symbol 206 MovieClipUses:198 199 200 201 202 203 204 205Used by:208
Symbol 207 GraphicUsed by:208
Symbol 208 MovieClipUses:206 207Used by:209 250 251 261 263
Symbol 209 MovieClip {level22MC}Uses:161 143 208
Symbol 210 GraphicUsed by:211
Symbol 211 MovieClipUses:210Used by:212 259 265
Symbol 212 MovieClip {level20MC}Uses:161 143 211
Symbol 213 GraphicUsed by:214
Symbol 214 MovieClipUses:213Used by:215 251 264
Symbol 215 MovieClip {level19MC}Uses:161 143 214 193
Symbol 216 GraphicUsed by:221
Symbol 217 GraphicUsed by:221
Symbol 218 GraphicUsed by:221
Symbol 219 GraphicUsed by:221
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClipUses:216 217 218 219 220Used by:250 251 255 263
Symbol 222 GraphicUsed by:223
Symbol 223 MovieClipUses:222Used by:224
Symbol 224 MovieClipUses:223Used by:227
Symbol 225 GraphicUsed by:227
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:224 225 226Used by:250 251 263
Symbol 228 GraphicUsed by:229
Symbol 229 MovieClipUses:228Used by:250 251 256 258 266
Symbol 230 GraphicUsed by:235
Symbol 231 GraphicUsed by:235
Symbol 232 GraphicUsed by:235
Symbol 233 GraphicUsed by:235
Symbol 234 GraphicUsed by:235
Symbol 235 MovieClipUses:230 231 232 233 234Used by:250 251 265
Symbol 236 GraphicUsed by:241
Symbol 237 GraphicUsed by:241
Symbol 238 GraphicUsed by:241
Symbol 239 GraphicUsed by:241
Symbol 240 GraphicUsed by:241
Symbol 241 MovieClipUses:236 237 238 239 240Used by:250 251 259 265
Symbol 242 GraphicUsed by:243
Symbol 243 MovieClipUses:242Used by:250 251 253 258 263
Symbol 244 GraphicUsed by:247
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:247
Symbol 247 MovieClipUses:244 246Used by:250 251 260 266
Symbol 248 GraphicUsed by:249
Symbol 249 MovieClipUses:248Used by:250 251 252 259
Symbol 250 MovieClip {level21MC}Uses:161 143 221 171 193 227 229 235 241 163 243 247 174 208 190 249
Symbol 251 MovieClip {level15MC}Uses:161 143 221 171 193 227 229 235 214 241 163 243 247 174 208 190 196 249
Symbol 252 MovieClip {level16MC}Uses:161 143 249
Symbol 253 MovieClip {level14MC}Uses:161 143 243
Symbol 254 MovieClip {level12MC}Uses:161 143 174
Symbol 255 MovieClip {level11MC}Uses:143 161 221
Symbol 256 MovieClip {level10MC}Uses:143 229 161
Symbol 257 MovieClip {level18MC}Uses:143 161
Symbol 258 MovieClip {level17MC}Uses:143 161 229 243
Symbol 259 MovieClip {level09MC}Uses:143 161 241 249 211
Symbol 260 MovieClip {level08MC}Uses:143 161 247 196
Symbol 261 MovieClip {level06MC}Uses:143 161 208 163
Symbol 262 MovieClip {level05MC}Uses:143 161 190
Symbol 263 MovieClip {level04MC}Uses:143 161 221 227 243 208
Symbol 264 MovieClip {level03MC}Uses:143 161 214
Symbol 265 MovieClip {level02MC}Uses:143 161 171 235 241 211
Symbol 266 MovieClip {level01MC}Uses:143 161 174 229 247
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:271
Symbol 269 BitmapUsed by:270
Symbol 270 GraphicUses:269Used by:271
Symbol 271 MovieClip {buttonMuteMC}Uses:268 270Used by:275
Symbol 272 GraphicUses:4Used by:275
Symbol 273 EditableTextUses:7Used by:275
Symbol 274 EditableTextUses:7Used by:275
Symbol 275 MovieClip {foregroundIngameMC}Uses:272 273 143 274 271
Symbol 276 GraphicUsed by:277
Symbol 277 MovieClip {bubbleMC}Uses:276
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:280
Symbol 280 MovieClip {helpOverlayMC}Uses:279
Symbol 281 TextUses:7Used by:282
Symbol 282 MovieClip {scorePopMC}Uses:281
Symbol 283 TextUses:7Used by:284
Symbol 284 MovieClip {impactPopMC}Uses:283

Instance Names

"stats"Frame 1Symbol 8 EditableText
"mochiAdHolder"Frame 1Symbol 9 MovieClip {mochiHolder}
"game3"Symbol 30 MovieClip {otherGamesMC} Frame 1Symbol 18 Button
"game1"Symbol 30 MovieClip {otherGamesMC} Frame 1Symbol 21 Button
"game2"Symbol 30 MovieClip {otherGamesMC} Frame 1Symbol 24 Button
"game4"Symbol 30 MovieClip {otherGamesMC} Frame 1Symbol 27 Button
"bubbles"Symbol 141 MovieClip {mainMenuMC} Frame 1Symbol 107 MovieClip
"buttonPlay"Symbol 141 MovieClip {mainMenuMC} Frame 16Symbol 119 MovieClip {StarFish_fla.button1_65}
"buttonCredits"Symbol 141 MovieClip {mainMenuMC} Frame 16Symbol 124 MovieClip {StarFish_fla.button2_66}
"buttonMoreGames"Symbol 141 MovieClip {mainMenuMC} Frame 16Symbol 129 MovieClip {StarFish_fla.button3_67}
"kiba"Symbol 141 MovieClip {mainMenuMC} Frame 30Symbol 134 Button
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 175 MovieClip {level07MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 175 MovieClip {level07MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 176 MovieClip {level13MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 176 MovieClip {level13MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 176 MovieClip {level13MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 191 MovieClip {level25MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 191 MovieClip {level25MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 194 MovieClip {level24MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 194 MovieClip {level24MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 194 MovieClip {level24MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 194 MovieClip {level24MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 194 MovieClip {level24MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 194 MovieClip {level24MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 194 MovieClip {level24MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 194 MovieClip {level24MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 197 MovieClip {level23MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 197 MovieClip {level23MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 209 MovieClip {level22MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 209 MovieClip {level22MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 209 MovieClip {level22MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 209 MovieClip {level22MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 209 MovieClip {level22MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 209 MovieClip {level22MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 209 MovieClip {level22MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 212 MovieClip {level20MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 212 MovieClip {level20MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 215 MovieClip {level19MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 215 MovieClip {level19MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 215 MovieClip {level19MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 215 MovieClip {level19MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 215 MovieClip {level19MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 215 MovieClip {level19MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 215 MovieClip {level19MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 250 MovieClip {level21MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 250 MovieClip {level21MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 251 MovieClip {level15MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 251 MovieClip {level15MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 252 MovieClip {level16MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 252 MovieClip {level16MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 252 MovieClip {level16MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 252 MovieClip {level16MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 252 MovieClip {level16MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 252 MovieClip {level16MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 252 MovieClip {level16MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 253 MovieClip {level14MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 253 MovieClip {level14MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 254 MovieClip {level12MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 254 MovieClip {level12MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 255 MovieClip {level11MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 255 MovieClip {level11MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 256 MovieClip {level10MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 256 MovieClip {level10MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 256 MovieClip {level10MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 256 MovieClip {level10MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 256 MovieClip {level10MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 256 MovieClip {level10MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 256 MovieClip {level10MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 257 MovieClip {level18MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 257 MovieClip {level18MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 257 MovieClip {level18MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 257 MovieClip {level18MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 258 MovieClip {level17MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 258 MovieClip {level17MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 259 MovieClip {level09MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 259 MovieClip {level09MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 260 MovieClip {level08MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 260 MovieClip {level08MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 261 MovieClip {level06MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 261 MovieClip {level06MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 262 MovieClip {level05MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 262 MovieClip {level05MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 263 MovieClip {level04MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 263 MovieClip {level04MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 264 MovieClip {level03MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 264 MovieClip {level03MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 265 MovieClip {level02MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 265 MovieClip {level02MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"starfish"Symbol 266 MovieClip {level01MC} Frame 1Symbol 143 MovieClip
"playerStart"Symbol 266 MovieClip {level01MC} Frame 1Symbol 161 MovieClip {playerFishMC}
"score"Symbol 275 MovieClip {foregroundIngameMC} Frame 1Symbol 273 EditableText
"timer"Symbol 275 MovieClip {foregroundIngameMC} Frame 1Symbol 274 EditableText
"muteButton"Symbol 275 MovieClip {foregroundIngameMC} Frame 1Symbol 271 MovieClip {buttonMuteMC}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"start"Symbol 141 MovieClip {mainMenuMC} Frame 2
"credits_on"Symbol 141 MovieClip {mainMenuMC} Frame 31
"credits_off"Symbol 141 MovieClip {mainMenuMC} Frame 55




http://swfchan.com/19/91796/info.shtml
Created: 27/3 -2019 18:35:10 Last modified: 27/3 -2019 18:35:10 Server time: 12/05 -2024 04:25:07