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

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

Dr. Membrane sliderama.swf

This is the info page for
Flash #47237

(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.0.0.0"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } 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(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//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.0.0.0"; } }//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.0.0.0"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.left = _arg1; this.top = _arg2; this.right = _arg3; this.bottom = _arg4; } 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.0.0.0"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 5
//FlexMovieClip (mx.core.FlexMovieClip) package mx.core { import flash.display.*; import mx.utils.*; public class FlexMovieClip extends MovieClip { mx_internal static const VERSION:String = "3.0.0.0"; public function FlexMovieClip(){ super(); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 6
//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.core
Section 7
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 8
//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(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1: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(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 9
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 10
//MovieClipAsset (mx.core.MovieClipAsset) package mx.core { public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder { private var _measuredHeight:Number; private var _measuredWidth:Number; mx_internal static const VERSION:String = "3.0.0.0"; public function MovieClipAsset(){ _measuredWidth = width; _measuredHeight = height; } public function get measuredWidth():Number{ return (_measuredWidth); } public function get measuredHeight():Number{ return (_measuredHeight); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function get borderMetrics():EdgeMetrics{ if (scale9Grid == null){ return (EdgeMetrics.EMPTY); }; return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom)))); } } }//package mx.core
Section 11
//MovieClipLoaderAsset (mx.core.MovieClipLoaderAsset) package mx.core { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.system.*; public class MovieClipLoaderAsset extends MovieClipAsset implements IFlexAsset, IFlexDisplayObject { protected var initialHeight:Number;// = 0 private var loader:Loader;// = null private var initialized:Boolean;// = false protected var initialWidth:Number;// = 0 private var requestedHeight:Number; private var requestedWidth:Number; mx_internal static const VERSION:String = "3.0.0.0"; public function MovieClipLoaderAsset(){ var _local1:LoaderContext = new LoaderContext(); _local1.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); if (("allowLoadBytesCodeExecution" in _local1)){ _local1["allowLoadBytesCodeExecution"] = true; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.loadBytes(movieClipData, _local1); addChild(loader); } override public function get width():Number{ if (!initialized){ return (initialWidth); }; return (super.width); } override public function set width(_arg1:Number):void{ if (!initialized){ requestedWidth = _arg1; } else { loader.width = _arg1; }; } override public function get measuredHeight():Number{ return (initialHeight); } private function completeHandler(_arg1:Event):void{ initialized = true; initialWidth = loader.width; initialHeight = loader.height; if (!isNaN(requestedWidth)){ loader.width = requestedWidth; }; if (!isNaN(requestedHeight)){ loader.height = requestedHeight; }; dispatchEvent(_arg1); } override public function set height(_arg1:Number):void{ if (!initialized){ requestedHeight = _arg1; } else { loader.height = _arg1; }; } override public function get measuredWidth():Number{ return (initialWidth); } override public function get height():Number{ if (!initialized){ return (initialHeight); }; return (super.height); } public function get movieClipData():ByteArray{ return (null); } } }//package mx.core
Section 12
//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 13
//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.0.0.0"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var _local2:String; var _local4:String; var _local5:Array; var _local3:DisplayObject = _arg1; while (_local3 != null) { if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){ break; }; _local4 = _local3.name; if ((_local3 is IRepeaterClient)){ _local5 = IRepeaterClient(_local3).instanceIndices; if (_local5){ _local4 = (_local4 + (("[" + _local5.join("][")) + "]")); }; }; _local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2); _local3 = _local3.parent; }; return (_local2); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 14
//Ball (Ball) package { import flash.display.*; public class Ball { public var _visible:BallVisible;// = null public var _location:Location; public var _occupancyType:int;// = 0 public function Ball(){ _location = new Location(); super(); } public function CreateVisibles(_arg1:Sprite):void{ _visible = new BallVisible(_occupancyType); _visible.x = _location._pos.x; _visible.y = _location._pos.y; _arg1.addChild(_visible); } } }//package
Section 15
//BallVisible (BallVisible) package { import flash.events.*; import flash.display.*; public class BallVisible extends Sprite { private var _size:Number;// = 35 public var _occupancyType:int;// = 0 private var _selected:Boolean;// = false private var _animationVal:Number;// = 0 public function BallVisible(_arg1:int){ _occupancyType = _arg1; UpdateDrawList(); } public function MakeBallSelected(_arg1:Boolean):void{ if (((!(_selected)) && (_arg1))){ addEventListener(Event.ENTER_FRAME, OnEnterFrame); _animationVal = 0; _selected = true; } else { if (((_selected) && (!(_arg1)))){ removeEventListener(Event.ENTER_FRAME, OnEnterFrame); _animationVal = 0; _selected = false; UpdateDrawList(); }; }; } public function UpdateDrawList():void{ var _local1:int = GetColor(); var _local2:Number = Math.cos(((_animationVal * Math.PI) * 2)); _local2 = (_local2 * 0.1); _local2 = (_local2 + (0.1 + 0.8)); _local1 = Misc.ScaleColor(_local1, _local2); graphics.clear(); VisibleObjects.AddShadedSphereToDrawList(this, _local1, _size, true, true); } private function GetColor():int{ var _local1:int; switch (_occupancyType){ case 0: break; case 1: _local1 = 0xFF0000; break; case 2: _local1 = 0xFF00; break; case 3: _local1 = 4235519; break; case 4: _local1 = 0xC0C0C0; break; }; return (_local1); } public function OnEnterFrame(_arg1:Event):void{ _animationVal = (_animationVal + 0.1); if (_animationVal > 1){ _animationVal = (_animationVal - 1); }; UpdateDrawList(); } } }//package
Section 16
//Constants (Constants) package { public class Constants { public static const THRESHOLD_DIST_TO_DETERMINE_RUN:Number = 10; public static const LEVEL_SELECT_FRAME_BORDER:Number = 5; public static const BALL_RADIUS_SELECTED:Number = 30; public static const BALL_POST_RELEASE_MOVE_TO_LOCATION_SPEED:Number = 0.1; public static const BALL_RADIUS:Number = 35; public static const URL_OTHER_GAMES_MOVIE:String = "http://www.reflexive.com/index.php?PAGE=WebGameHome&REFERRER=DrMembrainSliderama&SOURCE=IntroMovie"; public static const URL_OTHER_GAMES_MAIN:String = "http://www.reflexive.com/index.php?PAGE=WebGameHome&REFERRER=DrMembrainSliderama&SOURCE=Main"; public static const BALL_SELECT_REGION_RADIUS:Number = 40; public static const LOCATION_RADIUS:Number = 70; public static const URL_PUT_ON_SITE:String = "http://www.reflexive.com/index.php?PAGE=WebGameForMySite&REFERRER=DrMembrainSliderama&SOURCE=Main"; } }//package
Section 17
//DebugButton (DebugButton) package { import flash.display.*; public class DebugButton extends SimpleButton { public function DebugButton(_arg1:String){ upState = new DebugButtonDisplayState(_arg1); downState = upState; overState = upState; hitTestState = upState; useHandCursor = true; } } }//package
Section 18
//DebugButtonDisplayState (DebugButtonDisplayState) package { import flash.display.*; import flash.text.*; public class DebugButtonDisplayState extends Sprite { public var _text:String; public function DebugButtonDisplayState(_arg1:String){ _text = new String(); super(); _text = _arg1; draw(); } private function draw():void{ graphics.beginFill(0xFFFFFF); graphics.drawRect(0, 0, 60, 24); graphics.endFill(); var _local1:TextField = new TextField(); _local1.text = _text; _local1.width = 60; _local1.height = 24; var _local2:TextFormat = new TextFormat(); _local2.align = TextFormatAlign.CENTER; _local2.font = "Arial"; _local2.size = 15; _local1.setTextFormat(_local2); addChild(_local1); } } }//package
Section 19
//DebugVisibleLayer (DebugVisibleLayer) package { import flash.display.*; public class DebugVisibleLayer extends Sprite { private var _buttonXPos:int;// = 0 public var _debugMarker:MarkerVisible;// = null public static var _debugVisibleLayer:DebugVisibleLayer = null; public function DebugVisibleLayer(){ _debugVisibleLayer = this; _debugMarker = new MarkerVisible(); addChild(_debugMarker); } public function AddDebugButton(_arg1:String):DebugButton{ var _local2:DebugButton = new DebugButton(_arg1); _local2.x = _buttonXPos; _local2.y = 0; addChild(_local2); _buttonXPos = (_buttonXPos + _local2.width); _buttonXPos = (_buttonXPos + 3); return (_local2); } public static function Instance():DebugVisibleLayer{ return (_debugVisibleLayer); } } }//package
Section 20
//EmbeddedAssets (EmbeddedAssets) package { public class EmbeddedAssets { public var _introMovie:Class; public var _check:Class; public var _level1:Class; public var _background:Class; public var _level3:Class; public var _longButtonHover:Class; public var _level5:Class; public var _arrow:Class; public var _level8:Class; public var _level4:Class; public var _longButtonClick:Class; public var _level2:Class; public var _bigButtonNormal:Class; public var _titleScreen:Class; public var _bigButtonHover:Class; public var _level10:Class; public var _level9:Class; public var _level6:Class; public var _bigButtonClick:Class; public var _longButtonNormal:Class; public var _level7:Class; private static var _instance:EmbeddedAssets; public function EmbeddedAssets(){ _titleScreen = EmbeddedAssets__titleScreen; _background = EmbeddedAssets__background; _bigButtonNormal = EmbeddedAssets__bigButtonNormal; _bigButtonHover = EmbeddedAssets__bigButtonHover; _bigButtonClick = EmbeddedAssets__bigButtonClick; _longButtonNormal = EmbeddedAssets__longButtonNormal; _longButtonHover = EmbeddedAssets__longButtonHover; _longButtonClick = EmbeddedAssets__longButtonClick; _introMovie = EmbeddedAssets__introMovie; _arrow = EmbeddedAssets__arrow; _check = EmbeddedAssets__check; _level1 = EmbeddedAssets__level1; _level2 = EmbeddedAssets__level2; _level3 = EmbeddedAssets__level3; _level4 = EmbeddedAssets__level4; _level5 = EmbeddedAssets__level5; _level6 = EmbeddedAssets__level6; _level7 = EmbeddedAssets__level7; _level8 = EmbeddedAssets__level8; _level9 = EmbeddedAssets__level9; _level10 = EmbeddedAssets__level10; super(); } public static function Instance():EmbeddedAssets{ if (_instance == null){ _instance = new (EmbeddedAssets); }; return (_instance); } } }//package
Section 21
//EmbeddedAssets__arrow (EmbeddedAssets__arrow) package { import mx.core.*; import flash.utils.*; public class EmbeddedAssets__arrow extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedAssets__arrow(){ dataClass = EmbeddedAssets__arrow_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 22
//EmbeddedAssets__arrow_dataClass (EmbeddedAssets__arrow_dataClass) package { import mx.core.*; public class EmbeddedAssets__arrow_dataClass extends ByteArrayAsset { } }//package
Section 23
//EmbeddedAssets__background (EmbeddedAssets__background) package { import mx.core.*; public class EmbeddedAssets__background extends BitmapAsset { } }//package
Section 24
//EmbeddedAssets__bigButtonClick (EmbeddedAssets__bigButtonClick) package { import mx.core.*; public class EmbeddedAssets__bigButtonClick extends BitmapAsset { } }//package
Section 25
//EmbeddedAssets__bigButtonHover (EmbeddedAssets__bigButtonHover) package { import mx.core.*; public class EmbeddedAssets__bigButtonHover extends BitmapAsset { } }//package
Section 26
//EmbeddedAssets__bigButtonNormal (EmbeddedAssets__bigButtonNormal) package { import mx.core.*; public class EmbeddedAssets__bigButtonNormal extends BitmapAsset { } }//package
Section 27
//EmbeddedAssets__check (EmbeddedAssets__check) package { import mx.core.*; import flash.utils.*; public class EmbeddedAssets__check extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedAssets__check(){ dataClass = EmbeddedAssets__check_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 28
//EmbeddedAssets__check_dataClass (EmbeddedAssets__check_dataClass) package { import mx.core.*; public class EmbeddedAssets__check_dataClass extends ByteArrayAsset { } }//package
Section 29
//EmbeddedAssets__introMovie (EmbeddedAssets__introMovie) package { import mx.core.*; import flash.utils.*; public class EmbeddedAssets__introMovie extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedAssets__introMovie(){ dataClass = EmbeddedAssets__introMovie_dataClass; super(); initialWidth = (10660 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 30
//EmbeddedAssets__introMovie_dataClass (EmbeddedAssets__introMovie_dataClass) package { import mx.core.*; public class EmbeddedAssets__introMovie_dataClass extends ByteArrayAsset { } }//package
Section 31
//EmbeddedAssets__level1 (EmbeddedAssets__level1) package { import mx.core.*; public class EmbeddedAssets__level1 extends ByteArrayAsset { } }//package
Section 32
//EmbeddedAssets__level10 (EmbeddedAssets__level10) package { import mx.core.*; public class EmbeddedAssets__level10 extends ByteArrayAsset { } }//package
Section 33
//EmbeddedAssets__level2 (EmbeddedAssets__level2) package { import mx.core.*; public class EmbeddedAssets__level2 extends ByteArrayAsset { } }//package
Section 34
//EmbeddedAssets__level3 (EmbeddedAssets__level3) package { import mx.core.*; public class EmbeddedAssets__level3 extends ByteArrayAsset { } }//package
Section 35
//EmbeddedAssets__level4 (EmbeddedAssets__level4) package { import mx.core.*; public class EmbeddedAssets__level4 extends ByteArrayAsset { } }//package
Section 36
//EmbeddedAssets__level5 (EmbeddedAssets__level5) package { import mx.core.*; public class EmbeddedAssets__level5 extends ByteArrayAsset { } }//package
Section 37
//EmbeddedAssets__level6 (EmbeddedAssets__level6) package { import mx.core.*; public class EmbeddedAssets__level6 extends ByteArrayAsset { } }//package
Section 38
//EmbeddedAssets__level7 (EmbeddedAssets__level7) package { import mx.core.*; public class EmbeddedAssets__level7 extends ByteArrayAsset { } }//package
Section 39
//EmbeddedAssets__level8 (EmbeddedAssets__level8) package { import mx.core.*; public class EmbeddedAssets__level8 extends ByteArrayAsset { } }//package
Section 40
//EmbeddedAssets__level9 (EmbeddedAssets__level9) package { import mx.core.*; public class EmbeddedAssets__level9 extends ByteArrayAsset { } }//package
Section 41
//EmbeddedAssets__longButtonClick (EmbeddedAssets__longButtonClick) package { import mx.core.*; public class EmbeddedAssets__longButtonClick extends BitmapAsset { } }//package
Section 42
//EmbeddedAssets__longButtonHover (EmbeddedAssets__longButtonHover) package { import mx.core.*; public class EmbeddedAssets__longButtonHover extends BitmapAsset { } }//package
Section 43
//EmbeddedAssets__longButtonNormal (EmbeddedAssets__longButtonNormal) package { import mx.core.*; public class EmbeddedAssets__longButtonNormal extends BitmapAsset { } }//package
Section 44
//EmbeddedAssets__titleScreen (EmbeddedAssets__titleScreen) package { import mx.core.*; public class EmbeddedAssets__titleScreen extends BitmapAsset { } }//package
Section 45
//FrontMenuVisibleLayer (FrontMenuVisibleLayer) package { import flash.events.*; import flash.display.*; public class FrontMenuVisibleLayer extends Sprite { public var _playButton:PlainButton;// = null public static var _frontMenuVisibleLayer:FrontMenuVisibleLayer = null; public function FrontMenuVisibleLayer(){ _frontMenuVisibleLayer = this; _playButton = new PlainButton("Play", 200); _playButton.x = 250; _playButton.y = 440; addChild(_playButton); var _local1:Class = EmbeddedAssets.Instance()._titleScreen; var _local2:Bitmap = new (_local1); _local2.y = 100; addChild(_local2); MakeActive(true); } public function MakeActive(_arg1:Boolean):void{ if (_arg1){ _playButton.addEventListener(MouseEvent.MOUSE_UP, OnPlayButton); } else { _playButton.removeEventListener(MouseEvent.MOUSE_UP, OnPlayButton); }; } public function OnPlayButton(_arg1:MouseEvent):void{ SlippySlide.Instance().SetFrontLayerActive(false); FrontMenuVisibleLayer.Instance().MakeActive(false); SlippySlide.Instance().SetGameLayerActive(true); SlippySlide.Instance().SetPlayLayerActive(true); if (!PlayMenuVisibleLayer.Instance()._firstShow){ GameVisibleLayer.Instance().MakeActive(true); PlayMenuVisibleLayer.Instance().MakeActive(true); }; } public static function Instance():FrontMenuVisibleLayer{ return (_frontMenuVisibleLayer); } } }//package
Section 46
//GameFramework (GameFramework) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; public class GameFramework extends Sprite { public var _introMovie:MovieClip; public var _introMovieTimer:Timer; private var _game:SlippySlide; public var _lastMousePosX:Number;// = 0 public var _lastMousePosY:Number;// = 0 public static var _framework:GameFramework = null; public function GameFramework(){ _framework = this; stage.scaleMode = StageScaleMode.NO_SCALE; var _local1:Class = EmbeddedAssets.Instance()._introMovie; _introMovie = new (_local1); _introMovie.width = 700; _introMovie.height = 525; addChild(_introMovie); _introMovie.buttonMode = true; _introMovie.addEventListener(MouseEvent.MOUSE_UP, doMoreGamesFromIntroMovie); _introMovie.gotoAndPlay(0); _introMovieTimer = new Timer(7000); _introMovieTimer.addEventListener(TimerEvent.TIMER, onIntroMovieDone); _introMovieTimer.start(); } private function onIntroMovieDone(_arg1:Event):void{ _introMovieTimer.stop(); removeChild(_introMovie); _game = new SlippySlide(this); addEventListener(Event.ENTER_FRAME, OnEnterFrame); addEventListener(MouseEvent.MOUSE_MOVE, OnMouseMove); } private function doMoreGamesFromIntroMovie(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(Constants.URL_OTHER_GAMES_MOVIE)); } public function OnMouseMove(_arg1:MouseEvent):void{ _lastMousePosX = _arg1.stageX; _lastMousePosY = _arg1.stageY; } public function OnEnterFrame(_arg1:Event):void{ } public static function Instance():GameFramework{ return (_framework); } } }//package
Section 47
//GameVisibleLayer (GameVisibleLayer) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.text.*; public class GameVisibleLayer extends Sprite { private var _movingLayer:Sprite; private var _slidingOff:Boolean;// = false private var _scalingLayer:Sprite; private var _slidingOn:Boolean;// = false private var _slideVal:Number;// = 1 private var _activeLevel:Level;// = null public static var _gameVisibleLayer:GameVisibleLayer = null; public function GameVisibleLayer(){ _gameVisibleLayer = this; _movingLayer = new Sprite(); _scalingLayer = new Sprite(); _movingLayer.addChild(_scalingLayer); var _local1:SlippySlide = SlippySlide.Instance(); SetActiveLevel(_local1._levelList[6]); MakeActive(false); var _local2:DebugButton = DebugVisibleLayer.Instance().AddDebugButton("game-on/off"); _local2.addEventListener(MouseEvent.MOUSE_UP, OnDebugSlideOnOff); var _local3:DebugButton = DebugVisibleLayer.Instance().AddDebugButton("lvl cmp"); _local3.addEventListener(MouseEvent.MOUSE_UP, OnDebugLevelComplete); } public function SetActiveLevel(_arg1:Level):void{ while (numChildren > 0) { removeChildAt(0); }; addChild(_movingLayer); _activeLevel = _arg1; while (_scalingLayer.numChildren > 0) { _scalingLayer.removeChildAt(0); }; _activeLevel.CreateVisibles(_scalingLayer); _activeLevel.SyncAllLocationMatches(); _activeLevel._activeLevel = true; var _local2:RectBounds = new RectBounds(); var _local3:Point = new Point(0, 0); _local2.UnionPoint(_local3); _local3.x = 700; _local3.y = 450; _local2.UnionPoint(_local3); _local2.Shrink(75, 75); var _local4:OffsetScale = new OffsetScale(); _local2.DetermineOffsetScaleToApplyToChildRectToFillMaximallyWithUniformScaling(_activeLevel._bounds, _local4); _scalingLayer.x = _local4._offsetX; _scalingLayer.y = _local4._offsetY; _scalingLayer.scaleX = _local4._scaleX; _scalingLayer.scaleY = _local4._scaleY; var _local5:TextField = new TextField(); var _local6:int = SlippySlide.Instance()._levelList.indexOf(_arg1); var _local7:int = GetLevelNumberFromIndex(_local6); _local5.text = ("Level: " + _local7); _local5.width = 200; _local5.height = 50; var _local8:TextFormat = new TextFormat(); _local8.align = TextFormatAlign.CENTER; _local8.font = "Comic Sans MS"; _local8.size = 30; _local8.color = 0xC0C0C0; _local8.bold = true; _local5.setTextFormat(_local8); _local5.x = 20; _local5.y = 440; addChild(_local5); } private function SetMovePosition():void{ var _local1:Number = ((1 - _slideVal) * (1 - _slideVal)); _local1 = (1 - _local1); _movingLayer.alpha = _local1; } public function SlideOff():void{ _slidingOff = true; } public function SlideOn():void{ _slidingOn = true; } private function GetLevelNumberFromIndex(_arg1:int):int{ switch (_arg1){ case 0: return (10); case 1: return (8); case 2: return (9); case 3: return (5); case 4: return (6); case 5: return (7); case 6: return (1); case 7: return (2); case 8: return (3); case 9: return (4); }; return (1); } public function MakeActive(_arg1:Boolean):void{ if (_arg1){ addEventListener(Event.ENTER_FRAME, OnEnterFrame); _activeLevel.MakeActive(true); } else { removeEventListener(Event.ENTER_FRAME, OnEnterFrame); _activeLevel.MakeActive(false); }; } public function OnDebugLevelComplete(_arg1:MouseEvent):void{ _activeLevel._isLevelComplete = true; } public function OnDebugSlideOnOff(_arg1:MouseEvent):void{ if (((!(_slidingOn)) && (!(_slidingOff)))){ if (_slideVal == 0){ _slidingOn = true; } else { _slidingOff = true; }; }; } public function OnEnterFrame(_arg1:Event):void{ if (_slidingOff){ _slideVal = (_slideVal - 0.2); if (_slideVal < 0){ _slidingOff = false; _slideVal = 0; }; SetMovePosition(); } else { if (_slidingOn){ _slideVal = (_slideVal + 0.2); if (_slideVal > 1){ _slideVal = 1; _slidingOn = false; }; SetMovePosition(); }; }; } public static function Instance():GameVisibleLayer{ return (_gameVisibleLayer); } } }//package
Section 48
//Instructions (Instructions) package { import flash.events.*; import flash.display.*; import flash.text.*; public class Instructions extends Sprite { private var _doneButton:PlainButton;// = null public function Instructions(_arg1:String, _arg2:Boolean){ graphics.lineStyle(4, 0); graphics.beginFill(5292224, 1); graphics.drawRoundRect(0, 0, 650, 475, 30, 30); graphics.endFill(); var _local3:TextField = new TextField(); _local3.text = _arg1; _local3.width = 600; _local3.height = 425; var _local4:TextFormat = new TextFormat(); _local4.align = TextFormatAlign.LEFT; _local4.font = "Comic Sans MS"; _local4.size = 30; _local4.color = 0; _local3.setTextFormat(_local4); _local3.selectable = false; addChild(_local3); _local3.x = 25; _local3.y = 25; if (_arg2){ _doneButton = new PlainButton("Done", 200); _doneButton.x = (325 - 100); _doneButton.y = 405; addChild(_doneButton); _doneButton.addEventListener(MouseEvent.MOUSE_UP, OnDoneButton); }; } public function OnDoneButton(_arg1:MouseEvent):void{ if (parent == PlayMenuVisibleLayer.Instance()){ PlayMenuVisibleLayer.Instance().MakeActive(true); } else { if (parent == LevelSelMenuVisibleLayer.Instance()){ LevelSelMenuVisibleLayer.Instance().MakeActive(true); }; }; parent.removeChild(this); } } }//package
Section 49
//Level (Level) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import mx.utils.*; import flash.text.*; import flash.filters.*; public class Level extends Sprite { public const WAITING_FOR_MOVE_DIRECTION:int = 1; public const WAITING_FOR_BALL_SELECTION:int = 0; public const RELEASED_RUN:int = 3; public const MOVING_RUN:int = 2; public var _runList:Array; public var _state:int;// = 0 public var _selectedBall:Ball;// = null public var _isLevelComplete:Boolean;// = false public var _ballList:Array; public var debugCnt:int;// = 0 public var _activeRun:Run;// = null private var _storedMousePosStageX:Number; private var _storedMousePosStageY:Number; public var _locationList:Array; public var _activeLevel:Boolean;// = false public var _bounds:RectBounds; public var _activeRunLocation:Number;// = 0 public function Level(){ _ballList = new Array(); _locationList = new Array(); _runList = new Array(); _bounds = new RectBounds(); super(); MakeActive(false); } public function SyncAllLocationMatchesOnARun(_arg1:Run):void{ var _local6:Location; var _local7:int; var _local8:Ball; var _local2:Array = new Array(); var _local3:int = _arg1.GetNumberOfLocationsOnRunTakingIntoAccountCyclic(); var _local4:int; while (_local4 < _local3) { _local6 = _arg1._locationList[_local4]; _local7 = 0; while (_local7 < _ballList.length) { _local8 = _ballList[_local7]; if (_local8._location == _local6){ _local2.push(_local8); }; _local7++; }; _local4++; }; var _local5:int; while (_local5 < _local2.length) { _local8 = _local2[_local5]; if (_local8._occupancyType == _local8._location._desiredOccupancyType){ _local8._location._visible.SetMatched(true); } else { _local8._location._visible.SetMatched(false); }; _local5++; }; } private function FindBallThatsClosestToMouse():Ball{ var _local5:Ball; var _local6:BallVisible; var _local7:Point; var _local8:Point; var _local9:Point; var _local10:Number; var _local1:Point = new Point(); _local1.x = GameFramework.Instance()._lastMousePosX; _local1.y = GameFramework.Instance()._lastMousePosY; var _local2:Ball; var _local3:Number = Infinity; var _local4:int; while (_local4 < _ballList.length) { _local5 = _ballList[_local4]; _local6 = _local5._visible; _local7 = new Point(0, 0); _local8 = _local6.localToGlobal(_local7); _local9 = _local8.subtract(_local1); _local10 = _local9.length; if ((((_local10 < Constants.BALL_SELECT_REGION_RADIUS)) && ((_local10 < _local3)))){ _local3 = _local10; _local2 = _local5; }; _local4++; }; return (_local2); } public function TerminateRelease():void{ var _local1:Sprite; var _local2:TextField; var _local3:TextFormat; var _local4:GlowFilter; var _local5:Array; MoveBallGroupToActiveRunLocation(); _state = WAITING_FOR_BALL_SELECTION; SyncAllLocationMatchesOnARun(_activeRun); _activeRunLocation = 0; _activeRun = null; GameFramework.Instance().addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown); GameFramework.Instance().addEventListener(MouseEvent.MOUSE_UP, OnMouseUp); _isLevelComplete = IsLevelComplete(); if (_isLevelComplete){ MakeAllBallsNotSelected(); _activeLevel = false; _local1 = new Sprite(); GameVisibleLayer.Instance().addChild(_local1); _local1.y = 180; _local2 = new TextField(); _local2.text = "Level Complete"; _local2.width = 700; _local2.height = 200; _local2.selectable = false; _local3 = new TextFormat(); _local3.align = TextFormatAlign.CENTER; _local3.font = "Arial"; _local3.size = 80; _local3.color = 15261920; _local3.bold = true; _local2.setTextFormat(_local3); _local1.addChild(_local2); _local4 = new GlowFilter(); _local4.color = 13680832; _local4.blurX = 8; _local4.blurY = 8; _local4.strength = 32; _local4.alpha = 0.75; _local5 = [_local4]; _local1.filters = _local5; }; } public function CountBallsOnRun(_arg1:Run):int{ var _local5:Location; var _local6:int; var _local7:Ball; var _local2:int; var _local3:int = _arg1.GetNumberOfLocationsOnRunTakingIntoAccountCyclic(); var _local4:int; while (_local4 < _local3) { _local5 = _arg1._locationList[_local4]; _local6 = 0; while (_local6 < _ballList.length) { _local7 = _ballList[_local6]; if (_local7._location == _local5){ _local2++; break; }; _local6++; }; _local4++; }; return (_local2); } public function SetBallVisiblesBackToLocations():void{ var _local2:Ball; var _local3:BallVisible; var _local1:int; while (_local1 < _ballList.length) { _local2 = _ballList[_local1]; _local3 = _local2._visible; _local3.x = _local2._location._pos.x; _local3.y = _local2._location._pos.y; _local1++; }; } public function OnMouseUp(_arg1:MouseEvent):void{ if (_state == MOVING_RUN){ _state = RELEASED_RUN; GameFramework.Instance().removeEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown); GameFramework.Instance().removeEventListener(MouseEvent.MOUSE_UP, OnMouseUp); } else { _state = WAITING_FOR_BALL_SELECTION; _activeRunLocation = 0; _activeRun = null; SetBallVisiblesBackToLocations(); }; } public function GetRunLocationThatMouseIsNearest():Number{ var _local6:Point; var _local7:Point; var _local8:LineSegDistResult; var _local1:Point = new Point(); _local1.x = GameFramework.Instance()._lastMousePosX; _local1.y = GameFramework.Instance()._lastMousePosY; var _local2:Number = Infinity; var _local3:Number = 0; var _local4:Point = new Point(); var _local5:int; while (_local5 < (_activeRun._locationList.length - 1)) { _local6 = _activeRun._locationList[_local5].GetLocationOfVisibleOnStage(); _local7 = _activeRun._locationList[(_local5 + 1)].GetLocationOfVisibleOnStage(); _local8 = MyMath.ClosestPointOnLineSegment(_local6, _local7, _local1); if (_local8._distance < _local2){ _local2 = _local8._distance; _local3 = (Number(_local5) + _local8._segmentCoeff); _local4.x = _local8._location.x; _local4.y = _local8._location.y; }; _local5++; }; return (_local3); } public function OnMouseDown(_arg1:MouseEvent):void{ if (_selectedBall != null){ _state = WAITING_FOR_MOVE_DIRECTION; _storedMousePosStageX = GameFramework.Instance()._lastMousePosX; _storedMousePosStageY = GameFramework.Instance()._lastMousePosY; }; } public function MakeActive(_arg1:Boolean):void{ if (_arg1){ addEventListener(Event.ENTER_FRAME, OnEnterFrame); GameFramework.Instance().addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown); GameFramework.Instance().addEventListener(MouseEvent.MOUSE_UP, OnMouseUp); } else { removeEventListener(Event.ENTER_FRAME, OnEnterFrame); GameFramework.Instance().removeEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown); GameFramework.Instance().removeEventListener(MouseEvent.MOUSE_UP, OnMouseUp); }; } public function IsLevelComplete():Boolean{ var _local2:Ball; var _local1:int; while (_local1 < _ballList.length) { _local2 = _ballList[_local1]; if ((((_local2._occupancyType > 0)) && ((_local2._occupancyType < 4)))){ if (_local2._occupancyType != _local2._location._desiredOccupancyType){ return (false); }; }; _local1++; }; return (true); } public function UpdateActiveRun():void{ var _local1:Array; var _local2:int; var _local3:int; var _local4:int; var _local5:Number; var _local6:int; var _local7:Location; var _local8:int; var _local9:Ball; var _local10:int; var _local11:Location; var _local12:Location; var _local13:Point; if (_activeRun != null){ _local1 = new Array(); _local2 = _activeRun.GetNumberOfLocationsOnRunTakingIntoAccountCyclic(); _local3 = 0; while (_local3 < _local2) { _local7 = _activeRun._locationList[_local3]; _local8 = 0; while (_local8 < _ballList.length) { _local9 = _ballList[_local8]; if (_local9._location == _local7){ _local1.push(_local9); }; _local8++; }; _local3++; }; _local4 = int(_activeRunLocation); _local5 = (_activeRunLocation % 1); _local6 = 0; while (_local6 < _local1.length) { _local9 = _local1[_local6]; _local10 = (_local4 + _local6); if (_local10 > (_local2 - 1)){ _local10 = (_local10 - _local2); }; _local11 = _activeRun._locationList[_local10]; if (_local10 == (_activeRun._locationList.length - 1)){ _local9._visible.x = _local11._pos.x; _local9._visible.y = _local11._pos.y; } else { _local12 = _activeRun._locationList[(_local10 + 1)]; _local13 = Point.interpolate(_local12._pos, _local11._pos, _local5); _local9._visible.x = _local13.x; _local9._visible.y = _local13.y; }; _local6++; }; }; } public function FindRunThatContainsLocations(_arg1:Location, _arg2:Location):Run{ var _local4:Run; var _local5:Boolean; var _local6:int; var _local7:Location; var _local3:int; while (_local3 < _runList.length) { _local4 = _runList[_local3]; _local5 = false; _local6 = 0; while (_local6 < _local4._locationList.length) { _local7 = _local4._locationList[_local6]; if (_local7 == _arg1){ _local5 = true; break; }; _local6++; }; if (!_local5){ } else { _local6 = 0; while (_local6 < _local4._locationList.length) { _local7 = _local4._locationList[_local6]; if (_local7 == _arg2){ return (_local4); }; _local6++; }; }; _local3++; }; return (null); } public function FindRunThatContainsLocation(_arg1:Location):Run{ var _local3:Run; var _local4:int; var _local5:Location; var _local2:int; while (_local2 < _runList.length) { _local3 = _runList[_local2]; _local4 = 0; while (_local4 < _local3._locationList.length) { _local5 = _local3._locationList[_local4]; if (_local5 == _arg1){ return (_local3); }; _local4++; }; _local2++; }; return (null); } public function OnEnterFrame(_arg1:Event):void{ var _local2:Ball; var _local3:Point; var _local4:Point; var _local5:Point; var _local6:Number; var _local7:Number; var _local8:Location; var _local9:Point; var _local10:int; var _local11:Location; var _local12:Point; var _local13:Point; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; if (!_activeLevel){ return; }; if (_state == WAITING_FOR_BALL_SELECTION){ _local2 = FindBallThatsClosestToMouse(); if ((((_local2 == null)) || (!((_local2 == _selectedBall))))){ MakeAllBallsNotSelected(); }; _selectedBall = _local2; if (_selectedBall != null){ MakeBallSelected(_selectedBall); }; } else { if (_state == WAITING_FOR_MOVE_DIRECTION){ if (_selectedBall._location._neighbours.length < 3){ _activeRun = FindRunThatContainsLocation(_selectedBall._location); _activeRun._visible.SetSelected(true); ClearAllLocationMatchesOnARun(_activeRun); _state = MOVING_RUN; } else { _local3 = new Point(); _local3.x = GameFramework.Instance()._lastMousePosX; _local3.y = GameFramework.Instance()._lastMousePosY; _local4 = new Point(); _local4.x = _storedMousePosStageX; _local4.y = _storedMousePosStageY; _local5 = _local3.subtract(_local4); _local6 = _local5.length; if (_local6 > Constants.THRESHOLD_DIST_TO_DETERMINE_RUN){ _local5.x = (_local5.x / _local6); _local5.y = (_local5.y / _local6); _local7 = -(Infinity); _local8 = null; _local9 = _selectedBall._location.GetLocationOfVisibleOnStage(); _local10 = 0; while (_local10 < _selectedBall._location._neighbours.length) { _local11 = _selectedBall._location._neighbours[_local10]; _local12 = _local11.GetLocationOfVisibleOnStage(); _local13 = _local12.subtract(_local9); _local14 = _local13.length; _local13.x = (_local13.x / _local14); _local13.y = (_local13.y / _local14); _local15 = MyMath.DotProduct(_local5, _local13); if (_local15 > _local7){ _local7 = _local15; _local8 = _local11; }; _local10++; }; _activeRun = FindRunThatContainsLocations(_selectedBall._location, _local8); _activeRun._visible.SetSelected(true); ClearAllLocationMatchesOnARun(_activeRun); _state = MOVING_RUN; }; }; } else { if (_state == MOVING_RUN){ _local16 = GetRunLocationThatMouseIsNearest(); _local17 = GetBallPositionIndexInGroup(_selectedBall); Misc.assert(!((_local17 == -1))); _activeRunLocation = (_local16 - _local17); ClipActiveRunLocation(); UpdateActiveRun(); } else { if (_state == RELEASED_RUN){ _activeRun._visible.SetSelected(false); _local18 = (_activeRunLocation % 1); if (_local18 < 0.5){ _local18 = (_local18 - Constants.BALL_POST_RELEASE_MOVE_TO_LOCATION_SPEED); if (_local18 < 0){ _activeRunLocation = Math.floor(_activeRunLocation); ClipActiveRunLocation(); TerminateRelease(); } else { _activeRunLocation = (Math.floor(_activeRunLocation) + _local18); UpdateActiveRun(); }; } else { _local18 = (_local18 + Constants.BALL_POST_RELEASE_MOVE_TO_LOCATION_SPEED); if (_local18 > 1){ _activeRunLocation = Math.ceil(_activeRunLocation); ClipActiveRunLocation(); TerminateRelease(); } else { _activeRunLocation = (Math.floor(_activeRunLocation) + _local18); UpdateActiveRun(); }; }; }; }; }; }; } private function GetBallPositionIndexInGroup(_arg1:Ball):int{ var _local5:Location; var _local6:int; var _local7:Ball; var _local2 = -1; var _local3:int = _activeRun.GetNumberOfLocationsOnRunTakingIntoAccountCyclic(); var _local4:int; while (_local4 < _local3) { _local5 = _activeRun._locationList[_local4]; _local6 = 0; while (_local6 < _ballList.length) { _local7 = _ballList[_local6]; if (_local7._location == _local5){ _local2++; if (_local7 == _arg1){ return (_local2); }; break; }; _local6++; }; _local4++; }; return (-1); } private function MakeBallSelected(_arg1:Ball):void{ var _local2:BallVisible; if (_arg1 != null){ _local2 = _arg1._visible; _local2.MakeBallSelected(true); }; } public function ClipActiveRunLocation():void{ var _local2:Number; var _local1:int = CountBallsOnRun(_activeRun); if (_activeRun.IsCyclic()){ _local2 = (_activeRun._locationList.length - 1); while (_activeRunLocation < 0) { _activeRunLocation = (_activeRunLocation + _local2); }; while (_activeRunLocation >= _local2) { _activeRunLocation = (_activeRunLocation - _local2); }; } else { if (_activeRunLocation < 0){ _activeRunLocation = 0; } else { if ((_activeRunLocation + (_local1 - 1)) > (_activeRun._locationList.length - 1)){ _activeRunLocation = (((_activeRun._locationList.length - 1) - (_local1 - 1)) - 0.001); }; }; }; } private function MakeAllBallsNotSelected():void{ var _local2:Ball; var _local3:BallVisible; var _local1:int; while (_local1 < _ballList.length) { _local2 = _ballList[_local1]; _local3 = _local2._visible; _local3.MakeBallSelected(false); _local1++; }; } public function MoveBallGroupToActiveRunLocation():void{ var _local6:Location; var _local7:int; var _local8:Ball; var _local9:Ball; var _local1:Array = new Array(); var _local2:int = _activeRun.GetNumberOfLocationsOnRunTakingIntoAccountCyclic(); var _local3:int; while (_local3 < _local2) { _local6 = _activeRun._locationList[_local3]; _local7 = 0; while (_local7 < _ballList.length) { _local8 = _ballList[_local7]; if (_local8._location == _local6){ _local1.push(_local8); }; _local7++; }; _local3++; }; var _local4:int = Math.round(_activeRunLocation); var _local5:int; while (_local5 < _local1.length) { _local9 = _local1[_local5]; _local9._location = _activeRun._locationList[_local4]; _local4++; if (_local4 >= _local2){ _local4 = 0; }; _local5++; }; SetBallVisiblesBackToLocations(); } public function ClearAllLocationMatchesOnARun(_arg1:Run):void{ var _local3:Location; var _local2:int; while (_local2 < _arg1._locationList.length) { _local3 = _arg1._locationList[_local2]; _local3._visible.SetMatched(false); _local2++; }; } public function SyncAllLocationMatches():void{ var _local2:Ball; var _local1:int; while (_local1 < _ballList.length) { _local2 = _ballList[_local1]; if (_local2._occupancyType == _local2._location._desiredOccupancyType){ _local2._location._visible.SetMatched(true); } else { _local2._location._visible.SetMatched(false); }; _local1++; }; } public function CreateVisibles(_arg1:Sprite):void{ var _local3:Location; var _local4:Run; var _local5:Ball; var _local2:int; _local2 = 0; while (_local2 < _locationList.length) { _local3 = _locationList[_local2]; _local3.CreateVisibles(_arg1); _local2++; }; _local2 = 0; while (_local2 < _runList.length) { _local4 = _runList[_local2]; _local4.CreateVisibles(_arg1); _local2++; }; _local2 = 0; while (_local2 < _ballList.length) { _local5 = _ballList[_local2]; _local5.CreateVisibles(_arg1); _local2++; }; } public function FixupReferences():void{ var _local2:Location; var _local3:int; var _local4:int; var _local5:int; var _local6:Location; var _local7:Run; var _local8:int; var _local9:int; var _local1:int; while (_local1 < _locationList.length) { _local2 = _locationList[_local1]; _local3 = 0; while (_local3 < _local2._neighbourIDs.length) { _local4 = _local2._neighbourIDs[_local3]; _local5 = 0; while (_local5 < _locationList.length) { _local6 = _locationList[_local5]; if (_local4 == _local6._locationId){ _local2._neighbours.push(_local6); break; }; _local5++; }; _local3++; }; _local1++; }; _local1 = 0; while (_local1 < _runList.length) { _local7 = _runList[_local1]; _local8 = 0; while (_local8 < _local7._idList.length) { _local9 = _local7._idList[_local8]; _local5 = 0; while (_local5 < _locationList.length) { _local6 = _locationList[_local5]; if (_local9 == _local6._locationId){ _local7._locationList.push(_local6); break; }; _local5++; }; _local8++; }; _local1++; }; } } }//package
Section 50
//LevelLoader (LevelLoader) package { import flash.events.*; import flash.geom.*; import flash.net.*; public class LevelLoader { private var _fileLines:Array; private var _currentLine:int;// = 0 public function LevelLoader(){ _fileLines = new Array(); super(); } public function Load(_arg1:Class):Level{ var _local9:Location; var _local10:int; var _local11:int; var _local12:int; var _local13:Boolean; var _local14:Number; var _local15:Number; var _local16:Point; var _local17:Ball; var _local18:int; var _local19:*; var _local20:*; var _local21:*; var _local22:*; _fileLines.splice(0); _currentLine = 0; var _local2:String = new (_arg1); _fileLines = _local2.split("\r\n"); var _local3:Level = new Level(); var _local4:int = GetNextLineAsNumber(); _local4 = -(_local4); if (_local4 < 2){ trace("ERROR: Can't load pre version 2 files"); return (_local3); }; var _local5:Boolean = Boolean((GetNextLineAsNumber() == 1)); var _local6:int = int(GetNextLineAsNumber()); var _local7:int; while (_local7 < _local6) { _local9 = new Location(); _local3._locationList.push(_local9); _local9._locationId = int(GetNextLineAsNumber()); _local10 = int(GetNextLineAsNumber()); if (_local10 != 0){ _local17 = new Ball(); _local3._ballList.push(_local17); _local17._occupancyType = _local10; _local17._location = _local9; }; _local9._desiredOccupancyType = int(GetNextLineAsNumber()); _local11 = int(GetNextLineAsNumber()); _local12 = 0; while (_local12 < _local11) { _local18 = int(GetNextLineAsNumber()); _local9._neighbourIDs.push(_local18); _local12++; }; _local13 = Boolean((GetNextLineAsNumber() == 1)); _local14 = GetNextLineAsNumber(); _local15 = -(GetNextLineAsNumber()); _local16 = new Point(_local14, _local15); _local9._pos = _local16; _local3._bounds.UnionPoint(_local16); _local7++; }; var _local8:Boolean; do { _local19 = new Run(); _local3._runList.push(_local19); _local20 = int(GetNextLineAsNumber()); if (_local20 == -1){ _local8 = true; }; _local21 = 0; while (_local21 < _local20) { _local22 = int(GetNextLineAsNumber()); _local19._idList.push(_local22); _local21++; }; } while (!(_local8)); _local3.FixupReferences(); return (_local3); } public function GetNextLineAsNumber():Number{ var _local1:Number; if (_currentLine < _fileLines.length){ _local1 = parseFloat(_fileLines[_currentLine++]); return (_local1); }; return (0); } private function IsDoneReadingLines():Boolean{ if (_currentLine < _fileLines.length()){ return (false); }; return (true); } } }//package
Section 51
//LevelSelCheck (LevelSelCheck) package { import flash.display.*; public class LevelSelCheck extends Sprite { private var _height:int;// = 100 private var _width:int;// = 100 public var _checked:Boolean;// = false private var _check:MovieClip;// = null public function LevelSelCheck(_arg1:int, _arg2:int){ _width = _arg1; _height = _arg2; var _local3:Class = EmbeddedAssets.Instance()._check; _check = new (_local3); _check.scaleX = 0.8; _check.scaleY = 0.8; UpdateDrawList(); } public function UpdateDrawList():void{ graphics.clear(); while (numChildren > 0) { removeChildAt(0); }; if (_checked){ addChild(_check); }; } } }//package
Section 52
//LevelSelFrame (LevelSelFrame) package { import flash.events.*; import flash.display.*; import flash.geom.*; public class LevelSelFrame extends Sprite { public var _mouseOver:Boolean;// = false public var _level:Level;// = null private var _height:int;// = 100 private var _width:int;// = 100 public var _selectable:Boolean;// = false public var _selected:Boolean;// = false public var _checkSprite:LevelSelCheck;// = null public function LevelSelFrame(_arg1:int, _arg2:int){ _width = _arg1; _height = _arg2; } public function MakeActive(_arg1:Boolean):void{ if (_arg1){ addEventListener(Event.ENTER_FRAME, OnEnterFrame); GameFramework.Instance().addEventListener(MouseEvent.MOUSE_UP, OnMouseUp); UpdateDrawList(); } else { removeEventListener(Event.ENTER_FRAME, OnEnterFrame); GameFramework.Instance().removeEventListener(MouseEvent.MOUSE_UP, OnMouseUp); }; } private function OnMouseUp(_arg1:MouseEvent):void{ var _local4:int; var _local5:LevelSelFrame; var _local2:Point = new Point(); _local2.x = GameFramework.Instance()._lastMousePosX; _local2.y = GameFramework.Instance()._lastMousePosY; var _local3:Point = globalToLocal(_local2); if (((((((((_selectable) && ((_local3.x > 0)))) && ((_local3.x < _width)))) && ((_local3.y > 0)))) && ((_local3.y < _height)))){ _selected = true; _local4 = 0; while (_local4 < LevelSelMenuVisibleLayer.Instance()._levelFrames.length) { _local5 = LevelSelMenuVisibleLayer.Instance()._levelFrames[_local4]; if (_local5 != this){ _local5._selected = false; _local5.UpdateDrawList(); }; _local4++; }; UpdateDrawList(); }; } public function UpdateDrawList():void{ graphics.clear(); if (_selectable){ if (_mouseOver){ if (_selected){ graphics.lineStyle(6, 8450176); } else { graphics.lineStyle(6, 0xF0F0F0); }; graphics.beginFill(0x505050); } else { if (_selected){ graphics.lineStyle(6, 8450176); } else { graphics.lineStyle(2, 0xD0D0D0); }; graphics.beginFill(0x303030); }; graphics.drawRect(0, 0, _width, _height); graphics.endFill(); }; if (((!((_checkSprite == null))) && (_level._isLevelComplete))){ _checkSprite._checked = true; _checkSprite.UpdateDrawList(); }; } private function OnEnterFrame(_arg1:Event):void{ var _local2:Point = new Point(); _local2.x = GameFramework.Instance()._lastMousePosX; _local2.y = GameFramework.Instance()._lastMousePosY; var _local3:Point = globalToLocal(_local2); var _local4:Boolean; if ((((((((_local3.x > 0)) && ((_local3.x < _width)))) && ((_local3.y > 0)))) && ((_local3.y < _height)))){ _local4 = true; }; if (((!(_mouseOver)) && (_local4))){ _mouseOver = _local4; UpdateDrawList(); } else { if (((_mouseOver) && (!(_local4)))){ _mouseOver = _local4; UpdateDrawList(); }; }; } } }//package
Section 53
//LevelSelMenuVisibleLayer (LevelSelMenuVisibleLayer) package { import flash.events.*; import flash.display.*; import flash.geom.*; import mx.utils.*; public class LevelSelMenuVisibleLayer extends Sprite { public var _playButton:PlainButton;// = null private var _allDone:Boolean;// = false private var _levelLayers:Array; private var _movingLayer:Sprite; public var _helpButton:PlainButton;// = null public var _instructions:Instructions;// = null public var _firstShow:Boolean;// = true public var _levelFrames:Array; public static var _levelSelMenuVisibleLayer:LevelSelMenuVisibleLayer = null; public function LevelSelMenuVisibleLayer(){ var _local10:SlippySlide; var _local11:Level; var _local12:LevelSelFrame; var _local13:Sprite; var _local14:RectBounds; var _local15:Point; var _local16:OffsetScale; var _local17:LevelSelCheck; var _local18:MovieClip; _levelLayers = new Array(); _levelFrames = new Array(); super(); _levelSelMenuVisibleLayer = this; _movingLayer = new Sprite(); addChild(_movingLayer); var _local1:Class = EmbeddedAssets.Instance()._arrow; var _local2:Number = 70; var _local3:Number = _local2; var _local4:Number = ((700 * 0.5) - (_local2 * 0.5)); var _local5:Number = 50; var _local6:Number = (_local2 + 25); var _local7 = 1; var _local8 = 1; var _local9:int; while (_local9 < 10) { _local10 = SlippySlide.Instance(); _local11 = _local10._levelList[_local9]; if (_local9 < 6){ _local18 = new (_local1); _local18.scaleX = 0.35; _local18.scaleY = 0.35; _local18.x = (_local4 + 10); _local18.y = (_local5 + 50); _local18.rotation = 45; _movingLayer.addChild(_local18); _local18 = new (_local1); _local18.scaleX = 0.35; _local18.scaleY = 0.35; _local18.x = (_local4 + 40); _local18.y = (_local5 + 70); _local18.rotation = -45; _movingLayer.addChild(_local18); }; _local12 = new LevelSelFrame((_local2 + (2 * Constants.LEVEL_SELECT_FRAME_BORDER)), (_local3 + (2 * Constants.LEVEL_SELECT_FRAME_BORDER))); _local12.x = (_local4 - Constants.LEVEL_SELECT_FRAME_BORDER); _local12.y = (_local5 - Constants.LEVEL_SELECT_FRAME_BORDER); _local12._level = _local11; if (_local9 > 5){ _local12._selectable = true; }; if (_local9 == 6){ _local12._selected = true; }; _local12.UpdateDrawList(); _levelFrames.push(_local12); _movingLayer.addChildAt(_local12, 0); _local13 = new Sprite(); _movingLayer.addChild(_local13); _local11.CreateVisibles(_local13); _local14 = new RectBounds(); _local15 = new Point(_local4, _local5); _local14.UnionPoint(_local15); _local15.x = (_local4 + _local2); _local15.y = (_local5 + _local3); _local14.UnionPoint(_local15); _local16 = new OffsetScale(); _local14.DetermineOffsetScaleToApplyToChildRectToFillMaximallyWithUniformScaling(_local11._bounds, _local16); _local13.x = _local16._offsetX; _local13.y = _local16._offsetY; _local13.scaleX = _local16._scaleX; _local13.scaleY = _local16._scaleY; _local4 = (_local4 + _local6); --_local7; if (_local7 == 0){ _local4 = (_local4 - (_local6 * _local8)); _local4 = (_local4 - (_local6 * 0.5)); _local5 = (_local5 + _local6); _local8++; _local7 = _local8; }; _local17 = new LevelSelCheck((_local2 + (2 * Constants.LEVEL_SELECT_FRAME_BORDER)), (_local3 + (2 * Constants.LEVEL_SELECT_FRAME_BORDER))); _local17.scaleX = 0.7; _local17.scaleY = 0.7; _local17.x = (_local12.x + 5); _local17.y = (_local12.y + 10); _local12._checkSprite = _local17; _movingLayer.addChild(_local17); _local9++; }; _playButton = new PlainButton("Play", 200); _playButton.x = 250; _playButton.y = 440; addChild(_playButton); _helpButton = new PlainButton("Help", 100); _helpButton.x = 550; _helpButton.y = 440; addChild(_helpButton); _instructions = new Instructions(((("Select a new level to play from the ones\n" + "unlocked.\n\n") + "Unlock harder levels by completing the\n") + "two directly below."), true); _instructions.x = 25; _instructions.y = 25; addChild(_instructions); MakeActive(false); } public function UpdateVisible():void{ var _local1:int; while (_local1 < _levelFrames.length) { _levelFrames[_local1].UpdateDrawList(); _local1++; }; } public function OnPlayButton(_arg1:MouseEvent):void{ MakeActive(false); SlippySlide.Instance().SetLevelSelLayerActive(false); var _local2:int; while (_local2 < _levelFrames.length) { if (_levelFrames[_local2]._selected){ GameVisibleLayer.Instance().SetActiveLevel(_levelFrames[_local2]._level); _levelFrames[_local2]._level.MakeActive(true); } else { _levelFrames[_local2]._level.MakeActive(false); }; _local2++; }; SlippySlide.Instance().SetGameLayerActive(true); SlippySlide.Instance().SetPlayLayerActive(true); PlayMenuVisibleLayer.Instance().MakeActive(true); } public function MakeActive(_arg1:Boolean):void{ var _local3:int; var _local4:LevelSelFrame; var _local5:int; var _local6:LevelSelFrame; var _local7:LevelSelFrame; _local3 = 5; while (_local3 >= 0) { _local4 = _levelFrames[_local3]; if (((!(_local4._selectable)) && (!(_local4._level._isLevelComplete)))){ switch (_local3){ case 0: _local4._selectable = ((_levelFrames[1]._level._isLevelComplete) && (_levelFrames[2]._level._isLevelComplete)); break; case 1: _local4._selectable = ((_levelFrames[3]._level._isLevelComplete) && (_levelFrames[4]._level._isLevelComplete)); break; case 2: _local4._selectable = ((_levelFrames[4]._level._isLevelComplete) && (_levelFrames[5]._level._isLevelComplete)); break; case 3: _local4._selectable = ((_levelFrames[6]._level._isLevelComplete) && (_levelFrames[7]._level._isLevelComplete)); break; case 4: _local4._selectable = ((_levelFrames[7]._level._isLevelComplete) && (_levelFrames[8]._level._isLevelComplete)); break; case 5: _local4._selectable = ((_levelFrames[8]._level._isLevelComplete) && (_levelFrames[9]._level._isLevelComplete)); break; }; }; _local3--; }; var _local2:Boolean; _local3 = 0; while (_local3 < _levelFrames.length) { _local4 = _levelFrames[_local3]; if (((_local4._level._isLevelComplete) && (_local4._selected))){ _local4._selectable = false; _local4._selected = false; _local5 = 0; while (_local5 < _levelFrames.length) { _local6 = _levelFrames[_local5]; if (_local6._selectable){ _local6._selected = true; _local2 = true; break; }; _local5++; }; }; if (_local2){ break; }; _local3++; }; _local3 = 0; while (_local3 < _levelFrames.length) { _levelFrames[_local3].MakeActive(_arg1); _local3++; }; if (_allDone){ return; }; _allDone = true; _local3 = 0; while (_local3 < _levelFrames.length) { _local7 = _levelFrames[_local3]; if (!_local7._level._isLevelComplete){ _allDone = false; }; _local3++; }; if (_allDone){ _instructions = new Instructions((((("Congratulations you've completed all the\n" + "levels.\n\n") + "Dr Membrain is truly impressed!\n\n") + "Hope you enjoyed playing. Look out for\n") + "more Dr Membrain games in the future."), true); _instructions.x = 25; _instructions.y = 25; addChild(_instructions); removeChild(_playButton); removeChild(_helpButton); return; }; if (_arg1){ _firstShow = false; _playButton.addEventListener(MouseEvent.MOUSE_UP, OnPlayButton); _helpButton.addEventListener(MouseEvent.MOUSE_UP, OnHelpButton); } else { _playButton.removeEventListener(MouseEvent.MOUSE_UP, OnPlayButton); _helpButton.removeEventListener(MouseEvent.MOUSE_UP, OnHelpButton); }; } public function OnHelpButton(_arg1:MouseEvent):void{ MakeActive(false); addChild(_instructions); } public static function Instance():LevelSelMenuVisibleLayer{ return (_levelSelMenuVisibleLayer); } } }//package
Section 54
//LineSegDistResult (LineSegDistResult) package { import flash.geom.*; public class LineSegDistResult { public var _location:Point; public var _segmentCoeff:Number;// = 0 public var _distance:Number;// = 0 public function LineSegDistResult(){ _location = new Point(); super(); } } }//package
Section 55
//Location (Location) package { import flash.display.*; import flash.geom.*; public class Location { public var _desiredOccupancyType:int;// = 0 public var _locationId:int;// = 0 public var _visible:LocationVisible;// = null public var _pos:Point; public var _neighbourIDs:Array; public var _neighbours:Array; public function Location(){ _pos = new Point(0, 0); _neighbourIDs = new Array(); _neighbours = new Array(); super(); } public function GetLocationOfVisibleOnStage():Point{ var _local1:Point = new Point(0, 0); var _local2:Point = _visible.localToGlobal(_local1); return (_local2); } public function CreateVisibles(_arg1:Sprite):void{ _visible = new LocationVisible(_desiredOccupancyType); _visible.x = _pos.x; _visible.y = _pos.y; _arg1.addChild(_visible); } } }//package
Section 56
//LocationVisible (LocationVisible) package { import flash.display.*; public class LocationVisible extends Sprite { private var _matched:Boolean;// = false private var _occupancyType:int;// = 0 public function LocationVisible(_arg1:int){ _occupancyType = _arg1; UpdateDrawList(); } public function SetMatched(_arg1:Boolean):void{ _matched = _arg1; UpdateDrawList(); } public function UpdateDrawList():void{ graphics.clear(); if (_occupancyType == 0){ return; }; var _local1:int; switch (_occupancyType){ case 0: break; case 1: _local1 = 0xFF0000; break; case 2: _local1 = 0xFF00; break; case 3: _local1 = 4235519; break; case 4: _local1 = 0xFFFF; break; }; if (!_matched){ VisibleObjects.AddAlphaCircleToDrawList(this, _local1, Constants.LOCATION_RADIUS); } else { VisibleObjects.AddShadedSphereToDrawList(this, _local1, (Constants.LOCATION_RADIUS * 0.65), false, false); }; } } }//package
Section 57
//MarkerVisible (MarkerVisible) package { import flash.display.*; public class MarkerVisible extends Sprite { public function MarkerVisible(){ VisibleObjects.AddPlainCircleToDrawList(this, 0, 5); } } }//package
Section 58
//Misc (Misc) package { public class Misc { public static function ScaleColor(_arg1:int, _arg2:Number):int{ var _local3:uint = ((_arg1 & 0xFF0000) >> 16); var _local4:uint = ((_arg1 & 0xFF00) >> 8); var _local5:uint = ((_arg1 & 0xFF) >> 0); _local3 = uint((Number(_local3) * _arg2)); if (_local3 > 0xFF){ _local3 = 0xFF; }; _local4 = uint((Number(_local4) * _arg2)); if (_local4 > 0xFF){ _local4 = 0xFF; }; _local5 = uint((Number(_local5) * _arg2)); if (_local5 > 0xFF){ _local5 = 0xFF; }; _arg1 = (((_local3 << 16) + (_local4 << 8)) + _local5); return (_arg1); } public static function assert(_arg1:Boolean, _arg2:String=null):void{ if (!_arg1){ if (_arg2){ trace(_arg2); }; trace(new Error().getStackTrace()); }; } } }//package
Section 59
//MyMath (MyMath) package { import flash.geom.*; public class MyMath { public static function ClosestPointOnLineSegment(_arg1:Point, _arg2:Point, _arg3:Point):LineSegDistResult{ var _local18:Number; var _local19:Number; var _local4:Point = _arg1; var _local5:Point = _arg2; var _local6:Point = _arg3; var _local7:Number = (((_local6.x - _local4.x) * (_local5.x - _local4.x)) + ((_local6.y - _local4.y) * (_local5.y - _local4.y))); var _local8:Number = (((_local5.x - _local4.x) * (_local5.x - _local4.x)) + ((_local5.y - _local4.y) * (_local5.y - _local4.y))); var _local9:Number = (_local7 / _local8); var _local10:Number = (_local4.x + (_local9 * (_local5.x - _local4.x))); var _local11:Number = (_local4.y + (_local9 * (_local5.y - _local4.y))); var _local12:Number = ((((_local4.y - _local6.y) * (_local5.x - _local4.x)) - ((_local4.x - _local6.x) * (_local5.y - _local4.y))) / _local8); var _local13:Number = (Math.abs(_local12) * Math.sqrt(_local8)); var _local14:Number = _local10; var _local15:Number = _local11; var _local16:Number = 0; if ((((_local9 >= 0)) && ((_local9 <= 1)))){ _local16 = _local13; } else { _local18 = (((_local6.x - _local4.x) * (_local6.x - _local4.x)) + ((_local6.y - _local4.y) * (_local6.y - _local4.y))); _local19 = (((_local6.x - _local5.x) * (_local6.x - _local5.x)) + ((_local6.y - _local5.y) * (_local6.y - _local5.y))); if (_local18 < _local19){ _local14 = _local4.x; _local15 = _local4.y; _local16 = Math.sqrt(_local18); _local9 = 0; } else { _local14 = _local5.x; _local15 = _local5.y; _local16 = Math.sqrt(_local19); _local9 = 1; }; }; var _local17:LineSegDistResult = new LineSegDistResult(); _local17._segmentCoeff = _local9; _local17._distance = _local16; _local17._location.x = _local14; _local17._location.y = _local15; return (_local17); } public static function DotProduct(_arg1:Point, _arg2:Point):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } } }//package
Section 60
//OffsetScale (OffsetScale) package { public class OffsetScale { public var _scaleY:Number;// = 0 public var _offsetX:Number;// = 0 public var _offsetY:Number;// = 0 public var _scaleX:Number;// = 0 } }//package
Section 61
//PlainButton (PlainButton) package { import flash.display.*; public class PlainButton extends SimpleButton { public function PlainButton(_arg1:String, _arg2:int){ upState = new PlainButtonDisplayState(_arg1, _arg2, 0); downState = new PlainButtonDisplayState(_arg1, _arg2, 2); overState = new PlainButtonDisplayState(_arg1, _arg2, 1); hitTestState = upState; useHandCursor = true; } } }//package
Section 62
//PlainButton2 (PlainButton2) package { import flash.display.*; public class PlainButton2 extends SimpleButton { public function PlainButton2(_arg1:String, _arg2:int){ upState = new PlainButtonDisplayState2(_arg1, _arg2, 0); downState = new PlainButtonDisplayState2(_arg1, _arg2, 2); overState = new PlainButtonDisplayState2(_arg1, _arg2, 1); hitTestState = upState; useHandCursor = true; } } }//package
Section 63
//PlainButtonDisplayState (PlainButtonDisplayState) package { import flash.display.*; import flash.text.*; public class PlainButtonDisplayState extends Sprite { public var _text:String; public function PlainButtonDisplayState(_arg1:String, _arg2:int, _arg3:int){ _text = new String(); super(); _text = _arg1; draw(_arg2, _arg3); } private function draw(_arg1:int, _arg2:int):void{ var _local3:Class; if (_arg2 == 0){ _local3 = EmbeddedAssets.Instance()._bigButtonNormal; } else { if (_arg2 == 1){ _local3 = EmbeddedAssets.Instance()._bigButtonHover; } else { if (_arg2 == 2){ _local3 = EmbeddedAssets.Instance()._bigButtonClick; }; }; }; var _local4:Bitmap = new (_local3); _local4.width = _arg1; _local4.height = 50; addChild(_local4); var _local5:TextField = new TextField(); _local5.text = _text; _local5.width = _arg1; _local5.height = 50; var _local6:TextFormat = new TextFormat(); _local6.align = TextFormatAlign.CENTER; _local6.font = "Comic Sans MS"; _local6.size = 30; _local6.bold = true; _local5.setTextFormat(_local6); addChild(_local5); } } }//package
Section 64
//PlainButtonDisplayState2 (PlainButtonDisplayState2) package { import flash.display.*; import flash.text.*; public class PlainButtonDisplayState2 extends Sprite { public var _text:String; public function PlainButtonDisplayState2(_arg1:String, _arg2:int, _arg3:int){ _text = new String(); super(); _text = _arg1; draw(_arg2, _arg3); } private function draw(_arg1:int, _arg2:int):void{ var _local3:Class; if (_arg2 == 0){ _local3 = EmbeddedAssets.Instance()._longButtonNormal; } else { if (_arg2 == 1){ _local3 = EmbeddedAssets.Instance()._longButtonHover; } else { if (_arg2 == 2){ _local3 = EmbeddedAssets.Instance()._longButtonClick; }; }; }; var _local4:Bitmap = new (_local3); _local4.width = _arg1; _local4.height = 30; addChild(_local4); var _local5:TextField = new TextField(); _local5.text = _text; _local5.width = _arg1; _local5.height = 25; var _local6:TextFormat = new TextFormat(); _local6.align = TextFormatAlign.CENTER; _local6.font = "Comic Sans MS"; _local6.size = 15; _local6.bold = true; _local5.setTextFormat(_local6); addChild(_local5); _local5.y = (_local5.y + 2); } } }//package
Section 65
//PlayMenuVisibleLayer (PlayMenuVisibleLayer) package { import flash.events.*; import flash.display.*; public class PlayMenuVisibleLayer extends Sprite { public var _helpButton:PlainButton;// = null public var _instructions:Instructions;// = null public var _switchLevelsButton:PlainButton;// = null public var _firstShow:Boolean;// = true public static var _playMenuVisibleLayer:PlayMenuVisibleLayer = null; public function PlayMenuVisibleLayer(){ _playMenuVisibleLayer = this; _switchLevelsButton = new PlainButton("Switch Levels", 240); _switchLevelsButton.x = 250; _switchLevelsButton.y = 440; addChild(_switchLevelsButton); _helpButton = new PlainButton("Help", 100); _helpButton.x = 550; _helpButton.y = 440; addChild(_helpButton); _instructions = new Instructions((((("Grab and move groups of balls by clicking\n" + "and holding down the left mouse button\n") + "while you move the mouse.\n\n") + "The goal is to match the colored balls with\n") + "target locations of the same color."), true); _instructions.x = 25; _instructions.y = 25; addChild(_instructions); MakeActive(false); } public function OnSwitchLevelsButton(_arg1:MouseEvent):void{ SlippySlide.Instance().SetPlayLayerActive(false); PlayMenuVisibleLayer.Instance().MakeActive(false); SlippySlide.Instance().SetGameLayerActive(false); GameVisibleLayer.Instance().MakeActive(false); LevelSelMenuVisibleLayer.Instance().UpdateVisible(); SlippySlide.Instance().SetLevelSelLayerActive(true); if (!LevelSelMenuVisibleLayer.Instance()._firstShow){ LevelSelMenuVisibleLayer.Instance().MakeActive(true); }; _arg1.stopPropagation(); } public function MakeActive(_arg1:Boolean):void{ if (_arg1){ _firstShow = false; _switchLevelsButton.addEventListener(MouseEvent.MOUSE_UP, OnSwitchLevelsButton); _helpButton.addEventListener(MouseEvent.MOUSE_UP, OnHelpButton); } else { _switchLevelsButton.removeEventListener(MouseEvent.MOUSE_UP, OnSwitchLevelsButton); _helpButton.removeEventListener(MouseEvent.MOUSE_UP, OnHelpButton); }; GameVisibleLayer.Instance().MakeActive(_arg1); } public function OnHelpButton(_arg1:MouseEvent):void{ MakeActive(false); addChild(_instructions); } public static function Instance():PlayMenuVisibleLayer{ return (_playMenuVisibleLayer); } } }//package
Section 66
//RectBounds (RectBounds) package { import flash.geom.*; public class RectBounds { public var _topLeft:Point; public var _addPoint:Boolean;// = false public var _bottomRight:Point; public function RectBounds(){ _topLeft = new Point(0, 0); _bottomRight = new Point(0, 0); super(); } public function UnionPoint(_arg1:Point):void{ if (!_addPoint){ _topLeft = _arg1.clone(); _bottomRight = _arg1.clone(); _addPoint = true; return; }; if (_arg1.x < _topLeft.x){ _topLeft.x = _arg1.x; }; if (_arg1.y < _topLeft.y){ _topLeft.y = _arg1.y; }; if (_arg1.x > _bottomRight.x){ _bottomRight.x = _arg1.x; }; if (_arg1.y > _bottomRight.y){ _bottomRight.y = _arg1.y; }; } public function AspectRatio():Number{ return ((GetWidth() / GetHeight())); } public function DetermineOffsetScaleToApplyToChildRectToFillMaximallyWithUniformScaling(_arg1:RectBounds, _arg2:OffsetScale):void{ var _local3:Number = AspectRatio(); var _local4:Number = _arg1.AspectRatio(); var _local5:Number = GetWidth(); var _local6:Number = GetHeight(); var _local7:Number = 0; var _local8:Number = 0; var _local9:Number = 1; if (_local4 > _local3){ _local9 = (GetWidth() / _arg1.GetWidth()); _local6 = (_local9 * _arg1.GetHeight()); _local8 = ((GetHeight() - _local6) / 2); } else { _local9 = (GetHeight() / _arg1.GetHeight()); _local5 = (_local9 * _arg1.GetWidth()); _local7 = ((GetWidth() - _local5) / 2); }; _local7 = (_local7 + _topLeft.x); _local8 = (_local8 + _topLeft.y); _local7 = (_local7 - (_arg1._topLeft.x * _local9)); _local8 = (_local8 - (_arg1._topLeft.y * _local9)); _arg2._offsetX = _local7; _arg2._offsetY = _local8; _arg2._scaleX = _local9; _arg2._scaleY = _local9; } public function Shrink(_arg1:Number, _arg2:Number):void{ _topLeft.x = (_topLeft.x + _arg1); _topLeft.y = (_topLeft.y + _arg2); _bottomRight.x = (_bottomRight.x - _arg1); _bottomRight.y = (_bottomRight.y - _arg2); } public function GetCenter():Point{ var _local1:Point = new Point(); _local1 = Point.interpolate(_topLeft, _bottomRight, 0.5); return (_local1); } public function GetWidth():Number{ return ((_bottomRight.x - _topLeft.x)); } public function GetHeight():Number{ return ((_bottomRight.y - _topLeft.y)); } } }//package
Section 67
//Run (Run) package { import flash.display.*; public class Run { public var _locationList:Array; public var _visible:RunVisible;// = null public var _idList:Array; public function Run(){ _idList = new Array(); _locationList = new Array(); super(); } public function IsCyclic():Boolean{ if (_locationList[0] == _locationList[(_locationList.length - 1)]){ return (true); }; return (false); } public function CreateVisibles(_arg1:Sprite):void{ _visible = new RunVisible(this); _arg1.addChild(_visible); } public function GetNumberOfLocationsOnRunTakingIntoAccountCyclic():int{ if (IsCyclic()){ return ((_locationList.length - 1)); }; return (_locationList.length); } } }//package
Section 68
//RunVisible (RunVisible) package { import flash.display.*; import flash.geom.*; public class RunVisible extends Sprite { private var _col:int;// = 0x808080 private var _run:Run;// = null public function RunVisible(_arg1:Run){ _run = _arg1; UpdateDrawList(); } public function UpdateDrawList():void{ var _local2:Location; var _local3:Point; var _local4:Sprite; graphics.clear(); while (numChildren != 0) { removeChildAt(0); }; graphics.lineStyle(8, _col); var _local1:int; while (_local1 < _run._locationList.length) { _local2 = _run._locationList[_local1]; _local3 = _local2._pos; if (_local1 == 0){ graphics.moveTo(_local3.x, _local3.y); } else { graphics.lineTo(_local3.x, _local3.y); }; _local1++; }; _local1 = 0; while (_local1 < _run._locationList.length) { _local2 = _run._locationList[_local1]; _local3 = _local2._pos; _local4 = new Sprite(); addChild(_local4); _local4.x = _local3.x; _local4.y = _local3.y; VisibleObjects.AddShadedSphereToDrawList(_local4, _col, 9, false, false); _local1++; }; } public function SetSelected(_arg1:Boolean):void{ if (_arg1){ _col = 0xD0D0D0; } else { _col = 0x808080; }; UpdateDrawList(); } } }//package
Section 69
//SlippySlide (SlippySlide) package { import flash.events.*; import flash.display.*; import flash.net.*; public class SlippySlide { public var _levelList:Array; private var _frontMenuVisibleLayer:FrontMenuVisibleLayer; private var _backGroundVisibleLayer:Sprite; private var _rootSprite:Sprite; private var _gameVisibleLayer:GameVisibleLayer; private var _playMenuVisibleLayer:PlayMenuVisibleLayer; private var _levelSelMenuVisibleLayer:LevelSelMenuVisibleLayer; private var _debugVisibleLayer:DebugVisibleLayer; public static var _slippySlide:SlippySlide = null; public function SlippySlide(_arg1:Sprite){ _levelList = new Array(); super(); _slippySlide = this; _rootSprite = _arg1; SetupLevelList(); _debugVisibleLayer = new DebugVisibleLayer(); AddMainDebugControls(_debugVisibleLayer); _backGroundVisibleLayer = new Sprite(); _levelSelMenuVisibleLayer = new LevelSelMenuVisibleLayer(); _gameVisibleLayer = new GameVisibleLayer(); _frontMenuVisibleLayer = new FrontMenuVisibleLayer(); _playMenuVisibleLayer = new PlayMenuVisibleLayer(); _rootSprite.addChild(_backGroundVisibleLayer); _rootSprite.addChild(_gameVisibleLayer); _rootSprite.addChild(_levelSelMenuVisibleLayer); _rootSprite.addChild(_frontMenuVisibleLayer); _rootSprite.addChild(_playMenuVisibleLayer); SetGameLayerActive(false); SetLevelSelLayerActive(false); SetPlayLayerActive(false); var _local2:Class = EmbeddedAssets.Instance()._background; var _local3:Bitmap = new (_local2); _backGroundVisibleLayer.addChild(_local3); var _local4:PlainButton2 = new PlainButton2("More Games", 120); _local4.x = 10; _local4.y = 10; _local4.addEventListener(MouseEvent.MOUSE_UP, OnMoreGames); _backGroundVisibleLayer.addChild(_local4); var _local5:PlainButton2 = new PlainButton2("Put this game on your site", 220); _local5.x = 470; _local5.y = 10; _local5.addEventListener(MouseEvent.MOUSE_UP, OnPutOnSite); _backGroundVisibleLayer.addChild(_local5); } public function SetPlayLayerActive(_arg1:Boolean):void{ SetLayerActiveOnDrawStack(_playMenuVisibleLayer, 4, _arg1); } public function OnDebugToggleBackLayer(_arg1:MouseEvent):void{ ToggleLayerOnDrawStack(_backGroundVisibleLayer, 0); } public function SetGameLayerActive(_arg1:Boolean):void{ SetLayerActiveOnDrawStack(_gameVisibleLayer, 1, _arg1); } public function ToggleLayerOnDrawStack(_arg1:Sprite, _arg2:int):void{ if (_rootSprite.contains(_arg1)){ _rootSprite.removeChildAt(_arg2); _rootSprite.addChildAt(new Sprite(), _arg2); } else { _rootSprite.removeChildAt(_arg2); _rootSprite.addChildAt(_arg1, _arg2); }; } public function SetFrontLayerActive(_arg1:Boolean):void{ SetLayerActiveOnDrawStack(_frontMenuVisibleLayer, 3, _arg1); } public function OnDebugToggleLevelSelLayer(_arg1:MouseEvent):void{ ToggleLayerOnDrawStack(_levelSelMenuVisibleLayer, 2); } public function OnDebugTogglePlayLayer(_arg1:MouseEvent):void{ ToggleLayerOnDrawStack(_playMenuVisibleLayer, 4); } public function OnDebugToggleFrontLayer(_arg1:MouseEvent):void{ ToggleLayerOnDrawStack(_frontMenuVisibleLayer, 3); } public function OnDebugToggleGameLayer(_arg1:MouseEvent):void{ ToggleLayerOnDrawStack(_gameVisibleLayer, 1); } private function SetupLevelList():void{ var _local1:LevelLoader = new LevelLoader(); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level1)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level2)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level3)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level4)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level5)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level6)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level7)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level8)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level9)); _levelList.push(_local1.Load(EmbeddedAssets.Instance()._level10)); } public function SetBackLayerActive(_arg1:Boolean):void{ SetLayerActiveOnDrawStack(_backGroundVisibleLayer, 0, _arg1); } private function AddMainDebugControls(_arg1:DebugVisibleLayer):void{ var _local2:DebugButton = _arg1.AddDebugButton("Back"); _local2.addEventListener(MouseEvent.MOUSE_UP, OnDebugToggleBackLayer); _local2 = _arg1.AddDebugButton("Game"); _local2.addEventListener(MouseEvent.MOUSE_UP, OnDebugToggleGameLayer); _local2 = _arg1.AddDebugButton("Front"); _local2.addEventListener(MouseEvent.MOUSE_UP, OnDebugToggleFrontLayer); _local2 = _arg1.AddDebugButton("Level Sel"); _local2.addEventListener(MouseEvent.MOUSE_UP, OnDebugToggleLevelSelLayer); _local2 = _arg1.AddDebugButton("Play"); _local2.addEventListener(MouseEvent.MOUSE_UP, OnDebugTogglePlayLayer); } private function OnMoreGames(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(Constants.URL_OTHER_GAMES_MAIN)); } private function OnPutOnSite(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(Constants.URL_PUT_ON_SITE)); } public function SetLayerActiveOnDrawStack(_arg1:Sprite, _arg2:int, _arg3:Boolean):void{ if (_arg3){ _rootSprite.removeChildAt(_arg2); _rootSprite.addChildAt(_arg1, _arg2); } else { _rootSprite.removeChildAt(_arg2); _rootSprite.addChildAt(new Sprite(), _arg2); }; } public function SetLevelSelLayerActive(_arg1:Boolean):void{ SetLayerActiveOnDrawStack(_levelSelMenuVisibleLayer, 2, _arg1); } public static function Instance():SlippySlide{ return (_slippySlide); } } }//package
Section 70
//VisibleObjects (VisibleObjects) package { import flash.display.*; import flash.geom.*; public class VisibleObjects { public static function AddAlphaCircleToDrawListFastFade(_arg1:Sprite, _arg2:uint, _arg3:Number):void{ _arg1.graphics.lineStyle(); var _local4:String = GradientType.RADIAL; var _local5:Array = [_arg2, _arg2, _arg2]; var _local6:Array = [1, 1, 0]; var _local7:Array = [0, 128, 0xFF]; var _local8:Matrix = new Matrix(); _local8.createGradientBox((_arg3 * 2), (_arg3 * 2), 0, -(_arg3), -(_arg3)); var _local9:String = SpreadMethod.PAD; var _local10:String = InterpolationMethod.RGB; var _local11:Number = 0; _arg1.graphics.beginGradientFill(_local4, _local5, _local6, _local7, _local8, _local9, _local10, _local11); _arg1.graphics.drawRect(-(_arg3), -(_arg3), (_arg3 * 2), (_arg3 * 2)); _arg1.graphics.endFill(); } public static function AddShadedSphereToDrawList(_arg1:Sprite, _arg2:uint, _arg3:Number, _arg4:Boolean, _arg5:Boolean):void{ var _local6:String; var _local7:Array; var _local8:Array; var _local9:Array; var _local10:Matrix; var _local11:String; var _local12:String; var _local13:Number; if (_arg4){ _arg1.graphics.lineStyle(0); } else { _arg1.graphics.lineStyle(); }; if (_arg5){ _local6 = GradientType.RADIAL; _local7 = [0xFFFFFF, _arg2]; _local8 = [1, 1]; _local9 = [0, 0xFF]; _local10 = new Matrix(); _local10.createGradientBox(_arg3, _arg3, 0, ((-(_arg3) * 2) / 3), ((-(_arg3) * 2) / 3)); _local11 = SpreadMethod.PAD; _local12 = InterpolationMethod.RGB; _local13 = 0; _arg1.graphics.beginGradientFill(_local6, _local7, _local8, _local9, _local10, _local11, _local12, _local13); _arg1.graphics.drawCircle(0, 0, _arg3); _arg1.graphics.endFill(); } else { _arg1.graphics.beginFill(_arg2); _arg1.graphics.drawCircle(0, 0, _arg3); _arg1.graphics.endFill(); }; } public static function AddCoolBackgroundToDrawList(_arg1:Sprite):void{ _arg1.graphics.lineStyle(0); var _local2:String = GradientType.RADIAL; var _local3:Array = [5263536, 2105440]; var _local4:Array = [1, 1]; var _local5:Array = [0, 0xFF]; var _local6:Matrix = new Matrix(); _local6.createGradientBox(1160, 781, 0, -230, -128); var _local7:String = SpreadMethod.PAD; var _local8:String = InterpolationMethod.RGB; var _local9:Number = 0; _arg1.graphics.beginGradientFill(_local2, _local3, _local4, _local5, _local6, _local7, _local8, _local9); _arg1.graphics.drawRect(0, 0, 700, 525); _arg1.graphics.endFill(); } public static function AddPlainCircleToDrawList(_arg1:Sprite, _arg2:uint, _arg3:Number):void{ _arg1.graphics.lineStyle(3, _arg2); _arg1.graphics.drawCircle(0, 0, _arg3); } public static function AddAlphaCircleToDrawList(_arg1:Sprite, _arg2:uint, _arg3:Number):void{ _arg1.graphics.lineStyle(); var _local4:String = GradientType.RADIAL; var _local5:Array = [_arg2, _arg2]; var _local6:Array = [1, 0]; var _local7:Array = [0, 0xFF]; var _local8:Matrix = new Matrix(); _local8.createGradientBox((_arg3 * 2), (_arg3 * 2), 0, -(_arg3), -(_arg3)); var _local9:String = SpreadMethod.PAD; var _local10:String = InterpolationMethod.RGB; var _local11:Number = 0; _arg1.graphics.beginGradientFill(_local4, _local5, _local6, _local7, _local8, _local9, _local10, _local11); _arg1.graphics.drawRect(-(_arg3), -(_arg3), (_arg3 * 2), (_arg3 * 2)); _arg1.graphics.endFill(); } public static function AddShadowToDrawList(_arg1:Sprite):void{ var _local2:Number = 20; _arg1.graphics.lineStyle(); var _local3:String = GradientType.RADIAL; var _local4:Array = [0, 0]; var _local5:Array = [1, 0]; var _local6:Array = [0, 0xFF]; var _local7:Matrix = new Matrix(); _local7.createGradientBox((_local2 * 2), _local2, 0, -(_local2), (-(_local2) / 2)); var _local8:String = SpreadMethod.PAD; var _local9:String = InterpolationMethod.RGB; var _local10:Number = 0; _arg1.graphics.beginGradientFill(_local3, _local4, _local5, _local6, _local7, _local8, _local9, _local10); _arg1.graphics.drawRect(-(_local2), (-(_local2) * 0.5), (_local2 * 2), _local2); _arg1.graphics.endFill(); } } }//package

Library Items

Symbol 1 BinaryData {EmbeddedAssets__level3}
Symbol 2 BinaryData {EmbeddedAssets__check_dataClass}
Symbol 3 Bitmap {EmbeddedAssets__longButtonHover}
Symbol 4 BinaryData {EmbeddedAssets__level7}
Symbol 5 Bitmap {EmbeddedAssets__bigButtonNormal}
Symbol 6 MovieClip {EmbeddedAssets__arrow}
Symbol 7 BinaryData {EmbeddedAssets__level8}
Symbol 8 BinaryData {EmbeddedAssets__introMovie_dataClass}
Symbol 9 Bitmap {EmbeddedAssets__longButtonNormal}
Symbol 10 BinaryData {EmbeddedAssets__level2}
Symbol 11 BinaryData {EmbeddedAssets__level6}
Symbol 12 BinaryData {EmbeddedAssets__level5}
Symbol 13 Bitmap {EmbeddedAssets__titleScreen}
Symbol 14 Bitmap {EmbeddedAssets__bigButtonHover}
Symbol 15 BinaryData {EmbeddedAssets__level1}
Symbol 16 Bitmap {EmbeddedAssets__bigButtonClick}
Symbol 17 BinaryData {EmbeddedAssets__level9}
Symbol 18 BinaryData {EmbeddedAssets__level10}
Symbol 19 Bitmap {EmbeddedAssets__longButtonClick}
Symbol 20 Bitmap {EmbeddedAssets__background}
Symbol 21 BinaryData {EmbeddedAssets__arrow_dataClass}
Symbol 22 BinaryData {EmbeddedAssets__level4}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 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
SerialNumber (41)Timeline Frame 1

Labels

"GameFramework"Frame 1




http://swfchan.com/10/47237/info.shtml
Created: 2/5 -2019 06:40:52 Last modified: 2/5 -2019 06:40:52 Server time: 16/05 -2024 00:28:32