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

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

Mysterious Mayhem - kill as many zombies as possible.swf

This is the info page for
Flash #90859

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


ActionScript [AS3]
Section 1
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.5.0.12683"; public function BitmapAsset(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){ super(bitmapData, pixelSnapping, smoothing); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(newWidth:Number, newHeight:Number):void{ width = newWidth; height = newHeight; } public function move(x:Number, y:Number):void{ this.x = x; this.y = y; } } }//package mx.core
Section 2
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.5.0.12683"; public function ByteArrayAsset(){ super(); } } }//package mx.core
Section 3
//EdgeMetrics (mx.core.EdgeMetrics) package mx.core { public class EdgeMetrics { public var top:Number; public var left:Number; public var bottom:Number; public var right:Number; mx_internal static const VERSION:String = "3.5.0.12683"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(left:Number=0, top:Number=0, right:Number=0, bottom:Number=0){ super(); this.left = left; this.top = top; this.right = right; this.bottom = bottom; } public function clone():EdgeMetrics{ return (new EdgeMetrics(left, top, right, bottom)); } } }//package mx.core
Section 4
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.5.0.12683"; public function FlexBitmap(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){ var bitmapData = bitmapData; var pixelSnapping = pixelSnapping; var smoothing = smoothing; super(bitmapData, pixelSnapping, smoothing); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 5
//FlexLoader (mx.core.FlexLoader) package mx.core { import flash.display.*; import mx.utils.*; public class FlexLoader extends Loader { mx_internal static const VERSION:String = "3.5.0.12683"; public function FlexLoader(){ super(); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 6
//FlexShape (mx.core.FlexShape) package mx.core { import flash.display.*; import mx.utils.*; public class FlexShape extends Shape { mx_internal static const VERSION:String = "3.5.0.12683"; public function FlexShape(){ super(); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 7
//FlexVersion (mx.core.FlexVersion) package mx.core { import mx.resources.*; public class FlexVersion { public static const VERSION_2_0_1:uint = 33554433; public static const CURRENT_VERSION:uint = 50331648; public static const VERSION_3_0:uint = 50331648; public static const VERSION_2_0:uint = 33554432; public static const VERSION_ALREADY_READ:String = "versionAlreadyRead"; public static const VERSION_ALREADY_SET:String = "versionAlreadySet"; mx_internal static const VERSION:String = "3.5.0.12683"; private static var compatibilityVersionChanged:Boolean = false; private static var _compatibilityErrorFunction:Function; private static var _compatibilityVersion:uint = 50331648; private static var compatibilityVersionRead:Boolean = false; public function FlexVersion(){ super(); } mx_internal static function changeCompatibilityVersionString(value:String):void{ var pieces:Array = value.split("."); var major:uint = parseInt(pieces[0]); var minor:uint = parseInt(pieces[1]); var update:uint = parseInt(pieces[2]); _compatibilityVersion = (((major << 24) + (minor << 16)) + update); } public static function set compatibilityVersion(value:uint):void{ var s:String; if (value == _compatibilityVersion){ return; }; if (compatibilityVersionChanged){ if (compatibilityErrorFunction == null){ s = ResourceManager.getInstance().getString("core", VERSION_ALREADY_SET); throw (new Error(s)); }; compatibilityErrorFunction(value, VERSION_ALREADY_SET); }; if (compatibilityVersionRead){ if (compatibilityErrorFunction == null){ s = ResourceManager.getInstance().getString("core", VERSION_ALREADY_READ); throw (new Error(s)); }; compatibilityErrorFunction(value, VERSION_ALREADY_READ); }; _compatibilityVersion = value; compatibilityVersionChanged = true; } public static function get compatibilityVersion():uint{ compatibilityVersionRead = true; return (_compatibilityVersion); } public static function set compatibilityErrorFunction(value:Function):void{ _compatibilityErrorFunction = value; } public static function set compatibilityVersionString(value:String):void{ var pieces:Array = value.split("."); var major:uint = parseInt(pieces[0]); var minor:uint = parseInt(pieces[1]); var update:uint = parseInt(pieces[2]); compatibilityVersion = (((major << 24) + (minor << 16)) + update); } public static function get compatibilityErrorFunction():Function{ return (_compatibilityErrorFunction); } public static function get compatibilityVersionString():String{ var major:uint = ((compatibilityVersion >> 24) & 0xFF); var minor:uint = ((compatibilityVersion >> 16) & 0xFF); var update:uint = (compatibilityVersion & 0xFFFF); return (((((major.toString() + ".") + minor.toString()) + ".") + update.toString())); } } }//package mx.core
Section 8
//FontAsset (mx.core.FontAsset) package mx.core { import flash.text.*; public class FontAsset extends Font implements IFlexAsset { mx_internal static const VERSION:String = "3.5.0.12683"; public function FontAsset(){ super(); } } }//package mx.core
Section 9
//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.core
Section 10
//IButton (mx.core.IButton) package mx.core { public interface IButton extends IUIComponent { function get emphasized():Boolean; function set emphasized(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IButton.as:Boolean):void; function callLater(_arg1:Function, _arg2:Array=null):void; } }//package mx.core
Section 11
//IChildList (mx.core.IChildList) package mx.core { import flash.display.*; import flash.geom.*; public interface IChildList { function get numChildren():int; function removeChild(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IChildList.as:DisplayObject):DisplayObject; function getChildByName(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IChildList.as:String):DisplayObject; function removeChildAt(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IChildList.as:int):DisplayObject; function getChildIndex(:DisplayObject):int; function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject; function getObjectsUnderPoint(child:Point):Array; function setChildIndex(_arg1:DisplayObject, _arg2:int):void; function getChildAt(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IChildList.as:int):DisplayObject; function addChild(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IChildList.as:DisplayObject):DisplayObject; function contains(flash.display:DisplayObject):Boolean; } }//package mx.core
Section 12
//IContainer (mx.core.IContainer) package mx.core { import flash.display.*; import flash.geom.*; import mx.managers.*; import flash.media.*; import flash.text.*; public interface IContainer extends IUIComponent { function set hitArea(mx.core:IContainer/mx.core:IContainer:graphics/get:Sprite):void; function swapChildrenAt(_arg1:int, _arg2:int):void; function getChildByName(Graphics:String):DisplayObject; function get doubleClickEnabled():Boolean; function get graphics():Graphics; function get useHandCursor():Boolean; function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject; function set mouseChildren(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function set creatingContentPane(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function get textSnapshot():TextSnapshot; function getChildIndex(value:DisplayObject):int; function set doubleClickEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function getObjectsUnderPoint(lockCenter:Point):Array; function get creatingContentPane():Boolean; function setChildIndex(_arg1:DisplayObject, _arg2:int):void; function get soundTransform():SoundTransform; function set useHandCursor(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function get numChildren():int; function contains(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;ISpriteInterface.as:DisplayObject):Boolean; function get verticalScrollPosition():Number; function set defaultButton(mx.core:IContainer/mx.core:IContainer:graphics/get:IFlexDisplayObject):void; function swapChildren(_arg1:DisplayObject, _arg2:DisplayObject):void; function set horizontalScrollPosition(mx.core:IContainer/mx.core:IContainer:graphics/get:Number):void; function get focusManager():IFocusManager; function startDrag(_arg1:Boolean=false, _arg2:Rectangle=null):void; function set mouseEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function getChildAt(Graphics:int):DisplayObject; function set soundTransform(mx.core:IContainer/mx.core:IContainer:graphics/get:SoundTransform):void; function get tabChildren():Boolean; function get tabIndex():int; function set focusRect(mx.core:IContainer/mx.core:IContainer:graphics/get:Object):void; function get hitArea():Sprite; function get mouseChildren():Boolean; function removeChildAt(Graphics:int):DisplayObject; function get defaultButton():IFlexDisplayObject; function stopDrag():void; function set tabEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function get horizontalScrollPosition():Number; function get focusRect():Object; function get viewMetrics():EdgeMetrics; function set verticalScrollPosition(mx.core:IContainer/mx.core:IContainer:graphics/get:Number):void; function get dropTarget():DisplayObject; function get mouseEnabled():Boolean; function set tabChildren(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function set buttonMode(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function get tabEnabled():Boolean; function get buttonMode():Boolean; function removeChild(Graphics:DisplayObject):DisplayObject; function set tabIndex(mx.core:IContainer/mx.core:IContainer:graphics/get:int):void; function addChild(Graphics:DisplayObject):DisplayObject; function areInaccessibleObjectsUnderPoint(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;ISpriteInterface.as:Point):Boolean; } }//package mx.core
Section 13
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 14
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(void:Point):Point; function get name():String; function set width(flash.display:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(flash.display:String):void; function set scaleX(flash.display:Number):void; function set scaleY(flash.display:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(flash.display:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(void:Point):Point; function get height():Number; function set blendMode(flash.display:String):void; function get parent():DisplayObjectContainer; function getBounds(String:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(flash.display:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(flash.display:Number):void; function set accessibilityProperties(flash.display:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(flash.display:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(flash.display:Number):void; function set mask(flash.display:DisplayObject):void; function getRect(String:DisplayObject):Rectangle; function get alpha():Number; function set transform(flash.display:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(mx.core:IFlexDisplayObject/mx.core:IFlexDisplayObject:stage/get:DisplayObject):Boolean; function set opaqueBackground(flash.display:Object):void; function set visible(flash.display:Boolean):void; function get mask():DisplayObject; function set x(flash.display:Number):void; function set y(flash.display:Number):void; function get transform():Transform; function set filters(flash.display:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(flash.display:Number):void; function get stage():Stage; } }//package mx.core
Section 15
//IFlexModuleFactory (mx.core.IFlexModuleFactory) package mx.core { import flash.utils.*; public interface IFlexModuleFactory { function get preloadedRSLs():Dictionary; function allowInsecureDomain(... _args):void; function create(... _args):Object; function allowDomain(... _args):void; function info():Object; } }//package mx.core
Section 16
//IInvalidating (mx.core.IInvalidating) package mx.core { public interface IInvalidating { function validateNow():void; function invalidateSize():void; function invalidateDisplayList():void; function invalidateProperties():void; } }//package mx.core
Section 17
//IProgrammaticSkin (mx.core.IProgrammaticSkin) package mx.core { public interface IProgrammaticSkin { function validateNow():void; function validateDisplayList():void; } }//package mx.core
Section 18
//IRawChildrenContainer (mx.core.IRawChildrenContainer) package mx.core { public interface IRawChildrenContainer { function get rawChildren():IChildList; } }//package mx.core
Section 19
//IRectangularBorder (mx.core.IRectangularBorder) package mx.core { import flash.geom.*; public interface IRectangularBorder extends IBorder { function get backgroundImageBounds():Rectangle; function get hasBackgroundImage():Boolean; function set backgroundImageBounds(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRectangularBorder.as:Rectangle):void; function layoutBackgroundImage():void; } }//package mx.core
Section 20
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function get isDocument():Boolean; function set repeaters(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function initializeRepeaterArrays(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 21
//ISWFBridgeGroup (mx.core.ISWFBridgeGroup) package mx.core { import flash.events.*; public interface ISWFBridgeGroup { function getChildBridgeProvider(mx.core:ISWFBridgeGroup/mx.core:ISWFBridgeGroup:parentBridge/get:IEventDispatcher):ISWFBridgeProvider; function removeChildBridge(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;ISWFBridgeGroup.as:IEventDispatcher):void; function get parentBridge():IEventDispatcher; function addChildBridge(_arg1:IEventDispatcher, _arg2:ISWFBridgeProvider):void; function set parentBridge(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\core;ISWFBridgeGroup.as:IEventDispatcher):void; function containsBridge(IEventDispatcher:IEventDispatcher):Boolean; function getChildBridges():Array; } }//package mx.core
Section 22
//ISWFBridgeProvider (mx.core.ISWFBridgeProvider) package mx.core { import flash.events.*; public interface ISWFBridgeProvider { function get childAllowsParent():Boolean; function get swfBridge():IEventDispatcher; function get parentAllowsChild():Boolean; } }//package mx.core
Section 23
//IUIComponent (mx.core.IUIComponent) package mx.core { import flash.display.*; import mx.managers.*; public interface IUIComponent extends IFlexDisplayObject { function set focusPane(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Sprite):void; function get enabled():Boolean; function set enabled(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void; function set isPopUp(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void; function get explicitMinHeight():Number; function get percentWidth():Number; function get isPopUp():Boolean; function get owner():DisplayObjectContainer; function get percentHeight():Number; function get baselinePosition():Number; function owns(Number:DisplayObject):Boolean; function initialize():void; function get maxWidth():Number; function get minWidth():Number; function getExplicitOrMeasuredWidth():Number; function get explicitMaxWidth():Number; function get explicitMaxHeight():Number; function set percentHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function get minHeight():Number; function set percentWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function get document():Object; function get focusPane():Sprite; function getExplicitOrMeasuredHeight():Number; function set tweeningProperties(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Array):void; function set explicitWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function set measuredMinHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function get explicitMinWidth():Number; function get tweeningProperties():Array; function get maxHeight():Number; function set owner(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:DisplayObjectContainer):void; function set includeInLayout(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void; function setVisible(_arg1:Boolean, _arg2:Boolean=false):void; function parentChanged(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:DisplayObjectContainer):void; function get explicitWidth():Number; function get measuredMinHeight():Number; function set measuredMinWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function set explicitHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function get includeInLayout():Boolean; function get measuredMinWidth():Number; function get explicitHeight():Number; function set systemManager(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:ISystemManager):void; function set document(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Object):void; function get systemManager():ISystemManager; } }//package mx.core
Section 24
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 25
//Singleton (mx.core.Singleton) package mx.core { public class Singleton { mx_internal static const VERSION:String = "3.5.0.12683"; private static var classMap:Object = {}; public function Singleton(){ super(); } public static function registerClass(interfaceName:String, clazz:Class):void{ var c:Class = classMap[interfaceName]; if (!c){ classMap[interfaceName] = clazz; }; } public static function getClass(interfaceName:String):Class{ return (classMap[interfaceName]); } public static function getInstance(interfaceName:String):Object{ var c:Class = classMap[interfaceName]; if (!c){ throw (new Error((("No class registered for interface '" + interfaceName) + "'."))); }; return (c["getInstance"]()); } } }//package mx.core
Section 26
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.5.0.12683"; public function SoundAsset(){ super(); } } }//package mx.core
Section 27
//UIComponentGlobals (mx.core.UIComponentGlobals) package mx.core { import flash.display.*; import flash.geom.*; import mx.managers.*; public class UIComponentGlobals { mx_internal static var callLaterSuspendCount:int = 0; mx_internal static var layoutManager:ILayoutManager; mx_internal static var nextFocusObject:InteractiveObject; mx_internal static var designTime:Boolean = false; mx_internal static var tempMatrix:Matrix = new Matrix(); mx_internal static var callLaterDispatcherCount:int = 0; private static var _catchCallLaterExceptions:Boolean = false; public function UIComponentGlobals(){ super(); } public static function set catchCallLaterExceptions(value:Boolean):void{ _catchCallLaterExceptions = value; } public static function get designMode():Boolean{ return (designTime); } public static function set designMode(value:Boolean):void{ designTime = value; } public static function get catchCallLaterExceptions():Boolean{ return (_catchCallLaterExceptions); } } }//package mx.core
Section 28
//ModuleEvent (mx.events.ModuleEvent) package mx.events { import flash.events.*; import mx.modules.*; public class ModuleEvent extends ProgressEvent { public var errorText:String; private var _module:IModuleInfo; public static const READY:String = "ready"; public static const ERROR:String = "error"; public static const PROGRESS:String = "progress"; mx_internal static const VERSION:String = "3.5.0.12683"; public static const SETUP:String = "setup"; public static const UNLOAD:String = "unload"; public function ModuleEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null, module:IModuleInfo=null){ super(type, bubbles, cancelable, bytesLoaded, bytesTotal); this.errorText = errorText; this._module = module; } public function get module():IModuleInfo{ if (_module){ return (_module); }; return ((target as IModuleInfo)); } override public function clone():Event{ return (new ModuleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText, module)); } } }//package mx.events
Section 29
//ResourceEvent (mx.events.ResourceEvent) package mx.events { import flash.events.*; public class ResourceEvent extends ProgressEvent { public var errorText:String; mx_internal static const VERSION:String = "3.5.0.12683"; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public static const ERROR:String = "error"; public function ResourceEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null){ super(type, bubbles, cancelable, bytesLoaded, bytesTotal); this.errorText = errorText; } override public function clone():Event{ return (new ResourceEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText)); } } }//package mx.events
Section 30
//StyleEvent (mx.events.StyleEvent) package mx.events { import flash.events.*; public class StyleEvent extends ProgressEvent { public var errorText:String; mx_internal static const VERSION:String = "3.5.0.12683"; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public static const ERROR:String = "error"; public function StyleEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null){ super(type, bubbles, cancelable, bytesLoaded, bytesTotal); this.errorText = errorText; } override public function clone():Event{ return (new StyleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText)); } } }//package mx.events
Section 31
//RectangularDropShadow (mx.graphics.RectangularDropShadow) package mx.graphics { import mx.core.*; import flash.display.*; import flash.geom.*; import mx.utils.*; import flash.filters.*; public class RectangularDropShadow { private var leftShadow:BitmapData; private var _tlRadius:Number;// = 0 private var _trRadius:Number;// = 0 private var _angle:Number;// = 45 private var topShadow:BitmapData; private var _distance:Number;// = 4 private var rightShadow:BitmapData; private var _alpha:Number;// = 0.4 private var shadow:BitmapData; private var _brRadius:Number;// = 0 private var _blRadius:Number;// = 0 private var _color:int;// = 0 private var bottomShadow:BitmapData; private var changed:Boolean;// = true mx_internal static const VERSION:String = "3.5.0.12683"; public function RectangularDropShadow(){ super(); } public function get blRadius():Number{ return (_blRadius); } public function set brRadius(value:Number):void{ if (_brRadius != value){ _brRadius = value; changed = true; }; } public function set color(value:int):void{ if (_color != value){ _color = value; changed = true; }; } public function drawShadow(g:Graphics, x:Number, y:Number, width:Number, height:Number):void{ var tlWidth:Number; var tlHeight:Number; var trWidth:Number; var trHeight:Number; var blWidth:Number; var blHeight:Number; var brWidth:Number; var brHeight:Number; if (changed){ createShadowBitmaps(); changed = false; }; width = Math.ceil(width); height = Math.ceil(height); var leftThickness:int = (leftShadow) ? leftShadow.width : 0; var rightThickness:int = (rightShadow) ? rightShadow.width : 0; var topThickness:int = (topShadow) ? topShadow.height : 0; var bottomThickness:int = (bottomShadow) ? bottomShadow.height : 0; var widthThickness:int = (leftThickness + rightThickness); var heightThickness:int = (topThickness + bottomThickness); var maxCornerHeight:Number = ((height + heightThickness) / 2); var maxCornerWidth:Number = ((width + widthThickness) / 2); var matrix:Matrix = new Matrix(); if (((leftShadow) || (topShadow))){ tlWidth = Math.min((tlRadius + widthThickness), maxCornerWidth); tlHeight = Math.min((tlRadius + heightThickness), maxCornerHeight); matrix.tx = (x - leftThickness); matrix.ty = (y - topThickness); g.beginBitmapFill(shadow, matrix); g.drawRect((x - leftThickness), (y - topThickness), tlWidth, tlHeight); g.endFill(); }; if (((rightShadow) || (topShadow))){ trWidth = Math.min((trRadius + widthThickness), maxCornerWidth); trHeight = Math.min((trRadius + heightThickness), maxCornerHeight); matrix.tx = (((x + width) + rightThickness) - shadow.width); matrix.ty = (y - topThickness); g.beginBitmapFill(shadow, matrix); g.drawRect((((x + width) + rightThickness) - trWidth), (y - topThickness), trWidth, trHeight); g.endFill(); }; if (((leftShadow) || (bottomShadow))){ blWidth = Math.min((blRadius + widthThickness), maxCornerWidth); blHeight = Math.min((blRadius + heightThickness), maxCornerHeight); matrix.tx = (x - leftThickness); matrix.ty = (((y + height) + bottomThickness) - shadow.height); g.beginBitmapFill(shadow, matrix); g.drawRect((x - leftThickness), (((y + height) + bottomThickness) - blHeight), blWidth, blHeight); g.endFill(); }; if (((rightShadow) || (bottomShadow))){ brWidth = Math.min((brRadius + widthThickness), maxCornerWidth); brHeight = Math.min((brRadius + heightThickness), maxCornerHeight); matrix.tx = (((x + width) + rightThickness) - shadow.width); matrix.ty = (((y + height) + bottomThickness) - shadow.height); g.beginBitmapFill(shadow, matrix); g.drawRect((((x + width) + rightThickness) - brWidth), (((y + height) + bottomThickness) - brHeight), brWidth, brHeight); g.endFill(); }; if (leftShadow){ matrix.tx = (x - leftThickness); matrix.ty = 0; g.beginBitmapFill(leftShadow, matrix); g.drawRect((x - leftThickness), ((y - topThickness) + tlHeight), leftThickness, ((((height + topThickness) + bottomThickness) - tlHeight) - blHeight)); g.endFill(); }; if (rightShadow){ matrix.tx = (x + width); matrix.ty = 0; g.beginBitmapFill(rightShadow, matrix); g.drawRect((x + width), ((y - topThickness) + trHeight), rightThickness, ((((height + topThickness) + bottomThickness) - trHeight) - brHeight)); g.endFill(); }; if (topShadow){ matrix.tx = 0; matrix.ty = (y - topThickness); g.beginBitmapFill(topShadow, matrix); g.drawRect(((x - leftThickness) + tlWidth), (y - topThickness), ((((width + leftThickness) + rightThickness) - tlWidth) - trWidth), topThickness); g.endFill(); }; if (bottomShadow){ matrix.tx = 0; matrix.ty = (y + height); g.beginBitmapFill(bottomShadow, matrix); g.drawRect(((x - leftThickness) + blWidth), (y + height), ((((width + leftThickness) + rightThickness) - blWidth) - brWidth), bottomThickness); g.endFill(); }; } public function get brRadius():Number{ return (_brRadius); } public function get angle():Number{ return (_angle); } private function createShadowBitmaps():void{ var roundRectWidth:Number = ((Math.max(tlRadius, blRadius) + (2 * distance)) + Math.max(trRadius, brRadius)); var roundRectHeight:Number = ((Math.max(tlRadius, trRadius) + (2 * distance)) + Math.max(blRadius, brRadius)); if ((((roundRectWidth < 0)) || ((roundRectHeight < 0)))){ return; }; var roundRect:Shape = new FlexShape(); var g:Graphics = roundRect.graphics; g.beginFill(0xFFFFFF); GraphicsUtil.drawRoundRectComplex(g, 0, 0, roundRectWidth, roundRectHeight, tlRadius, trRadius, blRadius, brRadius); g.endFill(); var roundRectBitmap:BitmapData = new BitmapData(roundRectWidth, roundRectHeight, true, 0); roundRectBitmap.draw(roundRect, new Matrix()); var filter:DropShadowFilter = new DropShadowFilter(distance, angle, color, alpha); filter.knockout = true; var inputRect:Rectangle = new Rectangle(0, 0, roundRectWidth, roundRectHeight); var outputRect:Rectangle = roundRectBitmap.generateFilterRect(inputRect, filter); var leftThickness:Number = (inputRect.left - outputRect.left); var rightThickness:Number = (outputRect.right - inputRect.right); var topThickness:Number = (inputRect.top - outputRect.top); var bottomThickness:Number = (outputRect.bottom - inputRect.bottom); shadow = new BitmapData(outputRect.width, outputRect.height); shadow.applyFilter(roundRectBitmap, inputRect, new Point(leftThickness, topThickness), filter); var origin:Point = new Point(0, 0); var rect:Rectangle = new Rectangle(); if (leftThickness > 0){ rect.x = 0; rect.y = ((tlRadius + topThickness) + bottomThickness); rect.width = leftThickness; rect.height = 1; leftShadow = new BitmapData(leftThickness, 1); leftShadow.copyPixels(shadow, rect, origin); } else { leftShadow = null; }; if (rightThickness > 0){ rect.x = (shadow.width - rightThickness); rect.y = ((trRadius + topThickness) + bottomThickness); rect.width = rightThickness; rect.height = 1; rightShadow = new BitmapData(rightThickness, 1); rightShadow.copyPixels(shadow, rect, origin); } else { rightShadow = null; }; if (topThickness > 0){ rect.x = ((tlRadius + leftThickness) + rightThickness); rect.y = 0; rect.width = 1; rect.height = topThickness; topShadow = new BitmapData(1, topThickness); topShadow.copyPixels(shadow, rect, origin); } else { topShadow = null; }; if (bottomThickness > 0){ rect.x = ((blRadius + leftThickness) + rightThickness); rect.y = (shadow.height - bottomThickness); rect.width = 1; rect.height = bottomThickness; bottomShadow = new BitmapData(1, bottomThickness); bottomShadow.copyPixels(shadow, rect, origin); } else { bottomShadow = null; }; } public function get alpha():Number{ return (_alpha); } public function get color():int{ return (_color); } public function set angle(value:Number):void{ if (_angle != value){ _angle = value; changed = true; }; } public function set trRadius(value:Number):void{ if (_trRadius != value){ _trRadius = value; changed = true; }; } public function set tlRadius(value:Number):void{ if (_tlRadius != value){ _tlRadius = value; changed = true; }; } public function get trRadius():Number{ return (_trRadius); } public function set distance(value:Number):void{ if (_distance != value){ _distance = value; changed = true; }; } public function get distance():Number{ return (_distance); } public function get tlRadius():Number{ return (_tlRadius); } public function set alpha(value:Number):void{ if (_alpha != value){ _alpha = value; changed = true; }; } public function set blRadius(value:Number):void{ if (_blRadius != value){ _blRadius = value; changed = true; }; } } }//package mx.graphics
Section 32
//IFocusManager (mx.managers.IFocusManager) package mx.managers { import mx.core.*; import flash.events.*; import flash.display.*; public interface IFocusManager { function get focusPane():Sprite; function getFocus():IFocusManagerComponent; function deactivate():void; function set defaultButton(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IButton):void; function set focusPane(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Sprite):void; function set showFocusIndicator(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Boolean):void; function moveFocus(_arg1:String, _arg2:DisplayObject=null):void; function addSWFBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void; function removeSWFBridge(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IEventDispatcher):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(value:InteractiveObject):IFocusManagerComponent; function get nextTabIndex():int; function get defaultButton():IButton; function get showFocusIndicator():Boolean; function setFocus(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IFocusManagerComponent):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Boolean):void; function hideFocus():void; function getNextFocusManagerComponent(value:Boolean=false):IFocusManagerComponent; } }//package mx.managers
Section 33
//IFocusManagerComponent (mx.managers.IFocusManagerComponent) package mx.managers { public interface IFocusManagerComponent { function set focusEnabled(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManagerComponent.as:Boolean):void; function drawFocus(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManagerComponent.as:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package mx.managers
Section 34
//IFocusManagerContainer (mx.managers.IFocusManagerContainer) package mx.managers { import flash.events.*; import flash.display.*; public interface IFocusManagerContainer extends IEventDispatcher { function set focusManager(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;IFocusManagerContainer.as:IFocusManager):void; function get focusManager():IFocusManager; function get systemManager():ISystemManager; function contains(mx.managers:DisplayObject):Boolean; } }//package mx.managers
Section 35
//ILayoutManager (mx.managers.ILayoutManager) package mx.managers { import flash.events.*; public interface ILayoutManager extends IEventDispatcher { function validateNow():void; function validateClient(_arg1:ILayoutManagerClient, _arg2:Boolean=false):void; function isInvalid():Boolean; function invalidateDisplayList(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void; function set usePhasedInstantiation(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:Boolean):void; function invalidateSize(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void; function get usePhasedInstantiation():Boolean; function invalidateProperties(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void; } }//package mx.managers
Section 36
//ILayoutManagerClient (mx.managers.ILayoutManagerClient) package mx.managers { import flash.events.*; public interface ILayoutManagerClient extends IEventDispatcher { function get updateCompletePendingFlag():Boolean; function set updateCompletePendingFlag(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void; function set initialized(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void; function validateProperties():void; function validateDisplayList():void; function get nestLevel():int; function get initialized():Boolean; function get processedDescriptors():Boolean; function validateSize(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean=false):void; function set nestLevel(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:int):void; function set processedDescriptors(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void; } }//package mx.managers
Section 37
//ISystemManager (mx.managers.ISystemManager) package mx.managers { import mx.core.*; import flash.events.*; import flash.display.*; import flash.geom.*; import flash.text.*; public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModuleFactory { function set focusPane(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Sprite):void; function get toolTipChildren():IChildList; function useSWFBridge():Boolean; function isFontFaceEmbedded(flash.display:TextFormat):Boolean; function deployMouseShields(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Boolean):void; function get rawChildren():IChildList; function get topLevelSystemManager():ISystemManager; function dispatchEventFromSWFBridges(_arg1:Event, _arg2:IEventDispatcher=null, _arg3:Boolean=false, _arg4:Boolean=false):void; function getSandboxRoot():DisplayObject; function get swfBridgeGroup():ISWFBridgeGroup; function removeFocusManager(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void; function addChildToSandboxRoot(_arg1:String, _arg2:DisplayObject):void; function get document():Object; function get focusPane():Sprite; function get loaderInfo():LoaderInfo; function addChildBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void; function getTopLevelRoot():DisplayObject; function removeChildBridge(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IEventDispatcher):void; function isDisplayObjectInABridgedApplication(flash.display:DisplayObject):Boolean; function get popUpChildren():IChildList; function get screen():Rectangle; function removeChildFromSandboxRoot(_arg1:String, _arg2:DisplayObject):void; function getDefinitionByName(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\managers;ISystemManager.as:String):Object; function activate(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void; function deactivate(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void; function get cursorChildren():IChildList; function set document(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Object):void; function get embeddedFontList():Object; function set numModalWindows(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:int):void; function isTopLevel():Boolean; function isTopLevelRoot():Boolean; function get numModalWindows():int; function addFocusManager(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void; function get stage():Stage; function getVisibleApplicationRect(value:Rectangle=null):Rectangle; } }//package mx.managers
Section 38
//SystemManagerGlobals (mx.managers.SystemManagerGlobals) package mx.managers { public class SystemManagerGlobals { public static var topLevelSystemManagers:Array = []; public static var changingListenersInOtherSystemManagers:Boolean; public static var bootstrapLoaderInfoURL:String; public static var showMouseCursor:Boolean; public static var dispatchingEventToOtherSystemManagers:Boolean; public function SystemManagerGlobals(){ super(); } } }//package mx.managers
Section 39
//IModuleInfo (mx.modules.IModuleInfo) package mx.modules { import mx.core.*; import flash.utils.*; import flash.events.*; import flash.system.*; public interface IModuleInfo extends IEventDispatcher { function get ready():Boolean; function get loaded():Boolean; function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void; function release():void; function get error():Boolean; function get data():Object; function publish(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\modules;IModuleInfo.as:IFlexModuleFactory):void; function get factory():IFlexModuleFactory; function set data(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\modules;IModuleInfo.as:Object):void; function get url():String; function get setup():Boolean; function unload():void; } }//package mx.modules
Section 40
//ModuleManager (mx.modules.ModuleManager) package mx.modules { import mx.core.*; public class ModuleManager { mx_internal static const VERSION:String = "3.5.0.12683"; public function ModuleManager(){ super(); } public static function getModule(url:String):IModuleInfo{ return (getSingleton().getModule(url)); } private static function getSingleton():Object{ if (!ModuleManagerGlobals.managerSingleton){ ModuleManagerGlobals.managerSingleton = new ModuleManagerImpl(); }; return (ModuleManagerGlobals.managerSingleton); } public static function getAssociatedFactory(object:Object):IFlexModuleFactory{ return (getSingleton().getAssociatedFactory(object)); } } }//package mx.modules import mx.core.*; import flash.utils.*; import flash.events.*; import flash.system.*; import flash.display.*; import mx.events.*; import flash.net.*; class ModuleInfoProxy extends EventDispatcher implements IModuleInfo { private var _data:Object; private var info:ModuleInfo; private var referenced:Boolean;// = false private function ModuleInfoProxy(info:ModuleInfo){ super(); this.info = info; info.addEventListener(ModuleEvent.SETUP, moduleEventHandler, false, 0, true); info.addEventListener(ModuleEvent.PROGRESS, moduleEventHandler, false, 0, true); info.addEventListener(ModuleEvent.READY, moduleEventHandler, false, 0, true); info.addEventListener(ModuleEvent.ERROR, moduleEventHandler, false, 0, true); info.addEventListener(ModuleEvent.UNLOAD, moduleEventHandler, false, 0, true); } public function get loaded():Boolean{ return (info.loaded); } public function release():void{ if (referenced){ info.removeReference(); referenced = false; }; } public function get error():Boolean{ return (info.error); } public function get factory():IFlexModuleFactory{ return (info.factory); } public function publish(factory:IFlexModuleFactory):void{ info.publish(factory); } public function set data(value:Object):void{ _data = value; } public function get ready():Boolean{ return (info.ready); } public function load(applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null, bytes:ByteArray=null):void{ var moduleEvent:ModuleEvent; info.resurrect(); if (!referenced){ info.addReference(); referenced = true; }; if (info.error){ dispatchEvent(new ModuleEvent(ModuleEvent.ERROR)); } else { if (info.loaded){ if (info.setup){ dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); if (info.ready){ moduleEvent = new ModuleEvent(ModuleEvent.PROGRESS); moduleEvent.bytesLoaded = info.size; moduleEvent.bytesTotal = info.size; dispatchEvent(moduleEvent); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); }; }; } else { info.load(applicationDomain, securityDomain, bytes); }; }; } private function moduleEventHandler(event:ModuleEvent):void{ dispatchEvent(event); } public function get url():String{ return (info.url); } public function get data():Object{ return (_data); } public function get setup():Boolean{ return (info.setup); } public function unload():void{ info.unload(); info.removeEventListener(ModuleEvent.SETUP, moduleEventHandler); info.removeEventListener(ModuleEvent.PROGRESS, moduleEventHandler); info.removeEventListener(ModuleEvent.READY, moduleEventHandler); info.removeEventListener(ModuleEvent.ERROR, moduleEventHandler); info.removeEventListener(ModuleEvent.UNLOAD, moduleEventHandler); } } class ModuleManagerImpl extends EventDispatcher { private var moduleList:Object; private function ModuleManagerImpl(){ moduleList = {}; super(); } public function getModule(url:String):IModuleInfo{ var info:ModuleInfo = (moduleList[url] as ModuleInfo); if (!info){ info = new ModuleInfo(url); moduleList[url] = info; }; return (new ModuleInfoProxy(info)); } public function getAssociatedFactory(object:Object):IFlexModuleFactory{ var m:Object; var info:ModuleInfo; var domain:ApplicationDomain; var cls:Class; var object = object; var className:String = getQualifiedClassName(object); for each (m in moduleList) { info = (m as ModuleInfo); if (!info.ready){ } else { domain = info.applicationDomain; cls = Class(domain.getDefinition(className)); if ((object is cls)){ return (info.factory); }; //unresolved jump var _slot1 = error; }; }; return (null); } } class ModuleInfo extends EventDispatcher { private var _error:Boolean;// = false private var loader:Loader; private var factoryInfo:FactoryInfo; private var limbo:Dictionary; private var _loaded:Boolean;// = false private var _ready:Boolean;// = false private var numReferences:int;// = 0 private var _url:String; private var _setup:Boolean;// = false private function ModuleInfo(url:String){ super(); _url = url; } private function clearLoader():void{ if (loader){ if (loader.contentLoaderInfo){ loader.contentLoaderInfo.removeEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); }; if (loader.content){ loader.content.removeEventListener("ready", readyHandler); loader.content.removeEventListener("error", moduleErrorHandler); }; //unresolved jump var _slot1 = error; if (_loaded){ loader.close(); //unresolved jump var _slot1 = error; }; loader.unload(); //unresolved jump var _slot1 = error; loader = null; }; } public function get size():int{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.bytesTotal : 0); } public function get loaded():Boolean{ return ((limbo) ? false : _loaded); } public function release():void{ if (((_ready) && (!(limbo)))){ limbo = new Dictionary(true); limbo[factoryInfo] = 1; factoryInfo = null; } else { unload(); }; } public function get error():Boolean{ return ((limbo) ? false : _error); } public function get factory():IFlexModuleFactory{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.factory : null); } public function completeHandler(event:Event):void{ var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = loader.contentLoaderInfo.bytesLoaded; moduleEvent.bytesTotal = loader.contentLoaderInfo.bytesTotal; dispatchEvent(moduleEvent); } public function publish(factory:IFlexModuleFactory):void{ if (factoryInfo){ return; }; if (_url.indexOf("published://") != 0){ return; }; factoryInfo = new FactoryInfo(); factoryInfo.factory = factory; _loaded = true; _setup = true; _ready = true; _error = false; dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); dispatchEvent(new ModuleEvent(ModuleEvent.PROGRESS)); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); } public function initHandler(event:Event):void{ var moduleEvent:ModuleEvent; var event = event; factoryInfo = new FactoryInfo(); factoryInfo.factory = (loader.content as IFlexModuleFactory); //unresolved jump var _slot1 = error; if (!factoryInfo.factory){ moduleEvent = new ModuleEvent(ModuleEvent.ERROR, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = 0; moduleEvent.bytesTotal = 0; moduleEvent.errorText = "SWF is not a loadable module"; dispatchEvent(moduleEvent); return; }; loader.content.addEventListener("ready", readyHandler); loader.content.addEventListener("error", moduleErrorHandler); factoryInfo.applicationDomain = loader.contentLoaderInfo.applicationDomain; //unresolved jump var _slot1 = error; _setup = true; dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); } public function resurrect():void{ var f:Object; if (((!(factoryInfo)) && (limbo))){ for (f in limbo) { factoryInfo = (f as FactoryInfo); break; }; limbo = null; }; if (!factoryInfo){ if (_loaded){ dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD)); }; loader = null; _loaded = false; _setup = false; _ready = false; _error = false; }; } public function errorHandler(event:ErrorEvent):void{ _error = true; var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.ERROR, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = 0; moduleEvent.bytesTotal = 0; moduleEvent.errorText = event.text; dispatchEvent(moduleEvent); } public function get ready():Boolean{ return ((limbo) ? false : _ready); } private function loadBytes(applicationDomain:ApplicationDomain, bytes:ByteArray):void{ var c:LoaderContext = new LoaderContext(); c.applicationDomain = (applicationDomain) ? applicationDomain : new ApplicationDomain(ApplicationDomain.currentDomain); if (("allowLoadBytesCodeExecution" in c)){ c["allowLoadBytesCodeExecution"] = true; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.loadBytes(bytes, c); } public function removeReference():void{ numReferences--; if (numReferences == 0){ release(); }; } public function addReference():void{ numReferences++; } public function progressHandler(event:ProgressEvent):void{ var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = event.bytesLoaded; moduleEvent.bytesTotal = event.bytesTotal; dispatchEvent(moduleEvent); } public function load(applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null, bytes:ByteArray=null):void{ if (_loaded){ return; }; _loaded = true; limbo = null; if (bytes){ loadBytes(applicationDomain, bytes); return; }; if (_url.indexOf("published://") == 0){ return; }; var r:URLRequest = new URLRequest(_url); var c:LoaderContext = new LoaderContext(); c.applicationDomain = (applicationDomain) ? applicationDomain : new ApplicationDomain(ApplicationDomain.currentDomain); c.securityDomain = securityDomain; if ((((securityDomain == null)) && ((Security.sandboxType == Security.REMOTE)))){ c.securityDomain = SecurityDomain.currentDomain; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.load(r, c); } public function get url():String{ return (_url); } public function get applicationDomain():ApplicationDomain{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.applicationDomain : null); } public function moduleErrorHandler(event:Event):void{ var errorEvent:ModuleEvent; _ready = true; factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal; clearLoader(); if ((event is ModuleEvent)){ errorEvent = ModuleEvent(event); } else { errorEvent = new ModuleEvent(ModuleEvent.ERROR); }; dispatchEvent(errorEvent); } public function readyHandler(event:Event):void{ _ready = true; factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal; var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.READY); moduleEvent.bytesLoaded = loader.contentLoaderInfo.bytesLoaded; moduleEvent.bytesTotal = loader.contentLoaderInfo.bytesTotal; clearLoader(); dispatchEvent(moduleEvent); } public function get setup():Boolean{ return ((limbo) ? false : _setup); } public function unload():void{ clearLoader(); if (_loaded){ dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD)); }; limbo = null; factoryInfo = null; _loaded = false; _setup = false; _ready = false; _error = false; } } class FactoryInfo { public var bytesTotal:int;// = 0 public var factory:IFlexModuleFactory; public var applicationDomain:ApplicationDomain; private function FactoryInfo(){ super(); } }
Section 41
//ModuleManagerGlobals (mx.modules.ModuleManagerGlobals) package mx.modules { public class ModuleManagerGlobals { public static var managerSingleton:Object = null; public function ModuleManagerGlobals(){ super(); } } }//package mx.modules
Section 42
//IResourceBundle (mx.resources.IResourceBundle) package mx.resources { public interface IResourceBundle { function get content():Object; function get locale():String; function get bundleName():String; } }//package mx.resources
Section 43
//IResourceManager (mx.resources.IResourceManager) package mx.resources { import flash.events.*; import flash.system.*; public interface IResourceManager extends IEventDispatcher { function loadResourceModule(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher; function getBoolean(_arg1:String, _arg2:String, _arg3:String=null):Boolean; function getClass(_arg1:String, _arg2:String, _arg3:String=null):Class; function getLocales():Array; function removeResourceBundlesForLocale(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:String):void; function getResourceBundle(_arg1:String, _arg2:String):IResourceBundle; function get localeChain():Array; function getInt(_arg1:String, _arg2:String, _arg3:String=null):int; function update():void; function set localeChain(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:Array):void; function getUint(_arg1:String, _arg2:String, _arg3:String=null):uint; function addResourceBundle(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:IResourceBundle):void; function getStringArray(_arg1:String, _arg2:String, _arg3:String=null):Array; function getBundleNamesForLocale(:String):Array; function removeResourceBundle(_arg1:String, _arg2:String):void; function getObject(_arg1:String, _arg2:String, _arg3:String=null); function getString(_arg1:String, _arg2:String, _arg3:Array=null, _arg4:String=null):String; function installCompiledResourceBundles(_arg1:ApplicationDomain, _arg2:Array, _arg3:Array):void; function unloadResourceModule(_arg1:String, _arg2:Boolean=true):void; function getPreferredLocaleChain():Array; function findResourceBundleWithResource(_arg1:String, _arg2:String):IResourceBundle; function initializeLocaleChain(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:Array):void; function getNumber(_arg1:String, _arg2:String, _arg3:String=null):Number; } }//package mx.resources
Section 44
//IResourceModule (mx.resources.IResourceModule) package mx.resources { public interface IResourceModule { function get resourceBundles():Array; } }//package mx.resources
Section 45
//LocaleSorter (mx.resources.LocaleSorter) package mx.resources { public class LocaleSorter { mx_internal static const VERSION:String = "3.5.0.12683"; public function LocaleSorter(){ super(); } private static function normalizeLocale(locale:String):String{ return (locale.toLowerCase().replace(/-/g, "_")); } public static function sortLocalesByPreference(appLocales:Array, systemPreferences:Array, ultimateFallbackLocale:String=null, addAll:Boolean=false):Array{ var result:Array; var hasLocale:Object; var i:int; var j:int; var k:int; var l:int; var locale:String; var plocale:LocaleID; var appLocales = appLocales; var systemPreferences = systemPreferences; var ultimateFallbackLocale = ultimateFallbackLocale; var addAll = addAll; var promote:Function = function (locale:String):void{ if (typeof(hasLocale[locale]) != "undefined"){ result.push(appLocales[hasLocale[locale]]); delete hasLocale[locale]; }; }; result = []; hasLocale = {}; var locales:Array = trimAndNormalize(appLocales); var preferenceLocales:Array = trimAndNormalize(systemPreferences); addUltimateFallbackLocale(preferenceLocales, ultimateFallbackLocale); j = 0; while (j < locales.length) { hasLocale[locales[j]] = j; j = (j + 1); }; i = 0; l = preferenceLocales.length; while (i < l) { plocale = LocaleID.fromString(preferenceLocales[i]); promote(preferenceLocales[i]); promote(plocale.toString()); while (plocale.transformToParent()) { promote(plocale.toString()); }; plocale = LocaleID.fromString(preferenceLocales[i]); j = 0; while (j < l) { locale = preferenceLocales[j]; if (plocale.isSiblingOf(LocaleID.fromString(locale))){ promote(locale); }; j = (j + 1); }; j = 0; k = locales.length; while (j < k) { locale = locales[j]; if (plocale.isSiblingOf(LocaleID.fromString(locale))){ promote(locale); }; j = (j + 1); }; i = (i + 1); }; if (addAll){ j = 0; k = locales.length; while (j < k) { promote(locales[j]); j = (j + 1); }; }; return (result); } private static function addUltimateFallbackLocale(preferenceLocales:Array, ultimateFallbackLocale:String):void{ var locale:String; if (((!((ultimateFallbackLocale == null))) && (!((ultimateFallbackLocale == ""))))){ locale = normalizeLocale(ultimateFallbackLocale); if (preferenceLocales.indexOf(locale) == -1){ preferenceLocales.push(locale); }; }; } private static function trimAndNormalize(list:Array):Array{ var resultList:Array = []; var i:int; while (i < list.length) { resultList.push(normalizeLocale(list[i])); i++; }; return (resultList); } } }//package mx.resources class LocaleID { private var privateLangs:Boolean;// = false private var script:String;// = "" private var variants:Array; private var privates:Array; private var extensions:Object; private var lang:String;// = "" private var region:String;// = "" private var extended_langs:Array; public static const STATE_PRIMARY_LANGUAGE:int = 0; public static const STATE_REGION:int = 3; public static const STATE_EXTENDED_LANGUAGES:int = 1; public static const STATE_EXTENSIONS:int = 5; public static const STATE_SCRIPT:int = 2; public static const STATE_VARIANTS:int = 4; public static const STATE_PRIVATES:int = 6; private function LocaleID(){ extended_langs = []; variants = []; extensions = {}; privates = []; super(); } public function equals(locale:LocaleID):Boolean{ return ((toString() == locale.toString())); } public function canonicalize():void{ var i:String; for (i in extensions) { if (extensions.hasOwnProperty(i)){ if (extensions[i].length == 0){ delete extensions[i]; } else { extensions[i] = extensions[i].sort(); }; }; }; extended_langs = extended_langs.sort(); variants = variants.sort(); privates = privates.sort(); if (script == ""){ script = LocaleRegistry.getScriptByLang(lang); }; if ((((script == "")) && (!((region == ""))))){ script = LocaleRegistry.getScriptByLangAndRegion(lang, region); }; if ((((region == "")) && (!((script == ""))))){ region = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script); }; } public function toString():String{ var i:String; var stack:Array = [lang]; appendElements(stack, extended_langs); if (script != ""){ stack.push(script); }; if (region != ""){ stack.push(region); }; appendElements(stack, variants); for (i in extensions) { if (extensions.hasOwnProperty(i)){ stack.push(i); appendElements(stack, extensions[i]); }; }; if (privates.length > 0){ stack.push("x"); appendElements(stack, privates); }; return (stack.join("_")); } public function isSiblingOf(other:LocaleID):Boolean{ return ((((lang == other.lang)) && ((script == other.script)))); } public function transformToParent():Boolean{ var i:String; var lastExtension:Array; var defaultRegion:String; if (privates.length > 0){ privates.splice((privates.length - 1), 1); return (true); }; var lastExtensionName:String; for (i in extensions) { if (extensions.hasOwnProperty(i)){ lastExtensionName = i; }; }; if (lastExtensionName){ lastExtension = extensions[lastExtensionName]; if (lastExtension.length == 1){ delete extensions[lastExtensionName]; return (true); }; lastExtension.splice((lastExtension.length - 1), 1); return (true); }; if (variants.length > 0){ variants.splice((variants.length - 1), 1); return (true); }; if (script != ""){ if (LocaleRegistry.getScriptByLang(lang) != ""){ script = ""; return (true); }; if (region == ""){ defaultRegion = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script); if (defaultRegion != ""){ region = defaultRegion; script = ""; return (true); }; }; }; if (region != ""){ if (!(((script == "")) && ((LocaleRegistry.getScriptByLang(lang) == "")))){ region = ""; return (true); }; }; if (extended_langs.length > 0){ extended_langs.splice((extended_langs.length - 1), 1); return (true); }; return (false); } private static function appendElements(dest:Array, src:Array):void{ var i:uint; var argc:uint = src.length; while (i < argc) { dest.push(src[i]); i++; }; } public static function fromString(str:String):LocaleID{ var last_extension:Array; var subtag:String; var subtag_length:int; var firstChar:String; var localeID:LocaleID = new (LocaleID); var state:int = STATE_PRIMARY_LANGUAGE; var subtags:Array = str.replace(/-/g, "_").split("_"); var i:int; var l:int = subtags.length; while (i < l) { subtag = subtags[i].toLowerCase(); if (state == STATE_PRIMARY_LANGUAGE){ if (subtag == "x"){ localeID.privateLangs = true; } else { if (subtag == "i"){ localeID.lang = (localeID.lang + "i-"); } else { localeID.lang = (localeID.lang + subtag); state = STATE_EXTENDED_LANGUAGES; }; }; } else { subtag_length = subtag.length; if (subtag_length == 0){ } else { firstChar = subtag.charAt(0).toLowerCase(); if ((((state <= STATE_EXTENDED_LANGUAGES)) && ((subtag_length == 3)))){ localeID.extended_langs.push(subtag); if (localeID.extended_langs.length == 3){ state = STATE_SCRIPT; }; } else { if ((((state <= STATE_SCRIPT)) && ((subtag_length == 4)))){ localeID.script = subtag; state = STATE_REGION; } else { if ((((state <= STATE_REGION)) && ((((subtag_length == 2)) || ((subtag_length == 3)))))){ localeID.region = subtag; state = STATE_VARIANTS; } else { if ((((state <= STATE_VARIANTS)) && ((((((((firstChar >= "a")) && ((firstChar <= "z")))) && ((subtag_length >= 5)))) || ((((((firstChar >= "0")) && ((firstChar <= "9")))) && ((subtag_length >= 4)))))))){ localeID.variants.push(subtag); state = STATE_VARIANTS; } else { if ((((state < STATE_PRIVATES)) && ((subtag_length == 1)))){ if (subtag == "x"){ state = STATE_PRIVATES; last_extension = localeID.privates; } else { state = STATE_EXTENSIONS; last_extension = ((localeID.extensions[subtag]) || ([])); localeID.extensions[subtag] = last_extension; }; } else { if (state >= STATE_EXTENSIONS){ last_extension.push(subtag); }; }; }; }; }; }; }; }; i++; }; localeID.canonicalize(); return (localeID); } } class LocaleRegistry { private static const SCRIPT_ID_BY_LANG:Object = {ab:5, af:1, am:2, ar:3, as:4, ay:1, be:5, bg:5, bn:4, bs:1, ca:1, ch:1, cs:1, cy:1, da:1, de:1, dv:6, dz:7, el:8, en:1, eo:1, es:1, et:1, eu:1, fa:3, fi:1, fj:1, fo:1, fr:1, frr:1, fy:1, ga:1, gl:1, gn:1, gu:9, gv:1, he:10, hi:11, hr:1, ht:1, hu:1, hy:12, id:1, in:1, is:1, it:1, iw:10, ja:13, ka:14, kk:5, kl:1, km:15, kn:16, ko:17, la:1, lb:1, ln:1, lo:18, lt:1, lv:1, mg:1, mh:1, mk:5, ml:19, mo:1, mr:11, ms:1, mt:1, my:20, na:1, nb:1, nd:1, ne:11, nl:1, nn:1, no:1, nr:1, ny:1, om:1, or:21, pa:22, pl:1, ps:3, pt:1, qu:1, rn:1, ro:1, ru:5, rw:1, sg:1, si:23, sk:1, sl:1, sm:1, so:1, sq:1, ss:1, st:1, sv:1, sw:1, ta:24, te:25, th:26, ti:2, tl:1, tn:1, to:1, tr:1, ts:1, uk:5, ur:3, ve:1, vi:1, wo:1, xh:1, yi:10, zu:1, cpe:1, dsb:1, frs:1, gsw:1, hsb:1, kok:11, mai:11, men:1, nds:1, niu:1, nqo:27, nso:1, son:1, tem:1, tkl:1, tmh:1, tpi:1, tvl:1, zbl:28}; private static const SCRIPTS:Array = ["", "latn", "ethi", "arab", "beng", "cyrl", "thaa", "tibt", "grek", "gujr", "hebr", "deva", "armn", "jpan", "geor", "khmr", "knda", "kore", "laoo", "mlym", "mymr", "orya", "guru", "sinh", "taml", "telu", "thai", "nkoo", "blis", "hans", "hant", "mong", "syrc"]; private static const DEFAULT_REGION_BY_LANG_AND_SCRIPT:Object = {bg:{5:"bg"}, ca:{1:"es"}, zh:{30:"tw", 29:"cn"}, cs:{1:"cz"}, da:{1:"dk"}, de:{1:"de"}, el:{8:"gr"}, en:{1:"us"}, es:{1:"es"}, fi:{1:"fi"}, fr:{1:"fr"}, he:{10:"il"}, hu:{1:"hu"}, is:{1:"is"}, it:{1:"it"}, ja:{13:"jp"}, ko:{17:"kr"}, nl:{1:"nl"}, nb:{1:"no"}, pl:{1:"pl"}, pt:{1:"br"}, ro:{1:"ro"}, ru:{5:"ru"}, hr:{1:"hr"}, sk:{1:"sk"}, sq:{1:"al"}, sv:{1:"se"}, th:{26:"th"}, tr:{1:"tr"}, ur:{3:"pk"}, id:{1:"id"}, uk:{5:"ua"}, be:{5:"by"}, sl:{1:"si"}, et:{1:"ee"}, lv:{1:"lv"}, lt:{1:"lt"}, fa:{3:"ir"}, vi:{1:"vn"}, hy:{12:"am"}, az:{1:"az", 5:"az"}, eu:{1:"es"}, mk:{5:"mk"}, af:{1:"za"}, ka:{14:"ge"}, fo:{1:"fo"}, hi:{11:"in"}, ms:{1:"my"}, kk:{5:"kz"}, ky:{5:"kg"}, sw:{1:"ke"}, uz:{1:"uz", 5:"uz"}, tt:{5:"ru"}, pa:{22:"in"}, gu:{9:"in"}, ta:{24:"in"}, te:{25:"in"}, kn:{16:"in"}, mr:{11:"in"}, sa:{11:"in"}, mn:{5:"mn"}, gl:{1:"es"}, kok:{11:"in"}, syr:{32:"sy"}, dv:{6:"mv"}, nn:{1:"no"}, sr:{1:"cs", 5:"cs"}, cy:{1:"gb"}, mi:{1:"nz"}, mt:{1:"mt"}, quz:{1:"bo"}, tn:{1:"za"}, xh:{1:"za"}, zu:{1:"za"}, nso:{1:"za"}, se:{1:"no"}, smj:{1:"no"}, sma:{1:"no"}, sms:{1:"fi"}, smn:{1:"fi"}, bs:{1:"ba"}}; private static const SCRIPT_BY_ID:Object = {latn:1, ethi:2, arab:3, beng:4, cyrl:5, thaa:6, tibt:7, grek:8, gujr:9, hebr:10, deva:11, armn:12, jpan:13, geor:14, khmr:15, knda:16, kore:17, laoo:18, mlym:19, mymr:20, orya:21, guru:22, sinh:23, taml:24, telu:25, thai:26, nkoo:27, blis:28, hans:29, hant:30, mong:31, syrc:32}; private static const SCRIPT_ID_BY_LANG_AND_REGION:Object = {zh:{cn:29, sg:29, tw:30, hk:30, mo:30}, mn:{cn:31, sg:5}, pa:{pk:3, in:22}, ha:{gh:1, ne:1}}; private function LocaleRegistry(){ super(); } public static function getScriptByLangAndRegion(lang:String, region:String):String{ var langRegions:Object = SCRIPT_ID_BY_LANG_AND_REGION[lang]; if (langRegions == null){ return (""); }; var scriptID:Object = langRegions[region]; if (scriptID == null){ return (""); }; return (SCRIPTS[int(scriptID)].toLowerCase()); } public static function getScriptByLang(lang:String):String{ var scriptID:Object = SCRIPT_ID_BY_LANG[lang]; if (scriptID == null){ return (""); }; return (SCRIPTS[int(scriptID)].toLowerCase()); } public static function getDefaultRegionForLangAndScript(lang:String, script:String):String{ var langObj:Object = DEFAULT_REGION_BY_LANG_AND_SCRIPT[lang]; var scriptID:Object = SCRIPT_BY_ID[script]; if ((((langObj == null)) || ((scriptID == null)))){ return (""); }; return (((langObj[int(scriptID)]) || (""))); } }
Section 46
//ResourceBundle (mx.resources.ResourceBundle) package mx.resources { import mx.core.*; import flash.system.*; import mx.utils.*; public class ResourceBundle implements IResourceBundle { mx_internal var _locale:String; private var _content:Object; mx_internal var _bundleName:String; mx_internal static const VERSION:String = "3.5.0.12683"; mx_internal static var backupApplicationDomain:ApplicationDomain; mx_internal static var locale:String; public function ResourceBundle(locale:String=null, bundleName:String=null){ _content = {}; super(); mx_internal::_locale = locale; mx_internal::_bundleName = bundleName; _content = getContent(); } protected function getContent():Object{ return ({}); } public function getString(key:String):String{ return (String(_getObject(key))); } public function get content():Object{ return (_content); } public function getBoolean(key:String, defaultValue:Boolean=true):Boolean{ var temp:String = _getObject(key).toLowerCase(); if (temp == "false"){ return (false); }; if (temp == "true"){ return (true); }; return (defaultValue); } public function getStringArray(key:String):Array{ var array:Array = _getObject(key).split(","); var n:int = array.length; var i:int; while (i < n) { array[i] = StringUtil.trim(array[i]); i++; }; return (array); } public function getObject(key:String):Object{ return (_getObject(key)); } private function _getObject(key:String):Object{ var value:Object = content[key]; if (!value){ throw (new Error(((("Key " + key) + " was not found in resource bundle ") + bundleName))); }; return (value); } public function get locale():String{ return (mx_internal::_locale); } public function get bundleName():String{ return (mx_internal::_bundleName); } public function getNumber(key:String):Number{ return (Number(_getObject(key))); } private static function getClassByName(name:String, domain:ApplicationDomain):Class{ var c:Class; if (domain.hasDefinition(name)){ c = (domain.getDefinition(name) as Class); }; return (c); } public static function getResourceBundle(baseName:String, currentDomain:ApplicationDomain=null):ResourceBundle{ var className:String; var bundleClass:Class; var bundleObj:Object; var bundle:ResourceBundle; if (!currentDomain){ currentDomain = ApplicationDomain.currentDomain; }; className = (((mx_internal::locale + "$") + baseName) + "_properties"); bundleClass = getClassByName(className, currentDomain); if (!bundleClass){ className = (baseName + "_properties"); bundleClass = getClassByName(className, currentDomain); }; if (!bundleClass){ className = baseName; bundleClass = getClassByName(className, currentDomain); }; if (((!(bundleClass)) && (mx_internal::backupApplicationDomain))){ className = (baseName + "_properties"); bundleClass = getClassByName(className, mx_internal::backupApplicationDomain); if (!bundleClass){ className = baseName; bundleClass = getClassByName(className, mx_internal::backupApplicationDomain); }; }; if (bundleClass){ bundleObj = new (bundleClass); if ((bundleObj is ResourceBundle)){ bundle = ResourceBundle(bundleObj); return (bundle); }; }; throw (new Error(("Could not find resource bundle " + baseName))); } } }//package mx.resources
Section 47
//ResourceManager (mx.resources.ResourceManager) package mx.resources { import mx.core.*; public class ResourceManager { mx_internal static const VERSION:String = "3.5.0.12683"; private static var implClassDependency:ResourceManagerImpl; private static var instance:IResourceManager; public function ResourceManager(){ super(); } public static function getInstance():IResourceManager{ if (!instance){ instance = IResourceManager(Singleton.getInstance("mx.resources::IResourceManager")); //unresolved jump var _slot1 = e; instance = new ResourceManagerImpl(); }; return (instance); } } }//package mx.resources
Section 48
//ResourceManagerImpl (mx.resources.ResourceManagerImpl) package mx.resources { import mx.core.*; import flash.utils.*; import flash.events.*; import flash.system.*; import mx.modules.*; import mx.events.*; import mx.utils.*; public class ResourceManagerImpl extends EventDispatcher implements IResourceManager { private var resourceModules:Object; private var initializedForNonFrameworkApp:Boolean;// = false private var localeMap:Object; private var _localeChain:Array; mx_internal static const VERSION:String = "3.5.0.12683"; private static var instance:IResourceManager; public function ResourceManagerImpl(){ localeMap = {}; resourceModules = {}; super(); } public function get localeChain():Array{ return (_localeChain); } public function set localeChain(value:Array):void{ _localeChain = value; update(); } public function getStringArray(bundleName:String, resourceName:String, locale:String=null):Array{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (null); }; var value:* = resourceBundle.content[resourceName]; var array:Array = String(value).split(","); var n:int = array.length; var i:int; while (i < n) { array[i] = StringUtil.trim(array[i]); i++; }; return (array); } mx_internal function installCompiledResourceBundle(applicationDomain:ApplicationDomain, locale:String, bundleName:String):void{ var packageName:String; var localName:String = bundleName; var colonIndex:int = bundleName.indexOf(":"); if (colonIndex != -1){ packageName = bundleName.substring(0, colonIndex); localName = bundleName.substring((colonIndex + 1)); }; if (getResourceBundle(locale, bundleName)){ return; }; var resourceBundleClassName = (((locale + "$") + localName) + "_properties"); if (packageName != null){ resourceBundleClassName = ((packageName + ".") + resourceBundleClassName); }; var bundleClass:Class; if (applicationDomain.hasDefinition(resourceBundleClassName)){ bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName)); }; if (!bundleClass){ resourceBundleClassName = bundleName; if (applicationDomain.hasDefinition(resourceBundleClassName)){ bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName)); }; }; if (!bundleClass){ resourceBundleClassName = (bundleName + "_properties"); if (applicationDomain.hasDefinition(resourceBundleClassName)){ bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName)); }; }; if (!bundleClass){ throw (new Error((((("Could not find compiled resource bundle '" + bundleName) + "' for locale '") + locale) + "'."))); }; var resourceBundle:ResourceBundle = ResourceBundle(new (bundleClass)); resourceBundle.mx_internal::_locale = locale; resourceBundle.mx_internal::_bundleName = bundleName; addResourceBundle(resourceBundle); } public function getString(bundleName:String, resourceName:String, parameters:Array=null, locale:String=null):String{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (null); }; var value:String = String(resourceBundle.content[resourceName]); if (parameters){ value = StringUtil.substitute(value, parameters); }; return (value); } public function loadResourceModule(url:String, updateFlag:Boolean=true, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{ var moduleInfo:IModuleInfo; var resourceEventDispatcher:ResourceEventDispatcher; var timer:Timer; var timerHandler:Function; var url = url; var updateFlag = updateFlag; var applicationDomain = applicationDomain; var securityDomain = securityDomain; moduleInfo = ModuleManager.getModule(url); resourceEventDispatcher = new ResourceEventDispatcher(moduleInfo); var readyHandler:Function = function (event:ModuleEvent):void{ var resourceModule:* = event.module.factory.create(); resourceModules[event.module.url].resourceModule = resourceModule; if (updateFlag){ update(); }; }; moduleInfo.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true); var errorHandler:Function = function (event:ModuleEvent):void{ var resourceEvent:ResourceEvent; var message:String = ("Unable to load resource module from " + url); if (resourceEventDispatcher.willTrigger(ResourceEvent.ERROR)){ resourceEvent = new ResourceEvent(ResourceEvent.ERROR, event.bubbles, event.cancelable); resourceEvent.bytesLoaded = 0; resourceEvent.bytesTotal = 0; resourceEvent.errorText = message; resourceEventDispatcher.dispatchEvent(resourceEvent); } else { throw (new Error(message)); }; }; moduleInfo.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true); resourceModules[url] = new ResourceModuleInfo(moduleInfo, readyHandler, errorHandler); timer = new Timer(0); timerHandler = function (event:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.stop(); moduleInfo.load(applicationDomain, securityDomain); }; timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true); timer.start(); return (resourceEventDispatcher); } public function getLocales():Array{ var p:String; var locales:Array = []; for (p in localeMap) { locales.push(p); }; return (locales); } public function removeResourceBundlesForLocale(locale:String):void{ delete localeMap[locale]; } public function getResourceBundle(locale:String, bundleName:String):IResourceBundle{ var bundleMap:Object = localeMap[locale]; if (!bundleMap){ return (null); }; return (bundleMap[bundleName]); } private function dumpResourceModule(resourceModule):void{ var bundle:ResourceBundle; var p:String; for each (bundle in resourceModule.resourceBundles) { trace(bundle.locale, bundle.bundleName); for (p in bundle.content) { }; }; } public function addResourceBundle(resourceBundle:IResourceBundle):void{ var locale:String = resourceBundle.locale; var bundleName:String = resourceBundle.bundleName; if (!localeMap[locale]){ localeMap[locale] = {}; }; localeMap[locale][bundleName] = resourceBundle; } public function getObject(bundleName:String, resourceName:String, locale:String=null){ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (undefined); }; return (resourceBundle.content[resourceName]); } public function getInt(bundleName:String, resourceName:String, locale:String=null):int{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (0); }; var value:* = resourceBundle.content[resourceName]; return (int(value)); } private function findBundle(bundleName:String, resourceName:String, locale:String):IResourceBundle{ supportNonFrameworkApps(); return (((locale)!=null) ? getResourceBundle(locale, bundleName) : findResourceBundleWithResource(bundleName, resourceName)); } private function supportNonFrameworkApps():void{ if (initializedForNonFrameworkApp){ return; }; initializedForNonFrameworkApp = true; if (getLocales().length > 0){ return; }; var applicationDomain:ApplicationDomain = ApplicationDomain.currentDomain; if (!applicationDomain.hasDefinition("_CompiledResourceBundleInfo")){ return; }; var c:Class = Class(applicationDomain.getDefinition("_CompiledResourceBundleInfo")); var locales:Array = c.compiledLocales; var bundleNames:Array = c.compiledResourceBundleNames; installCompiledResourceBundles(applicationDomain, locales, bundleNames); localeChain = locales; } public function getBundleNamesForLocale(locale:String):Array{ var p:String; var bundleNames:Array = []; for (p in localeMap[locale]) { bundleNames.push(p); }; return (bundleNames); } public function getPreferredLocaleChain():Array{ return (LocaleSorter.sortLocalesByPreference(getLocales(), getSystemPreferredLocales(), null, true)); } public function getNumber(bundleName:String, resourceName:String, locale:String=null):Number{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (NaN); }; var value:* = resourceBundle.content[resourceName]; return (Number(value)); } public function update():void{ dispatchEvent(new Event(Event.CHANGE)); } public function getClass(bundleName:String, resourceName:String, locale:String=null):Class{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (null); }; var value:* = resourceBundle.content[resourceName]; return ((value as Class)); } public function removeResourceBundle(locale:String, bundleName:String):void{ delete localeMap[locale][bundleName]; if (getBundleNamesForLocale(locale).length == 0){ delete localeMap[locale]; }; } public function initializeLocaleChain(compiledLocales:Array):void{ localeChain = LocaleSorter.sortLocalesByPreference(compiledLocales, getSystemPreferredLocales(), null, true); } public function findResourceBundleWithResource(bundleName:String, resourceName:String):IResourceBundle{ var locale:String; var bundleMap:Object; var bundle:ResourceBundle; if (!_localeChain){ return (null); }; var n:int = _localeChain.length; var i:int; while (i < n) { locale = localeChain[i]; bundleMap = localeMap[locale]; if (!bundleMap){ } else { bundle = bundleMap[bundleName]; if (!bundle){ } else { if ((resourceName in bundle.content)){ return (bundle); }; }; }; i++; }; return (null); } public function getUint(bundleName:String, resourceName:String, locale:String=null):uint{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (0); }; var value:* = resourceBundle.content[resourceName]; return (uint(value)); } private function getSystemPreferredLocales():Array{ var systemPreferences:Array; if (Capabilities["languages"]){ systemPreferences = Capabilities["languages"]; } else { systemPreferences = [Capabilities.language]; }; return (systemPreferences); } public function installCompiledResourceBundles(applicationDomain:ApplicationDomain, locales:Array, bundleNames:Array):void{ var locale:String; var j:int; var bundleName:String; var n:int = (locales) ? locales.length : 0; var m:int = (bundleNames) ? bundleNames.length : 0; var i:int; while (i < n) { locale = locales[i]; j = 0; while (j < m) { bundleName = bundleNames[j]; mx_internal::installCompiledResourceBundle(applicationDomain, locale, bundleName); j++; }; i++; }; } public function getBoolean(bundleName:String, resourceName:String, locale:String=null):Boolean{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (false); }; var value:* = resourceBundle.content[resourceName]; return ((String(value).toLowerCase() == "true")); } public function unloadResourceModule(url:String, update:Boolean=true):void{ var bundles:Array; var n:int; var i:int; var locale:String; var bundleName:String; var rmi:ResourceModuleInfo = resourceModules[url]; if (!rmi){ return; }; if (rmi.resourceModule){ bundles = rmi.resourceModule.resourceBundles; if (bundles){ n = bundles.length; i = 0; while (i < n) { locale = bundles[i].locale; bundleName = bundles[i].bundleName; removeResourceBundle(locale, bundleName); i++; }; }; }; resourceModules[url] = null; delete resourceModules[url]; rmi.moduleInfo.unload(); if (update){ this.update(); }; } public static function getInstance():IResourceManager{ if (!instance){ instance = new (ResourceManagerImpl); }; return (instance); } } }//package mx.resources import flash.events.*; import mx.modules.*; import mx.events.*; class ResourceModuleInfo { public var resourceModule:IResourceModule; public var errorHandler:Function; public var readyHandler:Function; public var moduleInfo:IModuleInfo; private function ResourceModuleInfo(moduleInfo:IModuleInfo, readyHandler:Function, errorHandler:Function){ super(); this.moduleInfo = moduleInfo; this.readyHandler = readyHandler; this.errorHandler = errorHandler; } } class ResourceEventDispatcher extends EventDispatcher { private function ResourceEventDispatcher(moduleInfo:IModuleInfo){ super(); moduleInfo.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true); moduleInfo.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true); moduleInfo.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true); } private function moduleInfo_progressHandler(event:ModuleEvent):void{ var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.PROGRESS, event.bubbles, event.cancelable); resourceEvent.bytesLoaded = event.bytesLoaded; resourceEvent.bytesTotal = event.bytesTotal; dispatchEvent(resourceEvent); } private function moduleInfo_readyHandler(event:ModuleEvent):void{ var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.COMPLETE); dispatchEvent(resourceEvent); } private function moduleInfo_errorHandler(event:ModuleEvent):void{ var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.ERROR, event.bubbles, event.cancelable); resourceEvent.bytesLoaded = event.bytesLoaded; resourceEvent.bytesTotal = event.bytesTotal; resourceEvent.errorText = event.errorText; dispatchEvent(resourceEvent); } }
Section 49
//HaloBorder (mx.skins.halo.HaloBorder) package mx.skins.halo { import mx.core.*; import mx.styles.*; import flash.display.*; import mx.skins.*; import mx.graphics.*; import mx.utils.*; public class HaloBorder extends RectangularBorder { mx_internal var radiusObj:Object; mx_internal var backgroundHole:Object; mx_internal var radius:Number; mx_internal var bRoundedCorners:Boolean; mx_internal var backgroundColor:Object; private var dropShadow:RectangularDropShadow; protected var _borderMetrics:EdgeMetrics; mx_internal var backgroundAlphaName:String; mx_internal static const VERSION:String = "3.5.0.12683"; private static var BORDER_WIDTHS:Object = {none:0, solid:1, inset:2, outset:2, alert:3, dropdown:2, menuBorder:1, comboNonEdit:2}; public function HaloBorder(){ super(); BORDER_WIDTHS["default"] = 3; } override public function styleChanged(styleProp:String):void{ if ((((((((((styleProp == null)) || ((styleProp == "styleName")))) || ((styleProp == "borderStyle")))) || ((styleProp == "borderThickness")))) || ((styleProp == "borderSides")))){ _borderMetrics = null; }; invalidateDisplayList(); } override protected function updateDisplayList(w:Number, h:Number):void{ if (((isNaN(w)) || (isNaN(h)))){ return; }; super.updateDisplayList(w, h); backgroundColor = getBackgroundColor(); bRoundedCorners = false; backgroundAlphaName = "backgroundAlpha"; backgroundHole = null; radius = 0; radiusObj = null; drawBorder(w, h); drawBackground(w, h); } mx_internal function drawBorder(w:Number, h:Number):void{ var backgroundAlpha:Number; var borderCapColor:uint; var borderColor:uint; var borderSides:String; var borderThickness:Number; var buttonColor:uint; var docked:Boolean; var dropdownBorderColor:uint; var fillColors:Array; var footerColors:Array; var highlightColor:uint; var shadowCapColor:uint; var shadowColor:uint; var themeColor:uint; var translucent:Boolean; var hole:Object; var borderColorDrk1:Number; var borderColorDrk2:Number; var borderColorLt1:Number; var borderInnerColor:Object; var contentAlpha:Number; var br:Number; var parentContainer:IContainer; var vm:EdgeMetrics; var showChrome:Boolean; var borderAlpha:Number; var fillAlphas:Array; var backgroundColorNum:uint; var bHasAllSides:Boolean; var holeRadius:Number; var borderStyle:String = getStyle("borderStyle"); var highlightAlphas:Array = getStyle("highlightAlphas"); var drawTopHighlight:Boolean; var g:Graphics = graphics; g.clear(); if (borderStyle){ switch (borderStyle){ case "none": break; case "inset": borderColor = getStyle("borderColor"); borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -40); borderColorDrk2 = ColorUtil.adjustBrightness2(borderColor, 25); borderColorLt1 = ColorUtil.adjustBrightness2(borderColor, 40); borderInnerColor = backgroundColor; if ((((borderInnerColor === null)) || ((borderInnerColor === "")))){ borderInnerColor = borderColor; }; draw3dBorder(borderColorDrk2, borderColorDrk1, borderColorLt1, Number(borderInnerColor), Number(borderInnerColor), Number(borderInnerColor)); break; case "outset": borderColor = getStyle("borderColor"); borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -40); borderColorDrk2 = ColorUtil.adjustBrightness2(borderColor, -25); borderColorLt1 = ColorUtil.adjustBrightness2(borderColor, 40); borderInnerColor = backgroundColor; if ((((borderInnerColor === null)) || ((borderInnerColor === "")))){ borderInnerColor = borderColor; }; draw3dBorder(borderColorDrk2, borderColorLt1, borderColorDrk1, Number(borderInnerColor), Number(borderInnerColor), Number(borderInnerColor)); break; case "alert": case "default": if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ contentAlpha = getStyle("backgroundAlpha"); backgroundAlpha = getStyle("borderAlpha"); backgroundAlphaName = "borderAlpha"; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); br = (bRoundedCorners) ? radius : 0; drawDropShadow(0, 0, w, h, radius, radius, br, br); if (!bRoundedCorners){ radiusObj = {}; }; parentContainer = (parent as IContainer); if (parentContainer){ vm = parentContainer.viewMetrics; backgroundHole = {x:vm.left, y:vm.top, w:Math.max(0, ((w - vm.left) - vm.right)), h:Math.max(0, ((h - vm.top) - vm.bottom)), r:0}; if ((((backgroundHole.w > 0)) && ((backgroundHole.h > 0)))){ if (contentAlpha != backgroundAlpha){ drawDropShadow(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h, 0, 0, 0, 0); }; g.beginFill(Number(backgroundColor), contentAlpha); g.drawRect(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h); g.endFill(); }; }; backgroundColor = getStyle("borderColor"); }; break; case "dropdown": dropdownBorderColor = getStyle("dropdownBorderColor"); drawDropShadow(0, 0, w, h, 4, 0, 0, 4); drawRoundRect(0, 0, w, h, {tl:4, tr:0, br:0, bl:4}, 5068126, 1); drawRoundRect(0, 0, w, h, {tl:4, tr:0, br:0, bl:4}, [0xFFFFFF, 0xFFFFFF], [0.7, 0], verticalGradientMatrix(0, 0, w, h)); drawRoundRect(1, 1, (w - 1), (h - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1); drawRoundRect(1, 2, (w - 1), (h - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (w - 1), (h - 3))); if (!isNaN(dropdownBorderColor)){ drawRoundRect(0, 0, (w + 1), h, {tl:4, tr:0, br:0, bl:4}, dropdownBorderColor, 0.5); drawRoundRect(1, 1, (w - 1), (h - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1); drawRoundRect(1, 2, (w - 1), (h - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (w - 1), (h - 3))); }; backgroundColor = null; break; case "menuBorder": borderColor = getStyle("borderColor"); drawRoundRect(0, 0, w, h, 0, borderColor, 1); drawDropShadow(1, 1, (w - 2), (h - 2), 0, 0, 0, 0); break; case "comboNonEdit": break; case "controlBar": if ((((w == 0)) || ((h == 0)))){ backgroundColor = null; break; }; footerColors = getStyle("footerColors"); showChrome = !((footerColors == null)); borderAlpha = getStyle("borderAlpha"); if (showChrome){ g.lineStyle(0, ((footerColors.length > 0)) ? footerColors[1] : footerColors[0], borderAlpha); g.moveTo(0, 0); g.lineTo(w, 0); g.lineStyle(0, 0, 0); if (((((parent) && (parent.parent))) && ((parent.parent is IStyleClient)))){ radius = IStyleClient(parent.parent).getStyle("cornerRadius"); borderAlpha = IStyleClient(parent.parent).getStyle("borderAlpha"); }; if (isNaN(radius)){ radius = 0; }; if (IStyleClient(parent.parent).getStyle("roundedBottomCorners").toString().toLowerCase() != "true"){ radius = 0; }; drawRoundRect(0, 1, w, (h - 1), {tl:0, tr:0, bl:radius, br:radius}, footerColors, borderAlpha, verticalGradientMatrix(0, 0, w, h)); if ((((footerColors.length > 1)) && (!((footerColors[0] == footerColors[1]))))){ drawRoundRect(0, 1, w, (h - 1), {tl:0, tr:0, bl:radius, br:radius}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(0, 0, w, h)); drawRoundRect(1, 2, (w - 2), (h - 3), {tl:0, tr:0, bl:(radius - 1), br:(radius - 1)}, footerColors, borderAlpha, verticalGradientMatrix(0, 0, w, h)); }; }; backgroundColor = null; break; case "applicationControlBar": fillColors = getStyle("fillColors"); backgroundAlpha = getStyle("backgroundAlpha"); highlightAlphas = getStyle("highlightAlphas"); fillAlphas = getStyle("fillAlphas"); docked = getStyle("docked"); backgroundColorNum = uint(backgroundColor); radius = getStyle("cornerRadius"); if (!radius){ radius = 0; }; drawDropShadow(0, 1, w, (h - 1), radius, radius, radius, radius); if (((!((backgroundColor === null))) && (StyleManager.isValidStyleValue(backgroundColor)))){ drawRoundRect(0, 1, w, (h - 1), radius, backgroundColorNum, backgroundAlpha, verticalGradientMatrix(0, 0, w, h)); }; drawRoundRect(0, 1, w, (h - 1), radius, fillColors, fillAlphas, verticalGradientMatrix(0, 0, w, h)); drawRoundRect(0, 1, w, ((h / 2) - 1), {tl:radius, tr:radius, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(0, 0, w, ((h / 2) - 1))); drawRoundRect(0, 1, w, (h - 1), {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, 0.3, null, GradientType.LINEAR, null, {x:0, y:2, w:w, h:(h - 2), r:{tl:radius, tr:radius, bl:0, br:0}}); backgroundColor = null; break; default: borderColor = getStyle("borderColor"); borderThickness = getStyle("borderThickness"); borderSides = getStyle("borderSides"); bHasAllSides = true; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); holeRadius = Math.max((radius - borderThickness), 0); hole = {x:borderThickness, y:borderThickness, w:(w - (borderThickness * 2)), h:(h - (borderThickness * 2)), r:holeRadius}; if (!bRoundedCorners){ radiusObj = {tl:radius, tr:radius, bl:0, br:0}; hole.r = {tl:holeRadius, tr:holeRadius, bl:0, br:0}; }; if (borderSides != "left top right bottom"){ hole.r = {tl:holeRadius, tr:holeRadius, bl:(bRoundedCorners) ? holeRadius : 0, br:(bRoundedCorners) ? holeRadius : 0}; radiusObj = {tl:radius, tr:radius, bl:(bRoundedCorners) ? radius : 0, br:(bRoundedCorners) ? radius : 0}; borderSides = borderSides.toLowerCase(); if (borderSides.indexOf("left") == -1){ hole.x = 0; hole.w = (hole.w + borderThickness); hole.r.tl = 0; hole.r.bl = 0; radiusObj.tl = 0; radiusObj.bl = 0; bHasAllSides = false; }; if (borderSides.indexOf("top") == -1){ hole.y = 0; hole.h = (hole.h + borderThickness); hole.r.tl = 0; hole.r.tr = 0; radiusObj.tl = 0; radiusObj.tr = 0; bHasAllSides = false; }; if (borderSides.indexOf("right") == -1){ hole.w = (hole.w + borderThickness); hole.r.tr = 0; hole.r.br = 0; radiusObj.tr = 0; radiusObj.br = 0; bHasAllSides = false; }; if (borderSides.indexOf("bottom") == -1){ hole.h = (hole.h + borderThickness); hole.r.bl = 0; hole.r.br = 0; radiusObj.bl = 0; radiusObj.br = 0; bHasAllSides = false; }; }; if ((((radius == 0)) && (bHasAllSides))){ drawDropShadow(0, 0, w, h, 0, 0, 0, 0); g.beginFill(borderColor); g.drawRect(0, 0, w, h); g.drawRect(borderThickness, borderThickness, (w - (2 * borderThickness)), (h - (2 * borderThickness))); g.endFill(); } else { if (radiusObj){ drawDropShadow(0, 0, w, h, radiusObj.tl, radiusObj.tr, radiusObj.br, radiusObj.bl); drawRoundRect(0, 0, w, h, radiusObj, borderColor, 1, null, null, null, hole); radiusObj.tl = Math.max((radius - borderThickness), 0); radiusObj.tr = Math.max((radius - borderThickness), 0); radiusObj.bl = (bRoundedCorners) ? Math.max((radius - borderThickness), 0) : 0; radiusObj.br = (bRoundedCorners) ? Math.max((radius - borderThickness), 0) : 0; } else { drawDropShadow(0, 0, w, h, radius, radius, radius, radius); drawRoundRect(0, 0, w, h, radius, borderColor, 1, null, null, null, hole); radius = Math.max((getStyle("cornerRadius") - borderThickness), 0); }; }; }; }; } mx_internal function drawBackground(w:Number, h:Number):void{ var nd:Number; var alpha:Number; var bm:EdgeMetrics; var g:Graphics; var bottom:Number; var topRadius:Number; var bottomRadius:Number; var highlightAlphas:Array; var highlightAlpha:Number; if (((((((!((backgroundColor === null))) && (!((backgroundColor === ""))))) || (getStyle("mouseShield")))) || (getStyle("mouseShieldChildren")))){ nd = Number(backgroundColor); alpha = 1; bm = getBackgroundColorMetrics(); g = graphics; if (((((isNaN(nd)) || ((backgroundColor === "")))) || ((backgroundColor === null)))){ alpha = 0; nd = 0xFFFFFF; } else { alpha = getStyle(backgroundAlphaName); }; if (((!((radius == 0))) || (backgroundHole))){ bottom = bm.bottom; if (radiusObj){ topRadius = Math.max((radius - Math.max(bm.top, bm.left, bm.right)), 0); bottomRadius = (bRoundedCorners) ? Math.max((radius - Math.max(bm.bottom, bm.left, bm.right)), 0) : 0; radiusObj = {tl:topRadius, tr:topRadius, bl:bottomRadius, br:bottomRadius}; drawRoundRect(bm.left, bm.top, (width - (bm.left + bm.right)), (height - (bm.top + bottom)), radiusObj, nd, alpha, null, GradientType.LINEAR, null, backgroundHole); } else { drawRoundRect(bm.left, bm.top, (width - (bm.left + bm.right)), (height - (bm.top + bottom)), radius, nd, alpha, null, GradientType.LINEAR, null, backgroundHole); }; } else { g.beginFill(nd, alpha); g.drawRect(bm.left, bm.top, ((w - bm.right) - bm.left), ((h - bm.bottom) - bm.top)); g.endFill(); }; }; var borderStyle:String = getStyle("borderStyle"); if ((((((FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)) && ((((borderStyle == "alert")) || ((borderStyle == "default")))))) && ((getStyle("headerColors") == null)))){ highlightAlphas = getStyle("highlightAlphas"); highlightAlpha = (highlightAlphas) ? highlightAlphas[0] : 0.3; drawRoundRect(0, 0, w, h, {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, highlightAlpha, null, GradientType.LINEAR, null, {x:0, y:1, w:w, h:(h - 1), r:{tl:radius, tr:radius, bl:0, br:0}}); }; } mx_internal function drawDropShadow(x:Number, y:Number, width:Number, height:Number, tlRadius:Number, trRadius:Number, brRadius:Number, blRadius:Number):void{ var angle:Number; var docked:Boolean; if ((((((((getStyle("dropShadowEnabled") == false)) || ((getStyle("dropShadowEnabled") == "false")))) || ((width == 0)))) || ((height == 0)))){ return; }; var distance:Number = getStyle("shadowDistance"); var direction:String = getStyle("shadowDirection"); if (getStyle("borderStyle") == "applicationControlBar"){ docked = getStyle("docked"); angle = (docked) ? 90 : getDropShadowAngle(distance, direction); distance = Math.abs(distance); } else { angle = getDropShadowAngle(distance, direction); distance = (Math.abs(distance) + 2); }; if (!dropShadow){ dropShadow = new RectangularDropShadow(); }; dropShadow.distance = distance; dropShadow.angle = angle; dropShadow.color = getStyle("dropShadowColor"); dropShadow.alpha = 0.4; dropShadow.tlRadius = tlRadius; dropShadow.trRadius = trRadius; dropShadow.blRadius = blRadius; dropShadow.brRadius = brRadius; dropShadow.drawShadow(graphics, x, y, width, height); } mx_internal function getBackgroundColor():Object{ var color:Object; var p:IUIComponent = (parent as IUIComponent); if (((p) && (!(p.enabled)))){ color = getStyle("backgroundDisabledColor"); if (((!((color === null))) && (StyleManager.isValidStyleValue(color)))){ return (color); }; }; return (getStyle("backgroundColor")); } mx_internal function draw3dBorder(c1:Number, c2:Number, c3:Number, c4:Number, c5:Number, c6:Number):void{ var w:Number = width; var h:Number = height; drawDropShadow(0, 0, width, height, 0, 0, 0, 0); var g:Graphics = graphics; g.beginFill(c1); g.drawRect(0, 0, w, h); g.drawRect(1, 0, (w - 2), h); g.endFill(); g.beginFill(c2); g.drawRect(1, 0, (w - 2), 1); g.endFill(); g.beginFill(c3); g.drawRect(1, (h - 1), (w - 2), 1); g.endFill(); g.beginFill(c4); g.drawRect(1, 1, (w - 2), 1); g.endFill(); g.beginFill(c5); g.drawRect(1, (h - 2), (w - 2), 1); g.endFill(); g.beginFill(c6); g.drawRect(1, 2, (w - 2), (h - 4)); g.drawRect(2, 2, (w - 4), (h - 4)); g.endFill(); } mx_internal function getBackgroundColorMetrics():EdgeMetrics{ return (borderMetrics); } mx_internal function getDropShadowAngle(distance:Number, direction:String):Number{ if (direction == "left"){ return (((distance >= 0)) ? 135 : 225); } else { if (direction == "right"){ return (((distance >= 0)) ? 45 : 315); //unresolved jump }; }; return (!NULL!); } override public function get borderMetrics():EdgeMetrics{ var borderThickness:Number; var borderSides:String; if (_borderMetrics){ return (_borderMetrics); }; var borderStyle:String = getStyle("borderStyle"); if ((((borderStyle == "default")) || ((borderStyle == "alert")))){ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ _borderMetrics = new EdgeMetrics(0, 0, 0, 0); } else { return (EdgeMetrics.EMPTY); }; } else { if ((((borderStyle == "controlBar")) || ((borderStyle == "applicationControlBar")))){ _borderMetrics = new EdgeMetrics(1, 1, 1, 1); } else { if (borderStyle == "solid"){ borderThickness = getStyle("borderThickness"); if (isNaN(borderThickness)){ borderThickness = 0; }; _borderMetrics = new EdgeMetrics(borderThickness, borderThickness, borderThickness, borderThickness); borderSides = getStyle("borderSides"); if (borderSides != "left top right bottom"){ if (borderSides.indexOf("left") == -1){ _borderMetrics.left = 0; }; if (borderSides.indexOf("top") == -1){ _borderMetrics.top = 0; }; if (borderSides.indexOf("right") == -1){ _borderMetrics.right = 0; }; if (borderSides.indexOf("bottom") == -1){ _borderMetrics.bottom = 0; }; }; } else { borderThickness = BORDER_WIDTHS[borderStyle]; if (isNaN(borderThickness)){ borderThickness = 0; }; _borderMetrics = new EdgeMetrics(borderThickness, borderThickness, borderThickness, borderThickness); }; }; }; return (_borderMetrics); } } }//package mx.skins.halo
Section 50
//HaloFocusRect (mx.skins.halo.HaloFocusRect) package mx.skins.halo { import mx.styles.*; import flash.display.*; import mx.skins.*; import mx.utils.*; public class HaloFocusRect extends ProgrammaticSkin implements IStyleClient { private var _focusColor:Number; mx_internal static const VERSION:String = "3.5.0.12683"; public function HaloFocusRect(){ super(); } public function get inheritingStyles():Object{ return (styleName.inheritingStyles); } public function set inheritingStyles(value:Object):void{ } public function notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void{ } public function registerEffects(effects:Array):void{ } public function regenerateStyleCache(recursive:Boolean):void{ } public function get styleDeclaration():CSSStyleDeclaration{ return (CSSStyleDeclaration(styleName)); } public function getClassStyleDeclarations():Array{ return ([]); } public function get className():String{ return ("HaloFocusRect"); } public function clearStyle(styleProp:String):void{ if (styleProp == "focusColor"){ _focusColor = NaN; }; } public function setStyle(styleProp:String, newValue):void{ if (styleProp == "focusColor"){ _focusColor = newValue; }; } public function set nonInheritingStyles(value:Object):void{ } public function get nonInheritingStyles():Object{ return (styleName.nonInheritingStyles); } override protected function updateDisplayList(w:Number, h:Number):void{ var tl:Number; var bl:Number; var tr:Number; var br:Number; var nr:Number; var ellipseSize:Number; super.updateDisplayList(w, h); var focusBlendMode:String = getStyle("focusBlendMode"); var focusAlpha:Number = getStyle("focusAlpha"); var focusColor:Number = getStyle("focusColor"); var cornerRadius:Number = getStyle("cornerRadius"); var focusThickness:Number = getStyle("focusThickness"); var focusRoundedCorners:String = getStyle("focusRoundedCorners"); var themeColor:Number = getStyle("themeColor"); var rectColor:Number = focusColor; if (isNaN(rectColor)){ rectColor = themeColor; }; var g:Graphics = graphics; g.clear(); if (focusBlendMode){ blendMode = focusBlendMode; }; if (((!((focusRoundedCorners == "tl tr bl br"))) && ((cornerRadius > 0)))){ tl = 0; bl = 0; tr = 0; br = 0; nr = (cornerRadius + focusThickness); if (focusRoundedCorners.indexOf("tl") >= 0){ tl = nr; }; if (focusRoundedCorners.indexOf("tr") >= 0){ tr = nr; }; if (focusRoundedCorners.indexOf("bl") >= 0){ bl = nr; }; if (focusRoundedCorners.indexOf("br") >= 0){ br = nr; }; g.beginFill(rectColor, focusAlpha); GraphicsUtil.drawRoundRectComplex(g, 0, 0, w, h, tl, tr, bl, br); tl = (tl) ? cornerRadius : 0; tr = (tr) ? cornerRadius : 0; bl = (bl) ? cornerRadius : 0; br = (br) ? cornerRadius : 0; GraphicsUtil.drawRoundRectComplex(g, focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), tl, tr, bl, br); g.endFill(); nr = (cornerRadius + (focusThickness / 2)); tl = (tl) ? nr : 0; tr = (tr) ? nr : 0; bl = (bl) ? nr : 0; br = (br) ? nr : 0; g.beginFill(rectColor, focusAlpha); GraphicsUtil.drawRoundRectComplex(g, (focusThickness / 2), (focusThickness / 2), (w - focusThickness), (h - focusThickness), tl, tr, bl, br); tl = (tl) ? cornerRadius : 0; tr = (tr) ? cornerRadius : 0; bl = (bl) ? cornerRadius : 0; br = (br) ? cornerRadius : 0; GraphicsUtil.drawRoundRectComplex(g, focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), tl, tr, bl, br); g.endFill(); } else { g.beginFill(rectColor, focusAlpha); ellipseSize = (((cornerRadius > 0)) ? (cornerRadius + focusThickness) : 0 * 2); g.drawRoundRect(0, 0, w, h, ellipseSize, ellipseSize); ellipseSize = (cornerRadius * 2); g.drawRoundRect(focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), ellipseSize, ellipseSize); g.endFill(); g.beginFill(rectColor, focusAlpha); ellipseSize = (((cornerRadius > 0)) ? (cornerRadius + (focusThickness / 2)) : 0 * 2); g.drawRoundRect((focusThickness / 2), (focusThickness / 2), (w - focusThickness), (h - focusThickness), ellipseSize, ellipseSize); ellipseSize = (cornerRadius * 2); g.drawRoundRect(focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), ellipseSize, ellipseSize); g.endFill(); }; } override public function getStyle(styleProp:String){ return (((styleProp == "focusColor")) ? _focusColor : super.getStyle(styleProp)); } public function set styleDeclaration(value:CSSStyleDeclaration):void{ } } }//package mx.skins.halo
Section 51
//Border (mx.skins.Border) package mx.skins { import mx.core.*; public class Border extends ProgrammaticSkin implements IBorder { mx_internal static const VERSION:String = "3.5.0.12683"; public function Border(){ super(); } public function get borderMetrics():EdgeMetrics{ return (EdgeMetrics.EMPTY); } } }//package mx.skins
Section 52
//ProgrammaticSkin (mx.skins.ProgrammaticSkin) package mx.skins { import mx.core.*; import mx.styles.*; import flash.display.*; import flash.geom.*; import mx.managers.*; import mx.utils.*; public class ProgrammaticSkin extends FlexShape implements IFlexDisplayObject, IInvalidating, ILayoutManagerClient, ISimpleStyleClient, IProgrammaticSkin { private var _initialized:Boolean;// = false private var _height:Number; private var invalidateDisplayListFlag:Boolean;// = false private var _styleName:IStyleClient; private var _nestLevel:int;// = 0 private var _processedDescriptors:Boolean;// = false private var _updateCompletePendingFlag:Boolean;// = true private var _width:Number; mx_internal static const VERSION:String = "3.5.0.12683"; private static var tempMatrix:Matrix = new Matrix(); public function ProgrammaticSkin(){ super(); _width = measuredWidth; _height = measuredHeight; } public function getStyle(styleProp:String){ return ((_styleName) ? _styleName.getStyle(styleProp) : null); } protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ } public function get nestLevel():int{ return (_nestLevel); } public function set nestLevel(value:int):void{ _nestLevel = value; invalidateDisplayList(); } override public function get height():Number{ return (_height); } public function get updateCompletePendingFlag():Boolean{ return (_updateCompletePendingFlag); } protected function verticalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix{ return (rotatedGradientMatrix(x, y, width, height, 90)); } public function validateSize(recursive:Boolean=false):void{ } public function invalidateDisplayList():void{ if (((!(invalidateDisplayListFlag)) && ((nestLevel > 0)))){ invalidateDisplayListFlag = true; UIComponentGlobals.layoutManager.invalidateDisplayList(this); }; } public function set updateCompletePendingFlag(value:Boolean):void{ _updateCompletePendingFlag = value; } protected function horizontalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix{ return (rotatedGradientMatrix(x, y, width, height, 0)); } override public function set height(value:Number):void{ _height = value; invalidateDisplayList(); } public function set processedDescriptors(value:Boolean):void{ _processedDescriptors = value; } public function validateDisplayList():void{ invalidateDisplayListFlag = false; updateDisplayList(width, height); } public function get measuredWidth():Number{ return (0); } override public function set width(value:Number):void{ _width = value; invalidateDisplayList(); } public function get measuredHeight():Number{ return (0); } public function set initialized(value:Boolean):void{ _initialized = value; } protected function drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerRadius:Object=null, color:Object=null, alpha:Object=null, gradientMatrix:Matrix=null, gradientType:String="linear", gradientRatios:Array=null, hole:Object=null):void{ var ellipseSize:Number; var alphas:Array; var holeR:Object; var g:Graphics = graphics; if ((((width == 0)) || ((height == 0)))){ return; }; if (color !== null){ if ((color is uint)){ g.beginFill(uint(color), Number(alpha)); } else { if ((color is Array)){ alphas = ((alpha is Array)) ? (alpha as Array) : [alpha, alpha]; if (!gradientRatios){ gradientRatios = [0, 0xFF]; }; g.beginGradientFill(gradientType, (color as Array), alphas, gradientRatios, gradientMatrix); }; }; }; if (!cornerRadius){ g.drawRect(x, y, width, height); } else { if ((cornerRadius is Number)){ ellipseSize = (Number(cornerRadius) * 2); g.drawRoundRect(x, y, width, height, ellipseSize, ellipseSize); } else { GraphicsUtil.drawRoundRectComplex(g, x, y, width, height, cornerRadius.tl, cornerRadius.tr, cornerRadius.bl, cornerRadius.br); }; }; if (hole){ holeR = hole.r; if ((holeR is Number)){ ellipseSize = (Number(holeR) * 2); g.drawRoundRect(hole.x, hole.y, hole.w, hole.h, ellipseSize, ellipseSize); } else { GraphicsUtil.drawRoundRectComplex(g, hole.x, hole.y, hole.w, hole.h, holeR.tl, holeR.tr, holeR.bl, holeR.br); }; }; if (color !== null){ g.endFill(); }; } public function get processedDescriptors():Boolean{ return (_processedDescriptors); } public function set styleName(value:Object):void{ if (_styleName != value){ _styleName = (value as IStyleClient); invalidateDisplayList(); }; } public function setActualSize(newWidth:Number, newHeight:Number):void{ var changed:Boolean; if (_width != newWidth){ _width = newWidth; changed = true; }; if (_height != newHeight){ _height = newHeight; changed = true; }; if (changed){ invalidateDisplayList(); }; } public function styleChanged(styleProp:String):void{ invalidateDisplayList(); } override public function get width():Number{ return (_width); } public function invalidateProperties():void{ } public function get initialized():Boolean{ return (_initialized); } protected function rotatedGradientMatrix(x:Number, y:Number, width:Number, height:Number, rotation:Number):Matrix{ tempMatrix.createGradientBox(width, height, ((rotation * Math.PI) / 180), x, y); return (tempMatrix); } public function move(x:Number, y:Number):void{ this.x = x; this.y = y; } public function get styleName():Object{ return (_styleName); } public function validateNow():void{ if (invalidateDisplayListFlag){ validateDisplayList(); }; } public function invalidateSize():void{ } public function validateProperties():void{ } } }//package mx.skins
Section 53
//RectangularBorder (mx.skins.RectangularBorder) package mx.skins { import mx.core.*; import flash.utils.*; import mx.styles.*; import flash.events.*; import flash.system.*; import flash.display.*; import flash.geom.*; import mx.resources.*; import flash.net.*; public class RectangularBorder extends Border implements IRectangularBorder { private var backgroundImage:DisplayObject; private var backgroundImageHeight:Number; private var _backgroundImageBounds:Rectangle; private var backgroundImageStyle:Object; private var backgroundImageWidth:Number; private var resourceManager:IResourceManager; mx_internal static const VERSION:String = "3.5.0.12683"; public function RectangularBorder(){ resourceManager = ResourceManager.getInstance(); super(); addEventListener(Event.REMOVED, removedHandler); } public function layoutBackgroundImage():void{ var sW:Number; var sH:Number; var sX:Number; var sY:Number; var scale:Number; var g:Graphics; var p:DisplayObject = parent; var bm:EdgeMetrics = ((p is IContainer)) ? IContainer(p).viewMetrics : borderMetrics; var scrollableBk = !((getStyle("backgroundAttachment") == "fixed")); if (_backgroundImageBounds){ sW = _backgroundImageBounds.width; sH = _backgroundImageBounds.height; } else { sW = ((width - bm.left) - bm.right); sH = ((height - bm.top) - bm.bottom); }; var percentage:Number = getBackgroundSize(); if (isNaN(percentage)){ sX = 1; sY = 1; } else { scale = (percentage * 0.01); sX = ((scale * sW) / backgroundImageWidth); sY = ((scale * sH) / backgroundImageHeight); }; backgroundImage.scaleX = sX; backgroundImage.scaleY = sY; var offsetX:Number = Math.round((0.5 * (sW - (backgroundImageWidth * sX)))); var offsetY:Number = Math.round((0.5 * (sH - (backgroundImageHeight * sY)))); backgroundImage.x = bm.left; backgroundImage.y = bm.top; var backgroundMask:Shape = Shape(backgroundImage.mask); backgroundMask.x = bm.left; backgroundMask.y = bm.top; if (((scrollableBk) && ((p is IContainer)))){ offsetX = (offsetX - IContainer(p).horizontalScrollPosition); offsetY = (offsetY - IContainer(p).verticalScrollPosition); }; backgroundImage.alpha = getStyle("backgroundAlpha"); backgroundImage.x = (backgroundImage.x + offsetX); backgroundImage.y = (backgroundImage.y + offsetY); var maskWidth:Number = ((width - bm.left) - bm.right); var maskHeight:Number = ((height - bm.top) - bm.bottom); if (((!((backgroundMask.width == maskWidth))) || (!((backgroundMask.height == maskHeight))))){ g = backgroundMask.graphics; g.clear(); g.beginFill(0xFFFFFF); g.drawRect(0, 0, maskWidth, maskHeight); g.endFill(); }; } public function set backgroundImageBounds(value:Rectangle):void{ if (((((_backgroundImageBounds) && (value))) && (_backgroundImageBounds.equals(value)))){ return; }; _backgroundImageBounds = value; invalidateDisplayList(); } private function getBackgroundSize():Number{ var index:int; var percentage:Number = NaN; var backgroundSize:Object = getStyle("backgroundSize"); if (((backgroundSize) && ((backgroundSize is String)))){ index = backgroundSize.indexOf("%"); if (index != -1){ percentage = Number(backgroundSize.substr(0, index)); }; }; return (percentage); } private function removedHandler(event:Event):void{ var childrenList:IChildList; if (backgroundImage){ childrenList = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent); childrenList.removeChild(backgroundImage.mask); childrenList.removeChild(backgroundImage); backgroundImage = null; }; } private function initBackgroundImage(image:DisplayObject):void{ backgroundImage = image; if ((image is Loader)){ backgroundImageWidth = Loader(image).contentLoaderInfo.width; backgroundImageHeight = Loader(image).contentLoaderInfo.height; } else { backgroundImageWidth = backgroundImage.width; backgroundImageHeight = backgroundImage.height; if ((image is ISimpleStyleClient)){ ISimpleStyleClient(image).styleName = styleName; }; }; var childrenList:IChildList = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent); var backgroundMask:Shape = new FlexShape(); backgroundMask.name = "backgroundMask"; backgroundMask.x = 0; backgroundMask.y = 0; childrenList.addChild(backgroundMask); var myIndex:int = childrenList.getChildIndex(this); childrenList.addChildAt(backgroundImage, (myIndex + 1)); backgroundImage.mask = backgroundMask; } public function get backgroundImageBounds():Rectangle{ return (_backgroundImageBounds); } public function get hasBackgroundImage():Boolean{ return (!((backgroundImage == null))); } private function completeEventHandler(event:Event):void{ if (!parent){ return; }; var target:DisplayObject = DisplayObject(LoaderInfo(event.target).loader); initBackgroundImage(target); layoutBackgroundImage(); dispatchEvent(event.clone()); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var cls:Class; var newStyleObj:DisplayObject; var loader:Loader; var loaderContext:LoaderContext; var message:String; var unscaledWidth = unscaledWidth; var unscaledHeight = unscaledHeight; if (!parent){ return; }; var newStyle:Object = getStyle("backgroundImage"); if (newStyle != backgroundImageStyle){ removedHandler(null); backgroundImageStyle = newStyle; if (((newStyle) && ((newStyle as Class)))){ cls = Class(newStyle); initBackgroundImage(new (cls)); } else { if (((newStyle) && ((newStyle is String)))){ cls = Class(getDefinitionByName(String(newStyle))); //unresolved jump var _slot1 = e; if (cls){ newStyleObj = new (cls); initBackgroundImage(newStyleObj); } else { loader = new FlexLoader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeEventHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorEventHandler); loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, errorEventHandler); loaderContext = new LoaderContext(); loaderContext.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); loader.load(new URLRequest(String(newStyle)), loaderContext); }; } else { if (newStyle){ message = resourceManager.getString("skins", "notLoaded", [newStyle]); throw (new Error(message)); }; }; }; }; if (backgroundImage){ layoutBackgroundImage(); }; } private function errorEventHandler(event:Event):void{ } } }//package mx.skins
Section 54
//CSSStyleDeclaration (mx.styles.CSSStyleDeclaration) package mx.styles { import mx.core.*; import flash.utils.*; import flash.events.*; import flash.display.*; import mx.managers.*; public class CSSStyleDeclaration extends EventDispatcher { mx_internal var effects:Array; protected var overrides:Object; public var defaultFactory:Function; public var factory:Function; mx_internal var selectorRefCount:int;// = 0 private var styleManager:IStyleManager2; private var clones:Dictionary; mx_internal static const VERSION:String = "3.5.0.12683"; private static const NOT_A_COLOR:uint = 4294967295; private static const FILTERMAP_PROP:String = "__reserved__filterMap"; public function CSSStyleDeclaration(selector:String=null){ clones = new Dictionary(true); super(); if (selector){ styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2); styleManager.setStyleDeclaration(selector, this, false); }; } mx_internal function addStyleToProtoChain(chain:Object, target:DisplayObject, filterMap:Object=null):Object{ var p:String; var emptyObjectFactory:Function; var filteredChain:Object; var filterObjectFactory:Function; var i:String; var chain = chain; var target = target; var filterMap = filterMap; var nodeAddedToChain:Boolean; var originalChain:Object = chain; if (filterMap){ chain = {}; }; if (defaultFactory != null){ defaultFactory.prototype = chain; chain = new defaultFactory(); nodeAddedToChain = true; }; if (factory != null){ factory.prototype = chain; chain = new factory(); nodeAddedToChain = true; }; if (overrides){ if ((((defaultFactory == null)) && ((factory == null)))){ emptyObjectFactory = function ():void{ }; emptyObjectFactory.prototype = chain; chain = new (emptyObjectFactory); nodeAddedToChain = true; }; for (p in overrides) { if (overrides[p] === undefined){ delete chain[p]; } else { chain[p] = overrides[p]; }; }; }; if (filterMap){ if (nodeAddedToChain){ filteredChain = {}; filterObjectFactory = function ():void{ }; filterObjectFactory.prototype = originalChain; filteredChain = new (filterObjectFactory); for (i in chain) { if (filterMap[i] != null){ filteredChain[filterMap[i]] = chain[i]; }; }; chain = filteredChain; chain[FILTERMAP_PROP] = filterMap; } else { chain = originalChain; }; }; if (nodeAddedToChain){ clones[chain] = 1; }; return (chain); } public function getStyle(styleProp:String){ var o:*; var v:*; if (overrides){ if ((((styleProp in overrides)) && ((overrides[styleProp] === undefined)))){ return (undefined); }; v = overrides[styleProp]; if (v !== undefined){ return (v); }; }; if (factory != null){ factory.prototype = {}; o = new factory(); v = o[styleProp]; if (v !== undefined){ return (v); }; }; if (defaultFactory != null){ defaultFactory.prototype = {}; o = new defaultFactory(); v = o[styleProp]; if (v !== undefined){ return (v); }; }; return (undefined); } public function clearStyle(styleProp:String):void{ setStyle(styleProp, undefined); } public function setStyle(styleProp:String, newValue):void{ var i:int; var sm:Object; var oldValue:Object = getStyle(styleProp); var regenerate:Boolean; if ((((((((((selectorRefCount > 0)) && ((factory == null)))) && ((defaultFactory == null)))) && (!(overrides)))) && (!((oldValue === newValue))))){ regenerate = true; }; if (newValue !== undefined){ setStyle(styleProp, newValue); } else { if (newValue == oldValue){ return; }; setStyle(styleProp, newValue); }; var sms:Array = SystemManagerGlobals.topLevelSystemManagers; var n:int = sms.length; if (regenerate){ i = 0; while (i < n) { sm = sms[i]; sm.regenerateStyleCache(true); i++; }; }; i = 0; while (i < n) { sm = sms[i]; sm.notifyStyleChangeInChildren(styleProp, true); i++; }; } private function clearStyleAttr(styleProp:String):void{ var clone:*; if (!overrides){ overrides = {}; }; overrides[styleProp] = undefined; for (clone in clones) { delete clone[styleProp]; }; } mx_internal function createProtoChainRoot():Object{ var root:Object = {}; if (defaultFactory != null){ defaultFactory.prototype = root; root = new defaultFactory(); }; if (factory != null){ factory.prototype = root; root = new factory(); }; clones[root] = 1; return (root); } mx_internal function clearOverride(styleProp:String):void{ if (((overrides) && (overrides[styleProp]))){ delete overrides[styleProp]; }; } mx_internal function setStyle(styleProp:String, value):void{ var o:Object; var clone:*; var colorNumber:Number; var cloneFilter:Object; if (value === undefined){ clearStyleAttr(styleProp); return; }; if ((value is String)){ if (!styleManager){ styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2); }; colorNumber = styleManager.getColorName(value); if (colorNumber != NOT_A_COLOR){ value = colorNumber; }; }; if (defaultFactory != null){ o = new defaultFactory(); if (o[styleProp] !== value){ if (!overrides){ overrides = {}; }; overrides[styleProp] = value; } else { if (overrides){ delete overrides[styleProp]; }; }; }; if (factory != null){ o = new factory(); if (o[styleProp] !== value){ if (!overrides){ overrides = {}; }; overrides[styleProp] = value; } else { if (overrides){ delete overrides[styleProp]; }; }; }; if ((((defaultFactory == null)) && ((factory == null)))){ if (!overrides){ overrides = {}; }; overrides[styleProp] = value; }; for (clone in clones) { cloneFilter = clone[FILTERMAP_PROP]; if (cloneFilter){ if (cloneFilter[styleProp] != null){ clone[cloneFilter[styleProp]] = value; }; } else { clone[styleProp] = value; }; }; } } }//package mx.styles
Section 55
//ISimpleStyleClient (mx.styles.ISimpleStyleClient) package mx.styles { public interface ISimpleStyleClient { function set styleName(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;ISimpleStyleClient.as:Object):void; function styleChanged(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;ISimpleStyleClient.as:String):void; function get styleName():Object; } }//package mx.styles
Section 56
//IStyleClient (mx.styles.IStyleClient) package mx.styles { public interface IStyleClient extends ISimpleStyleClient { function regenerateStyleCache(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Boolean):void; function get className():String; function clearStyle(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:String):void; function getClassStyleDeclarations():Array; function get inheritingStyles():Object; function set nonInheritingStyles(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Object):void; function setStyle(_arg1:String, _arg2):void; function get styleDeclaration():CSSStyleDeclaration; function set styleDeclaration(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:CSSStyleDeclaration):void; function get nonInheritingStyles():Object; function set inheritingStyles(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Object):void; function getStyle(*:String); function notifyStyleChangeInChildren(_arg1:String, _arg2:Boolean):void; function registerEffects(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Array):void; } }//package mx.styles
Section 57
//IStyleManager (mx.styles.IStyleManager) package mx.styles { import flash.events.*; public interface IStyleManager { function isColorName(value:String):Boolean; function registerParentDisplayListInvalidatingStyle(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void; function registerInheritingStyle(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void; function set stylesRoot(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void; function get typeSelectorCache():Object; function styleDeclarationsChanged():void; function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void; function isParentDisplayListInvalidatingStyle(value:String):Boolean; function isSizeInvalidatingStyle(value:String):Boolean; function get inheritingStyles():Object; function isValidStyleValue(value):Boolean; function isParentSizeInvalidatingStyle(value:String):Boolean; function getColorName(mx.styles:IStyleManager/mx.styles:IStyleManager:inheritingStyles/set:Object):uint; function set typeSelectorCache(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void; function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void; function getColorNames(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Array):void; function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false):IEventDispatcher; function isInheritingStyle(value:String):Boolean; function set inheritingStyles(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void; function get stylesRoot():Object; function initProtoChainRoots():void; function registerColorName(_arg1:String, _arg2:uint):void; function registerParentSizeInvalidatingStyle(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void; function registerSizeInvalidatingStyle(C:\autobuild\3.5.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void; function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void; function isInheritingTextFormatStyle(value:String):Boolean; function getStyleDeclaration(mx.styles:IStyleManager/mx.styles:IStyleManager:inheritingStyles/get:String):CSSStyleDeclaration; } }//package mx.styles
Section 58
//IStyleManager2 (mx.styles.IStyleManager2) package mx.styles { import flash.events.*; import flash.system.*; public interface IStyleManager2 extends IStyleManager { function get selectors():Array; function loadStyleDeclarations2(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher; } }//package mx.styles
Section 59
//IStyleModule (mx.styles.IStyleModule) package mx.styles { public interface IStyleModule { function unload():void; } }//package mx.styles
Section 60
//StyleManager (mx.styles.StyleManager) package mx.styles { import mx.core.*; import flash.events.*; import flash.system.*; public class StyleManager { mx_internal static const VERSION:String = "3.5.0.12683"; public static const NOT_A_COLOR:uint = 4294967295; private static var _impl:IStyleManager2; private static var implClassDependency:StyleManagerImpl; public function StyleManager(){ super(); } public static function isParentSizeInvalidatingStyle(styleName:String):Boolean{ return (impl.isParentSizeInvalidatingStyle(styleName)); } public static function registerInheritingStyle(styleName:String):void{ impl.registerInheritingStyle(styleName); } mx_internal static function set stylesRoot(value:Object):void{ impl.stylesRoot = value; } mx_internal static function get inheritingStyles():Object{ return (impl.inheritingStyles); } mx_internal static function styleDeclarationsChanged():void{ impl.styleDeclarationsChanged(); } public static function setStyleDeclaration(selector:String, styleDeclaration:CSSStyleDeclaration, update:Boolean):void{ impl.setStyleDeclaration(selector, styleDeclaration, update); } public static function registerParentDisplayListInvalidatingStyle(styleName:String):void{ impl.registerParentDisplayListInvalidatingStyle(styleName); } mx_internal static function get typeSelectorCache():Object{ return (impl.typeSelectorCache); } mx_internal static function set inheritingStyles(value:Object):void{ impl.inheritingStyles = value; } public static function isColorName(colorName:String):Boolean{ return (impl.isColorName(colorName)); } public static function isParentDisplayListInvalidatingStyle(styleName:String):Boolean{ return (impl.isParentDisplayListInvalidatingStyle(styleName)); } public static function isSizeInvalidatingStyle(styleName:String):Boolean{ return (impl.isSizeInvalidatingStyle(styleName)); } public static function getColorName(colorName:Object):uint{ return (impl.getColorName(colorName)); } mx_internal static function set typeSelectorCache(value:Object):void{ impl.typeSelectorCache = value; } public static function unloadStyleDeclarations(url:String, update:Boolean=true):void{ impl.unloadStyleDeclarations(url, update); } public static function getColorNames(colors:Array):void{ impl.getColorNames(colors); } public static function loadStyleDeclarations(url:String, update:Boolean=true, trustContent:Boolean=false, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{ return (impl.loadStyleDeclarations2(url, update, applicationDomain, securityDomain)); } private static function get impl():IStyleManager2{ if (!_impl){ _impl = IStyleManager2(Singleton.getInstance("mx.styles::IStyleManager2")); }; return (_impl); } public static function isValidStyleValue(value):Boolean{ return (impl.isValidStyleValue(value)); } mx_internal static function get stylesRoot():Object{ return (impl.stylesRoot); } public static function isInheritingStyle(styleName:String):Boolean{ return (impl.isInheritingStyle(styleName)); } mx_internal static function initProtoChainRoots():void{ impl.initProtoChainRoots(); } public static function registerParentSizeInvalidatingStyle(styleName:String):void{ impl.registerParentSizeInvalidatingStyle(styleName); } public static function get selectors():Array{ return (impl.selectors); } public static function registerSizeInvalidatingStyle(styleName:String):void{ impl.registerSizeInvalidatingStyle(styleName); } public static function clearStyleDeclaration(selector:String, update:Boolean):void{ impl.clearStyleDeclaration(selector, update); } public static function registerColorName(colorName:String, colorValue:uint):void{ impl.registerColorName(colorName, colorValue); } public static function isInheritingTextFormatStyle(styleName:String):Boolean{ return (impl.isInheritingTextFormatStyle(styleName)); } public static function getStyleDeclaration(selector:String):CSSStyleDeclaration{ return (impl.getStyleDeclaration(selector)); } } }//package mx.styles
Section 61
//StyleManagerImpl (mx.styles.StyleManagerImpl) package mx.styles { import mx.core.*; import flash.utils.*; import flash.events.*; import flash.system.*; import mx.modules.*; import mx.events.*; import mx.resources.*; import mx.managers.*; public class StyleManagerImpl implements IStyleManager2 { private var _stylesRoot:Object; private var _selectors:Object; private var styleModules:Object; private var _inheritingStyles:Object; private var resourceManager:IResourceManager; private var _typeSelectorCache:Object; mx_internal static const VERSION:String = "3.5.0.12683"; private static var parentSizeInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true}; private static var colorNames:Object = {transparent:"transparent", black:0, blue:0xFF, green:0x8000, gray:0x808080, silver:0xC0C0C0, lime:0xFF00, olive:0x808000, white:0xFFFFFF, yellow:0xFFFF00, maroon:0x800000, navy:128, red:0xFF0000, purple:0x800080, teal:0x8080, fuchsia:0xFF00FF, aqua:0xFFFF, magenta:0xFF00FF, cyan:0xFFFF, halogreen:8453965, haloblue:40447, haloorange:0xFFB600, halosilver:11455193}; private static var inheritingTextFormatStyles:Object = {align:true, bold:true, color:true, font:true, indent:true, italic:true, size:true}; private static var instance:IStyleManager2; private static var parentDisplayListInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true}; private static var sizeInvalidatingStyles:Object = {borderStyle:true, borderThickness:true, fontAntiAliasType:true, fontFamily:true, fontGridFitType:true, fontSharpness:true, fontSize:true, fontStyle:true, fontThickness:true, fontWeight:true, headerHeight:true, horizontalAlign:true, horizontalGap:true, kerning:true, leading:true, letterSpacing:true, paddingBottom:true, paddingLeft:true, paddingRight:true, paddingTop:true, strokeWidth:true, tabHeight:true, tabWidth:true, verticalAlign:true, verticalGap:true}; public function StyleManagerImpl(){ _selectors = {}; styleModules = {}; resourceManager = ResourceManager.getInstance(); _inheritingStyles = {}; _typeSelectorCache = {}; super(); } public function setStyleDeclaration(selector:String, styleDeclaration:CSSStyleDeclaration, update:Boolean):void{ styleDeclaration.selectorRefCount++; _selectors[selector] = styleDeclaration; typeSelectorCache = {}; if (update){ styleDeclarationsChanged(); }; } public function registerParentDisplayListInvalidatingStyle(styleName:String):void{ parentDisplayListInvalidatingStyles[styleName] = true; } public function getStyleDeclaration(selector:String):CSSStyleDeclaration{ var index:int; if (selector.charAt(0) != "."){ index = selector.lastIndexOf("."); if (index != -1){ selector = selector.substr((index + 1)); }; }; return (_selectors[selector]); } public function set typeSelectorCache(value:Object):void{ _typeSelectorCache = value; } public function isColorName(colorName:String):Boolean{ return (!((colorNames[colorName.toLowerCase()] === undefined))); } public function set inheritingStyles(value:Object):void{ _inheritingStyles = value; } public function getColorNames(colors:Array):void{ var colorNumber:uint; if (!colors){ return; }; var n:int = colors.length; var i:int; while (i < n) { if (((!((colors[i] == null))) && (isNaN(colors[i])))){ colorNumber = getColorName(colors[i]); if (colorNumber != StyleManager.NOT_A_COLOR){ colors[i] = colorNumber; }; }; i++; }; } public function isInheritingTextFormatStyle(styleName:String):Boolean{ return ((inheritingTextFormatStyles[styleName] == true)); } public function registerParentSizeInvalidatingStyle(styleName:String):void{ parentSizeInvalidatingStyles[styleName] = true; } public function registerColorName(colorName:String, colorValue:uint):void{ colorNames[colorName.toLowerCase()] = colorValue; } public function isParentSizeInvalidatingStyle(styleName:String):Boolean{ return ((parentSizeInvalidatingStyles[styleName] == true)); } public function registerInheritingStyle(styleName:String):void{ inheritingStyles[styleName] = true; } public function set stylesRoot(value:Object):void{ _stylesRoot = value; } public function get typeSelectorCache():Object{ return (_typeSelectorCache); } public function isParentDisplayListInvalidatingStyle(styleName:String):Boolean{ return ((parentDisplayListInvalidatingStyles[styleName] == true)); } public function isSizeInvalidatingStyle(styleName:String):Boolean{ return ((sizeInvalidatingStyles[styleName] == true)); } public function styleDeclarationsChanged():void{ var sm:Object; var sms:Array = SystemManagerGlobals.topLevelSystemManagers; var n:int = sms.length; var i:int; while (i < n) { sm = sms[i]; sm.regenerateStyleCache(true); sm.notifyStyleChangeInChildren(null, true); i++; }; } public function isValidStyleValue(value):Boolean{ return (!((value === undefined))); } public function loadStyleDeclarations(url:String, update:Boolean=true, trustContent:Boolean=false):IEventDispatcher{ return (loadStyleDeclarations2(url, update)); } public function get inheritingStyles():Object{ return (_inheritingStyles); } public function unloadStyleDeclarations(url:String, update:Boolean=true):void{ var module:IModuleInfo; var styleModuleInfo:StyleModuleInfo = styleModules[url]; if (styleModuleInfo){ styleModuleInfo.styleModule.unload(); module = styleModuleInfo.module; module.unload(); module.removeEventListener(ModuleEvent.READY, styleModuleInfo.readyHandler); module.removeEventListener(ModuleEvent.ERROR, styleModuleInfo.errorHandler); styleModules[url] = null; }; if (update){ styleDeclarationsChanged(); }; } public function getColorName(colorName:Object):uint{ var n:Number; var c:*; if ((colorName is String)){ if (colorName.charAt(0) == "#"){ n = Number(("0x" + colorName.slice(1))); return ((isNaN(n)) ? StyleManager.NOT_A_COLOR : uint(n)); }; if ((((colorName.charAt(1) == "x")) && ((colorName.charAt(0) == "0")))){ n = Number(colorName); return ((isNaN(n)) ? StyleManager.NOT_A_COLOR : uint(n)); }; c = colorNames[colorName.toLowerCase()]; if (c === undefined){ return (StyleManager.NOT_A_COLOR); }; return (uint(c)); }; return (uint(colorName)); } public function isInheritingStyle(styleName:String):Boolean{ return ((inheritingStyles[styleName] == true)); } public function get stylesRoot():Object{ return (_stylesRoot); } public function initProtoChainRoots():void{ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ delete _inheritingStyles["textDecoration"]; delete _inheritingStyles["leading"]; }; if (!stylesRoot){ stylesRoot = _selectors["global"].addStyleToProtoChain({}, null); }; } public function loadStyleDeclarations2(url:String, update:Boolean=true, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{ var module:IModuleInfo; var styleEventDispatcher:StyleEventDispatcher; var timer:Timer; var timerHandler:Function; var url = url; var update = update; var applicationDomain = applicationDomain; var securityDomain = securityDomain; module = ModuleManager.getModule(url); var readyHandler:Function = function (moduleEvent:ModuleEvent):void{ var styleModule:IStyleModule = IStyleModule(moduleEvent.module.factory.create()); styleModules[moduleEvent.module.url].styleModule = styleModule; if (update){ styleDeclarationsChanged(); }; }; module.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true); styleEventDispatcher = new StyleEventDispatcher(module); var errorHandler:Function = function (moduleEvent:ModuleEvent):void{ var styleEvent:StyleEvent; var errorText:String = resourceManager.getString("styles", "unableToLoad", [moduleEvent.errorText, url]); if (styleEventDispatcher.willTrigger(StyleEvent.ERROR)){ styleEvent = new StyleEvent(StyleEvent.ERROR, moduleEvent.bubbles, moduleEvent.cancelable); styleEvent.bytesLoaded = 0; styleEvent.bytesTotal = 0; styleEvent.errorText = errorText; styleEventDispatcher.dispatchEvent(styleEvent); } else { throw (new Error(errorText)); }; }; module.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true); styleModules[url] = new StyleModuleInfo(module, readyHandler, errorHandler); timer = new Timer(0); timerHandler = function (event:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.stop(); module.load(applicationDomain, securityDomain); }; timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true); timer.start(); return (styleEventDispatcher); } public function registerSizeInvalidatingStyle(styleName:String):void{ sizeInvalidatingStyles[styleName] = true; } public function clearStyleDeclaration(selector:String, update:Boolean):void{ var styleDeclaration:CSSStyleDeclaration = getStyleDeclaration(selector); if (((styleDeclaration) && ((styleDeclaration.selectorRefCount > 0)))){ styleDeclaration.selectorRefCount--; }; delete _selectors[selector]; if (update){ styleDeclarationsChanged(); }; } public function get selectors():Array{ var i:String; var theSelectors:Array = []; for (i in _selectors) { theSelectors.push(i); }; return (theSelectors); } public static function getInstance():IStyleManager2{ if (!instance){ instance = new (StyleManagerImpl); }; return (instance); } } }//package mx.styles import flash.events.*; import mx.modules.*; import mx.events.*; class StyleEventDispatcher extends EventDispatcher { private function StyleEventDispatcher(moduleInfo:IModuleInfo){ super(); moduleInfo.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true); moduleInfo.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true); moduleInfo.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true); } private function moduleInfo_progressHandler(event:ModuleEvent):void{ var styleEvent:StyleEvent = new StyleEvent(StyleEvent.PROGRESS, event.bubbles, event.cancelable); styleEvent.bytesLoaded = event.bytesLoaded; styleEvent.bytesTotal = event.bytesTotal; dispatchEvent(styleEvent); } private function moduleInfo_readyHandler(event:ModuleEvent):void{ var styleEvent:StyleEvent = new StyleEvent(StyleEvent.COMPLETE); styleEvent.bytesLoaded = event.bytesLoaded; styleEvent.bytesTotal = event.bytesTotal; dispatchEvent(styleEvent); } private function moduleInfo_errorHandler(event:ModuleEvent):void{ var styleEvent:StyleEvent = new StyleEvent(StyleEvent.ERROR, event.bubbles, event.cancelable); styleEvent.bytesLoaded = event.bytesLoaded; styleEvent.bytesTotal = event.bytesTotal; styleEvent.errorText = event.errorText; dispatchEvent(styleEvent); } } class StyleModuleInfo { public var errorHandler:Function; public var readyHandler:Function; public var module:IModuleInfo; public var styleModule:IStyleModule; private function StyleModuleInfo(module:IModuleInfo, readyHandler:Function, errorHandler:Function){ super(); this.module = module; this.readyHandler = readyHandler; this.errorHandler = errorHandler; } }
Section 62
//ColorUtil (mx.utils.ColorUtil) package mx.utils { public class ColorUtil { mx_internal static const VERSION:String = "3.5.0.12683"; public function ColorUtil(){ super(); } public static function adjustBrightness2(rgb:uint, brite:Number):uint{ var r:Number; var g:Number; var b:Number; if (brite == 0){ return (rgb); }; if (brite < 0){ brite = ((100 + brite) / 100); r = (((rgb >> 16) & 0xFF) * brite); g = (((rgb >> 8) & 0xFF) * brite); b = ((rgb & 0xFF) * brite); } else { brite = (brite / 100); r = ((rgb >> 16) & 0xFF); g = ((rgb >> 8) & 0xFF); b = (rgb & 0xFF); r = (r + ((0xFF - r) * brite)); g = (g + ((0xFF - g) * brite)); b = (b + ((0xFF - b) * brite)); r = Math.min(r, 0xFF); g = Math.min(g, 0xFF); b = Math.min(b, 0xFF); }; return ((((r << 16) | (g << 8)) | b)); } public static function rgbMultiply(rgb1:uint, rgb2:uint):uint{ var r1:Number = ((rgb1 >> 16) & 0xFF); var g1:Number = ((rgb1 >> 8) & 0xFF); var b1:Number = (rgb1 & 0xFF); var r2:Number = ((rgb2 >> 16) & 0xFF); var g2:Number = ((rgb2 >> 8) & 0xFF); var b2:Number = (rgb2 & 0xFF); return ((((((r1 * r2) / 0xFF) << 16) | (((g1 * g2) / 0xFF) << 8)) | ((b1 * b2) / 0xFF))); } public static function adjustBrightness(rgb:uint, brite:Number):uint{ var r:Number = Math.max(Math.min((((rgb >> 16) & 0xFF) + brite), 0xFF), 0); var g:Number = Math.max(Math.min((((rgb >> 8) & 0xFF) + brite), 0xFF), 0); var b:Number = Math.max(Math.min(((rgb & 0xFF) + brite), 0xFF), 0); return ((((r << 16) | (g << 8)) | b)); } } }//package mx.utils
Section 63
//GraphicsUtil (mx.utils.GraphicsUtil) package mx.utils { import flash.display.*; public class GraphicsUtil { mx_internal static const VERSION:String = "3.5.0.12683"; public function GraphicsUtil(){ super(); } public static function drawRoundRectComplex(graphics:Graphics, x:Number, y:Number, width:Number, height:Number, topLeftRadius:Number, topRightRadius:Number, bottomLeftRadius:Number, bottomRightRadius:Number):void{ var xw:Number = (x + width); var yh:Number = (y + height); var minSize:Number = ((width < height)) ? (width * 2) : (height * 2); topLeftRadius = ((topLeftRadius < minSize)) ? topLeftRadius : minSize; topRightRadius = ((topRightRadius < minSize)) ? topRightRadius : minSize; bottomLeftRadius = ((bottomLeftRadius < minSize)) ? bottomLeftRadius : minSize; bottomRightRadius = ((bottomRightRadius < minSize)) ? bottomRightRadius : minSize; var a:Number = (bottomRightRadius * 0.292893218813453); var s:Number = (bottomRightRadius * 0.585786437626905); graphics.moveTo(xw, (yh - bottomRightRadius)); graphics.curveTo(xw, (yh - s), (xw - a), (yh - a)); graphics.curveTo((xw - s), yh, (xw - bottomRightRadius), yh); a = (bottomLeftRadius * 0.292893218813453); s = (bottomLeftRadius * 0.585786437626905); graphics.lineTo((x + bottomLeftRadius), yh); graphics.curveTo((x + s), yh, (x + a), (yh - a)); graphics.curveTo(x, (yh - s), x, (yh - bottomLeftRadius)); a = (topLeftRadius * 0.292893218813453); s = (topLeftRadius * 0.585786437626905); graphics.lineTo(x, (y + topLeftRadius)); graphics.curveTo(x, (y + s), (x + a), (y + a)); graphics.curveTo((x + s), y, (x + topLeftRadius), y); a = (topRightRadius * 0.292893218813453); s = (topRightRadius * 0.585786437626905); graphics.lineTo((xw - topRightRadius), y); graphics.curveTo((xw - s), y, (xw - a), (y + a)); graphics.curveTo(xw, (y + s), xw, (y + topRightRadius)); graphics.lineTo(xw, (yh - bottomRightRadius)); } } }//package mx.utils
Section 64
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import mx.core.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.5.0.12683"; private static var counter:int = 0; public function NameUtil(){ super(); } public static function displayObjectToString(displayObject:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = displayObject; o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; //unresolved jump var _slot1 = e; return (result); } public static function createUniqueName(object:Object):String{ if (!object){ return (null); }; var name:String = getQualifiedClassName(object); var index:int = name.indexOf("::"); if (index != -1){ name = name.substr((index + 2)); }; var charCode:int = name.charCodeAt((name.length - 1)); if ((((charCode >= 48)) && ((charCode <= 57)))){ name = (name + "_"); }; return ((name + counter++)); } } }//package mx.utils
Section 65
//StringUtil (mx.utils.StringUtil) package mx.utils { public class StringUtil { mx_internal static const VERSION:String = "3.5.0.12683"; public function StringUtil(){ super(); } public static function trim(str:String):String{ if (str == null){ return (""); }; var startIndex:int; while (isWhitespace(str.charAt(startIndex))) { startIndex++; }; var endIndex:int = (str.length - 1); while (isWhitespace(str.charAt(endIndex))) { endIndex--; }; if (endIndex >= startIndex){ return (str.slice(startIndex, (endIndex + 1))); }; return (""); } public static function isWhitespace(character:String):Boolean{ switch (character){ case " ": case "\t": case "\r": case "\n": case "\f": return (true); default: return (false); }; } public static function substitute(str:String, ... _args):String{ var args:Array; if (str == null){ return (""); }; var len:uint = _args.length; if ((((len == 1)) && ((_args[0] is Array)))){ args = (_args[0] as Array); len = args.length; } else { args = _args; }; var i:int; while (i < len) { str = str.replace(new RegExp((("\\{" + i) + "\\}"), "g"), args[i]); i++; }; return (str); } public static function trimArrayElements(value:String, delimiter:String):String{ var items:Array; var len:int; var i:int; if (((!((value == ""))) && (!((value == null))))){ items = value.split(delimiter); len = items.length; i = 0; while (i < len) { items[i] = StringUtil.trim(items[i]); i++; }; if (len > 0){ value = items.join(delimiter); }; }; return (value); } } }//package mx.utils
Section 66
//FlxAnim (org.flixel.data.FlxAnim) package org.flixel.data { public class FlxAnim { public var delay:Number; public var frames:Array; public var looped:Boolean; public var name:String; public function FlxAnim(Name:String, Frames:Array, FrameRate:Number=0, Looped:Boolean=true){ super(); name = Name; delay = 0; if (FrameRate > 0){ delay = (1 / FrameRate); }; frames = Frames; looped = Looped; } } }//package org.flixel.data
Section 67
//FlxConsole (org.flixel.data.FlxConsole) package org.flixel.data { import flash.display.*; import org.flixel.*; import flash.text.*; public class FlxConsole extends Sprite { protected const MAX_CONSOLE_LINES:uint = 0x0100; protected var _lines:Array; public var lastElapsed:Number; protected var _text:TextField; protected var _fpsUpdate:Boolean; protected var _console:Sprite; protected var _Y:Number; protected var _curFPS:uint; protected var _fps:Array; protected var _bx:int; protected var _by:int; protected var _fpsDisplay:TextField; protected var _YT:Number; protected var _byt:int; public function FlxConsole(X:uint, Y:uint, Zoom:uint){ super(); visible = false; x = (X * Zoom); _by = (Y * Zoom); _byt = (_by - (FlxG.height * Zoom)); _YT = (_Y = (y = _byt)); var tmp:Bitmap = new Bitmap(new BitmapData((FlxG.width * Zoom), (FlxG.height * Zoom), true, 2130706432)); addChild(tmp); _fps = new Array(8); _curFPS = 0; _fpsUpdate = true; _text = new TextField(); _text.width = tmp.width; _text.height = tmp.height; _text.multiline = true; _text.wordWrap = true; _text.embedFonts = true; _text.antiAliasType = AntiAliasType.NORMAL; _text.gridFitType = GridFitType.PIXEL; _text.defaultTextFormat = new TextFormat("system", 8, 0xFFFFFF); addChild(_text); _fpsDisplay = new TextField(); _fpsDisplay.width = tmp.width; _fpsDisplay.height = 20; _fpsDisplay.multiline = true; _fpsDisplay.wordWrap = true; _fpsDisplay.embedFonts = true; _fpsDisplay.antiAliasType = AntiAliasType.NORMAL; _fpsDisplay.gridFitType = GridFitType.PIXEL; _fpsDisplay.defaultTextFormat = new TextFormat("system", 16, 0xFFFFFF, true, null, null, null, null, "right"); addChild(_fpsDisplay); _lines = new Array(); } public function log(Text:String):void{ var newText:String; var i:uint; if (Text == null){ Text = "NULL"; }; trace(Text); _lines.push(Text); if (_lines.length > MAX_CONSOLE_LINES){ _lines.shift(); newText = ""; i = 0; while (i < _lines.length) { newText = (newText + (_lines[i] + "\n")); i++; }; _text.text = newText; } else { _text.appendText((Text + "\n")); }; _text.scrollV = _text.height; } public function update():void{ var fps:uint; var i:uint; _fps[_curFPS] = (1 / lastElapsed); if (++_curFPS >= _fps.length){ _curFPS = 0; }; _fpsUpdate = !(_fpsUpdate); if (_fpsUpdate){ fps = 0; i = 0; while (i < _fps.length) { fps = (fps + _fps[i]); i++; }; _fpsDisplay.text = (Math.floor((fps / _fps.length)) + " fps"); }; if (_Y < _YT){ _Y = (_Y + ((FlxG.height * 10) * FlxG.elapsed)); } else { if (_Y > _YT){ _Y = (_Y - ((FlxG.height * 10) * FlxG.elapsed)); }; }; if (_Y > _by){ _Y = _by; } else { if (_Y < _byt){ _Y = _byt; visible = false; }; }; y = Math.floor(_Y); } public function toggle():void{ if (_YT == _by){ _YT = _byt; } else { _YT = _by; visible = true; }; } } }//package org.flixel.data
Section 68
//FlxFade (org.flixel.data.FlxFade) package org.flixel.data { import org.flixel.*; public class FlxFade extends FlxSprite { protected var _delay:Number; protected var _complete:Function; public function FlxFade(){ super(); createGraphic(FlxG.width, FlxG.height, 0, true); scrollFactor.x = 0; scrollFactor.y = 0; exists = false; } override public function update():void{ alpha = (alpha + (FlxG.elapsed / _delay)); if (alpha >= 1){ alpha = 1; if (_complete != null){ _complete(); }; }; } public function start(Color:uint=4278190080, Duration:Number=1, FadeComplete:Function=null, Force:Boolean=false):void{ if (((!(Force)) && (exists))){ return; }; fill(Color); _delay = Duration; _complete = FadeComplete; alpha = 0; exists = true; } public function stop():void{ exists = false; } } }//package org.flixel.data
Section 69
//FlxFlash (org.flixel.data.FlxFlash) package org.flixel.data { import org.flixel.*; public class FlxFlash extends FlxSprite { protected var _delay:Number; protected var _complete:Function; public function FlxFlash(){ super(); createGraphic(FlxG.width, FlxG.height, 0, true); scrollFactor.x = 0; scrollFactor.y = 0; exists = false; } override public function update():void{ alpha = (alpha - (FlxG.elapsed / _delay)); if (alpha <= 0){ exists = false; if (_complete != null){ _complete(); }; }; } public function start(Color:uint=4294967295, Duration:Number=1, FlashComplete:Function=null, Force:Boolean=false):void{ if (((!(Force)) && (exists))){ return; }; fill(Color); _delay = Duration; _complete = FlashComplete; alpha = 1; exists = true; } public function stop():void{ exists = false; } } }//package org.flixel.data
Section 70
//FlxKeyboard (org.flixel.data.FlxKeyboard) package org.flixel.data { import flash.events.*; public class FlxKeyboard { protected const _t:uint = 0x0100; public var RIGHT:Boolean; public var LEFT:Boolean; public var FOUR:Boolean; public var TWO:Boolean; public var CONTROL:Boolean; public var A:Boolean; public var B:Boolean; public var C:Boolean; public var D:Boolean; public var E:Boolean; public var ONE:Boolean; public var G:Boolean; public var H:Boolean; public var I:Boolean; public var J:Boolean; public var K:Boolean; public var F:Boolean; public var N:Boolean; public var O:Boolean; public var Q:Boolean; public var R:Boolean; public var S:Boolean; public var T:Boolean; public var U:Boolean; public var MINUS:Boolean; public var Y:Boolean; public var L:Boolean; public var Z:Boolean; public var QUOTE:Boolean; public var V:Boolean; public var X:Boolean; public var P:Boolean; public var SHIFT:Boolean; public var SLASH:Boolean; public var BACKSPACE:Boolean; public var EIGHT:Boolean; public var W:Boolean; public var M:Boolean; public var THREE:Boolean; public var ESCAPE:Boolean; public var SEMICOLON:Boolean; public var CAPSLOCK:Boolean; protected var _lookup:Object; public var PLUS:Boolean; protected var _map:Array; public var ZERO:Boolean; public var DOWN:Boolean; public var F1:Boolean; public var F2:Boolean; public var F3:Boolean; public var F4:Boolean; public var F5:Boolean; public var F6:Boolean; public var F7:Boolean; public var NINE:Boolean; public var F9:Boolean; public var ALT:Boolean; public var F8:Boolean; public var DELETE:Boolean; public var LBRACKET:Boolean; public var UP:Boolean; public var ENTER:Boolean; public var FIVE:Boolean; public var SIX:Boolean; public var COMMA:Boolean; public var PERIOD:Boolean; public var BACKSLASH:Boolean; public var F10:Boolean; public var F11:Boolean; public var F12:Boolean; public var SEVEN:Boolean; public var SPACE:Boolean; public var RBRACKET:Boolean; public function FlxKeyboard(){ super(); var i:uint; _lookup = new Object(); _map = new Array(_t); i = 65; while (i <= 90) { addKey(String.fromCharCode(i), i); i++; }; i = 48; var _temp1 = i; i = (i + 1); addKey("ZERO", _temp1); var _temp2 = i; i = (i + 1); addKey("ONE", _temp2); var _temp3 = i; i = (i + 1); addKey("TWO", _temp3); var _temp4 = i; i = (i + 1); addKey("THREE", _temp4); var _temp5 = i; i = (i + 1); addKey("FOUR", _temp5); var _temp6 = i; i = (i + 1); addKey("FIVE", _temp6); var _temp7 = i; i = (i + 1); addKey("SIX", _temp7); var _temp8 = i; i = (i + 1); addKey("SEVEN", _temp8); var _temp9 = i; i = (i + 1); addKey("EIGHT", _temp9); var _temp10 = i; i = (i + 1); addKey("NINE", _temp10); i = 1; while (i <= 12) { addKey(("F" + i), (111 + i)); i++; }; addKey("ESCAPE", 27); addKey("MINUS", 189); addKey("PLUS", 187); addKey("DELETE", 46); addKey("BACKSPACE", 8); addKey("LBRACKET", 219); addKey("RBRACKET", 221); addKey("BACKSLASH", 220); addKey("CAPSLOCK", 20); addKey("SEMICOLON", 186); addKey("QUOTE", 222); addKey("ENTER", 13); addKey("SHIFT", 16); addKey("COMMA", 188); addKey("PERIOD", 190); addKey("SLASH", 191); addKey("CONTROL", 17); addKey("ALT", 18); addKey("SPACE", 32); addKey("UP", 38); addKey("DOWN", 40); addKey("LEFT", 37); addKey("RIGHT", 39); } public function handleKeyUp(event:KeyboardEvent):void{ var o:Object = _map[event.keyCode]; if (o == null){ return; }; if (o.current > 0){ o.current = -1; } else { o.current = 0; }; this[o.name] = false; } public function pressed(Key:String):Boolean{ return (this[Key]); } public function justReleased(Key:String):Boolean{ return ((_map[_lookup[Key]].current == -1)); } public function handleKeyDown(event:KeyboardEvent):void{ var o:Object = _map[event.keyCode]; if (o == null){ return; }; if (o.current > 0){ o.current = 1; } else { o.current = 2; }; this[o.name] = true; } public function reset():void{ var o:Object; var i:uint; while (i < _t) { if (_map[i] == null){ } else { o = _map[i]; this[o.name] = false; o.current = 0; o.last = 0; }; i++; }; } public function justPressed(Key:String):Boolean{ return ((_map[_lookup[Key]].current == 2)); } public function update():void{ var o:Object; var i:uint; while (i < _t) { if (_map[i] == null){ } else { o = _map[i]; if ((((o.last == -1)) && ((o.current == -1)))){ o.current = 0; } else { if ((((o.last == 2)) && ((o.current == 2)))){ o.current = 1; }; }; o.last = o.current; }; i++; }; } protected function addKey(KeyName:String, KeyCode:uint):void{ _lookup[KeyName] = KeyCode; _map[KeyCode] = {name:KeyName, current:0, last:0}; } } }//package org.flixel.data
Section 71
//FlxKong (org.flixel.data.FlxKong) package org.flixel.data { import flash.events.*; import flash.display.*; import flash.net.*; public class FlxKong extends Sprite { public var API; public function FlxKong(){ super(); API = null; } public function init():void{ var paramObj:Object = LoaderInfo(root.loaderInfo).parameters; var api_url:String = ((paramObj.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); var request:URLRequest = new URLRequest(api_url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, APILoaded); loader.load(request); this.addChild(loader); } protected function APILoaded(event:Event):void{ API = event.target.content; API.services.connect(); } } }//package org.flixel.data
Section 72
//FlxList (org.flixel.data.FlxList) package org.flixel.data { import org.flixel.*; public class FlxList { public var next:FlxList; public var object:FlxObject; public function FlxList(){ super(); object = null; next = null; } } }//package org.flixel.data
Section 73
//FlxMouse (org.flixel.data.FlxMouse) package org.flixel.data { import flash.events.*; import org.flixel.*; public class FlxMouse { protected var ImgDefaultCursor:Class; protected var _out:Boolean; public var cursor:FlxSprite; public var screenY:int; protected var _last:int; public var x:int; public var y:int; protected var _current:int; public var screenX:int; public function FlxMouse(){ ImgDefaultCursor = FlxMouse_ImgDefaultCursor; super(); x = 0; y = 0; screenX = 0; screenY = 0; _current = 0; _last = 0; cursor = null; _out = false; } public function hide():void{ if (cursor != null){ cursor.visible = false; _out = false; }; } public function update(X:int, Y:int, XScroll:Number, YScroll:Number):void{ screenX = X; screenY = Y; x = (screenX - FlxU.floor(XScroll)); y = (screenY - FlxU.floor(YScroll)); if (cursor != null){ cursor.x = x; cursor.y = y; }; if ((((_last == -1)) && ((_current == -1)))){ _current = 0; } else { if ((((_last == 2)) && ((_current == 2)))){ _current = 1; }; }; _last = _current; } public function reset():void{ _current = 0; _last = 0; } public function justReleased():Boolean{ return ((_current == -1)); } public function handleMouseOver(event:MouseEvent):void{ if (cursor != null){ cursor.visible = _out; }; } public function handleMouseDown(event:MouseEvent):void{ if (_current > 0){ _current = 1; } else { _current = 2; }; } public function pressed():Boolean{ return ((_current > 0)); } public function justPressed():Boolean{ return ((_current == 2)); } public function load(Graphic:Class, XOffset:int=0, YOffset:int=0):void{ if (Graphic == null){ Graphic = ImgDefaultCursor; }; cursor = new FlxSprite(screenX, screenY, Graphic); cursor.offset.x = XOffset; cursor.offset.y = YOffset; } public function handleMouseUp(event:MouseEvent):void{ if (_current > 0){ _current = -1; } else { _current = 0; }; } public function handleMouseOut(event:MouseEvent):void{ if (cursor != null){ _out = cursor.visible; cursor.visible = false; }; } public function show(Graphic:Class=null, XOffset:int=0, YOffset:int=0):void{ _out = true; if (Graphic != null){ load(Graphic, XOffset, YOffset); } else { if (cursor != null){ cursor.visible = true; } else { load(null); }; }; } public function unload():void{ if (cursor != null){ if (cursor.visible){ load(null); } else { cursor = null; }; }; } } }//package org.flixel.data
Section 74
//FlxMouse_ImgDefaultCursor (org.flixel.data.FlxMouse_ImgDefaultCursor) package org.flixel.data { import mx.core.*; public class FlxMouse_ImgDefaultCursor extends BitmapAsset { } }//package org.flixel.data
Section 75
//FlxPanel (org.flixel.data.FlxPanel) package org.flixel.data { import org.flixel.*; import flash.ui.*; public class FlxPanel extends FlxObject { protected var _close:FlxButton; protected var _digg:FlxButton; protected var _gameTitle:String; protected var _closed:Boolean; protected var _payPalID:String; protected var _donate:FlxButton; private var ImgClose:Class; protected var _topBar:FlxSprite; protected var _ty:Number; protected var _caption:FlxText; protected var _initialized:Boolean; protected var _twitter:FlxButton; protected var _delicious:FlxButton; protected var _stumble:FlxButton; private var ImgDelicious:Class; private var ImgTwitter:Class; protected var _mainBar:FlxSprite; protected var _gameURL:String; private var ImgStumble:Class; private var ImgReddit:Class; private var ImgDigg:Class; protected var _bottomBar:FlxSprite; protected var _payPalAmount:Number; protected var _s:Number; private var ImgDonate:Class; protected var _reddit:FlxButton; public function FlxPanel(){ ImgDonate = FlxPanel_ImgDonate; ImgStumble = FlxPanel_ImgStumble; ImgDigg = FlxPanel_ImgDigg; ImgReddit = FlxPanel_ImgReddit; ImgDelicious = FlxPanel_ImgDelicious; ImgTwitter = FlxPanel_ImgTwitter; ImgClose = FlxPanel_ImgClose; super(); y = -21; _ty = y; _closed = false; _initialized = false; _topBar = new FlxSprite(); _topBar.createGraphic(FlxG.width, 1, 2147483647); _topBar.scrollFactor.x = 0; _topBar.scrollFactor.y = 0; _mainBar = new FlxSprite(); _mainBar.createGraphic(FlxG.width, 19, 2130706432); _mainBar.scrollFactor.x = 0; _mainBar.scrollFactor.y = 0; _bottomBar = new FlxSprite(); _bottomBar.createGraphic(FlxG.width, 1, 2147483647); _bottomBar.scrollFactor.x = 0; _bottomBar.scrollFactor.y = 0; _donate = new FlxButton(3, 0, onDonate); _donate.loadGraphic(new FlxSprite(0, 0, ImgDonate)); _donate.scrollFactor.x = 0; _donate.scrollFactor.y = 0; _stumble = new FlxButton(((((((FlxG.width / 2) - 6) - 13) - 6) - 13) - 6), 0, onStumble); _stumble.loadGraphic(new FlxSprite(0, 0, ImgStumble)); _stumble.scrollFactor.x = 0; _stumble.scrollFactor.y = 0; _digg = new FlxButton(((((FlxG.width / 2) - 6) - 13) - 6), 0, onDigg); _digg.loadGraphic(new FlxSprite(0, 0, ImgDigg)); _digg.scrollFactor.x = 0; _digg.scrollFactor.y = 0; _reddit = new FlxButton(((FlxG.width / 2) - 6), 0, onReddit); _reddit.loadGraphic(new FlxSprite(0, 0, ImgReddit)); _reddit.scrollFactor.x = 0; _reddit.scrollFactor.y = 0; _delicious = new FlxButton((((FlxG.width / 2) + 7) + 6), 0, onDelicious); _delicious.loadGraphic(new FlxSprite(0, 0, ImgDelicious)); _delicious.scrollFactor.x = 0; _delicious.scrollFactor.y = 0; _twitter = new FlxButton((((((FlxG.width / 2) + 7) + 6) + 12) + 6), 0, onTwitter); _twitter.loadGraphic(new FlxSprite(0, 0, ImgTwitter)); _twitter.scrollFactor.x = 0; _twitter.scrollFactor.y = 0; _caption = new FlxText((FlxG.width / 2), 0, ((FlxG.width / 2) - 19), ""); _caption.alignment = "right"; _caption.scrollFactor.x = 0; _caption.scrollFactor.y = 0; _close = new FlxButton((FlxG.width - 16), 0, onClose); _close.loadGraphic(new FlxSprite(0, 0, ImgClose)); _close.scrollFactor.x = 0; _close.scrollFactor.y = 0; hide(); _s = 50; } public function onDelicious():void{ FlxU.openURL(((("http://delicious.com/save?v=5&amp;noui&amp;jump=close&amp;url=" + encodeURIComponent(_gameURL)) + "&amp;title=") + encodeURIComponent(_gameTitle))); } public function onTwitter():void{ FlxU.openURL(("http://twitter.com/home?status=Playing" + encodeURIComponent((((" " + _gameTitle) + " - ") + _gameURL)))); } public function setup(PayPalID:String, PayPalAmount:Number, GameTitle:String, GameURL:String, Caption:String):void{ _payPalID = PayPalID; if (_payPalID.length <= 0){ _donate.visible = false; }; _payPalAmount = PayPalAmount; _gameTitle = GameTitle; _gameURL = GameURL; _caption.text = Caption; _initialized = true; } public function onStumble():void{ FlxU.openURL(("http://www.stumbleupon.com/submit?url=" + encodeURIComponent(_gameURL))); } override public function render():void{ if (!_initialized){ return; }; if (_topBar.visible){ _topBar.render(); }; if (_mainBar.visible){ _mainBar.render(); }; if (_bottomBar.visible){ _bottomBar.render(); }; if (_donate.visible){ _donate.render(); }; if (_stumble.visible){ _stumble.render(); }; if (_digg.visible){ _digg.render(); }; if (_reddit.visible){ _reddit.render(); }; if (_delicious.visible){ _delicious.render(); }; if (_twitter.visible){ _twitter.render(); }; if (_caption.visible){ _caption.render(); }; if (_close.visible){ _close.render(); }; } public function onDigg():void{ FlxU.openURL(((("http://digg.com/submit?url=" + encodeURIComponent(_gameURL)) + "&title=") + encodeURIComponent(_gameTitle))); } public function onReddit():void{ FlxU.openURL(("http://www.reddit.com/submit?url=" + encodeURIComponent(_gameURL))); } public function onDonate():void{ FlxU.openURL(((((("https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=" + encodeURIComponent(_payPalID)) + "&item_name=") + encodeURIComponent(((_gameTitle + " Contribution (") + _gameURL))) + ")&currency_code=USD&amount=") + _payPalAmount)); } override public function update():void{ if (!_initialized){ return; }; if (_ty != y){ if (y < _ty){ y = (y + (FlxG.elapsed * _s)); if (y > _ty){ y = _ty; }; } else { y = (y - (FlxG.elapsed * _s)); if (y < _ty){ y = _ty; }; }; }; if ((((y <= -21)) || ((y > FlxG.height)))){ visible = false; }; _topBar.y = y; _mainBar.y = (y + 1); _bottomBar.y = (y + 20); _donate.reset(_donate.x, (y + 4)); _stumble.reset(_stumble.x, (y + 4)); _digg.reset(_digg.x, (y + 4)); _reddit.reset(_reddit.x, (y + 4)); _delicious.reset(_delicious.x, (y + 5)); _twitter.reset(_twitter.x, (y + 4)); _caption.reset(_caption.x, (y + 4)); _close.reset(_close.x, (y + 4)); if (_donate.active){ _donate.update(); }; if (_stumble.active){ _stumble.update(); }; if (_digg.active){ _digg.update(); }; if (_reddit.active){ _reddit.update(); }; if (_delicious.active){ _delicious.update(); }; if (_twitter.active){ _twitter.update(); }; if (_caption.active){ _caption.update(); }; if (_close.active){ _close.update(); }; } public function show(Top:Boolean=true):void{ if (!_initialized){ FlxG.log("SUPPORT PANEL ERROR: Uninitialized.\nYou forgot to call FlxGame.setupSupportPanel()\nfrom your game constructor."); return; }; if (_closed){ return; }; if (Top){ y = -21; _ty = -1; } else { y = FlxG.height; _ty = (FlxG.height - 20); }; _donate.reset(_donate.x, (y + 4)); _stumble.reset(_stumble.x, (y + 4)); _digg.reset(_digg.x, (y + 4)); _reddit.reset(_reddit.x, (y + 4)); _delicious.reset(_delicious.x, (y + 5)); _twitter.reset(_twitter.x, (y + 4)); _caption.reset(_caption.x, (y + 4)); _close.reset(_close.x, (y + 4)); Mouse.show(); visible = true; } public function onClose():void{ _closed = true; hide(); } public function hide():void{ if (y < 0){ _ty = -21; } else { _ty = FlxG.height; }; Mouse.hide(); } } }//package org.flixel.data
Section 76
//FlxPanel_ImgClose (org.flixel.data.FlxPanel_ImgClose) package org.flixel.data { import mx.core.*; public class FlxPanel_ImgClose extends BitmapAsset { } }//package org.flixel.data
Section 77
//FlxPanel_ImgDelicious (org.flixel.data.FlxPanel_ImgDelicious) package org.flixel.data { import mx.core.*; public class FlxPanel_ImgDelicious extends BitmapAsset { } }//package org.flixel.data
Section 78
//FlxPanel_ImgDigg (org.flixel.data.FlxPanel_ImgDigg) package org.flixel.data { import mx.core.*; public class FlxPanel_ImgDigg extends BitmapAsset { } }//package org.flixel.data
Section 79
//FlxPanel_ImgDonate (org.flixel.data.FlxPanel_ImgDonate) package org.flixel.data { import mx.core.*; public class FlxPanel_ImgDonate extends BitmapAsset { } }//package org.flixel.data
Section 80
//FlxPanel_ImgReddit (org.flixel.data.FlxPanel_ImgReddit) package org.flixel.data { import mx.core.*; public class FlxPanel_ImgReddit extends BitmapAsset { } }//package org.flixel.data
Section 81
//FlxPanel_ImgStumble (org.flixel.data.FlxPanel_ImgStumble) package org.flixel.data { import mx.core.*; public class FlxPanel_ImgStumble extends BitmapAsset { } }//package org.flixel.data
Section 82
//FlxPanel_ImgTwitter (org.flixel.data.FlxPanel_ImgTwitter) package org.flixel.data { import mx.core.*; public class FlxPanel_ImgTwitter extends BitmapAsset { } }//package org.flixel.data
Section 83
//FlxPause (org.flixel.data.FlxPause) package org.flixel.data { import org.flixel.*; public class FlxPause extends FlxGroup { private var ImgKeyP:Class; private var ImgKey0:Class; private var ImgKeyPlus:Class; private var ImgKeyMinus:Class; public function FlxPause(){ var h:uint; ImgKeyMinus = FlxPause_ImgKeyMinus; ImgKeyPlus = FlxPause_ImgKeyPlus; ImgKey0 = FlxPause_ImgKey0; ImgKeyP = FlxPause_ImgKeyP; super(); scrollFactor.x = 0; scrollFactor.y = 0; var w:uint = 80; h = 92; x = ((FlxG.width - w) / 2); y = ((FlxG.height - h) / 2); add(new FlxSprite().createGraphic(w, h, 2852126720, true), true); (add(new FlxText(0, 0, w, "this game is"), true) as FlxText).alignment = "center"; add(new FlxText(0, 10, w, "PAUSED").setFormat(null, 16, 0xFFFFFF, "center"), true); add(new FlxSprite(4, 36, ImgKeyP), true); add(new FlxText(16, 36, (w - 16), "Pause Game"), true); add(new FlxSprite(4, 50, ImgKey0), true); add(new FlxText(16, 50, (w - 16), "Mute Sound"), true); add(new FlxSprite(4, 64, ImgKeyMinus), true); add(new FlxText(16, 64, (w - 16), "Sound Down"), true); add(new FlxSprite(4, 78, ImgKeyPlus), true); add(new FlxText(16, 78, (w - 16), "Sound Up"), true); } } }//package org.flixel.data
Section 84
//FlxPause_ImgKey0 (org.flixel.data.FlxPause_ImgKey0) package org.flixel.data { import mx.core.*; public class FlxPause_ImgKey0 extends BitmapAsset { } }//package org.flixel.data
Section 85
//FlxPause_ImgKeyMinus (org.flixel.data.FlxPause_ImgKeyMinus) package org.flixel.data { import mx.core.*; public class FlxPause_ImgKeyMinus extends BitmapAsset { } }//package org.flixel.data
Section 86
//FlxPause_ImgKeyP (org.flixel.data.FlxPause_ImgKeyP) package org.flixel.data { import mx.core.*; public class FlxPause_ImgKeyP extends BitmapAsset { } }//package org.flixel.data
Section 87
//FlxPause_ImgKeyPlus (org.flixel.data.FlxPause_ImgKeyPlus) package org.flixel.data { import mx.core.*; public class FlxPause_ImgKeyPlus extends BitmapAsset { } }//package org.flixel.data
Section 88
//FlxQuake (org.flixel.data.FlxQuake) package org.flixel.data { import org.flixel.*; public class FlxQuake { public var y:int; protected var _timer:Number; protected var _intensity:Number; public var x:int; protected var _zoom:uint; public function FlxQuake(Zoom:uint){ super(); _zoom = Zoom; start(0); } public function update():void{ if (_timer > 0){ _timer = (_timer - FlxG.elapsed); if (_timer <= 0){ _timer = 0; x = 0; y = 0; } else { x = (((((Math.random() * _intensity) * FlxG.width) * 2) - (_intensity * FlxG.width)) * _zoom); y = (((((Math.random() * _intensity) * FlxG.height) * 2) - (_intensity * FlxG.height)) * _zoom); }; }; } public function start(Intensity:Number=0.05, Duration:Number=0.5):void{ stop(); _intensity = Intensity; _timer = Duration; } public function stop():void{ x = 0; y = 0; _intensity = 0; _timer = 0; } } }//package org.flixel.data
Section 89
//FlxButton (org.flixel.FlxButton) package org.flixel { import flash.events.*; public class FlxButton extends FlxGroup { protected var _on:FlxSprite; protected var _offT:FlxText; protected var _initialized:Boolean; protected var _onT:FlxText; protected var _pressed:Boolean; protected var _callback:Function; protected var _off:FlxSprite; protected var _onToggle:Boolean; protected var _sf:FlxPoint; public function FlxButton(X:int, Y:int, Callback:Function){ super(); x = X; y = Y; width = 100; height = 20; _off = new FlxSprite().createGraphic(width, height, 4286545791); _off.solid = false; add(_off, true); _on = new FlxSprite().createGraphic(width, height, 4294967295); _on.solid = false; add(_on, true); _offT = null; _onT = null; _callback = Callback; _onToggle = false; _pressed = false; _initialized = false; _sf = null; } protected function onMouseUp(event:MouseEvent):void{ if (((((((((!(exists)) || (!(visible)))) || (!(active)))) || (!(FlxG.mouse.justReleased())))) || ((_callback == null)))){ return; }; if (overlapsPoint(FlxG.mouse.x, FlxG.mouse.y)){ _callback(); }; } override public function update():void{ if (!_initialized){ if (FlxG.stage != null){ FlxG.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); _initialized = true; }; }; super.update(); visibility(false); if (overlapsPoint(FlxG.mouse.x, FlxG.mouse.y)){ if (!FlxG.mouse.pressed()){ _pressed = false; } else { if (!_pressed){ _pressed = true; }; }; visibility(!(_pressed)); }; if (_onToggle){ visibility(_off.visible); }; } protected function visibility(On:Boolean):void{ if (On){ _off.visible = false; if (_offT != null){ _offT.visible = false; }; _on.visible = true; if (_onT != null){ _onT.visible = true; }; } else { _on.visible = false; if (_onT != null){ _onT.visible = false; }; _off.visible = true; if (_offT != null){ _offT.visible = true; }; }; } public function get on():Boolean{ return (_onToggle); } public function loadGraphic(Image:FlxSprite, ImageHighlight:FlxSprite=null):FlxButton{ _off = (replace(_off, Image) as FlxSprite); if (ImageHighlight == null){ if (_on != _off){ remove(_on); }; _on = _off; } else { _on = (replace(_on, ImageHighlight) as FlxSprite); }; _on.solid = (_off.solid = false); _off.scrollFactor = scrollFactor; _on.scrollFactor = scrollFactor; width = _off.width; height = _off.height; refreshHulls(); return (this); } public function loadText(Text:FlxText, TextHighlight:FlxText=null):FlxButton{ if (Text != null){ if (_offT == null){ _offT = Text; add(_offT); } else { _offT = (replace(_offT, Text) as FlxText); }; }; if (TextHighlight == null){ _onT = _offT; } else { if (_onT == null){ _onT = TextHighlight; add(_onT); } else { _onT = (replace(_onT, TextHighlight) as FlxText); }; }; _offT.scrollFactor = scrollFactor; _onT.scrollFactor = scrollFactor; return (this); } override public function destroy():void{ if (FlxG.stage != null){ FlxG.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); }; } public function set on(On:Boolean):void{ _onToggle = On; } } }//package org.flixel
Section 90
//FlxEmitter (org.flixel.FlxEmitter) package org.flixel { public class FlxEmitter extends FlxGroup { public var maxRotation:Number; public var delay:Number; public var quantity:uint; protected var _timer:Number; public var gravity:Number; public var particleDrag:FlxPoint; public var maxParticleSpeed:FlxPoint; public var on:Boolean; protected var _explode:Boolean; protected var _particle:uint; public var minParticleSpeed:FlxPoint; public var minRotation:Number; protected var _counter:uint; public function FlxEmitter(X:Number=0, Y:Number=0){ super(); x = X; y = Y; width = 0; height = 0; minParticleSpeed = new FlxPoint(-100, -100); maxParticleSpeed = new FlxPoint(100, 100); minRotation = -360; maxRotation = 360; gravity = 400; particleDrag = new FlxPoint(); delay = 0.1; quantity = 0; _counter = 0; _explode = true; exists = false; on = false; } public function setRotation(Min:Number=0, Max:Number=0):void{ minRotation = Min; maxRotation = Max; } override public function update():void{ super.update(); updateEmitter(); } public function setYSpeed(Min:Number=0, Max:Number=0):void{ minParticleSpeed.y = Min; maxParticleSpeed.y = Max; } public function stop(Delay:Number=3):void{ _explode = true; delay = Delay; if (delay < 0){ delay = -(Delay); }; on = false; } public function setSize(Width:uint, Height:uint):void{ width = Width; height = Height; } public function at(Object:FlxObject):void{ x = (Object.x + Object.origin.x); y = (Object.y + Object.origin.y); } override protected function updateMembers():void{ var o:FlxObject; var l:uint = members.length; var i:uint; while (i < l) { o = (members[i] as FlxObject); if (((((!((o == null))) && (o.exists))) && (o.active))){ o.update(); }; i++; }; } public function start(Explode:Boolean=true, Delay:Number=0, Quantity:uint=0):void{ if (members.length <= 0){ FlxG.log("WARNING: there are no sprites loaded in your emitter.\nAdd some to FlxEmitter.members or use FlxEmitter.createSprites()."); return; }; _explode = Explode; if (!_explode){ _counter = 0; }; if (!exists){ _particle = 0; }; exists = true; visible = true; active = true; dead = false; on = true; _timer = 0; if (quantity == 0){ quantity = Quantity; }; if (Delay != 0){ delay = Delay; }; if (delay < 0){ delay = -(delay); }; } protected function updateEmitter():void{ var i:uint; var l:uint; if (_explode){ _timer = (_timer + FlxG.elapsed); if ((((delay > 0)) && ((_timer > delay)))){ kill(); return; }; if (on){ on = false; l = members.length; if (quantity > 0){ l = quantity; }; l = (l + _particle); i = _particle; while (i < l) { emitParticle(); i++; }; }; return; }; if (!on){ return; }; _timer = (_timer + FlxG.elapsed); while ((((_timer > delay)) && ((((quantity <= 0)) || ((_counter < quantity)))))) { _timer = (_timer - delay); emitParticle(); }; } override public function kill():void{ super.kill(); on = false; } public function setXSpeed(Min:Number=0, Max:Number=0):void{ minParticleSpeed.x = Min; maxParticleSpeed.x = Max; } public function createSprites(Graphics:Class, Quantity:uint=50, BakedRotations:uint=16, Multiple:Boolean=true, Collide:Number=0):FlxEmitter{ var r:uint; var s:FlxSprite; var sw:Number; var sh:Number; members = new Array(); var tf:uint = 1; if (Multiple){ s = new FlxSprite(0, 0, Graphics); tf = (s.width / s.height); }; var i:uint; while (i < Quantity) { s = new FlxSprite(); if (Multiple){ r = (FlxU.random() * tf); if (BakedRotations > 0){ s.loadRotatedGraphic(Graphics, BakedRotations, r); } else { s.loadGraphic(Graphics, true); s.frame = r; }; } else { if (BakedRotations > 0){ s.loadRotatedGraphic(Graphics, BakedRotations); } else { s.loadGraphic(Graphics); }; }; if (Collide > 0){ sw = s.width; sh = s.height; s.width = (s.width * Collide); s.height = (s.height * Collide); s.offset.x = ((sw - s.width) / 2); s.offset.y = ((sh - s.height) / 2); s.solid = true; } else { s.solid = false; }; s.exists = false; s.scrollFactor = scrollFactor; add(s); i++; }; return (this); } public function emitParticle():void{ var s:FlxSprite; _counter++; s = (members[_particle] as FlxSprite); s.visible = true; s.exists = true; s.active = true; s.x = ((x - (s.width >> 1)) + (FlxU.random() * width)); s.y = ((y - (s.height >> 1)) + (FlxU.random() * height)); s.velocity.x = minParticleSpeed.x; if (minParticleSpeed.x != maxParticleSpeed.x){ s.velocity.x = (s.velocity.x + (FlxU.random() * (maxParticleSpeed.x - minParticleSpeed.x))); }; s.velocity.y = minParticleSpeed.y; if (minParticleSpeed.y != maxParticleSpeed.y){ s.velocity.y = (s.velocity.y + (FlxU.random() * (maxParticleSpeed.y - minParticleSpeed.y))); }; s.acceleration.y = gravity; s.angularVelocity = minRotation; if (minRotation != maxRotation){ s.angularVelocity = (s.angularVelocity + (FlxU.random() * (maxRotation - minRotation))); }; if (s.angularVelocity != 0){ s.angle = ((FlxU.random() * 360) - 180); }; s.drag.x = particleDrag.x; s.drag.y = particleDrag.y; s.visible = true; _particle++; if (_particle >= members.length){ _particle = 0; }; s.onEmit(); } } }//package org.flixel
Section 91
//FlxG (org.flixel.FlxG) package org.flixel { import flash.display.*; import flash.geom.*; import org.flixel.data.*; public class FlxG { public static var panel:FlxPanel; protected static var _mute:Boolean; public static var kong:FlxKong; public static var scores:Array; public static var music:FlxSound; public static var height:uint; protected static var _volume:Number; public static var buffer:BitmapData; public static var sounds:Array; public static var debug:Boolean; public static var frameratePaused:uint; public static var LIBRARY_MINOR_VERSION:uint = 32; public static var LIBRARY_MAJOR_VERSION:uint = 2; public static var levels:Array; public static var fade:FlxFade; public static var timeScale:Number; protected static var _cache:Object; public static var level:int; public static var elapsed:Number; public static var score:int; public static var save:int; public static var saves:Array; protected static var _scrollTarget:Point; public static var mouse:FlxMouse; public static var followTarget:FlxObject; public static var followLead:Point; public static var LIBRARY_NAME:String = "flixel"; public static var width:uint; public static var followLerp:Number; public static var scroll:Point; protected static var _game:FlxGame; public static var framerate:uint; public static var quake:FlxQuake; public static var followMin:Point; public static var flash:FlxFlash; public static var followMax:Point; public static var keys:FlxKeyboard; protected static var _pause:Boolean; public function FlxG(){ super(); } public static function get stage():Stage{ if (((!((_game._state == null))) && (!((_game._state.parent == null))))){ return (_game._state.parent.stage); }; return (null); } protected static function changeSounds():void{ var s:FlxSound; if (((!((music == null))) && (music.active))){ music.updateTransform(); }; var sl:uint = sounds.length; var i:uint; while (i < sl) { s = (sounds[i] as FlxSound); if (((!((s == null))) && (s.active))){ s.updateTransform(); }; i++; }; } public static function get mute():Boolean{ return (_mute); } public static function get volume():Number{ return (_volume); } static function doFollow():void{ if (followTarget != null){ _scrollTarget.x = (((width >> 1) - followTarget.x) - (followTarget.width >> 1)); _scrollTarget.y = (((height >> 1) - followTarget.y) - (followTarget.height >> 1)); if (((!((followLead == null))) && ((followTarget is FlxSprite)))){ _scrollTarget.x = (_scrollTarget.x - ((followTarget as FlxSprite).velocity.x * followLead.x)); _scrollTarget.y = (_scrollTarget.y - ((followTarget as FlxSprite).velocity.y * followLead.y)); }; scroll.x = (scroll.x + (((_scrollTarget.x - scroll.x) * followLerp) * FlxG.elapsed)); scroll.y = (scroll.y + (((_scrollTarget.y - scroll.y) * followLerp) * FlxG.elapsed)); if (followMin != null){ if (scroll.x > followMin.x){ scroll.x = followMin.x; }; if (scroll.y > followMin.y){ scroll.y = followMin.y; }; }; if (followMax != null){ if (scroll.x < followMax.x){ scroll.x = followMax.x; }; if (scroll.y < followMax.y){ scroll.y = followMax.y; }; }; }; } public static function getMuteValue():uint{ if (_mute){ return (0); }; return (1); } public static function addBitmap(Graphic:Class, Reverse:Boolean=false, Unique:Boolean=false, Key:String=null):BitmapData{ var inc:uint; var ukey:String; var newPixels:BitmapData; var mtx:Matrix; var needReverse:Boolean; var key:String = Key; if (key == null){ key = String(Graphic); if (((((Unique) && (!((_cache[key] == undefined))))) && (!((_cache[key] == null))))){ inc = 0; do { var _temp1 = inc; inc = (inc + 1); ukey = (key + _temp1); } while (((!((_cache[ukey] == undefined))) && (!((_cache[ukey] == null))))); key = ukey; }; }; if (!checkBitmapCache(key)){ _cache[key] = new (Graphic).bitmapData; if (Reverse){ needReverse = true; }; }; var pixels:BitmapData = _cache[key]; if (((((!(needReverse)) && (Reverse))) && ((pixels.width == new (Graphic).bitmapData.width)))){ needReverse = true; }; if (needReverse){ newPixels = new BitmapData((pixels.width << 1), pixels.height, true, 0); newPixels.draw(pixels); mtx = new Matrix(); mtx.scale(-1, 1); mtx.translate(newPixels.width, 0); newPixels.draw(pixels, mtx); pixels = newPixels; }; return (pixels); } public static function set state(State:FlxState):void{ _game.switchState(State); } public static function set mute(Mute:Boolean):void{ _mute = Mute; changeSounds(); } public static function play(EmbeddedSound:Class, Volume:Number=1, Looped:Boolean=false):FlxSound{ var sl:uint = sounds.length; var i:uint; while (i < sl) { if (!(sounds[i] as FlxSound).active){ break; }; i++; }; if (sounds[i] == null){ sounds[i] = new FlxSound(); }; var s:FlxSound = sounds[i]; s.loadEmbedded(EmbeddedSound, Looped); s.volume = Volume; s.play(); return (s); } public static function set volume(Volume:Number):void{ _volume = Volume; if (_volume < 0){ _volume = 0; } else { if (_volume > 1){ _volume = 1; }; }; changeSounds(); } static function setGameData(Game:FlxGame, Width:uint, Height:uint, Zoom:uint):void{ _game = Game; _cache = new Object(); width = Width; height = Height; _mute = false; _volume = 0.5; sounds = new Array(); mouse = new FlxMouse(); keys = new FlxKeyboard(); scroll = null; _scrollTarget = null; unfollow(); FlxG.levels = new Array(); FlxG.scores = new Array(); level = 0; score = 0; FlxU.seed = NaN; kong = null; pause = false; timeScale = 1; framerate = 60; frameratePaused = 10; panel = new FlxPanel(); quake = new FlxQuake(Zoom); flash = new FlxFlash(); fade = new FlxFade(); FlxU.setWorldBounds(); } public static function playMusic(Music:Class, Volume:Number=1):void{ if (music == null){ music = new FlxSound(); } else { if (music.active){ music.stop(); }; }; music.loadEmbedded(Music, true); music.volume = Volume; music.survive = true; music.play(); } public static function createBitmap(Width:uint, Height:uint, Color:uint, Unique:Boolean=false, Key:String=null):BitmapData{ var inc:uint; var ukey:String; var key:String = Key; if (key == null){ key = ((((Width + "x") + Height) + ":") + Color); if (((((Unique) && (!((_cache[key] == undefined))))) && (!((_cache[key] == null))))){ inc = 0; do { var _temp1 = inc; inc = (inc + 1); ukey = (key + _temp1); } while (((!((_cache[ukey] == undefined))) && (!((_cache[ukey] == null))))); key = ukey; }; }; if (!checkBitmapCache(key)){ _cache[key] = new BitmapData(Width, Height, true, Color); }; return (_cache[key]); } public static function log(Data:Object):void{ if (((!((_game == null))) && (!((_game._console == null))))){ _game._console.log(((Data)==null) ? "ERROR: null object" : Data.toString()); }; } public static function checkBitmapCache(Key:String):Boolean{ return (((!((_cache[Key] == undefined))) && (!((_cache[Key] == null))))); } static function updateSounds():void{ var s:FlxSound; if (((!((music == null))) && (music.active))){ music.update(); }; var sl:uint = sounds.length; var i:uint; while (i < sl) { s = (sounds[i] as FlxSound); if (((!((s == null))) && (s.active))){ s.update(); }; i++; }; } static function updateInput():void{ keys.update(); mouse.update(state.mouseX, state.mouseY, scroll.x, scroll.y); } public static function stream(URL:String, Volume:Number=1, Looped:Boolean=false):FlxSound{ var sl:uint = sounds.length; var i:uint; while (i < sl) { if (!(sounds[i] as FlxSound).active){ break; }; i++; }; if (sounds[i] == null){ sounds[i] = new FlxSound(); }; var s:FlxSound = sounds[i]; s.loadStream(URL, Looped); s.volume = Volume; s.play(); return (s); } static function unfollow():void{ followTarget = null; followLead = null; followLerp = 1; followMin = null; followMax = null; if (scroll == null){ scroll = new Point(); } else { scroll.x = (scroll.y = 0); }; if (_scrollTarget == null){ _scrollTarget = new Point(); } else { _scrollTarget.x = (_scrollTarget.y = 0); }; } public static function get state():FlxState{ return (_game._state); } protected static function playSounds():void{ var s:FlxSound; if (((!((music == null))) && (music.active))){ music.play(); }; var sl:uint = sounds.length; var i:uint; while (i < sl) { s = (sounds[i] as FlxSound); if (((!((s == null))) && (s.active))){ s.play(); }; i++; }; } public static function followAdjust(LeadX:Number=0, LeadY:Number=0):void{ followLead = new Point(LeadX, LeadY); } public static function follow(Target:FlxObject, Lerp:Number=1):void{ followTarget = Target; followLerp = Lerp; _scrollTarget.x = (((width >> 1) - followTarget.x) - (followTarget.width >> 1)); _scrollTarget.y = (((height >> 1) - followTarget.y) - (followTarget.height >> 1)); scroll.x = _scrollTarget.x; scroll.y = _scrollTarget.y; doFollow(); } public static function resetInput():void{ keys.reset(); mouse.reset(); } public static function followBounds(MinX:int=0, MinY:int=0, MaxX:int=0, MaxY:int=0, UpdateWorldBounds:Boolean=true):void{ followMin = new Point(-(MinX), -(MinY)); followMax = new Point((-(MaxX) + width), (-(MaxY) + height)); if (followMax.x > followMin.x){ followMax.x = followMin.x; }; if (followMax.y > followMin.y){ followMax.y = followMin.y; }; if (UpdateWorldBounds){ FlxU.setWorldBounds(MinX, MinY, (MaxX - MinX), (MaxY - MinY)); }; doFollow(); } protected static function pauseSounds():void{ var s:FlxSound; if (((!((music == null))) && (music.active))){ music.pause(); }; var sl:uint = sounds.length; var i:uint; while (i < sl) { s = (sounds[i] as FlxSound); if (((!((s == null))) && (s.active))){ s.pause(); }; i++; }; } static function destroySounds(ForceDestroy:Boolean=false):void{ var s:FlxSound; if (sounds == null){ return; }; if (((!((music == null))) && (((ForceDestroy) || (!(music.survive)))))){ music.destroy(); }; var sl:uint = sounds.length; var i:uint; while (i < sl) { s = (sounds[i] as FlxSound); if (((!((s == null))) && (((ForceDestroy) || (!(s.survive)))))){ s.destroy(); }; i++; }; } public static function set pause(Pause:Boolean):void{ var op:Boolean = _pause; _pause = Pause; if (_pause != op){ if (_pause){ _game.pauseGame(); pauseSounds(); } else { _game.unpauseGame(); playSounds(); }; }; } public static function get pause():Boolean{ return (_pause); } } }//package org.flixel
Section 92
//FlxGame (org.flixel.FlxGame) package org.flixel { import flash.events.*; import flash.display.*; import flash.geom.*; import org.flixel.data.*; import flash.text.*; import flash.utils.*; import flash.ui.*; public class FlxGame extends Sprite { const MAX_ELAPSED:Number = 0.0333; protected var SndFlixel:Class; var _screen:Sprite; var _state:FlxState; protected var SndBeep:Class; var _console:FlxConsole; var _gameXOffset:int; var _created:Boolean; var _zoom:uint; var _elapsed:Number; var _total:uint; var _soundTrayBars:Array; public var useDefaultHotKeys:Boolean; protected var junk:String;// = "FlxGame_junk" var _zeroPoint:Point; var _paused:Boolean; var _iState:Class; var _gameYOffset:int; var _buffer:Bitmap; var _soundTray:Sprite; var _frame:Class; public var pause:FlxGroup; var _soundTrayTimer:Number; public function FlxGame(GameSizeX:uint, GameSizeY:uint, InitialState:Class, Zoom:uint=2){ SndBeep = FlxGame_SndBeep; SndFlixel = FlxGame_SndFlixel; super(); Mouse.hide(); _zoom = Zoom; FlxState.bgColor = 4278190080; FlxG.setGameData(this, GameSizeX, GameSizeY, Zoom); _elapsed = 0; _total = 0; pause = new FlxPause(); _state = null; _iState = InitialState; _zeroPoint = new Point(); useDefaultHotKeys = true; _frame = null; _gameXOffset = 0; _gameYOffset = 0; _paused = false; _created = false; addEventListener(Event.ENTER_FRAME, create); } function pauseGame():void{ if (((!((x == 0))) || (!((y == 0))))){ x = 0; y = 0; }; Mouse.show(); _paused = true; stage.frameRate = FlxG.frameratePaused; } function unpauseGame():void{ if (!FlxG.panel.visible){ Mouse.hide(); }; FlxG.resetInput(); _paused = false; stage.frameRate = FlxG.framerate; } protected function onFocus(event:Event=null):void{ if (FlxG.pause){ FlxG.pause = false; }; } protected function onKeyUp(event:KeyboardEvent):void{ var c:int; var code:String; if ((((event.keyCode == 192)) || ((event.keyCode == 220)))){ _console.toggle(); return; }; if (useDefaultHotKeys){ c = event.keyCode; code = String.fromCharCode(event.charCode); switch (c){ case 48: case 96: FlxG.mute = !(FlxG.mute); showSoundTray(); return; case 109: case 189: FlxG.mute = false; FlxG.volume = (FlxG.volume - 0.1); showSoundTray(); return; case 107: case 187: FlxG.mute = false; FlxG.volume = (FlxG.volume + 0.1); showSoundTray(); return; case 80: FlxG.pause = !(FlxG.pause); default: break; }; }; FlxG.keys.handleKeyUp(event); } public function switchState(State:FlxState):void{ FlxG.panel.hide(); FlxG.unfollow(); FlxG.resetInput(); FlxG.destroySounds(); FlxG.flash.stop(); FlxG.fade.stop(); FlxG.quake.stop(); _screen.x = 0; _screen.y = 0; _screen.addChild(State); if (_state != null){ _state.destroy(); _screen.swapChildren(State, _state); _screen.removeChild(_state); }; _state = State; _state.scaleX = (_state.scaleY = _zoom); _state.create(); } protected function update(event:Event):void{ var i:uint; var soundPrefs:FlxSave; var mark:uint = getTimer(); _elapsed = ((mark - _total) / 1000); _console.lastElapsed = _elapsed; _total = mark; FlxG.elapsed = _elapsed; if (FlxG.elapsed > MAX_ELAPSED){ FlxG.elapsed = MAX_ELAPSED; }; FlxG.elapsed = (FlxG.elapsed * FlxG.timeScale); if (_soundTray != null){ if (_soundTrayTimer > 0){ _soundTrayTimer = (_soundTrayTimer - _elapsed); } else { if (_soundTray.y > -(_soundTray.height)){ _soundTray.y = (_soundTray.y - ((_elapsed * FlxG.height) * 2)); if (_soundTray.y <= -(_soundTray.height)){ _soundTray.visible = false; soundPrefs = new FlxSave(); if (soundPrefs.bind("flixel")){ if (soundPrefs.data.sound == null){ soundPrefs.data.sound = new Object(); }; soundPrefs.data.mute = FlxG.mute; soundPrefs.data.volume = FlxG.volume; soundPrefs.forceSave(); }; }; }; }; }; FlxG.panel.update(); if (_console.visible){ _console.update(); }; FlxG.updateInput(); FlxG.updateSounds(); if (_paused){ pause.update(); } else { FlxG.doFollow(); _state.update(); if (FlxG.flash.exists){ FlxG.flash.update(); }; if (FlxG.fade.exists){ FlxG.fade.update(); }; FlxG.quake.update(); _screen.x = FlxG.quake.x; _screen.y = FlxG.quake.y; }; FlxG.buffer.lock(); _state.preProcess(); _state.render(); if (FlxG.flash.exists){ FlxG.flash.render(); }; if (FlxG.fade.exists){ FlxG.fade.render(); }; if (FlxG.panel.visible){ FlxG.panel.render(); }; if (FlxG.mouse.cursor != null){ if (FlxG.mouse.cursor.active){ FlxG.mouse.cursor.update(); }; if (FlxG.mouse.cursor.visible){ FlxG.mouse.cursor.render(); }; }; _state.postProcess(); if (_paused){ pause.render(); }; FlxG.buffer.unlock(); } protected function addFrame(Frame:Class, ScreenOffsetX:uint, ScreenOffsetY:uint):FlxGame{ _frame = Frame; _gameXOffset = ScreenOffsetX; _gameYOffset = ScreenOffsetY; return (this); } public function showSoundTray(Silent:Boolean=false):void{ if (!Silent){ FlxG.play(SndBeep); }; _soundTrayTimer = 1; _soundTray.y = (_gameYOffset * _zoom); _soundTray.visible = true; var gv:uint = Math.round((FlxG.volume * 10)); if (FlxG.mute){ gv = 0; }; var i:uint; while (i < _soundTrayBars.length) { if (i < gv){ _soundTrayBars[i].alpha = 1; } else { _soundTrayBars[i].alpha = 0.5; }; i++; }; } function create(event:Event):void{ var i:uint; var soundPrefs:FlxSave; var bmp:Bitmap; if (root == null){ return; }; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.frameRate = FlxG.framerate; _screen = new Sprite(); addChild(_screen); var tmp:Bitmap = new Bitmap(new BitmapData(FlxG.width, FlxG.height, true, FlxState.bgColor)); tmp.x = _gameXOffset; tmp.y = _gameYOffset; tmp.scaleX = (tmp.scaleY = _zoom); _screen.addChild(tmp); FlxG.buffer = tmp.bitmapData; _console = new FlxConsole(_gameXOffset, _gameYOffset, _zoom); addChild(_console); var vstring:String = ((((FlxG.LIBRARY_NAME + " v") + FlxG.LIBRARY_MAJOR_VERSION) + ".") + FlxG.LIBRARY_MINOR_VERSION); if (FlxG.debug){ vstring = (vstring + " [debug]"); } else { vstring = (vstring + " [release]"); }; var underline:String = ""; i = 0; while (i < (vstring.length + 32)) { underline = (underline + "-"); i++; }; FlxG.log(vstring); FlxG.log(underline); stage.addEventListener(KeyboardEvent.KEY_DOWN, FlxG.keys.handleKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); stage.addEventListener(MouseEvent.MOUSE_DOWN, FlxG.mouse.handleMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, FlxG.mouse.handleMouseUp); stage.addEventListener(MouseEvent.MOUSE_OUT, FlxG.mouse.handleMouseOut); stage.addEventListener(MouseEvent.MOUSE_OVER, FlxG.mouse.handleMouseOver); stage.addEventListener(Event.DEACTIVATE, onFocusLost); stage.addEventListener(Event.ACTIVATE, onFocus); _soundTray = new Sprite(); _soundTray.visible = false; _soundTray.scaleX = 2; _soundTray.scaleY = 2; tmp = new Bitmap(new BitmapData(80, 30, true, 2130706432)); _soundTray.x = (((_gameXOffset + (FlxG.width / 2)) * _zoom) - ((tmp.width / 2) * _soundTray.scaleX)); _soundTray.addChild(tmp); var text:TextField = new TextField(); text.width = tmp.width; text.height = tmp.height; text.multiline = true; text.wordWrap = true; text.selectable = false; text.embedFonts = true; text.antiAliasType = AntiAliasType.NORMAL; text.gridFitType = GridFitType.PIXEL; text.defaultTextFormat = new TextFormat("system", 8, 0xFFFFFF, null, null, null, null, null, "center"); _soundTray.addChild(text); text.text = "VOLUME"; text.y = 16; var bx:uint = 10; var by:uint = 14; _soundTrayBars = new Array(); i = 0; while (i < 10) { tmp = new Bitmap(new BitmapData(4, (i + 1), false, 0xFFFFFF)); tmp.x = bx; tmp.y = by; _soundTrayBars.push(_soundTray.addChild(tmp)); bx = (bx + 6); by--; i++; }; addChild(_soundTray); if (_frame != null){ bmp = new _frame(); bmp.scaleX = _zoom; bmp.scaleY = _zoom; addChild(bmp); }; soundPrefs = new FlxSave(); if (((soundPrefs.bind("flixel")) && (!((soundPrefs.data.sound == null))))){ if (soundPrefs.data.volume != null){ FlxG.volume = soundPrefs.data.volume; }; if (soundPrefs.data.mute != null){ FlxG.mute = soundPrefs.data.mute; }; showSoundTray(true); }; switchState(new _iState()); FlxState.screen.unsafeBind(FlxG.buffer); removeEventListener(Event.ENTER_FRAME, create); addEventListener(Event.ENTER_FRAME, update); } protected function onFocusLost(event:Event=null):void{ FlxG.pause = true; } } }//package org.flixel
Section 93
//FlxGame_junk (org.flixel.FlxGame_junk) package org.flixel { import mx.core.*; public class FlxGame_junk extends FontAsset { } }//package org.flixel
Section 94
//FlxGame_SndBeep (org.flixel.FlxGame_SndBeep) package org.flixel { import mx.core.*; public class FlxGame_SndBeep extends SoundAsset { } }//package org.flixel
Section 95
//FlxGame_SndFlixel (org.flixel.FlxGame_SndFlixel) package org.flixel { import mx.core.*; public class FlxGame_SndFlixel extends SoundAsset { } }//package org.flixel
Section 96
//FlxGroup (org.flixel.FlxGroup) package org.flixel { public class FlxGroup extends FlxObject { public var members:Array; protected var _first:Boolean; protected var _last:FlxPoint; public function FlxGroup(){ super(); _group = true; solid = false; members = new Array(); _last = new FlxPoint(); _first = true; } public function getFirstExtant():FlxObject{ var o:FlxObject; var ml:uint = members.length; var i:uint; while (i < ml) { o = (members[i] as FlxObject); if (((!((o == null))) && (o.exists))){ return (o); }; i++; }; return (null); } override public function destroy():void{ destroyMembers(); super.destroy(); } public function getFirstAlive():FlxObject{ var o:FlxObject; var ml:uint = members.length; var i:uint; while (i < ml) { o = (members[i] as FlxObject); if (((((!((o == null))) && (o.exists))) && (!(o.dead)))){ return (o); }; i++; }; return (null); } public function remove(Object:FlxObject, Splice:Boolean=false):FlxObject{ var index:int = members.indexOf(Object); if ((((index < 0)) || ((index >= members.length)))){ return (null); }; if (Splice){ members.splice(index, 1); } else { members[index] = null; }; return (Object); } override public function update():void{ saveOldPosition(); updateMotion(); updateMembers(); updateFlickering(); } public function resetFirstAvail(X:Number=0, Y:Number=0):Boolean{ var o:FlxObject = getFirstAvail(); if (o == null){ return (false); }; o.reset(X, Y); return (true); } override public function reset(X:Number, Y:Number):void{ var mx:Number; var my:Number; var o:FlxObject; saveOldPosition(); super.reset(X, Y); var moved:Boolean; if (((!((x == _last.x))) || (!((y == _last.y))))){ moved = true; mx = (x - _last.x); my = (y - _last.y); }; var l:uint = members.length; var i:uint; while (i < l) { o = (members[i] as FlxObject); if (((!((o == null))) && (o.exists))){ if (moved){ if (o._group){ o.reset((o.x + mx), (o.y + my)); } else { o.x = (o.x + mx); o.y = (o.y + my); if (solid){ o.colHullX.width = (o.colHullX.width + ((mx)>0) ? mx : -(mx)); if (mx < 0){ o.colHullX.x = (o.colHullX.x + mx); }; o.colHullY.x = x; o.colHullY.height = (o.colHullY.height + ((my)>0) ? my : -(my)); if (my < 0){ o.colHullY.y = (o.colHullY.y + my); }; o.colVector.x = (o.colVector.x + mx); o.colVector.y = (o.colVector.y + my); }; }; }; }; i++; }; } protected function updateMembers():void{ var mx:Number; var my:Number; var o:FlxObject; var moved:Boolean; if (((!((x == _last.x))) || (!((y == _last.y))))){ moved = true; mx = (x - _last.x); my = (y - _last.y); }; var l:uint = members.length; var i:uint; while (i < l) { o = (members[i] as FlxObject); if (((!((o == null))) && (o.exists))){ if (moved){ if (o._group){ o.reset((o.x + mx), (o.y + my)); } else { o.x = (o.x + mx); o.y = (o.y + my); }; }; if (o.active){ o.update(); }; if (((moved) && (o.solid))){ o.colHullX.width = (o.colHullX.width + ((mx)>0) ? mx : -(mx)); if (mx < 0){ o.colHullX.x = (o.colHullX.x + mx); }; o.colHullY.x = x; o.colHullY.height = (o.colHullY.height + ((my)>0) ? my : -(my)); if (my < 0){ o.colHullY.y = (o.colHullY.y + my); }; o.colVector.x = (o.colVector.x + mx); o.colVector.y = (o.colVector.y + my); }; }; i++; }; } public function countDead():int{ var o:FlxObject; var count = -1; var ml:uint = members.length; var i:uint; while (i < ml) { o = (members[i] as FlxObject); if (o != null){ if (count < 0){ count = 0; }; if (o.dead){ count++; }; }; i++; }; return (count); } public function getFirstAvail():FlxObject{ var o:FlxObject; var ml:uint = members.length; var i:uint; while (i < ml) { o = (members[i] as FlxObject); if (((!((o == null))) && (!(o.exists)))){ return (o); }; i++; }; return (null); } override public function render():void{ renderMembers(); } public function countLiving():int{ var o:FlxObject; var count = -1; var ml:uint = members.length; var i:uint; while (i < ml) { o = (members[i] as FlxObject); if (o != null){ if (count < 0){ count = 0; }; if (((o.exists) && (!(o.dead)))){ count++; }; }; i++; }; return (count); } public function countOnScreen():int{ var o:FlxObject; var count = -1; var ml:uint = members.length; var i:uint; while (i < ml) { o = (members[i] as FlxObject); if (o != null){ if (count < 0){ count = 0; }; if (o.onScreen()){ count++; }; }; i++; }; return (count); } protected function killMembers():void{ var o:FlxObject; var l:uint = members.length; var i:uint; while (i < l) { o = (members[i] as FlxObject); if (o != null){ o.kill(); }; i++; }; } override public function kill():void{ killMembers(); super.kill(); } public function getFirstNull():int{ var ml:uint = members.length; var i:uint; while (i < ml) { if (members[i] == null){ return (i); }; i++; }; return (-1); } protected function renderMembers():void{ var o:FlxObject; var l:uint = members.length; var i:uint; while (i < l) { o = (members[i] as FlxObject); if (((((!((o == null))) && (o.exists))) && (o.visible))){ o.render(); }; i++; }; } public function add(Object:FlxObject, ShareScroll:Boolean=false):FlxObject{ members.push(Object); if (ShareScroll){ Object.scrollFactor = scrollFactor; }; return (Object); } protected function saveOldPosition():void{ if (_first){ _first = false; _last.x = 0; _last.y = 0; return; }; _last.x = x; _last.y = y; } public function replace(OldObject:FlxObject, NewObject:FlxObject):FlxObject{ var index:int = members.indexOf(OldObject); if ((((index < 0)) || ((index >= members.length)))){ return (null); }; members[index] = NewObject; return (NewObject); } public function getRandom():FlxObject{ var c:uint; var o:FlxObject; var l:uint = members.length; var i:uint = uint((FlxU.random() * l)); while ((((o == null)) && ((c < members.length)))) { ++i; o = (members[(i % l)] as FlxObject); c++; }; return (o); } public function getFirstDead():FlxObject{ var o:FlxObject; var ml:uint = members.length; var i:uint; while (i < ml) { o = (members[i] as FlxObject); if (((!((o == null))) && (o.dead))){ return (o); }; i++; }; return (null); } protected function destroyMembers():void{ var o:FlxObject; var l:uint = members.length; var i:uint; while (i < l) { o = (members[i] as FlxObject); if (o != null){ o.destroy(); }; i++; }; members.length = 0; } } }//package org.flixel
Section 97
//FlxObject (org.flixel.FlxObject) package org.flixel { import flash.geom.*; public class FlxObject extends FlxRect { public var acceleration:FlxPoint; public var angularAcceleration:Number; public var active:Boolean; public var collideBottom:Boolean; var _group:Boolean; protected var _point:FlxPoint; public var colHullX:FlxRect; protected var _flickerTimer:Number; public var colHullY:FlxRect; protected var _flashPoint:Point; public var colOffsets:Array; public var solid:Boolean; public var origin:FlxPoint; public var drag:FlxPoint; public var angularDrag:Number; public var collideTop:Boolean; protected var _flicker:Boolean; protected var _rect:FlxRect; public var moves:Boolean; public var angle:Number; public var thrust:Number; public var health:Number; public var velocity:FlxPoint; public var maxAngular:Number; public var angularVelocity:Number; public var maxVelocity:FlxPoint; public var exists:Boolean; public var collideLeft:Boolean; public var colVector:FlxPoint; public var maxThrust:Number; public var onFloor:Boolean; public var dead:Boolean; public var fixed:Boolean; public var visible:Boolean; public var scrollFactor:FlxPoint; public var collideRight:Boolean; protected static const _pZero:FlxPoint = new FlxPoint(); public function FlxObject(X:Number=0, Y:Number=0, Width:Number=0, Height:Number=0){ super(X, Y, Width, Height); exists = true; active = true; visible = true; solid = true; fixed = false; moves = true; collideLeft = true; collideRight = true; collideTop = true; collideBottom = true; origin = new FlxPoint(); velocity = new FlxPoint(); acceleration = new FlxPoint(); drag = new FlxPoint(); maxVelocity = new FlxPoint(10000, 10000); angle = 0; angularVelocity = 0; angularAcceleration = 0; angularDrag = 0; maxAngular = 10000; thrust = 0; scrollFactor = new FlxPoint(1, 1); _flicker = false; _flickerTimer = -1; health = 1; dead = false; _point = new FlxPoint(); _rect = new FlxRect(); _flashPoint = new Point(); colHullX = new FlxRect(); colHullY = new FlxRect(); colVector = new FlxPoint(); colOffsets = new Array(new FlxPoint()); _group = false; } public function onScreen():Boolean{ getScreenXY(_point); if (((((((((_point.x + width) < 0)) || ((_point.x > FlxG.width)))) || (((_point.y + height) < 0)))) || ((_point.y > FlxG.height)))){ return (false); }; return (true); } public function kill():void{ exists = false; dead = true; } protected function updateFlickering():void{ if (flickering()){ if (_flickerTimer > 0){ _flickerTimer = (_flickerTimer - FlxG.elapsed); if (_flickerTimer == 0){ _flickerTimer = -1; }; }; if (_flickerTimer < 0){ flicker(-1); } else { _flicker = !(_flicker); visible = !(_flicker); }; }; } public function render():void{ } public function hitBottom(Contact:FlxObject, Velocity:Number):void{ onFloor = true; if (!fixed){ velocity.y = Velocity; }; } public function overlaps(Object:FlxObject):Boolean{ var ts:FlxSprite; var os:FlxSprite; getScreenXY(_point); var tx:Number = _point.x; var ty:Number = _point.y; var tw:Number = width; var th:Number = height; if ((this is FlxSprite)){ ts = (this as FlxSprite); tw = ts.frameWidth; th = ts.frameHeight; }; Object.getScreenXY(_point); var ox:Number = _point.x; var oy:Number = _point.y; var ow:Number = Object.width; var oh:Number = Object.height; if ((Object is FlxSprite)){ os = (Object as FlxSprite); ow = os.frameWidth; oh = os.frameHeight; }; if ((((((((ox <= (tx - ow))) || ((ox >= (tx + tw))))) || ((oy <= (ty - oh))))) || ((oy >= (ty + th))))){ return (false); }; return (true); } public function overlapsPoint(X:Number, Y:Number, PerPixel:Boolean=false):Boolean{ X = (X + FlxU.floor(FlxG.scroll.x)); Y = (Y + FlxU.floor(FlxG.scroll.y)); getScreenXY(_point); if ((((((((X <= _point.x)) || ((X >= (_point.x + width))))) || ((Y <= _point.y)))) || ((Y >= (_point.y + height))))){ return (false); }; return (true); } public function hurt(Damage:Number):void{ if ((health = (health - Damage)) <= 0){ kill(); }; } public function refreshHulls():void{ colHullX.x = x; colHullX.y = y; colHullX.width = width; colHullX.height = height; colHullY.x = x; colHullY.y = y; colHullY.width = width; colHullY.height = height; } public function preCollide(Object:FlxObject):void{ } public function hitLeft(Contact:FlxObject, Velocity:Number):void{ if (!fixed){ velocity.x = Velocity; }; } public function collide(Object:FlxObject=null):Boolean{ return (FlxU.collide(this, ((Object)==null) ? this : Object)); } public function reset(X:Number, Y:Number):void{ x = X; y = Y; exists = true; dead = false; } public function update():void{ updateMotion(); updateFlickering(); } public function hitTop(Contact:FlxObject, Velocity:Number):void{ if (!fixed){ velocity.y = Velocity; }; } protected function updateMotion():void{ var thrustComponents:FlxPoint; var maxComponents:FlxPoint; var max:Number; if (!moves){ return; }; if (solid){ refreshHulls(); }; onFloor = false; angle = (angle + ((angularVelocity = FlxU.computeVelocity(angularVelocity, angularAcceleration, angularDrag, maxAngular)) * FlxG.elapsed)); if (thrust != 0){ thrustComponents = FlxU.rotatePoint(-(thrust), 0, 0, 0, angle); maxComponents = FlxU.rotatePoint(-(maxThrust), 0, 0, 0, angle); max = ((maxComponents.x)>0) ? maxComponents.x : -(maxComponents.x); if (max > ((maxComponents.y)>0) ? maxComponents.y : -(maxComponents.y)){ maxComponents.y = max; } else { max = ((maxComponents.y)>0) ? maxComponents.y : -(maxComponents.y); }; maxVelocity.x = (maxVelocity.y = ((max)>0) ? max : -(max)); } else { thrustComponents = _pZero; }; velocity.x = FlxU.computeVelocity(velocity.x, (acceleration.x + thrustComponents.x), drag.x, maxVelocity.x); velocity.y = FlxU.computeVelocity(velocity.y, (acceleration.y + thrustComponents.y), drag.y, maxVelocity.y); var xd:Number = (velocity.x * FlxG.elapsed); var yd:Number = (velocity.y * FlxG.elapsed); x = (x + xd); y = (y + yd); if (!solid){ return; }; colVector.x = xd; colVector.y = yd; colHullX.width = (colHullX.width + ((colVector.x)>0) ? colVector.x : -(colVector.x)); if (colVector.x < 0){ colHullX.x = (colHullX.x + colVector.x); }; colHullY.x = x; colHullY.height = (colHullY.height + ((colVector.y)>0) ? colVector.y : -(colVector.y)); if (colVector.y < 0){ colHullY.y = (colHullY.y + colVector.y); }; } public function flickering():Boolean{ return ((_flickerTimer >= 0)); } public function hitRight(Contact:FlxObject, Velocity:Number):void{ hitLeft(Contact, Velocity); } public function destroy():void{ } public function getScreenXY(Point:FlxPoint=null):FlxPoint{ if (Point == null){ Point = new FlxPoint(); }; Point.x = (FlxU.floor((x + FlxU.roundingError)) + FlxU.floor((FlxG.scroll.x * scrollFactor.x))); Point.y = (FlxU.floor((y + FlxU.roundingError)) + FlxU.floor((FlxG.scroll.y * scrollFactor.y))); return (Point); } public function flicker(Duration:Number=1):void{ _flickerTimer = Duration; if (_flickerTimer < 0){ _flicker = false; visible = true; }; } } }//package org.flixel
Section 98
//FlxPoint (org.flixel.FlxPoint) package org.flixel { public class FlxPoint { public var x:Number; public var y:Number; public function FlxPoint(X:Number=0, Y:Number=0){ super(); x = X; y = Y; } public function toString():String{ return (FlxU.getClassName(this, true)); } } }//package org.flixel
Section 99
//FlxPreloader (org.flixel.FlxPreloader) package org.flixel { import flash.events.*; import flash.display.*; import flash.text.*; import flash.net.*; import flash.utils.*; public class FlxPreloader extends MovieClip { protected var _height:uint; protected var _width:uint; protected var ImgLogoLight:Class; protected var _logo:Bitmap; protected var _text:TextField; protected var _min:uint; protected var _buffer:Sprite; public var className:String; public var myURL:String; protected var _bmpBar:Bitmap; protected var ImgLogo:Class; protected var _init:Boolean; protected var ImgLogoCorners:Class; protected var _logoGlow:Bitmap; public var minDisplayTime:Number; public function FlxPreloader(){ var tmp:Bitmap; var re:RegExp; var fmt:TextFormat; var txt:TextField; ImgLogo = FlxPreloader_ImgLogo; ImgLogoCorners = FlxPreloader_ImgLogoCorners; ImgLogoLight = FlxPreloader_ImgLogoLight; super(); minDisplayTime = 0; stop(); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; throw (new Error("Setting global debug flag...")); //unresolved jump var _slot1 = e; re = /\[.*:[0-9]+\]/; FlxG.debug = re.test(_slot1.getStackTrace()); if (((((!(FlxG.debug)) && (!((myURL == null))))) && ((root.loaderInfo.url.indexOf(myURL) < 0)))){ tmp = new Bitmap(new BitmapData(stage.stageWidth, stage.stageHeight, true, 4294967295)); addChild(tmp); fmt = new TextFormat(); fmt.color = 0; fmt.size = 16; fmt.align = "center"; fmt.bold = true; fmt.font = "system"; txt = new TextField(); txt.width = (tmp.width - 16); txt.height = (tmp.height - 16); txt.y = 8; txt.multiline = true; txt.wordWrap = true; txt.embedFonts = true; txt.defaultTextFormat = fmt; txt.text = (("Hi there! It looks like somebody copied this game without my permission. Just click anywhere, or copy-paste this URL into your browser.\n\n" + myURL) + "\n\nto play the game at my site. Thanks, and have fun!"); addChild(txt); txt.addEventListener(MouseEvent.CLICK, goToMyURL); tmp.addEventListener(MouseEvent.CLICK, goToMyURL); return; }; _init = false; addEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function update(Percent:Number):void{ _bmpBar.scaleX = (Percent * (_width - 8)); _text.text = (((((("FLX v" + FlxG.LIBRARY_MAJOR_VERSION) + ".") + FlxG.LIBRARY_MINOR_VERSION) + " ") + FlxU.floor((Percent * 100))) + "%"); _text.setTextFormat(_text.defaultTextFormat); if (Percent < 0.1){ _logoGlow.alpha = 0; _logo.alpha = 0; } else { if (Percent < 0.15){ _logoGlow.alpha = FlxU.random(false); _logo.alpha = 0; } else { if (Percent < 0.2){ _logoGlow.alpha = 0; _logo.alpha = 0; } else { if (Percent < 0.25){ _logoGlow.alpha = 0; _logo.alpha = FlxU.random(false); } else { if (Percent < 0.7){ _logoGlow.alpha = ((Percent - 0.45) / 0.45); _logo.alpha = 1; } else { if ((((Percent > 0.8)) && ((Percent < 0.9)))){ _logoGlow.alpha = (1 - ((Percent - 0.8) / 0.1)); _logo.alpha = 0; } else { if (Percent > 0.9){ _buffer.alpha = (1 - ((Percent - 0.9) / 0.1)); }; }; }; }; }; }; }; } private function goToMyURL(event:MouseEvent=null):void{ navigateToURL(new URLRequest(("http://" + myURL))); } private function onEnterFrame(event:Event):void{ var i:int; var mainClass:Class; var app:Object; var percent:Number; if (!_init){ if ((((stage.stageWidth <= 0)) || ((stage.stageHeight <= 0)))){ return; }; create(); _init = true; }; graphics.clear(); var time:uint = getTimer(); if ((((framesLoaded >= totalFrames)) && ((time > _min)))){ removeEventListener(Event.ENTER_FRAME, onEnterFrame); nextFrame(); mainClass = Class(getDefinitionByName(className)); if (mainClass){ app = new (mainClass); addChild((app as DisplayObject)); }; removeChild(_buffer); } else { percent = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal); if ((((_min > 0)) && ((percent > (time / _min))))){ percent = (time / _min); }; update(percent); }; } protected function create():void{ var j:uint; _min = 0; if (!FlxG.debug){ _min = (minDisplayTime * 1000); }; _buffer = new Sprite(); _buffer.scaleX = 2; _buffer.scaleY = 2; addChild(_buffer); _width = (stage.stageWidth / _buffer.scaleX); _height = (stage.stageHeight / _buffer.scaleY); _buffer.addChild(new Bitmap(new BitmapData(_width, _height, false, 13406))); var b:Bitmap = new ImgLogoLight(); b.smoothing = true; b.width = (b.height = _height); b.x = ((_width - b.width) / 2); _buffer.addChild(b); _bmpBar = new Bitmap(new BitmapData(1, 7, false, 6253311)); _bmpBar.x = 4; _bmpBar.y = (_height - 11); _buffer.addChild(_bmpBar); _text = new TextField(); _text.defaultTextFormat = new TextFormat("system", 8, 6253311); _text.embedFonts = true; _text.selectable = false; _text.multiline = false; _text.x = 2; _text.y = (_bmpBar.y - 11); _text.width = 80; _buffer.addChild(_text); _logo = new ImgLogo(); _logo.scaleX = (_logo.scaleY = (_height / 8)); _logo.x = ((_width - _logo.width) / 2); _logo.y = ((_height - _logo.height) / 2); _buffer.addChild(_logo); _logoGlow = new ImgLogo(); _logoGlow.smoothing = true; _logoGlow.blendMode = "screen"; _logoGlow.scaleX = (_logoGlow.scaleY = (_height / 8)); _logoGlow.x = ((_width - _logoGlow.width) / 2); _logoGlow.y = ((_height - _logoGlow.height) / 2); _buffer.addChild(_logoGlow); b = new ImgLogoCorners(); b.smoothing = true; b.width = _width; b.height = _height; _buffer.addChild(b); b = new Bitmap(new BitmapData(_width, _height, false, 0xFFFFFF)); var i:uint; while (i < _height) { j = 0; while (j < _width) { b.bitmapData.setPixel(j, i, 0); j++; }; i = (i + 2); }; b.blendMode = "overlay"; b.alpha = 0.25; _buffer.addChild(b); } } }//package org.flixel
Section 100
//FlxPreloader_ImgLogo (org.flixel.FlxPreloader_ImgLogo) package org.flixel { import mx.core.*; public class FlxPreloader_ImgLogo extends BitmapAsset { } }//package org.flixel
Section 101
//FlxPreloader_ImgLogoCorners (org.flixel.FlxPreloader_ImgLogoCorners) package org.flixel { import mx.core.*; public class FlxPreloader_ImgLogoCorners extends BitmapAsset { } }//package org.flixel
Section 102
//FlxPreloader_ImgLogoLight (org.flixel.FlxPreloader_ImgLogoLight) package org.flixel { import mx.core.*; public class FlxPreloader_ImgLogoLight extends BitmapAsset { } }//package org.flixel
Section 103
//FlxQuadTree (org.flixel.FlxQuadTree) package org.flixel { import org.flixel.data.*; public class FlxQuadTree extends FlxRect { protected var _sw:FlxQuadTree; protected var _mx:Number; protected var _my:Number; protected var _ne:FlxQuadTree; protected var _hh:Number; protected var _headA:FlxList; protected var _headB:FlxList; protected var _canSubdivide:Boolean; protected var _l:Number; protected var _hw:Number; protected var _nw:FlxQuadTree; protected var _se:FlxQuadTree; protected var _tailA:FlxList; protected var _r:Number; protected var _t:Number; protected var _tailB:FlxList; protected var _b:Number; public static const A_LIST:uint = 0; public static const B_LIST:uint = 1; protected static var _ot:Number; protected static var _or:Number; protected static var _o:FlxObject; protected static var _ob:Number; protected static var _min:uint; protected static var _oc:Function; protected static var _ol:Number; protected static var _oa:uint; public function FlxQuadTree(X:Number, Y:Number, Width:Number, Height:Number, Parent:FlxQuadTree=null){ var itr:FlxList; var ot:FlxList; super(X, Y, Width, Height); _headA = (_tailA = new FlxList()); _headB = (_tailB = new FlxList()); if (Parent != null){ if (Parent._headA.object != null){ itr = Parent._headA; while (itr != null) { if (_tailA.object != null){ ot = _tailA; _tailA = new FlxList(); ot.next = _tailA; }; _tailA.object = itr.object; itr = itr.next; }; }; if (Parent._headB.object != null){ itr = Parent._headB; while (itr != null) { if (_tailB.object != null){ ot = _tailB; _tailB = new FlxList(); ot.next = _tailB; }; _tailB.object = itr.object; itr = itr.next; }; }; } else { _min = ((width + height) / (2 * FlxU.quadTreeDivisions)); }; _canSubdivide = (((width > _min)) || ((height > _min))); _nw = null; _ne = null; _se = null; _sw = null; _l = x; _r = (x + width); _hw = (width / 2); _mx = (_l + _hw); _t = y; _b = (y + height); _hh = (height / 2); _my = (_t + _hh); } protected function addObject():void{ if (((!(_canSubdivide)) || ((((((((_l >= _ol)) && ((_r <= _or)))) && ((_t >= _ot)))) && ((_b <= _ob)))))){ addToList(); return; }; if ((((_ol > _l)) && ((_or < _mx)))){ if ((((_ot > _t)) && ((_ob < _my)))){ if (_nw == null){ _nw = new FlxQuadTree(_l, _t, _hw, _hh, this); }; _nw.addObject(); return; }; if ((((_ot > _my)) && ((_ob < _b)))){ if (_sw == null){ _sw = new FlxQuadTree(_l, _my, _hw, _hh, this); }; _sw.addObject(); return; }; }; if ((((_ol > _mx)) && ((_or < _r)))){ if ((((_ot > _t)) && ((_ob < _my)))){ if (_ne == null){ _ne = new FlxQuadTree(_mx, _t, _hw, _hh, this); }; _ne.addObject(); return; }; if ((((_ot > _my)) && ((_ob < _b)))){ if (_se == null){ _se = new FlxQuadTree(_mx, _my, _hw, _hh, this); }; _se.addObject(); return; }; }; if ((((((((_or > _l)) && ((_ol < _mx)))) && ((_ob > _t)))) && ((_ot < _my)))){ if (_nw == null){ _nw = new FlxQuadTree(_l, _t, _hw, _hh, this); }; _nw.addObject(); }; if ((((((((_or > _mx)) && ((_ol < _r)))) && ((_ob > _t)))) && ((_ot < _my)))){ if (_ne == null){ _ne = new FlxQuadTree(_mx, _t, _hw, _hh, this); }; _ne.addObject(); }; if ((((((((_or > _mx)) && ((_ol < _r)))) && ((_ob > _my)))) && ((_ot < _b)))){ if (_se == null){ _se = new FlxQuadTree(_mx, _my, _hw, _hh, this); }; _se.addObject(); }; if ((((((((_or > _l)) && ((_ol < _mx)))) && ((_ob > _my)))) && ((_ot < _b)))){ if (_sw == null){ _sw = new FlxQuadTree(_l, _my, _hw, _hh, this); }; _sw.addObject(); }; } protected function addToList():void{ var ot:FlxList; if (_oa == A_LIST){ if (_tailA.object != null){ ot = _tailA; _tailA = new FlxList(); ot.next = _tailA; }; _tailA.object = _o; } else { if (_tailB.object != null){ ot = _tailB; _tailB = new FlxList(); ot.next = _tailB; }; _tailB.object = _o; }; if (!_canSubdivide){ return; }; if (_nw != null){ _nw.addToList(); }; if (_ne != null){ _ne.addToList(); }; if (_se != null){ _se.addToList(); }; if (_sw != null){ _sw.addToList(); }; } public function overlap(BothLists:Boolean=true, Callback:Function=null):Boolean{ var itr:FlxList; _oc = Callback; var c:Boolean; if (BothLists){ _oa = B_LIST; if (_headA.object != null){ itr = _headA; while (itr != null) { _o = itr.object; if (((((_o.exists) && (_o.solid))) && (overlapNode()))){ c = true; }; itr = itr.next; }; }; _oa = A_LIST; if (_headB.object != null){ itr = _headB; while (itr != null) { _o = itr.object; if (((_o.exists) && (_o.solid))){ if (((!((_nw == null))) && (_nw.overlapNode()))){ c = true; }; if (((!((_ne == null))) && (_ne.overlapNode()))){ c = true; }; if (((!((_se == null))) && (_se.overlapNode()))){ c = true; }; if (((!((_sw == null))) && (_sw.overlapNode()))){ c = true; }; }; itr = itr.next; }; }; } else { if (_headA.object != null){ itr = _headA; while (itr != null) { _o = itr.object; if (((((_o.exists) && (_o.solid))) && (overlapNode(itr.next)))){ c = true; }; itr = itr.next; }; }; }; if (((!((_nw == null))) && (_nw.overlap(BothLists, _oc)))){ c = true; }; if (((!((_ne == null))) && (_ne.overlap(BothLists, _oc)))){ c = true; }; if (((!((_se == null))) && (_se.overlap(BothLists, _oc)))){ c = true; }; if (((!((_sw == null))) && (_sw.overlap(BothLists, _oc)))){ c = true; }; return (c); } public function add(Object:FlxObject, List:uint):void{ var m:FlxObject; var members:Array; var l:uint; var i:uint; _oa = List; if (Object._group){ members = (Object as FlxGroup).members; l = members.length; i = 0; while (i < l) { m = (members[i] as FlxObject); if (((!((m == null))) && (m.exists))){ if (m._group){ add(m, List); } else { if (m.solid){ _o = m; _ol = _o.x; _ot = _o.y; _or = (_o.x + _o.width); _ob = (_o.y + _o.height); addObject(); }; }; }; i++; }; }; if (Object.solid){ _o = Object; _ol = _o.x; _ot = _o.y; _or = (_o.x + _o.width); _ob = (_o.y + _o.height); addObject(); }; } protected function overlapNode(Iterator:FlxList=null):Boolean{ var co:FlxObject; var c:Boolean; var itr:FlxList = Iterator; if (itr == null){ if (_oa == A_LIST){ itr = _headA; } else { itr = _headB; }; }; if (itr.object != null){ while (itr != null) { co = itr.object; if ((((((((((((((((((_o === co)) || (!(co.exists)))) || (!(_o.exists)))) || (!(co.solid)))) || (!(_o.solid)))) || (((_o.x + _o.width) < (co.x + FlxU.roundingError))))) || (((_o.x + FlxU.roundingError) > (co.x + co.width))))) || (((_o.y + _o.height) < (co.y + FlxU.roundingError))))) || (((_o.y + FlxU.roundingError) > (co.y + co.height))))){ itr = itr.next; } else { if (_oc == null){ _o.kill(); co.kill(); c = true; } else { if (_oc(_o, co)){ c = true; }; }; itr = itr.next; }; }; }; return (c); } } }//package org.flixel
Section 104
//FlxRect (org.flixel.FlxRect) package org.flixel { public class FlxRect extends FlxPoint { public var width:Number; public var height:Number; public function FlxRect(X:Number=0, Y:Number=0, Width:Number=0, Height:Number=0){ super(X, Y); width = Width; height = Height; } public function get bottom():Number{ return ((y + height)); } public function get top():Number{ return (y); } public function get left():Number{ return (x); } public function get right():Number{ return ((x + width)); } } }//package org.flixel
Section 105
//FlxSave (org.flixel.FlxSave) package org.flixel { import flash.net.*; public class FlxSave { protected var _so:SharedObject; public var data:Object; public var name:String; public function FlxSave(){ super(); name = null; _so = null; data = null; } public function read(FieldName:String):Object{ if (_so == null){ FlxG.log("WARNING: You must call FlxSave.bind()\nbefore calling FlxSave.read()."); return (null); }; return (data[FieldName]); } public function forceSave(MinFileSize:uint=0):Boolean{ var MinFileSize = MinFileSize; if (_so == null){ FlxG.log("WARNING: You must call FlxSave.bind()\nbefore calling FlxSave.forceSave()."); return (false); }; var status:Object; status = _so.flush(MinFileSize); //unresolved jump var _slot1 = e; FlxG.log("WARNING: There was a problem flushing\nthe shared object data from FlxSave."); return (false); return ((status == SharedObjectFlushStatus.FLUSHED)); } public function bind(Name:String):Boolean{ var Name = Name; name = null; _so = null; data = null; name = Name; _so = SharedObject.getLocal(name); //unresolved jump var _slot1 = e; FlxG.log("WARNING: There was a problem binding to\nthe shared object data from FlxSave."); name = null; _so = null; data = null; return (false); data = _so.data; return (true); } public function erase(MinFileSize:uint=0):Boolean{ if (_so == null){ FlxG.log("WARNING: You must call FlxSave.bind()\nbefore calling FlxSave.erase()."); return (false); }; _so.clear(); return (forceSave(MinFileSize)); } public function write(FieldName:String, FieldValue:Object, MinFileSize:uint=0):Boolean{ if (_so == null){ FlxG.log("WARNING: You must call FlxSave.bind()\nbefore calling FlxSave.write()."); return (false); }; data[FieldName] = FieldValue; return (forceSave(MinFileSize)); } } }//package org.flixel
Section 106
//FlxSound (org.flixel.FlxSound) package org.flixel { import flash.events.*; import flash.media.*; import flash.net.*; public class FlxSound extends FlxObject { public var name:String; protected var _position:Number; protected var _fadeOutTotal:Number; protected var _fadeOutTimer:Number; protected var _sound:Sound; protected var _pauseOnFadeOut:Boolean; protected var _volumeAdjust:Number; public var playing:Boolean; protected var _radius:Number; protected var _volume:Number; protected var _point2:FlxPoint; protected var _fadeInTimer:Number; public var artist:String; protected var _channel:SoundChannel; protected var _fadeInTotal:Number; protected var _looped:Boolean; protected var _pan:Boolean; protected var _transform:SoundTransform; protected var _init:Boolean; public var survive:Boolean; protected var _core:FlxObject; public function FlxSound(){ super(); _point2 = new FlxPoint(); _transform = new SoundTransform(); init(); fixed = true; } public function loadStream(SoundURL:String, Looped:Boolean=false):FlxSound{ stop(); init(); _sound = new Sound(); _sound.addEventListener(Event.ID3, gotID3); _sound.load(new URLRequest(SoundURL)); _looped = Looped; updateTransform(); active = true; return (this); } public function stop():void{ _position = 0; if (_channel != null){ _channel.stop(); stopped(); }; } public function loadEmbedded(EmbeddedSound:Class, Looped:Boolean=false):FlxSound{ stop(); init(); _sound = new (EmbeddedSound); _looped = Looped; updateTransform(); active = true; return (this); } public function get volume():Number{ return (_volume); } function updateTransform():void{ _transform.volume = (((FlxG.getMuteValue() * FlxG.volume) * _volume) * _volumeAdjust); if (_channel != null){ _channel.soundTransform = _transform; }; } public function fadeOut(Seconds:Number, PauseInstead:Boolean=false):void{ _pauseOnFadeOut = PauseInstead; _fadeInTimer = 0; _fadeOutTimer = Seconds; _fadeOutTotal = _fadeOutTimer; } public function play():void{ if (_position < 0){ return; }; if (_looped){ if (_position == 0){ if (_channel == null){ _channel = _sound.play(0, 9999, _transform); }; if (_channel == null){ active = false; }; } else { _channel = _sound.play(_position, 0, _transform); if (_channel == null){ active = false; } else { _channel.addEventListener(Event.SOUND_COMPLETE, looped); }; }; } else { if (_position == 0){ if (_channel == null){ _channel = _sound.play(0, 0, _transform); if (_channel == null){ active = false; } else { _channel.addEventListener(Event.SOUND_COMPLETE, stopped); }; }; } else { _channel = _sound.play(_position, 0, _transform); if (_channel == null){ active = false; }; }; }; playing = !((_channel == null)); _position = 0; } public function set volume(Volume:Number):void{ _volume = Volume; if (_volume < 0){ _volume = 0; } else { if (_volume > 1){ _volume = 1; }; }; updateTransform(); } protected function init():void{ _transform.pan = 0; _sound = null; _position = 0; _volume = 1; _volumeAdjust = 1; _looped = false; _core = null; _radius = 0; _pan = false; _fadeOutTimer = 0; _fadeOutTotal = 0; _pauseOnFadeOut = false; _fadeInTimer = 0; _fadeInTotal = 0; active = false; visible = false; solid = false; playing = false; name = null; artist = null; } protected function looped(event:Event=null):void{ if (_channel == null){ return; }; _channel.removeEventListener(Event.SOUND_COMPLETE, looped); _channel = null; play(); } protected function updateSound():void{ var _point:FlxPoint; var _point2:FlxPoint; var dx:Number; var dy:Number; var d:Number; if (_position != 0){ return; }; var radial:Number = 1; var fade:Number = 1; if (_core != null){ _point = new FlxPoint(); _point2 = new FlxPoint(); _core.getScreenXY(_point); getScreenXY(_point2); dx = (_point.x - _point2.x); dy = (_point.y - _point2.y); radial = ((_radius - Math.sqrt(((dx * dx) + (dy * dy)))) / _radius); if (radial < 0){ radial = 0; }; if (radial > 1){ radial = 1; }; if (_pan){ d = (-(dx) / _radius); if (d < -1){ d = -1; } else { if (d > 1){ d = 1; }; }; _transform.pan = d; }; }; if (_fadeOutTimer > 0){ _fadeOutTimer = (_fadeOutTimer - FlxG.elapsed); if (_fadeOutTimer <= 0){ if (_pauseOnFadeOut){ pause(); } else { stop(); }; }; fade = (_fadeOutTimer / _fadeOutTotal); if (fade < 0){ fade = 0; }; } else { if (_fadeInTimer > 0){ _fadeInTimer = (_fadeInTimer - FlxG.elapsed); fade = (_fadeInTimer / _fadeInTotal); if (fade < 0){ fade = 0; }; fade = (1 - fade); }; }; _volumeAdjust = (radial * fade); updateTransform(); } public function fadeIn(Seconds:Number):void{ _fadeOutTimer = 0; _fadeInTimer = Seconds; _fadeInTotal = _fadeInTimer; play(); } override public function update():void{ super.update(); updateSound(); } protected function stopped(event:Event=null):void{ if (!_looped){ _channel.removeEventListener(Event.SOUND_COMPLETE, stopped); } else { _channel.removeEventListener(Event.SOUND_COMPLETE, looped); }; _channel = null; active = false; playing = false; } protected function gotID3(event:Event=null):void{ FlxG.log("got ID3 info!"); if (_sound.id3.songName.length > 0){ name = _sound.id3.songName; }; if (_sound.id3.artist.length > 0){ artist = _sound.id3.artist; }; _sound.removeEventListener(Event.ID3, gotID3); } public function pause():void{ if (_channel == null){ _position = -1; return; }; _position = _channel.position; _channel.stop(); if (_looped){ while (_position >= _sound.length) { _position = (_position - _sound.length); }; }; _channel = null; playing = false; } override public function destroy():void{ if (active){ stop(); }; } public function proximity(X:Number, Y:Number, Core:FlxObject, Radius:Number, Pan:Boolean=true):FlxSound{ x = X; y = Y; _core = Core; _radius = Radius; _pan = Pan; return (this); } } }//package org.flixel
Section 107
//FlxSprite (org.flixel.FlxSprite) package org.flixel { import flash.display.*; import flash.geom.*; import org.flixel.data.*; public class FlxSprite extends FlxObject { protected var _mtx:Matrix; protected var _caf:uint; public var finished:Boolean; protected var _animations:Array; protected var _ct:ColorTransform; public var offset:FlxPoint; protected var _callback:Function; protected var _curAnim:FlxAnim; protected var _framePixels:BitmapData; protected var _flipped:uint; public var scale:FlxPoint; protected var _pixels:BitmapData; protected var _bakedRotation:Number; public var blend:String; public var frameWidth:uint; protected var _flashRect2:Rectangle; protected var _alpha:Number; protected var _flashPointZero:Point; protected var _curFrame:uint; public var frameHeight:uint; protected var _flashRect:Rectangle; protected var _frameTimer:Number; protected var _facing:uint; public var antialiasing:Boolean; protected var _color:uint; public static const LEFT:uint = 0; public static const DOWN:uint = 3; public static const UP:uint = 2; public static const RIGHT:uint = 1; public function FlxSprite(X:Number=0, Y:Number=0, SimpleGraphic:Class=null){ super(); x = X; y = Y; _flashRect = new Rectangle(); _flashRect2 = new Rectangle(); _flashPointZero = new Point(); if (SimpleGraphic == null){ createGraphic(8, 8); } else { loadGraphic(SimpleGraphic); }; offset = new FlxPoint(); scale = new FlxPoint(1, 1); _alpha = 1; _color = 0xFFFFFF; blend = null; antialiasing = false; finished = false; _facing = RIGHT; _animations = new Array(); _flipped = 0; _curAnim = null; _curFrame = 0; _caf = 0; _frameTimer = 0; _mtx = new Matrix(); _callback = null; } protected function renderSprite():void{ getScreenXY(_point); _flashPoint.x = _point.x; _flashPoint.y = _point.y; if ((((((((((angle == 0)) || ((_bakedRotation > 0)))) && ((scale.x == 1)))) && ((scale.y == 1)))) && ((blend == null)))){ FlxG.buffer.copyPixels(_framePixels, _flashRect, _flashPoint, null, null, true); return; }; _mtx.identity(); _mtx.translate(-(origin.x), -(origin.y)); _mtx.scale(scale.x, scale.y); if (angle != 0){ _mtx.rotate(((Math.PI * 2) * (angle / 360))); }; _mtx.translate((_point.x + origin.x), (_point.y + origin.y)); FlxG.buffer.draw(_framePixels, _mtx, null, blend, null, antialiasing); } public function fill(Color:uint):void{ _pixels.fillRect(_flashRect2, Color); calcFrame(); } public function addAnimation(Name:String, Frames:Array, FrameRate:Number=0, Looped:Boolean=true):void{ _animations.push(new FlxAnim(Name, Frames, FrameRate, Looped)); } override public function overlapsPoint(X:Number, Y:Number, PerPixel:Boolean=false):Boolean{ X = (X - FlxU.floor(FlxG.scroll.x)); Y = (Y - FlxU.floor(FlxG.scroll.y)); getScreenXY(_point); if (PerPixel){ return (_framePixels.hitTest(new Point(0, 0), 0xFF, new Point((X - _point.x), (Y - _point.y)))); }; if ((((((((X <= _point.x)) || ((X >= (_point.x + frameWidth))))) || ((Y <= _point.y)))) || ((Y >= (_point.y + frameHeight))))){ return (false); }; return (true); } override public function render():void{ renderSprite(); } protected function calcFrame():void{ var rx:uint = (_caf * frameWidth); var ry:uint; var w:uint = (_flipped) ? _flipped : _pixels.width; if (rx >= w){ ry = (uint((rx / w)) * frameHeight); rx = (rx % w); }; if (((_flipped) && ((_facing == LEFT)))){ rx = (((_flipped << 1) - rx) - frameWidth); }; _flashRect.x = rx; _flashRect.y = ry; _framePixels.copyPixels(_pixels, _flashRect, _flashPointZero); _flashRect.x = (_flashRect.y = 0); if (_ct != null){ _framePixels.colorTransform(_flashRect, _ct); }; if (_callback != null){ _callback(_curAnim.name, _curFrame, _caf); }; } function unsafeBind(Pixels:BitmapData):void{ _pixels = (_framePixels = Pixels); } public function loadGraphic(Graphic:Class, Animated:Boolean=false, Reverse:Boolean=false, Width:uint=0, Height:uint=0, Unique:Boolean=false):FlxSprite{ _bakedRotation = 0; _pixels = FlxG.addBitmap(Graphic, Reverse, Unique); if (Reverse){ _flipped = (_pixels.width >> 1); } else { _flipped = 0; }; if (Width == 0){ if (Animated){ Width = _pixels.height; } else { if (_flipped > 0){ Width = (_pixels.width / 2); } else { Width = _pixels.width; }; }; }; width = (frameWidth = Width); if (Height == 0){ if (Animated){ Height = width; } else { Height = _pixels.height; }; }; height = (frameHeight = Height); resetHelpers(); return (this); } public function get pixels():BitmapData{ return (_pixels); } public function set facing(Direction:uint):void{ var c = !((_facing == Direction)); _facing = Direction; if (c){ calcFrame(); }; } protected function resetHelpers():void{ _flashRect.x = 0; _flashRect.y = 0; _flashRect.width = frameWidth; _flashRect.height = frameHeight; _flashRect2.x = 0; _flashRect2.y = 0; _flashRect2.width = _pixels.width; _flashRect2.height = _pixels.height; if ((((((_framePixels == null)) || (!((_framePixels.width == width))))) || (!((_framePixels.height == height))))){ _framePixels = new BitmapData(width, height); }; origin.x = (frameWidth / 2); origin.y = (frameHeight / 2); _framePixels.copyPixels(_pixels, _flashRect, _flashPointZero); _caf = 0; refreshHulls(); } override public function getScreenXY(Point:FlxPoint=null):FlxPoint{ if (Point == null){ Point = new FlxPoint(); }; Point.x = ((FlxU.floor((x + FlxU.roundingError)) + FlxU.floor((FlxG.scroll.x * scrollFactor.x))) - offset.x); Point.y = ((FlxU.floor((y + FlxU.roundingError)) + FlxU.floor((FlxG.scroll.y * scrollFactor.y))) - offset.y); return (Point); } public function set alpha(Alpha:Number):void{ if (Alpha > 1){ Alpha = 1; }; if (Alpha < 0){ Alpha = 0; }; if (Alpha == _alpha){ return; }; _alpha = Alpha; if (((!((_alpha == 1))) || (!((_color == 0xFFFFFF))))){ _ct = new ColorTransform((Number((_color >> 16)) / 0xFF), (Number(((_color >> 8) & 0xFF)) / 0xFF), (Number((_color & 0xFF)) / 0xFF), _alpha); } else { _ct = null; }; calcFrame(); } protected function updateAnimation():void{ var oc:uint; var ta:int; if (_bakedRotation){ oc = _caf; ta = (angle % 360); if (ta < 0){ ta = (ta + 360); }; _caf = (ta / _bakedRotation); if (oc != _caf){ calcFrame(); }; return; }; if (((((!((_curAnim == null))) && ((_curAnim.delay > 0)))) && (((_curAnim.looped) || (!(finished)))))){ _frameTimer = (_frameTimer + FlxG.elapsed); if (_frameTimer > _curAnim.delay){ _frameTimer = (_frameTimer - _curAnim.delay); if (_curFrame == (_curAnim.frames.length - 1)){ if (_curAnim.looped){ _curFrame = 0; }; finished = true; } else { _curFrame++; }; _caf = _curAnim.frames[_curFrame]; calcFrame(); }; }; } public function draw(Brush:FlxSprite, X:int=0, Y:int=0):void{ var b:BitmapData = Brush._framePixels; if ((((((((((Brush.angle == 0)) || ((Brush._bakedRotation > 0)))) && ((Brush.scale.x == 1)))) && ((Brush.scale.y == 1)))) && ((Brush.blend == null)))){ _flashPoint.x = X; _flashPoint.y = Y; _flashRect2.width = b.width; _flashRect2.height = b.height; _pixels.copyPixels(b, _flashRect2, _flashPoint, null, null, true); _flashRect2.width = _pixels.width; _flashRect2.height = _pixels.height; calcFrame(); return; }; _mtx.identity(); _mtx.translate(-(Brush.origin.x), -(Brush.origin.y)); _mtx.scale(Brush.scale.x, Brush.scale.y); if (Brush.angle != 0){ _mtx.rotate(((Math.PI * 2) * (Brush.angle / 360))); }; _mtx.translate((X + Brush.origin.x), (Y + Brush.origin.y)); _pixels.draw(b, _mtx, null, Brush.blend, null, Brush.antialiasing); calcFrame(); } public function loadRotatedGraphic(Graphic:Class, Rotations:uint=16, Frame:int=-1, AntiAliasing:Boolean=false, AutoBuffer:Boolean=false):FlxSprite{ var r:uint; var c:uint; var bw2:uint; var bh2:uint; var gxc:uint; var gyc:uint; var rows:uint = 4; var brush:FlxSprite = new FlxSprite().loadGraphic(Graphic, (Frame >= 0)); if (Frame >= 0){ brush.frame = Frame; }; brush.antialiasing = AntiAliasing; var max:uint = brush.width; if (brush.height > max){ max = brush.height; }; if (AutoBuffer){ max = (max * 1.5); }; var cols:uint = Math.ceil((Rotations / rows)); width = (max * cols); height = (max * rows); var key:String = ((((((String(Graphic) + ":") + Frame) + ":") + width) + "x") + height); var skipGen:Boolean = FlxG.checkBitmapCache(key); createGraphic(width, height, 0, true, key); _bakedRotation = (360 / Rotations); if (!skipGen){ bw2 = (brush.width / 2); bh2 = (brush.height / 2); gxc = (max / 2); gyc = (max / 2); r = 0; while (r < rows) { c = 0; while (c < cols) { draw(brush, ((gxc + (max * c)) - bw2), (gyc - bh2)); brush.angle = (brush.angle + _bakedRotation); c++; }; gyc = (gyc + max); r++; }; }; frameWidth = (frameHeight = (width = (height = max))); resetHelpers(); return (this); } public function set color(Color:uint):void{ Color = (Color & 0xFFFFFF); if (_color == Color){ return; }; _color = Color; if (((!((_alpha == 1))) || (!((_color == 0xFFFFFF))))){ _ct = new ColorTransform((Number((_color >> 16)) / 0xFF), (Number(((_color >> 8) & 0xFF)) / 0xFF), (Number((_color & 0xFF)) / 0xFF), _alpha); } else { _ct = null; }; calcFrame(); } override public function update():void{ updateMotion(); updateAnimation(); updateFlickering(); } public function onEmit():void{ } public function createGraphic(Width:uint, Height:uint, Color:uint=4294967295, Unique:Boolean=false, Key:String=null):FlxSprite{ _bakedRotation = 0; _pixels = FlxG.createBitmap(Width, Height, Color, Unique, Key); width = (frameWidth = _pixels.width); height = (frameHeight = _pixels.height); resetHelpers(); return (this); } public function play(AnimName:String, Force:Boolean=false):void{ if (((((!(Force)) && (!((_curAnim == null))))) && ((AnimName == _curAnim.name)))){ return; }; _curFrame = 0; _caf = 0; _frameTimer = 0; var al:uint = _animations.length; var i:uint; while (i < al) { if (_animations[i].name == AnimName){ _curAnim = _animations[i]; if (_curAnim.delay <= 0){ finished = true; } else { finished = false; }; _caf = _curAnim.frames[_curFrame]; calcFrame(); return; }; i++; }; } public function addAnimationCallback(AnimationCallback:Function):void{ _callback = AnimationCallback; } public function set pixels(Pixels:BitmapData):void{ _pixels = Pixels; width = (frameWidth = _pixels.width); height = (frameHeight = _pixels.height); resetHelpers(); } public function get alpha():Number{ return (_alpha); } public function get facing():uint{ return (_facing); } public function get color():uint{ return (_color); } public function set frame(Frame:uint):void{ _curAnim = null; _caf = Frame; calcFrame(); } public function get frame():uint{ return (_caf); } public function randomFrame():void{ _curAnim = null; _caf = int((FlxU.random() * (_pixels.width / frameWidth))); calcFrame(); } } }//package org.flixel
Section 108
//FlxState (org.flixel.FlxState) package org.flixel { import flash.display.*; public class FlxState extends Sprite { public var defaultGroup:FlxGroup; public static var screen:FlxSprite; public static var bgColor:uint; public function FlxState(){ super(); defaultGroup = new FlxGroup(); if (screen == null){ screen = new FlxSprite(); screen.createGraphic(FlxG.width, FlxG.height, 0, true); screen.origin.x = (screen.origin.y = 0); screen.antialiasing = true; }; } public function add(Core:FlxObject):FlxObject{ return (defaultGroup.add(Core)); } public function preProcess():void{ screen.fill(bgColor); } public function collide():void{ FlxU.collide(defaultGroup, defaultGroup); } public function render():void{ defaultGroup.render(); } public function update():void{ defaultGroup.update(); } public function destroy():void{ defaultGroup.destroy(); } public function create():void{ } public function postProcess():void{ } } }//package org.flixel
Section 109
//FlxText (org.flixel.FlxText) package org.flixel { import flash.display.*; import flash.text.*; public class FlxText extends FlxSprite { protected var _tf:TextField; protected var _regen:Boolean; protected var _shadow:uint; public function FlxText(X:Number, Y:Number, Width:uint, Text:String=null){ super(X, Y); createGraphic(Width, 1, 0); if (Text == null){ Text = ""; }; _tf = new TextField(); _tf.width = Width; _tf.embedFonts = true; _tf.selectable = false; _tf.sharpness = 100; _tf.multiline = true; _tf.wordWrap = true; _tf.text = Text; var tf:TextFormat = new TextFormat("system", 8, 0xFFFFFF); _tf.defaultTextFormat = tf; _tf.setTextFormat(tf); if (Text.length <= 0){ _tf.height = 1; } else { _tf.height = 10; }; _regen = true; _shadow = 0; solid = false; calcFrame(); } public function get shadow():uint{ return (_shadow); } public function get size():Number{ return ((_tf.defaultTextFormat.size as Number)); } override public function get color():uint{ return ((_tf.defaultTextFormat.color as uint)); } override public function set color(Color:uint):void{ var tf:TextFormat = dtfCopy(); tf.color = Color; _tf.defaultTextFormat = tf; _tf.setTextFormat(tf); _regen = true; calcFrame(); } public function set shadow(Color:uint):void{ _shadow = Color; calcFrame(); } public function set size(Size:Number):void{ var tf:TextFormat = dtfCopy(); tf.size = Size; _tf.defaultTextFormat = tf; _tf.setTextFormat(tf); _regen = true; calcFrame(); } public function get alignment():String{ return (_tf.defaultTextFormat.align); } protected function dtfCopy():TextFormat{ var dtf:TextFormat = _tf.defaultTextFormat; return (new TextFormat(dtf.font, dtf.size, dtf.color, dtf.bold, dtf.italic, dtf.underline, dtf.url, dtf.target, dtf.align)); } public function get text():String{ return (_tf.text); } public function get font():String{ return (_tf.defaultTextFormat.font); } public function set alignment(Alignment:String):void{ var tf:TextFormat = dtfCopy(); tf.align = Alignment; _tf.defaultTextFormat = tf; _tf.setTextFormat(tf); calcFrame(); } public function set font(Font:String):void{ var tf:TextFormat = dtfCopy(); tf.font = Font; _tf.defaultTextFormat = tf; _tf.setTextFormat(tf); _regen = true; calcFrame(); } override protected function calcFrame():void{ var nl:uint; var i:uint; var tf:TextFormat; var tfa:TextFormat; if (_regen){ nl = _tf.numLines; height = 0; i = 0; while (i < nl) { height = (height + _tf.getLineMetrics(i).height); i++; }; height = (height + 4); _pixels = new BitmapData(width, height, true, 0); frameHeight = height; _tf.height = (height * 1.2); _flashRect.x = 0; _flashRect.y = 0; _flashRect.width = width; _flashRect.height = height; _regen = false; } else { _pixels.fillRect(_flashRect, 0); }; if (((((!((_tf == null))) && (!((_tf.text == null))))) && ((_tf.text.length > 0)))){ tf = _tf.defaultTextFormat; tfa = tf; _mtx.identity(); if ((((tf.align == "center")) && ((_tf.numLines == 1)))){ tfa = new TextFormat(tf.font, tf.size, tf.color, null, null, null, null, null, "left"); _tf.setTextFormat(tfa); _mtx.translate(Math.floor(((width - _tf.getLineMetrics(0).width) / 2)), 0); }; if (_shadow > 0){ _tf.setTextFormat(new TextFormat(tfa.font, tfa.size, _shadow, null, null, null, null, null, tfa.align)); _mtx.translate(1, 1); _pixels.draw(_tf, _mtx, _ct); _mtx.translate(-1, -1); _tf.setTextFormat(new TextFormat(tfa.font, tfa.size, tfa.color, null, null, null, null, null, tfa.align)); }; _pixels.draw(_tf, _mtx, _ct); _tf.setTextFormat(new TextFormat(tf.font, tf.size, tf.color, null, null, null, null, null, tf.align)); }; _framePixels = new BitmapData(_pixels.width, _pixels.height, true, 0); _framePixels.copyPixels(_pixels, _flashRect, _flashPointZero); if (solid){ refreshHulls(); }; } public function setFormat(Font:String=null, Size:Number=8, Color:uint=0xFFFFFF, Alignment:String=null, ShadowColor:uint=0):FlxText{ if (Font == null){ Font = ""; }; var tf:TextFormat = dtfCopy(); tf.font = Font; tf.size = Size; tf.color = Color; tf.align = Alignment; _tf.defaultTextFormat = tf; _tf.setTextFormat(tf); _shadow = ShadowColor; _regen = true; calcFrame(); return (this); } public function set text(Text:String):void{ _tf.text = Text; _regen = true; calcFrame(); } } }//package org.flixel
Section 110
//FlxTileblock (org.flixel.FlxTileblock) package org.flixel { import flash.display.*; import flash.geom.*; public class FlxTileblock extends FlxObject { protected var _pixels:BitmapData; protected var _flashRect:Rectangle; protected var _rects:Array; protected var _tileSize:uint; public function FlxTileblock(X:int, Y:int, Width:uint, Height:uint){ super(); x = X; y = Y; width = Width; height = Height; fixed = true; refreshHulls(); } override public function render():void{ renderBlock(); } public function loadGraphic(TileGraphic:Class, Empties:uint=0):void{ var widthInTiles:uint; if (TileGraphic == null){ return; }; _pixels = FlxG.addBitmap(TileGraphic); _rects = new Array(); _tileSize = _pixels.height; widthInTiles = Math.ceil((width / _tileSize)); var heightInTiles:uint = Math.ceil((height / _tileSize)); width = (widthInTiles * _tileSize); height = (heightInTiles * _tileSize); var numTiles:uint = (widthInTiles * heightInTiles); var numGraphics:uint = (_pixels.width / _tileSize); var i:uint; while (i < numTiles) { if ((FlxU.random() * (numGraphics + Empties)) > Empties){ _rects.push(new Rectangle((_tileSize * Math.floor((FlxU.random() * numGraphics))), 0, _tileSize, _tileSize)); } else { _rects.push(null); }; i++; }; } protected function renderBlock():void{ getScreenXY(_point); var opx:int = _point.x; var rl:uint = _rects.length; _flashPoint.x = _point.x; _flashPoint.y = _point.y; var i:uint; while (i < rl) { _flashRect = (_rects[i] as Rectangle); if (_flashRect != null){ FlxG.buffer.copyPixels(_pixels, _flashRect, _flashPoint, null, null, true); }; _flashPoint.x = (_flashPoint.x + _tileSize); if (_flashPoint.x >= (opx + width)){ _flashPoint.x = opx; _flashPoint.y = (_flashPoint.y + _tileSize); }; i++; }; } } }//package org.flixel
Section 111
//FlxTilemap (org.flixel.FlxTilemap) package org.flixel { import flash.display.*; import flash.geom.*; public class FlxTilemap extends FlxObject { protected var _tileWidth:uint; protected var _screenRows:uint; protected var _data:Array; public var startingIndex:uint; protected var _pixels:BitmapData; protected var _block:FlxObject; protected var _callbacks:Array; protected var _rects:Array; protected var _tileHeight:uint; public var totalTiles:uint; protected var _screenCols:uint; public var drawIndex:uint; public var auto:uint; protected var _flashRect:Rectangle; public var heightInTiles:uint; public var widthInTiles:uint; public var collideIndex:uint; public static const ALT:uint = 2; public static const AUTO:uint = 1; public static const OFF:uint = 0; public static var ImgAutoAlt:Class = FlxTilemap_ImgAutoAlt; public static var ImgAuto:Class = FlxTilemap_ImgAuto; public function FlxTilemap(){ super(); auto = OFF; collideIndex = 1; startingIndex = 0; drawIndex = 1; widthInTiles = 0; heightInTiles = 0; totalTiles = 0; _data = null; _tileWidth = 0; _tileHeight = 0; _rects = null; _pixels = null; _block = new FlxObject(); _block.width = (_block.height = 0); _block.fixed = true; _callbacks = new Array(); fixed = true; } public function setTileByIndex(Index:uint, Tile:uint, UpdateGraphics:Boolean=true):Boolean{ var i:uint; if (Index >= _data.length){ return (false); }; var ok:Boolean; _data[Index] = Tile; if (!UpdateGraphics){ return (ok); }; if (auto == OFF){ updateTile(Index); return (ok); }; var r:int = (int((Index / widthInTiles)) - 1); var rl:int = (r + 3); var c:int = ((Index % widthInTiles) - 1); var cl:int = (c + 3); while (r < rl) { c = (cl - 3); while (c < cl) { if ((((((((r >= 0)) && ((r < heightInTiles)))) && ((c >= 0)))) && ((c < widthInTiles)))){ i = ((r * widthInTiles) + c); autoTile(i); updateTile(i); }; c++; }; r++; }; return (ok); } public function getTile(X:uint, Y:uint):uint{ return (getTileByIndex(((Y * widthInTiles) + X))); } public function setCallback(Tile:uint, Callback:Function, Range:uint=1):void{ FlxG.log("FlxTilemap.setCallback() has been temporarily deprecated, sorry!"); if (Range <= 0){ return; }; var i:uint = Tile; while (i < (Tile + Range)) { _callbacks[i] = Callback; i++; }; } override public function overlaps(Core:FlxObject):Boolean{ var c:uint; var d:uint; var i:uint; var dd:uint; var blocks:Array = new Array(); var ix:uint = Math.floor(((Core.x - x) / _tileWidth)); var iy:uint = Math.floor(((Core.y - y) / _tileHeight)); var iw:uint = (Math.ceil((Core.width / _tileWidth)) + 1); var ih:uint = (Math.ceil((Core.height / _tileHeight)) + 1); var r:uint; while (r < ih) { if (r >= heightInTiles){ break; }; d = (((iy + r) * widthInTiles) + ix); c = 0; while (c < iw) { if (c >= widthInTiles){ break; }; dd = (_data[(d + c)] as uint); if (dd >= collideIndex){ blocks.push({x:(x + ((ix + c) * _tileWidth)), y:(y + ((iy + r) * _tileHeight)), data:dd}); }; c++; }; r++; }; var bl:uint = blocks.length; var hx:Boolean; i = 0; while (i < bl) { _block.x = blocks[i].x; _block.y = blocks[i].y; if (_block.overlaps(Core)){ return (true); }; i++; }; return (false); } public function loadMap(MapData:String, TileGraphic:Class, TileWidth:uint=0, TileHeight:uint=0):FlxTilemap{ var c:uint; var cols:Array; var i:uint; var rows:Array = MapData.split("\n"); heightInTiles = rows.length; _data = new Array(); var r:uint; while (r < heightInTiles) { cols = rows[r].split(","); if (cols.length <= 1){ heightInTiles--; } else { if (widthInTiles == 0){ widthInTiles = cols.length; }; c = 0; while (c < widthInTiles) { _data.push(uint(cols[c])); c++; }; }; r++; }; totalTiles = (widthInTiles * heightInTiles); if (auto > OFF){ collideIndex = (startingIndex = (drawIndex = 1)); i = 0; while (i < totalTiles) { autoTile(i); i++; }; }; _pixels = FlxG.addBitmap(TileGraphic); _tileWidth = TileWidth; if (_tileWidth == 0){ _tileWidth = _pixels.height; }; _tileHeight = TileHeight; if (_tileHeight == 0){ _tileHeight = _tileWidth; }; _block.width = _tileWidth; _block.height = _tileHeight; width = (widthInTiles * _tileWidth); height = (heightInTiles * _tileHeight); _rects = new Array(totalTiles); i = 0; while (i < totalTiles) { updateTile(i); i++; }; _screenRows = (Math.ceil((FlxG.height / _tileHeight)) + 1); if (_screenRows > heightInTiles){ _screenRows = heightInTiles; }; _screenCols = (Math.ceil((FlxG.width / _tileWidth)) + 1); if (_screenCols > widthInTiles){ _screenCols = widthInTiles; }; refreshHulls(); return (this); } public function ray(StartX:Number, StartY:Number, EndX:Number, EndY:Number, Result:FlxPoint, Resolution:Number=1):Boolean{ var tx:uint; var ty:uint; var rx:Number; var ry:Number; var q:Number; var lx:Number; var ly:Number; var step:Number = _tileWidth; if (_tileHeight < _tileWidth){ step = _tileHeight; }; step = (step / Resolution); var dx:Number = (EndX - StartX); var dy:Number = (EndY - StartY); var distance:Number = Math.sqrt(((dx * dx) + (dy * dy))); var steps:uint = Math.ceil((distance / step)); var stepX:Number = (dx / steps); var stepY:Number = (dy / steps); var curX:Number = (StartX - stepX); var curY:Number = (StartY - stepY); var i:uint; while (i < steps) { curX = (curX + stepX); curY = (curY + stepY); if ((((((((curX < 0)) || ((curX > width)))) || ((curY < 0)))) || ((curY > height)))){ } else { tx = (curX / _tileWidth); ty = (curY / _tileHeight); if ((_data[((ty * widthInTiles) + tx)] as uint) >= collideIndex){ tx = (tx * _tileWidth); ty = (ty * _tileHeight); rx = 0; ry = 0; lx = (curX - stepX); ly = (curY - stepY); q = tx; if (dx < 0){ q = (q + _tileWidth); }; rx = q; ry = (ly + (stepY * ((q - lx) / stepX))); if ((((ry > ty)) && ((ry < (ty + _tileHeight))))){ if (Result == null){ Result = new FlxPoint(); }; Result.x = rx; Result.y = ry; return (true); }; q = ty; if (dy < 0){ q = (q + _tileHeight); }; rx = (lx + (stepX * ((q - ly) / stepY))); ry = q; if ((((rx > tx)) && ((rx < (tx + _tileWidth))))){ if (Result == null){ Result = new FlxPoint(); }; Result.x = rx; Result.y = ry; return (true); }; return (false); }; }; i++; }; return (false); } override public function preCollide(Object:FlxObject):void{ var r:uint; var c:uint; var rs:uint; var col:uint; var ix:int = FlxU.floor(((Object.x - x) / _tileWidth)); var iy:int = FlxU.floor(((Object.y - y) / _tileHeight)); var iw:uint = ((ix + FlxU.ceil((Object.width / _tileWidth))) + 1); var ih:uint = ((iy + FlxU.ceil((Object.height / _tileHeight))) + 1); if (ix < 0){ ix = 0; }; if (iy < 0){ iy = 0; }; if (iw > widthInTiles){ iw = widthInTiles; }; if (ih > heightInTiles){ ih = heightInTiles; }; rs = (iy * widthInTiles); r = iy; while (r < ih) { c = ix; while (c < iw) { if ((_data[(rs + c)] as uint) >= collideIndex){ var _temp1 = col; col = (col + 1); var _local10 = _temp1; colOffsets[_local10] = new FlxPoint((x + (c * _tileWidth)), (y + (r * _tileHeight))); }; c++; }; rs = (rs + widthInTiles); r++; }; if (colOffsets.length != col){ colOffsets.length = col; }; } override public function render():void{ renderTilemap(); } protected function updateTile(Index:uint):void{ if (_data[Index] < drawIndex){ _rects[Index] = null; return; }; var rx:uint = ((_data[Index] - startingIndex) * _tileWidth); var ry:uint; if (rx >= _pixels.width){ ry = (uint((rx / _pixels.width)) * _tileHeight); rx = (rx % _pixels.width); }; _rects[Index] = new Rectangle(rx, ry, _tileWidth, _tileHeight); } override public function refreshHulls():void{ colHullX.x = 0; colHullX.y = 0; colHullX.width = _tileWidth; colHullX.height = _tileHeight; colHullY.x = 0; colHullY.y = 0; colHullY.width = _tileWidth; colHullY.height = _tileHeight; } public function setTile(X:uint, Y:uint, Tile:uint, UpdateGraphics:Boolean=true):Boolean{ if ((((X >= widthInTiles)) || ((Y >= heightInTiles)))){ return (false); }; return (setTileByIndex(((Y * widthInTiles) + X), Tile, UpdateGraphics)); } public function follow(Border:int=0):void{ FlxG.followBounds((x + (Border * _tileWidth)), (y + (Border * _tileHeight)), (width - (Border * _tileWidth)), (height - (Border * _tileHeight))); } protected function renderTilemap():void{ var c:uint; var cri:uint; getScreenXY(_point); _flashPoint.x = _point.x; _flashPoint.y = _point.y; var tx:int = Math.floor((-(_flashPoint.x) / _tileWidth)); var ty:int = Math.floor((-(_flashPoint.y) / _tileHeight)); if (tx < 0){ tx = 0; }; if (tx > (widthInTiles - _screenCols)){ tx = (widthInTiles - _screenCols); }; if (ty < 0){ ty = 0; }; if (ty > (heightInTiles - _screenRows)){ ty = (heightInTiles - _screenRows); }; var ri:int = ((ty * widthInTiles) + tx); _flashPoint.x = (_flashPoint.x + (tx * _tileWidth)); _flashPoint.y = (_flashPoint.y + (ty * _tileHeight)); var opx:int = _flashPoint.x; var r:uint; while (r < _screenRows) { cri = ri; c = 0; while (c < _screenCols) { var _temp1 = cri; cri = (cri + 1); _flashRect = (_rects[_temp1] as Rectangle); if (_flashRect != null){ FlxG.buffer.copyPixels(_pixels, _flashRect, _flashPoint, null, null, true); }; _flashPoint.x = (_flashPoint.x + _tileWidth); c++; }; ri = (ri + widthInTiles); _flashPoint.x = opx; _flashPoint.y = (_flashPoint.y + _tileHeight); r++; }; } protected function autoTile(Index:uint):void{ if (_data[Index] == 0){ return; }; _data[Index] = 0; if (((((Index - widthInTiles) < 0)) || ((_data[(Index - widthInTiles)] > 0)))){ _data[Index] = (_data[Index] + 1); }; if (((((Index % widthInTiles) >= (widthInTiles - 1))) || ((_data[(Index + 1)] > 0)))){ _data[Index] = (_data[Index] + 2); }; if (((((Index + widthInTiles) >= totalTiles)) || ((_data[(Index + widthInTiles)] > 0)))){ _data[Index] = (_data[Index] + 4); }; if (((((Index % widthInTiles) <= 0)) || ((_data[(Index - 1)] > 0)))){ _data[Index] = (_data[Index] + 8); }; if ((((auto == ALT)) && ((_data[Index] == 15)))){ if (((((((Index % widthInTiles) > 0)) && (((Index + widthInTiles) < totalTiles)))) && ((_data[((Index + widthInTiles) - 1)] <= 0)))){ _data[Index] = 1; }; if (((((((Index % widthInTiles) > 0)) && (((Index - widthInTiles) >= 0)))) && ((_data[((Index - widthInTiles) - 1)] <= 0)))){ _data[Index] = 2; }; if (((((((Index % widthInTiles) < widthInTiles)) && (((Index - widthInTiles) >= 0)))) && ((_data[((Index - widthInTiles) + 1)] <= 0)))){ _data[Index] = 4; }; if (((((((Index % widthInTiles) < widthInTiles)) && (((Index + widthInTiles) < totalTiles)))) && ((_data[((Index + widthInTiles) + 1)] <= 0)))){ _data[Index] = 8; }; }; _data[Index] = (_data[Index] + 1); } public function getTileByIndex(Index:uint):uint{ return ((_data[Index] as uint)); } public static function arrayToCSV(Data:Array, Width:int):String{ var r:uint; var c:uint; var csv:String; var Height:int = (Data.length / Width); r = 0; while (r < Height) { c = 0; while (c < Width) { if (c == 0){ if (r == 0){ csv = (csv + Data[0]); } else { csv = (csv + ("\n" + Data[(r * Width)])); }; } else { csv = (csv + (", " + Data[((r * Width) + c)])); }; c++; }; r++; }; return (csv); } public static function pngToCSV(PNGFile:Class, Invert:Boolean=false, Scale:uint=1):String{ var layout:Bitmap; var r:uint; var c:uint; var p:uint; var csv:String; var tmp:Bitmap; var mtx:Matrix; if (Scale <= 1){ layout = new (PNGFile); } else { tmp = new (PNGFile); layout = new Bitmap(new BitmapData((tmp.width * Scale), (tmp.height * Scale))); mtx = new Matrix(); mtx.scale(Scale, Scale); layout.bitmapData.draw(tmp, mtx); }; var bd:BitmapData = layout.bitmapData; var w:uint = layout.width; var h:uint = layout.height; r = 0; while (r < h) { c = 0; while (c < w) { p = bd.getPixel(c, r); if (((((Invert) && ((p > 0)))) || (((!(Invert)) && ((p == 0)))))){ p = 1; } else { p = 0; }; if (c == 0){ if (r == 0){ csv = (csv + p); } else { csv = (csv + ("\n" + p)); }; } else { csv = (csv + (", " + p)); }; c++; }; r++; }; return (csv); } } }//package org.flixel
Section 112
//FlxTilemap_ImgAuto (org.flixel.FlxTilemap_ImgAuto) package org.flixel { import mx.core.*; public class FlxTilemap_ImgAuto extends BitmapAsset { } }//package org.flixel
Section 113
//FlxTilemap_ImgAutoAlt (org.flixel.FlxTilemap_ImgAutoAlt) package org.flixel { import mx.core.*; public class FlxTilemap_ImgAutoAlt extends BitmapAsset { } }//package org.flixel
Section 114
//FlxU (org.flixel.FlxU) package org.flixel { import flash.net.*; import flash.utils.*; public class FlxU { protected static var _originalSeed:Number; public static var quadTree:FlxQuadTree; protected static var _seed:Number; static var roundingError:Number = 1E-7; public static var quadTreeBounds:FlxRect; public static var quadTreeDivisions:uint = 3; public function FlxU(){ super(); } public static function random(UseGlobalSeed:Boolean=true):Number{ var random:Number; if (((UseGlobalSeed) && (!(isNaN(_seed))))){ random = randomize(_seed); _seed = mutate(_seed, random); return (random); }; return (Math.random()); } public static function mutate(Seed:Number, Mutator:Number):Number{ Seed = (Seed + Mutator); if (Seed > 1){ Seed = (Seed - int(Seed)); }; return (Seed); } public static function overlap(Object1:FlxObject, Object2:FlxObject, Callback:Function=null):Boolean{ if ((((((((Object1 == null)) || (!(Object1.exists)))) || ((Object2 == null)))) || (!(Object2.exists)))){ return (false); }; quadTree = new FlxQuadTree(quadTreeBounds.x, quadTreeBounds.y, quadTreeBounds.width, quadTreeBounds.height); quadTree.add(Object1, FlxQuadTree.A_LIST); if (Object1 === Object2){ return (quadTree.overlap(false, Callback)); }; quadTree.add(Object2, FlxQuadTree.B_LIST); return (quadTree.overlap(true, Callback)); } public static function openURL(URL:String):void{ navigateToURL(new URLRequest(URL), "_blank"); } public static function endProfile(Start:uint, Name:String="Profiler", Log:Boolean=true):uint{ var t:uint = getTimer(); if (Log){ FlxG.log((((Name + ": ") + ((t - Start) / 1000)) + "s")); }; return (t); } public static function getClass(Name:String):Class{ return ((getDefinitionByName(Name) as Class)); } public static function floor(N:Number):Number{ var n:Number = int(N); return (((N)>0) ? n : ((n)!=N) ? (n - 1) : n); } public static function solveYCollision(Object1:FlxObject, Object2:FlxObject):Boolean{ var overlap:Number; var p1hn2:Boolean; var i1:uint; var i2:uint; var ox1:Number; var oy1:Number; var ox2:Number; var oy2:Number; var r1:Number; var r2:Number; var sv1:Number; var sv2:Number; var o1:Number = Object1.colVector.y; var o2:Number = Object2.colVector.y; if (o1 == o2){ return (false); }; Object1.preCollide(Object2); Object2.preCollide(Object1); var hit:Boolean; var obj1Stopped = (o1 == 0); var obj1MoveNeg = (o1 < 0); var obj1MovePos = (o1 > 0); var obj2Stopped = (o2 == 0); var obj2MoveNeg = (o2 < 0); var obj2MovePos = (o2 > 0); var obj1Hull:FlxRect = Object1.colHullY; var obj2Hull:FlxRect = Object2.colHullY; var co1:Array = Object1.colOffsets; var co2:Array = Object2.colOffsets; var l1:uint = co1.length; var l2:uint = co2.length; p1hn2 = ((((((((((obj1Stopped) && (obj2MoveNeg))) || (((obj1MovePos) && (obj2Stopped))))) || (((obj1MovePos) && (obj2MoveNeg))))) || (((((obj1MoveNeg) && (obj2MoveNeg))) && ((((o1)>0) ? o1 : -(o1) < ((o2)>0) ? o2 : -(o2))))))) || (((((obj1MovePos) && (obj2MovePos))) && ((((o1)>0) ? o1 : -(o1) > ((o2)>0) ? o2 : -(o2)))))); if ((p1hn2) ? ((!(Object1.collideBottom)) || (!(Object2.collideTop))) : ((!(Object1.collideTop)) || (!(Object2.collideBottom)))){ return (false); }; i1 = 0; while (i1 < l1) { ox1 = co1[i1].x; oy1 = co1[i1].y; obj1Hull.x = (obj1Hull.x + ox1); obj1Hull.y = (obj1Hull.y + oy1); i2 = 0; while (i2 < l2) { ox2 = co2[i2].x; oy2 = co2[i2].y; obj2Hull.x = (obj2Hull.x + ox2); obj2Hull.y = (obj2Hull.y + oy2); if (((((((((obj1Hull.x + obj1Hull.width) < (obj2Hull.x + roundingError))) || (((obj1Hull.x + roundingError) > (obj2Hull.x + obj2Hull.width))))) || (((obj1Hull.y + obj1Hull.height) < (obj2Hull.y + roundingError))))) || (((obj1Hull.y + roundingError) > (obj2Hull.y + obj2Hull.height))))){ obj2Hull.x = (obj2Hull.x - ox2); obj2Hull.y = (obj2Hull.y - oy2); } else { if (p1hn2){ if (obj1MoveNeg){ r1 = (obj1Hull.y + Object1.colHullX.height); } else { r1 = (obj1Hull.y + obj1Hull.height); }; if (obj2MoveNeg){ r2 = obj2Hull.y; } else { r2 = ((obj2Hull.y + obj2Hull.height) - Object2.colHullX.height); }; } else { if (obj2MoveNeg){ r1 = (-(obj2Hull.y) - Object2.colHullX.height); } else { r1 = (-(obj2Hull.y) - obj2Hull.height); }; if (obj1MoveNeg){ r2 = -(obj1Hull.y); } else { r2 = ((-(obj1Hull.y) - obj1Hull.height) + Object1.colHullX.height); }; }; overlap = (r1 - r2); if ((((((overlap == 0)) || (((!(Object1.fixed)) && ((((overlap)>0) ? overlap : -(overlap) > (obj1Hull.height * 0.8))))))) || (((!(Object2.fixed)) && ((((overlap)>0) ? overlap : -(overlap) > (obj2Hull.height * 0.8))))))){ obj2Hull.x = (obj2Hull.x - ox2); obj2Hull.y = (obj2Hull.y - oy2); } else { hit = true; sv1 = Object2.velocity.y; sv2 = Object1.velocity.y; if (((!(Object1.fixed)) && (Object2.fixed))){ if (Object1._group){ Object1.reset(Object1.x, (Object1.y - overlap)); } else { Object1.y = (Object1.y - overlap); }; } else { if (((Object1.fixed) && (!(Object2.fixed)))){ if (Object2._group){ Object2.reset(Object2.x, (Object2.y + overlap)); } else { Object2.y = (Object2.y + overlap); }; } else { if (((!(Object1.fixed)) && (!(Object2.fixed)))){ overlap = (overlap / 2); if (Object1._group){ Object1.reset(Object1.x, (Object1.y - overlap)); } else { Object1.y = (Object1.y - overlap); }; if (Object2._group){ Object2.reset(Object2.x, (Object2.y + overlap)); } else { Object2.y = (Object2.y + overlap); }; sv1 = (sv1 / 2); sv2 = (sv2 / 2); }; }; }; if (p1hn2){ Object1.hitBottom(Object2, sv1); Object2.hitTop(Object1, sv2); } else { Object1.hitTop(Object2, sv1); Object2.hitBottom(Object1, sv2); }; if (((!(Object1.fixed)) && (!((overlap == 0))))){ if (p1hn2){ obj1Hull.y = (obj1Hull.y - overlap); if (((Object2.fixed) && (Object2.moves))){ sv1 = Object2.colVector.x; Object1.x = (Object1.x + sv1); obj1Hull.x = (obj1Hull.x + sv1); Object1.colHullX.x = (Object1.colHullX.x + sv1); }; } else { obj1Hull.y = (obj1Hull.y - overlap); obj1Hull.height = (obj1Hull.height + overlap); }; }; if (((!(Object2.fixed)) && (!((overlap == 0))))){ if (p1hn2){ obj2Hull.y = (obj2Hull.y + overlap); obj2Hull.height = (obj2Hull.height - overlap); } else { obj2Hull.height = (obj2Hull.height + overlap); if (((Object1.fixed) && (Object1.moves))){ sv2 = Object1.colVector.x; Object2.x = (Object2.x + sv2); obj2Hull.x = (obj2Hull.x + sv2); Object2.colHullX.x = (Object2.colHullX.x + sv2); }; }; }; obj2Hull.x = (obj2Hull.x - ox2); obj2Hull.y = (obj2Hull.y - oy2); }; }; i2++; }; obj1Hull.x = (obj1Hull.x - ox1); obj1Hull.y = (obj1Hull.y - oy1); i1++; }; return (hit); } public static function ceil(N:Number):Number{ var n:Number = int(N); return (((N)>0) ? ((n)!=N) ? (n + 1) : n : n); } public static function getAngle(X:Number, Y:Number):Number{ return (((Math.atan2(Y, X) * 180) / Math.PI)); } public static function setWorldBounds(X:Number=0, Y:Number=0, Width:Number=0, Height:Number=0, Divisions:uint=3):void{ if ((((((((X == 0)) && ((Y == 0)))) && ((Width == 0)))) && ((Height == 0)))){ X = (-128 * FlxG.width); Y = (-128 * FlxG.height); Width = (0x0100 * FlxG.width); Height = (0x0100 * FlxG.height); }; if (quadTreeBounds == null){ quadTreeBounds = new FlxRect(); }; quadTreeBounds.x = X; quadTreeBounds.y = Y; if (Width != 0){ quadTreeBounds.width = Width; }; if (Height != 0){ quadTreeBounds.height = Height; }; if (Divisions > 0){ quadTreeDivisions = Divisions; }; } public static function startProfile():uint{ return (getTimer()); } public static function set seed(Seed:Number):void{ _seed = Seed; _originalSeed = _seed; } public static function getClassName(Obj:Object, Simple:Boolean=false):String{ var s:String = getQualifiedClassName(Obj); s = s.replace("::", "."); if (Simple){ s = s.substr((s.lastIndexOf(".") + 1)); }; return (s); } public static function randomize(Seed:Number):Number{ return ((((69621 * int((Seed * 2147483647))) % 2147483647) / 2147483647)); } public static function abs(N:Number):Number{ return (((N)>0) ? N : -(N)); } public static function rotatePoint(X:Number, Y:Number, PivotX:Number, PivotY:Number, Angle:Number, P:FlxPoint=null):FlxPoint{ var radians:Number; if (P == null){ P = new FlxPoint(); }; radians = ((-(Angle) / 180) * Math.PI); var dx:Number = (X - PivotX); var dy:Number = (PivotY - Y); P.x = ((PivotX + (Math.cos(radians) * dx)) - (Math.sin(radians) * dy)); P.y = (PivotY - ((Math.sin(radians) * dx) + (Math.cos(radians) * dy))); return (P); } public static function get seed():Number{ return (_originalSeed); } public static function solveXCollision(Object1:FlxObject, Object2:FlxObject):Boolean{ var f1:Boolean; var f2:Boolean; var overlap:Number; var p1hn2:Boolean; var i1:uint; var i2:uint; var obj1Hull:FlxRect; var obj2Hull:FlxRect; var ox1:Number; var oy1:Number; var ox2:Number; var oy2:Number; var r1:Number; var r2:Number; var sv1:Number; var sv2:Number; var o1:Number = Object1.colVector.x; var o2:Number = Object2.colVector.x; if (o1 == o2){ return (false); }; Object1.preCollide(Object2); Object2.preCollide(Object1); var hit:Boolean; var obj1Stopped = (o1 == 0); var obj1MoveNeg = (o1 < 0); var obj1MovePos = (o1 > 0); var obj2Stopped = (o2 == 0); var obj2MoveNeg = (o2 < 0); var obj2MovePos = (o2 > 0); obj1Hull = Object1.colHullX; obj2Hull = Object2.colHullX; var co1:Array = Object1.colOffsets; var co2:Array = Object2.colOffsets; var l1:uint = co1.length; var l2:uint = co2.length; p1hn2 = ((((((((((obj1Stopped) && (obj2MoveNeg))) || (((obj1MovePos) && (obj2Stopped))))) || (((obj1MovePos) && (obj2MoveNeg))))) || (((((obj1MoveNeg) && (obj2MoveNeg))) && ((((o1)>0) ? o1 : -(o1) < ((o2)>0) ? o2 : -(o2))))))) || (((((obj1MovePos) && (obj2MovePos))) && ((((o1)>0) ? o1 : -(o1) > ((o2)>0) ? o2 : -(o2)))))); if ((p1hn2) ? ((!(Object1.collideRight)) || (!(Object2.collideLeft))) : ((!(Object1.collideLeft)) || (!(Object2.collideRight)))){ return (false); }; i1 = 0; while (i1 < l1) { ox1 = co1[i1].x; oy1 = co1[i1].y; obj1Hull.x = (obj1Hull.x + ox1); obj1Hull.y = (obj1Hull.y + oy1); i2 = 0; while (i2 < l2) { ox2 = co2[i2].x; oy2 = co2[i2].y; obj2Hull.x = (obj2Hull.x + ox2); obj2Hull.y = (obj2Hull.y + oy2); if (((((((((obj1Hull.x + obj1Hull.width) < (obj2Hull.x + roundingError))) || (((obj1Hull.x + roundingError) > (obj2Hull.x + obj2Hull.width))))) || (((obj1Hull.y + obj1Hull.height) < (obj2Hull.y + roundingError))))) || (((obj1Hull.y + roundingError) > (obj2Hull.y + obj2Hull.height))))){ obj2Hull.x = (obj2Hull.x - ox2); obj2Hull.y = (obj2Hull.y - oy2); } else { if (p1hn2){ if (obj1MoveNeg){ r1 = (obj1Hull.x + Object1.colHullY.width); } else { r1 = (obj1Hull.x + obj1Hull.width); }; if (obj2MoveNeg){ r2 = obj2Hull.x; } else { r2 = ((obj2Hull.x + obj2Hull.width) - Object2.colHullY.width); }; } else { if (obj2MoveNeg){ r1 = (-(obj2Hull.x) - Object2.colHullY.width); } else { r1 = (-(obj2Hull.x) - obj2Hull.width); }; if (obj1MoveNeg){ r2 = -(obj1Hull.x); } else { r2 = ((-(obj1Hull.x) - obj1Hull.width) + Object1.colHullY.width); }; }; overlap = (r1 - r2); if ((((((overlap == 0)) || (((!(Object1.fixed)) && ((((overlap)>0) ? overlap : -(overlap) > (obj1Hull.width * 0.8))))))) || (((!(Object2.fixed)) && ((((overlap)>0) ? overlap : -(overlap) > (obj2Hull.width * 0.8))))))){ obj2Hull.x = (obj2Hull.x - ox2); obj2Hull.y = (obj2Hull.y - oy2); } else { hit = true; sv1 = Object2.velocity.x; sv2 = Object1.velocity.x; if (((!(Object1.fixed)) && (Object2.fixed))){ if (Object1._group){ Object1.reset((Object1.x - overlap), Object1.y); } else { Object1.x = (Object1.x - overlap); }; } else { if (((Object1.fixed) && (!(Object2.fixed)))){ if (Object2._group){ Object2.reset((Object2.x + overlap), Object2.y); } else { Object2.x = (Object2.x + overlap); }; } else { if (((!(Object1.fixed)) && (!(Object2.fixed)))){ overlap = (overlap / 2); if (Object1._group){ Object1.reset((Object1.x - overlap), Object1.y); } else { Object1.x = (Object1.x - overlap); }; if (Object2._group){ Object2.reset((Object2.x + overlap), Object2.y); } else { Object2.x = (Object2.x + overlap); }; sv1 = (sv1 / 2); sv2 = (sv2 / 2); }; }; }; if (p1hn2){ Object1.hitRight(Object2, sv1); Object2.hitLeft(Object1, sv2); } else { Object1.hitLeft(Object2, sv1); Object2.hitRight(Object1, sv2); }; if (((!(Object1.fixed)) && (!((overlap == 0))))){ if (p1hn2){ obj1Hull.width = (obj1Hull.width - overlap); } else { obj1Hull.x = (obj1Hull.x - overlap); obj1Hull.width = (obj1Hull.width + overlap); }; Object1.colHullY.x = (Object1.colHullY.x - overlap); }; if (((!(Object2.fixed)) && (!((overlap == 0))))){ if (p1hn2){ obj2Hull.x = (obj2Hull.x + overlap); obj2Hull.width = (obj2Hull.width - overlap); } else { obj2Hull.width = (obj2Hull.width + overlap); }; Object2.colHullY.x = (Object2.colHullY.x + overlap); }; obj2Hull.x = (obj2Hull.x - ox2); obj2Hull.y = (obj2Hull.y - oy2); }; }; i2++; }; obj1Hull.x = (obj1Hull.x - ox1); obj1Hull.y = (obj1Hull.y - oy1); i1++; }; return (hit); } public static function computeVelocity(Velocity:Number, Acceleration:Number=0, Drag:Number=0, Max:Number=10000):Number{ var d:Number; if (Acceleration != 0){ Velocity = (Velocity + (Acceleration * FlxG.elapsed)); } else { if (Drag != 0){ d = (Drag * FlxG.elapsed); if ((Velocity - d) > 0){ Velocity = (Velocity - d); } else { if ((Velocity + d) < 0){ Velocity = (Velocity + d); } else { Velocity = 0; }; }; }; }; if (((!((Velocity == 0))) && (!((Max == 10000))))){ if (Velocity > Max){ Velocity = Max; } else { if (Velocity < -(Max)){ Velocity = -(Max); }; }; }; return (Velocity); } public static function collide(Object1:FlxObject, Object2:FlxObject):Boolean{ if ((((((((Object1 == null)) || (!(Object1.exists)))) || ((Object2 == null)))) || (!(Object2.exists)))){ return (false); }; quadTree = new FlxQuadTree(quadTreeBounds.x, quadTreeBounds.y, quadTreeBounds.width, quadTreeBounds.height); quadTree.add(Object1, FlxQuadTree.A_LIST); var match = (Object1 === Object2); if (!match){ quadTree.add(Object2, FlxQuadTree.B_LIST); }; var cx:Boolean = quadTree.overlap(!(match), solveXCollision); var cy:Boolean = quadTree.overlap(!(match), solveYCollision); return (((cx) || (cy))); } } }//package org.flixel
Section 115
//_activeButtonStyleStyle (_activeButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _activeButtonStyleStyle { public static function init(_activeButtonStyleStyle:IFlexModuleFactory):void{ var fbs = _activeButtonStyleStyle; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".activeButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 116
//_activeTabStyleStyle (_activeTabStyleStyle) package { import mx.core.*; import mx.styles.*; public class _activeTabStyleStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeTabStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".activeTabStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 117
//_alertButtonStyleStyle (_alertButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _alertButtonStyleStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".alertButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".alertButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 734012; }; }; } } }//package
Section 118
//_comboDropdownStyle (_comboDropdownStyle) package { import mx.core.*; import mx.styles.*; public class _comboDropdownStyle { public static function init(leading:IFlexModuleFactory):void{ var fbs = leading; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".comboDropdown"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".comboDropdown", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.shadowDirection = "center"; this.fontWeight = "normal"; this.dropShadowEnabled = true; this.leading = 0; this.backgroundColor = 0xFFFFFF; this.shadowDistance = 1; this.cornerRadius = 0; this.borderThickness = 0; this.paddingLeft = 5; this.paddingRight = 5; }; }; } } }//package
Section 119
//_dataGridStylesStyle (_dataGridStylesStyle) package { import mx.core.*; import mx.styles.*; public class _dataGridStylesStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dataGridStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".dataGridStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 120
//_dateFieldPopupStyle (_dateFieldPopupStyle) package { import mx.core.*; import mx.styles.*; public class _dateFieldPopupStyle { public static function init(_dateFieldPopupStyle.as$3:IFlexModuleFactory):void{ var fbs = _dateFieldPopupStyle.as$3; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dateFieldPopup"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".dateFieldPopup", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.dropShadowEnabled = true; this.backgroundColor = 0xFFFFFF; this.borderThickness = 0; }; }; } } }//package
Section 121
//_errorTipStyle (_errorTipStyle) package { import mx.core.*; import mx.styles.*; public class _errorTipStyle { public static function init(borderColor:IFlexModuleFactory):void{ var fbs = borderColor; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".errorTip"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".errorTip", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.borderStyle = "errorTipRight"; this.paddingTop = 4; this.borderColor = 13510953; this.color = 0xFFFFFF; this.fontSize = 9; this.shadowColor = 0; this.paddingLeft = 4; this.paddingBottom = 4; this.paddingRight = 4; }; }; } } }//package
Section 122
//_globalStyle (_globalStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _globalStyle { public static function init(horizontalGridLines:IFlexModuleFactory):void{ var fbs = horizontalGridLines; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("global"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("global", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fillColor = 0xFFFFFF; this.kerning = false; this.iconColor = 0x111111; this.textRollOverColor = 2831164; this.horizontalAlign = "left"; this.shadowCapColor = 14015965; this.backgroundAlpha = 1; this.filled = true; this.textDecoration = "none"; this.roundedBottomCorners = true; this.fontThickness = 0; this.focusBlendMode = "normal"; this.fillColors = [0xFFFFFF, 0xCCCCCC, 0xFFFFFF, 0xEEEEEE]; this.horizontalGap = 8; this.borderCapColor = 9542041; this.buttonColor = 7305079; this.indentation = 17; this.selectionDisabledColor = 0xDDDDDD; this.closeDuration = 250; this.embedFonts = false; this.paddingTop = 0; this.letterSpacing = 0; this.focusAlpha = 0.4; this.bevel = true; this.fontSize = 10; this.shadowColor = 0xEEEEEE; this.borderAlpha = 1; this.paddingLeft = 0; this.fontWeight = "normal"; this.indicatorGap = 14; this.focusSkin = HaloFocusRect; this.dropShadowEnabled = false; this.leading = 2; this.borderSkin = HaloBorder; this.fontSharpness = 0; this.modalTransparencyDuration = 100; this.borderThickness = 1; this.backgroundSize = "auto"; this.borderStyle = "inset"; this.borderColor = 12040892; this.fontAntiAliasType = "advanced"; this.errorColor = 0xFF0000; this.shadowDistance = 2; this.horizontalGridLineColor = 0xF7F7F7; this.stroked = false; this.modalTransparencyColor = 0xDDDDDD; this.cornerRadius = 0; this.verticalAlign = "top"; this.textIndent = 0; this.fillAlphas = [0.6, 0.4, 0.75, 0.65]; this.verticalGridLineColor = 14015965; this.themeColor = 40447; this.version = "3.0.0"; this.shadowDirection = "center"; this.modalTransparency = 0.5; this.repeatInterval = 35; this.openDuration = 250; this.textAlign = "left"; this.fontFamily = "Verdana"; this.textSelectedColor = 2831164; this.paddingBottom = 0; this.strokeWidth = 1; this.fontGridFitType = "pixel"; this.horizontalGridLines = false; this.useRollOver = true; this.verticalGridLines = true; this.repeatDelay = 500; this.fontStyle = "normal"; this.dropShadowColor = 0; this.focusThickness = 2; this.verticalGap = 6; this.disabledColor = 11187123; this.paddingRight = 0; this.focusRoundedCorners = "tl tr bl br"; this.borderSides = "left top right bottom"; this.disabledIconColor = 0x999999; this.modalTransparencyBlur = 3; this.color = 734012; this.selectionDuration = 250; this.highlightAlphas = [0.3, 0]; }; }; } } }//package
Section 123
//_headerDateTextStyle (_headerDateTextStyle) package { import mx.core.*; import mx.styles.*; public class _headerDateTextStyle { public static function init(bold:IFlexModuleFactory):void{ var fbs = bold; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDateText"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".headerDateText", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.textAlign = "center"; }; }; } } }//package
Section 124
//_headerDragProxyStyleStyle (_headerDragProxyStyleStyle) package { import mx.core.*; import mx.styles.*; public class _headerDragProxyStyleStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDragProxyStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".headerDragProxyStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 125
//_linkButtonStyleStyle (_linkButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _linkButtonStyleStyle { public static function init(http://adobe.com/AS3/2006/builtin:IFlexModuleFactory):void{ var fbs = http://adobe.com/AS3/2006/builtin; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".linkButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".linkButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 2; this.paddingLeft = 2; this.paddingBottom = 2; this.paddingRight = 2; }; }; } } }//package
Section 126
//_opaquePanelStyle (_opaquePanelStyle) package { import mx.core.*; import mx.styles.*; public class _opaquePanelStyle { public static function init(Object:IFlexModuleFactory):void{ var fbs = Object; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".opaquePanel"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".opaquePanel", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.borderColor = 0xFFFFFF; this.backgroundColor = 0xFFFFFF; this.headerColors = [0xE7E7E7, 0xD9D9D9]; this.footerColors = [0xE7E7E7, 0xC7C7C7]; this.borderAlpha = 1; }; }; } } }//package
Section 127
//_plainStyle (_plainStyle) package { import mx.core.*; import mx.styles.*; public class _plainStyle { public static function init(backgroundImage:IFlexModuleFactory):void{ var fbs = backgroundImage; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".plain"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".plain", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 0; this.backgroundColor = 0xFFFFFF; this.backgroundImage = ""; this.horizontalAlign = "left"; this.paddingLeft = 0; this.paddingBottom = 0; this.paddingRight = 0; }; }; } } }//package
Section 128
//_popUpMenuStyle (_popUpMenuStyle) package { import mx.core.*; import mx.styles.*; public class _popUpMenuStyle { public static function init(normal:IFlexModuleFactory):void{ var fbs = normal; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".popUpMenu"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".popUpMenu", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "normal"; this.textAlign = "left"; }; }; } } }//package
Section 129
//_richTextEditorTextAreaStyleStyle (_richTextEditorTextAreaStyleStyle) package { import mx.core.*; import mx.styles.*; public class _richTextEditorTextAreaStyleStyle { public static function init(_richTextEditorTextAreaStyleStyle:IFlexModuleFactory):void{ var fbs = _richTextEditorTextAreaStyleStyle; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".richTextEditorTextAreaStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".richTextEditorTextAreaStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 130
//_swatchPanelTextFieldStyle (_swatchPanelTextFieldStyle) package { import mx.core.*; import mx.styles.*; public class _swatchPanelTextFieldStyle { public static function init(shadowCapColor:IFlexModuleFactory):void{ var fbs = shadowCapColor; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".swatchPanelTextField"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".swatchPanelTextField", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.borderStyle = "inset"; this.borderColor = 14015965; this.highlightColor = 12897484; this.backgroundColor = 0xFFFFFF; this.shadowCapColor = 14015965; this.shadowColor = 14015965; this.paddingLeft = 5; this.buttonColor = 7305079; this.borderCapColor = 9542041; this.paddingRight = 5; }; }; } } }//package
Section 131
//_textAreaHScrollBarStyleStyle (_textAreaHScrollBarStyleStyle) package { import mx.core.*; import mx.styles.*; public class _textAreaHScrollBarStyleStyle { public static function init(_textAreaHScrollBarStyleStyle:IFlexModuleFactory):void{ var fbs = _textAreaHScrollBarStyleStyle; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaHScrollBarStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".textAreaHScrollBarStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 132
//_textAreaVScrollBarStyleStyle (_textAreaVScrollBarStyleStyle) package { import mx.core.*; import mx.styles.*; public class _textAreaVScrollBarStyleStyle { public static function init(_textAreaVScrollBarStyleStyle:IFlexModuleFactory):void{ var fbs = _textAreaVScrollBarStyleStyle; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaVScrollBarStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".textAreaVScrollBarStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 133
//_todayStyleStyle (_todayStyleStyle) package { import mx.core.*; import mx.styles.*; public class _todayStyleStyle { public static function init(color:IFlexModuleFactory):void{ var fbs = color; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".todayStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".todayStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 0xFFFFFF; this.textAlign = "center"; }; }; } } }//package
Section 134
//_weekDayStyleStyle (_weekDayStyleStyle) package { import mx.core.*; import mx.styles.*; public class _weekDayStyleStyle { public static function init(bold:IFlexModuleFactory):void{ var fbs = bold; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".weekDayStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".weekDayStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.textAlign = "center"; }; }; } } }//package
Section 135
//_windowStatusStyle (_windowStatusStyle) package { import mx.core.*; import mx.styles.*; public class _windowStatusStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStatus"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".windowStatus", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 0x666666; }; }; } } }//package
Section 136
//_windowStylesStyle (_windowStylesStyle) package { import mx.core.*; import mx.styles.*; public class _windowStylesStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".windowStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 137
//Bloom (Bloom) package { import org.flixel.*; import flash.display.*; import flash.geom.*; public class Bloom extends FlxGroup { private var _ether:FlxSprite; public function Bloom():void{ super(); _ether = new FlxSprite(); _ether.createGraphic(FlxG.width, FlxG.height, 0, true); } override public function render():void{ _ether.pixels.colorTransform(new Rectangle(0, 0, FlxG.width, FlxG.height), new ColorTransform(1.5, 1.2, 1.2, 0.75)); _ether.blend = "difference"; var tmp:BitmapData = FlxG.buffer; FlxG.buffer = _ether.pixels; super.render(); FlxG.buffer = tmp; FlxG.buffer.copyPixels(_ether.pixels, new Rectangle(0, 0, FlxG.width, FlxG.height), new Point(0, 0), null, null, true); } } }//package
Section 138
//en_US$core_properties (en_US$core_properties) package { import mx.resources.*; public class en_US$core_properties extends ResourceBundle { public function en_US$core_properties(){ super("en_US", "core"); } override protected function getContent():Object{ var _local1:Object = {multipleChildSets_ClassAndInstance:"Multiple sets of visual children have been specified for this component (component definition and component instance).", truncationIndicator:"...", notExecuting:"Repeater is not executing.", versionAlreadyRead:"Compatibility version has already been read.", multipleChildSets_ClassAndSubclass:"Multiple sets of visual children have been specified for this component (base component definition and derived component definition).", viewSource:"View Source", badFile:"File does not exist.", stateUndefined:"Undefined state '{0}'.", versionAlreadySet:"Compatibility version has already been set."}; return (_local1); } } }//package
Section 139
//en_US$skins_properties (en_US$skins_properties) package { import mx.resources.*; public class en_US$skins_properties extends ResourceBundle { public function en_US$skins_properties(){ super("en_US", "skins"); } override protected function getContent():Object{ var _local1:Object = {notLoaded:"Unable to load '{0}'."}; return (_local1); } } }//package
Section 140
//en_US$styles_properties (en_US$styles_properties) package { import mx.resources.*; public class en_US$styles_properties extends ResourceBundle { public function en_US$styles_properties(){ super("en_US", "styles"); } override protected function getContent():Object{ var _local1:Object = {unableToLoad:"Unable to load style({0}): {1}."}; return (_local1); } } }//package
Section 141
//Enemy2 (Enemy2) package { import org.flixel.*; public class Enemy2 extends FlxSprite { private var _player:Player; private var zombieKillSound:Class; private var myState1; private var _bloodGibs:FlxEmitter; private var _playStart:Boolean;// = false private var _jump_power:int;// = 200 private var zombieHurt:Class; private var Blood:Class; private var _inGroup:FlxGroup; private var _can_jump:Boolean;// = true private var _zombieGibs:FlxEmitter; private var ImgPlayer:Class; private var _hurt_counter:Number;// = 0 private var _max_health:int;// = 10 private var _last_jump:Number;// = 0 private var zombieGibs:Class; private var _move_speed:int;// = 400 public function Enemy2(X:Number, Y:Number, ThePlayer:Player, MyGroup:FlxGroup, myState):void{ ImgPlayer = Enemy2_ImgPlayer; Blood = Enemy2_Blood; zombieGibs = Enemy2_zombieGibs; zombieKillSound = Enemy2_zombieKillSound; zombieHurt = Enemy2_zombieHurt; _bloodGibs = new FlxEmitter(); _zombieGibs = new FlxEmitter(); super(X, Y); myState1 = myState; _inGroup = MyGroup; _bloodGibs.setXSpeed(-200, 200); _bloodGibs.setYSpeed(-300, 0); _bloodGibs.setRotation(0, 0); _bloodGibs.createSprites(Blood, 20, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodGibs)); _zombieGibs.setXSpeed(-200, 200); _zombieGibs.setYSpeed(-300, 0); _zombieGibs.setRotation(0, 0); _zombieGibs.createSprites(zombieGibs, 20, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_zombieGibs)); loadGraphic(ImgPlayer, true, true, 24, 39); _player = ThePlayer; maxVelocity.x = 100; maxVelocity.y = 200; health = 5; acceleration.y = 420; drag.x = 300; width = 16; height = 32; offset.y = 7; addAnimation("normal", [0, 1, 0, 2], 10); addAnimation("jump", [1]); addAnimation("attack", [1, 2], 10); addAnimation("stopped", [0]); addAnimation("hurt", [0, 1], 10); addAnimation("dead", [0, 0, 0], 5); addAnimation("alive", [3, 4, 5, 6, 7], (Math.random() * 5), false); play("alive", false); addAnimationCallback(testFunction); var myNumber:Number = Math.round((Math.random() * 1)); if (myNumber == 1){ facing = LEFT; } else { facing = RIGHT; }; } override public function update():void{ var randomNum:Number; if (_playStart == true){ if (y > 600){ kill(); }; if (_hurt_counter > 0){ _hurt_counter = (_hurt_counter - (FlxG.elapsed * 3)); }; if (_last_jump > 0){ _last_jump = (_last_jump - FlxG.elapsed); }; if (((!((velocity.y == 0))) || ((_last_jump > 0)))){ _can_jump = false; }; if (_player.x < x){ facing = LEFT; velocity.x = (velocity.x - (_move_speed * FlxG.elapsed)); } else { facing = RIGHT; velocity.x = (velocity.x + (_move_speed * FlxG.elapsed)); }; if ((((_player.y < y)) && (_can_jump))){ randomNum = (Math.random() * 10); if (randomNum <= 1){ velocity.y = -(_jump_power); _last_jump = (Math.random() * 10); _can_jump = false; }; }; if (_hurt_counter > 0){ play("hurt"); } else { if (velocity.y != 0){ play("jump"); } else { if (velocity.x == 0){ play("stopped"); } else { play("normal"); }; }; }; }; super.update(); } private function testFunction($animationName:String, $frameNumber:uint, $frameIndex:uint):void{ if (((($animationName == "alive")) && (finished))){ _playStart = true; }; } override public function kill():void{ var myNumber:Number = (Math.random() * 1000); if (myNumber < 50){ myState1._heartGroup.add(new Heart(this.x, this.y)); }; FlxG.play(zombieKillSound); _bloodGibs.at(this); _bloodGibs.start(true, 1, 20); _zombieGibs.at(this); _zombieGibs.start(true, 2, 20); if (dead){ return; }; FlxG.score = (FlxG.score + 10); super.kill(); } override public function hurt(Damage:Number):void{ FlxG.play(zombieHurt); var _bloodSpray:FlxEmitter = new FlxEmitter(); if (facing == RIGHT){ _bloodSpray.setXSpeed(0, 200); _bloodSpray.setYSpeed(-100, 200); }; if (facing == LEFT){ _bloodSpray.setXSpeed(-200, 0); _bloodSpray.setYSpeed(-100, 200); }; _bloodSpray.setRotation(0, 0); _bloodSpray.createSprites(Blood, 3, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodSpray)); _bloodSpray.x = (x + 12); _bloodSpray.y = (y + 20); _bloodSpray.start(true, 1, 3); _hurt_counter = 1; return (super.hurt(Damage)); } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ _can_jump = true; return (super.hitBottom(Contact, Velocity)); } } }//package
Section 142
//Enemy2_Blood (Enemy2_Blood) package { import mx.core.*; public class Enemy2_Blood extends BitmapAsset { } }//package
Section 143
//Enemy2_ImgPlayer (Enemy2_ImgPlayer) package { import mx.core.*; public class Enemy2_ImgPlayer extends BitmapAsset { } }//package
Section 144
//Enemy2_zombieGibs (Enemy2_zombieGibs) package { import mx.core.*; public class Enemy2_zombieGibs extends BitmapAsset { } }//package
Section 145
//Enemy2_zombieHurt (Enemy2_zombieHurt) package { import mx.core.*; public class Enemy2_zombieHurt extends SoundAsset { } }//package
Section 146
//Enemy2_zombieKillSound (Enemy2_zombieKillSound) package { import mx.core.*; public class Enemy2_zombieKillSound extends SoundAsset { } }//package
Section 147
//Enemy3 (Enemy3) package { import org.flixel.*; public class Enemy3 extends FlxSprite { private var _player:Player; private var zombieKillSound:Class; private var myState1; private var _bloodGibs:FlxEmitter; private var _playStart:Boolean;// = false private var _jump_power:int;// = 200 private var zombieHurt:Class; private var Blood:Class; private var _inGroup:FlxGroup; private var _can_jump:Boolean;// = true private var _zombieGibs:FlxEmitter; private var ImgPlayer:Class; private var _hurt_counter:Number;// = 0 private var _max_health:int;// = 10 private var _last_jump:Number;// = 0 private var zombieGibs:Class; private var _move_speed:int;// = 400 public function Enemy3(X:Number, Y:Number, ThePlayer:Player, MyGroup:FlxGroup, myState):void{ ImgPlayer = Enemy3_ImgPlayer; Blood = Enemy3_Blood; zombieGibs = Enemy3_zombieGibs; zombieKillSound = Enemy3_zombieKillSound; zombieHurt = Enemy3_zombieHurt; _zombieGibs = new FlxEmitter(); _bloodGibs = new FlxEmitter(); super(X, Y); myState1 = myState; _inGroup = MyGroup; _zombieGibs.setXSpeed(-200, 200); _zombieGibs.setYSpeed(-300, 0); _zombieGibs.setRotation(0, 0); _zombieGibs.createSprites(zombieGibs, 20, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_zombieGibs)); _bloodGibs.setXSpeed(-200, 200); _bloodGibs.setYSpeed(-300, 0); _bloodGibs.setRotation(0, 0); _bloodGibs.createSprites(Blood, 20, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodGibs)); loadGraphic(ImgPlayer, true, true, 18, 36); _player = ThePlayer; maxVelocity.x = 100; maxVelocity.y = 200; health = 5; acceleration.y = 420; drag.x = 300; width = 16; height = 32; offset.y = 4; addAnimation("normal", [0, 1, 0, 2], 10); addAnimation("jump", [2]); addAnimation("attack", [1, 2], 10); addAnimation("stopped", [0]); addAnimation("hurt", [0, 1], 10); addAnimation("dead", [0, 0, 0], 5); addAnimation("alive", [3, 4, 5, 6, 7], (Math.random() * 5), false); play("alive", false); addAnimationCallback(testFunction); var myNumber:Number = Math.round((Math.random() * 1)); if (myNumber == 1){ facing = LEFT; } else { facing = RIGHT; }; } override public function update():void{ var randomNum:Number; if (_playStart == true){ if (_hurt_counter > 0){ _hurt_counter = (_hurt_counter - (FlxG.elapsed * 3)); }; if (_last_jump > 0){ _last_jump = (_last_jump - FlxG.elapsed); }; if (((!((velocity.y == 0))) || ((_last_jump > 0)))){ _can_jump = false; }; if (_player.x < x){ facing = LEFT; velocity.x = (velocity.x - (_move_speed * FlxG.elapsed)); } else { facing = RIGHT; velocity.x = (velocity.x + (_move_speed * FlxG.elapsed)); }; if ((((_player.y < y)) && (_can_jump))){ randomNum = (Math.random() * 10); if (randomNum <= 1){ velocity.y = -(_jump_power); _last_jump = (Math.random() * 10); _can_jump = false; }; }; if (_hurt_counter > 0){ play("hurt"); } else { if (velocity.y != 0){ play("jump"); } else { if (velocity.x == 0){ play("stopped"); } else { play("normal"); }; }; }; }; super.update(); } private function testFunction($animationName:String, $frameNumber:uint, $frameIndex:uint):void{ if (((($animationName == "alive")) && (finished))){ _playStart = true; }; } override public function kill():void{ var myNumber:Number = (Math.random() * 1000); if (myNumber < 50){ myState1._heartGroup.add(new Heart(this.x, this.y)); }; FlxG.play(zombieKillSound); _bloodGibs.at(this); _bloodGibs.start(true, 1, 20); _zombieGibs.at(this); _zombieGibs.start(true, 2, 20); if (dead){ return; }; FlxG.score = (FlxG.score + 10); super.kill(); } override public function hurt(Damage:Number):void{ FlxG.play(zombieHurt); var _bloodSpray:FlxEmitter = new FlxEmitter(); if (facing == RIGHT){ _bloodSpray.setXSpeed(0, 200); _bloodSpray.setYSpeed(-100, 200); }; if (facing == LEFT){ _bloodSpray.setXSpeed(-200, 0); _bloodSpray.setYSpeed(-100, 200); }; _bloodSpray.setRotation(0, 0); _bloodSpray.createSprites(Blood, 3, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodSpray)); _bloodSpray.x = (x + 12); _bloodSpray.y = (y + 20); _bloodSpray.start(true, 1, 3); _hurt_counter = 1; return (super.hurt(Damage)); } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ _can_jump = true; return (super.hitBottom(Contact, Velocity)); } } }//package
Section 148
//Enemy3_Blood (Enemy3_Blood) package { import mx.core.*; public class Enemy3_Blood extends BitmapAsset { } }//package
Section 149
//Enemy3_ImgPlayer (Enemy3_ImgPlayer) package { import mx.core.*; public class Enemy3_ImgPlayer extends BitmapAsset { } }//package
Section 150
//Enemy3_zombieGibs (Enemy3_zombieGibs) package { import mx.core.*; public class Enemy3_zombieGibs extends BitmapAsset { } }//package
Section 151
//Enemy3_zombieHurt (Enemy3_zombieHurt) package { import mx.core.*; public class Enemy3_zombieHurt extends SoundAsset { } }//package
Section 152
//Enemy3_zombieKillSound (Enemy3_zombieKillSound) package { import mx.core.*; public class Enemy3_zombieKillSound extends SoundAsset { } }//package
Section 153
//Enemy4 (Enemy4) package { import org.flixel.*; public class Enemy4 extends FlxSprite { private var _player:Player; private var zombieKillSound:Class; private var myState1; private var _bloodGibs:FlxEmitter; private var _playStart:Boolean;// = false private var _jump_power:int;// = 150 private var zombieHurt:Class; private var Blood:Class; private var _inGroup:FlxGroup; private var _can_jump:Boolean;// = true private var _eStars:FlxGroup; private var ImgPlayer:Class; private var _hurt_counter:Number;// = 0 private var _attack_counter:Number;// = 0 private var _max_health:int;// = 10 private var _last_jump:Number;// = 0 private var zombieGibs:Class; private var _move_speed:int;// = 100 public function Enemy4(X:Number, Y:Number, ThePlayer:Player, MyGroup:FlxGroup, EnemyStars:FlxGroup, myState):void{ ImgPlayer = Enemy4_ImgPlayer; Blood = Enemy4_Blood; zombieGibs = Enemy4_zombieGibs; zombieKillSound = Enemy4_zombieKillSound; zombieHurt = Enemy4_zombieHurt; _bloodGibs = new FlxEmitter(); super(X, Y); myState1 = myState; _eStars = EnemyStars; _inGroup = MyGroup; _bloodGibs.setXSpeed(-200, 200); _bloodGibs.setYSpeed(-300, 0); _bloodGibs.setRotation(0, 0); _bloodGibs.createSprites(Blood, 10, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodGibs)); loadGraphic(ImgPlayer, true, true, 18, 22); _player = ThePlayer; maxVelocity.x = 50; maxVelocity.y = 300; health = 2; acceleration.x = 0.001; acceleration.y = 420; drag.x = 300; width = 18; height = 22; addAnimation("normal", [1], 5); addAnimation("jump", [0], 1); addAnimation("attack", [3, 2], 6); addAnimation("stopped", [1]); addAnimation("hurt", [3, 2], 5); addAnimation("dead", [0, 0, 0], 5); addAnimation("alive", [0], 20, false); play("alive", false); addAnimationCallback(testFunction); var myNumber:Number = Math.round((Math.random() * 1)); if (myNumber == 1){ facing = LEFT; } else { facing = RIGHT; }; } override public function update():void{ if (_playStart == true){ if (_attack_counter > 0){ _attack_counter = (_attack_counter - (FlxG.elapsed * 3)); }; if ((((((_attack_counter <= 0)) && (((_player.y + 6) > (y - 1))))) && (((_player.y + 6) < (y + 1))))){ _attack_counter = (Math.random() * 11); }; if (_hurt_counter > 0){ _hurt_counter = (_hurt_counter - (FlxG.elapsed * 3)); }; if (_last_jump > 0){ _last_jump = (_last_jump - FlxG.elapsed); }; if (((!((velocity.y == 0))) || ((_last_jump > 0)))){ _can_jump = false; }; if ((((((((_player.x < x)) && (((_player.x - x) > -200)))) && ((_player.y < (y + 100))))) && ((_player.y > (y - 100))))){ facing = LEFT; velocity.x = (velocity.x - (_move_speed * FlxG.elapsed)); } else { if ((((((((x < _player.x)) && (((x - _player.x) > -200)))) && ((_player.y < (y + 100))))) && ((_player.y > (y - 100))))){ facing = RIGHT; velocity.x = (velocity.x + (_move_speed * FlxG.elapsed)); } else { velocity.x = 0; }; }; if (((((_player.y + 6) < y)) && (_can_jump))){ velocity.y = -(_jump_power); _last_jump = 2; _can_jump = false; }; if (_hurt_counter > 0){ play("hurt"); } else { if (_attack_counter >= 8){ play("attack"); } else { if (velocity.y != 0){ play("jump"); } else { if (velocity.x == 0){ play("stopped"); } else { play("normal"); }; }; }; }; }; super.update(); } private function testFunction($animationName:String, $frameNumber:uint, $frameIndex:uint):void{ if (((($animationName == "alive")) && (finished))){ _playStart = true; }; if (((($animationName == "attack")) && (($frameNumber == 0)))){ throwStar(facing); }; } private function throwStar(dir:uint):void{ var XVelocity:Number; var i:uint; if (finished){ if (dir == RIGHT){ XVelocity = 150; } else { XVelocity = -150; }; i = 0; while (i < _eStars.members.length) { if (!_eStars.members[i].exists){ _eStars.members[i].resetStar((x + 12), (y + 13), XVelocity, 0, facing); return; }; i++; }; }; } override public function kill():void{ var myNumber:Number = (Math.random() * 1000); if (myNumber < 50){ myState1._heartGroup.add(new Heart(this.x, this.y)); }; FlxG.play(zombieKillSound); _bloodGibs.at(this); _bloodGibs.start(true, 0.5, 10); if (dead){ return; }; FlxG.score = (FlxG.score + 10); super.kill(); } override public function hurt(Damage:Number):void{ FlxG.play(zombieHurt); var _bloodSpray:FlxEmitter = new FlxEmitter(); if (facing == RIGHT){ _bloodSpray.setXSpeed(0, 200); _bloodSpray.setYSpeed(-100, 200); }; if (facing == LEFT){ _bloodSpray.setXSpeed(-200, 0); _bloodSpray.setYSpeed(-100, 200); }; _bloodSpray.setRotation(0, 0); _bloodSpray.createSprites(Blood, 3, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodSpray)); _bloodSpray.x = (x + 12); _bloodSpray.y = (y + 20); _bloodSpray.start(true, 1, 3); _hurt_counter = 1; return (super.hurt(Damage)); } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ _can_jump = true; return (super.hitBottom(Contact, Velocity)); } } }//package
Section 154
//Enemy4_Blood (Enemy4_Blood) package { import mx.core.*; public class Enemy4_Blood extends BitmapAsset { } }//package
Section 155
//Enemy4_ImgPlayer (Enemy4_ImgPlayer) package { import mx.core.*; public class Enemy4_ImgPlayer extends BitmapAsset { } }//package
Section 156
//Enemy4_zombieGibs (Enemy4_zombieGibs) package { import mx.core.*; public class Enemy4_zombieGibs extends BitmapAsset { } }//package
Section 157
//Enemy4_zombieHurt (Enemy4_zombieHurt) package { import mx.core.*; public class Enemy4_zombieHurt extends SoundAsset { } }//package
Section 158
//Enemy4_zombieKillSound (Enemy4_zombieKillSound) package { import mx.core.*; public class Enemy4_zombieKillSound extends SoundAsset { } }//package
Section 159
//Enemy5 (Enemy5) package { import org.flixel.*; public class Enemy5 extends FlxSprite { private var _player:Player; private var _canPound:Boolean;// = false private var zombieKillSound:Class; private var myState1; private var _bloodGibs:FlxEmitter; private var _playStart:Boolean;// = false private var _jump_power:int;// = 200 private var zombieHurt:Class; private var Growl:Class; private var Blood:Class; private var _inGroup:FlxGroup; private var _can_jump:Boolean;// = true private var _zombieGibs:FlxEmitter; private var ImgPlayer:Class; private var _hurt_counter:Number;// = 0 private var _max_health:int;// = 10 private var _last_jump:Number;// = 0 private var zombieGibs:Class; private var _poundGround:Number;// = 20 private var _move_speed:int;// = 400 public function Enemy5(X:Number, Y:Number, ThePlayer:Player, MyGroup:FlxGroup, myState):void{ ImgPlayer = Enemy5_ImgPlayer; Blood = Enemy5_Blood; zombieGibs = Enemy5_zombieGibs; zombieKillSound = Enemy5_zombieKillSound; zombieHurt = Enemy5_zombieHurt; Growl = Enemy5_Growl; _zombieGibs = new FlxEmitter(); _bloodGibs = new FlxEmitter(); super(X, Y); myState1 = myState; _inGroup = MyGroup; loadGraphic(ImgPlayer, true, true, 44, 59); _player = ThePlayer; maxVelocity.x = 100; maxVelocity.y = 200; health = 20; acceleration.y = 420; drag.x = 300; width = 44; height = 59; addAnimation("normal", [0, 1, 0, 1], 10); addAnimation("jump", [2]); addAnimation("attack", [1, 2], 5); addAnimation("attack1", [2, 3, 2, 3], 5); addAnimation("stopped", [0]); addAnimation("hurt", [0, 1], 10); addAnimation("dead", [0, 0, 0], 5); addAnimation("alive", [0], 2, false); play("alive", false); _bloodGibs.setXSpeed(-200, 200); _bloodGibs.setYSpeed(-300, 0); _bloodGibs.setRotation(0, 0); _bloodGibs.createSprites(Blood, 25, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodGibs)); _zombieGibs.setXSpeed(-200, 200); _zombieGibs.setYSpeed(-300, 0); _zombieGibs.setRotation(0, 0); _zombieGibs.createSprites(zombieGibs, 10, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_zombieGibs)); addAnimationCallback(testFunction); var myNumber:Number = Math.round((Math.random() * 1)); if (myNumber == 1){ facing = LEFT; } else { facing = RIGHT; }; } override public function update():void{ var randomNum:Number; if (_playStart == true){ if (_poundGround >= 0){ _poundGround = (_poundGround - (FlxG.elapsed * 3)); }; if (_poundGround <= 0){ _canPound = true; }; if (_hurt_counter > 0){ _hurt_counter = (_hurt_counter - (FlxG.elapsed * 3)); }; if (_last_jump > 0){ _last_jump = (_last_jump - FlxG.elapsed); }; if (((((!((velocity.y == 0))) || ((_last_jump > 0)))) || ((_canPound == true)))){ _can_jump = false; }; if (_player.x < x){ facing = LEFT; velocity.x = (velocity.x - (_move_speed * FlxG.elapsed)); } else { facing = RIGHT; velocity.x = (velocity.x + (_move_speed * FlxG.elapsed)); }; if ((((_player.y < y)) && (_can_jump))){ randomNum = (Math.random() * 10); if (randomNum <= 1){ velocity.y = -(_jump_power); _last_jump = (Math.random() * 10); _can_jump = false; }; }; if (_hurt_counter > 0){ play("hurt"); } else { if (velocity.y != 0){ play("jump"); } else { if ((((((_player.x < (x + 100))) && ((_player.x > (x - 100))))) && ((_canPound == false)))){ play("attack"); } else { if (_canPound == true){ play("attack1"); _playStart = false; } else { if (_canPound == false){ play("normal"); }; }; }; }; }; }; super.update(); } private function testFunction($animationName:String, $frameNumber:uint, $frameIndex:uint):void{ if (((($animationName == "alive")) && (finished))){ _playStart = true; }; if (((($animationName == "attack1")) && (finished))){ _playStart = true; _poundGround = 20; myState1._rockDropper.start(true, 3, 20); myState1._rockDropper1.start(true, 3, 10); }; if ($animationName == "attack1"){ FlxG.quake.start(0.02, 0.5); FlxG.play(Growl); _canPound = false; }; } override public function kill():void{ var myNumber:Number = (Math.random() * 1000); if (myNumber < 50){ myState1._heartGroup.add(new Heart(this.x, this.y)); }; FlxG.play(zombieKillSound); _zombieGibs.at(this); _zombieGibs.start(true, 3, 10); _bloodGibs.at(this); _bloodGibs.start(true, 1, 25); if (dead){ return; }; FlxG.score = (FlxG.score + 10); super.kill(); } override public function hurt(Damage:Number):void{ FlxG.play(zombieHurt); var _bloodSpray:FlxEmitter = new FlxEmitter(); if (facing == RIGHT){ _bloodSpray.setXSpeed(0, 200); _bloodSpray.setYSpeed(-100, 200); }; if (facing == LEFT){ _bloodSpray.setXSpeed(-200, 0); _bloodSpray.setYSpeed(-100, 200); }; _bloodSpray.setRotation(0, 0); _bloodSpray.createSprites(Blood, 6, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodSpray)); _bloodSpray.x = (x + 12); _bloodSpray.y = (y + 20); _bloodSpray.start(true, 1, 6); _hurt_counter = 1; return (super.hurt(Damage)); } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ _can_jump = true; return (super.hitBottom(Contact, Velocity)); } } }//package
Section 160
//Enemy5_Blood (Enemy5_Blood) package { import mx.core.*; public class Enemy5_Blood extends BitmapAsset { } }//package
Section 161
//Enemy5_Growl (Enemy5_Growl) package { import mx.core.*; public class Enemy5_Growl extends SoundAsset { } }//package
Section 162
//Enemy5_ImgPlayer (Enemy5_ImgPlayer) package { import mx.core.*; public class Enemy5_ImgPlayer extends BitmapAsset { } }//package
Section 163
//Enemy5_zombieGibs (Enemy5_zombieGibs) package { import mx.core.*; public class Enemy5_zombieGibs extends BitmapAsset { } }//package
Section 164
//Enemy5_zombieHurt (Enemy5_zombieHurt) package { import mx.core.*; public class Enemy5_zombieHurt extends SoundAsset { } }//package
Section 165
//Enemy5_zombieKillSound (Enemy5_zombieKillSound) package { import mx.core.*; public class Enemy5_zombieKillSound extends SoundAsset { } }//package
Section 166
//Enemy6 (Enemy6) package { import org.flixel.*; public class Enemy6 extends FlxSprite { private var _player:Player; private var zombieKillSound:Class; private var myState1; private var _bloodGibs:FlxEmitter; private var _playStart:Boolean;// = false private var _jump_power:int;// = 200 private var zombieHurt:Class; private var Blood:Class; private var _inGroup:FlxGroup; private var _can_jump:Boolean;// = true private var _zombieGibs:FlxEmitter; private var ImgPlayer:Class; private var _heartDrop:FlxSprite; private var _batMove:Number; private var _hurt_counter:Number;// = 0 private var _myChecker:Number;// = 4 private var _max_health:int;// = 10 private var _last_jump:Number;// = 0 private var zombieGibs:Class; private var _move_speed:int;// = 400 public function Enemy6(X:Number, Y:Number, ThePlayer:Player, MyGroup:FlxGroup, myState):void{ ImgPlayer = Enemy6_ImgPlayer; Blood = Enemy6_Blood; zombieGibs = Enemy6_zombieGibs; zombieKillSound = Enemy6_zombieKillSound; zombieHurt = Enemy6_zombieHurt; _bloodGibs = new FlxEmitter(); _zombieGibs = new FlxEmitter(); _batMove = (Math.random() * 3); super(X, Y); myState1 = myState; _inGroup = MyGroup; _bloodGibs.setXSpeed(-200, 200); _bloodGibs.setYSpeed(-300, 0); _bloodGibs.setRotation(0, 0); _bloodGibs.createSprites(Blood, 10, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodGibs)); _zombieGibs.setXSpeed(-200, 200); _zombieGibs.setYSpeed(-300, 0); _zombieGibs.setRotation(0, 0); _zombieGibs.createSprites(zombieGibs, 3, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_zombieGibs)); loadGraphic(ImgPlayer, true, true, 23, 7); _player = ThePlayer; maxVelocity.x = 100; maxVelocity.y = 100; health = 1; drag.x = 1; drag.y = 1; width = 10; height = 15; addAnimation("normal", [0, 1], 15); addAnimation("jump", [1]); addAnimation("attack", [1, 0], 10); addAnimation("stopped", [0]); addAnimation("hurt", [0, 1], 10); addAnimation("dead", [0, 0, 0], 5); addAnimation("alive", [2, 3, 2, 3], 2, false); addAnimation("sleeping", [2, 3, 2, 3], 2, false); play("sleeping"); var myNumber:Number = Math.round((Math.random() * 1)); if (myNumber == 1){ facing = LEFT; } else { facing = RIGHT; }; addAnimationCallback(testFunction); } override public function hitLeft(Contact:FlxObject, Velocity:Number):void{ velocity.x = (velocity.x + 50); return (super.hitLeft(Contact, Velocity)); } override public function hitTop(Contact:FlxObject, Velocity:Number):void{ return (super.hitTop(Contact, 20)); } private function batMove():void{ _batMove = (Math.random() * 5); velocity.x = (velocity.x + ((Math.random() * 800) - 400)); velocity.y = (velocity.y + ((Math.random() * 800) - 400)); } override public function update():void{ if (_myChecker > 0){ _myChecker = (_myChecker - FlxG.elapsed); }; if (_myChecker <= 0){ _myChecker = 1; checkForPlayer(); }; if (_playStart == true){ if (_batMove > 0){ _batMove = (_batMove - (FlxG.elapsed * 3)); }; if (_batMove <= 0){ batMove(); }; if (_hurt_counter > 0){ _hurt_counter = (_hurt_counter - (FlxG.elapsed * 3)); }; if (_player.x < x){ facing = LEFT; velocity.x = (velocity.x - (_move_speed * FlxG.elapsed)); } else { facing = RIGHT; velocity.x = (velocity.x + (_move_speed * FlxG.elapsed)); }; if ((_player.y + 10) < y){ velocity.y = (velocity.y - ((_move_speed * FlxG.elapsed) / 1.5)); } else { if ((_player.y + 10) > y){ velocity.y = (velocity.y + ((_move_speed * FlxG.elapsed) / 1.5)); }; }; if (_hurt_counter > 0){ play("hurt"); } else { if (velocity.x == 0){ play("stopped"); } else { play("normal"); }; }; } else { velocity.x = 0; }; super.update(); } private function testFunction($animationName:String, $frameNumber:uint, $frameIndex:uint):void{ if (((($animationName == "alive")) && (finished))){ _playStart = true; }; } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ return (super.hitBottom(Contact, -20)); } override public function hitRight(Contact:FlxObject, Velocity:Number):void{ velocity.x = (velocity.x - 50); return (super.hitRight(Contact, Velocity)); } private function checkForPlayer():void{ if ((((_player.x > (x - 200))) && ((_player.x < (x + 200))))){ if (_player.y > y){ play("alive"); }; } else { play("sleeping"); }; } override public function hurt(Damage:Number):void{ FlxG.play(zombieHurt); var _bloodSpray:FlxEmitter = new FlxEmitter(); if (facing == RIGHT){ _bloodSpray.setXSpeed(0, 200); _bloodSpray.setYSpeed(-100, 200); }; if (facing == LEFT){ _bloodSpray.setXSpeed(-200, 0); _bloodSpray.setYSpeed(-100, 200); }; _bloodSpray.setRotation(0, 0); _bloodSpray.createSprites(Blood, 3, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodSpray)); _bloodSpray.x = (x + 12); _bloodSpray.y = (y + 5); _bloodSpray.start(true, 1, 3); _hurt_counter = 1; return (super.hurt(Damage)); } override public function kill():void{ var myNumber:Number = (Math.random() * 1000); if (myNumber < 50){ myState1._heartGroup.add(new Heart(this.x, this.y)); }; FlxG.play(zombieKillSound); _bloodGibs.at(this); _bloodGibs.start(true, 1, 10); _zombieGibs.at(this); _zombieGibs.start(true, 2, 3); if (dead){ return; }; FlxG.score = (FlxG.score + 10); super.kill(); } } }//package
Section 167
//Enemy6_Blood (Enemy6_Blood) package { import mx.core.*; public class Enemy6_Blood extends BitmapAsset { } }//package
Section 168
//Enemy6_ImgPlayer (Enemy6_ImgPlayer) package { import mx.core.*; public class Enemy6_ImgPlayer extends BitmapAsset { } }//package
Section 169
//Enemy6_zombieGibs (Enemy6_zombieGibs) package { import mx.core.*; public class Enemy6_zombieGibs extends BitmapAsset { } }//package
Section 170
//Enemy6_zombieHurt (Enemy6_zombieHurt) package { import mx.core.*; public class Enemy6_zombieHurt extends SoundAsset { } }//package
Section 171
//Enemy6_zombieKillSound (Enemy6_zombieKillSound) package { import mx.core.*; public class Enemy6_zombieKillSound extends SoundAsset { } }//package
Section 172
//Game (Game) package { import org.flixel.*; public class Game extends FlxGame { public static var _player:Player; public function Game():void{ super(471, 240, MenuState, 2); } } }//package
Section 173
//Grenade (Grenade) package { import org.flixel.*; public class Grenade extends FlxSprite { private var lifeCounter:Number; private var Explode:Class; private var Dink:Class; private var myState1; private var ImgStar:Class; private var ImgSpark:Class; private var _inGroup:FlxGroup; public function Grenade(X:Number, Y:Number, XVelocity:Number, YVelocity:Number, myGroup:FlxGroup, myState):void{ ImgStar = Grenade_ImgStar; ImgSpark = Grenade_ImgSpark; Dink = Grenade_Dink; Explode = Grenade_Explode; super(X, Y); myState1 = myState; lifeCounter = 5; loadGraphic(ImgStar, true, true, 3, 4); _inGroup = myGroup; acceleration.y = -400; acceleration.x = 400; drag.x = 80; drag.y = 200; maxVelocity.x = 1000; maxVelocity.y = 200; angularVelocity = 100; width = 3; height = 4; addAnimation("normal", [0]); exists = false; } override public function kill():void{ FlxG.play(Explode); velocity.x = 0; velocity.y = 0; var _bigGibs:FlxEmitter = new FlxEmitter(); _bigGibs.setXSpeed(-100, 100); _bigGibs.gravity = -20; _bigGibs.setYSpeed(-150, 150); _bigGibs.setRotation(0, 0); _bigGibs.createSprites(ImgSpark, 50, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bigGibs)); _bigGibs.at(this); _bigGibs.start(true, 0.9, 50); super.kill(); } override public function hitRight(Contact:FlxObject, Velocity:Number):void{ this.velocity.x = (-(this.velocity.x) / 1.3); FlxG.play(Dink); } override public function update():void{ lifeCounter = (lifeCounter - (FlxG.elapsed * 3)); if (lifeCounter <= 0){ kill(); }; if (acceleration.x > 0){ acceleration.x = (acceleration.x - drag.x); } else { acceleration.x = 0; }; if (acceleration.y <= 400){ acceleration.y = (acceleration.y + drag.y); } else { acceleration.y = 0; }; super.update(); } override public function hitTop(Contact:FlxObject, Velocity:Number):void{ this.velocity.y = (-(this.velocity.y) / 1.3); FlxG.play(Dink); } override public function hitLeft(Contact:FlxObject, Velocity:Number):void{ this.velocity.x = (-(this.velocity.x) / 1.3); FlxG.play(Dink); } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ if ((((this.velocity.y > 0)) && ((this.velocity.y < 20)))){ this.velocity.y = 0; } else { this.velocity.y = (-(this.velocity.y) / 2); FlxG.play(Dink); }; } public function resetGrenade(X:Number, Y:Number, XVelocity:Number, YVelocity:Number):void{ x = X; y = Y; dead = false; exists = true; visible = true; velocity.x = (XVelocity + myState1._player.velocity.x); velocity.y = YVelocity; play("normal"); lifeCounter = 5; } } }//package
Section 174
//Grenade_Dink (Grenade_Dink) package { import mx.core.*; public class Grenade_Dink extends SoundAsset { } }//package
Section 175
//Grenade_Explode (Grenade_Explode) package { import mx.core.*; public class Grenade_Explode extends SoundAsset { } }//package
Section 176
//Grenade_ImgSpark (Grenade_ImgSpark) package { import mx.core.*; public class Grenade_ImgSpark extends BitmapAsset { } }//package
Section 177
//Grenade_ImgStar (Grenade_ImgStar) package { import mx.core.*; public class Grenade_ImgStar extends BitmapAsset { } }//package
Section 178
//Heart (Heart) package { import org.flixel.*; public class Heart extends FlxSprite { private var ImgHearts:Class; private var HeartSound:Class; private var myState1; public function Heart(X:Number, Y:Number):void{ ImgHearts = Heart_ImgHearts; HeartSound = Heart_HeartSound; super(X, Y); loadGraphic(ImgHearts, false, false, 9, 8); addAnimation("on", [0, 1], 1); play("on"); drag.x = 0; drag.y = 35; width = 8; height = 8; } override public function update():void{ super.update(); } override public function kill():void{ FlxG.play(HeartSound); super.kill(); } } }//package
Section 179
//Heart_HeartSound (Heart_HeartSound) package { import mx.core.*; public class Heart_HeartSound extends SoundAsset { } }//package
Section 180
//Heart_ImgHearts (Heart_ImgHearts) package { import mx.core.*; public class Heart_ImgHearts extends BitmapAsset { } }//package
Section 181
//MenuState (MenuState) package { import org.flixel.*; public class MenuState extends FlxState { private var Sky:Class; private var Clouds:Class; private var _zombieTimer:Number;// = 20 public var _zombieHolder:FlxGroup; private var _flashTimer:Number; private var Crack1:Class; private var Crack2:Class; private var Mist:Class; private var bgMusic:Class; private var Moon:Class; private var Foreground:Class; private var StartSound:Class; private var myZombie:StartScreenZombie; private var Rain:Class; private var Title:Class; private var _rainEmitter:FlxEmitter; private var PressStart:Class; public function MenuState():void{ bgMusic = MenuState_bgMusic; StartSound = MenuState_StartSound; Crack1 = MenuState_Crack1; Crack2 = MenuState_Crack2; Foreground = MenuState_Foreground; Rain = MenuState_Rain; Clouds = MenuState_Clouds; PressStart = MenuState_PressStart; Title = MenuState_Title; Moon = MenuState_Moon; Sky = MenuState_Sky; Mist = MenuState_Mist; _flashTimer = (Math.random() * 10); super(); } override public function create():void{ var sky:FlxSprite; FlxG.play(Crack1, 1); FlxG.flash.start(4294967295, 0.75); flashStart(); _zombieHolder = new FlxGroup(); sky = new FlxSprite(); sky.loadGraphic(Sky); this.add(sky); sky.x = 0; sky.y = 0; var mist:FlxSprite = new FlxSprite(); mist.loadGraphic(Mist); this.add(mist); mist.x = 0; mist.y = 0; var moon:FlxSprite = new FlxSprite(); moon.loadGraphic(Moon); this.add(moon); moon.x = 0; moon.y = 0; var foreground:FlxSprite = new FlxSprite(); foreground.loadGraphic(Foreground); this.add(foreground); foreground.x = 0; foreground.y = 0; var title:FlxSprite = new FlxSprite(); title.loadGraphic(Title); this.add(title); title.x = 0; title.y = 0; this.add(_zombieHolder); _rainEmitter = new FlxEmitter(0, 0); _rainEmitter.setXSpeed(0, 0); _rainEmitter.setYSpeed(0, 200); _rainEmitter.setRotation(0, 0); _rainEmitter.createSprites(Rain, 50, 16, false, 0); _rainEmitter.width = 460; this.add(_rainEmitter); var clouds:FlxSprite = new FlxSprite(); clouds.loadGraphic(Clouds); this.add(clouds); clouds.x = 0; clouds.y = 0; var pressStart:FlxSprite = new FlxSprite(); pressStart.loadGraphic(PressStart, true, false, 91, 6); pressStart.addAnimation("blinking", [0, 1], 2, true); pressStart.play("blinking"); this.add(pressStart); pressStart.x = ((FlxG.width / 2) - (pressStart.width / 2)); pressStart.y = 180; FlxG.playMusic(bgMusic, 0.3); makeZombies(); } private function onFade():void{ FlxG.state = new PlayState(); } private function makeZombies():void{ var i:Number = 0; while (i < 5) { myZombie = new StartScreenZombie((Math.random() * 460), ((9 + i) + 158), _zombieHolder, this); _zombieHolder.add(myZombie); i++; }; var q:Number = 0; while (q < 5) { myZombie = new StartScreenZombie((Math.random() * 460), ((9 + q) + 182), _zombieHolder, this); _zombieHolder.add(myZombie); q++; }; var v:Number = 0; while (v < 5) { myZombie = new StartScreenZombie((Math.random() * 460), ((9 + v) + 195), _zombieHolder, this); _zombieHolder.add(myZombie); v++; }; } override public function update():void{ _rainEmitter.start(false, 0.01, 50); if (_flashTimer > 0){ _flashTimer = (_flashTimer - (FlxG.elapsed * 3)); }; if (_flashTimer <= 0){ _flashTimer = (Math.random() * 10); flashStart(); }; if (_zombieTimer > 0){ _zombieTimer = (_zombieTimer - (FlxG.elapsed * 3)); }; if (_zombieTimer <= 0){ _zombieTimer = 20; makeZombies(); }; if (FlxG.keys.pressed("X")){ FlxG.play(StartSound); FlxG.flash.start(4294967295, 0.75); FlxG.fade.start(4278190080, 1, onFade); }; super.update(); } private function flashStart():void{ var randomNum:Number = (Math.random() * 1); if (randomNum > 0.5){ FlxG.play(Crack1); } else { FlxG.play(Crack2); }; FlxG.flash.start(4294967295, (Math.random() * 0.75)); } } }//package
Section 182
//MenuState_bgMusic (MenuState_bgMusic) package { import mx.core.*; public class MenuState_bgMusic extends SoundAsset { } }//package
Section 183
//MenuState_Clouds (MenuState_Clouds) package { import mx.core.*; public class MenuState_Clouds extends BitmapAsset { } }//package
Section 184
//MenuState_Crack1 (MenuState_Crack1) package { import mx.core.*; public class MenuState_Crack1 extends SoundAsset { } }//package
Section 185
//MenuState_Crack2 (MenuState_Crack2) package { import mx.core.*; public class MenuState_Crack2 extends SoundAsset { } }//package
Section 186
//MenuState_Foreground (MenuState_Foreground) package { import mx.core.*; public class MenuState_Foreground extends BitmapAsset { } }//package
Section 187
//MenuState_Mist (MenuState_Mist) package { import mx.core.*; public class MenuState_Mist extends BitmapAsset { } }//package
Section 188
//MenuState_Moon (MenuState_Moon) package { import mx.core.*; public class MenuState_Moon extends BitmapAsset { } }//package
Section 189
//MenuState_PressStart (MenuState_PressStart) package { import mx.core.*; public class MenuState_PressStart extends BitmapAsset { } }//package
Section 190
//MenuState_Rain (MenuState_Rain) package { import mx.core.*; public class MenuState_Rain extends BitmapAsset { } }//package
Section 191
//MenuState_Sky (MenuState_Sky) package { import mx.core.*; public class MenuState_Sky extends BitmapAsset { } }//package
Section 192
//MenuState_StartSound (MenuState_StartSound) package { import mx.core.*; public class MenuState_StartSound extends SoundAsset { } }//package
Section 193
//MenuState_Title (MenuState_Title) package { import mx.core.*; public class MenuState_Title extends BitmapAsset { } }//package
Section 194
//NinjaStar (NinjaStar) package { import org.flixel.*; public class NinjaStar extends FlxSprite { private var myState1; private var ImgStar:Class; private var ImgSpark:Class; private var _inGroup:FlxGroup; public function NinjaStar(X:Number, Y:Number, XVelocity:Number, YVelocity:Number, myGroup:FlxGroup, myState):void{ ImgStar = NinjaStar_ImgStar; ImgSpark = NinjaStar_ImgSpark; super(X, Y); myState1 = myState; loadGraphic(ImgStar, true, true, 2, 1); _inGroup = myGroup; maxVelocity.x = 400; maxVelocity.y = 200; angularVelocity = 0; width = 2; height = 1; addAnimation("normal", [0]); exists = false; } override public function hitLeft(Contact:FlxObject, Velocity:Number):void{ kill(); } override public function hitTop(Contact:FlxObject, Velocity:Number):void{ kill(); } override public function kill():void{ velocity.x = 0; velocity.y = 0; var _bigGibs:FlxEmitter = new FlxEmitter(); _bigGibs.setXSpeed(-150, 150); _bigGibs.setYSpeed(-200, 0); _bigGibs.gravity = 400; _bigGibs.setRotation(720, 720); _bigGibs.createSprites(ImgSpark, 20, 10, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bigGibs)); _bigGibs.at(this); _bigGibs.start(true, 0.2, 10); super.kill(); } public function resetStar(X:Number, Y:Number, XVelocity:Number, YVelocity:Number):void{ x = X; y = Y; dead = false; exists = true; visible = true; velocity.x = XVelocity; play("normal"); } override public function update():void{ if ((((this.x < 0)) || ((this.x > 3000)))){ this.kill(); }; super.update(); } override public function hitRight(Contact:FlxObject, Velocity:Number):void{ kill(); } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ kill(); } } }//package
Section 195
//NinjaStar_ImgSpark (NinjaStar_ImgSpark) package { import mx.core.*; public class NinjaStar_ImgSpark extends BitmapAsset { } }//package
Section 196
//NinjaStar_ImgStar (NinjaStar_ImgStar) package { import mx.core.*; public class NinjaStar_ImgStar extends BitmapAsset { } }//package
Section 197
//NinjaStar2 (NinjaStar2) package { import org.flixel.*; public class NinjaStar2 extends FlxSprite { private var ImgSpark:Class; private var myState1; private var ImgStar:Class; private var _inGroup:FlxGroup; public function NinjaStar2(X:Number, Y:Number, XVelocity:Number, YVelocity:Number, myGroup:FlxGroup, myState):void{ ImgStar = NinjaStar2_ImgStar; ImgSpark = NinjaStar2_ImgSpark; super(X, Y); myState1 = myState; loadGraphic(ImgStar, true, true, 5, 3); _inGroup = myGroup; maxVelocity.x = 400; maxVelocity.y = 200; angularVelocity = 0; width = 5; height = 3; exists = false; } override public function hitTop(Contact:FlxObject, Velocity:Number):void{ kill(); } override public function kill():void{ velocity.x = 0; velocity.y = 0; var _bigGibs:FlxEmitter = new FlxEmitter(); _bigGibs.setXSpeed(-150, 150); _bigGibs.setYSpeed(-200, 0); _bigGibs.gravity = 400; _bigGibs.setRotation(720, 720); _bigGibs.createSprites(ImgSpark, 20, 10, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bigGibs)); _bigGibs.at(this); _bigGibs.start(true, 0.2, 10); super.kill(); } public function resetStar(X:Number, Y:Number, XVelocity:Number, YVelocity:Number, myDir:uint):void{ facing = myDir; x = X; y = Y; dead = false; exists = true; visible = true; velocity.x = XVelocity; } override public function hitRight(Contact:FlxObject, Velocity:Number):void{ kill(); } override public function hitLeft(Contact:FlxObject, Velocity:Number):void{ kill(); } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ kill(); } } }//package
Section 198
//NinjaStar2_ImgSpark (NinjaStar2_ImgSpark) package { import mx.core.*; public class NinjaStar2_ImgSpark extends BitmapAsset { } }//package
Section 199
//NinjaStar2_ImgStar (NinjaStar2_ImgStar) package { import mx.core.*; public class NinjaStar2_ImgStar extends BitmapAsset { } }//package
Section 200
//Player (Player) package { import org.flixel.*; public class Player extends FlxSprite { private var _PlayerGibs:Class; private var myState1; private var _attack_counter1:Number;// = 0 private var _attack_counter2:Number;// = 0 private var _resetTick:Boolean;// = false private var gunFireSound:Class; private var _inGroup:FlxGroup; private var _attack_counter:Number;// = 0 public var _hurt_counter:Number;// = 0 public var _max_health:int;// = 10 private var _grenades:FlxGroup; private var _bloodGibs:FlxEmitter; private var PlayerKillSound:Class; private var _jump_power:int;// = 800 private var PlayerGibs:Class; private var _minVelocityX:Number;// = 0 private var Blood:Class; private var PlayerHitSound:Class; private var JumpSound:Class; private var _stars:FlxGroup; private var ImgPlayer:Class; private var _resetCountDown:Number;// = 5 private var ThrowNade:Class; private var _playerGibs:FlxEmitter; private var _maxVelocityX:Number;// = 150 private var _gunBlast:FlxEmitter; private var _move_speed:int;// = 400 private var ImgSpark:Class; public function Player(X:Number, Y:Number, Stars:FlxGroup, Grenades:FlxGroup, PlayerGibs:FlxGroup, myState):void{ PlayerHitSound = Player_PlayerHitSound; PlayerKillSound = Player_PlayerKillSound; JumpSound = Player_JumpSound; ThrowNade = Player_ThrowNade; gunFireSound = Player_gunFireSound; ImgPlayer = Player_ImgPlayer; _PlayerGibs = Player__PlayerGibs; ImgSpark = Player_ImgSpark; PlayerGibs = Player_PlayerGibs; Blood = Player_Blood; super(X, Y); myState1 = myState; _inGroup = PlayerGibs; _stars = Stars; _grenades = Grenades; loadGraphic(ImgPlayer, true, true, 18, 23); maxVelocity.x = 120; maxVelocity.y = 200; health = 10; acceleration.y = 420; drag.x = 400; offset.x = 4; width = 11; height = 23; addAnimation("normal", [0, 1, 0, 2], 10); addAnimation("jump", [3]); addAnimation("attack1", [1, 2], 10); addAnimation("attack2", [5, 6], 10); addAnimation("stopped", [0]); addAnimation("hurt", [3, 4], 10); addAnimation("dead", [3, 3, 3], 5); _playerGibs = new FlxEmitter(); _playerGibs.setXSpeed(-200, 200); _playerGibs.setYSpeed(-300, 0); _playerGibs.setRotation(0, 0); _playerGibs.createSprites(_PlayerGibs, 10, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_playerGibs)); _bloodGibs = new FlxEmitter(); _bloodGibs.setXSpeed(-200, 200); _bloodGibs.setYSpeed(-300, 0); _bloodGibs.setRotation(0, 0); _bloodGibs.createSprites(Blood, 20, 16, true, 0.5); _inGroup.add(myState1.lyrSprites.add(_bloodGibs)); } override public function hurt(Damage:Number):void{ if (_hurt_counter <= 0){ FlxG.play(PlayerHitSound); _hurt_counter = 3; play("hurt"); return (super.hurt(Damage)); }; } private function throwGrenade(dir:uint):void{ var XVelocity:Number; if (dir == RIGHT){ XVelocity = 120; } else { XVelocity = -120; }; var i:uint; while (i < _grenades.members.length) { if (!_grenades.members[i].exists){ if (dir == RIGHT){ _grenades.members[i].resetGrenade((this.x + 18), (this.y + 8), XVelocity, -120); return; }; _grenades.members[i].resetGrenade(this.x, (this.y + 8), XVelocity, -120); return; }; i++; }; } override public function hitBottom(Contact:FlxObject, Velocity:Number):void{ maxVelocity.x = 120; return (super.hitBottom(Contact, Velocity)); } override public function update():void{ if (facing){ _minVelocityX = 100; _maxVelocityX = 150; } else { _minVelocityX = -150; _maxVelocityX = -150; }; acceleration.x = 0; if (_hurt_counter > 0){ _hurt_counter = (_hurt_counter - (FlxG.elapsed * 3)); }; if (_attack_counter > 0){ _attack_counter = (_attack_counter - (FlxG.elapsed * 3)); }; if (_attack_counter1 > 0){ _attack_counter1 = (_attack_counter1 - (FlxG.elapsed * 3)); }; if (_attack_counter2 > 0){ _attack_counter2 = (_attack_counter2 - (FlxG.elapsed * 3)); }; if (FlxG.keys.LEFT){ facing = LEFT; acceleration.x = -(drag.x); } else { if (FlxG.keys.RIGHT){ facing = RIGHT; acceleration.x = drag.x; }; }; if (((FlxG.keys.justPressed("X")) && ((velocity.y == 0)))){ velocity.y = -(_jump_power); FlxG.play(JumpSound); }; if (_hurt_counter > 0){ play("hurt"); } else { if (_attack_counter > 0){ play("attack1"); } else { if (_attack_counter1 > 0){ play("attack2"); } else { if (velocity.y != 0){ play("jump"); } else { if ((((velocity.x == 0)) && ((_attack_counter <= 0)))){ play("stopped"); } else { play("normal"); }; }; }; }; }; if (FlxG.keys.justPressed("C")){ if (velocity.y == 0){ _attack_counter = 0.5; play("attack1"); }; fireBullet(facing); }; if (FlxG.keys.justPressed("V")){ if (_attack_counter2 <= 0){ _attack_counter1 = 0.5; _attack_counter2 = 8; play("attack2"); FlxG.play(ThrowNade); throwGrenade(facing); }; }; super.update(); } override public function kill():void{ FlxG.play(PlayerKillSound); _bloodGibs.at(this); _bloodGibs.start(true, 5, 20); _playerGibs.at(this); _playerGibs.start(true, 5, 10); super.kill(); } private function fireBullet(dir:uint):void{ var XVelocity:Number; FlxG.play(gunFireSound, 1, false); _gunBlast = new FlxEmitter(); _gunBlast.setSize(1, 1); _gunBlast.gravity = 0; _gunBlast.setYSpeed(-30, 30); _gunBlast.setRotation(0, 0); _gunBlast.createSprites(ImgSpark, 20, 16, true, 0.5); _gunBlast.setXSpeed(_minVelocityX, (_maxVelocityX + this.velocity.x)); _gunBlast.velocity.x = this.velocity.x; if (dir == RIGHT){ XVelocity = 400; } else { XVelocity = -400; }; var i:uint; while (i < _stars.members.length) { if (!_stars.members[i].exists){ if (dir == RIGHT){ _stars.members[i].resetStar((this.x + 18), (this.y + 13), XVelocity, 0); myState1.lyrSprites.add(_gunBlast); _gunBlast.start(true, 0.2, 5); _gunBlast.reset((this.x + 20), (this.y + 14)); return; }; _stars.members[i].resetStar(this.x, (this.y + 13), XVelocity, 0); myState1.lyrSprites.add(_gunBlast); _gunBlast.start(true, 0.2, 5); _gunBlast.reset((this.x - 1), (this.y + 14)); return; }; i++; }; } } }//package
Section 201
//Player__PlayerGibs (Player__PlayerGibs) package { import mx.core.*; public class Player__PlayerGibs extends BitmapAsset { } }//package
Section 202
//Player_Blood (Player_Blood) package { import mx.core.*; public class Player_Blood extends BitmapAsset { } }//package
Section 203
//Player_gunFireSound (Player_gunFireSound) package { import mx.core.*; public class Player_gunFireSound extends SoundAsset { } }//package
Section 204
//Player_ImgPlayer (Player_ImgPlayer) package { import mx.core.*; public class Player_ImgPlayer extends BitmapAsset { } }//package
Section 205
//Player_ImgSpark (Player_ImgSpark) package { import mx.core.*; public class Player_ImgSpark extends BitmapAsset { } }//package
Section 206
//Player_JumpSound (Player_JumpSound) package { import mx.core.*; public class Player_JumpSound extends SoundAsset { } }//package
Section 207
//Player_PlayerGibs (Player_PlayerGibs) package { import mx.core.*; public class Player_PlayerGibs extends BitmapAsset { } }//package
Section 208
//Player_PlayerHitSound (Player_PlayerHitSound) package { import mx.core.*; public class Player_PlayerHitSound extends SoundAsset { } }//package
Section 209
//Player_PlayerKillSound (Player_PlayerKillSound) package { import mx.core.*; public class Player_PlayerKillSound extends SoundAsset { } }//package
Section 210
//Player_ThrowNade (Player_ThrowNade) package { import mx.core.*; public class Player_ThrowNade extends SoundAsset { } }//package
Section 211
//PlayState (PlayState) package { import org.flixel.*; public class PlayState extends FlxState { public var _player:Player; public var lyrSprites:FlxGroup; private var _resetTick:Number;// = 8 private var _hearts:FlxGroup; private var _eStars:FlxGroup; private var _gooSparks:FlxGroup; private var _attack_counter:Number;// = 9 private var BackGround2on1:Class; private var DataMap:Class; private var _myBackGround2on1:FlxSprite; private var partiGroup:FlxGroup; private var BackGround5on1:Class; private var BackGround5on2:Class; private var _myBackGround5on1:FlxSprite; private var _myBackGround5on2:FlxSprite; private var _myBackGround1:FlxSprite; private var _myBackGround2:FlxSprite; private var _myBackGround3:FlxSprite; private var _myBackGround4:FlxSprite; private var _myBackGround6:FlxSprite; private var _myBackGround5:FlxSprite; private var emitGroup:FlxGroup; private var ImgHearts:Class; public var _heartGroup:FlxGroup; private var _rainEmitter:FlxEmitter; private var BackGround1:Class; private var BackGround2:Class; private var BackGround3:Class; private var BackGround4:Class; private var BackGround5:Class; private var BackGround6:Class; private var _map:FlxTilemap; private var ImgTiles:Class; private var _scoreDisplay:FlxText; private var Rain:Class; private var _bulletSparks:FlxGroup; public var myBloom:Bloom; private var spawnEnemy:Number;// = 0 private var BackGround1on1:Class; private var _flashTimer:Number; private var Crack1:Class; private var _myBackGround1on1:FlxSprite; private var Crack2:Class; private var _pStars:FlxGroup; private var ImgSpark:Class; private var _pGrenades:FlxGroup; public static var _eArray:FlxGroup; public static var lyrStage:FlxGroup; public static var lyrHUD:FlxGroup; public function PlayState(){ ImgTiles = PlayState_ImgTiles; DataMap = PlayState_DataMap; ImgSpark = PlayState_ImgSpark; BackGround1 = PlayState_BackGround1; BackGround1on1 = PlayState_BackGround1on1; BackGround2 = PlayState_BackGround2; BackGround2on1 = PlayState_BackGround2on1; BackGround3 = PlayState_BackGround3; BackGround4 = PlayState_BackGround4; BackGround5 = PlayState_BackGround5; BackGround5on1 = PlayState_BackGround5on1; BackGround5on2 = PlayState_BackGround5on2; BackGround6 = PlayState_BackGround6; ImgHearts = PlayState_ImgHearts; Rain = PlayState_Rain; Crack1 = PlayState_Crack1; Crack2 = PlayState_Crack2; _flashTimer = (Math.random() * 10); super(); } private function EnemyHit(E:FlxSprite, P:Player):void{ if (P._hurt_counter <= 0){ if (E.x > P.x){ P.velocity.x = -100; E.velocity.x = 100; } else { P.velocity.x = 100; E.velocity.x = -100; }; P.hurt(1); }; } private function spawnEnimies():void{ var myRange:Number; var myBuffer:Number; var myRange1:Number; var myBuffer1:Number; var myRange2:Number; var myBuffer2:Number; var i:Number = 0; while (i < 5) { myRange = ((Math.random() * 700) - 350); if (myRange > 0){ myBuffer = 50; } else { myBuffer = -50; }; _eArray.members.push(new Enemy2(((_player.x + myRange) + myBuffer), 276, _player, emitGroup, this)); i++; }; var v:Number = 0; while (v < 5) { myRange1 = ((Math.random() * 700) - 350); if (myRange1 > 0){ myBuffer1 = 50; } else { myBuffer1 = -50; }; _eArray.members.push(new Enemy3(((_player.x + myRange1) + myBuffer1), 276, _player, emitGroup, this)); v++; }; var b:Number = 0; while (b < 5) { myRange2 = ((Math.random() * 700) - 350); if (myRange2 > 0){ myBuffer2 = 50; } else { myBuffer2 = -50; }; _eArray.members.push(new Enemy4(((_player.x + myRange2) + myBuffer2), 276, _player, emitGroup, _eStars, this)); b++; }; spawnEnemy = 40; } private function flashStart():void{ var randomNum:Number = (Math.random() * 1); if (randomNum > 0.5){ FlxG.play(Crack1); } else { FlxG.play(Crack2); }; FlxG.flash.start(4294967295, (Math.random() * 0.75)); } private function StarHitsPlayer(colStar:FlxSprite, colPlayer:FlxSprite):void{ colStar.kill(); colPlayer.hurt(1); } private function enemiesHit(E:FlxSprite, P:FlxSprite):void{ if (E.x > P.x){ P.velocity.x = -100; E.velocity.x = 100; } else { P.velocity.x = 100; E.velocity.x = -100; }; } private function PlayerHitHeart(heart:Heart, P:Player):void{ if (P.health < 10){ P.health = (P.health + 1); }; heart.kill(); } override public function update():void{ var i:Number; if (_flashTimer > 0){ _flashTimer = (_flashTimer - (FlxG.elapsed * 3)); }; if (_flashTimer <= 0){ _flashTimer = (Math.random() * 10); flashStart(); }; _rainEmitter.start(false, 0.01, 100); _rainEmitter.x = (_player.x - (_rainEmitter.width / 2)); var _old_health:uint = _player.health; var _old_score:uint = FlxG.score; super.update(); if (_player.dead){ _resetTick = (_resetTick - (FlxG.elapsed * 3)); }; if (_resetTick <= 0){ FlxG.state = new PlayState(); }; if (_player.y > _map.height){ FlxG.state = new PlayState1(_player.health); }; if (spawnEnemy <= 0){ spawnEnimies(); } else { spawnEnemy = (spawnEnemy - (FlxG.elapsed * 3)); }; _map.collide(emitGroup); _pGrenades.collide(_eArray); FlxU.overlap(partiGroup, _eArray, partiHit); FlxU.overlap(_eArray, _eArray, enemiesHit); FlxU.overlap(_eArray, _player, EnemyHit); FlxU.overlap(_pStars, _eArray, StarHitsEnemy); FlxU.overlap(_eStars, _player, StarHitsPlayer); FlxU.overlap(_heartGroup, _player, PlayerHitHeart); if (_player.dead){ FlxG.score = 0; }; if (_old_score != FlxG.score){ _scoreDisplay.text = FlxG.score.toString(); }; if (_player.health != _old_health){ i = 0; while (i < _player._max_health) { if (i >= _player.health){ _hearts.members[i].play("off"); } else { _hearts.members[i].play("on"); }; i++; }; }; } private function StarHitsEnemy(colStar:FlxSprite, colEnemy:FlxSprite):void{ colStar.kill(); colEnemy.hurt(1); } private function partiHit(colStar:FlxSprite, colEnemy:FlxSprite):void{ colEnemy.kill(); } override public function create():void{ var tmpH:FlxSprite; flashStart(); myBloom = new Bloom(); _bulletSparks = new FlxGroup(); _gooSparks = new FlxGroup(); emitGroup = new FlxGroup(); lyrStage = new FlxGroup(); lyrSprites = new FlxGroup(); lyrHUD = new FlxGroup(); partiGroup = new FlxGroup(); _eArray = new FlxGroup(); _heartGroup = new FlxGroup(); _pStars = new FlxGroup(); var n:int; while (n < 40) { _pStars.add(lyrSprites.add(new NinjaStar(0, 0, 0, 0, _bulletSparks, this))); n = (n + 1); }; _pGrenades = new FlxGroup(); var q:int; while (q < 40) { _pGrenades.add(lyrSprites.add(new Grenade(0, 0, 0, 0, partiGroup, this))); q = (q + 1); }; _eStars = new FlxGroup(); var en:int; while (en < 40) { _eStars.add(lyrSprites.add(new NinjaStar2(0, 0, 0, 0, _gooSparks, this))); en = (en + 1); }; _player = new Player(100, 276, _pStars, _pGrenades, emitGroup, this); lyrSprites.add(_player); _map = new FlxTilemap(); _map.loadMap(new DataMap(), ImgTiles, 16); _map.drawIndex = 1; _map.collideIndex = 1; _myBackGround1 = new FlxSprite(); _myBackGround1.loadGraphic(BackGround1); _myBackGround1.x = 0; _myBackGround1.y = 0; _myBackGround1.scrollFactor.x = 0; _myBackGround1.scrollFactor.y = 0; _myBackGround1on1 = new FlxSprite(); _myBackGround1on1.loadGraphic(BackGround1on1); _myBackGround1on1.x = 0; _myBackGround1on1.y = 0; _myBackGround1on1.scrollFactor.x = 0.1; _myBackGround1on1.scrollFactor.y = 0; _myBackGround1on1.antialiasing = true; _myBackGround2 = new FlxSprite(); _myBackGround2.loadGraphic(BackGround2); _myBackGround2.x = 0; _myBackGround2.y = 0; _myBackGround2.scrollFactor.x = 0.2; _myBackGround2.scrollFactor.y = 0; _myBackGround2on1 = new FlxSprite(); _myBackGround2on1.loadGraphic(BackGround2on1); _myBackGround2on1.x = 0; _myBackGround2on1.y = 0; _myBackGround2on1.scrollFactor.x = 0.3; _myBackGround2on1.scrollFactor.y = 0; _myBackGround3 = new FlxSprite(); _myBackGround3.loadGraphic(BackGround3); _myBackGround3.x = 0; _myBackGround3.y = 1; _myBackGround3.scrollFactor.x = 0.4; _myBackGround3.scrollFactor.y = 0; _myBackGround4 = new FlxSprite(); _myBackGround4.loadGraphic(BackGround4); _myBackGround4.x = 0; _myBackGround4.y = 1; _myBackGround4.scrollFactor.x = 0.5; _myBackGround4.scrollFactor.y = 0; _rainEmitter = new FlxEmitter(0, 0); _rainEmitter.setXSpeed(0, 0); _rainEmitter.setYSpeed(0, 200); _rainEmitter.setRotation(0, 0); _rainEmitter.createSprites(Rain, 100, 16, false, 0); _rainEmitter.width = 500; _myBackGround5 = new FlxSprite(); _myBackGround5.loadGraphic(BackGround5); _myBackGround5.x = 0; _myBackGround5.y = 1; _myBackGround5.scrollFactor.x = 0.6; _myBackGround5.scrollFactor.y = 0; _myBackGround5on1 = new FlxSprite(); _myBackGround5on1.loadGraphic(BackGround5on1); _myBackGround5on1.x = 0; _myBackGround5on1.y = 1; _myBackGround5on1.scrollFactor.x = 0.7; _myBackGround5on1.scrollFactor.y = 0; _myBackGround5on2 = new FlxSprite(); _myBackGround5on2.loadGraphic(BackGround5on2); _myBackGround5on2.x = 0; _myBackGround5on2.y = 1; _myBackGround5on2.scrollFactor.x = 0.8; x; _myBackGround5on2.scrollFactor.y = 0; _myBackGround6 = new FlxSprite(); _myBackGround6.loadGraphic(BackGround6); _myBackGround6.x = 16; _myBackGround6.y = 1; _myBackGround6.scrollFactor.x = 1; _myBackGround6.scrollFactor.y = 0; lyrSprites.add(_eArray); lyrSprites.add(_heartGroup); lyrStage.add(_map); _map.y = (_map.y + 15); lyrStage.add(_myBackGround1); lyrStage.add(_myBackGround1on1); lyrStage.add(_myBackGround2); lyrStage.add(_myBackGround2on1); lyrStage.add(_myBackGround3); lyrStage.add(_myBackGround4); lyrStage.add(_rainEmitter); lyrStage.add(_myBackGround5); lyrStage.add(_myBackGround5on1); lyrStage.add(_myBackGround5on2); lyrStage.add(_myBackGround6); emitGroup.add(_player); emitGroup.add(_eArray); emitGroup.add(_pStars); emitGroup.add(_eStars); emitGroup.add(_pGrenades); emitGroup.add(partiGroup); emitGroup.add(_bulletSparks); emitGroup.add(_gooSparks); this.add(lyrStage); this.add(lyrSprites); this.add(lyrHUD); _hearts = new FlxGroup(); var hCount:Number = 0; while (hCount < _player._max_health) { tmpH = new FlxSprite((2 + (hCount * 10)), 2); tmpH.loadGraphic(ImgHearts, true, false); tmpH.scrollFactor.x = (tmpH.scrollFactor.y = 0); tmpH.addAnimation("on", [0]); tmpH.addAnimation("off", [1]); tmpH.play("on"); _hearts.add(lyrHUD.add(tmpH)); hCount++; }; _scoreDisplay = new FlxText(174, 2, 300, FlxG.score.toString()); _scoreDisplay.setFormat(null, 11, 4294967295, "right"); _scoreDisplay.scrollFactor.x = (_scoreDisplay.scrollFactor.y = 0); lyrHUD.add(_scoreDisplay); FlxG.follow(_player, 3); FlxG.followAdjust(0.3, 0); FlxG.followBounds(16, 0, (_map.width - 16), (_map.height - 16)); } } }//package
Section 212
//PlayState_BackGround1 (PlayState_BackGround1) package { import mx.core.*; public class PlayState_BackGround1 extends BitmapAsset { } }//package
Section 213
//PlayState_BackGround1on1 (PlayState_BackGround1on1) package { import mx.core.*; public class PlayState_BackGround1on1 extends BitmapAsset { } }//package
Section 214
//PlayState_BackGround2 (PlayState_BackGround2) package { import mx.core.*; public class PlayState_BackGround2 extends BitmapAsset { } }//package
Section 215
//PlayState_BackGround2on1 (PlayState_BackGround2on1) package { import mx.core.*; public class PlayState_BackGround2on1 extends BitmapAsset { } }//package
Section 216
//PlayState_BackGround3 (PlayState_BackGround3) package { import mx.core.*; public class PlayState_BackGround3 extends BitmapAsset { } }//package
Section 217
//PlayState_BackGround4 (PlayState_BackGround4) package { import mx.core.*; public class PlayState_BackGround4 extends BitmapAsset { } }//package
Section 218
//PlayState_BackGround5 (PlayState_BackGround5) package { import mx.core.*; public class PlayState_BackGround5 extends BitmapAsset { } }//package
Section 219
//PlayState_BackGround5on1 (PlayState_BackGround5on1) package { import mx.core.*; public class PlayState_BackGround5on1 extends BitmapAsset { } }//package
Section 220
//PlayState_BackGround5on2 (PlayState_BackGround5on2) package { import mx.core.*; public class PlayState_BackGround5on2 extends BitmapAsset { } }//package
Section 221
//PlayState_BackGround6 (PlayState_BackGround6) package { import mx.core.*; public class PlayState_BackGround6 extends BitmapAsset { } }//package
Section 222
//PlayState_Crack1 (PlayState_Crack1) package { import mx.core.*; public class PlayState_Crack1 extends SoundAsset { } }//package
Section 223
//PlayState_Crack2 (PlayState_Crack2) package { import mx.core.*; public class PlayState_Crack2 extends SoundAsset { } }//package
Section 224
//PlayState_DataMap (PlayState_DataMap) package { import mx.core.*; public class PlayState_DataMap extends ByteArrayAsset { } }//package
Section 225
//PlayState_ImgHearts (PlayState_ImgHearts) package { import mx.core.*; public class PlayState_ImgHearts extends BitmapAsset { } }//package
Section 226
//PlayState_ImgSpark (PlayState_ImgSpark) package { import mx.core.*; public class PlayState_ImgSpark extends BitmapAsset { } }//package
Section 227
//PlayState_ImgTiles (PlayState_ImgTiles) package { import mx.core.*; public class PlayState_ImgTiles extends BitmapAsset { } }//package
Section 228
//PlayState_Rain (PlayState_Rain) package { import mx.core.*; public class PlayState_Rain extends BitmapAsset { } }//package
Section 229
//PlayState1 (PlayState1) package { import org.flixel.*; public class PlayState1 extends FlxState { public var _player:Player; private var ImgSpark:Class; private var BackGround1:Class; private var _slimeLayer:FlxSprite; private var _caveMist:FlxSprite; private var _hearts:FlxGroup; private var _resetTick:Number;// = 8 public var _rockDropper1:FlxEmitter; private var myBlobX:Array; private var RockDrop:Class; private var myBlobY:Array; public var lyrSprites:FlxGroup; private var _eStars:FlxGroup; private var Mist:Class; private var ImgTiles:Class; private var _map:FlxTilemap; private var _attack_counter:Number;// = 9 private var _gooSparks:FlxGroup; private var Slime:Class; private var _caveBG:FlxSprite; private var DataMap:Class; private var previousHealth:Number; private var _scoreDisplay:FlxText; public var myBloom:Bloom; private var CaveBG:Class; private var _bulletSparks:FlxGroup; private var _slimeDrip:FlxEmitter; private var _rockDropArray:FlxGroup; private var partiGroup:FlxGroup; private var _myBatX:Array; private var _myBatY:Array; private var _slimeDrip1:FlxEmitter; private var _myBackGround1:FlxSprite; public var _rockDropper:FlxEmitter; private var emitGroup:FlxGroup; private var _bossArray:FlxGroup; private var ImgHearts:Class; private var _pGrenades:FlxGroup; public var _heartGroup:FlxGroup; public var lyrStage:FlxGroup; private var SlimeDrip:Class; private var _pStars:FlxGroup; public static var lyrHUD:FlxGroup; public static var _eArray:FlxGroup; public function PlayState1(playerHealth:Number):void{ ImgTiles = PlayState1_ImgTiles; DataMap = PlayState1_DataMap; ImgSpark = PlayState1_ImgSpark; RockDrop = PlayState1_RockDrop; SlimeDrip = PlayState1_SlimeDrip; BackGround1 = PlayState1_BackGround1; CaveBG = PlayState1_CaveBG; Slime = PlayState1_Slime; Mist = PlayState1_Mist; ImgHearts = PlayState1_ImgHearts; myBlobX = new Array(198, 393, 533, 695, 1040, 1073, 1088, 850, 600, 450, 130, 100, 250, 400, 550, 700, 850); myBlobY = new Array(80, 29, 46, 40, 80, 80, 130, 130, 130, 130, 250, 237, 237, 237, 237, 237, 237); _myBatX = new Array(840, 850, 860, 870, 880, 890, 600, 590, 580, 570, 560, 400, 410, 420, 430, 440, 960, 970, 980, 990, 1000); _myBatY = new Array(16, 16, 16, 16, 16, 16, 80, 80, 80, 80, 80, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176); super(); previousHealth = playerHealth; } private function EnemyHit(E:FlxSprite, P:Player):void{ if (P._hurt_counter <= 0){ if (E.x > P.x){ P.velocity.x = -100; E.velocity.x = 100; } else { P.velocity.x = 100; E.velocity.x = -100; }; P.hurt(1); }; } private function enemiesHit(E:FlxSprite, P:FlxSprite):void{ if (E.x > P.x){ P.velocity.x = -100; E.velocity.x = 100; } else { P.velocity.x = 100; E.velocity.x = -100; }; } private function PlayerHitHeart(heart:Heart, P:Player):void{ if (P.health < 10){ P.health = (P.health + 1); }; heart.kill(); } private function StarHitsPlayer(colStar:FlxSprite, colPlayer:Player):void{ colStar.kill(); colPlayer.hurt(1); } private function spawnEnimies():void{ var q:Number = 0; while (q < _myBatX.length) { _eArray.members.push(new Enemy6(_myBatX[q], _myBatY[q], _player, emitGroup, this)); q++; }; var b:Number = 0; while (b < myBlobX.length) { _eArray.members.push(new Enemy4(myBlobX[b], myBlobY[b], _player, emitGroup, _eStars, this)); b++; }; } private function StarHitsBoss(colStar:FlxSprite, colEnemy:FlxSprite):void{ colStar.kill(); colEnemy.hurt(1); } private function StarHitsEnemy(colStar:FlxSprite, colEnemy:FlxSprite):void{ colStar.kill(); colEnemy.hurt(1); } private function partiHit(colStar:FlxSprite, colEnemy:FlxSprite):void{ colEnemy.hurt(10); } override public function update():void{ var i:Number; var _old_health:uint = _player.health; var _old_score:uint = FlxG.score; super.update(); if (_player.x > _map.width){ FlxG.state = new PlayState2(_player.health); }; if (_player.dead){ _resetTick = (_resetTick - (FlxG.elapsed * 3)); }; if (_resetTick <= 0){ FlxG.state = new PlayState1(10); }; if (_slimeDrip.on){ _slimeDrip.start(false, 0.01, 10); _slimeDrip1.start(false, 0.01, 10); }; _map.collide(emitGroup); _map.collide(_rockDropArray); _pGrenades.collide(_eArray); FlxU.overlap(partiGroup, _eArray, partiHit); FlxU.overlap(_eArray, _eArray, enemiesHit); FlxU.overlap(_eArray, _player, EnemyHit); FlxU.overlap(_rockDropArray, _player, RockHitPlayer); FlxU.overlap(_pStars, _eArray, StarHitsEnemy); FlxU.overlap(_pStars, _bossArray, StarHitsBoss); FlxU.overlap(_eStars, _player, StarHitsPlayer); FlxU.overlap(_bossArray, _player, BossHitPlayer); FlxU.overlap(_heartGroup, _player, PlayerHitHeart); if (_player.dead){ FlxG.score = 0; }; if (_old_score != FlxG.score){ _scoreDisplay.text = FlxG.score.toString(); }; if (_player.health != _old_health){ i = 0; while (i < _player._max_health) { if (i >= _player.health){ _hearts.members[i].play("off"); } else { _hearts.members[i].play("on"); }; i++; }; }; } private function BossHitPlayer(E:FlxSprite, P:Player):void{ if (P._hurt_counter <= 0){ if (E.facing){ P.facing; P.maxVelocity.x = 500; P.velocity.x = 400; P.velocity.y = -400; E.velocity.x = 100; } else { P.maxVelocity.x = 500; P.velocity.x = -400; P.velocity.y = -400; E.velocity.x = -100; }; P.hurt(1); }; } private function RockHitPlayer(E:FlxSprite, P:Player):void{ if ((((P._hurt_counter <= 0)) && ((E.y < P.y)))){ if (E.x > P.x){ P.velocity.x = -100; E.velocity.x = 100; E.velocity.y = -10; } else { P.velocity.x = 100; E.velocity.x = -100; E.velocity.y = -10; }; P.hurt(1); }; } override public function create():void{ var tmpH:FlxSprite; _rockDropArray = new FlxGroup(); _bossArray = new FlxGroup(); _bulletSparks = new FlxGroup(); _gooSparks = new FlxGroup(); myBloom = new Bloom(); emitGroup = new FlxGroup(); lyrStage = new FlxGroup(); lyrSprites = new FlxGroup(); lyrHUD = new FlxGroup(); partiGroup = new FlxGroup(); _eArray = new FlxGroup(); _heartGroup = new FlxGroup(); _pStars = new FlxGroup(); var n:int; while (n < 40) { _pStars.add(lyrSprites.add(new NinjaStar(0, 0, 0, 0, _bulletSparks, this))); n = (n + 1); }; _pGrenades = new FlxGroup(); var q:int; while (q < 40) { _pGrenades.add(lyrSprites.add(new Grenade(0, 0, 0, 0, partiGroup, this))); q = (q + 1); }; _eStars = new FlxGroup(); var en:int; while (en < 40) { _eStars.add(lyrSprites.add(new NinjaStar2(0, 0, 0, 0, _gooSparks, this))); en = (en + 1); }; _player = new Player(22, -80, _pStars, _pGrenades, emitGroup, this); _player.health = previousHealth; trace(_player.health); _bossArray.members.push(new Enemy5(965, 237, _player, emitGroup, this)); lyrSprites.add(_player); _map = new FlxTilemap(); _map.loadMap(new DataMap(), ImgTiles, 16); _map.drawIndex = 1; _map.collideIndex = 1; _caveBG = new FlxSprite(); _caveBG.loadGraphic(CaveBG); _caveBG.x = 0; _caveBG.y = 0; _caveBG.scrollFactor.x = 1; _caveBG.scrollFactor.y = 1; _caveMist = new FlxSprite(); _caveMist.loadGraphic(Mist); _caveMist.x = 0; _caveMist.y = 0; _caveMist.scrollFactor.x = 1.3; _caveMist.scrollFactor.y = 1.3; _myBackGround1 = new FlxSprite(); _myBackGround1.loadGraphic(BackGround1); _myBackGround1.x = 0; _myBackGround1.y = 0; _myBackGround1.scrollFactor.x = 1; _myBackGround1.scrollFactor.y = 1; _slimeLayer = new FlxSprite(); _slimeLayer.loadGraphic(Slime); _slimeLayer.x = 0; _slimeLayer.y = 0; _slimeLayer.scrollFactor.x = 1; _slimeLayer.scrollFactor.y = 1; _slimeDrip = new FlxEmitter(); _slimeDrip.setXSpeed(100, 150); _slimeDrip.gravity = 2000; _slimeDrip.setYSpeed(-150, 150); _slimeDrip.setRotation(0, 80); _slimeDrip.createSprites(SlimeDrip, 50, 16, false, 0); _slimeDrip.x = 42; _slimeDrip.y = 187; _slimeDrip.height = -15; _slimeDrip.start(false, 0.1, 50); _slimeDrip1 = new FlxEmitter(); _slimeDrip1.setXSpeed(100, 150); _slimeDrip1.gravity = 2000; _slimeDrip1.height = -15; _slimeDrip1.setYSpeed(-150, 150); _slimeDrip1.setRotation(0, 0); _slimeDrip1.createSprites(SlimeDrip, 50, 16, false, 0); _slimeDrip1.x = 39; _slimeDrip1.y = 0xFF; _slimeDrip1.start(false, 0.1, 50); _rockDropper = new FlxEmitter(); _rockDropper.setXSpeed(0, 0); _rockDropper.setYSpeed(0, 20); _rockDropper.gravity = 100; _rockDropper.width = 575; _rockDropper.setRotation(0, 0); _rockDropper.createSprites(RockDrop, 20, 16, true, 1); _rockDropper.x = 150; _rockDropper.y = 170; _rockDropper1 = new FlxEmitter(); _rockDropper1.setXSpeed(0, 0); _rockDropper1.setYSpeed(0, 20); _rockDropper1.gravity = 100; _rockDropper1.width = 339; _rockDropper1.setRotation(0, 0); _rockDropper1.createSprites(RockDrop, 10, 16, true, 1); _rockDropper1.x = 850; _rockDropper1.y = 170; spawnEnimies(); lyrSprites.add(_bossArray); lyrSprites.add(_eArray); lyrSprites.add(_heartGroup); _rockDropArray.add(_rockDropper); _rockDropArray.add(_rockDropper1); lyrStage.add(_map); lyrStage.add(_caveBG); lyrStage.add(_slimeDrip); lyrStage.add(_slimeDrip1); lyrStage.add(_rockDropper); lyrStage.add(_rockDropper1); lyrStage.add(_myBackGround1); lyrSprites.add(_slimeLayer); lyrHUD.add(_caveMist); emitGroup.add(_player); emitGroup.add(_bossArray); emitGroup.add(_eArray); emitGroup.add(_pStars); emitGroup.add(_eStars); emitGroup.add(_pGrenades); emitGroup.add(partiGroup); emitGroup.add(_bulletSparks); emitGroup.add(_gooSparks); this.add(lyrStage); this.add(lyrSprites); this.add(lyrHUD); _hearts = new FlxGroup(); var hCount:Number = 0; while (hCount < _player._max_health) { tmpH = new FlxSprite((2 + (hCount * 10)), 2); tmpH.loadGraphic(ImgHearts, true, false); tmpH.scrollFactor.x = (tmpH.scrollFactor.y = 0); tmpH.addAnimation("on", [0]); tmpH.addAnimation("off", [1]); if (hCount <= (previousHealth - 1)){ tmpH.play("on"); } else { tmpH.play("off"); }; _hearts.add(lyrHUD.add(tmpH)); hCount++; }; _scoreDisplay = new FlxText(174, 2, 300, FlxG.score.toString()); _scoreDisplay.setFormat(null, 11, 4294967295, "right"); _scoreDisplay.scrollFactor.x = (_scoreDisplay.scrollFactor.y = 0); lyrHUD.add(_scoreDisplay); FlxG.follow(_player, 3); FlxG.followAdjust(0.3, 0); FlxG.followBounds(0, 0, _map.width, (_map.height - 16)); } } }//package
Section 230
//PlayState1_BackGround1 (PlayState1_BackGround1) package { import mx.core.*; public class PlayState1_BackGround1 extends BitmapAsset { } }//package
Section 231
//PlayState1_CaveBG (PlayState1_CaveBG) package { import mx.core.*; public class PlayState1_CaveBG extends BitmapAsset { } }//package
Section 232
//PlayState1_DataMap (PlayState1_DataMap) package { import mx.core.*; public class PlayState1_DataMap extends ByteArrayAsset { } }//package
Section 233
//PlayState1_ImgHearts (PlayState1_ImgHearts) package { import mx.core.*; public class PlayState1_ImgHearts extends BitmapAsset { } }//package
Section 234
//PlayState1_ImgSpark (PlayState1_ImgSpark) package { import mx.core.*; public class PlayState1_ImgSpark extends BitmapAsset { } }//package
Section 235
//PlayState1_ImgTiles (PlayState1_ImgTiles) package { import mx.core.*; public class PlayState1_ImgTiles extends BitmapAsset { } }//package
Section 236
//PlayState1_Mist (PlayState1_Mist) package { import mx.core.*; public class PlayState1_Mist extends BitmapAsset { } }//package
Section 237
//PlayState1_RockDrop (PlayState1_RockDrop) package { import mx.core.*; public class PlayState1_RockDrop extends BitmapAsset { } }//package
Section 238
//PlayState1_Slime (PlayState1_Slime) package { import mx.core.*; public class PlayState1_Slime extends BitmapAsset { } }//package
Section 239
//PlayState1_SlimeDrip (PlayState1_SlimeDrip) package { import mx.core.*; public class PlayState1_SlimeDrip extends BitmapAsset { } }//package
Section 240
//PlayState2 (PlayState2) package { import org.flixel.*; public class PlayState2 extends FlxState { public var _player:Player; public var lyrSprites:FlxGroup; private var _hearts:FlxGroup; private var _resetTick:Number;// = 8 private var _pipeDrip1:FlxEmitter; private var _pipeDrip2:FlxEmitter; private var _pipeDrip3:FlxEmitter; private var _pipeDrip5:FlxEmitter; private var _eStars:FlxGroup; private var _slimeBubble1:FlxEmitter; private var Mist:Class; private var _gooSparks:FlxGroup; private var _slimeBubble4:FlxEmitter; private var _pipeDrip4:FlxEmitter; private var _slimeBubble7:FlxEmitter; private var PipeDrip:Class; private var _attack_counter:Number;// = 9 private var _slimeBubble5:FlxEmitter; private var _slimeBubble6:FlxEmitter; private var _slimeBubble2:FlxEmitter; private var _slimeBubble3:FlxEmitter; private var _spawnGroup1:Boolean;// = false private var _spawnGroup2:Boolean;// = false private var _spawnGroup3:Boolean;// = false private var _spawnGroup4:Boolean;// = false private var DataMap:Class; private var previousHealth:Number; private var Blank:Class; private var _spawnGroup5:Boolean;// = false private var partiGroup:FlxGroup; private var SlimeBubble:Class; private var _myBackGround1:FlxSprite; private var emitGroup:FlxGroup; private var _bubbleArray:FlxGroup; private var wasAlive:Boolean;// = true private var ImgHearts:Class; private var _entranceBlock:FlxTileblock; public var lyrStage:FlxGroup; public var _heartGroup:FlxGroup; private var BackGround1:Class; private var _caveMist:FlxSprite; private var _fireBubbles:Number;// = 5 private var _map:FlxTilemap; private var ImgTiles:Class; private var _slimeDrip:FlxEmitter; private var _scoreDisplay:FlxText; private var _caveBG:FlxSprite; private var CaveBG:Class; private var _myGooBallsArrayX:Array; private var _myGooBallsArrayY:Array; private var _bulletSparks:FlxGroup; private var _myBatX:Array; private var _myBatY:Array; private var _pStars:FlxGroup; private var _pGrenades:FlxGroup; private var ImgSpark:Class; private var SlimeDrip:Class; public static var lyrHUD:FlxGroup; public static var _eArray:FlxGroup; public function PlayState2(playerHealth:Number):void{ ImgTiles = PlayState2_ImgTiles; DataMap = PlayState2_DataMap; ImgSpark = PlayState2_ImgSpark; Blank = PlayState2_Blank; SlimeDrip = PlayState2_SlimeDrip; PipeDrip = PlayState2_PipeDrip; SlimeBubble = PlayState2_SlimeBubble; BackGround1 = PlayState2_BackGround1; CaveBG = PlayState2_CaveBG; Mist = PlayState2_Mist; ImgHearts = PlayState2_ImgHearts; _myBatX = new Array(239, 250, 260, 270, 280, 780, 800, 820, 840, 860, 848, 960, 970, 980, 990, 1680, 1690, 1700, 1720, 1740, 1760, 1780, 1800, 1820, 1840, 1860, 1880, 1900, 1920, 1940, 1960, 1980, 2000, 1080, 1100, 1120, 1140, 1160, 1180, 1200, 1220, 1480, 1500, 1520, 1540, 1560, 1580); _myBatY = new Array(16, 16, 16, 16, 16, 80, 80, 80, 80, 80, 224, 176, 176, 176, 176, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 64, 64, 64, 64, 64, 64); _myGooBallsArrayX = new Array(72, 35, 153, 78, 719, 970, 1088, 1135, 1236, 1668, 1808, 1935, 2112, 2288); _myGooBallsArrayY = new Array(235, 178, 76, 27, 28, 130, 112, 272, 272, 228, 186, 129, 90, 123); super(); previousHealth = playerHealth; } private function EnemyHit(E:FlxSprite, P:Player):void{ if (P._hurt_counter <= 0){ if (E.x > P.x){ P.velocity.x = -100; E.velocity.x = 100; } else { P.velocity.x = 100; E.velocity.x = -100; }; P.hurt(1); }; } private function spawnEnimies():void{ var g:Number = 0; while (g < _myGooBallsArrayX.length) { _eArray.members.push(new Enemy4(_myGooBallsArrayX[g], _myGooBallsArrayY[g], _player, emitGroup, _eStars, this)); g++; }; var b:Number = 0; while (b < _myBatX.length) { _eArray.members.push(new Enemy6(_myBatX[b], _myBatY[b], _player, emitGroup, this)); b++; }; } private function makePipeDrip():void{ _pipeDrip1 = new FlxEmitter(); _pipeDrip1.setXSpeed(0, 0); _pipeDrip1.gravity = 100; _pipeDrip1.setYSpeed(20, 150); _pipeDrip1.setRotation(0, 0); _pipeDrip1.createSprites(PipeDrip, 50, 16, false, 0); _pipeDrip1.x = 1610; _pipeDrip1.y = 180; _pipeDrip1.start(false, 0.01, 50); _pipeDrip2 = new FlxEmitter(); _pipeDrip2.setXSpeed(0, 0); _pipeDrip2.gravity = 100; _pipeDrip2.setYSpeed(20, 150); _pipeDrip2.setRotation(0, 0); _pipeDrip2.createSprites(PipeDrip, 50, 16, false, 0); _pipeDrip2.x = 1750; _pipeDrip2.y = 96; _pipeDrip2.start(false, 0.01, 50); _pipeDrip3 = new FlxEmitter(); _pipeDrip3.setXSpeed(0, 0); _pipeDrip3.gravity = 100; _pipeDrip3.setYSpeed(20, 150); _pipeDrip3.setRotation(0, 0); _pipeDrip3.createSprites(PipeDrip, 50, 16, false, 0); _pipeDrip3.x = 1905; _pipeDrip3.y = 96; _pipeDrip3.start(false, 0.01, 50); _pipeDrip4 = new FlxEmitter(); _pipeDrip4.setXSpeed(0, 0); _pipeDrip4.gravity = 100; _pipeDrip4.setYSpeed(20, 150); _pipeDrip4.setRotation(0, 0); _pipeDrip4.createSprites(PipeDrip, 50, 16, false, 0); _pipeDrip4.x = 2054; _pipeDrip4.y = 96; _pipeDrip4.start(false, 0.01, 50); _pipeDrip5 = new FlxEmitter(); _pipeDrip5.setXSpeed(0, 0); _pipeDrip5.gravity = 100; _pipeDrip5.setYSpeed(20, 150); _pipeDrip5.setRotation(0, 0); _pipeDrip5.createSprites(PipeDrip, 50, 16, false, 0); _pipeDrip5.x = 2260; _pipeDrip5.y = 96; _pipeDrip5.start(false, 0.01, 50); } private function StarHitsPlayer(colStar:FlxSprite, colPlayer:Player):void{ colStar.kill(); colPlayer.hurt(1); } private function fireBubbles():void{ _slimeBubble1.start(false, 0.09, ((Math.random() * 10) + 5)); _slimeBubble2.start(false, 0.09, ((Math.random() * 10) + 5)); _slimeBubble3.start(false, 0.09, ((Math.random() * 10) + 5)); _slimeBubble4.start(false, 0.09, ((Math.random() * 10) + 5)); _slimeBubble5.start(false, 0.09, ((Math.random() * 10) + 5)); _slimeBubble6.start(false, 0.09, ((Math.random() * 10) + 5)); _slimeBubble7.start(false, 0.09, ((Math.random() * 10) + 5)); } private function enemiesHit(E:FlxSprite, P:FlxSprite):void{ if (E.x > P.x){ P.velocity.x = -100; E.velocity.x = 100; } else { P.velocity.x = 100; E.velocity.x = -100; }; } private function PlayerHitHeart(heart:Heart, P:Player):void{ if (P.health < 10){ P.health = (P.health + 1); }; heart.kill(); } private function makeSlimeBubbles():void{ _slimeBubble1 = new FlxEmitter(); _slimeBubble1.setXSpeed(0, 0); _slimeBubble1.gravity = 0; _slimeBubble1.setYSpeed(-50, -100); _slimeBubble1.setRotation(0, 0); _slimeBubble1.createSprites(SlimeBubble, 10, 16, true, 0.5); _slimeBubble1.x = 290; _slimeBubble1.y = 350; _slimeBubble2 = new FlxEmitter(); _slimeBubble2.setXSpeed(0, 0); _slimeBubble2.gravity = 0; _slimeBubble2.setYSpeed(-50, -100); _slimeBubble2.setRotation(0, 0); _slimeBubble2.createSprites(SlimeBubble, 10, 16, true, 0.5); _slimeBubble2.x = 330; _slimeBubble2.y = 350; _slimeBubble3 = new FlxEmitter(); _slimeBubble3.setXSpeed(0, 0); _slimeBubble3.gravity = 0; _slimeBubble3.setYSpeed(-50, -100); _slimeBubble3.setRotation(0, 0); _slimeBubble3.createSprites(SlimeBubble, 10, 16, true, 0.5); _slimeBubble3.x = 370; _slimeBubble3.y = 350; _slimeBubble4 = new FlxEmitter(); _slimeBubble4.setXSpeed(0, 0); _slimeBubble4.gravity = 0; _slimeBubble4.setYSpeed(-50, -100); _slimeBubble4.setRotation(0, 0); _slimeBubble4.createSprites(SlimeBubble, 10, 16, true, 0.5); _slimeBubble4.x = 415; _slimeBubble4.y = 350; _slimeBubble5 = new FlxEmitter(); _slimeBubble5.setXSpeed(0, 0); _slimeBubble5.gravity = 0; _slimeBubble5.setYSpeed(-50, -100); _slimeBubble5.setRotation(0, 0); _slimeBubble5.createSprites(SlimeBubble, 10, 16, true, 0.5); _slimeBubble5.x = 472; _slimeBubble5.y = 350; _slimeBubble6 = new FlxEmitter(); _slimeBubble6.setXSpeed(0, 0); _slimeBubble6.gravity = 0; _slimeBubble6.setYSpeed(-50, -100); _slimeBubble6.setRotation(0, 0); _slimeBubble6.createSprites(SlimeBubble, 10, 16, true, 0.5); _slimeBubble6.x = 529; _slimeBubble6.y = 350; _slimeBubble7 = new FlxEmitter(); _slimeBubble7.setXSpeed(0, 0); _slimeBubble7.gravity = 0; _slimeBubble7.setYSpeed(-50, -100); _slimeBubble7.setRotation(0, 0); _slimeBubble7.createSprites(SlimeBubble, 10, 16, true, 0.5); _slimeBubble7.x = 584; _slimeBubble7.y = 350; } override public function update():void{ var i:Number; var _old_health:uint = _player.health; var _old_score:uint = FlxG.score; super.update(); if ((((((_player.y > 280)) && ((_player.x < 307)))) && ((_spawnGroup1 == false)))){ spawnGroup2(100, 275); _spawnGroup1 = true; }; if ((((((_player.x > 618)) && ((_player.y > 280)))) && ((_spawnGroup2 == false)))){ spawnGroup2(640, 275); _spawnGroup2 = true; }; if ((((((((_player.x > 1193)) && ((_player.x < 1339)))) && ((_player.y > 280)))) && ((_spawnGroup3 == false)))){ spawnGroup2(976, 275); spawnGroup2(1328, 275); _spawnGroup3 = true; }; if ((((_fireBubbles > 0)) && ((_player.x < 835)))){ _fireBubbles = (_fireBubbles - (FlxG.elapsed * 3)); }; if (_fireBubbles <= 0){ _fireBubbles = 10; fireBubbles(); }; if (_player.y > _map.height){ killPlayer(); }; if (_player.dead){ _resetTick = (_resetTick - (FlxG.elapsed * 3)); }; if (_resetTick <= 0){ FlxG.state = new PlayState2(10); }; if (_player.x < 835){ _slimeDrip.start(false, 0.01, 125); }; if (_player.x > 1321){ _pipeDrip1.start(false, 0.015, 50); _pipeDrip2.start(false, 0.015, 50); _pipeDrip3.start(false, 0.015, 50); _pipeDrip4.start(false, 0.015, 50); _pipeDrip5.start(false, 0.015, 50); }; if (_player.x > 1532){ _player.drag.x = 75; } else { _player.drag.x = 400; }; _map.collide(emitGroup); _entranceBlock.collide(_player); _pGrenades.collide(_eArray); FlxU.overlap(partiGroup, _eArray, partiHit); FlxU.overlap(_eArray, _eArray, enemiesHit); FlxU.overlap(_eArray, _player, EnemyHit); FlxU.overlap(_pStars, _eArray, StarHitsEnemy); FlxU.overlap(_eStars, _player, StarHitsPlayer); FlxU.overlap(_heartGroup, _player, PlayerHitHeart); FlxU.overlap(_bubbleArray, _player, PlayerHitBubble); if (_player.dead){ FlxG.score = 0; }; if (_old_score != FlxG.score){ _scoreDisplay.text = FlxG.score.toString(); }; if (_player.health != _old_health){ i = 0; while (i < _player._max_health) { if (i >= _player.health){ _hearts.members[i].play("off"); } else { _hearts.members[i].play("on"); }; i++; }; }; } private function StarHitsEnemy(colStar:FlxSprite, colEnemy:FlxSprite):void{ colStar.kill(); colEnemy.hurt(1); } private function partiHit(colStar:FlxSprite, colEnemy:FlxSprite):void{ colEnemy.hurt(10); } private function killPlayer():void{ if (wasAlive == true){ _player.kill(); }; wasAlive = false; } private function spawnGroup2(startingX:Number, startingY:Number):void{ var myRandomNum:Number; var i:Number = 1; while (i < 6) { myRandomNum = Math.round((Math.random() * 1)); if (myRandomNum > 0){ _eArray.members.push(new Enemy2((startingX + (i * 30)), startingY, _player, emitGroup, this)); } else { _eArray.members.push(new Enemy3((startingX + (i * 30)), startingY, _player, emitGroup, this)); }; i++; }; } override public function create():void{ var tmpH:FlxSprite; _bulletSparks = new FlxGroup(); _gooSparks = new FlxGroup(); emitGroup = new FlxGroup(); lyrStage = new FlxGroup(); lyrSprites = new FlxGroup(); lyrHUD = new FlxGroup(); partiGroup = new FlxGroup(); _eArray = new FlxGroup(); _heartGroup = new FlxGroup(); _bubbleArray = new FlxGroup(); _slimeDrip = new FlxEmitter(); _slimeBubble1 = new FlxEmitter(); _slimeBubble2 = new FlxEmitter(); _slimeBubble3 = new FlxEmitter(); _slimeBubble4 = new FlxEmitter(); _slimeBubble5 = new FlxEmitter(); _pStars = new FlxGroup(); var n:int; while (n < 40) { _pStars.add(lyrSprites.add(new NinjaStar(0, 0, 0, 0, _bulletSparks, this))); n = (n + 1); }; _pGrenades = new FlxGroup(); var q:int; while (q < 40) { _pGrenades.add(lyrSprites.add(new Grenade(0, 0, 0, 0, partiGroup, this))); q = (q + 1); }; _eStars = new FlxGroup(); var en:int; while (en < 40) { _eStars.add(lyrSprites.add(new NinjaStar2(0, 0, 0, 0, _gooSparks, this))); en = (en + 1); }; _player = new Player(3, 281, _pStars, _pGrenades, emitGroup, this); _player.health = previousHealth; _player.velocity.x = 300; _map = new FlxTilemap(); _map.loadMap(new DataMap(), ImgTiles, 16); _map.drawIndex = 1; _map.collideIndex = 1; _entranceBlock = new FlxTileblock(-15, 272, 16, 48); _entranceBlock.loadGraphic(Blank); _caveBG = new FlxSprite(); _caveBG.loadGraphic(CaveBG); _caveBG.x = 0; _caveBG.y = 0; _caveBG.scrollFactor.x = 1; _caveBG.scrollFactor.y = 1; _caveMist = new FlxSprite(); _caveMist.loadGraphic(Mist); _caveMist.x = 0; _caveMist.y = 0; _caveMist.scrollFactor.x = 1.3; _caveMist.scrollFactor.y = 1.3; _myBackGround1 = new FlxSprite(); _myBackGround1.loadGraphic(BackGround1); _myBackGround1.x = 0; _myBackGround1.y = 0; _myBackGround1.scrollFactor.x = 1; _myBackGround1.scrollFactor.y = 1; _slimeDrip = new FlxEmitter(); _slimeDrip.setXSpeed(0, 0); _slimeDrip.gravity = 100; _slimeDrip.setYSpeed(20, 150); _slimeDrip.setRotation(0, 0); _slimeDrip.createSprites(SlimeDrip, 125, 16, false, 0); _slimeDrip.x = 290; _slimeDrip.y = 0; _slimeDrip.width = 300; _slimeDrip.start(false, 0.001, 125); makePipeDrip(); makeSlimeBubbles(); spawnEnimies(); lyrSprites.add(_eArray); lyrSprites.add(_heartGroup); lyrStage.add(_map); lyrStage.add(_caveBG); lyrStage.add(_slimeDrip); lyrStage.add(_pipeDrip1); lyrStage.add(_pipeDrip2); lyrStage.add(_pipeDrip3); lyrStage.add(_pipeDrip4); lyrStage.add(_pipeDrip5); lyrStage.add(_entranceBlock); _bubbleArray.add(_slimeBubble1); _bubbleArray.add(_slimeBubble2); _bubbleArray.add(_slimeBubble3); _bubbleArray.add(_slimeBubble4); _bubbleArray.add(_slimeBubble5); _bubbleArray.add(_slimeBubble6); _bubbleArray.add(_slimeBubble7); lyrStage.add(_player); lyrStage.add(_bubbleArray); lyrStage.add(_myBackGround1); lyrHUD.add(_caveMist); emitGroup.add(_player); emitGroup.add(_eArray); emitGroup.add(_pStars); emitGroup.add(_eStars); emitGroup.add(_pGrenades); emitGroup.add(partiGroup); emitGroup.add(_bulletSparks); emitGroup.add(_gooSparks); this.add(lyrStage); this.add(lyrSprites); this.add(lyrHUD); _hearts = new FlxGroup(); var hCount:Number = 0; while (hCount < _player._max_health) { tmpH = new FlxSprite((2 + (hCount * 10)), 2); tmpH.loadGraphic(ImgHearts, true, false); tmpH.scrollFactor.x = (tmpH.scrollFactor.y = 0); tmpH.addAnimation("on", [0]); tmpH.addAnimation("off", [1]); if (hCount <= (previousHealth - 1)){ tmpH.play("on"); } else { tmpH.play("off"); }; _hearts.add(lyrHUD.add(tmpH)); hCount++; }; _scoreDisplay = new FlxText(174, 2, 300, FlxG.score.toString()); _scoreDisplay.setFormat(null, 11, 4294967295, "right"); _scoreDisplay.scrollFactor.x = (_scoreDisplay.scrollFactor.y = 0); lyrHUD.add(_scoreDisplay); FlxG.follow(_player, 3); FlxG.followAdjust(0.3, 0); FlxG.followBounds(0, 0, _map.width, (_map.height - 16)); } private function PlayerHitBubble(bubble:FlxSprite, P:Player):void{ if (P._hurt_counter <= 0){ P.hurt(1); bubble.kill(); if (P.facing){ P.velocity.x = -100; } else { P.velocity.x = 100; }; }; } } }//package
Section 241
//PlayState2_BackGround1 (PlayState2_BackGround1) package { import mx.core.*; public class PlayState2_BackGround1 extends BitmapAsset { } }//package
Section 242
//PlayState2_Blank (PlayState2_Blank) package { import mx.core.*; public class PlayState2_Blank extends BitmapAsset { } }//package
Section 243
//PlayState2_CaveBG (PlayState2_CaveBG) package { import mx.core.*; public class PlayState2_CaveBG extends BitmapAsset { } }//package
Section 244
//PlayState2_DataMap (PlayState2_DataMap) package { import mx.core.*; public class PlayState2_DataMap extends ByteArrayAsset { } }//package
Section 245
//PlayState2_ImgHearts (PlayState2_ImgHearts) package { import mx.core.*; public class PlayState2_ImgHearts extends BitmapAsset { } }//package
Section 246
//PlayState2_ImgSpark (PlayState2_ImgSpark) package { import mx.core.*; public class PlayState2_ImgSpark extends BitmapAsset { } }//package
Section 247
//PlayState2_ImgTiles (PlayState2_ImgTiles) package { import mx.core.*; public class PlayState2_ImgTiles extends BitmapAsset { } }//package
Section 248
//PlayState2_Mist (PlayState2_Mist) package { import mx.core.*; public class PlayState2_Mist extends BitmapAsset { } }//package
Section 249
//PlayState2_PipeDrip (PlayState2_PipeDrip) package { import mx.core.*; public class PlayState2_PipeDrip extends BitmapAsset { } }//package
Section 250
//PlayState2_SlimeBubble (PlayState2_SlimeBubble) package { import mx.core.*; public class PlayState2_SlimeBubble extends BitmapAsset { } }//package
Section 251
//PlayState2_SlimeDrip (PlayState2_SlimeDrip) package { import mx.core.*; public class PlayState2_SlimeDrip extends BitmapAsset { } }//package
Section 252
//Preloader (Preloader) package { import org.flixel.*; public class Preloader extends FlxPreloader { public function Preloader(){ className = "Game"; super(); } } }//package
Section 253
//StartScreenZombie (StartScreenZombie) package { import org.flixel.*; public class StartScreenZombie extends FlxSprite { private var _dirtEmitter:FlxEmitter; private var ImgPlayer:Class; private var Dirt:Class; private var _myState1; private var _playStart:Boolean;// = false private var _move_speed:int;// = 400 private var _inGroup:FlxGroup; public function StartScreenZombie(X:Number, Y:Number, MyGroup:FlxGroup, myState):void{ ImgPlayer = StartScreenZombie_ImgPlayer; Dirt = StartScreenZombie_Dirt; super(X, Y); _inGroup = MyGroup; _myState1 = myState; loadGraphic(ImgPlayer, true, true, 24, 39); maxVelocity.x = 100; maxVelocity.y = 0; health = 5; acceleration.y = 0; drag.x = 300; width = 16; height = 32; offset.y = 7; addAnimation("normal", [0, 1, 0, 2], 10); addAnimation("alive", [3, 4, 5, 6, 7], 2, false); play("alive", false); addAnimationCallback(testFunction); _dirtEmitter = new FlxEmitter((x + 12), (y + 39)); _dirtEmitter.setXSpeed(-100, 100); _dirtEmitter.setYSpeed(-200, 0); _dirtEmitter.setRotation(0, 0); _dirtEmitter.createSprites(Dirt, 10, 16, true, 0.5); _inGroup.add(_dirtEmitter); _dirtEmitter.start(true, 1, 10); var myNumber:Number = Math.round((Math.random() * 1)); if (myNumber == 1){ facing = LEFT; } else { facing = RIGHT; }; } override public function update():void{ if ((((x > 500)) || ((x < -100)))){ kill(); }; if (_playStart == true){ if (facing == LEFT){ facing = LEFT; play("normal"); velocity.x = (velocity.x - (_move_speed * FlxG.elapsed)); } else { play("normal"); facing = RIGHT; velocity.x = (velocity.x + (_move_speed * FlxG.elapsed)); }; }; super.update(); } private function testFunction($animationName:String, $frameNumber:uint, $frameIndex:uint):void{ if (((($animationName == "alive")) && (finished))){ _playStart = true; }; } } }//package
Section 254
//StartScreenZombie_Dirt (StartScreenZombie_Dirt) package { import mx.core.*; public class StartScreenZombie_Dirt extends BitmapAsset { } }//package
Section 255
//StartScreenZombie_ImgPlayer (StartScreenZombie_ImgPlayer) package { import mx.core.*; public class StartScreenZombie_ImgPlayer extends BitmapAsset { } }//package

Library Items

Symbol 1 Sound {org.flixel.FlxGame_SndFlixel} [org.flixel.FlxGame_SndFlixel]
Symbol 2 Sound {org.flixel.FlxGame_SndBeep} [org.flixel.FlxGame_SndBeep]
Symbol 3 Bitmap {org.flixel.data.FlxMouse_ImgDefaultCursor}
Symbol 4 Bitmap {org.flixel.data.FlxPause_ImgKey0}
Symbol 5 Bitmap {org.flixel.FlxPreloader_ImgLogoLight}
Symbol 6 Bitmap {org.flixel.FlxPreloader_ImgLogoCorners}
Symbol 7 Bitmap {org.flixel.FlxPreloader_ImgLogo}
Symbol 8 Bitmap {org.flixel.data.FlxPanel_ImgStumble}
Symbol 9 Bitmap {org.flixel.data.FlxPanel_ImgClose}
Symbol 10 Bitmap {org.flixel.data.FlxPause_ImgKeyPlus}
Symbol 11 Bitmap {org.flixel.data.FlxPanel_ImgDonate}
Symbol 12 Bitmap {org.flixel.data.FlxPause_ImgKeyMinus}
Symbol 13 Bitmap {org.flixel.data.FlxPanel_ImgTwitter}
Symbol 14 Bitmap {org.flixel.data.FlxPause_ImgKeyP}
Symbol 15 Font {org.flixel.FlxGame_junk}
Symbol 16 Bitmap {org.flixel.data.FlxPanel_ImgDigg}
Symbol 17 Bitmap {org.flixel.data.FlxPanel_ImgReddit}
Symbol 18 Bitmap {org.flixel.data.FlxPanel_ImgDelicious}
Symbol 19 Sound [MenuState_Crack2]
Symbol 20 Sound {Player_JumpSound} [Player_JumpSound]
Symbol 21 Sound {Player_PlayerKillSound} [Player_PlayerKillSound]
Symbol 22 Sound {Player_PlayerHitSound} [Player_PlayerHitSound]
Symbol 23 Sound {Player_gunFireSound} [Player_gunFireSound]
Symbol 24 Sound {Player_ThrowNade} [Player_ThrowNade]
Symbol 25 Sound {MenuState_bgMusic} [MenuState_bgMusic]
Symbol 26 Sound [PlayState_Crack1]
Symbol 27 Sound {MenuState_StartSound} [MenuState_StartSound]
Symbol 28 Sound {MenuState_Crack1} [MenuState_Crack1]
Symbol 29 Sound {PlayState_Crack2} [PlayState_Crack2]
Symbol 30 Sound {Enemy4_zombieKillSound} [Enemy4_zombieKillSound]
Symbol 31 Sound {Enemy4_zombieHurt} [Enemy4_zombieHurt]
Symbol 32 Sound {Enemy3_zombieHurt} [Enemy3_zombieHurt]
Symbol 33 Sound {Enemy3_zombieKillSound} [Enemy3_zombieKillSound]
Symbol 34 Sound {Enemy2_zombieHurt} [Enemy2_zombieHurt]
Symbol 35 Sound {Enemy2_zombieKillSound} [Enemy2_zombieKillSound]
Symbol 36 Sound {Heart_HeartSound} [Heart_HeartSound]
Symbol 37 Sound {Grenade_Dink} [Grenade_Dink]
Symbol 38 Sound {Grenade_Explode} [Grenade_Explode]
Symbol 39 Sound {Enemy6_zombieHurt} [Enemy6_zombieHurt]
Symbol 40 Sound {Enemy6_zombieKillSound} [Enemy6_zombieKillSound]
Symbol 41 Sound {Enemy5_zombieKillSound} [Enemy5_zombieKillSound]
Symbol 42 Sound {Enemy5_zombieHurt} [Enemy5_zombieHurt]
Symbol 43 Sound {Enemy5_Growl} [Enemy5_Growl]
Symbol 44 Bitmap {MenuState_Foreground}
Symbol 45 Bitmap {PlayState_ImgSpark}
Symbol 46 Bitmap {Enemy2_ImgPlayer}
Symbol 47 Bitmap {PlayState2_SlimeBubble}
Symbol 48 Bitmap {MenuState_Title}
Symbol 49 Bitmap {NinjaStar_ImgStar}
Symbol 50 Bitmap {Heart_ImgHearts}
Symbol 51 BinaryData {PlayState2_DataMap}
Symbol 52 Bitmap {Grenade_ImgStar}
Symbol 53 Bitmap {Enemy5_zombieGibs}
Symbol 54 Bitmap {Enemy5_ImgPlayer}
Symbol 55 Bitmap {MenuState_PressStart}
Symbol 56 Bitmap {Enemy6_Blood}
Symbol 57 Bitmap {MenuState_Mist}
Symbol 58 Bitmap {Grenade_ImgSpark}
Symbol 59 Bitmap {NinjaStar2_ImgStar}
Symbol 60 Bitmap {Enemy4_ImgPlayer}
Symbol 61 Bitmap {PlayState1_Mist}
Symbol 62 Bitmap {PlayState1_ImgHearts}
Symbol 63 Bitmap {Player_ImgPlayer}
Symbol 64 Bitmap {PlayState1_Slime}
Symbol 65 Bitmap {PlayState2_PipeDrip}
Symbol 66 BinaryData {PlayState_DataMap}
Symbol 67 Bitmap {MenuState_Rain}
Symbol 68 Bitmap {PlayState2_BackGround1}
Symbol 69 Bitmap {org.flixel.FlxTilemap_ImgAuto}
Symbol 70 BinaryData {PlayState1_DataMap}
Symbol 71 Bitmap {Enemy4_zombieGibs}
Symbol 72 Bitmap {Player__PlayerGibs}
Symbol 73 Bitmap {PlayState_ImgTiles}
Symbol 74 Bitmap {MenuState_Clouds}
Symbol 75 Bitmap {MenuState_Sky}
Symbol 76 Bitmap {StartScreenZombie_Dirt}
Symbol 77 Bitmap {Enemy6_ImgPlayer}
Symbol 78 Bitmap {PlayState1_RockDrop}
Symbol 79 Bitmap {PlayState2_CaveBG}
Symbol 80 Bitmap {org.flixel.FlxTilemap_ImgAutoAlt}
Symbol 81 Bitmap {PlayState2_ImgTiles}
Symbol 82 Bitmap {Player_ImgSpark}
Symbol 83 Bitmap {PlayState_BackGround4}
Symbol 84 Bitmap {PlayState_BackGround5}
Symbol 85 Bitmap {PlayState_BackGround6}
Symbol 86 Bitmap {PlayState_BackGround1}
Symbol 87 Bitmap {PlayState_BackGround5on2}
Symbol 88 Bitmap {PlayState_BackGround5on1}
Symbol 89 Bitmap {PlayState_BackGround2}
Symbol 90 Bitmap {PlayState_BackGround3}
Symbol 91 Bitmap {PlayState_BackGround2on1}
Symbol 92 Bitmap {PlayState1_ImgTiles}
Symbol 93 Bitmap {Enemy3_ImgPlayer}
Symbol 94 Bitmap {PlayState2_Blank}
Symbol 95 Bitmap {PlayState2_SlimeDrip}
Symbol 96 Bitmap {PlayState1_BackGround1}
Symbol 97 Bitmap {MenuState_Moon}
Symbol 98 Bitmap {PlayState_BackGround1on1}
Symbol 99 Bitmap {PlayState1_CaveBG}
Symbol 100 Bitmap {PlayState1_SlimeDrip}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 1 as "org.flixel.FlxGame_SndFlixel"
ExportAssets (56)Timeline Frame 1Symbol 2 as "org.flixel.FlxGame_SndBeep"
ExportAssets (56)Timeline Frame 2Symbol 19 as "MenuState_Crack2"
ExportAssets (56)Timeline Frame 2Symbol 20 as "Player_JumpSound"
ExportAssets (56)Timeline Frame 2Symbol 21 as "Player_PlayerKillSound"
ExportAssets (56)Timeline Frame 2Symbol 22 as "Player_PlayerHitSound"
ExportAssets (56)Timeline Frame 2Symbol 23 as "Player_gunFireSound"
ExportAssets (56)Timeline Frame 2Symbol 24 as "Player_ThrowNade"
ExportAssets (56)Timeline Frame 2Symbol 25 as "MenuState_bgMusic"
ExportAssets (56)Timeline Frame 2Symbol 26 as "PlayState_Crack1"
ExportAssets (56)Timeline Frame 2Symbol 27 as "MenuState_StartSound"
ExportAssets (56)Timeline Frame 2Symbol 28 as "MenuState_Crack1"
ExportAssets (56)Timeline Frame 2Symbol 29 as "PlayState_Crack2"
ExportAssets (56)Timeline Frame 2Symbol 30 as "Enemy4_zombieKillSound"
ExportAssets (56)Timeline Frame 2Symbol 31 as "Enemy4_zombieHurt"
ExportAssets (56)Timeline Frame 2Symbol 32 as "Enemy3_zombieHurt"
ExportAssets (56)Timeline Frame 2Symbol 33 as "Enemy3_zombieKillSound"
ExportAssets (56)Timeline Frame 2Symbol 34 as "Enemy2_zombieHurt"
ExportAssets (56)Timeline Frame 2Symbol 35 as "Enemy2_zombieKillSound"
ExportAssets (56)Timeline Frame 2Symbol 36 as "Heart_HeartSound"
ExportAssets (56)Timeline Frame 2Symbol 37 as "Grenade_Dink"
ExportAssets (56)Timeline Frame 2Symbol 38 as "Grenade_Explode"
ExportAssets (56)Timeline Frame 2Symbol 39 as "Enemy6_zombieHurt"
ExportAssets (56)Timeline Frame 2Symbol 40 as "Enemy6_zombieKillSound"
ExportAssets (56)Timeline Frame 2Symbol 41 as "Enemy5_zombieKillSound"
ExportAssets (56)Timeline Frame 2Symbol 42 as "Enemy5_zombieHurt"
ExportAssets (56)Timeline Frame 2Symbol 43 as "Enemy5_Growl"
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$AP$RcLHA.NurGBY29Si7xZ/K0."
DebugMX1 (63)Timeline Frame 1
SerialNumber (41)Timeline Frame 1

Labels

"Preloader"Frame 1
"Game"Frame 2




http://swfchan.com/19/90859/info.shtml
Created: 28/3 -2019 05:15:00 Last modified: 28/3 -2019 05:15:00 Server time: 13/05 -2024 17:46:31