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

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

Bike Champ - great physics-based moto-stunt game.swf

This is the info page for
Flash #129703

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


ActionScript [AS3]
Section 1
//ControllerEvent (bikeChamp.core.events.ControllerEvent) package bikeChamp.core.events { import flash.events.*; public class ControllerEvent extends Event { private var _data:Object; public static const COMPLETE:String = "ControllerEvent.complete"; public static const MESSAGE:String = "ControllerEvent.message"; public function ControllerEvent(_arg1:String, _arg2:Object=null){ super(_arg1); _data = _arg2; } public function get data():Object{ return (_data); } override public function clone():Event{ return (new ControllerEvent(type, _data)); } } }//package bikeChamp.core.events
Section 2
//GameHUD (bikeChamp.core.game.controls.GameHUD) package bikeChamp.core.game.controls { import flash.display.*; import bikeChamp.core.game.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import bikeChamp.core.game.events.*; import flash.text.*; import com.bigwigmedia.ui.containers.*; import com.bigwigmedia.ui.styles.*; import bikeChamp.utils.*; public class GameHUD extends LayoutContainer { private var _timerUpdateCount:int;// = 0 private var _linkBtn:IconicButton; private var _pauseBtn:LabelButton; private var _levelNumberLabel:Label; private var _timerLabel:Label; private var _isPrevTextFormat_1:Boolean;// = false private var _textFormat_1:TextFormat; private var _textFormat_2:TextFormat; private var _nitroIndicator:Sprite; public function GameHUD(){ _textFormat_1 = new TextFormat(Managers.fontManager.getFontNameByID("Font_2"), 26, 0xFFFFFF); _textFormat_2 = new TextFormat(Managers.fontManager.getFontNameByID("Font_2"), 26, 0xFF0000); super(); setSize(640, 480); _timerLabel = new Label("00:00:00"); _timerLabel.setStyle(AbstractComponentStyle.TEXT_FORMAT, _textFormat_1); addChildToLayout(_timerLabel, {top:10, right:10}); _levelNumberLabel = new Label((GameModel.isUserLevel) ? "" : ("Level " + String((GameModel.levelNum + 1)))); _levelNumberLabel.setStyle(AbstractComponentStyle.TEXT_FORMAT, new TextFormat(Managers.fontManager.getFontNameByID("Font_1"), 16, 0xFFFFFF)); addChildToLayout(_levelNumberLabel, {bottom:10, horizontalCenter:0}); _nitroIndicator = new nitro_indicator(); _nitroIndicator.visible = false; addChild(_nitroIndicator); _linkBtn = new IconicButton(TwoDPlayButtonIcon); _linkBtn.scale = 0.7; addChildToLayout(_linkBtn, {bottom:10, left:10}); _pauseBtn = new LabelButton("Pause/Menu"); addChildToLayout(_pauseBtn, {bottom:10, right:10}); addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case _pauseBtn: dispatchEvent(new GameHUDEvent(GameHUDEvent.PAUSE)); break; case _linkBtn: dispatchEvent(new GameHUDEvent(GameHUDEvent.LINK_2D_PLAY)); break; }; } public function showTimer(_arg1:int, _arg2:Boolean):void{ _timerLabel.text = StringUtil.millisecondsToString(_arg1); if (((_arg2) && ((_arg1 < 5000)))){ if ((int((++_timerUpdateCount / 10)) % 2) == 0){ if (!_isPrevTextFormat_1){ _timerLabel.setStyle(AbstractComponentStyle.TEXT_FORMAT, _textFormat_1); }; _isPrevTextFormat_1 = true; } else { if (_isPrevTextFormat_1){ _timerLabel.setStyle(AbstractComponentStyle.TEXT_FORMAT, _textFormat_2); }; _isPrevTextFormat_1 = false; }; }; } public function set nitroIndicatorVisible(_arg1:Boolean):void{ _nitroIndicator.visible = _arg1; } public function resetTimer():void{ _timerLabel.setStyle(AbstractComponentStyle.TEXT_FORMAT, _textFormat_1); _isPrevTextFormat_1 = true; } } }//package bikeChamp.core.game.controls
Section 3
//InstructionsPopup (bikeChamp.core.game.controls.InstructionsPopup) package bikeChamp.core.game.controls { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class InstructionsPopup extends LayoutContainer { private var mainMenuBtn:LabelButton; private var _owner:IPopupOwner; public function InstructionsPopup(_arg1:IPopupOwner){ setSize(640, 480); _owner = _arg1; addChild(new InstructionsBackground()); mainMenuBtn = new GameButton("Close"); mainMenuBtn.beacon = true; addChildToLayout(mainMenuBtn, {bottom:5, horizontalCenter:0}); this.addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case mainMenuBtn: _owner.removePopup(); break; }; } } }//package bikeChamp.core.game.controls
Section 4
//LevelCompletePopup (bikeChamp.core.game.controls.LevelCompletePopup) package bikeChamp.core.game.controls { import bikeChamp.core.game.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import flash.text.*; import bikeChamp.ui.*; import com.boostworthy.events.*; import com.bigwigmedia.ui.containers.*; import com.bigwigmedia.ui.styles.*; import bikeChamp.core.sound.*; import com.boostworthy.animation.rendering.*; import bikeChamp.utils.*; import com.boostworthy.animation.management.*; import com.boostworthy.animation.easing.*; public class LevelCompletePopup extends LayoutContainer { private var stuntBonus:int; private var buttonsBox:VBox; private var nextLevelBtn:LabelButton; private var labelsBox:VBox; private var restartBtn:LabelButton; private var viewScoresBtn:LabelButton; private var noCrashBonus:int; private var selectLevelBtn:LabelButton; private var mainMenuBtn:LabelButton; private var submitScoreBtn:LabelButton; private var transitionBitmap:LevelCompleteTransitionBitmap; private var twoDPlayBtn:IconicButton; private var editLevelBtn:LabelButton; private var _owner:GameView; private var animationMan:AnimationManager; private var levelTime:int; public function LevelCompletePopup(_arg1:GameView, _arg2:int, _arg3:int, _arg4:int){ setSize(640, 480); Managers.soundManager.play(SoundID.APPLAUSE_WAV); _owner = _arg1; this.levelTime = _arg2; this.noCrashBonus = _arg3; this.stuntBonus = _arg4; transitionBitmap = new LevelCompleteTransitionBitmap(); addChild(transitionBitmap); animationMan = new AnimationManager(); animationMan.addEventListener(AnimationEvent.FINISH, onAnimationFinishHandler); animationMan.brightness(transitionBitmap, -100, 1500, Transitions.LINEAR, RenderMethod.ENTER_FRAME); } private function initialize():void{ var _local2:Boolean; var _local3:Label; var _local4:Label; var _local5:Label; var _local6:Label; var _local7:Label; var _local8:Label; var _local9:Label; var _local10:int; var _local11:int; var _local12:Label; var _local13:Label; var _local14:Label; var _local15:Label; var _local16:Boolean; removeChild(transitionBitmap); transitionBitmap.dispose(); var _local1:Boolean = ((GameModel.isUserLevel) || ((levelTime <= GameModel.levelData.timeGoal))); addChild((_local1) ? new LevelWonBackground() : new LevelLostBackground()); labelsBox = new VBox(); labelsBox.gap = 5; labelsBox.fitSizeToContent = true; buttonsBox = new VBox(); buttonsBox.gap = 5; buttonsBox.fitSizeToContent = true; if (GameModel.isUserLevel){ _local2 = GameModel.completeUserLevel(levelTime); _local3 = new Label((_local2) ? "New Best Time!" : "Try again!"); _local3.setStyle(AbstractComponentStyle.TEXT_FORMAT, new TextFormat(Managers.fontManager.getFontNameByID("Font_1"), 26, 0xFFFFFF)); labelsBox.addChildToLayout(_local3, {horizontalCenter:0}); _local4 = new Label(("Level Time: " + StringUtil.millisecondsToString(levelTime))); labelsBox.addChildToLayout(_local4, {horizontalCenter:0}); _local5 = new Label(("Best Time: " + StringUtil.millisecondsToString(GameModel.userLevelTime))); labelsBox.addChildToLayout(_local5, {horizontalCenter:0}); restartBtn = new GameButton("Restart Level"); buttonsBox.addChildToLayout(restartBtn); selectLevelBtn = new GameButton("Select Level"); buttonsBox.addChildToLayout(selectLevelBtn); if (!GameModel.isLevelImported){ editLevelBtn = new GameButton("Edit Level"); buttonsBox.addChildToLayout(editLevelBtn); }; } else { _local6 = new Label((_local1) ? "Well Done!" : "You Ran Out Of Time! Try Again!"); _local6.setStyle(AbstractComponentStyle.TEXT_FORMAT, new TextFormat(Managers.fontManager.getFontNameByID("Font_1"), 26, 0xFFFFFF)); labelsBox.addChildToLayout(_local6, {horizontalCenter:0}); _local7 = new Label(("Level Goal: " + StringUtil.millisecondsToString(GameModel.levelData.timeGoal))); labelsBox.addChildToLayout(_local7, {horizontalCenter:0}); _local8 = new Label(("Level Time: " + StringUtil.millisecondsToString(levelTime))); labelsBox.addChildToLayout(_local8, {horizontalCenter:0}); if (_local1){ _local10 = (((GameModel.levelData.timeGoal - levelTime) / 1000) * GameModel.bikeData.timeToScoreMultiplier); _local11 = ((_local10 + noCrashBonus) + stuntBonus); _local12 = new Label(("Time Score: " + _local10)); labelsBox.addChildToLayout(_local12, {horizontalCenter:0}); _local13 = new Label(("No Crash Bonus: " + noCrashBonus)); labelsBox.addChildToLayout(_local13, {horizontalCenter:0}); _local14 = new Label(("Stunts Bonus: " + stuntBonus)); labelsBox.addChildToLayout(_local14, {horizontalCenter:0}); _local15 = new Label(("Level Score: " + _local11)); labelsBox.addChildToLayout(_local15, {horizontalCenter:0}); nextLevelBtn = new GameButton("Next Level"); buttonsBox.addChildToLayout(nextLevelBtn); _local16 = GameModel.completeLevel(_local11); }; _local9 = new Label(("Total Score: " + GameModel.totalScore)); labelsBox.addChildToLayout(_local9, {horizontalCenter:0}); restartBtn = new GameButton("Restart Level"); buttonsBox.addChildToLayout(restartBtn); submitScoreBtn = new GameButton("Submit Score"); buttonsBox.addChildToLayout(submitScoreBtn); viewScoresBtn = new GameButton("View Scores"); buttonsBox.addChildToLayout(viewScoresBtn); }; mainMenuBtn = new GameButton("Main Menu"); buttonsBox.addChildToLayout(mainMenuBtn); twoDPlayBtn = new IconicButton(TwoDPlayButtonIcon); addChildToLayout(twoDPlayBtn, {left:10, bottom:10}); addChildToLayout(labelsBox, {top:10, left:10}); addChildToLayout(buttonsBox, {bottom:10, right:10}); addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function onAnimationFinishHandler(_arg1:AnimationEvent):void{ initialize(); } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case restartBtn: _owner.restartLevel(); break; case mainMenuBtn: _owner.gotoMainMenu(); break; case editLevelBtn: _owner.editLevel(); break; case selectLevelBtn: _owner.selectLevel(); break; case nextLevelBtn: _owner.playNextLevel(); break; case submitScoreBtn: Managers.urlCaller.submitScore(GameModel.totalScore); break; case viewScoresBtn: Managers.urlCaller.viewScores(); break; case twoDPlayBtn: Managers.urlCaller.mainLink(); break; }; } override public function dispose():void{ _owner = null; animationMan.removeEventListener(AnimationEvent.FINISH, onAnimationFinishHandler); animationMan.dispose(); animationMan = null; super.dispose(); } } }//package bikeChamp.core.game.controls
Section 5
//LevelCompleteTransitionBitmap (bikeChamp.core.game.controls.LevelCompleteTransitionBitmap) package bikeChamp.core.game.controls { import flash.display.*; import flash.geom.*; import com.boostworthy.core.*; import com.bigwigmedia.application.*; public class LevelCompleteTransitionBitmap extends EnhancedBitmap { public function LevelCompleteTransitionBitmap(){ bitmapData = new BitmapData(640, 480, false, 0); bitmapData.draw(ApplicationGlobals.application.mainView, null, null, null, new Rectangle(0, 0, 640, 480), true); } } }//package bikeChamp.core.game.controls
Section 6
//PausePopup (bikeChamp.core.game.controls.PausePopup) package bikeChamp.core.game.controls { import bikeChamp.core.game.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class PausePopup extends LayoutContainer implements IPopupOwner { private var mainMenuBtn:LabelButton; private var selectLevelBtn:LabelButton; private var editLevelBtn:LabelButton; private var restartLevelBtn:LabelButton; private var _popup:AbstractComponent; private var _owner:GameView; private var vBox:VBox; private var resumeBtn:LabelButton; private var instructionsBtn:LabelButton; private var soundSwitchBtn:LabelButton; private var titleLabel:Label; public function PausePopup(_arg1:GameView){ setSize(640, 480); _owner = _arg1; graphics.beginFill(0, 0.7); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); titleLabel = new Label("GAME PAUSED"); addChildToLayout(titleLabel, {horizontalCenter:0, top:20}); vBox = new VBox(); vBox.gap = 5; resumeBtn = new GameButton("Resume Game"); resumeBtn.beacon = true; vBox.addChildToLayout(resumeBtn); restartLevelBtn = new GameButton("Restart Level"); vBox.addChildToLayout(restartLevelBtn); if (GameModel.isUserLevel){ if (!GameModel.isLevelImported){ editLevelBtn = new GameButton("Edit Level"); vBox.addChildToLayout(editLevelBtn); }; selectLevelBtn = new GameButton("Select Level"); vBox.addChildToLayout(selectLevelBtn); }; var _local2:Boolean = Managers.configManager.soundEnabled; instructionsBtn = new GameButton("Instructions"); vBox.addChildToLayout(instructionsBtn); soundSwitchBtn = new GameButton((_local2) ? "Switch Sound OFF" : "Switch Sound ON"); vBox.addChildToLayout(soundSwitchBtn); mainMenuBtn = new GameButton("Main Menu"); vBox.addChildToLayout(mainMenuBtn); addChildToLayout(vBox, {verticalCenter:0, horizontalCenter:0}); this.addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case resumeBtn: _owner.unpause(); break; case restartLevelBtn: _owner.restartLevel(); break; case soundSwitchBtn: Managers.configManager.soundEnabled = !(Managers.configManager.soundEnabled); soundSwitchBtn.label = (Managers.configManager.soundEnabled) ? "Switch Sound OFF" : "Switch Sound ON"; break; case mainMenuBtn: _owner.gotoMainMenu(); break; case editLevelBtn: _owner.editLevel(); break; case instructionsBtn: _popup = new InstructionsPopup(this); addChild(_popup); break; case selectLevelBtn: _owner.selectLevel(); break; }; } public function removePopup():void{ if (_popup){ removeChild(_popup); _popup.dispose(); _popup = null; }; } override public function dispose():void{ _owner = null; removePopup(); super.dispose(); } } }//package bikeChamp.core.game.controls
Section 7
//GameHUDEvent (bikeChamp.core.game.events.GameHUDEvent) package bikeChamp.core.game.events { import flash.events.*; public class GameHUDEvent extends Event { public static const LINK_2D_PLAY:String = "LINK_2D_PLAY"; public static const PAUSE:String = "PAUSE"; public function GameHUDEvent(_arg1:String){ super(_arg1); } } }//package bikeChamp.core.game.events
Section 8
//GameObjectEvent (bikeChamp.core.game.events.GameObjectEvent) package bikeChamp.core.game.events { import flash.events.*; public class GameObjectEvent extends Event { private var _data:Object; public static const PICK_UP_NITRO:String = "PICK_UP_NITRO"; public static const BIKER_CRASH:String = "BIKER_CRASH"; public static const STUNT:String = "STUNT"; public static const PASS_CHECK_POINT:String = "PASS_CHECK_POINT"; public function GameObjectEvent(_arg1:String, _arg2:Object=null){ super(_arg1); _data = _arg2; } public function get data():Object{ return (_data); } override public function clone():Event{ return (new GameObjectEvent(type, _data)); } } }//package bikeChamp.core.game.events
Section 9
//BikeData (bikeChamp.core.game.gameObjects.BikeData) package bikeChamp.core.game.gameObjects { import bikeChamp.core.game.*; public class BikeData { private var _leanMaxAngularVelocity:Number; private var _backwardSpeedToTorqueMultiplier:Number; private var _bikeBodyDummyHeight:Number; private var _nitroForce:Number; private var _bikeBodyDummyWidth:Number; private var _backWheelieTimeToScoreMultiplier:Number; private var _airTimeMinTime:Number; private var _rearWheelDensity:Number; private var _jumpImpulseY:Number; private var _jumpImpulseX:Number; private var _noCrashBonus:Number; private var _frontWheelRadius:Number; private var _forwardSpeedToTorqueMultiplier:Number; private var _rearWheelRadius:Number; private var _bikeBodyDummyDispX:Number; private var _speedMaxAngularVelocity:Number; private var _frontWheelDensity:Number; private var _frontWheelRestitution:Number; private var _bikeBodyDummyDispY:Number; private var _frontWheelieMinTime:Number; private var _acceleration:Number; private var _frontWheelFriction:Number; private var _frontWheelieTimeToScoreMultiplier:Number; private var _wheelsDistance:Number; private var _rearWheelFriction:Number; private var _timeToScoreMultiplier:Number; private var _rearWheelRestitution:Number; private var _bikeBodyDummyDensity:Number; private var _nitroDuration:int; private var _bikerDensity:Number; private var _airTimeToScoreMultiplier:Number; private var _backSomersaultToScoreMultiplier:Number; private var _backWheelieMinTime:Number; private var _frontSomersaultToScoreMultiplier:Number; private var _deceleration:Number; public function BikeData(_arg1:XML){ _rearWheelRadius = _arg1.rear_wheel.radius; _rearWheelDensity = _arg1.rear_wheel.density; _rearWheelRestitution = _arg1.rear_wheel.restitution; _rearWheelFriction = _arg1.rear_wheel.friction; _frontWheelRadius = _arg1.front_wheel.radius; _frontWheelDensity = _arg1.front_wheel.density; _frontWheelRestitution = _arg1.front_wheel.restitution; _frontWheelFriction = _arg1.front_wheel.friction; _wheelsDistance = _arg1.wheels_distance; _bikeBodyDummyWidth = _arg1.bike_body_dummy.width; _bikeBodyDummyHeight = _arg1.bike_body_dummy.height; _bikeBodyDummyDispX = _arg1.bike_body_dummy.x_displacement; _bikeBodyDummyDispY = _arg1.bike_body_dummy.y_displacement; _bikeBodyDummyDensity = _arg1.bike_body_dummy.density; _acceleration = _arg1.speed_control.acceleration; _deceleration = _arg1.speed_control.deceleration; _speedMaxAngularVelocity = _arg1.speed_control.max_angular_velocity; _jumpImpulseX = _arg1.jumping.x_impulse; _jumpImpulseY = _arg1.jumping.y_impulse; _forwardSpeedToTorqueMultiplier = _arg1.leaning_control.forward_speed_to_torque_multiplier; _backwardSpeedToTorqueMultiplier = _arg1.leaning_control.backward_speed_to_torque_multiplier; _leanMaxAngularVelocity = _arg1.leaning_control.max_angular_velocity; _bikerDensity = _arg1.biker.density; _nitroForce = _arg1.nitro.force; _nitroDuration = _arg1.nitro.duration; _backWheelieMinTime = _arg1.scoring.back_wheelie_min_time; _frontWheelieMinTime = _arg1.scoring.front_wheelie_min_time; _airTimeMinTime = _arg1.scoring.air_time_min_time; _timeToScoreMultiplier = _arg1.scoring.time_to_score_multiplier; _noCrashBonus = _arg1.scoring.no_crash_bonus; _backWheelieTimeToScoreMultiplier = _arg1.scoring.back_wheelie_min_time; _frontWheelieTimeToScoreMultiplier = _arg1.scoring.front_wheelie_min_time; _airTimeToScoreMultiplier = _arg1.scoring.air_time_min_time; _backSomersaultToScoreMultiplier = _arg1.scoring.back_somersault_to_score_multiplier; _frontSomersaultToScoreMultiplier = _arg1.scoring.front_somersault_to_score_multiplier; } public function get frontWheelieTimeToScoreMultiplier():Number{ return (_frontWheelieTimeToScoreMultiplier); } public function get airTimeMinTime():Number{ return (_airTimeMinTime); } public function get frontWheelieMinTime():Number{ return (_frontWheelieMinTime); } public function get deceleration():Number{ return (_deceleration); } public function get forwardSpeedToTorqueMultiplier():Number{ return (_forwardSpeedToTorqueMultiplier); } public function get backSomersaultToScoreMultiplier():Number{ return (_backSomersaultToScoreMultiplier); } public function get rearWheelFriction():Number{ return (_rearWheelFriction); } public function get backWheelieMinTime():Number{ return (_backWheelieMinTime); } public function get jumpImpulseX():Number{ return (_jumpImpulseX); } public function get frontWheelRestitution():Number{ return (_frontWheelRestitution); } public function createObject(_arg1:GameController, _arg2:Number, _arg3:Number):BikeObject{ return (new BikeObject(this, _arg1, _arg2, _arg3)); } public function get noCrashBonus():Number{ return (_noCrashBonus); } public function get jumpImpulseY():Number{ return (_jumpImpulseY); } public function get backwardSpeedToTorqueMultiplier():Number{ return (_backwardSpeedToTorqueMultiplier); } public function get nitroForce():Number{ return (_nitroForce); } public function get acceleration():Number{ return (_acceleration); } public function get bikeBodyDummyWidth():Number{ return (_bikeBodyDummyWidth); } public function get speedMaxAngularVelocity():Number{ return (_speedMaxAngularVelocity); } public function get airTimeToScoreMultiplier():Number{ return (_airTimeToScoreMultiplier); } public function get rearWheelRadius():Number{ return (_rearWheelRadius); } public function get wheelsDistance():Number{ return (_wheelsDistance); } public function get frontSomersaultToScoreMultiplier():Number{ return (_frontSomersaultToScoreMultiplier); } public function get timeToScoreMultiplier():Number{ return (_timeToScoreMultiplier); } public function get bikeBodyDummyDispX():Number{ return (_bikeBodyDummyDispX); } public function get nitroDuration():int{ return (_nitroDuration); } public function get frontWheelFriction():Number{ return (_frontWheelFriction); } public function get rearWheelDensity():Number{ return (_rearWheelDensity); } public function get rearWheelRestitution():Number{ return (_rearWheelRestitution); } public function get bikeBodyDummyDispY():Number{ return (_bikeBodyDummyDispY); } public function get bikeBodyDummyHeight():Number{ return (_bikeBodyDummyHeight); } public function get leanMaxAngularVelocity():Number{ return (_leanMaxAngularVelocity); } public function get bikeBodyDummyDensity():Number{ return (_bikeBodyDummyDensity); } public function get frontWheelRadius():Number{ return (_frontWheelRadius); } public function get frontWheelDensity():Number{ return (_frontWheelDensity); } public function get backWheelieTimeToScoreMultiplier():Number{ return (_backWheelieTimeToScoreMultiplier); } public function get bikerDensity():Number{ return (_bikerDensity); } } }//package bikeChamp.core.game.gameObjects
Section 10
//BikeObject (bikeChamp.core.game.gameObjects.BikeObject) package bikeChamp.core.game.gameObjects { import flash.display.*; import bikeChamp.core.game.*; import com.bigwigmedia.sound.*; import bikeChamp.managers.*; import bikeChamp.core.game.events.*; import Box2D.Dynamics.*; import flash.geom.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import bikeChamp.core.sound.*; public class BikeObject extends GameObject { private var legToBikeJoint:b2RevoluteJoint; private var bikeBody_contact:Boolean;// = false private var _angleDirection:int;// = 0 private var bodyToHipJoint:b2RevoluteJoint; private var bikeBody:b2Body; private var _usingNitroCounter:int;// = 0 private var bikerArmBody:b2Body; private var wheel_1_contact:Boolean;// = false private var wheel_2_contact:Boolean;// = false private var bikerBodyBody:b2Body; private var _totalAirTime:int;// = 0 private var _controller:GameController; private var bikerForeArmBody:b2Body; private var wheel_1_body:b2Body; private var _frontWheelieSoundPlayed:Boolean;// = false private var bikerHeadSprite:Sprite; private var bodyToArmJoint:b2RevoluteJoint; private var _totalBackSomersault:int;// = 0 private var bikerHeadBody:b2Body; private var _totalFrontSomersault:int;// = 0 private var _bikerAttached:Boolean;// = true private var _backWheelieTime:int;// = -1 private var bikerHipSprite:Sprite; private var _data:BikeData; private var _lastUpdateTime:int;// = 0 private var bikerArmSprite:Sprite; private var revJoint_1:b2RevoluteJoint; private var revJoint_2:b2RevoluteJoint; private var bikerBodySprite:Sprite; private var _totalFrontWheelieTime:int;// = 0 private var _frontWheelieTime:int;// = -1 private var bike_body_sprite:Sprite; private var hipToLegJoint:b2RevoluteJoint; private var _airTimeSoundPlayed:Boolean;// = false private var bikerForeArmSprite:Sprite; private var wheel_1_contactNormal:b2Vec2; private var _totalBackWheelieTime:int;// = 0 private var _prevWheel_1_contact:Boolean;// = true private var _prevWheel_2_contact:Boolean;// = true private var bikerLegSprite:Sprite; private var rear_fork_sprite:Sprite; private var front_fork_sprite:Sprite; private var wheel_2_sprite:Sprite; private var bikerLegBody:b2Body; private var bikerHipBody:b2Body; private var armToForearmJoint:b2RevoluteJoint; private var _prevWheelAngle:Number;// = 0 private var _backWheelieSoundPlayed:Boolean;// = false private var armToBikeJoint:b2RevoluteJoint; private var wheel_2_body:b2Body; private var wheel_2_contactNormal:b2Vec2; private var wheel_1_sprite:Sprite; private var _airTime:int;// = -1 public static const USE_BULLETS:Boolean = true; public static const STUNT_VELOCITY_THRESHOLD:Number = 1.5; public static const COLLISION_RADIUS:Number = 30; public function BikeObject(_arg1:BikeData, _arg2:GameController, _arg3:Number, _arg4:Number){ var _local5:b2World; var _local6:b2Shape; var _local7:b2BodyDef; wheel_1_contactNormal = new b2Vec2(); wheel_2_contactNormal = new b2Vec2(); super(new Sprite()); _data = _arg1; _controller = _arg2; _local5 = _controller.world; _local7 = new b2BodyDef(); _local7.position.x = ((_arg3 - (_arg1.wheelsDistance / 2)) / GameModel.WORLD_SCALE); _local7.position.y = ((_arg4 - _arg1.rearWheelRadius) / GameModel.WORLD_SCALE); var _local8:b2CircleDef = new b2CircleDef(); _local8.radius = (_arg1.rearWheelRadius / GameModel.WORLD_SCALE); _local8.density = _arg1.rearWheelDensity; _local8.restitution = _arg1.rearWheelRestitution; _local8.friction = _arg1.rearWheelFriction; wheel_1_body = _local5.CreateBody(_local7); _local6 = wheel_1_body.CreateShape(_local8); _local6.SetFilterData(GameModel.bikeContactFilterData); wheel_1_body.SetMassFromShapes(); wheel_1_body.AllowSleeping(false); wheel_1_body.SetBullet(USE_BULLETS); _local7 = new b2BodyDef(); _local7.position.x = ((_arg3 + (_arg1.wheelsDistance / 2)) / GameModel.WORLD_SCALE); _local7.position.y = ((_arg4 - _arg1.frontWheelRadius) / GameModel.WORLD_SCALE); var _local9:b2CircleDef = new b2CircleDef(); _local9.radius = (_arg1.frontWheelRadius / GameModel.WORLD_SCALE); _local9.density = _arg1.frontWheelDensity; _local9.restitution = _arg1.frontWheelRestitution; _local9.friction = _arg1.frontWheelFriction; wheel_2_body = _local5.CreateBody(_local7); _local6 = wheel_2_body.CreateShape(_local9); _local6.SetFilterData(GameModel.bikeContactFilterData); wheel_2_body.SetMassFromShapes(); wheel_2_body.AllowSleeping(false); wheel_2_body.SetBullet(USE_BULLETS); _local7 = new b2BodyDef(); _local7.position.x = ((_arg3 + _arg1.bikeBodyDummyDispX) / GameModel.WORLD_SCALE); _local7.position.y = (((_arg4 - ((_arg1.rearWheelRadius + _arg1.frontWheelRadius) / 2)) + _arg1.bikeBodyDummyDispY) / GameModel.WORLD_SCALE); var _local10:b2PolygonDef = new b2PolygonDef(); _local10.SetAsBox((_arg1.bikeBodyDummyWidth / GameModel.WORLD_SCALE), (_arg1.bikeBodyDummyHeight / GameModel.WORLD_SCALE)); _local10.density = _arg1.bikeBodyDummyDensity; _local10.isSensor = true; bikeBody = _local5.CreateBody(_local7); _local6 = bikeBody.CreateShape(_local10); bikeBody.SetMassFromShapes(); bikeBody.SetBullet(USE_BULLETS); var _local11:b2RevoluteJointDef = new b2RevoluteJointDef(); _local11.Initialize(bikeBody, wheel_1_body, wheel_1_body.GetPosition()); revJoint_1 = (_local5.CreateJoint(_local11) as b2RevoluteJoint); _local11.Initialize(bikeBody, wheel_2_body, wheel_2_body.GetPosition()); revJoint_2 = (_local5.CreateJoint(_local11) as b2RevoluteJoint); wheel_1_sprite = new rear_wheel_1(); _sprite.addChild(wheel_1_sprite); wheel_2_sprite = new front_wheel_1(); _sprite.addChild(wheel_2_sprite); front_fork_sprite = new front_fork(); _sprite.addChild(front_fork_sprite); rear_fork_sprite = new rear_fork(); _sprite.addChild(rear_fork_sprite); bike_body_sprite = new bike_body(); _sprite.addChild(bike_body_sprite); var _local12:Number = -2; var _local13:Number = -62; _local7 = new b2BodyDef(); _local7.position.x = ((_arg3 + _local12) / GameModel.WORLD_SCALE); _local7.position.y = ((_arg4 + _local13) / GameModel.WORLD_SCALE); _local7.angle = ((15 * Math.PI) / 180); var _local14:b2PolygonDef = new b2PolygonDef(); _local14.SetAsBox((7 / GameModel.WORLD_SCALE), (13 / GameModel.WORLD_SCALE)); _local14.density = _data.bikerDensity; bikerBodyBody = _local5.CreateBody(_local7); _local6 = bikerBodyBody.CreateShape(_local14); _local6.SetFilterData(GameModel.bikerContactFilterData); bikerBodyBody.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.x = (((_arg3 + _local12) + 7) / GameModel.WORLD_SCALE); _local7.position.y = (((_arg4 + _local13) - 17) / GameModel.WORLD_SCALE); _local7.angle = ((0 * Math.PI) / 180); _local14 = new b2PolygonDef(); _local14.SetAsBox((10 / GameModel.WORLD_SCALE), (8 / GameModel.WORLD_SCALE)); _local14.density = _data.bikerDensity; bikerHeadBody = _local5.CreateBody(_local7); _local6 = bikerHeadBody.CreateShape(_local14); _local6.SetFilterData(GameModel.bikerContactFilterData); bikerHeadBody.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.x = (((_arg3 + _local12) + 11) / GameModel.WORLD_SCALE); _local7.position.y = (((_arg4 + _local13) + 3) / GameModel.WORLD_SCALE); _local7.angle = ((0 * Math.PI) / 180); _local14 = new b2PolygonDef(); _local14.SetAsBox((12 / GameModel.WORLD_SCALE), (3 / GameModel.WORLD_SCALE)); _local14.density = _data.bikerDensity; bikerForeArmBody = _local5.CreateBody(_local7); _local6 = bikerForeArmBody.CreateShape(_local14); _local6.SetFilterData(GameModel.bikerContactFilterData); bikerForeArmBody.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.x = (((_arg3 + _local12) + 1.5) / GameModel.WORLD_SCALE); _local7.position.y = (((_arg4 + _local13) - 2) / GameModel.WORLD_SCALE); _local7.angle = ((0 * Math.PI) / 180); _local14 = new b2PolygonDef(); _local14.SetAsBox((4 / GameModel.WORLD_SCALE), (8 / GameModel.WORLD_SCALE)); _local14.density = _data.bikerDensity; bikerArmBody = _local5.CreateBody(_local7); _local6 = bikerArmBody.CreateShape(_local14); _local6.SetFilterData(GameModel.bikerContactFilterData); bikerArmBody.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.x = (((_arg3 + _local12) + 7) / GameModel.WORLD_SCALE); _local7.position.y = (((_arg4 + _local13) + 24.5) / GameModel.WORLD_SCALE); _local7.angle = ((20 * Math.PI) / 180); _local14 = new b2PolygonDef(); _local14.SetAsBox((6 / GameModel.WORLD_SCALE), (12 / GameModel.WORLD_SCALE)); _local14.density = _data.bikerDensity; bikerLegBody = _local5.CreateBody(_local7); _local6 = bikerLegBody.CreateShape(_local14); _local6.SetFilterData(GameModel.bikerContactFilterData); bikerLegBody.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.x = (((_arg3 + _local12) + 2) / GameModel.WORLD_SCALE); _local7.position.y = (((_arg4 + _local13) + 14) / GameModel.WORLD_SCALE); _local7.angle = ((15 * Math.PI) / 180); _local14 = new b2PolygonDef(); _local14.SetAsBox((12 / GameModel.WORLD_SCALE), (5 / GameModel.WORLD_SCALE)); _local14.density = _data.bikerDensity; bikerHipBody = _local5.CreateBody(_local7); _local6 = bikerHipBody.CreateShape(_local14); _local6.SetFilterData(GameModel.bikerContactFilterData); bikerHipBody.SetMassFromShapes(); _local11 = new b2RevoluteJointDef(); _local11.enableLimit = true; _local11.lowerAngle = -0.15; _local11.upperAngle = 0.15; var _local15:b2Vec2 = new b2Vec2(((_arg3 + _local12) + 4), ((_arg4 + _local13) - 13)); _local15.Multiply((1 / GameModel.WORLD_SCALE)); _local11.Initialize(bikerHeadBody, bikerBodyBody, _local15); _local5.CreateJoint(_local11); _local11 = new b2RevoluteJointDef(); _local11.enableLimit = true; _local11.lowerAngle = -0.2; _local11.upperAngle = 0.2; _local15 = new b2Vec2(((_arg3 + _local12) + 19), ((_arg4 + _local13) + 3)); _local15.Multiply((1 / GameModel.WORLD_SCALE)); _local11.Initialize(bikerForeArmBody, bikeBody, _local15); armToBikeJoint = (_local5.CreateJoint(_local11) as b2RevoluteJoint); _local11 = new b2RevoluteJointDef(); _local11.enableLimit = true; _local11.lowerAngle = -0.2; _local11.upperAngle = 0.2; _local15 = new b2Vec2(((_arg3 + _local12) + 2), ((_arg4 + _local13) + 3)); _local15.Multiply((1 / GameModel.WORLD_SCALE)); _local11.Initialize(bikerArmBody, bikerForeArmBody, _local15); armToForearmJoint = (_local5.CreateJoint(_local11) as b2RevoluteJoint); _local11 = new b2RevoluteJointDef(); _local11.enableLimit = true; _local11.lowerAngle = -0.2; _local11.upperAngle = 0.2; _local15 = new b2Vec2(((_arg3 + _local12) + 3), ((_arg4 + _local13) + 33)); _local15.Multiply((1 / GameModel.WORLD_SCALE)); _local11.Initialize(bikerLegBody, bikeBody, _local15); legToBikeJoint = (_local5.CreateJoint(_local11) as b2RevoluteJoint); _local11 = new b2RevoluteJointDef(); _local11.enableLimit = true; _local11.lowerAngle = -0.2; _local11.upperAngle = 0.2; _local15 = new b2Vec2(((_arg3 + _local12) + 9), ((_arg4 + _local13) + 16.5)); _local15.Multiply((1 / GameModel.WORLD_SCALE)); _local11.Initialize(bikerHipBody, bikerLegBody, _local15); hipToLegJoint = (_local5.CreateJoint(_local11) as b2RevoluteJoint); _local11 = new b2RevoluteJointDef(); _local11.enableLimit = true; _local11.lowerAngle = -0.5; _local11.upperAngle = 0.5; _local15 = new b2Vec2(((_arg3 + _local12) - 3), ((_arg4 + _local13) + 10)); _local15.Multiply((1 / GameModel.WORLD_SCALE)); _local11.Initialize(bikerBodyBody, bikerHipBody, _local15); bodyToHipJoint = (_local5.CreateJoint(_local11) as b2RevoluteJoint); _local11 = new b2RevoluteJointDef(); _local11.enableLimit = true; _local11.lowerAngle = -0.2; _local11.upperAngle = 0.2; _local15 = new b2Vec2(((_arg3 + _local12) + 1.5), ((_arg4 + _local13) - 7)); _local15.Multiply((1 / GameModel.WORLD_SCALE)); _local11.Initialize(bikerBodyBody, bikerArmBody, _local15); bodyToArmJoint = (_local5.CreateJoint(_local11) as b2RevoluteJoint); bikerHipSprite = new biker_hip_sprite(); bikerLegSprite = new biker_leg_sprite(); bikerBodySprite = new biker_body_sprite(); bikerHeadSprite = new biker_head_sprite(); bikerArmSprite = new biker_arm_sprite(); bikerForeArmSprite = new biker_fore_arm_sprite(); var _local16:b2Vec2 = wheel_1_body.GetPosition(); var _local17:b2Vec2 = wheel_2_body.GetPosition(); var _local18:Number = (Math.atan2((_local17.y - _local16.y), (_local17.x - _local16.x)) % PI_2); updateSprites(_local16, _local17, _local18); _sprite.addChild(bikerHipSprite); _sprite.addChild(bikerLegSprite); _sprite.addChild(bikerBodySprite); _sprite.addChild(bikerHeadSprite); _sprite.addChild(bikerArmSprite); _sprite.addChild(bikerForeArmSprite); } public function addCallback(_arg1:b2ContactPoint):void{ var _local7:String; var _local2:b2Body = _arg1.shape1.GetBody(); var _local3:b2Body = _arg1.shape2.GetBody(); if ((((_local2 == wheel_1_body)) || ((_local3 == wheel_1_body)))){ wheel_1_contact = true; wheel_1_contactNormal.x = _arg1.normal.x; wheel_1_contactNormal.y = _arg1.normal.y; if (_local2 == wheel_1_body){ wheel_1_contactNormal.x = -(wheel_1_contactNormal.x); wheel_1_contactNormal.y = -(wheel_1_contactNormal.y); }; }; if ((((_local2 == wheel_2_body)) || ((_local3 == wheel_2_body)))){ wheel_2_contact = true; wheel_2_contactNormal.x = _arg1.normal.x; wheel_2_contactNormal.y = _arg1.normal.y; if (_local2 == wheel_2_body){ wheel_2_contactNormal.x = -(wheel_2_contactNormal.x); wheel_2_contactNormal.y = -(wheel_2_contactNormal.y); }; }; if ((((_local2 == bikeBody)) || ((_local3 == bikeBody)))){ bikeBody_contact = true; }; var _local4:String = _local2.m_userData; var _local5:String = _local3.m_userData; var _local6:Boolean = ((!((_local4 == null))) || (!((_local5 == null)))); if (((_bikerAttached) && (_local6))){ if ((((_local4 == ItemData.CHECK_POINT)) || ((_local5 == ItemData.CHECK_POINT)))){ dispatchEvent(new GameObjectEvent(GameObjectEvent.PASS_CHECK_POINT, ((_local4 == ItemData.CHECK_POINT)) ? _local2 : _local3)); } else { if ((((_local4 == ItemData.NITRO)) || ((_local5 == ItemData.NITRO)))){ dispatchEvent(new GameObjectEvent(GameObjectEvent.PICK_UP_NITRO, ((_local4 == ItemData.NITRO)) ? _local2 : _local3)); }; }; }; if (((((_bikerAttached) && (!(_local6)))) && ((((((((_local2 == bikerHeadBody)) || ((_local3 == bikerHeadBody)))) || ((_local2 == bikerBodyBody)))) || ((_local3 == bikerBodyBody)))))){ _bikerAttached = false; dispatchEvent(new GameObjectEvent(GameObjectEvent.BIKER_CRASH)); } else { if (((!(_bikerAttached)) && ((((((((_local2 == bikerHeadBody)) || ((_local3 == bikerHeadBody)))) || ((_local2 == bikerBodyBody)))) || ((_local3 == bikerBodyBody)))))){ _local7 = SoundID.VO_GRUNT; if (Math.random() < 0.5){ Managers.soundManager.playSingle(_local7); }; }; }; } public function left():void{ var _local1:Number = (Math.abs(bikeBody.GetLinearVelocity().Length()) * _data.backwardSpeedToTorqueMultiplier); bikeBody.ApplyTorque(-(_local1)); var _local2:Number = _data.leanMaxAngularVelocity; if (bikeBody.GetAngularVelocity() > _local2){ bikeBody.SetAngularVelocity(_local2); } else { if (bikeBody.GetAngularVelocity() < -(_local2)){ bikeBody.SetAngularVelocity(-(_local2)); }; }; } public function right():void{ var _local1:Number = (Math.abs(bikeBody.GetLinearVelocity().Length()) * _data.forwardSpeedToTorqueMultiplier); bikeBody.ApplyTorque(_local1); var _local2:Number = _data.leanMaxAngularVelocity; if (bikeBody.GetAngularVelocity() > _local2){ bikeBody.SetAngularVelocity(_local2); } else { if (bikeBody.GetAngularVelocity() < -(_local2)){ bikeBody.SetAngularVelocity(-(_local2)); }; }; } override public function dispose():void{ _data = null; wheel_1_body = null; wheel_2_body = null; bikeBody = null; revJoint_1 = null; revJoint_2 = null; wheel_1_sprite = null; wheel_2_sprite = null; bike_body_sprite = null; front_fork_sprite = null; rear_fork_sprite = null; bikerHeadBody = null; bikerBodyBody = null; bikerArmBody = null; bikerForeArmBody = null; bikerHipBody = null; bikerLegBody = null; bikerHeadSprite = null; bikerBodySprite = null; bikerArmSprite = null; bikerForeArmSprite = null; bikerHipSprite = null; bikerLegSprite = null; armToBikeJoint = null; legToBikeJoint = null; armToForearmJoint = null; hipToLegJoint = null; bodyToHipJoint = null; bodyToArmJoint = null; _controller = null; super.dispose(); } public function brake():void{ wheel_1_body.m_angularDamping = 0.8; wheel_2_body.m_angularDamping = 0.8; wheel_1_body.SetAngularVelocity(0); wheel_2_body.SetAngularVelocity(0); } public function decelerate():void{ wheel_1_body.m_angularDamping = 0.1; wheel_1_body.ApplyTorque(-(_data.deceleration)); var _local1:Number = _data.speedMaxAngularVelocity; if (wheel_1_body.GetAngularVelocity() > _local1){ wheel_1_body.SetAngularVelocity(_local1); } else { if (wheel_1_body.GetAngularVelocity() < -(_local1)){ wheel_1_body.SetAngularVelocity(-(_local1)); }; }; } public function jump():void{ if (!_bikerAttached){ return; }; var _local1:b2Vec2 = new b2Vec2(); if (((wheel_1_contact) && (wheel_2_contact))){ _local1.x = ((wheel_1_contactNormal.x + wheel_2_contactNormal.x) / 2); _local1.y = ((wheel_1_contactNormal.y + wheel_2_contactNormal.y) / 2); } else { if (wheel_1_contact){ _local1 = wheel_1_contactNormal; } else { if (wheel_2_contact){ _local1 = wheel_2_contactNormal; }; }; }; _local1.x = (_local1.x * _data.jumpImpulseX); _local1.y = (_local1.y * _data.jumpImpulseY); bikeBody.ApplyImpulse(_local1, bikeBody.GetPosition()); } public function get totalBackSomersault():int{ return (_totalBackSomersault); } private function updateSprites(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Number):void{ var _local4:b2Vec2 = bikeBody.GetPosition(); wheel_1_sprite.x = (rear_fork_sprite.x = (_arg1.x * GameModel.WORLD_SCALE)); wheel_1_sprite.y = (rear_fork_sprite.y = (_arg1.y * GameModel.WORLD_SCALE)); wheel_1_sprite.rotation = ((wheel_1_body.GetAngle() % PI_2) * RAD_TO_DEG); wheel_2_sprite.x = (front_fork_sprite.x = (_arg2.x * GameModel.WORLD_SCALE)); wheel_2_sprite.y = (front_fork_sprite.y = (_arg2.y * GameModel.WORLD_SCALE)); wheel_2_sprite.rotation = ((wheel_2_body.GetAngle() % PI_2) * RAD_TO_DEG); var _local5:Number = Math.atan2((_arg1.y - _local4.y), (_arg1.x - _local4.x)); front_fork_sprite.rotation = (_arg3 * RAD_TO_DEG); rear_fork_sprite.rotation = (_arg3 * RAD_TO_DEG); bike_body_sprite.x = (_local4.x * GameModel.WORLD_SCALE); bike_body_sprite.y = (_local4.y * GameModel.WORLD_SCALE); bike_body_sprite.rotation = ((bikeBody.GetAngle() % PI_2) * RAD_TO_DEG); var _local6:b2Vec2 = bikerBodyBody.GetPosition(); bikerBodySprite.x = (_local6.x * GameModel.WORLD_SCALE); bikerBodySprite.y = (_local6.y * GameModel.WORLD_SCALE); bikerBodySprite.rotation = ((bikerBodyBody.GetAngle() % PI_2) * RAD_TO_DEG); _local6 = bikerHeadBody.GetPosition(); bikerHeadSprite.x = (_local6.x * GameModel.WORLD_SCALE); bikerHeadSprite.y = (_local6.y * GameModel.WORLD_SCALE); bikerHeadSprite.rotation = ((bikerHeadBody.GetAngle() % PI_2) * RAD_TO_DEG); _local6 = bikerForeArmBody.GetPosition(); bikerForeArmSprite.x = (_local6.x * GameModel.WORLD_SCALE); bikerForeArmSprite.y = (_local6.y * GameModel.WORLD_SCALE); bikerForeArmSprite.rotation = ((bikerForeArmBody.GetAngle() % PI_2) * RAD_TO_DEG); _local6 = bikerArmBody.GetPosition(); bikerArmSprite.x = (_local6.x * GameModel.WORLD_SCALE); bikerArmSprite.y = (_local6.y * GameModel.WORLD_SCALE); bikerArmSprite.rotation = ((bikerArmBody.GetAngle() % PI_2) * RAD_TO_DEG); _local6 = bikerLegBody.GetPosition(); bikerLegSprite.x = (_local6.x * GameModel.WORLD_SCALE); bikerLegSprite.y = (_local6.y * GameModel.WORLD_SCALE); bikerLegSprite.rotation = ((bikerLegBody.GetAngle() % PI_2) * RAD_TO_DEG); _local6 = bikerHipBody.GetPosition(); bikerHipSprite.x = (_local6.x * GameModel.WORLD_SCALE); bikerHipSprite.y = (_local6.y * GameModel.WORLD_SCALE); bikerHipSprite.rotation = ((bikerHipBody.GetAngle() % PI_2) * RAD_TO_DEG); } public function get totalAirTime():int{ return (_totalAirTime); } public function get mapRect():Rectangle{ var _local1:b2Vec2 = wheel_1_body.GetPosition(); var _local2:b2Vec2 = wheel_2_body.GetPosition(); var _local3:Number = ((_local1.x + _local2.x) / 2); var _local4:Number = ((_local1.y + _local2.y) / 2); return (new Rectangle(((_local3 * GameModel.WORLD_SCALE) - COLLISION_RADIUS), ((_local4 * GameModel.WORLD_SCALE) - COLLISION_RADIUS), (COLLISION_RADIUS * 2), (COLLISION_RADIUS * 2))); } public function noControl():void{ wheel_1_body.m_angularDamping = 0.3; wheel_2_body.m_angularDamping = 0.3; } public function persistCallback(_arg1:b2ContactPoint):void{ var _local2:b2Body = _arg1.shape1.GetBody(); var _local3:b2Body = _arg1.shape2.GetBody(); if ((((_local2 == wheel_1_body)) || ((_local3 == wheel_1_body)))){ wheel_1_contact = true; wheel_1_contactNormal.x = _arg1.normal.x; wheel_1_contactNormal.y = _arg1.normal.y; if (_local2 == wheel_1_body){ wheel_1_contactNormal.x = -(wheel_1_contactNormal.x); wheel_1_contactNormal.y = -(wheel_1_contactNormal.y); }; }; if ((((_local2 == wheel_2_body)) || ((_local3 == wheel_2_body)))){ wheel_2_contact = true; wheel_2_contactNormal.x = _arg1.normal.x; wheel_2_contactNormal.y = _arg1.normal.y; if (_local2 == wheel_2_body){ wheel_2_contactNormal.x = -(wheel_2_contactNormal.x); wheel_2_contactNormal.y = -(wheel_2_contactNormal.y); }; }; if ((((_local2 == bikeBody)) || ((_local3 == bikeBody)))){ bikeBody_contact = true; }; } public function get bikerAttached():Boolean{ return (_bikerAttached); } private function applyNitroForce():void{ var _local1:b2Vec2; var _local2:Number; var _local3:b2Vec2; if (((wheel_1_contact) || (wheel_2_contact))){ _local1 = bikeBody.GetLinearVelocity().Copy(); _local2 = (_data.nitroForce / _local1.Length()); _local1.x = (_local1.x * _local2); _local1.y = (_local1.y * _local2); _local3 = bikeBody.GetPosition().Copy(); bikeBody.ApplyForce(_local1, _local3); }; } public function get totalFrontSomersault():int{ return (_totalFrontSomersault); } public function get totalFrontWheelieTime():int{ return (_totalFrontWheelieTime); } public function useNitro():void{ if (_bikerAttached){ _usingNitroCounter = _data.nitroDuration; }; } override public function update():void{ var _local16:int; var _local17:int; var _local18:int; if ((((_usingNitroCounter > 0)) && (_bikerAttached))){ _usingNitroCounter--; applyNitroForce(); }; var _local1:b2Vec2 = wheel_1_body.GetPosition(); var _local2:b2Vec2 = wheel_2_body.GetPosition(); var _local3:Number = (Math.atan2((_local2.y - _local1.y), (_local2.x - _local1.x)) % PI_2); updateSprites(_local1, _local2, _local3); var _local4:b2Vec2 = bikeBody.GetPosition(); var _local5:Number = (_local4.x - _local1.x); var _local6:Number = (_local4.y - _local1.y); var _local7:Number = (_local4.x - _local2.x); var _local8:Number = (_local4.y - _local2.y); var _local9:Number = ((_local5 * _local5) + (_local6 * _local6)); var _local10:Number = ((_local7 * _local7) + (_local8 * _local8)); if ((((_local9 <= 0.95)) || ((_local10 <= 0.95)))){ Managers.soundManager.playSingle(SoundID.BIKE_SUSPENSION_FORKS_02_WAV); }; if (!_bikerAttached){ return; }; var _local11:ISoundManager = Managers.soundManager; var _local12:int = _controller.timerCounter.time; var _local13:int = ((_lastUpdateTime)!=0) ? (_local12 - _lastUpdateTime) : 0; _lastUpdateTime = _local12; var _local14:Number = bikeBody.GetLinearVelocity().Length(); if ((((_prevWheel_1_contact == wheel_1_contact)) && ((_prevWheel_2_contact == wheel_2_contact)))){ if (((((wheel_1_contact) && (!(wheel_2_contact)))) && ((_local14 >= STUNT_VELOCITY_THRESHOLD)))){ _backWheelieTime = (_backWheelieTime + _local13); } else { if (((((!(wheel_1_contact)) && (wheel_2_contact))) && ((_local14 >= STUNT_VELOCITY_THRESHOLD)))){ _frontWheelieTime = (_frontWheelieTime + _local13); } else { if (((((!(wheel_1_contact)) && (!(wheel_2_contact)))) && (!(bikeBody_contact)))){ _airTime = (_airTime + _local13); }; }; }; if (((!(_airTimeSoundPlayed)) && ((_airTime >= _data.airTimeMinTime)))){ _airTimeSoundPlayed = _local11.playSingle(SoundID.VO_APPREC_OHHH_WAV); }; if (((!(_backWheelieSoundPlayed)) && ((_backWheelieTime >= _data.backWheelieMinTime)))){ _backWheelieSoundPlayed = _local11.playSingle(SoundID.VO_APPREC_WOO_WAV); }; if (((!(_frontWheelieSoundPlayed)) && ((_frontWheelieTime >= _data.frontWheelieMinTime)))){ _frontWheelieSoundPlayed = _local11.playSingle(SoundID.VO_APPREC_WOO_WAV); }; } else { if (((!(wheel_1_contact)) && (!(wheel_2_contact)))){ _airTimeSoundPlayed = false; } else { if (_airTime >= _data.airTimeMinTime){ _local16 = ((_airTime / 1000) * _data.airTimeToScoreMultiplier); dispatchEvent(new GameObjectEvent(GameObjectEvent.STUNT, (("Big Air! " + _local16) + " Pts"))); _totalAirTime = (_totalAirTime + _airTime); }; _airTime = -1; _angleDirection = 0; }; if (_backWheelieTime >= _data.backWheelieMinTime){ _local17 = ((_backWheelieTime / 1000) * _data.backWheelieTimeToScoreMultiplier); dispatchEvent(new GameObjectEvent(GameObjectEvent.STUNT, (("Back Wheelie! " + _local17) + " Pts"))); _totalBackWheelieTime = (_totalBackWheelieTime + _backWheelieTime); }; _backWheelieTime = -1; if (_frontWheelieTime >= _data.frontWheelieMinTime){ _local18 = ((_frontWheelieTime / 1000) * _data.frontWheelieTimeToScoreMultiplier); dispatchEvent(new GameObjectEvent(GameObjectEvent.STUNT, (("Front Wheelie! " + _local18) + " Pts"))); _totalFrontWheelieTime = (_totalFrontWheelieTime + _frontWheelieTime); }; _frontWheelieTime = -1; _prevWheel_1_contact = wheel_1_contact; _prevWheel_2_contact = wheel_2_contact; }; var _local15:Number = (((_local3 < 0)) ? PI_2 : 0 + _local3); if (Math.abs((_local15 - _prevWheelAngle)) < (Math.PI / 6)){ if (_angleDirection == 0){ if ((((_prevWheelAngle < Math.PI)) && ((_local15 > Math.PI)))){ dispatchEvent(new GameObjectEvent(GameObjectEvent.STUNT, (("Forward Somersault! " + _data.frontSomersaultToScoreMultiplier) + " Pts"))); _local11.play(SoundID.VO_APPREC_OHYEAH_WAV); _angleDirection = 1; _totalFrontSomersault++; } else { if ((((_prevWheelAngle > Math.PI)) && ((_local15 < Math.PI)))){ dispatchEvent(new GameObjectEvent(GameObjectEvent.STUNT, (("Back Flip! " + _data.backSomersaultToScoreMultiplier) + " Pts"))); _local11.play(SoundID.VO_APPREC_OHYEAH_WAV); _angleDirection = -1; _totalBackSomersault++; }; }; }; }; _prevWheelAngle = _local15; } public function get totalBackWheelieTime():int{ return (_totalBackWheelieTime); } public function detachBiker():void{ var _local1:b2World = bikeBody.GetWorld(); _local1.DestroyJoint(armToBikeJoint); _local1.DestroyJoint(legToBikeJoint); armToBikeJoint = null; legToBikeJoint = null; armToForearmJoint.SetLimits((-(Math.PI) / 4), (Math.PI / 2)); hipToLegJoint.SetLimits((-(Math.PI) / 2), 0.2); bodyToHipJoint.SetLimits(-0.2, (Math.PI / 2)); bodyToArmJoint.SetLimits(-(Math.PI), (Math.PI / 2)); noControl(); Managers.soundManager.play(SoundID.VO_GRUNT); } public function removeCallback(_arg1:b2ContactPoint):void{ var _local2:b2Body = _arg1.shape1.GetBody(); var _local3:b2Body = _arg1.shape2.GetBody(); if ((((_local2 == wheel_1_body)) || ((_local3 == wheel_1_body)))){ wheel_1_contact = false; }; if ((((_local2 == wheel_2_body)) || ((_local3 == wheel_2_body)))){ wheel_2_contact = false; }; if ((((_local2 == bikeBody)) || ((_local3 == bikeBody)))){ bikeBody_contact = false; }; } public function accelerate():void{ wheel_1_body.m_angularDamping = 0.1; wheel_1_body.ApplyTorque(_data.acceleration); var _local1:Number = _data.speedMaxAngularVelocity; if (wheel_1_body.GetAngularVelocity() > _local1){ wheel_1_body.SetAngularVelocity(_local1); } else { if (wheel_1_body.GetAngularVelocity() < -(_local1)){ wheel_1_body.SetAngularVelocity(-(_local1)); }; }; } public function killBiker():void{ if (_bikerAttached){ _bikerAttached = false; dispatchEvent(new GameObjectEvent(GameObjectEvent.BIKER_CRASH)); }; } } }//package bikeChamp.core.game.gameObjects
Section 11
//CheckPointObject (bikeChamp.core.game.gameObjects.CheckPointObject) package bikeChamp.core.game.gameObjects { import flash.display.*; public class CheckPointObject extends GameObject { private var _index:int; public function CheckPointObject(_arg1:int, _arg2:int){ _index = _arg1; var _local3:Sprite = ((_arg1)==(_arg2 - 1)) ? new CheckPointFinishClip() : new CheckPointClip(); super(_local3); } public function get index():int{ return (_index); } } }//package bikeChamp.core.game.gameObjects
Section 12
//DistanceJointObject (bikeChamp.core.game.gameObjects.DistanceJointObject) package bikeChamp.core.game.gameObjects { import flash.display.*; import bikeChamp.core.game.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; public class DistanceJointObject extends JointObject { private var _graphics:Graphics; public function DistanceJointObject(_arg1:b2Joint){ super(_arg1); _graphics = _sprite.graphics; } override public function update():void{ _graphics.clear(); _graphics.lineStyle(4, 0x808080); var _local1:b2Vec2 = _joint.GetAnchor1(); var _local2:b2Vec2 = _joint.GetAnchor2(); _graphics.moveTo((_local1.x * GameModel.WORLD_SCALE), (_local1.y * GameModel.WORLD_SCALE)); _graphics.lineTo((_local2.x * GameModel.WORLD_SCALE), (_local2.y * GameModel.WORLD_SCALE)); _graphics.lineStyle(2, 0xFFFFFF); _graphics.lineTo((_local1.x * GameModel.WORLD_SCALE), (_local1.y * GameModel.WORLD_SCALE)); } override public function dispose():void{ _graphics = null; super.dispose(); } } }//package bikeChamp.core.game.gameObjects
Section 13
//GameObject (bikeChamp.core.game.gameObjects.GameObject) package bikeChamp.core.game.gameObjects { import flash.display.*; import flash.events.*; import com.bigwigmedia.core.*; public class GameObject extends EventDispatcher implements IUpdatable, IDisposable { protected var _sprite:Sprite; public static const RAD_TO_DEG:Number = 57.2957795130823; public static const PI_2:Number = 6.2831853071796; public function GameObject(_arg1:Sprite){ _sprite = _arg1; } public function get sprite():Sprite{ return (_sprite); } public function update():void{ } public function dispose():void{ _sprite = null; } } }//package bikeChamp.core.game.gameObjects
Section 14
//ItemData (bikeChamp.core.game.gameObjects.ItemData) package bikeChamp.core.game.gameObjects { import bikeChamp.core.game.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class ItemData { private var _x:Number; private var _index:int; private var _shapeDefinition:b2ShapeDef; private var _type:String; private var _y:Number; private var _xFormVect:b2Vec2; public static const CHECK_POINT:String = "check_point"; public static const NITRO:String = "nitro"; public function ItemData(_arg1:XML, _arg2:Number, _arg3:Number){ var _local4:b2PolygonDef; var _local5:b2CircleDef; super(); _type = _arg1.@type; _index = (_arg1.hasOwnProperty("@index")) ? _arg1.@index : -1; _x = (Number(_arg1.@x) + _arg2); _y = (Number(_arg1.@y) + _arg3); _xFormVect = new b2Vec2((_x / GameModel.WORLD_SCALE), (_y / GameModel.WORLD_SCALE)); switch (_type){ case CHECK_POINT: _local4 = new b2PolygonDef(); _local4.SetAsBox((20 / GameModel.WORLD_SCALE), (22 / GameModel.WORLD_SCALE)); _local4.isSensor = true; _shapeDefinition = _local4; break; case NITRO: _local5 = new b2CircleDef(); _local5.radius = (20 / GameModel.WORLD_SCALE); _local5.isSensor = true; _shapeDefinition = _local5; break; default: throw (new Error("Type is not supported.")); }; } public function createObject(_arg1:GameController, _arg2:int):GameObject{ var _local3:GameObject; switch (_type){ case CHECK_POINT: _local3 = new CheckPointObject(_index, _arg2); break; case NITRO: _local3 = new NitroObject(); break; default: throw (new Error("Type is not supported.")); }; _local3.sprite.x = _x; _local3.sprite.y = _y; return (_local3); } public function createBody(_arg1:GameController):b2Body{ var _local2:b2BodyDef = new b2BodyDef(); var _local3:b2Body = _arg1.world.CreateBody(_local2); var _local4:b2Shape = _local3.CreateShape(_shapeDefinition); _local4.SetFilterData(GameModel.itemsContactFilterData); _local3.SetMassFromShapes(); _local3.SetXForm(_xFormVect, 0); _local3.SetUserData(_type); return (_local3); } public function isCheckPoint():Boolean{ return ((_type == CHECK_POINT)); } } }//package bikeChamp.core.game.gameObjects
Section 15
//JointData (bikeChamp.core.game.gameObjects.JointData) package bikeChamp.core.game.gameObjects { import bikeChamp.core.game.*; import flash.geom.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; public class JointData { private var _point_1:Point; private var _point_2:Point; private var _body_2_id:String; private var _body_1_id:String; private var _type:String; public static const DISTANCE:String = "distance_joint"; public static const REVOLUTE:String = "revolute_joint"; public function JointData(_arg1:XML, _arg2:Number, _arg3:Number){ _type = String(_arg1.name()); _body_1_id = _arg1.body_1.@id; _body_2_id = _arg1.body_2.@id; _point_1 = new Point(((Number(_arg1.point_1.@x) + _arg2) / GameModel.WORLD_SCALE), ((Number(_arg1.point_1.@y) + _arg3) / GameModel.WORLD_SCALE)); _point_2 = (_arg1.hasOwnProperty("point_2")) ? new Point(((Number(_arg1.point_2.@x) + _arg2) / GameModel.WORLD_SCALE), ((Number(_arg1.point_2.@y) + _arg3) / GameModel.WORLD_SCALE)) : null; } public function createObject(_arg1:GameController):JointObject{ var _local4:b2DistanceJointDef; var _local5:b2DistanceJoint; var _local6:b2RevoluteJointDef; var _local7:b2RevoluteJoint; var _local2:SurfaceObject = _arg1.getSurfaceByID(_body_1_id); var _local3:SurfaceObject = _arg1.getSurfaceByID(_body_2_id); if (_type == DISTANCE){ _local4 = new b2DistanceJointDef(); _local4.Initialize(_local2.body, _local3.body, new b2Vec2(_point_1.x, _point_1.y), new b2Vec2(_point_2.x, _point_2.y)); _local5 = (_arg1.world.CreateJoint(_local4) as b2DistanceJoint); return (new DistanceJointObject(_local5)); }; if (_type == REVOLUTE){ _local6 = new b2RevoluteJointDef(); _local6.Initialize(_local2.body, _local3.body, new b2Vec2(_point_1.x, _point_1.y)); _local7 = (_arg1.world.CreateJoint(_local6) as b2RevoluteJoint); return (new RevoluteJointObject(_local7)); }; throw (new Error((("Supplied type \"" + _type) + "\" is not supported."))); } } }//package bikeChamp.core.game.gameObjects
Section 16
//JointObject (bikeChamp.core.game.gameObjects.JointObject) package bikeChamp.core.game.gameObjects { import flash.display.*; import Box2D.Dynamics.Joints.*; public class JointObject extends GameObject { protected var _joint:b2Joint; public function JointObject(_arg1:b2Joint){ super(new Sprite()); _joint = _arg1; } override public function dispose():void{ _joint = null; super.dispose(); } } }//package bikeChamp.core.game.gameObjects
Section 17
//NitroObject (bikeChamp.core.game.gameObjects.NitroObject) package bikeChamp.core.game.gameObjects { public class NitroObject extends GameObject { public function NitroObject(){ super(new NitroClip()); } } }//package bikeChamp.core.game.gameObjects
Section 18
//RevoluteJointObject (bikeChamp.core.game.gameObjects.RevoluteJointObject) package bikeChamp.core.game.gameObjects { import Box2D.Dynamics.Joints.*; public class RevoluteJointObject extends JointObject { public function RevoluteJointObject(_arg1:b2Joint){ super(_arg1); } } }//package bikeChamp.core.game.gameObjects
Section 19
//SurfaceData (bikeChamp.core.game.gameObjects.SurfaceData) package bikeChamp.core.game.gameObjects { import flash.display.*; import bikeChamp.core.game.*; import bikeChamp.managers.*; import Box2D.Dynamics.*; import flash.geom.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class SurfaceData { private var _static:Boolean; private var _physicsEnabled:Boolean; private var _texture:BitmapData; private var _xFormVect:b2Vec2; private var _matrix:Matrix; private var _friction:Number; private var _density:Number; private var _name:String; private var _restitution:Number; private var _shapesDefList:Array; private var _id:String; private var _xFormRotation:Number; public function SurfaceData(_arg1:XML, _arg2:Number, _arg3:Number){ var _local8:XML; var _local9:String; var _local10:b2CircleDef; var _local11:XML; var _local12:XML; var _local13:Point; var _local14:Point; var _local15:b2PolygonDef; var _local16:XMLList; var _local17:Array; var _local18:XML; var _local19:Point; _shapesDefList = []; super(); _name = _arg1.@name; _id = _arg1.@id; _density = _arg1.physical_object.@density; _friction = _arg1.physical_object.@friction; _restitution = _arg1.physical_object.@restitution; _static = (_arg1.physical_object.@static == "true"); _physicsEnabled = (_arg1.physical_object.@enabled == "true"); _texture = Managers.assetManager.getSurfaceTexture(_name); var _local4:XML = _arg1.matrix[0]; _matrix = new Matrix(_local4.@a, _local4.@b, _local4.@c, _local4.@d, (Number(_local4.@tx) + _arg2), (Number(_local4.@ty) + _arg3)); var _local5:Point = new Point(0, 1); _local5 = _matrix.deltaTransformPoint(_local5); _xFormRotation = (Math.atan2(_local5.y, _local5.x) - (Math.PI / 2)); _xFormVect = new b2Vec2((_matrix.tx / GameModel.WORLD_SCALE), (_matrix.ty / GameModel.WORLD_SCALE)); var _local6:XML = Managers.configManager.getSurfaceXML(_name); var _local7:XMLList = _local6.physics.children(); for each (_local8 in _local7) { _local9 = _local8.name(); switch (_local9){ case "circle_shape": _local10 = new b2CircleDef(); _local10.density = (_static) ? 0 : _density; _local10.restitution = _restitution; _local10.friction = _friction; _local11 = _local8.vertex[0]; _local12 = _local8.vertex[1]; _local13 = new Point(_local11.@x, _local11.@y); _local14 = new Point(_local12.@x, _local12.@y); _local10.localPosition.x = (_local13.x / GameModel.WORLD_SCALE); _local10.localPosition.y = (_local13.y / GameModel.WORLD_SCALE); _local10.radius = (Point.distance(_local13, _local14) / GameModel.WORLD_SCALE); _shapesDefList.push(_local10); break; case "poly_shape": _local15 = new b2PolygonDef(); _local15.density = (_static) ? 0 : _density; _local15.restitution = _restitution; _local15.friction = _friction; _local16 = _local8.vertex; _local17 = []; for each (_local18 in _local16) { _local19 = new Point(_local18.@x, _local18.@y); _local17.push(new b2Vec2((_local19.x / GameModel.WORLD_SCALE), (_local19.y / GameModel.WORLD_SCALE))); }; _local15.vertexCount = _local17.length; _local15.vertices = _local17; _shapesDefList.push(_local15); break; }; }; } public function get matrix():Matrix{ return (_matrix); } public function get physicsEnabled():Boolean{ return (_physicsEnabled); } public function get name():String{ return (_name); } public function createObject(_arg1:GameController):SurfaceObject{ var _local3:b2BodyDef; var _local4:b2ShapeDef; var _local5:b2Shape; var _local2:b2Body; if (_physicsEnabled){ _local3 = new b2BodyDef(); _local2 = _arg1.world.CreateBody(_local3); for each (_local4 in _shapesDefList) { _local5 = _local2.CreateShape(_local4); _local5.SetFilterData(GameModel.terrainContactFilterData); }; _local2.SetMassFromShapes(); _local2.SetXForm(_xFormVect, _xFormRotation); }; return (new SurfaceObject(this, _local2)); } public function get id():String{ return (_id); } public function get texture():BitmapData{ return (_texture); } public function get isStatic():Boolean{ return (_static); } } }//package bikeChamp.core.game.gameObjects
Section 20
//SurfaceObject (bikeChamp.core.game.gameObjects.SurfaceObject) package bikeChamp.core.game.gameObjects { import flash.display.*; import bikeChamp.core.game.*; import Box2D.Dynamics.*; import flash.geom.*; import Box2D.Common.Math.*; public class SurfaceObject extends GameObject { private var _body:b2Body; private var _data:SurfaceData; public function SurfaceObject(_arg1:SurfaceData, _arg2:b2Body){ _data = _arg1; _body = _arg2; var _local3:Sprite = new Sprite(); var _local4:BitmapData = _arg1.texture; var _local5:Bitmap = new Bitmap(_local4, PixelSnapping.AUTO, true); _local5.x = (-(_local4.width) / 2); _local5.y = (-(_local4.height) / 2); _local3.addChild(_local5); super(_local3); } override public function update():void{ var _local1:b2Vec2; _local1 = _body.GetPosition(); _sprite.x = (_local1.x * GameModel.WORLD_SCALE); _sprite.y = (_local1.y * GameModel.WORLD_SCALE); _sprite.rotation = ((_body.GetAngle() % PI_2) * RAD_TO_DEG); } public function get body():b2Body{ return (_body); } override public function dispose():void{ _data = null; _body = null; super.dispose(); } public function get matrix():Matrix{ return (_data.matrix); } public function get isStatic():Boolean{ return (_data.isStatic); } } }//package bikeChamp.core.game.gameObjects
Section 21
//CustomContactListener (bikeChamp.core.game.CustomContactListener) package bikeChamp.core.game { import Box2D.Dynamics.*; import Box2D.Collision.*; public class CustomContactListener extends b2ContactListener { private var _addCallback:Function; private var _removeCallback:Function; private var _persistCallback:Function; public function CustomContactListener(_arg1:Function, _arg2:Function, _arg3:Function){ _addCallback = _arg1; _persistCallback = _arg2; _removeCallback = _arg3; } override public function Add(_arg1:b2ContactPoint):void{ _addCallback(_arg1); } override public function Persist(_arg1:b2ContactPoint):void{ _persistCallback(_arg1); } override public function Remove(_arg1:b2ContactPoint):void{ _removeCallback(_arg1); } } }//package bikeChamp.core.game
Section 22
//GameController (bikeChamp.core.game.GameController) package bikeChamp.core.game { import bikeChamp.core.events.*; import flash.display.*; import bikeChamp.core.game.gameObjects.*; import flash.events.*; import com.bigwigmedia.sound.*; import bikeChamp.managers.*; import com.bigwigmedia.events.*; import bikeChamp.core.game.events.*; import Box2D.Dynamics.*; import flash.geom.*; import flash.utils.*; import flash.ui.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import com.bigwigmedia.utils.messages.*; import com.bigwigmedia.map2d.layers.*; import com.bigwigmedia.map2d.*; import Box2D.Dynamics.Joints.*; import bikeChamp.core.main.*; import bikeChamp.core.*; import com.bigwigmedia.core.*; import com.bigwigmedia.input.*; import bikeChamp.core.sound.*; import com.bigwigmedia.map2d.scrollClasses.*; import com.bigwigmedia.application.*; public class GameController extends EventDispatcher implements IController { private var bikeObject:BikeObject; private var restartAfterCrashCounter:int;// = -1 private var _view:GameView; private var checkPointTouchedCounter:int;// = -1 private var currentCheckPointIndex:int;// = 0 private var _world:b2World; private var totalFrontSomersault:int;// = 0 private var totalBackSomersault:int;// = 0 private var totalFrontWheelieTime:int;// = 0 private var hasNitro:Boolean;// = false private var checkPointTouchDelay:int; private var _messageQueue:MessageQueue; private var levelTimeGoal:int; private var checkPointList:Array; private var keyInputMan:KeyInputManager; private var paused:Boolean; private var numCrashes:int;// = 0 private var _idToSurfaceHash:Object; private var bodyToItemDict:Dictionary; private var _map2d:Map2d; private var totalAirTime:int;// = 0 private var _timerCounter:TimerCounter; private var objectsToUpdate:Array; private var totalBackWheelieTime:int;// = 0 private var checkPointTouchedIndex:int;// = -1 private var showRestartHint:Boolean;// = true public static const MESSAGE_BIKER_CRASH:String = "MESSAGE_BIKER_CRASH"; public static const KEY_ACTION_BRAKE:String = "brake"; public static const MESSAGE_LEVEL_RESTART:String = "MESSAGE_LEVEL_RESTART"; public static const KEY_ACTION_UP:String = "up"; public static const MESSAGE_JUMP:String = "MESSAGE_JUMP"; public static const MESSAGE_PASS_CHECK_POINT:String = "MESSAGE_PASS_CHECK_POINT"; public static const KEY_ACTION_DOWN:String = "down"; public static const KEY_ACTION_PAUSE:String = "pause"; public static const KEY_ACTION_CONTINUE_EDITING:String = "continue_editing"; public static const MESSAGE_STUNT:String = "MESSAGE_STUNT"; public static const MESSAGE_USE_NITRO:String = "MESSAGE_USE_NITRO"; public static const KEY_ACTION_JUMP:String = "jump"; public static const MESSAGE_PICK_UP_NITRO:String = "MESSAGE_PICK_UP_NITRO"; public static const RESTART_AFTER_CRASH_PAUSE:int = 60; public static const COLLISION_SCREEN_WIDTH:Number = 640; public static const KEY_ACTION_NITRO:String = "nitro"; public static const KEY_ACTION_LEFT:String = "left"; public static const KEY_ACTION_RIGHT:String = "right"; public static const COLLISION_SCREEN_HEIGHT:Number = 480; public static const KEY_ACTION_RESTART:String = "restart"; public static const MESSAGE_LEVEL_COMPLETE:String = "MESSAGE_LEVEL_COMPLETE"; public static const MESSAGE_PAUSE:String = "MESSAGE_PAUSE"; private static var LINK_CLASSES:Array = [TextureLayer, SpriteLayer]; private static var BACKGROUNDS_LIST:Array = ["bg_1", "bg_2", "bg_3"]; public function GameController(){ GameModel.initialize(); checkPointTouchDelay = Managers.configManager.checkPointTouchDelay; keyInputMan = new KeyInputManager(ApplicationGlobals.application.stage); keyInputMan.mapKey(KEY_ACTION_LEFT, Keyboard.LEFT); keyInputMan.mapKey(KEY_ACTION_RIGHT, Keyboard.RIGHT); keyInputMan.mapKey(KEY_ACTION_UP, Keyboard.UP); keyInputMan.mapKey(KEY_ACTION_DOWN, Keyboard.DOWN); keyInputMan.mapKey(KEY_ACTION_BRAKE, 83); keyInputMan.mapKey(KEY_ACTION_NITRO, 65); keyInputMan.mapKey(KEY_ACTION_JUMP, 68); keyInputMan.mapKey(KEY_ACTION_PAUSE, 80); keyInputMan.mapKey(KEY_ACTION_RESTART, 82); keyInputMan.mapKey(KEY_ACTION_CONTINUE_EDITING, Keyboard.ESCAPE); keyInputMan.addEventListener(KeyInputEvent.KEY_DOWN, onKeyDownHandler); var _local1:XML = <world cameraWidth="640" cameraHeight="480"/> ; _map2d = new Map2d(_local1); _map2d.scrollStrategy = new FollowScrollStrategy(4, 4); _view = new GameView(this, _map2d); _messageQueue = new MessageQueue(); _messageQueue.registerMessage(MESSAGE_STUNT, 16, false, false); _messageQueue.registerMessage(MESSAGE_LEVEL_COMPLETE, 15, true, true); _messageQueue.registerMessage(MESSAGE_LEVEL_RESTART, 11, true, true); _messageQueue.registerMessage(MESSAGE_BIKER_CRASH, 10, true, true); _messageQueue.registerMessage(MESSAGE_JUMP, 5, true, false); _messageQueue.registerMessage(MESSAGE_USE_NITRO, 5, true, false); _messageQueue.registerMessage(MESSAGE_PAUSE, 0, true, false); _messageQueue.registerMessage(MESSAGE_PASS_CHECK_POINT, 0, true, false); _messageQueue.registerMessage(MESSAGE_PICK_UP_NITRO, 0, true, false); restartLevel(true); } private function onEnterFrameHandler(_arg1:Event):void{ var _local4:IUpdatable; var _local5:Rectangle; var _local6:Boolean; var _local7:Message; var _local8:int; if (paused){ return; }; var _local2:int = _timerCounter.time; _view.update(); var _local3:Record = Managers.soundManager.getRecord(SoundID.BIKE_MOTORCYCLE_MOVE_WAV); if (bikeObject.bikerAttached){ _local6 = false; if (keyInputMan.isKeyDown(KEY_ACTION_BRAKE)){ bikeObject.brake(); } else { if (keyInputMan.isKeyDown(KEY_ACTION_UP)){ _local6 = true; bikeObject.accelerate(); } else { if (keyInputMan.isKeyDown(KEY_ACTION_DOWN)){ bikeObject.decelerate(); } else { bikeObject.noControl(); }; }; }; if (keyInputMan.isKeyDown(KEY_ACTION_UP)){ Managers.soundManager.setVolume(SoundID.BIKE_MOTORCYCLE_IDLE_WAV, 0); } else { Managers.soundManager.setVolume(SoundID.BIKE_MOTORCYCLE_IDLE_WAV, 1); }; if (_local6){ _local3.volume = (_local3.volume + 0.1); } else { _local3.volume = (_local3.volume - 0.1); }; if (keyInputMan.isKeyDown(KEY_ACTION_LEFT)){ bikeObject.left(); } else { if (keyInputMan.isKeyDown(KEY_ACTION_RIGHT)){ bikeObject.right(); }; }; } else { Managers.soundManager.setVolume(SoundID.BIKE_MOTORCYCLE_IDLE_WAV, 1); _local3.volume = (_local3.volume - 0.1); if (--restartAfterCrashCounter == 0){ _messageQueue.append(MESSAGE_LEVEL_RESTART); }; }; _world.Step(GameModel.WORLD_TIME_STEP, GameModel.WORLD_ITERATIONS); for each (_local4 in objectsToUpdate) { _local4.update(); }; _local5 = bikeObject.mapRect; if ((((((_local5.right < 0)) || ((_local5.left > _map2d.currentRoomInfo.width)))) || ((_local5.top > _map2d.currentRoomInfo.height)))){ bikeObject.killBiker(); }; _map2d.scroll(_local5); _map2d.update(); if ((((checkPointTouchedCounter > 0)) && ((--checkPointTouchedCounter == 0)))){ if (bikeObject.bikerAttached){ _messageQueue.append(MESSAGE_PASS_CHECK_POINT); }; checkPointTouchedCounter = -1; }; _messageQueue.lock(); while (_messageQueue.hasNext()) { _local7 = _messageQueue.getNext(); switch (_local7.type){ case MESSAGE_STUNT: _view.showMessage((_local7.data as String)); break; case MESSAGE_PASS_CHECK_POINT: collideAgainstCheckPoint(); break; case MESSAGE_PICK_UP_NITRO: collideAgainstNitro((_local7.data as b2Body)); break; case MESSAGE_LEVEL_RESTART: restartLevel(false); break; case MESSAGE_LEVEL_COMPLETE: completeLevel(_local2); break; case MESSAGE_PAUSE: pause(); break; case MESSAGE_BIKER_CRASH: totalBackWheelieTime = (totalBackWheelieTime + bikeObject.totalBackWheelieTime); totalFrontWheelieTime = (totalFrontWheelieTime + bikeObject.totalFrontWheelieTime); totalAirTime = (totalAirTime + bikeObject.totalAirTime); totalBackSomersault = (totalBackSomersault + bikeObject.totalBackSomersault); totalFrontSomersault = (totalFrontSomersault + bikeObject.totalFrontSomersault); bikeObject.detachBiker(); restartAfterCrashCounter = RESTART_AFTER_CRASH_PAUSE; break; case MESSAGE_JUMP: bikeObject.jump(); break; case MESSAGE_USE_NITRO: if (hasNitro){ Managers.soundManager.play(SoundID.NITRO_SFX); Managers.soundManager.play(SoundID.VO_NITRO_DO_IT_WAV); bikeObject.useNitro(); _view.nitroIndicatorVisible = false; hasNitro = false; }; break; }; }; _messageQueue.unlock(); if (GameModel.isUserLevel){ _view.showTimer(_local2, false); } else { _local8 = (levelTimeGoal - _local2); if (_local8 < 0){ _local8 = 0; }; _view.showTimer(_local8, true); }; } public function get world():b2World{ return (_world); } public function unpause():void{ paused = false; _timerCounter.unpause(); } public function editLevel():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.CONTINUE_EDITING)); } public function get view():DisplayObject{ return (_view); } private function onKeyDownHandler(_arg1:KeyInputEvent):void{ if (paused){ return; }; var _local2:String = _arg1.keyAction; switch (_local2){ case KEY_ACTION_PAUSE: _messageQueue.append(MESSAGE_PAUSE); break; case KEY_ACTION_JUMP: _messageQueue.append(MESSAGE_JUMP); break; case KEY_ACTION_NITRO: _messageQueue.append(MESSAGE_USE_NITRO); break; case KEY_ACTION_RESTART: _messageQueue.append(MESSAGE_LEVEL_RESTART); break; case KEY_ACTION_CONTINUE_EDITING: dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.CONTINUE_EDITING)); break; case KEY_ACTION_BRAKE: if (bikeObject.bikerAttached){ Managers.soundManager.playSingle(SoundID.BIKE_BIKE_BRAKE_PRESS_01_WAV); }; break; case KEY_ACTION_UP: if (bikeObject.bikerAttached){ Managers.soundManager.playSingle(SoundID.BIKE_SPEED_UP_SHORT_WAV); }; break; }; } private function clearLevel():void{ var _local1:IDisposable; var _local2:b2Joint; var _local3:b2Body; checkPointTouchedCounter = -1; for each (_local1 in objectsToUpdate) { _local1.dispose(); }; objectsToUpdate = []; checkPointList = []; _idToSurfaceHash = {}; bodyToItemDict = new Dictionary(); if (bikeObject){ bikeObject.removeEventListener(GameObjectEvent.BIKER_CRASH, onBikeEventHandler); bikeObject.removeEventListener(GameObjectEvent.PASS_CHECK_POINT, onBikeEventHandler); bikeObject.removeEventListener(GameObjectEvent.PICK_UP_NITRO, onBikeEventHandler); bikeObject.removeEventListener(GameObjectEvent.STUNT, onBikeEventHandler); bikeObject = null; }; if (_world){ _local2 = _world.GetJointList(); while (_local2) { _world.DestroyJoint(_local2); _local2 = _local2.GetNext(); }; _local3 = _world.GetBodyList(); while (_local3) { _world.DestroyBody(_local3); _local3 = _local3.GetNext(); }; _world.SetContactListener(null); _world = null; }; } public function gotoMainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } public function restartLevel(_arg1:Boolean):void{ if (_arg1){ _timerCounter = new TimerCounter(); currentCheckPointIndex = 0; numCrashes = 0; totalBackWheelieTime = 0; totalFrontWheelieTime = 0; totalAirTime = 0; totalBackSomersault = 0; totalFrontSomersault = 0; } else { numCrashes++; }; rebuildLevel(); } public function rebuildLevel():void{ var _local9:SurfaceData; var _local10:Array; var _local11:JointData; var _local12:Array; var _local13:int; var _local14:ItemData; var _local15:Rectangle; var _local16:SurfaceObject; var _local17:JointObject; var _local18:GameObject; clearLevel(); var _local1:LevelData = GameModel.levelData; levelTimeGoal = _local1.timeGoal; var _local2:b2AABB = new b2AABB(); _local2.lowerBound.Set((-1000000 / GameModel.WORLD_SCALE), (-1000000 / GameModel.WORLD_SCALE)); _local2.upperBound.Set((1000000 / GameModel.WORLD_SCALE), (1000000 / GameModel.WORLD_SCALE)); var _local3:b2Vec2 = new b2Vec2(0, 2); _world = new b2World(_local2, _local3, true); var _local4:int = GameModel.levelNum; var _local5:int = Managers.configManager.numLevels; var _local6:int = (_local4 / (_local5 / BACKGROUNDS_LIST.length)); if (GameModel.isUserLevel){ _local6 = 0; }; var _local7:XML = new XML((((((("<room name=\"house\" width=\"" + ??esc_xattr ) + "\" height=\"") + ??esc_xattr ) + "\">\r\n\t\t\t\t\r\n\t\t\t\t") + (("<layers>\r\n\t\t\t\t\t\r\n\t\t\t\t\t" + (("<layer name=\"background\" class=\"com.bigwigmedia.map2d.layers::TextureLayer\" render=\"background_render\" scrollFactorX=\"50\" scrollFactorY=\"0\">\r\n\t\t\t\t\t\t" + (("<texture bitmap=\"" + ??esc_xattr ) + "\" width=\"1000\" height=\"480\" wrapX=\"true\" wrapY=\"false\"/>")) + "\r\n\t\t\t\t\t</layer>")) + "\r\n\t\t\t\t\t\r\n\t\t\t\t\t<layer name=\"sprites\" class=\"com.bigwigmedia.map2d.layers::SpriteLayer\" render=\"sprites_render\" scrollFactorX=\"100\" scrollFactorY=\"100\"/>\r\n\t\t\t\t\t\r\n\t\t\t\t</layers>")) + "\r\n\t\t\t\t\r\n\t\t\t</room>")); _map2d.createRoom(_local7); _view.rebuildLevel(); var _local8:Array = _local1.surfaces; for each (_local9 in _local8) { _local16 = _local9.createObject(this); _view.addSurface(_local16); if (((!(_local9.isStatic)) && (_local9.physicsEnabled))){ objectsToUpdate.push(_local16); }; _idToSurfaceHash[_local9.id] = _local16; }; _local10 = _local1.joints; for each (_local11 in _local10) { _local17 = _local11.createObject(this); _view.addJoint(_local17); objectsToUpdate.push(_local17); }; _local12 = _local1.items; _local13 = _local1.numCheckPoints; for each (_local14 in _local12) { _local18 = _local14.createObject(this, _local13); bodyToItemDict[_local14.createBody(this)] = _local18; _view.addItem(_local18); if (_local14.isCheckPoint()){ checkPointList.push(_local18); }; }; _local15 = currentCheckPointSprite.getBounds(currentCheckPointSprite.parent); bikeObject = GameModel.bikeData.createObject(this, (_local15.x + (_local15.width / 2)), _local15.bottom); _view.addItem(bikeObject); objectsToUpdate.push(bikeObject); bikeObject.addEventListener(GameObjectEvent.BIKER_CRASH, onBikeEventHandler); bikeObject.addEventListener(GameObjectEvent.PASS_CHECK_POINT, onBikeEventHandler); bikeObject.addEventListener(GameObjectEvent.PICK_UP_NITRO, onBikeEventHandler); bikeObject.addEventListener(GameObjectEvent.STUNT, onBikeEventHandler); _world.SetContactListener(new CustomContactListener(bikeObject.addCallback, bikeObject.persistCallback, bikeObject.removeCallback)); _view.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); hasNitro = false; _view.nitroIndicatorVisible = false; Managers.soundManager.play(SoundID.VO_START_OKHEREWEGO_WAV); Managers.soundManager.play(SoundID.BIKE_MOTORCYCLE_IDLE_WAV, int.MAX_VALUE); Managers.soundManager.setVolume(SoundID.BIKE_MOTORCYCLE_MOVE_WAV, 0); Managers.soundManager.play(SoundID.BIKE_MOTORCYCLE_MOVE_WAV, int.MAX_VALUE); paused = false; if (((((!(GameModel.isUserLevel)) && ((_local4 == 0)))) && (showRestartHint))){ showRestartHint = false; _view.showMessage("Press R to respawn from last checkpoint\nClick Pause/Menu button to restart level", 1); }; } private function collideAgainstNitro(_arg1:b2Body):void{ var _local2:NitroObject = bodyToItemDict[_arg1]; hasNitro = true; _local2.sprite.visible = false; _view.nitroIndicatorVisible = true; delete bodyToItemDict[_arg1]; _world.DestroyBody(_arg1); } public function getSurfaceByID(_arg1:String):SurfaceObject{ return (_idToSurfaceHash[_arg1]); } private function completeLevel(_arg1:int):void{ paused = true; Managers.soundManager.stopChannel(ChannelID.BIKE_EFFECTS); totalBackWheelieTime = (totalBackWheelieTime + bikeObject.totalBackWheelieTime); totalFrontWheelieTime = (totalFrontWheelieTime + bikeObject.totalFrontWheelieTime); totalAirTime = (totalAirTime + bikeObject.totalAirTime); totalBackSomersault = (totalBackSomersault + bikeObject.totalBackSomersault); totalFrontSomersault = (totalFrontSomersault + bikeObject.totalFrontSomersault); var _local2:BikeData = GameModel.bikeData; var _local3:int = ((((((totalAirTime / 1000) * _local2.airTimeToScoreMultiplier) + ((totalBackWheelieTime / 1000) * _local2.backWheelieTimeToScoreMultiplier)) + ((totalFrontWheelieTime / 1000) * _local2.frontWheelieTimeToScoreMultiplier)) + (totalBackSomersault * _local2.backSomersaultToScoreMultiplier)) + (totalFrontSomersault * _local2.frontSomersaultToScoreMultiplier)); var _local4:int = ((numCrashes == 0)) ? GameModel.bikeData.noCrashBonus : 0; _view.showLevelCompletePopup(_arg1, _local4, _local3); } private function onBikeEventHandler(_arg1:GameObjectEvent):void{ var _local2:b2Body; var _local3:CheckPointObject; switch (_arg1.type){ case GameObjectEvent.BIKER_CRASH: _messageQueue.append(MESSAGE_BIKER_CRASH); break; case GameObjectEvent.PASS_CHECK_POINT: _local2 = (_arg1.data as b2Body); _local3 = (bodyToItemDict[_local2] as CheckPointObject); if (_local3){ delete bodyToItemDict[_local2]; checkPointTouchedIndex = _local3.index; checkPointTouchedCounter = checkPointTouchDelay; }; break; case GameObjectEvent.PICK_UP_NITRO: _messageQueue.append(MESSAGE_PICK_UP_NITRO, _arg1.data); break; case GameObjectEvent.STUNT: _messageQueue.append(MESSAGE_STUNT, _arg1.data); break; }; } public function get currentCheckPointSprite():Sprite{ return (GameObject(checkPointList[currentCheckPointIndex]).sprite); } public function selectLevel():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SELECT_USER_LEVEL)); } private function collideAgainstCheckPoint():void{ if (currentCheckPointIndex < checkPointTouchedIndex){ currentCheckPointIndex = checkPointTouchedIndex; if (currentCheckPointIndex == (checkPointList.length - 1)){ _messageQueue.append(MESSAGE_LEVEL_COMPLETE); } else { Managers.soundManager.play(SoundID.CHECKPOINT_SFX); }; }; } public function dispose():void{ clearLevel(); Managers.soundManager.stopChannel(ChannelID.BIKE_EFFECTS); keyInputMan.dispose(); keyInputMan = null; _view.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); _view.dispose(); _view = null; } public function pause():void{ paused = true; _timerCounter.pause(); _view.showPausePopup(); } public function get timerCounter():TimerCounter{ return (_timerCounter); } public function playNextLevel():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.NEXT_LEVEL)); } } }//package bikeChamp.core.game
Section 23
//GameModel (bikeChamp.core.game.GameModel) package bikeChamp.core.game { import bikeChamp.core.game.gameObjects.*; import bikeChamp.managers.*; import Box2D.Collision.Shapes.*; import flash.utils.*; import com.dynamicflash.util.*; public class GameModel { public static const WORLD_SCALE:Number = 30; public static const WORLD_ITERATIONS:int = 30; public static const WORLD_TIME_STEP:Number = 0.1; private static var _levelNum:int = 0; private static var _bikeData:BikeData; public static var terrainContactFilterData:b2FilterData; public static var itemsContactFilterData:b2FilterData; public static var bikerContactFilterData:b2FilterData; private static var _userLevel:Boolean = false; private static var _initialized:Boolean = false; public static var bikeContactFilterData:b2FilterData; private static var _levelDataHash:Object = {}; public static function completeUserLevel(_arg1:int):Boolean{ var _local2:XML = new XML(Managers.soManager.getValue("user_levels")); var _local3:XML = _local2.level[_levelNum]; _local3.@completed = "true"; Managers.soManager.setValue("user_levels", _local2.toXMLString()); if (_arg1 < userLevelTime){ userLevelTime = _arg1; return (true); }; return (false); } public static function getExportLevelCode(_arg1:int):String{ var _local2:XML = new XML(Managers.soManager.getValue("user_levels")); var _local3:XML = _local2.level[_arg1]; var _local4:String = _local3.toXMLString(); var _local5:ByteArray = new ByteArray(); _local5.writeUTFBytes(_local4); _local5.compress(); return (Base64.encodeByteArray(_local5)); } public static function completeLevel(_arg1:int):Boolean{ var _local2:int = Managers.soManager.getValue("level_reached"); if (_local2 <= _levelNum){ Managers.soManager.setValue("level_reached", (_levelNum + 1)); }; var _local3:Array = Managers.soManager.getValue("level_scores"); var _local4:int = ((_local3[_levelNum])===undefined) ? -1 : _local3[_levelNum]; if (_arg1 > _local4){ _local3[_levelNum] = _arg1; Managers.soManager.setValue("level_scores", _local3); return (true); }; return (false); } public static function set userLevelTime(_arg1:int):void{ var _local2:XML = new XML(Managers.soManager.getValue("user_levels")); var _local3:XML = _local2.level[_levelNum]; _local3.@time = _arg1; Managers.soManager.setValue("user_levels", _local2.toXMLString()); } public static function get levelData():LevelData{ var _local1:String = (String(_levelNum) + String(_userLevel)); if (!_levelDataHash[_local1]){ _levelDataHash[_local1] = parseLevelData(); }; return (_levelDataHash[_local1]); } public static function initialize():void{ if (_initialized){ return; }; bikerContactFilterData = new b2FilterData(); bikerContactFilterData.categoryBits = 1; bikerContactFilterData.maskBits = (4 | 8); bikeContactFilterData = new b2FilterData(); bikeContactFilterData.categoryBits = 2; bikeContactFilterData.maskBits = (4 | 8); terrainContactFilterData = new b2FilterData(); terrainContactFilterData.categoryBits = 4; terrainContactFilterData.maskBits = ((1 | 2) | 4); itemsContactFilterData = new b2FilterData(); itemsContactFilterData.categoryBits = 8; itemsContactFilterData.maskBits = ((1 | 2) | 16); _initialized = true; } public static function get isLevelImported():Boolean{ return (levelData.importedLevel); } public static function removeCachedLevel(_arg1:int, _arg2:Boolean):void{ var _local3:String = (String(_levelNum) + String(_userLevel)); delete _levelDataHash[_local3]; } public static function get userLevelTime():int{ var _local1:XML = new XML(Managers.soManager.getValue("user_levels")); var _local2:XML = _local1.level[_levelNum]; if (_local2.hasOwnProperty("@time")){ return (int(_local2.@time)); }; return (int.MAX_VALUE); } public static function setSelectedLevel(_arg1:int, _arg2:Boolean):void{ _levelNum = _arg1; _userLevel = _arg2; } public static function get levelNum():int{ return (_levelNum); } public static function get bikeData():BikeData{ if (!_bikeData){ _bikeData = new BikeData(Managers.configManager.getBikeConfig()); }; return (_bikeData); } public static function importLevelCode(_arg1:String):Boolean{ var bytes:ByteArray; var str:String; var levelsXML:XML; var importedLevelXML:XML; var code = _arg1; try { bytes = Base64.decodeToByteArray(code); bytes.uncompress(); str = bytes.readUTFBytes(bytes.length); levelsXML = new XML(Managers.soManager.getValue("user_levels")); importedLevelXML = new XML(str); importedLevelXML.@imported = "true"; importedLevelXML.@completed = "false"; delete importedLevelXML.@time; levelsXML.appendChild(importedLevelXML); Managers.soManager.setValue("user_levels", levelsXML.toXMLString()); return (true); } catch(e:Error) { trace(e); }; return (false); } public static function get totalScore():int{ var _local3:int; var _local1:Array = Managers.soManager.getValue("level_scores"); var _local2:int; for each (_local3 in _local1) { _local2 = (_local2 + _local3); }; return (_local2); } public static function get isUserLevel():Boolean{ return (_userLevel); } private static function parseLevelData():LevelData{ var _local1:XML; var _local4:XML; var _local2:int; var _local3:Boolean; if (_userLevel){ _local4 = new XML(Managers.soManager.getValue("user_levels")); _local1 = _local4.level[_levelNum]; _local3 = ((_local1.hasOwnProperty("@imported")) && ((_local1.@imported == "true"))); } else { _local1 = Managers.configManager.getLevelXML(_levelNum); _local2 = Managers.configManager.getLevelTimeGoal(_levelNum); }; return (new LevelData(_local1, _local2, _local3)); } } }//package bikeChamp.core.game
Section 24
//GameView (bikeChamp.core.game.GameView) package bikeChamp.core.game { import flash.display.*; import bikeChamp.core.game.gameObjects.*; import bikeChamp.managers.*; import bikeChamp.core.game.events.*; import com.bigwigmedia.map2d.layers.*; import com.bigwigmedia.map2d.*; import com.bigwigmedia.core.*; import com.bigwigmedia.ui.containers.*; import bikeChamp.core.game.controls.*; public class GameView extends Sprite implements IDisposable { private var _effects:Array; private var _itemsHolder:Sprite; private var _effectsHolder:Sprite; private var _surfacesHolder:Sprite; private var _jointsHolder:Sprite; private var _spriteLayer:SpriteLayer; private var _map:Map2d; private var _popup:LayoutContainer; private var _hud:GameHUD; private var _controller:GameController; public function GameView(_arg1:GameController, _arg2:Map2d){ _effects = []; super(); _controller = _arg1; _map = _arg2; var _local3:Sprite = Sprite(addChild(_map.view)); _local3.mouseChildren = false; _local3.mouseEnabled = false; _effectsHolder = new Sprite(); _effectsHolder.mouseChildren = false; _effectsHolder.mouseEnabled = false; addChild(_effectsHolder); _hud = new GameHUD(); _hud.addEventListener(GameHUDEvent.LINK_2D_PLAY, onHUDLink2DPlayHandler); _hud.addEventListener(GameHUDEvent.PAUSE, onHUDPauseHandler); addChild(_hud); } public function addJoint(_arg1:GameObject):void{ _jointsHolder.addChild(_arg1.sprite); } public function showPausePopup():void{ _popup = new PausePopup(this); addChild(_popup); } public function showLevelCompletePopup(_arg1:int, _arg2:int, _arg3:int):void{ _popup = new LevelCompletePopup(this, _arg1, _arg2, _arg3); addChild(_popup); } public function showTimer(_arg1:int, _arg2:Boolean):void{ _hud.showTimer(_arg1, _arg2); } public function update():void{ var _local1:IUpdatable; for each (_local1 in _effects) { _local1.update(); }; } public function gotoMainMenu():void{ _controller.gotoMainMenu(); } public function addSurface(_arg1:SurfaceObject):void{ var _local2:Sprite = _arg1.sprite; _surfacesHolder.addChild(_local2); _local2.transform.matrix = _arg1.matrix; } private function onHUDLink2DPlayHandler(_arg1:GameHUDEvent):void{ Managers.urlCaller.mainLink(); } public function playNextLevel():void{ _controller.playNextLevel(); } public function showMessage(_arg1:String, _arg2:int=0):void{ var _local3:StuntMessage = new StuntMessage(_arg1, this, _arg2); _effects.push(_local3); _effectsHolder.addChild(_local3); } public function addItem(_arg1:GameObject):void{ _itemsHolder.addChild(_arg1.sprite); } public function dispose():void{ var _local1:StuntMessage; _controller = null; _spriteLayer = null; _map.dispose(); _map = null; _hud.dispose(); _hud = null; for each (_local1 in _effects) { _effectsHolder.removeChild(_local1); _local1.dispose(); }; _effects = []; if (_popup){ removeChild(_popup); _popup.dispose(); _popup = null; }; } public function removeMessage(_arg1:StuntMessage):void{ _effectsHolder.removeChild(_arg1); _effects.splice(_effects.indexOf(_arg1), 1); _arg1.dispose(); } public function rebuildLevel():void{ var _local1:StuntMessage; if (_spriteLayer){ while (_jointsHolder.numChildren > 0) { _jointsHolder.removeChildAt(0); }; _spriteLayer.removeChild(_jointsHolder); while (_surfacesHolder.numChildren > 0) { _surfacesHolder.removeChildAt(0); }; _spriteLayer.removeChild(_surfacesHolder); while (_itemsHolder.numChildren > 0) { _itemsHolder.removeChildAt(0); }; _spriteLayer.removeChild(_itemsHolder); for each (_local1 in _effects) { _effectsHolder.removeChild(_local1); _local1.dispose(); }; _effects = []; }; _spriteLayer = (_map.getLayer("sprites") as SpriteLayer); _jointsHolder = new Sprite(); _jointsHolder.mouseChildren = false; _jointsHolder.mouseEnabled = false; _spriteLayer.addChild(_jointsHolder); _surfacesHolder = new Sprite(); _jointsHolder.mouseChildren = false; _jointsHolder.mouseEnabled = false; _spriteLayer.addChild(_surfacesHolder); _itemsHolder = new Sprite(); _jointsHolder.mouseChildren = false; _jointsHolder.mouseEnabled = false; _spriteLayer.addChild(_itemsHolder); _hud.resetTimer(); } private function onHUDPauseHandler(_arg1:GameHUDEvent):void{ _controller.pause(); } public function selectLevel():void{ _controller.selectLevel(); } public function restartLevel():void{ removeChild(_popup); _popup.dispose(); _popup = null; _controller.restartLevel(true); } public function set nitroIndicatorVisible(_arg1:Boolean):void{ _hud.nitroIndicatorVisible = _arg1; } public function editLevel():void{ _controller.editLevel(); } public function unpause():void{ removeChild(_popup); _popup.dispose(); _popup = null; _controller.unpause(); } } }//package bikeChamp.core.game
Section 25
//LevelData (bikeChamp.core.game.LevelData) package bikeChamp.core.game { import bikeChamp.core.game.gameObjects.*; public class LevelData { private var _items:Array; private var _numCheckPoints:int;// = 0 private var _surfaces:Array; private var _joints:Array; private var _background:String; private var _roomHeight:Number; private var _timeGoal:int; private var _importedLevel:Boolean; private var _roomWidth:Number; private var _dispX:Number; private var _dispY:Number; public function LevelData(_arg1:XML, _arg2:int, _arg3:Boolean){ var _local11:XML; var _local12:XML; var _local13:XML; var _local14:ItemData; _items = []; _joints = []; _surfaces = []; super(); _timeGoal = (_arg2 * 1000); _importedLevel = _arg3; var _local4:XMLList = _arg1.items.children(); var _local5:XMLList = _arg1.joints.children(); var _local6:XMLList = _arg1.surfaces.children(); var _local7:Number = _arg1.@minX; var _local8:Number = _arg1.@maxX; var _local9:Number = _arg1.@minY; var _local10:Number = _arg1.@maxY; _dispX = -(_local7); _dispY = -(_local9); _roomWidth = Math.max((_local8 - _local7), 640); _roomHeight = Math.max((_local10 - _local9), 480); for each (_local11 in _local4) { _local14 = new ItemData(_local11, _dispX, _dispY); if (_local14.isCheckPoint()){ _numCheckPoints++; }; items.push(_local14); }; for each (_local12 in _local5) { joints.push(new JointData(_local12, _dispX, _dispY)); }; for each (_local13 in _local6) { surfaces.push(new SurfaceData(_local13, _dispX, _dispY)); }; } public function get items():Array{ return (_items); } public function get dispY():Number{ return (_dispY); } public function get timeGoal():int{ return (_timeGoal); } public function get importedLevel():Boolean{ return (_importedLevel); } public function get roomHeight():Number{ return (_roomHeight); } public function get numCheckPoints():int{ return (_numCheckPoints); } public function get surfaces():Array{ return (_surfaces); } public function get joints():Array{ return (_joints); } public function get roomWidth():Number{ return (_roomWidth); } public function get background():String{ return (_background); } public function get dispX():Number{ return (_dispX); } } }//package bikeChamp.core.game
Section 26
//StuntMessage (bikeChamp.core.game.StuntMessage) package bikeChamp.core.game { import flash.display.*; import bikeChamp.managers.*; import com.bigwigmedia.events.*; import flash.geom.*; import flash.text.*; import flash.filters.*; import com.bigwigmedia.core.*; import com.bigwigmedia.tweens.*; public class StuntMessage extends Sprite implements IUpdatable, IDisposable { private var mode:int; private var tween:ITween; private var view:GameView; private var textField:TextField; private var dy:Number;// = 5 public function StuntMessage(_arg1:String, _arg2:GameView, _arg3:int){ var _local4:Rectangle; super(); this.view = _arg2; this.mode = _arg3; textField = new TextField(); textField.mouseEnabled = false; textField.autoSize = TextFieldAutoSize.LEFT; textField.defaultTextFormat = new TextFormat(Managers.fontManager.getFontNameByID("Font_1"), 23, 0xFFCC00, null, null, null, null, null); textField.embedFonts = true; textField.text = _arg1; textField.filters = [new GlowFilter(0, 1, 4, 4, 5)]; addChild(textField); this.x = ((640 - textField.width) / 2); switch (_arg3){ case 0: this.y = -30; break; case 1: this.y = 100; _local4 = textField.getRect(this); _local4.inflate(10, 10); this.graphics.beginFill(0, 0.7); this.graphics.drawRoundRect(_local4.x, _local4.y, _local4.width, _local4.height, 20); this.graphics.endFill(); tween = new TweenSequence([new Delay(150), new PropertyTween(this, "alpha", 1, 0, 30)]); tween.addEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); break; }; } private function onTweenCompleteHandler(_arg1:TweenEvent):void{ view.removeMessage(this); } public function update():void{ switch (mode){ case 0: this.y = (this.y + dy); dy = (dy - 0.17); if (this.y <= -31){ view.removeMessage(this); }; break; case 1: tween.update(); break; }; } public function dispose():void{ view = null; if (tween){ tween.removeEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); tween.dispose(); tween = null; }; } } }//package bikeChamp.core.game
Section 27
//TimerCounter (bikeChamp.core.game.TimerCounter) package bikeChamp.core.game { import flash.utils.*; public class TimerCounter { private var _elapsedTime:int; private var _paused:Boolean;// = false private var _pauseTimer:int;// = 0 private var _pauseDiff:int;// = 0 private var _initTimer:int; public function TimerCounter(){ _initTimer = getTimer(); } public function unpause():void{ _paused = false; _pauseDiff = (_pauseDiff + (getTimer() - _pauseTimer)); } public function get time():int{ if (!_paused){ _elapsedTime = ((getTimer() - _initTimer) - _pauseDiff); }; return (_elapsedTime); } public function pause():void{ _paused = true; _pauseTimer = getTimer(); } } }//package bikeChamp.core.game
Section 28
//GameCompletedController (bikeChamp.core.gameCompleted.GameCompletedController) package bikeChamp.core.gameCompleted { import bikeChamp.core.events.*; import flash.display.*; import flash.events.*; import bikeChamp.core.main.*; import bikeChamp.core.*; public class GameCompletedController extends EventDispatcher implements IController { private var _view:GameCompletedView; public function GameCompletedController(){ _view = new GameCompletedView(this); } public function get view():DisplayObject{ return (_view); } public function dispose():void{ _view.dispose(); _view = null; } public function gotoMainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } } }//package bikeChamp.core.gameCompleted
Section 29
//GameCompletedView (bikeChamp.core.gameCompleted.GameCompletedView) package bikeChamp.core.gameCompleted { import bikeChamp.core.game.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import flash.text.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; import com.bigwigmedia.ui.styles.*; import bikeChamp.core.sound.*; public class GameCompletedView extends LayoutContainer { private var submitScoreBtn:LabelButton; private var mainMenuBtn:LabelButton; private var twoDPlayBtn:IconicButton; private var vBox:VBox; private var viewScoresBtn:LabelButton; private var _controller:GameCompletedController; public function GameCompletedView(_arg1:GameCompletedController){ setSize(640, 480); Managers.soundManager.play(SoundID.APPLAUSE_WAV); _controller = _arg1; addChild(new GameWonBackground()); var _local2:Label = new Label(); _local2.text = "YOU RULE!"; _local2.setStyle(AbstractComponentStyle.TEXT_FORMAT, new TextFormat(Managers.fontManager.getFontNameByID("Font_1"), 34, 0xFFFFFF)); addChildToLayout(_local2, {horizontalCenter:0, top:10}); var _local3:Label = new Label(); _local3.text = ("Final Score: " + String(GameModel.totalScore)); addChildToLayout(_local3, {horizontalCenter:0, top:70}); vBox = new VBox(); vBox.gap = 5; submitScoreBtn = new GameButton(); submitScoreBtn.label = "Submit Score"; submitScoreBtn.beacon = true; vBox.addChildToLayout(submitScoreBtn); viewScoresBtn = new GameButton(); viewScoresBtn.label = "View Scores"; vBox.addChildToLayout(viewScoresBtn); mainMenuBtn = new GameButton(); mainMenuBtn.label = "Main Menu"; vBox.addChildToLayout(mainMenuBtn); twoDPlayBtn = new IconicButton(TwoDPlayButtonIcon); twoDPlayBtn.scale = 0.7; addChildToLayout(twoDPlayBtn, {bottom:10, left:10}); addChildToLayout(vBox, {horizontalCenter:0, bottom:10}); this.addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case twoDPlayBtn: Managers.urlCaller.mainLink(); break; case viewScoresBtn: Managers.urlCaller.viewScores(); break; case submitScoreBtn: Managers.urlCaller.submitScore(GameModel.totalScore); break; case mainMenuBtn: _controller.gotoMainMenu(); break; }; } } }//package bikeChamp.core.gameCompleted
Section 30
//InstructionsController (bikeChamp.core.instructions.InstructionsController) package bikeChamp.core.instructions { import bikeChamp.core.events.*; import flash.display.*; import flash.events.*; import bikeChamp.core.main.*; import bikeChamp.core.*; public class InstructionsController extends EventDispatcher implements IController { private var _view:InstructionsView; public function InstructionsController(){ _view = new InstructionsView(this); } public function get view():DisplayObject{ return (_view); } public function dispose():void{ _view.dispose(); _view = null; } public function gotoMainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } } }//package bikeChamp.core.instructions
Section 31
//InstructionsView (bikeChamp.core.instructions.InstructionsView) package bikeChamp.core.instructions { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class InstructionsView extends LayoutContainer { private var _controller:InstructionsController; private var mainMenuBtn:LabelButton; public function InstructionsView(_arg1:InstructionsController){ setSize(640, 480); _controller = _arg1; addChild(new InstructionsBackground()); mainMenuBtn = new GameButton("Main Menu"); mainMenuBtn.beacon = true; addChildToLayout(mainMenuBtn, {bottom:5, horizontalCenter:0}); this.addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case mainMenuBtn: _controller.gotoMainMenu(); break; }; } } }//package bikeChamp.core.instructions
Section 32
//LevelButton (bikeChamp.core.levelSelection.LevelButton) package bikeChamp.core.levelSelection { import flash.display.*; import com.bigwigmedia.ui.*; import flash.text.*; import flash.filters.*; public class LevelButton extends LabelButton { private var _levelNum:int; private var lockedIcon:DisplayObject; private var backgroundIcon:DisplayObject; public static const WIDTH:Number = 44; public static const HEIGHT:Number = 40; public function LevelButton(_arg1:int){ _levelNum = _arg1; super(String(_levelNum)); } public function set locked(_arg1:Boolean):void{ backgroundIcon.visible = !(_arg1); lockedIcon.visible = _arg1; _labelField.visible = !(_arg1); enabled = !(_arg1); } public function get levelNum():int{ return (_levelNum); } override protected function createChildren():void{ backgroundIcon = new LevelButtonIcon(); addChild(backgroundIcon); lockedIcon = new LevelButtonLockedIcon(); addChild(lockedIcon); _labelField = new TextField(); _labelField.type = TextFieldType.DYNAMIC; _labelField.selectable = false; _labelField.width = LevelButton.WIDTH; _labelField.height = 30; _labelField.y = 7; _labelField.filters = [new GlowFilter(0, 1, 4, 4, 3)]; addChild(_labelField); label = String((_levelNum + 1)); } } }//package bikeChamp.core.levelSelection
Section 33
//LevelSelectionController (bikeChamp.core.levelSelection.LevelSelectionController) package bikeChamp.core.levelSelection { import bikeChamp.core.events.*; import flash.display.*; import bikeChamp.core.game.*; import flash.events.*; import bikeChamp.core.main.*; import bikeChamp.core.*; public class LevelSelectionController extends EventDispatcher implements IController { private var _view:LevelSelectionView; public function LevelSelectionController(){ _view = new LevelSelectionView(this); } public function get view():DisplayObject{ return (_view); } public function startGame(_arg1:int):void{ GameModel.setSelectedLevel(_arg1, false); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.START)); } public function gotoMainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } public function dispose():void{ _view.dispose(); _view = null; } } }//package bikeChamp.core.levelSelection
Section 34
//LevelSelectionView (bikeChamp.core.levelSelection.LevelSelectionView) package bikeChamp.core.levelSelection { import bikeChamp.core.game.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class LevelSelectionView extends LayoutContainer { private var resetGameBtn:LabelButton; private var numLevelButtons:int;// = 0 private var mainMenuBtn:LabelButton; private var levelScores:Array; private var levelButtonsList:Array; private var totalScoreLabel:Label; private var currentLevelBtnX:Number; private var currentLevelBtnY:Number; private var levelBestScoreLabel:Label; private var selectLevelLabel:Label; private var _popup:AbstractComponent; private var _controller:LevelSelectionController; public static const NUM_LEVEL_BUTTONS_IN_ROW:int = 10; public static const LEVEL_BUTTONS_TOP_MARGIN:int = 100; public static const LEVEL_BUTTONS_LEFT_MARGIN:int = 32; public static const LEVEL_BUTTONS_GAP:int = 15; public function LevelSelectionView(_arg1:LevelSelectionController){ var controller = _arg1; levelButtonsList = []; super(); setSize(640, 480); levelScores = Managers.soManager.getValue("level_scores"); _controller = controller; selectLevelLabel = new Label("SELECT LEVEL"); addChildToLayout(selectLevelLabel, {horizontalCenter:0, top:30}); levelBestScoreLabel = new Label(); addChildToLayout(levelBestScoreLabel, {horizontalCenter:0, bottom:130}); totalScoreLabel = new Label(("Total Score: " + GameModel.totalScore)); addChildToLayout(totalScoreLabel, {horizontalCenter:0, bottom:100}); resetGameBtn = new GameButton("Reset Game"); addChildToLayout(resetGameBtn, {left:50, bottom:30}); mainMenuBtn = new GameButton("Main Menu"); addChildToLayout(mainMenuBtn, {right:50, bottom:30}); currentLevelBtnX = LEVEL_BUTTONS_LEFT_MARGIN; currentLevelBtnY = LEVEL_BUTTONS_TOP_MARGIN; var levels:XML = Managers.configManager.getLevelsXML(); levels.level.(addLevelBtn(childIndex(), @name)); //not popped addEventListener(MouseEvent.CLICK, onMouseClickHandler); addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler); } public function removePopup():void{ if (_popup){ removeChild(_popup); _popup.dispose(); _popup = null; }; } private function onMouseClickHandler(_arg1:MouseEvent):void{ var _local2:LevelButton = (_arg1.target as LevelButton); if (_local2){ _controller.startGame(_local2.levelNum); return; }; switch (_arg1.target){ case mainMenuBtn: _controller.gotoMainMenu(); break; case resetGameBtn: _popup = new ResetGamePopup(this); addChild(_popup); break; }; } override public function dispose():void{ removePopup(); levelButtonsList = []; levelScores = []; super.dispose(); } public function resetGame():void{ Managers.soManager.setValue("level_reached", 0); Managers.soManager.setValue("level_scores", new Array()); levelScores = Managers.soManager.getValue("level_scores"); levelBestScoreLabel.text = ""; totalScoreLabel.text = "Total Score: 0"; var levels:XML = Managers.configManager.getLevelsXML(); levels.level.(levelButtonsList[childIndex()].locked = (childIndex() > 0)); //not popped } private function onMouseOverHandler(_arg1:MouseEvent):void{ var _local3:int; var _local4:int; var _local2:LevelButton = (_arg1.target as LevelButton); if (_local2){ _local3 = _local2.levelNum; _local4 = ((levelScores[_local3])===undefined) ? 0 : levelScores[_local3]; levelBestScoreLabel.text = ((("Level " + String((_local3 + 1))) + " Best Score: ") + _local4); }; } private function addLevelBtn(_arg1:int, _arg2:String):void{ var _local3:LevelButton = new LevelButton(_arg1); _local3.move(currentLevelBtnX, currentLevelBtnY); var _local4:int = Managers.soManager.getValue("level_reached"); _local3.locked = (_arg1 > _local4); levelButtonsList.push(_local3); addChild(_local3); if ((++numLevelButtons % NUM_LEVEL_BUTTONS_IN_ROW) == 0){ currentLevelBtnX = LEVEL_BUTTONS_LEFT_MARGIN; currentLevelBtnY = (currentLevelBtnY + (LEVEL_BUTTONS_GAP + LevelButton.HEIGHT)); } else { currentLevelBtnX = (currentLevelBtnX + (LEVEL_BUTTONS_GAP + LevelButton.WIDTH)); }; } } }//package bikeChamp.core.levelSelection
Section 35
//ResetGamePopup (bikeChamp.core.levelSelection.ResetGamePopup) package bikeChamp.core.levelSelection { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class ResetGamePopup extends LayoutContainer { private var okBtn:LabelButton; private var cancelBtn:LabelButton; private var label:Label; private var _owner:LevelSelectionView; public function ResetGamePopup(_arg1:LevelSelectionView){ setSize(640, 480); graphics.beginFill(0, 0.7); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); _owner = _arg1; label = new Label("Reset Game Progress And Level Scores?"); addChildToLayout(label, {horizontalCenter:0, top:180}); okBtn = new GameButton("OK"); addChildToLayout(okBtn, {left:30, bottom:180}); cancelBtn = new GameButton("Cancel"); addChildToLayout(cancelBtn, {right:30, bottom:180}); addEventListener(MouseEvent.CLICK, onClickHandler); } private function onClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case okBtn: _owner.resetGame(); _owner.removePopup(); break; case cancelBtn: _owner.removePopup(); break; }; } } }//package bikeChamp.core.levelSelection
Section 36
//MainController (bikeChamp.core.main.MainController) package bikeChamp.core.main { import com.bigwigmedia.stateMachine.*; import bikeChamp.core.events.*; import flash.display.*; import bikeChamp.core.game.*; import flash.events.*; import bikeChamp.managers.*; import bikeChamp.core.instructions.*; import bikeChamp.core.userLevelSelection.*; import bikeChamp.core.gameCompleted.*; import bikeChamp.core.mainMenu.*; import bikeChamp.core.levelSelection.*; import bikeChamp.core.*; import bikeChamp.levelEditor.*; import com.bigwigmedia.effects.*; import com.bigwigmedia.application.*; public class MainController extends EventDispatcher implements IController { private var hsm:HSM; private var subController:IController; private var _view:Sprite; private var subControllerClass:Class; public function MainController(){ _view = new Sprite(); Managers.initialize(onManagersInitCallback); } private function showLevelSelection(_arg1:AbstractEvent):void{ beginTransitionEffect(LevelSelectionController); } private function showInstructions(_arg1:AbstractEvent):void{ beginTransitionEffect(InstructionsController); } private function showGame(_arg1:AbstractEvent):void{ beginTransitionEffect(GameController); } private function createNextController():void{ disposeCurrentController(); subController = new subControllerClass(); subController.addEventListener(ControllerEvent.COMPLETE, onControllerCompleteHandler); _view.addChild(subController.view); } private function showLevelEditor(_arg1:AbstractEvent):void{ beginTransitionEffect(LevelEditorController); } private function showMainMenu(_arg1:AbstractEvent):void{ beginTransitionEffect(MainMenuController); } private function disposeCurrentController():void{ if (subController){ subController.removeEventListener(ControllerEvent.COMPLETE, onControllerCompleteHandler); _view.removeChild(subController.view); subController.dispose(); subController = null; }; } private function beginTransitionEffect(_arg1:Class):void{ this.subControllerClass = _arg1; var _local2:BlackoutOverlay = new BlackoutOverlay(createNextController); ApplicationGlobals.application.createOverlay(_local2); } public function dispose():void{ throw (new Error("Can't dispose MainController")); } private function initNextLevel(_arg1:AbstractEvent):void{ var _local2:int = GameModel.levelNum; GameModel.setSelectedLevel((_local2 + 1), false); } public function get view():DisplayObject{ return (_view); } private function isGameCompleted():Boolean{ var _local1:int = Managers.configManager.numLevels; return ((GameModel.levelNum == _local1)); } private function showUserLevelSelection(_arg1:AbstractEvent):void{ beginTransitionEffect(UserLevelSelectionController); } private function onControllerCompleteHandler(_arg1:ControllerEvent):void{ hsm.sendSignal(new SignalEvent((_arg1.data as String))); } private function onManagersInitCallback():void{ hsm = new HSM(); var _local1:AbstractState = hsm.addState(new InitialState()); var _local2:AbstractState = hsm.addState(new SimpleState(showMainMenu)); var _local3:AbstractState = hsm.addState(new SimpleState(showLevelEditor)); var _local4:AbstractState = hsm.addState(new SimpleState(showUserLevelSelection)); var _local5:AbstractState = hsm.addState(new SimpleState(showInstructions)); var _local6:AbstractState = hsm.addState(new SimpleState(showLevelSelection)); var _local7:AbstractState = hsm.addState(new SimpleState(showGame)); var _local8:AbstractState = hsm.addState(new SimpleState(showGame)); var _local9:AbstractState = hsm.addState(new SimpleState(showGameCompleted)); var _local10:AbstractState = hsm.addState(new ChoiceState()); _local1.addTransition(_local2); _local2.addTransition(_local4, new SignalTrigger(MainSignal.SELECT_USER_LEVEL)); _local3.addTransition(_local4, new SignalTrigger(MainSignal.SELECT_USER_LEVEL)); _local3.addTransition(_local8, new SignalTrigger(MainSignal.TEST_USER_LEVEL)); _local4.addTransition(_local3, new SignalTrigger(MainSignal.SHOW_LEVEL_EDITOR)); _local4.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local4.addTransition(_local8, new SignalTrigger(MainSignal.TEST_USER_LEVEL)); _local8.addTransition(_local3, new SignalTrigger(MainSignal.CONTINUE_EDITING)); _local8.addTransition(_local4, new SignalTrigger(MainSignal.SELECT_USER_LEVEL)); _local8.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local2.addTransition(_local5, new SignalTrigger(MainSignal.SHOW_INSTRUCTIONS)); _local5.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local2.addTransition(_local6, new SignalTrigger(MainSignal.START)); _local6.addTransition(_local7, new SignalTrigger(MainSignal.START)); _local6.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local7.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); _local7.addTransition(_local10, new SignalTrigger(MainSignal.NEXT_LEVEL), initNextLevel); _local10.addTransition(_local9, null, null, isGameCompleted); _local10.addTransition(_local7, null, null); _local9.addTransition(_local2, new SignalTrigger(MainSignal.SHOW_MAIN_MENU)); hsm.start(); } private function showGameCompleted(_arg1:AbstractEvent):void{ beginTransitionEffect(GameCompletedController); } } }//package bikeChamp.core.main
Section 37
//MainSignal (bikeChamp.core.main.MainSignal) package bikeChamp.core.main { public class MainSignal { public static const CONTINUE_EDITING:String = "CONTINUE_EDITING"; public static const START:String = "START"; public static const SHOW_MAIN_MENU:String = "SHOW_MAIN_MENU"; public static const SHOW_INSTRUCTIONS:String = "SHOW_INSTRUCTIONS"; public static const SHOW_LEVEL_EDITOR:String = "SHOW_LEVEL_EDITOR"; public static const SELECT_USER_LEVEL:String = "SELECT_USER_LEVEL"; public static const NEXT_LEVEL:String = "NEXT_LEVEL"; public static const TEST_USER_LEVEL:String = "TEST_USER_LEVEL"; } }//package bikeChamp.core.main
Section 38
//MainMenuController (bikeChamp.core.mainMenu.MainMenuController) package bikeChamp.core.mainMenu { import bikeChamp.core.events.*; import flash.display.*; import flash.events.*; import bikeChamp.core.main.*; import bikeChamp.core.*; public class MainMenuController extends EventDispatcher implements IController { private var _view:MainMenuView; public function MainMenuController(){ _view = new MainMenuView(this); } public function showUserLevelSelection():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SELECT_USER_LEVEL)); } public function showInstructions():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_INSTRUCTIONS)); } public function get view():DisplayObject{ return (_view); } public function startGame():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.START)); } public function dispose():void{ _view.dispose(); _view = null; } } }//package bikeChamp.core.mainMenu
Section 39
//MainMenuView (bikeChamp.core.mainMenu.MainMenuView) package bikeChamp.core.mainMenu { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import flash.text.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; import com.bigwigmedia.ui.styles.*; public class MainMenuView extends LayoutContainer { private var _controller:MainMenuController; private var userLevelBtn:LabelButton; private var buttonsBox:VBox; private var twoDPlayBtn:IconicButton; private var viewScoresBtn:LabelButton; private var instructionsBtn:LabelButton; private var openLevels:LabelButton; private var startBtn:LabelButton; private var saveUserLevels:LabelButton; private var importUserLevels:LabelButton; public function MainMenuView(_arg1:MainMenuController){ setSize(640, 480); addChild(new SplashScreenBackground()); _controller = _arg1; var _local2:Label = new Label("©2DPlay.com"); _local2.setStyle(AbstractComponentStyle.EMBED_FONTS, false); _local2.setStyle(AbstractComponentStyle.TEXT_FORMAT, new TextFormat("_sans", 12, 0xFFFFFF)); addChildToLayout(_local2, {right:5, top:5}); buttonsBox = new VBox(); buttonsBox.gap = 5; startBtn = new GameButton("Start Game"); startBtn.beacon = true; buttonsBox.addChildToLayout(startBtn); userLevelBtn = new GameButton("Level Editor"); buttonsBox.addChildToLayout(userLevelBtn); instructionsBtn = new GameButton("Instructions"); buttonsBox.addChildToLayout(instructionsBtn); viewScoresBtn = new GameButton("View Scores"); buttonsBox.addChildToLayout(viewScoresBtn); addChildToLayout(buttonsBox, {right:10, bottom:10}); twoDPlayBtn = new IconicButton(TwoDPlayButtonIcon); addChildToLayout(twoDPlayBtn, {left:10, bottom:10}); this.addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case startBtn: _controller.startGame(); break; case userLevelBtn: _controller.showUserLevelSelection(); break; case instructionsBtn: _controller.showInstructions(); break; case viewScoresBtn: Managers.urlCaller.viewScores(); break; case twoDPlayBtn: Managers.urlCaller.mainLink(); break; case saveUserLevels: SaveLevelUtil.saveUserLevels(); break; case importUserLevels: SaveLevelUtil.importUserLevels(); break; case openLevels: Managers.soManager.setValue("level_reached", 50); Managers.soManager.flush(); break; }; } } }//package bikeChamp.core.mainMenu
Section 40
//SaveLevelUtil (bikeChamp.core.mainMenu.SaveLevelUtil) package bikeChamp.core.mainMenu { import flash.events.*; import bikeChamp.managers.*; import flash.net.*; public class SaveLevelUtil { private static var fileRef:FileReference; public static function saveUserLevels():void{ var _local1:String; fileRef = new FileReference(); fileRef.addEventListener(Event.COMPLETE, onFileRefHandler); fileRef.addEventListener(Event.CANCEL, onFileRefHandler); if (("save" in fileRef)){ _local1 = ("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n" + Managers.soManager.getValue("user_levels")); var _local2 = fileRef; _local2["save"](_local1, "levels.xml"); }; } private static function onLoadFileRefHandler(_arg1:Event):void{ var _local2:XML = new XML(fileRef["data"]); Managers.soManager.setValue("user_levels", _local2.toXMLString()); Managers.soManager.flush(); fileRef.removeEventListener(Event.COMPLETE, onLoadFileRefHandler); fileRef = null; } private static function onFileRefHandler(_arg1:Event):void{ fileRef.removeEventListener(Event.COMPLETE, onFileRefHandler); fileRef.removeEventListener(Event.CANCEL, onFileRefHandler); fileRef = null; } private static function onBrowseFileRefHandler(_arg1:Event):void{ fileRef.removeEventListener(Event.SELECT, onBrowseFileRefHandler); fileRef.removeEventListener(Event.CANCEL, onBrowseFileRefHandler); if (_arg1.type == Event.SELECT){ fileRef.addEventListener(Event.COMPLETE, onLoadFileRefHandler); var _local2 = fileRef; _local2["load"](); } else { fileRef = null; }; } public static function importUserLevels():void{ fileRef = new FileReference(); fileRef.addEventListener(Event.SELECT, onBrowseFileRefHandler); fileRef.addEventListener(Event.CANCEL, onBrowseFileRefHandler); fileRef.browse([new FileFilter("Select levels.xml file", "levels.xml")]); } } }//package bikeChamp.core.mainMenu
Section 41
//ChannelID (bikeChamp.core.sound.ChannelID) package bikeChamp.core.sound { public class ChannelID { public static const BIKE_EFFECTS:String = "BIKE_EFFECTS"; public static const VO_EFFECTS:String = "VO_EFFECTS"; public static const MISC_EFFECTS:String = "MISC_EFFECTS"; } }//package bikeChamp.core.sound
Section 42
//SoundID (bikeChamp.core.sound.SoundID) package bikeChamp.core.sound { public class SoundID { public static const VO_APPREC_OHYEAH_WAV:String = "vo_apprec_ohyeah_wav"; public static const VO_GRNT01_WAV:String = "vo_grnt01_wav"; public static const VO_GRNT03_WAV:String = "vo_grnt03_wav"; public static const VO_GRNT04_WAV:String = "vo_grnt04_wav"; public static const VO_GRNT02_WAV:String = "vo_grnt02_wav"; public static const VO_APPREC_OHHH_WAV:String = "vo_apprec_ohhh_wav"; public static const BUTTON_PRESS_SFX:String = "button_press_sfx"; public static const BIKE_MOTORCYCLE_STOPS_WAV:String = "bike_motorcycle_stops_wav"; public static const APPLAUSE_WAV:String = "applause_wav"; public static const BIKE_SUSPENSION_FORKS_02_WAV:String = "bike_suspension_forks_02_wav"; public static const VO_APPREC_WOO_WAV:String = "vo_apprec_woo_wav"; public static const VO_PRECRASH_YOUDEAD_WAV:String = "vo_precrash_youdead_wav"; public static const VO_NITRO_DO_IT_WAV:String = "vo_nitro_do_it_wav"; public static const BIKE_BIKE_BRAKE_PRESS_01_WAV:String = "bike_bike_brake_press_01_wav"; public static const VO_HURT_OOOTHATCANT_WAV:String = "vo_hurt_ooothatcant_wav"; public static const CHECKPOINT_SFX:String = "checkpoint_sfx"; public static const VO_PRECRASH_UHOH_WAV:String = "vo_precrash_uhoh_wav"; public static const NITRO_SFX:String = "nitro_sfx"; public static const BIKE_MOTORCYCLE_IDLE_WAV:String = "bike_motorcycle_idle_wav"; public static const VO_START_OKHEREWEGO_WAV:String = "vo_start_okherewego_wav"; public static const BIKE_MOTORCYCLE_MOVE_WAV:String = "bike_motorcycle_move_wav"; public static const BIKE_SPEED_UP_SHORT_WAV:String = "bike_speed_up_short_wav"; public static function get VO_GRUNT():String{ var _local1:int = (1 + int((Math.random() * 4))); return ((("vo_grnt0" + _local1) + "_wav")); } } }//package bikeChamp.core.sound
Section 43
//CreateLevelPopup (bikeChamp.core.userLevelSelection.CreateLevelPopup) package bikeChamp.core.userLevelSelection { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class CreateLevelPopup extends LayoutContainer { private var okBtn:LabelButton; private var cancelBtn:LabelButton; private var authorEmailLabel:Label; private var levelNameLabel:Label; private var _owner:UserLevelSelectionView; private var authorNameInput:TextInput; private var authorEmailInput:TextInput; private var levelNameInput:TextInput; private var authorNameLabel:Label; public function CreateLevelPopup(_arg1:UserLevelSelectionView){ setSize(640, 480); graphics.beginFill(0, 0.7); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); _owner = _arg1; levelNameLabel = new Label("Level Title"); addChildToLayout(levelNameLabel, {left:120, top:50}); levelNameInput = new TextInput(); levelNameInput.text = "My New Level"; levelNameInput.setSize(400, 30); addChildToLayout(levelNameInput, {left:120, top:80}); authorNameLabel = new Label("Author Name (Optional)"); addChildToLayout(authorNameLabel, {left:120, top:110}); authorNameInput = new TextInput(); authorNameInput.text = ""; authorNameInput.setSize(400, 30); addChildToLayout(authorNameInput, {left:120, top:140}); authorEmailLabel = new Label("Author Email (Optional)"); addChildToLayout(authorEmailLabel, {left:120, top:170}); authorEmailInput = new TextInput(); authorEmailInput.text = ""; authorEmailInput.setSize(400, 30); addChildToLayout(authorEmailInput, {left:120, top:200}); okBtn = new GameButton("OK"); okBtn.beacon = true; addChildToLayout(okBtn, {left:30, bottom:50}); cancelBtn = new GameButton("Cancel"); addChildToLayout(cancelBtn, {right:30, bottom:50}); addEventListener(MouseEvent.CLICK, onClickHandler); } private function onClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case okBtn: _owner.createLevel(levelNameInput.text, authorNameInput.text, authorEmailInput.text); break; case cancelBtn: _owner.removePopup(); break; }; } } }//package bikeChamp.core.userLevelSelection
Section 44
//DeleteLevelPopup (bikeChamp.core.userLevelSelection.DeleteLevelPopup) package bikeChamp.core.userLevelSelection { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class DeleteLevelPopup extends LayoutContainer { private var okBtn:LabelButton; private var cancelBtn:LabelButton; private var label:Label; private var _owner:UserLevelSelectionView; public function DeleteLevelPopup(_arg1:UserLevelSelectionView){ setSize(640, 480); graphics.beginFill(0, 0.7); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); _owner = _arg1; label = new Label("Delete Level?"); addChildToLayout(label, {horizontalCenter:0, top:180}); okBtn = new GameButton("OK"); addChildToLayout(okBtn, {left:30, bottom:180}); cancelBtn = new GameButton("Cancel"); addChildToLayout(cancelBtn, {right:30, bottom:180}); addEventListener(MouseEvent.CLICK, onClickHandler); } private function onClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case okBtn: _owner.deleteLevel(); break; case cancelBtn: _owner.removePopup(); break; }; } } }//package bikeChamp.core.userLevelSelection
Section 45
//ExportLevelPopup (bikeChamp.core.userLevelSelection.ExportLevelPopup) package bikeChamp.core.userLevelSelection { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import flash.text.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; import com.bigwigmedia.ui.styles.*; public class ExportLevelPopup extends LayoutContainer { private var okBtn:LabelButton; private var textArea:TextArea; private var _owner:UserLevelSelectionView; private var text:Text; public function ExportLevelPopup(_arg1:UserLevelSelectionView, _arg2:String){ setSize(640, 480); graphics.beginFill(0, 0.7); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); _owner = _arg1; text = new Text("CAREFULLY COPY ALL THE CODE BELOW,\nTHEN PASTE IN YOUR EMAIL CLIENT"); text.setStyle(AbstractComponentStyle.TEXT_FORMAT, new TextFormat(Managers.fontManager.getFontNameByID("Font_1"), 20, 0xFFFFFF, null, null, null, null, null, TextFormatAlign.CENTER)); text.setSize(640, 100); addChildToLayout(text, {horizontalCenter:0, top:20}); textArea = new TextArea(); textArea.setSize(400, 270); textArea.editable = true; textArea.text = _arg2; addChildToLayout(textArea, {horizontalCenter:0, top:90}); okBtn = new GameButton("OK"); okBtn.beacon = true; addChildToLayout(okBtn, {horizontalCenter:0, bottom:50}); addEventListener(MouseEvent.CLICK, onClickHandler); } private function onClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case okBtn: _owner.removePopup(); break; }; } } }//package bikeChamp.core.userLevelSelection
Section 46
//ImportLevelPopup (bikeChamp.core.userLevelSelection.ImportLevelPopup) package bikeChamp.core.userLevelSelection { import bikeChamp.core.game.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class ImportLevelPopup extends LayoutContainer { private var okBtn:LabelButton; private var cancelBtn:LabelButton; private var label:Label; private var textArea:TextArea; private var _owner:UserLevelSelectionView; public function ImportLevelPopup(_arg1:UserLevelSelectionView){ setSize(640, 480); graphics.beginFill(0, 0.7); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); _owner = _arg1; label = new Label("ENTER YOUR CODE:"); addChildToLayout(label, {horizontalCenter:0, top:50}); textArea = new TextArea(); textArea.setSize(400, 270); textArea.editable = true; addChildToLayout(textArea, {horizontalCenter:0, top:90}); okBtn = new GameButton("OK"); okBtn.beacon = true; addChildToLayout(okBtn, {left:30, bottom:50}); cancelBtn = new GameButton("Cancel"); addChildToLayout(cancelBtn, {right:30, bottom:50}); addEventListener(MouseEvent.CLICK, onClickHandler); } private function onClickHandler(_arg1:MouseEvent):void{ var _local2:Boolean; switch (_arg1.target){ case okBtn: _local2 = GameModel.importLevelCode(textArea.text); if (_local2){ _owner.levelImported(); _owner.removePopup(); } else { textArea.text = "Seems your code is wrong."; }; break; case cancelBtn: _owner.removePopup(); break; }; } } }//package bikeChamp.core.userLevelSelection
Section 47
//LevelsList (bikeChamp.core.userLevelSelection.LevelsList) package bikeChamp.core.userLevelSelection { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; import com.bigwigmedia.ui.containers.*; public class LevelsList extends LayoutContainer { private var _items:Array; private var _scrollBar:VScrollBar; private var _mask:Sprite; private var _levelInfoList:Array; private var _selectedIndex:int;// = -1 private var _scrollOffset:int;// = 0 public static const ITEM_HEIGHT:Number = 40; public static const WIDTH:Number = 400; public static const HEIGHT:Number = 400; public static const NUM_ITEMS_PER_PAGE:int = 10; public function LevelsList(){ _items = []; super(); setSize(WIDTH, HEIGHT); _mask = new Sprite(); _mask.graphics.beginFill(0xFFFFFF, 0.2); _mask.graphics.drawRect(0, 0, (WIDTH + 10), (HEIGHT + 60)); _mask.graphics.endFill(); this.mask = _mask; _scrollBar = new VScrollBar(); addChildToLayout(_scrollBar, {top:0, right:0, percentHeight:100}); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler); _scrollBar.addEventListener(ScrollEvent.SCROLL, onScrollHandler); } public function isLevelCompleted():Boolean{ var _local1:UserLevelInfo = _levelInfoList[_selectedIndex]; return (((_local1) && (_local1.completed))); } public function levelTimeString():String{ var _local1:UserLevelInfo = _levelInfoList[_selectedIndex]; return ((_local1) ? _local1.timeString : null); } private function onScrollHandler(_arg1:ScrollEvent):void{ _scrollOffset = int(_arg1.position); showLevels(); } override public function dispose():void{ var _local1:ListItem; for each (_local1 in _items) { removeChild(_local1); _local1.dispose(); }; super.dispose(); } public function rebuildLevels(_arg1:Array):void{ _levelInfoList = _arg1.slice(); _scrollOffset = 0; var _local2:int = _levelInfoList.length; _scrollBar.setScrollProperties(0, ((_local2 <= NUM_ITEMS_PER_PAGE)) ? 0 : (_local2 - NUM_ITEMS_PER_PAGE), NUM_ITEMS_PER_PAGE); _scrollBar.scrollPosition = 0; showLevels(); } private function showLevels():void{ var _local1:ListItem; var _local2:Number; var _local3:int; var _local4:int; var _local5:int; var _local6:UserLevelInfo; _selectedIndex = -1; for each (_local1 in _items) { removeChild(_local1); _local1.dispose(); }; _items = []; _local2 = 0; _local3 = _levelInfoList.length; _local4 = Math.min(_local3, NUM_ITEMS_PER_PAGE); _local5 = 0; while (_local5 < _local4) { _local6 = _levelInfoList[(_local5 + _scrollOffset)]; _local1 = new ListItem(_local6.name, (_local5 + _scrollOffset), (((!(_local6.imported)) && (_local6.completed))) ? 0xFF00 : 0xFFFFFF); _local1.y = _local2; _local2 = (_local2 + ITEM_HEIGHT); addChildAt(_local1, 0); _items.push(_local1); _local5++; }; } public function isLevelImported():Boolean{ var _local1:UserLevelInfo = _levelInfoList[_selectedIndex]; return (((_local1) && (_local1.imported))); } public function get selectedIndex():int{ return (_selectedIndex); } private function onMouseDownHandler(_arg1:MouseEvent):void{ var _local3:int; var _local4:int; var _local5:ListItem; var _local2:ListItem = (_arg1.target as ListItem); if (_local2){ _local3 = _items.length; _local4 = 0; while (_local4 < _local3) { _local5 = _items[_local4]; if (_local5 != _local2){ _local5.selected = false; } else { _local5.selected = true; _selectedIndex = _local5.index; }; _local4++; }; dispatchEvent(new Event("item_mouse_down")); }; } } }//package bikeChamp.core.userLevelSelection
Section 48
//ListItem (bikeChamp.core.userLevelSelection.ListItem) package bikeChamp.core.userLevelSelection { import flash.display.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import flash.text.*; import com.bigwigmedia.core.*; import com.bigwigmedia.ui.styles.*; public class ListItem extends Sprite implements IDisposable { private var label:Label; private var _index:int; public function ListItem(_arg1:String, _arg2:int, _arg3:uint){ label = new Label(_arg1); label.setStyle(AbstractComponentStyle.TEXT_FORMAT, new TextFormat(Managers.fontManager.getFontNameByID("Font_1"), 20, _arg3)); addChild(label); selected = false; _index = _arg2; } public function get index():int{ return (_index); } public function set selected(_arg1:Boolean):void{ graphics.clear(); graphics.beginFill(0xFFFFFF, (_arg1) ? 0.5 : 0); graphics.drawRect(0, 0, (LevelsList.WIDTH - 14), LevelsList.ITEM_HEIGHT); graphics.endFill(); } public function dispose():void{ label.dispose(); } } }//package bikeChamp.core.userLevelSelection
Section 49
//MessagePopup (bikeChamp.core.userLevelSelection.MessagePopup) package bikeChamp.core.userLevelSelection { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class MessagePopup extends LayoutContainer { private var okBtn:LabelButton; private var label:Label; private var _owner:UserLevelSelectionView; public function MessagePopup(_arg1:UserLevelSelectionView, _arg2:String){ setSize(640, 480); graphics.beginFill(0, 0.7); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); _owner = _arg1; label = new Label(_arg2); addChildToLayout(label, {horizontalCenter:0, top:180}); okBtn = new GameButton("OK"); okBtn.beacon = true; addChildToLayout(okBtn, {horizontalCenter:0, bottom:180}); addEventListener(MouseEvent.CLICK, onClickHandler); } private function onClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case okBtn: _owner.removePopup(); break; }; } override public function dispose():void{ _owner = null; super.dispose(); } } }//package bikeChamp.core.userLevelSelection
Section 50
//UserLevelInfo (bikeChamp.core.userLevelSelection.UserLevelInfo) package bikeChamp.core.userLevelSelection { public class UserLevelInfo { private var _imported:Boolean; private var _name:String; private var _completed:Boolean; private var _timeString:String; public function UserLevelInfo(_arg1:String, _arg2:Boolean, _arg3:Boolean, _arg4:String){ _name = _arg1; _completed = _arg2; _imported = _arg3; _timeString = _arg4; } public function get imported():Boolean{ return (_imported); } public function get name():String{ return (_name); } public function get completed():Boolean{ return (_completed); } public function get timeString():String{ return (_timeString); } } }//package bikeChamp.core.userLevelSelection
Section 51
//UserLevelSelectionController (bikeChamp.core.userLevelSelection.UserLevelSelectionController) package bikeChamp.core.userLevelSelection { import bikeChamp.core.events.*; import flash.display.*; import bikeChamp.core.game.*; import flash.events.*; import bikeChamp.core.main.*; import bikeChamp.core.*; public class UserLevelSelectionController extends EventDispatcher implements IController { private var _view:UserLevelSelectionView; public function UserLevelSelectionController(){ _view = new UserLevelSelectionView(this); } public function playLevel(_arg1:int):void{ GameModel.setSelectedLevel(_arg1, true); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.TEST_USER_LEVEL)); } public function get view():DisplayObject{ return (_view); } public function editLevel(_arg1:int):void{ GameModel.setSelectedLevel(_arg1, true); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_LEVEL_EDITOR)); } public function gotoMainMenu():void{ dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SHOW_MAIN_MENU)); } public function dispose():void{ _view.dispose(); _view = null; } } }//package bikeChamp.core.userLevelSelection
Section 52
//UserLevelSelectionView (bikeChamp.core.userLevelSelection.UserLevelSelectionView) package bikeChamp.core.userLevelSelection { import bikeChamp.core.game.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import bikeChamp.levelEditor.controls.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; import bikeChamp.utils.*; public class UserLevelSelectionView extends LayoutContainer implements IPopupOwner { private var _createBtn:LabelButton; private var _levelEditorLabel:Label; private var _mainMenuBtn:LabelButton; private var _playBtn:LabelButton; private var _levelsList:LevelsList; private var _vBox:VBox; private var _levelTimeValueLabel:Label; private var _loadBtn:LabelButton; private var _helpBtn:IconicButton; private var _levelTimeLabel:Label; private var _shareBtn:LabelButton; private var _popup:AbstractComponent; private var _deleteBtn:LabelButton; private var _editBtn:LabelButton; private var _controller:UserLevelSelectionController; public function UserLevelSelectionView(_arg1:UserLevelSelectionController){ setSize(640, 480); _controller = _arg1; _levelEditorLabel = new Label("LEVEL EDITOR"); addChildToLayout(_levelEditorLabel, {top:10, horizontalCenter:0}); _vBox = new VBox(); _vBox.gap = 5; _vBox.setSize(200, 400); _levelTimeLabel = new Label("Best Time:"); _vBox.addChildToLayout(_levelTimeLabel, {horizontalCenter:0}); _levelTimeValueLabel = new Label("--:--:--"); _vBox.addChildToLayout(_levelTimeValueLabel, {horizontalCenter:0}); _playBtn = new LabelButton("Play"); _playBtn.beacon = true; _vBox.addChildToLayout(_playBtn, {horizontalCenter:0}); _editBtn = new LabelButton("Edit"); _vBox.addChildToLayout(_editBtn, {horizontalCenter:0}); _createBtn = new LabelButton("Create New Level"); _vBox.addChildToLayout(_createBtn, {horizontalCenter:0}); _deleteBtn = new LabelButton("Delete"); _vBox.addChildToLayout(_deleteBtn, {horizontalCenter:0}); _loadBtn = new LabelButton("Load"); _vBox.addChildToLayout(_loadBtn, {horizontalCenter:0}); _shareBtn = new LabelButton("Send To Friends"); _vBox.addChildToLayout(_shareBtn, {horizontalCenter:0}); addChildToLayout(_vBox, {verticalCenter:0, right:10}); _helpBtn = new IconicButton(help_icon); addChildToLayout(_helpBtn, {top:10, right:10}); _mainMenuBtn = new LabelButton("Main Menu"); addChildToLayout(_mainMenuBtn, {bottom:10, horizontalCenter:0}); _levelsList = new LevelsList(); _levelsList.addEventListener("item_mouse_down", onLevelItemDownHandler); addChildToLayout(_levelsList, {verticalCenter:0, left:10}); showLevels(); addEventListener(MouseEvent.CLICK, onMouseClickHandler); } public function removePopup():void{ if (_popup){ removeChild(_popup); _popup.dispose(); _popup = null; }; } private function onLevelItemDownHandler(_arg1:Event):void{ _levelTimeValueLabel.text = _levelsList.levelTimeString(); } private function showLevels():void{ var _local3:XML; var _local4:String; var _local1:XML = new XML(Managers.soManager.getValue("user_levels")); var _local2:Array = []; for each (_local3 in _local1.level) { _local4 = ((_local3.@name == "")) ? ("Level " + _local3.childIndex()) : _local3.@name; if (_local3.hasOwnProperty("@author")){ _local4 = (_local4 + ((_local3.@author == "")) ? "" : (" By " + _local3.@author)); }; if (_local3.hasOwnProperty("@email")){ _local4 = (_local4 + ((_local3.@email == "")) ? "" : ((" (" + _local3.@email) + ")")); }; _local2.push(new UserLevelInfo(_local4, ((_local3.hasOwnProperty("@completed")) && ((_local3.@completed == "true"))), ((_local3.hasOwnProperty("@imported")) && ((_local3.@imported == "true"))), (_local3.hasOwnProperty("@time")) ? StringUtil.millisecondsToString(int(_local3.@time)) : "--:--:--")); }; _levelsList.rebuildLevels(_local2); if (_levelsList.selectedIndex == -1){ _levelTimeValueLabel.text = "--:--:--"; }; } private function showMessagePopup(_arg1:String):void{ _popup = new MessagePopup(this, _arg1); addChild(_popup); } public function deleteLevel():void{ var _local1:int = _levelsList.selectedIndex; var _local2:XML = new XML(Managers.soManager.getValue("user_levels")); delete _local2.level[_local1]; Managers.soManager.setValue("user_levels", _local2.toXMLString()); removePopup(); showLevels(); } override public function dispose():void{ removePopup(); super.dispose(); } private function onMouseClickHandler(_arg1:MouseEvent):void{ var _local3:String; var _local2:int = _levelsList.selectedIndex; switch (_arg1.target){ case _helpBtn: _popup = new HelpPopup(this); addChild(_popup); break; case _createBtn: _popup = new CreateLevelPopup(this); addChild(_popup); break; case _mainMenuBtn: _controller.gotoMainMenu(); break; case _playBtn: if (_local2 != -1){ _controller.playLevel(_levelsList.selectedIndex); } else { showMessagePopup("Select level from the list."); }; break; case _editBtn: if (_local2 != -1){ if (_levelsList.isLevelImported()){ showMessagePopup("You can't edit levels created by another user."); } else { _controller.editLevel(_levelsList.selectedIndex); }; } else { showMessagePopup("Select level from the list."); }; break; case _deleteBtn: if (_local2 != -1){ _popup = new DeleteLevelPopup(this); addChild(_popup); } else { showMessagePopup("Select level from the list."); }; break; case _shareBtn: if (_local2 != -1){ if (_levelsList.isLevelImported()){ showMessagePopup("You can't share levels created by by another user."); } else { if (!_levelsList.isLevelCompleted()){ showMessagePopup("You should play and complete level to get the code."); } else { _local3 = GameModel.getExportLevelCode(_local2); _popup = new ExportLevelPopup(this, _local3); addChild(_popup); }; }; } else { showMessagePopup("Select level from the list."); }; break; case _loadBtn: _popup = new ImportLevelPopup(this); addChild(_popup); break; }; } public function createLevel(_arg1:String, _arg2:String, _arg3:String):void{ var _local4:XML = new XML((((((("<level uid=\"0\" completed=\"false\" name=\"" + ??esc_xattr ) + "\" author=\"") + ??esc_xattr ) + "\" email=\"") + ??esc_xattr ) + "\"/>")); var _local5:XML = new XML(Managers.soManager.getValue("user_levels")); var _local6:int = _local5.level.length(); _local5.appendChild(_local4); Managers.soManager.setValue("user_levels", _local5.toXMLString()); _controller.editLevel(_local6); } public function levelImported():void{ showLevels(); } } }//package bikeChamp.core.userLevelSelection
Section 53
//IController (bikeChamp.core.IController) package bikeChamp.core { import flash.display.*; import flash.events.*; import com.bigwigmedia.core.*; public interface IController extends IEventDispatcher, IDisposable { function get view():DisplayObject; } }//package bikeChamp.core
Section 54
//BaseContextMenuControl (bikeChamp.levelEditor.controls.BaseContextMenuControl) package bikeChamp.levelEditor.controls { import flash.events.*; import bikeChamp.levelEditor.gameObjects.*; import flash.ui.*; public class BaseContextMenuControl implements IContextMenuControl { private var sendBackwardItem:ContextMenuItem; private var bringForwardItem:ContextMenuItem; private var _showPropertiesItems:Boolean; private var propertiesItem:ContextMenuItem; private var lockItem:ContextMenuItem; private var bringToFrontItem:ContextMenuItem; private var _showArrangeItems:Boolean; private var sendToBacktem:ContextMenuItem; protected var _owner:GameObjectSprite; protected var _menu:ContextMenu; public function BaseContextMenuControl(_arg1:GameObjectSprite, _arg2:Boolean=true, _arg3:Boolean=true){ _owner = _arg1; _showArrangeItems = _arg2; _showPropertiesItems = _arg3; configureMenu(); } private function onMenuItemSelectHandler(_arg1:ContextMenuEvent):void{ switch (_arg1.target){ case bringToFrontItem: _owner.arrange(100000); break; case bringForwardItem: _owner.arrange(1); break; case sendBackwardItem: _owner.arrange(-1); break; case sendToBacktem: _owner.arrange(-100000); break; case lockItem: _owner.locked = !(_owner.locked); break; case propertiesItem: _owner.setupProperties(); break; }; } public function get menu():ContextMenu{ return (_menu); } protected function configureMenu():void{ _menu = new ContextMenu(); _menu.hideBuiltInItems(); if (_showArrangeItems){ bringToFrontItem = new ContextMenuItem("Bring to Front"); bringForwardItem = new ContextMenuItem("Bring Forward"); sendBackwardItem = new ContextMenuItem("Send Backward"); sendToBacktem = new ContextMenuItem("Send to Back"); bringToFrontItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); bringForwardItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); sendBackwardItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); sendToBacktem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); _menu.customItems.push(bringToFrontItem); _menu.customItems.push(bringForwardItem); _menu.customItems.push(sendBackwardItem); _menu.customItems.push(sendToBacktem); }; if (_showPropertiesItems){ propertiesItem = new ContextMenuItem("Properties", true); propertiesItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); _menu.customItems.push(propertiesItem); }; lockItem = new ContextMenuItem("Lock", true); lockItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelectHandler); _menu.customItems.push(lockItem); _menu.addEventListener(ContextMenuEvent.MENU_SELECT, onMenuSelectHandler); } private function onMenuSelectHandler(_arg1:ContextMenuEvent):void{ lockItem.caption = (_owner.locked) ? "Unlock" : "Lock"; if (_showArrangeItems){ bringToFrontItem.visible = (bringForwardItem.visible = (sendBackwardItem.visible = (sendToBacktem.visible = !(_owner.locked)))); }; if (_showPropertiesItems){ propertiesItem.visible = !(_owner.locked); }; } } }//package bikeChamp.levelEditor.controls
Section 55
//HelpPopup (bikeChamp.levelEditor.controls.HelpPopup) package bikeChamp.levelEditor.controls { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class HelpPopup extends LayoutContainer { private var nextPageBtn:LabelButton; private var _owner:IPopupOwner; private var closeBtn:LabelButton; private var currentPage:int;// = 0 private var pagesClip:MovieClip; private var prevPageBtn:LabelButton; private var numPages:int; public function HelpPopup(_arg1:IPopupOwner){ setSize(640, 480); _owner = _arg1; graphics.beginFill(0, 1); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); pagesClip = new EditorHelpPages(); pagesClip.gotoAndStop(1); addChild(pagesClip); numPages = pagesClip.totalFrames; prevPageBtn = new LabelButton("Previous Page"); prevPageBtn.visible = false; addChildToLayout(prevPageBtn, {bottom:5, left:20}); nextPageBtn = new LabelButton("Next Page"); addChildToLayout(nextPageBtn, {bottom:5, right:20}); closeBtn = new LabelButton("Close"); closeBtn.beacon = true; addChildToLayout(closeBtn, {bottom:5, horizontalCenter:0}); addEventListener(MouseEvent.CLICK, onClickHandler); } private function navigatePages(_arg1:int):void{ currentPage = (currentPage + _arg1); if (currentPage < 0){ currentPage = 0; } else { if (currentPage > (numPages - 1)){ currentPage = (numPages - 1); }; }; pagesClip.gotoAndStop((currentPage + 1)); prevPageBtn.visible = !((currentPage == 0)); nextPageBtn.visible = !((currentPage == (numPages - 1))); } private function onClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case prevPageBtn: navigatePages(-1); break; case nextPageBtn: navigatePages(1); break; case closeBtn: _owner.removePopup(); break; }; } override public function dispose():void{ _owner = null; super.dispose(); } } }//package bikeChamp.levelEditor.controls
Section 56
//IContextMenuControl (bikeChamp.levelEditor.controls.IContextMenuControl) package bikeChamp.levelEditor.controls { import flash.ui.*; public interface IContextMenuControl { function get menu():ContextMenu; } }//package bikeChamp.levelEditor.controls
Section 57
//ItemPropertyInspector (bikeChamp.levelEditor.controls.ItemPropertyInspector) package bikeChamp.levelEditor.controls { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.levelEditor.events.*; import bikeChamp.levelEditor.gameObjects.*; import com.bigwigmedia.events.*; import com.bigwigmedia.utils.*; import com.bigwigmedia.ui.sliderClasses.*; public class ItemPropertyInspector extends PropertyInspectorBase { private var isStaticCheckBox:CheckBox; private var restitutionSlider:Slider; private var physicsEnabledCheckBox:CheckBox; private var densitySlider:Slider; private var densityValueLabel:Label; private var restitutionValueLabel:Label; private var owner:SurfaceSprite; private var frictionSlider:Slider; private var frictionValueLabel:Label; public function ItemPropertyInspector(_arg1:SurfaceSprite){ this.owner = _arg1; var _local2:Label = new Label("Density"); addChildToLayout(_local2, {left:200, top:50}); densityValueLabel = new Label(NumberFormatter.formatPrecision(_arg1.density, ".", 2)); addChildToLayout(densityValueLabel, {right:200, top:50}); densitySlider = new HSlider(); densitySlider.setSize(240, 4); densitySlider.minimum = 0.2; densitySlider.maximum = 1.5; densitySlider.snapInterval = 0.1; densitySlider.value = _arg1.density; addChildToLayout(densitySlider, {horizontalCenter:0, top:90}); var _local3:Label = new Label("Friction"); addChildToLayout(_local3, {left:200, top:110}); frictionValueLabel = new Label(NumberFormatter.formatPrecision(_arg1.friction, ".", 2)); addChildToLayout(frictionValueLabel, {right:200, top:110}); frictionSlider = new HSlider(); frictionSlider.setSize(240, 4); frictionSlider.minimum = 0; frictionSlider.maximum = 1; frictionSlider.snapInterval = 0.1; frictionSlider.value = _arg1.friction; addChildToLayout(frictionSlider, {horizontalCenter:0, top:150}); var _local4:Label = new Label("Restitution"); addChildToLayout(_local4, {left:200, top:170}); restitutionValueLabel = new Label(NumberFormatter.formatPrecision(_arg1.restitution, ".", 2)); addChildToLayout(restitutionValueLabel, {right:200, top:170}); restitutionSlider = new HSlider(); restitutionSlider.setSize(240, 4); restitutionSlider.minimum = 0; restitutionSlider.maximum = 1; restitutionSlider.snapInterval = 0.1; restitutionSlider.value = _arg1.restitution; addChildToLayout(restitutionSlider, {horizontalCenter:0, top:210}); physicsEnabledCheckBox = new CheckBox("Physics enabled"); physicsEnabledCheckBox.selected = _arg1.physicsEnabled; addChildToLayout(physicsEnabledCheckBox, {horizontalCenter:0, top:250}); isStaticCheckBox = new CheckBox("Static"); isStaticCheckBox.selected = _arg1.isStatic; addChildToLayout(isStaticCheckBox, {horizontalCenter:0, top:290}); addEventListener(SliderEvent.CHANGE, onSliderChangeHandler); addEventListener(MouseEvent.CLICK, onMouseClickHandler); } private function onSliderChangeHandler(_arg1:SliderEvent):void{ var _local2:String = NumberFormatter.formatPrecision(_arg1.value, ".", 2); switch (_arg1.target){ case densitySlider: densityValueLabel.text = _local2; break; case frictionSlider: frictionValueLabel.text = _local2; break; case restitutionSlider: restitutionValueLabel.text = _local2; break; }; } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case okBtn: owner.density = densitySlider.value; owner.friction = frictionSlider.value; owner.restitution = restitutionSlider.value; owner.isStatic = isStaticCheckBox.selected; owner.physicsEnabled = physicsEnabledCheckBox.selected; dispatchEvent(new PropertyInspectorEvent(PropertyInspectorEvent.CLOSE)); break; case cancelBtn: dispatchEvent(new PropertyInspectorEvent(PropertyInspectorEvent.CLOSE)); break; }; } override public function dispose():void{ owner = null; super.dispose(); } } }//package bikeChamp.levelEditor.controls
Section 58
//LevelEditorHUD (bikeChamp.levelEditor.controls.LevelEditorHUD) package bikeChamp.levelEditor.controls { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import bikeChamp.levelEditor.events.*; import bikeChamp.levelEditor.gameObjects.*; import com.bigwigmedia.events.*; import flash.geom.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; import com.bigwigmedia.application.*; public class LevelEditorHUD extends LayoutContainer implements IPopupOwner { private var itemsListPane:ListPane; private var _selectedToolParameter:String; private var specialsListPaneBtn:LevelEditorIconicButton; private var specialsListPane:ListPane; private var popup:AbstractComponent; private var vScrollBar:VScrollBar; private var _selectedTool:String;// = "TOOL_TRANSFORM" private var _lastSelectedJoint:String; private var transformBtn:LevelEditorIconicButton; private var helpBtn:LevelEditorIconicButton; private var _lastSelectedItem:String; private var exitBtn:LevelEditorIconicButton; private var _lastSelectedSpecial:String; private var jointsListPaneBtn:LevelEditorIconicButton; private var jointsListPane:ListPane; private var testLevelBtn:LevelEditorIconicButton; private var vBox:VBox; private var itemsListPaneBtn:LevelEditorIconicButton; private var hScrollBar:HScrollBar; public static const TOOL_SPECIALS:String = "TOOL_SPECIALS"; public static const TOOL_TRANSFORM:String = "TOOL_TRANSFORM"; public static const CHECK_POINT:String = "check_point"; public static const LINE_SCROLL_SIZE:Number = 25; public static const TOOL_JOINTS:String = "TOOL_JOINTS"; public static const JOINT_DISTANCE:String = "distance_joint"; public static const TOOL_ITEMS:String = "TOOL_ITEMS"; public static const JOINT_REVOLUTE:String = "revolute_joint"; public static const NITRO:String = "nitro"; public function LevelEditorHUD(){ setSize(640, 480); hScrollBar = new HScrollBar(); hScrollBar.move(0, (480 - 14)); hScrollBar.setSize((640 - 14), 14); hScrollBar.setScrollProperties(-640, 640, 640); hScrollBar.lineScrollSize = LINE_SCROLL_SIZE; addChild(hScrollBar); vScrollBar = new VScrollBar(); vScrollBar.move((640 - 14), 0); vScrollBar.setSize(14, (480 - 14)); vScrollBar.setScrollProperties(-480, 480, 480); vScrollBar.lineScrollSize = LINE_SCROLL_SIZE; addChild(vScrollBar); var _local1:Array = Managers.configManager.getSurfaceNamesList(); _selectedToolParameter = _local1[0]; _lastSelectedItem = _local1[0]; _lastSelectedJoint = JOINT_DISTANCE; _lastSelectedSpecial = CHECK_POINT; vBox = new VBox(); vBox.gap = 5; transformBtn = new LevelEditorIconicButton("transform_icon"); vBox.addChildToLayout(transformBtn); itemsListPaneBtn = new LevelEditorIconicButton((_selectedToolParameter + "_icon"), _selectedToolParameter); vBox.addChildToLayout(itemsListPaneBtn); jointsListPaneBtn = new LevelEditorIconicButton((JOINT_DISTANCE + "_icon"), JOINT_DISTANCE); vBox.addChildToLayout(jointsListPaneBtn); specialsListPaneBtn = new LevelEditorIconicButton((CHECK_POINT + "_icon")); vBox.addChildToLayout(specialsListPaneBtn); helpBtn = new LevelEditorIconicButton("help_icon"); vBox.addChildToLayout(helpBtn); testLevelBtn = new LevelEditorIconicButton("test_icon"); vBox.addChildToLayout(testLevelBtn); exitBtn = new LevelEditorIconicButton("exit_icon"); vBox.addChildToLayout(exitBtn); addChildToLayout(vBox, {top:5, left:5}); itemsListPane = new ListPane(_local1); itemsListPane.visible = false; addChild(itemsListPane); jointsListPane = new ListPane([JOINT_DISTANCE, JOINT_REVOLUTE]); jointsListPane.visible = false; addChild(jointsListPane); specialsListPane = new ListPane([CHECK_POINT, NITRO]); specialsListPane.visible = false; addChild(specialsListPane); this.addEventListener(MouseEvent.CLICK, onMouseClickHandler); this.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler); this.addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler); this.addEventListener(ScrollEvent.SCROLL, onScrollHandler); } public function removePopup():void{ if (popup){ removeChild(popup); popup.removeEventListener(PropertyInspectorEvent.CLOSE, onPropertiesInspectorCloseHandler); popup.dispose(); popup = null; }; } public function get selectedToolParameter():String{ return (_selectedToolParameter); } private function onScrollHandler(_arg1:ScrollEvent):void{ switch (_arg1.target){ case vScrollBar: dispatchEvent(new HUDEvent(HUDEvent.SCROLL_VERTICAL, _arg1.position)); break; case hScrollBar: dispatchEvent(new HUDEvent(HUDEvent.SCROLL_HORIZONTAL, _arg1.position)); break; }; } override public function dispose():void{ removePopup(); super.dispose(); } private function selectTool(_arg1:String):void{ if (_selectedTool == _arg1){ return; }; _selectedTool = _arg1; dispatchEvent(new HUDEvent(HUDEvent.TOOL_SELECT)); } public function get hasPopup():Boolean{ return (((((((!((popup == null))) || (itemsListPane.visible))) || (jointsListPane.visible))) || (specialsListPane.visible))); } public function showPropertiesInspector(_arg1:GameObjectSprite):void{ popup = _arg1.getPropertyInspector(); popup.addEventListener(PropertyInspectorEvent.CLOSE, onPropertiesInspectorCloseHandler); addChild(popup); } private function onMouseClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case testLevelBtn: dispatchEvent(new HUDEvent(HUDEvent.TEST_LEVEL)); break; case exitBtn: dispatchEvent(new HUDEvent(HUDEvent.EXIT)); break; case helpBtn: popup = new HelpPopup(this); addChild(popup); break; }; } private function onMouseUpHandler(_arg1:MouseEvent):void{ var _local3:String; var _local2:DisplayObjectContainer = (_arg1.target.parent as ListPane); if (_local2){ _local2.visible = false; if ((_arg1.target is LevelEditorIconicButton) == false){ return; }; _local3 = LevelEditorIconicButton(_arg1.target).itemName; switch (_local2){ case itemsListPane: _lastSelectedItem = _local3; itemsListPaneBtn.setNewIcon(_local3); break; case jointsListPane: _lastSelectedJoint = _local3; jointsListPaneBtn.upIcon = ApplicationGlobals.application.getClassByName((_local3 + "_icon")); break; case specialsListPane: _lastSelectedSpecial = _local3; specialsListPaneBtn.upIcon = ApplicationGlobals.application.getClassByName((_local3 + "_icon")); break; }; _selectedToolParameter = _local3; }; } public function get selectedTool():String{ return (_selectedTool); } public function updateScrollBars(_arg1:Rectangle):void{ hScrollBar.setScrollProperties((_arg1.x - 640), _arg1.right, 640); vScrollBar.setScrollProperties((_arg1.y - 480), _arg1.bottom, 480); } public function showWrongLevelPopup():void{ popup = new WrongLevelPopup(this); addChild(popup); } private function onMouseDownHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case itemsListPaneBtn: if (_selectedTool == LevelEditorHUD.TOOL_ITEMS){ itemsListPane.visible = true; } else { selectTool(LevelEditorHUD.TOOL_ITEMS); _selectedToolParameter = _lastSelectedItem; }; break; case jointsListPaneBtn: if (_selectedTool == LevelEditorHUD.TOOL_JOINTS){ jointsListPane.visible = true; } else { selectTool(LevelEditorHUD.TOOL_JOINTS); _selectedToolParameter = _lastSelectedJoint; }; break; case specialsListPaneBtn: if (_selectedTool == LevelEditorHUD.TOOL_SPECIALS){ specialsListPane.visible = true; } else { selectTool(LevelEditorHUD.TOOL_SPECIALS); _selectedToolParameter = _lastSelectedSpecial; }; break; case transformBtn: selectTool(LevelEditorHUD.TOOL_TRANSFORM); break; }; _arg1.stopImmediatePropagation(); } private function onPropertiesInspectorCloseHandler(_arg1:PropertyInspectorEvent):void{ removePopup(); } } }//package bikeChamp.levelEditor.controls
Section 59
//LevelEditorIconicButton (bikeChamp.levelEditor.controls.LevelEditorIconicButton) package bikeChamp.levelEditor.controls { import flash.display.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import flash.geom.*; import com.bigwigmedia.application.*; public class LevelEditorIconicButton extends IconicButton { private var _icon:String; private var _itemName:String; public static const WIDTH:int = 36; public static const HEIGHT:int = 36; public static const ICON_PADDING:int = 6; public function LevelEditorIconicButton(_arg1:String, _arg2:String=null){ var _local4:BitmapData; var _local5:BitmapData; var _local6:Matrix; var _local7:Number; _icon = _arg1; _itemName = _arg2; var _local3:Object = ApplicationGlobals.application.getClassByName(_icon); if (((!(_local3)) && (_arg2))){ _local4 = Managers.assetManager.getSurfaceTexture(_arg2); _local5 = new empty_icon(0, 0); _local6 = new Matrix(); _local7 = Math.min(((WIDTH - ICON_PADDING) / _local4.width), ((HEIGHT - ICON_PADDING) / _local4.height)); _local6.scale(_local7, _local7); _local6.translate(((WIDTH - (_local4.width * _local7)) / 2), ((HEIGHT - (_local4.height * _local7)) / 2)); _local5.draw(_local4, _local6, null, null, null, true); _local3 = new Bitmap(_local5); }; super(_local3); } public function setNewIcon(_arg1:String):void{ var _local2:BitmapData = Managers.assetManager.getSurfaceTexture(_arg1); var _local3:BitmapData = new empty_icon(0, 0); var _local4:Matrix = new Matrix(); var _local5:Number = Math.min(((WIDTH - ICON_PADDING) / _local2.width), ((HEIGHT - ICON_PADDING) / _local2.height)); _local4.scale(_local5, _local5); _local4.translate(((WIDTH - (_local2.width * _local5)) / 2), ((HEIGHT - (_local2.height * _local5)) / 2)); _local3.draw(_local2, _local4, null, null, null, true); upIcon = new Bitmap(_local3); } public function get itemName():String{ return (_itemName); } } }//package bikeChamp.levelEditor.controls
Section 60
//ListPane (bikeChamp.levelEditor.controls.ListPane) package bikeChamp.levelEditor.controls { import flash.display.*; import com.bigwigmedia.ui.containers.*; import com.bigwigmedia.application.*; public class ListPane extends LayoutContainer { public static const MAX_COLUMNS:int = 15; public function ListPane(_arg1:Array){ var _local6:LevelEditorIconicButton; var _local7:int; var _local8:int; super(); setSize(640, 480); var _local2:Sprite = new Sprite(); var _local3:Graphics = _local2.graphics; _local3.lineStyle(); _local3.beginFill(0, 0.7); _local3.drawRect(0, 0, ApplicationGlobals.application.nominalWidth, ApplicationGlobals.application.nominalHeight); _local3.endFill(); addChild(_local2); var _local4:int = _arg1.length; var _local5:int; while (_local5 < _local4) { _local6 = new LevelEditorIconicButton((_arg1[_local5] + "_icon"), _arg1[_local5]); _local7 = int((_local5 / MAX_COLUMNS)); _local8 = (_local5 % MAX_COLUMNS); _local6.move((22 + (_local8 * (4 + LevelEditorIconicButton.WIDTH))), (6 + (_local7 * (4 + LevelEditorIconicButton.HEIGHT)))); addChild(_local6); _local5++; }; } } }//package bikeChamp.levelEditor.controls
Section 61
//PropertyInspectorBase (bikeChamp.levelEditor.controls.PropertyInspectorBase) package bikeChamp.levelEditor.controls { import flash.display.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.ui.containers.*; public class PropertyInspectorBase extends LayoutContainer { protected var okBtn:AbstractButton; protected var cancelBtn:AbstractButton; public function PropertyInspectorBase(){ setSize(640, 480); var _local1:Sprite = new Sprite(); var _local2:Graphics = _local1.graphics; _local2.lineStyle(); _local2.beginFill(0, 0.7); _local2.drawRect(0, 0, 640, 480); _local2.endFill(); addChild(_local1); okBtn = new LabelButton("OK"); addChildToLayout(okBtn, {left:200, bottom:50}); cancelBtn = new LabelButton("Cancel"); addChildToLayout(cancelBtn, {right:200, bottom:50}); } } }//package bikeChamp.levelEditor.controls
Section 62
//WrongLevelPopup (bikeChamp.levelEditor.controls.WrongLevelPopup) package bikeChamp.levelEditor.controls { import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.ui.*; import com.bigwigmedia.ui.containers.*; public class WrongLevelPopup extends LayoutContainer { private var okBtn:LabelButton; private var label:Label; private var _owner:LevelEditorHUD; public function WrongLevelPopup(_arg1:LevelEditorHUD){ setSize(640, 480); graphics.beginFill(0, 0.7); graphics.drawRect(0, 0, 640, 480); graphics.endFill(); _owner = _arg1; label = new Label("There must be at least two checkpoints on level."); addChildToLayout(label, {horizontalCenter:0, top:180}); okBtn = new GameButton("OK"); addChildToLayout(okBtn, {horizontalCenter:0, bottom:180}); addEventListener(MouseEvent.CLICK, onClickHandler); } private function onClickHandler(_arg1:MouseEvent):void{ switch (_arg1.target){ case okBtn: _owner.removePopup(); break; }; } override public function dispose():void{ _owner = null; super.dispose(); } } }//package bikeChamp.levelEditor.controls
Section 63
//GameObjectSpriteEvent (bikeChamp.levelEditor.events.GameObjectSpriteEvent) package bikeChamp.levelEditor.events { import flash.events.*; public class GameObjectSpriteEvent extends Event { private var _data:Object; public static const TRANSFORM:String = "TRANSFORM"; public static const UNLOCK:String = "UNLOCK"; public static const SETUP_PROPERTIES:String = "SETUP_PROPERTIES"; public static const LOCK:String = "LOCK"; public static const ARRANGE:String = "ARRANGE"; public function GameObjectSpriteEvent(_arg1:String, _arg2:Object=null){ super(_arg1, true); _data = _arg2; } public function get data():Object{ return (_data); } override public function clone():Event{ return (new GameObjectSpriteEvent(type, _data)); } } }//package bikeChamp.levelEditor.events
Section 64
//HUDEvent (bikeChamp.levelEditor.events.HUDEvent) package bikeChamp.levelEditor.events { import flash.events.*; public class HUDEvent extends Event { private var _data:Object; public static const TOOL_SELECT:String = "TOOL_SELECT"; public static const SCROLL_VERTICAL:String = "SCROLL_VERTICAL"; public static const LOAD_LEVEL:String = "LOAD_LEVEL"; public static const TEST_LEVEL:String = "TEST_LEVEL"; public static const SCROLL_HORIZONTAL:String = "SCROLL_HORIZONTAL"; public static const EXIT:String = "EXIT"; public function HUDEvent(_arg1:String, _arg2:Object=null){ super(_arg1); _data = _arg2; } public function get data():Object{ return (_data); } override public function clone():Event{ return (new HUDEvent(type, _data)); } } }//package bikeChamp.levelEditor.events
Section 65
//PropertyInspectorEvent (bikeChamp.levelEditor.events.PropertyInspectorEvent) package bikeChamp.levelEditor.events { import flash.events.*; public class PropertyInspectorEvent extends Event { public static const CLOSE:String = "CLOSE"; public function PropertyInspectorEvent(_arg1:String){ super(_arg1); } } }//package bikeChamp.levelEditor.events
Section 66
//CheckPointSprite (bikeChamp.levelEditor.gameObjects.CheckPointSprite) package bikeChamp.levelEditor.gameObjects { import com.bigwigmedia.ui.*; import flash.geom.*; import bikeChamp.levelEditor.controls.*; public class CheckPointSprite extends SpecialGameObject { private var indexLabel:Label; private var _indexNumber:int; private static var spritesList:Array = []; public function CheckPointSprite(){ super(new CheckPointClip()); indexLabel = new Label(); addChild(indexLabel); } override protected function getContextMenuControl():IContextMenuControl{ return (new BaseContextMenuControl(this, true, false)); } public function set indexNumber(_arg1:int):void{ _indexNumber = _arg1; indexLabel.text = String((_arg1 + 1)); } public function get indexNumber():int{ return (_indexNumber); } override public function getPropertiesXML():XML{ var _local1:Matrix = this.transform.matrix; var _local2:XML = new XML((((((("<item type=\"check_point\" index=\"" + ??esc_xattr ) + "\" x=\"") + ??esc_xattr ) + "\" y=\"") + ??esc_xattr ) + "\"/>")); return (_local2); } override public function dispose():void{ removeChild(indexLabel); indexLabel.dispose(); CheckPointSprite.unregisterSprite(this); super.dispose(); } public static function unregisterSprite(_arg1:GameObjectSprite):void{ spritesList.splice(spritesList.indexOf(_arg1), 1); var _local2:int = spritesList.length; var _local3:int; while (_local3 < _local2) { spritesList[_local3].indexNumber = _local3; _local3++; }; } public static function unregisterAllSprites():void{ spritesList = []; } public static function registerSprite(_arg1:GameObjectSprite):void{ CheckPointSprite(_arg1).indexNumber = spritesList.length; spritesList.push(_arg1); } } }//package bikeChamp.levelEditor.gameObjects
Section 67
//DistanceJointSprite (bikeChamp.levelEditor.gameObjects.DistanceJointSprite) package bikeChamp.levelEditor.gameObjects { public class DistanceJointSprite extends JointSprite { public function DistanceJointSprite(){ super(JointSprite.DISTANCE); } override public function getPropertiesXML():XML{ var _local1:XML = new XML((((((((("<distance_joint>\r\n\t\t\t\t" + (("<body_1 id=\"" + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t\t") + (("<body_2 id=\"" + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t\t") + (((("<point_1 x=\"" + ??esc_xattr ) + "\" y=\"") + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t\t") + (((("<point_2 x=\"" + ??esc_xattr ) + "\" y=\"") + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t</distance_joint>")); return (_local1); } } }//package bikeChamp.levelEditor.gameObjects
Section 68
//GameObjectSprite (bikeChamp.levelEditor.gameObjects.GameObjectSprite) package bikeChamp.levelEditor.gameObjects { import flash.display.*; import com.bigwigmedia.ui.*; import bikeChamp.levelEditor.events.*; import flash.geom.*; import flash.ui.*; import bikeChamp.levelEditor.controls.*; import com.bigwigmedia.core.*; import com.bigwigmedia.utils.*; public class GameObjectSprite extends Sprite implements IDisposable { private var _locked:Boolean;// = false private var _contextMenu:ContextMenu; private var _id:String; public static const KIND_SURFACE:String = "KIND_SURFACE"; public static const KIND_ITEM:String = "KIND_ITEM"; public static const KIND_JOINT:String = "KIND_JOINT"; public function GameObjectSprite(){ contextMenu = getContextMenu(); } public function get spriteRect():Rectangle{ return (null); } public function get id():String{ return (_id); } public function get kind():String{ throw (new Error("Method must be overriden in subclass.")); } public function arrange(_arg1:int):void{ dispatchEvent(new GameObjectSpriteEvent(GameObjectSpriteEvent.ARRANGE, _arg1)); } protected function getContextMenuControl():IContextMenuControl{ throw (new Error("Method must be overriden in subclass.")); } public function get locked():Boolean{ return (_locked); } public function getPropertyInspector():AbstractComponent{ throw (new Error("Method must be overriden in subclass.")); } public function getPropertiesXML():XML{ throw (new Error("Method must be overriden in subclass.")); } public function setupProperties():void{ dispatchEvent(new GameObjectSpriteEvent(GameObjectSpriteEvent.SETUP_PROPERTIES)); } public function set id(_arg1:String):void{ if (_id){ throw (new Error("Can't assign id more than once.")); }; _id = _arg1; } public function getContextMenu():ContextMenu{ var _local1:IContextMenuControl; if (!_contextMenu){ _local1 = getContextMenuControl(); _contextMenu = _local1.menu; }; return (_contextMenu); } override public function toString():String{ return (ObjectUtil.formatToString(this, "id")); } public function set locked(_arg1:Boolean):void{ _locked = _arg1; dispatchEvent(new GameObjectSpriteEvent((_locked) ? GameObjectSpriteEvent.LOCK : GameObjectSpriteEvent.UNLOCK)); } public function dispose():void{ } } }//package bikeChamp.levelEditor.gameObjects
Section 69
//JointHandleSprite (bikeChamp.levelEditor.gameObjects.JointHandleSprite) package bikeChamp.levelEditor.gameObjects { import flash.display.*; import flash.geom.*; import bikeChamp.levelEditor.controls.*; public class JointHandleSprite extends GameObjectSprite { private var _owner:JointSprite; public function JointHandleSprite(_arg1:String, _arg2:JointSprite){ _owner = _arg2; super(); this.mouseChildren = false; var _local3:Class = ((_arg1 == JointSprite.DISTANCE)) ? DistanceJointHandle : RevoluteJointHandle; var _local4:Sprite = new (_local3); addChild(_local4); } public function updateOnBodyTransform(_arg1:Point):void{ this.x = _arg1.x; this.y = _arg1.y; _owner.draw(); } override protected function getContextMenuControl():IContextMenuControl{ return (new BaseContextMenuControl(_owner, true, false)); } public function updateRelativeLocation():void{ var _local1:SurfaceSprite = SurfaceSprite(((_owner.handle_1 == this)) ? _owner.itemSprite_1 : _owner.itemSprite_2); _local1.updateJointHandleParams(this); _owner.draw(); } public function get owner():JointSprite{ return (_owner); } } }//package bikeChamp.levelEditor.gameObjects
Section 70
//JointSprite (bikeChamp.levelEditor.gameObjects.JointSprite) package bikeChamp.levelEditor.gameObjects { import flash.events.*; import flash.geom.*; import bikeChamp.levelEditor.controls.*; import com.bigwigmedia.utils.*; import com.bigwigmedia.application.*; public class JointSprite extends GameObjectSprite { protected var _itemSprite_1:SurfaceSprite; protected var _itemSprite_2:SurfaceSprite; private var _type:String; protected var _handle_1:JointHandleSprite; protected var _handle_2:JointHandleSprite; public static const DISTANCE:String = "DISTANCE"; public static const REVOLUTE:String = "REVOLUTE"; public function JointSprite(_arg1:String){ _type = _arg1; super(); } public function draw():void{ _draw(_handle_1, _handle_2); } override protected function getContextMenuControl():IContextMenuControl{ return (new BaseContextMenuControl(this, true, false)); } private function onMouseMoveHandler(_arg1:MouseEvent):void{ var _local2:Point = new Point(_arg1.stageX, _arg1.stageY); _local2 = this.globalToLocal(_local2); _draw(_handle_1, _local2); } override public function set locked(_arg1:Boolean):void{ super.locked = _arg1; _handle_1.locked = (_handle_2.locked = _arg1); } public function get handle_1():JointHandleSprite{ return (_handle_1); } public function startDrawing(_arg1:SurfaceSprite, _arg2:Number, _arg3:Number):void{ var _local4:Point; this.mouseEnabled = false; _itemSprite_1 = _arg1; _handle_1 = new JointHandleSprite(_type, this); _local4 = new Point(_arg2, _arg3); _local4 = this.globalToLocal(_local4); _handle_1.x = _local4.x; _handle_1.y = _local4.y; addChild(_handle_1); ApplicationGlobals.application.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); } override public function dispose():void{ ApplicationGlobals.application.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); _itemSprite_1.removeJointHandle(_handle_1); _itemSprite_1.removeJointHandle(_handle_2); _itemSprite_1 = null; if (_itemSprite_2){ _itemSprite_2.removeJointHandle(_handle_1); _itemSprite_2.removeJointHandle(_handle_2); _itemSprite_2 = null; }; } public function get handle_2():JointHandleSprite{ return (_handle_2); } private function _draw(_arg1:Object, _arg2:Object):void{ graphics.clear(); graphics.lineStyle(4, 0); graphics.moveTo(_arg1.x, _arg1.y); graphics.lineTo(_arg2.x, _arg2.y); graphics.lineStyle(3, 8421631); graphics.lineTo(_arg1.x, _arg1.y); } public function get type():String{ return (_type); } public function get itemSprite_1():SurfaceSprite{ return (_itemSprite_1); } public function get itemSprite_2():SurfaceSprite{ return (_itemSprite_2); } override public function toString():String{ return (ObjectUtil.formatToString(this, "itemSprite_1", "itemSprite_2")); } override public function get kind():String{ return (GameObjectSprite.KIND_JOINT); } public function stopDrawing(_arg1:SurfaceSprite, _arg2:Number, _arg3:Number):void{ this.mouseEnabled = true; _itemSprite_2 = _arg1; _handle_2 = new JointHandleSprite(JointSprite.DISTANCE, this); var _local4:Point = new Point(_arg2, _arg3); _local4 = this.globalToLocal(_local4); _handle_2.x = _local4.x; _handle_2.y = _local4.y; addChild(_handle_2); ApplicationGlobals.application.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler); } } }//package bikeChamp.levelEditor.gameObjects
Section 71
//NitroSprite (bikeChamp.levelEditor.gameObjects.NitroSprite) package bikeChamp.levelEditor.gameObjects { import flash.geom.*; import bikeChamp.levelEditor.controls.*; public class NitroSprite extends SpecialGameObject { public function NitroSprite(){ super(new NitroClip()); } override protected function getContextMenuControl():IContextMenuControl{ return (new BaseContextMenuControl(this, true, false)); } override public function getPropertiesXML():XML{ var _local1:Matrix = this.transform.matrix; var _local2:XML = new XML((((("<item type=\"nitro\" x=\"" + ??esc_xattr ) + "\" y=\"") + ??esc_xattr ) + "\"/>")); return (_local2); } } }//package bikeChamp.levelEditor.gameObjects
Section 72
//RevoluteJointSprite (bikeChamp.levelEditor.gameObjects.RevoluteJointSprite) package bikeChamp.levelEditor.gameObjects { public class RevoluteJointSprite extends JointSprite { public function RevoluteJointSprite(){ super(JointSprite.REVOLUTE); } override public function getPropertiesXML():XML{ var _local1:XML = new XML((((((((("<revolute_joint>\r\n\t\t\t\t" + (("<body_1 id=\"" + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t\t") + (("<body_2 id=\"" + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t\t") + (((("<point_1 x=\"" + ??esc_xattr ) + "\" y=\"") + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t\t") + (((("<point_2 x=\"" + ??esc_xattr ) + "\" y=\"") + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t</revolute_joint>")); return (_local1); } } }//package bikeChamp.levelEditor.gameObjects
Section 73
//SpecialGameObject (bikeChamp.levelEditor.gameObjects.SpecialGameObject) package bikeChamp.levelEditor.gameObjects { import flash.display.*; import flash.geom.*; public class SpecialGameObject extends GameObjectSprite { public function SpecialGameObject(_arg1:Sprite){ this.mouseChildren = false; addChild(_arg1); } override public function get spriteRect():Rectangle{ return (getBounds(parent)); } override public function get kind():String{ return (GameObjectSprite.KIND_ITEM); } } }//package bikeChamp.levelEditor.gameObjects
Section 74
//SurfaceSprite (bikeChamp.levelEditor.gameObjects.SurfaceSprite) package bikeChamp.levelEditor.gameObjects { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import bikeChamp.managers.*; import flash.geom.*; import flash.utils.*; import bikeChamp.levelEditor.controls.*; import fl.motion.*; public class SurfaceSprite extends GameObjectSprite { public var physicsEnabled:Boolean;// = true public var friction:Number;// = 0.8 private var _itemName:String; public var density:Number;// = 1 public var restitution:Number;// = 0.1 public var isStatic:Boolean;// = true private var jointHandleToPointDict:Dictionary; public static var highlightOnRollOver:Boolean = false; public function SurfaceSprite(_arg1:String){ jointHandleToPointDict = new Dictionary(); super(); _itemName = _arg1; var _local2:BitmapData = Managers.assetManager.getSurfaceTexture(_arg1); var _local3:Bitmap = new Bitmap(_local2, PixelSnapping.AUTO, true); _local3.x = (-(_local2.width) / 2); _local3.y = (-(_local2.height) / 2); addChild(_local3); addEventListener(MouseEvent.ROLL_OVER, onMouseEventHandler); addEventListener(MouseEvent.ROLL_OUT, onMouseEventHandler); } override protected function getContextMenuControl():IContextMenuControl{ return (new BaseContextMenuControl(this)); } public function updateJointHandles():void{ var _local1:Object; var _local2:JointHandleSprite; var _local3:Matrix; var _local4:Point; for (_local1 in jointHandleToPointDict) { _local2 = (_local1 as JointHandleSprite); _local3 = this.transform.matrix; _local4 = _local3.transformPoint(jointHandleToPointDict[_local1]); _local2.updateOnBodyTransform(_local4); }; } public function attachJointHandle(_arg1:JointHandleSprite, _arg2:Number, _arg3:Number):void{ var _local4:Point = new Point(_arg2, _arg3); _local4 = this.globalToLocal(_local4); jointHandleToPointDict[_arg1] = _local4; } override public function set locked(_arg1:Boolean):void{ super.locked = _arg1; if (locked){ this.transform.colorTransform = new Color(); }; } override public function get spriteRect():Rectangle{ return (getBounds(parent)); } override public function dispose():void{ jointHandleToPointDict = new Dictionary(); } override public function get kind():String{ return (GameObjectSprite.KIND_SURFACE); } public function attachedJointHandles():Array{ var _local3:Object; var _local1:Array = []; var _local2:Dictionary = new Dictionary(); for (_local3 in jointHandleToPointDict) { if (_local2[_local3] === undefined){ _local1.push(_local3); } else { _local2[_local3] = true; }; }; return (_local1); } override public function getPropertyInspector():AbstractComponent{ return (new ItemPropertyInspector(this)); } public function removeJointHandle(_arg1:JointHandleSprite):void{ delete jointHandleToPointDict[_arg1]; } public function updateJointHandleParams(_arg1:JointHandleSprite):void{ var _local2:Point = new Point(_arg1.x, _arg1.y); _local2 = _arg1.parent.localToGlobal(_local2); _local2 = this.globalToLocal(_local2); jointHandleToPointDict[_arg1] = _local2; } override public function getPropertiesXML():XML{ var _local1:Matrix = this.transform.matrix; var _local2:XML = new XML((((((((("<surface name=\"" + ??esc_xattr ) + "\" id=\"") + ??esc_xattr ) + "\">\r\n\t\t\t\t") + (((((((((("<physical_object density=\"" + ??esc_xattr ) + "\" friction=\"") + ??esc_xattr ) + "\" restitution=\"") + ??esc_xattr ) + "\" static=\"") + ??esc_xattr ) + "\" enabled=\"") + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t\t") + (((((((((((("<matrix a=\"" + ??esc_xattr ) + "\" b=\"") + ??esc_xattr ) + "\" c=\"") + ??esc_xattr ) + "\" d=\"") + ??esc_xattr ) + "\" tx=\"") + ??esc_xattr ) + "\" ty=\"") + ??esc_xattr ) + "\"/>")) + "\r\n\t\t\t</surface>")); return (_local2); } private function onMouseEventHandler(_arg1:MouseEvent):void{ var _local2:Color; if (((!(highlightOnRollOver)) || (locked))){ return; }; switch (_arg1.type){ case MouseEvent.ROLL_OVER: _local2 = new Color(); _local2.brightness = 0.5; this.transform.colorTransform = _local2; break; case MouseEvent.ROLL_OUT: this.transform.colorTransform = new Color(); break; }; } public function get itemName():String{ return (_itemName); } } }//package bikeChamp.levelEditor.gameObjects
Section 75
//CustomRotationControl (bikeChamp.levelEditor.CustomRotationControl) package bikeChamp.levelEditor { import flash.display.*; import flash.events.*; import com.senocular.display.*; public class CustomRotationControl extends TransformToolControl { private var length:Number;// = 20 private var circle_TL:Sprite; private var circle_TR:Sprite; private var circle_BL:Sprite; private var circle_BR:Sprite; public function CustomRotationControl(){ addEventListener(TransformTool.CONTROL_INIT, init, false, 0, true); circle_TL = new RotationTransformSkin(); addChild(circle_TL); circle_TR = new RotationTransformSkin(); addChild(circle_TR); circle_BL = new RotationTransformSkin(); addChild(circle_BL); circle_BR = new RotationTransformSkin(); addChild(circle_BR); } private function update(_arg1:Event=null):void{ this.visible = transformTool.rotationEnabled; if (transformTool.target){ circle_TL.x = transformTool.boundsTopLeft.x; circle_TL.y = transformTool.boundsTopLeft.y; circle_TR.x = transformTool.boundsTopRight.x; circle_TR.y = transformTool.boundsTopRight.y; circle_BL.x = transformTool.boundsBottomLeft.x; circle_BL.y = transformTool.boundsBottomLeft.y; circle_BR.x = transformTool.boundsBottomRight.x; circle_BR.y = transformTool.boundsBottomRight.y; }; } private function controlMouseDown(_arg1:Event):void{ if (transformTool.currentControl == this){ _referencePoint = transformTool.mouse; }; } private function init(_arg1:Event):void{ transformTool.addEventListener(TransformTool.NEW_TARGET, update, false, 0, true); transformTool.addEventListener(TransformTool.TRANSFORM_TOOL, update, false, 0, true); transformTool.addEventListener(TransformTool.CONTROL_TRANSFORM_TOOL, update, false, 0, true); transformTool.addEventListener(TransformTool.CONTROL_DOWN, controlMouseDown, false, 0, true); transformTool.addEventListener(TransformTool.CONTROL_MOVE, controlMove, false, 0, true); var _local2:TransformToolCursor = transformTool.rotationCursor; _local2.addReference(this); update(); } private function controlMove(_arg1:Event):void{ if (transformTool.currentControl == this){ transformTool.rotationInteraction(); }; } } }//package bikeChamp.levelEditor
Section 76
//KeyAction (bikeChamp.levelEditor.KeyAction) package bikeChamp.levelEditor { public class KeyAction { public static const ESCAPE:String = "ESCAPE"; public static const LEFT:String = "LEFT"; public static const DELETE:String = "DELETE"; public static const SHIFT:String = "SHIFT"; public static const DOWN:String = "DOWN"; public static const UP:String = "UP"; public static const RIGHT:String = "RIGHT"; } }//package bikeChamp.levelEditor
Section 77
//LevelEditorController (bikeChamp.levelEditor.LevelEditorController) package bikeChamp.levelEditor { import bikeChamp.core.events.*; import flash.display.*; import bikeChamp.core.game.*; import flash.events.*; import bikeChamp.levelEditor.events.*; import bikeChamp.levelEditor.gameObjects.*; import com.bigwigmedia.events.*; import flash.geom.*; import flash.ui.*; import bikeChamp.levelEditor.controls.*; import bikeChamp.core.main.*; import bikeChamp.core.*; import com.bigwigmedia.input.*; import com.bigwigmedia.application.*; public class LevelEditorController extends EventDispatcher implements IController { private var _view:LevelEditorView; private var lastTransformTarget:GameObjectSprite;// = null private var _model:LevelEditorModel; private var levelModified:Boolean;// = false private var jointSprite:JointSprite;// = null private var keyInputMan:KeyInputManager; private var _hud:LevelEditorHUD; public function LevelEditorController(){ _view = new LevelEditorView(); _model = new LevelEditorModel(); _hud = new LevelEditorHUD(); _view.addChild(_hud); _hud.addEventListener(HUDEvent.TOOL_SELECT, onHUDEventHandler); _hud.addEventListener(HUDEvent.SCROLL_HORIZONTAL, onHUDEventHandler); _hud.addEventListener(HUDEvent.SCROLL_VERTICAL, onHUDEventHandler); _hud.addEventListener(HUDEvent.LOAD_LEVEL, onHUDEventHandler); _hud.addEventListener(HUDEvent.TEST_LEVEL, onHUDEventHandler); _hud.addEventListener(HUDEvent.EXIT, onHUDEventHandler); _view.addEventListener(MouseEvent.MOUSE_DOWN, onViewMouseDownHandler); keyInputMan = new KeyInputManager(ApplicationGlobals.application.stage); keyInputMan.mapKey(KeyAction.ESCAPE, Keyboard.ESCAPE); keyInputMan.mapKey(KeyAction.DELETE, Keyboard.DELETE); keyInputMan.mapKey(KeyAction.SHIFT, Keyboard.SHIFT); keyInputMan.addEventListener(KeyInputEvent.KEY_DOWN, onKeyDownHandler); keyInputMan.addEventListener(KeyInputEvent.KEY_UP, onKeyUpHandler); var _local1:XML = _model.getLevelXML(); if (_local1){ loadLevel(_local1); }; } private function saveLevel():void{ _model.saveLevel(_view.gameObjectsList, levelModified); } private function onHUDEventHandler(_arg1:HUDEvent):void{ switch (_arg1.type){ case HUDEvent.TOOL_SELECT: if (_hud.selectedTool != LevelEditorHUD.TOOL_TRANSFORM){ _view.setTransformToolTarget(null); } else { if (((lastTransformTarget) && (!(lastTransformTarget.locked)))){ _view.setTransformToolTarget(lastTransformTarget, false); }; }; SurfaceSprite.highlightOnRollOver = (_hud.selectedTool == LevelEditorHUD.TOOL_JOINTS); break; case HUDEvent.SCROLL_HORIZONTAL: _view.moveSprites(Number(_arg1.data), NaN); break; case HUDEvent.SCROLL_VERTICAL: _view.moveSprites(NaN, Number(_arg1.data)); break; case HUDEvent.TEST_LEVEL: if (_model.isLevelValid(_view.gameObjectsList)){ saveLevel(); GameModel.setSelectedLevel(GameModel.levelNum, true); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.TEST_USER_LEVEL)); } else { _hud.showWrongLevelPopup(); }; break; case HUDEvent.EXIT: if (_model.isLevelValid(_view.gameObjectsList)){ saveLevel(); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SELECT_USER_LEVEL)); } else { _hud.showWrongLevelPopup(); }; break; case HUDEvent.LOAD_LEVEL: saveLevel(); dispatchEvent(new ControllerEvent(ControllerEvent.COMPLETE, MainSignal.SELECT_USER_LEVEL)); break; }; } private function onKeyUpHandler(_arg1:KeyInputEvent):void{ if (_hud.hasPopup){ return; }; switch (_arg1.keyAction){ case KeyAction.SHIFT: _view.constrainRotation = false; break; }; } private function removeGameObjectSprite(_arg1:GameObjectSprite):void{ var _local2:GameObjectSprite; var _local3:Array; var _local4:JointHandleSprite; var _local5:JointSprite; if ((_arg1 is SurfaceSprite)){ _local3 = SurfaceSprite(_arg1).attachedJointHandles(); for each (_local4 in _local3) { removeGameObjectSprite(_local4); }; if (lastTransformTarget == _arg1){ _view.setTransformToolTarget(null); lastTransformTarget = null; }; _local2 = _arg1; } else { if ((_arg1 is JointHandleSprite)){ _local5 = JointHandleSprite(_arg1).owner; if ((((lastTransformTarget == _local5.handle_1)) || ((lastTransformTarget == _local5.handle_2)))){ _view.setTransformToolTarget(null); lastTransformTarget = null; }; _local2 = _local5; } else { if ((_arg1 is JointSprite)){ _local2 = _arg1; jointSprite = null; } else { if ((_arg1 is CheckPointSprite)){ _local2 = _arg1; } else { _local2 = _arg1; }; }; }; }; _local2.removeEventListener(GameObjectSpriteEvent.LOCK, onGameItemSpriteEventHandler); _local2.removeEventListener(GameObjectSpriteEvent.UNLOCK, onGameItemSpriteEventHandler); _local2.removeEventListener(GameObjectSpriteEvent.ARRANGE, onGameItemSpriteEventHandler); _local2.removeEventListener(GameObjectSpriteEvent.TRANSFORM, onGameItemSpriteEventHandler); _local2.removeEventListener(GameObjectSpriteEvent.SETUP_PROPERTIES, onGameItemSpriteEventHandler); _view.removeGameObjectSprite(_local2); _local2.dispose(); updateHudScrollBars(); levelModified = true; } public function dispose():void{ CheckPointSprite.unregisterAllSprites(); lastTransformTarget = null; jointSprite = null; _hud.dispose(); _hud = null; _view.dispose(); _view = null; _model = null; keyInputMan.dispose(); keyInputMan = null; lastTransformTarget = null; } private function drawJoint(_arg1:SurfaceSprite, _arg2:Number, _arg3:Number):void{ if (jointSprite == null){ jointSprite = ((_hud.selectedToolParameter == LevelEditorHUD.JOINT_DISTANCE)) ? new DistanceJointSprite() : new RevoluteJointSprite(); addGameObjectSprite(jointSprite, NaN, NaN); jointSprite.startDrawing(_arg1, _arg2, _arg3); _arg1.attachJointHandle(jointSprite.handle_1, _arg2, _arg3); } else { if (jointSprite.itemSprite_1 != _arg1){ jointSprite.stopDrawing(_arg1, _arg2, _arg3); _arg1.attachJointHandle(jointSprite.handle_2, _arg2, _arg3); jointSprite = null; }; }; } private function onKeyDownHandler(_arg1:KeyInputEvent):void{ var _local2:GameObjectSprite; if (_hud.hasPopup){ return; }; switch (_arg1.keyAction){ case KeyAction.ESCAPE: _view.setTransformToolTarget(null); if (jointSprite){ removeGameObjectSprite(jointSprite); }; break; case KeyAction.DELETE: _local2 = (_view.transformToolTarget as GameObjectSprite); if (_local2){ removeGameObjectSprite(_local2); }; break; case KeyAction.SHIFT: _view.constrainRotation = true; break; }; } public function get view():DisplayObject{ return (_view); } private function onViewMouseDownHandler(_arg1:MouseEvent):void{ var _local2:GameObjectSprite; if (_hud.hasPopup){ return; }; switch (_hud.selectedTool){ case LevelEditorHUD.TOOL_TRANSFORM: _local2 = (_arg1.target as GameObjectSprite); if (_view.isBackgroundSprite((_arg1.target as DisplayObject))){ _view.setTransformToolTarget(null); lastTransformTarget = null; } else { if ((((_arg1.target is SurfaceSprite)) || ((_arg1.target is SpecialGameObject)))){ if (!_local2.locked){ _view.setTransformToolTarget(_local2); lastTransformTarget = _local2; }; } else { if ((_arg1.target is JointHandleSprite)){ if (!_local2.locked){ _view.setTransformToolTarget(_local2); lastTransformTarget = _local2; }; }; }; }; break; case LevelEditorHUD.TOOL_ITEMS: _local2 = new SurfaceSprite(_hud.selectedToolParameter); addGameObjectSprite(_local2, _arg1.stageX, _arg1.stageY); levelModified = true; break; case LevelEditorHUD.TOOL_SPECIALS: if (_hud.selectedToolParameter == LevelEditorHUD.CHECK_POINT){ _local2 = new CheckPointSprite(); CheckPointSprite.registerSprite(_local2); } else { if (_hud.selectedToolParameter == LevelEditorHUD.NITRO){ _local2 = new NitroSprite(); }; }; addGameObjectSprite(_local2, _arg1.stageX, _arg1.stageY); levelModified = true; break; case LevelEditorHUD.TOOL_JOINTS: if ((_arg1.target is SurfaceSprite)){ drawJoint((_arg1.target as SurfaceSprite), _arg1.stageX, _arg1.stageY); }; levelModified = true; break; }; } private function addGameObjectSprite(_arg1:GameObjectSprite, _arg2:Number, _arg3:Number, _arg4:String=null):void{ var _local5:SurfaceSprite = (_arg1 as SurfaceSprite); if (_local5){ _local5.id = ((_arg4) || (((_local5.itemName + "_") + _model.nextUID))); }; _arg1.addEventListener(GameObjectSpriteEvent.LOCK, onGameItemSpriteEventHandler); _arg1.addEventListener(GameObjectSpriteEvent.UNLOCK, onGameItemSpriteEventHandler); _arg1.addEventListener(GameObjectSpriteEvent.ARRANGE, onGameItemSpriteEventHandler); _arg1.addEventListener(GameObjectSpriteEvent.TRANSFORM, onGameItemSpriteEventHandler); _arg1.addEventListener(GameObjectSpriteEvent.SETUP_PROPERTIES, onGameItemSpriteEventHandler); _view.addGameObjectSprite(_arg1, _arg2, _arg3); updateHudScrollBars(); } private function onGameItemSpriteEventHandler(_arg1:GameObjectSpriteEvent):void{ var _local2:Rectangle; switch (_arg1.type){ case GameObjectSpriteEvent.ARRANGE: _view.arrangeSprite(DisplayObject(_arg1.target), int(_arg1.data)); break; case GameObjectSpriteEvent.LOCK: _view.lockGameItem(GameObjectSprite(_arg1.target)); break; case GameObjectSpriteEvent.UNLOCK: if ((((_hud.selectedTool == LevelEditorHUD.TOOL_TRANSFORM)) && ((_arg1.target is GameObjectSprite)))){ _view.setTransformToolTarget(GameObjectSprite(_arg1.target), false); }; break; case GameObjectSpriteEvent.TRANSFORM: _local2 = _view.getSpritesHolderRect(); _hud.updateScrollBars(_local2); if ((_arg1.data is SurfaceSprite)){ SurfaceSprite(_arg1.data).updateJointHandles(); } else { if ((_arg1.data is JointHandleSprite)){ JointHandleSprite(_arg1.data).updateRelativeLocation(); }; }; levelModified = true; break; case GameObjectSpriteEvent.SETUP_PROPERTIES: _hud.showPropertiesInspector(GameObjectSprite(_arg1.target)); levelModified = true; break; }; } private function updateHudScrollBars():void{ _hud.updateScrollBars(_view.getSpritesHolderRect()); } private function loadLevel(_arg1:XML):void{ var _local5:GameObjectSprite; var _local6:Matrix; var _local8:XML; var _local9:XML; var _local10:XML; var _local11:XML; var _local12:SurfaceSprite; var _local13:XML; var _local14:JointSprite; var _local15:SurfaceSprite; var _local16:SurfaceSprite; var _local2:XMLList = _arg1.items.children(); var _local3:XMLList = _arg1.joints.children(); var _local4:XMLList = _arg1.surfaces.children(); var _local7:Object = {}; for each (_local8 in _local2) { if (_local8.@type == LevelEditorHUD.CHECK_POINT){ _local5 = new CheckPointSprite(); CheckPointSprite.registerSprite(_local5); } else { if (_local8.@type == LevelEditorHUD.NITRO){ _local5 = new NitroSprite(); }; }; _local6 = new Matrix(); _local6.translate(_local8.@x, _local8.@y); _local5.transform.matrix = _local6; addGameObjectSprite(_local5, NaN, NaN); }; for each (_local9 in _local4) { _local5 = new SurfaceSprite(_local9.@name); _local11 = _local9.physical_object[0]; _local12 = SurfaceSprite(_local5); _local12.density = _local11.@density; _local12.friction = _local11.@friction; _local12.restitution = _local11.@restitution; _local12.isStatic = (_local11.@static == "true"); _local12.physicsEnabled = (_local11.@enabled == "true"); _local13 = _local9.matrix[0]; _local6 = new Matrix(_local13.@a, _local13.@b, _local13.@c, _local13.@d, _local13.@tx, _local13.@ty); _local5.transform.matrix = _local6; addGameObjectSprite(_local5, NaN, NaN, _local9.@id); _local7[_local5.id] = _local5; }; for each (_local10 in _local3) { _local5 = ((_local10.name())==LevelEditorHUD.JOINT_DISTANCE) ? new DistanceJointSprite() : new RevoluteJointSprite(); _local14 = JointSprite(_local5); _local15 = _local7[_local10.body_1.@id]; _local16 = _local7[_local10.body_2.@id]; addGameObjectSprite(_local14, NaN, NaN); _local14.startDrawing(_local15, _local10.point_1.@x, _local10.point_1.@y); _local15.attachJointHandle(_local14.handle_1, _local10.point_1.@x, _local10.point_1.@y); _local14.stopDrawing(_local16, _local10.point_2.@x, _local10.point_2.@y); _local16.attachJointHandle(_local14.handle_2, _local10.point_2.@x, _local10.point_2.@y); _local14.draw(); }; } } }//package bikeChamp.levelEditor
Section 78
//LevelEditorModel (bikeChamp.levelEditor.LevelEditorModel) package bikeChamp.levelEditor { import bikeChamp.core.game.*; import bikeChamp.managers.*; import bikeChamp.levelEditor.gameObjects.*; import flash.geom.*; public class LevelEditorModel { private var _levelsXML:XML; public function LevelEditorModel(){ _levelsXML = new XML(Managers.soManager.getValue("user_levels")); } public function isLevelValid(_arg1:Array):Boolean{ var _local3:GameObjectSprite; var _local4:XML; var _local2:int; for each (_local3 in _arg1) { if (_local3.kind == GameObjectSprite.KIND_ITEM){ _local4 = _local3.getPropertiesXML(); if ((((_local4.@type == "check_point")) && ((_temp1 == 2)))){ return (true); }; }; }; return (false); } public function saveLevel(_arg1:Array, _arg2:Boolean):void{ var _local11:GameObjectSprite; var _local12:int; var _local14:Rectangle; var _local15:XML; var _local3:XML = <items/> ; var _local4:XML = <surfaces/> ; var _local5:XML = <joints/> ; var _local6:int = _arg1.length; var _local7:Number = 0; var _local8:Number = 0; var _local9:Number = 0; var _local10:Number = 0; for each (_local11 in _arg1) { _local14 = _local11.spriteRect; if (_local14){ if (_local14.left < _local7){ _local7 = _local14.left; } else { if (_local14.right > _local8){ _local8 = _local14.right; }; }; if (_local14.top < _local9){ _local9 = _local14.top; } else { if (_local14.bottom > _local10){ _local10 = _local14.bottom; }; }; }; }; _local12 = 0; while (_local12 < _local6) { _local11 = _arg1[_local12]; _local15 = _local11.getPropertiesXML(); switch (_local11.kind){ case GameObjectSprite.KIND_ITEM: _local3.appendChild(_local15); break; case GameObjectSprite.KIND_JOINT: _local5.appendChild(_local15); break; case GameObjectSprite.KIND_SURFACE: _local4.appendChild(_local15); break; }; _local12++; }; var _local13:XML = getLevelXML(); if (_arg2){ _local13.@completed = "false"; delete _local13.@time; }; _local13.items = _local3; _local13.joints = _local5; _local13.surfaces = _local4; _local13.@minX = _local7; _local13.@maxX = _local8; _local13.@minY = _local9; _local13.@maxY = _local10; GameModel.removeCachedLevel(GameModel.levelNum, true); Managers.soManager.setValue("user_levels", _levelsXML.toXMLString()); Managers.soManager.flush(); } public function getLevelXML():XML{ return (((_levelsXML.level.length() > 0)) ? _levelsXML.level[GameModel.levelNum] : null); } public function get nextUID():String{ var _local1:XML = getLevelXML(); var _local2:int = _local1.@uid; ++_local2; _local1.@uid = _local2; return (String(_local2)); } } }//package bikeChamp.levelEditor
Section 79
//LevelEditorView (bikeChamp.levelEditor.LevelEditorView) package bikeChamp.levelEditor { import flash.display.*; import flash.events.*; import bikeChamp.levelEditor.events.*; import bikeChamp.levelEditor.gameObjects.*; import flash.geom.*; import com.senocular.display.*; public class LevelEditorView extends Sprite { private var spritesHolder:Sprite; private var transformTool:TransformTool; private var gameObjectsHolder:Sprite; private var backgroundSprite:Sprite; public static const BACKGROUND_COLOR:uint = 0xC0C0C0; public function LevelEditorView(){ backgroundSprite = new Sprite(); var _local1:Graphics = backgroundSprite.graphics; _local1.lineStyle(); _local1.beginFill(BACKGROUND_COLOR, 1); _local1.drawRect(0, 0, 640, 480); _local1.endFill(); addChild(backgroundSprite); spritesHolder = new Sprite(); addChild(spritesHolder); gameObjectsHolder = new Sprite(); spritesHolder.addChild(gameObjectsHolder); transformTool = new TransformTool(); transformTool.addControl(new CustomRotationControl()); transformTool.constrainRotationAngle = 90; transformTool.scaleEnabled = false; transformTool.skewEnabled = false; transformTool.registrationEnabled = false; transformTool.raiseNewTargets = false; transformTool.moveNewTargets = true; transformTool.moveUnderObjects = false; transformTool.addEventListener(TransformTool.TRANSFORM_TARGET, onTargetTransformHandler); spritesHolder.addChild(transformTool); } public function get gameObjectsList():Array{ var _local1:Array = []; var _local2:int = gameObjectsHolder.numChildren; var _local3:int; while (_local3 < _local2) { _local1.push(gameObjectsHolder.getChildAt(_local3)); _local3++; }; return (_local1); } public function setTransformToolTarget(_arg1:DisplayObject, _arg2:Boolean=true):void{ transformTool.moveNewTargets = _arg2; transformTool.scaleEnabled = false; transformTool.rotationEnabled = (_arg1 is SurfaceSprite); if ((_arg1 is GameObjectSprite)){ transformTool.contextMenu = GameObjectSprite(_arg1).contextMenu; }; transformTool.target = _arg1; } public function removeGameObjectSprite(_arg1:GameObjectSprite):void{ gameObjectsHolder.removeChild(_arg1); if (_arg1 == transformTool.target){ transformTool.target = null; }; } public function set constrainRotation(_arg1:Boolean):void{ transformTool.constrainRotation = _arg1; } public function moveSprites(_arg1:Number, _arg2:Number):void{ if (!isNaN(_arg1)){ spritesHolder.x = -(_arg1); }; if (!isNaN(_arg2)){ spritesHolder.y = -(_arg2); }; } public function get transformToolTarget():DisplayObject{ return (transformTool.target); } private function onTargetTransformHandler(_arg1:Event):void{ transformTool.target.dispatchEvent(new GameObjectSpriteEvent(GameObjectSpriteEvent.TRANSFORM, transformTool.target)); } public function getSpritesHolderRect():Rectangle{ if (gameObjectsHolder.numChildren == 0){ return (new Rectangle(0, 0, 640, 480)); }; var _local1:Rectangle = gameObjectsHolder.getRect(gameObjectsHolder.parent); if (_local1.left > 0){ _local1.left = 0; }; if (_local1.right < 640){ _local1.right = 640; }; if (_local1.top > 0){ _local1.top = 0; }; if (_local1.bottom < 480){ _local1.bottom = 480; }; return (_local1); } public function lockGameItem(_arg1:GameObjectSprite):void{ if (_arg1 == transformTool.target){ transformTool.target = null; }; } public function arrangeSprite(_arg1:DisplayObject, _arg2:int):void{ var _local3:DisplayObjectContainer = _arg1.parent; if (_local3.numChildren < 2){ return; }; var _local4:int = (_arg2 + _local3.getChildIndex(_arg1)); if (_local4 < 0){ _local4 = 0; } else { if (_local4 > (_local3.numChildren - 1)){ _local4 = (_local3.numChildren - 1); }; }; _local3.setChildIndex(_arg1, _local4); } public function addGameObjectSprite(_arg1:GameObjectSprite, _arg2:Number, _arg3:Number):void{ var _local4:Point; if (((!(isNaN(_arg2))) && (!(isNaN(_arg3))))){ _local4 = new Point(_arg2, _arg3); _local4 = gameObjectsHolder.globalToLocal(_local4); _arg1.x = _local4.x; _arg1.y = _local4.y; }; gameObjectsHolder.addChild(_arg1); } public function isBackgroundSprite(_arg1:DisplayObject):Boolean{ return ((_arg1 == backgroundSprite)); } public function dispose():void{ var _local1:GameObjectSprite; transformTool.target = null; transformTool.removeEventListener(TransformTool.TRANSFORM_TARGET, onTargetTransformHandler); spritesHolder.removeChild(transformTool); transformTool = null; while (gameObjectsHolder.numChildren > 0) { _local1 = (gameObjectsHolder.removeChildAt(0) as GameObjectSprite); if (_local1){ _local1.dispose(); }; }; } } }//package bikeChamp.levelEditor
Section 80
//AssetManager (bikeChamp.managers.AssetManager) package bikeChamp.managers { import flash.display.*; import com.bigwigmedia.resources.*; public class AssetManager { private var bitmapDataCache:BitmapDataCache; private var nameToSurfaceTextureHash:Object; public function AssetManager(){ nameToSurfaceTextureHash = {}; super(); bitmapDataCache = Managers.resourceManager.getBitmapDataCache("Bike_bitmapDataCache"); } public function getSurfaceTexture(_arg1:String):BitmapData{ var _local3:XML; var _local4:XML; var _local2:BitmapData = nameToSurfaceTextureHash[_arg1]; if (!_local2){ _local3 = Managers.configManager.getSurfaceXML(_arg1); _local4 = _local3.texture[0]; _local2 = bitmapDataCache.getBitmapDataByClassName(_local4.@bitmap); nameToSurfaceTextureHash[_arg1] = _local2; }; return (_local2); } } }//package bikeChamp.managers
Section 81
//ConfigManager (bikeChamp.managers.ConfigManager) package bikeChamp.managers { import flash.events.*; public class ConfigManager extends EventDispatcher { private var configXMLClass:Class; private var _soundEnabled:Boolean;// = true private var surfacesXML:XML; private var levelsXML:XML; private var _checkPointTouchDelay:int; private var surfacesXMLClass:Class; private var levelsOrderXMLClass:Class; private var levelsXMLClass:Class; private var configXML:XML; private var levelsOrderXML:XML; public function ConfigManager(){ configXMLClass = ConfigManager_configXMLClass; surfacesXMLClass = ConfigManager_surfacesXMLClass; levelsXMLClass = ConfigManager_levelsXMLClass; levelsOrderXMLClass = ConfigManager_levelsOrderXMLClass; super(); } public function get soundEnabled():Boolean{ return (_soundEnabled); } public function getLevelXML(_arg1:int):XML{ var _local2:int = levelsOrderXML.level[_arg1].@num; var _local3:XML = levelsXML.level[_local2]; return (_local3); } public function get checkPointTouchDelay():int{ return (_checkPointTouchDelay); } public function getSurfaceNamesList():Array{ var list:Array = []; surfacesXML.surfaces.children().(list.push(@name)); //not popped return (list); } public function initialize():void{ if (!false){ setXML(XML(new configXMLClass()), XML(new surfacesXMLClass()), XML(new levelsXMLClass()), XML(new levelsOrderXMLClass())); }; } private function setXML(_arg1:XML, _arg2:XML, _arg3:XML, _arg4:XML):void{ this.configXML = _arg1; this.surfacesXML = _arg2; this.levelsXML = _arg3; this.levelsOrderXML = _arg4; dispatchEvent(new Event(Event.INIT)); _checkPointTouchDelay = this.configXML.extra.check_point_delay; } public function get numLevels():int{ return (levelsXML.level.length()); } public function set soundEnabled(_arg1:Boolean):void{ _soundEnabled = _arg1; Managers.soundManager.setAllChannelsVolume((_soundEnabled) ? 1 : 0); Managers.soManager.setValue("sound_enabled", _soundEnabled); } public function getSurfaceXML(_arg1:String):XML{ var name = _arg1; var surfacesList:XMLList = surfacesXML.surfaces.children(); return (surfacesList.(@name == name)[0]); } public function getLevelsXML():XML{ return (levelsXML); } public function getBikeConfig():XML{ return (configXML.bike_config[0]); } public function getLevelTimeGoal(_arg1:int):int{ var _local2:int = levelsOrderXML.level[_arg1].@timeGoal; return (_local2); } } }//package bikeChamp.managers
Section 82
//ConfigManager_configXMLClass (bikeChamp.managers.ConfigManager_configXMLClass) package bikeChamp.managers { import mx.core.*; public class ConfigManager_configXMLClass extends ByteArrayAsset { } }//package bikeChamp.managers
Section 83
//ConfigManager_levelsOrderXMLClass (bikeChamp.managers.ConfigManager_levelsOrderXMLClass) package bikeChamp.managers { import mx.core.*; public class ConfigManager_levelsOrderXMLClass extends ByteArrayAsset { } }//package bikeChamp.managers
Section 84
//ConfigManager_levelsXMLClass (bikeChamp.managers.ConfigManager_levelsXMLClass) package bikeChamp.managers { import mx.core.*; public class ConfigManager_levelsXMLClass extends ByteArrayAsset { } }//package bikeChamp.managers
Section 85
//ConfigManager_surfacesXMLClass (bikeChamp.managers.ConfigManager_surfacesXMLClass) package bikeChamp.managers { import mx.core.*; public class ConfigManager_surfacesXMLClass extends ByteArrayAsset { } }//package bikeChamp.managers
Section 86
//Managers (bikeChamp.managers.Managers) package bikeChamp.managers { import flash.events.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.font.*; import com.bigwigmedia.sound.*; import com.bigwigmedia.net.*; import com.bigwigmedia.resources.*; import com.bigwigmedia.display.*; import com.boostworthy.utils.logger.*; import flash.text.*; import bikeChamp.core.levelSelection.*; import bikeChamp.ui.*; import com.boostworthy.core.*; import flash.filters.*; import com.bigwigmedia.core.*; import com.bigwigmedia.ui.styles.*; import bikeChamp.core.sound.*; import com.bigwigmedia.application.*; public class Managers { private static var _resourceManager:IResourceManager; private static var _soundManager:ISoundManager; private static var _configManager:ConfigManager; private static var initialized:Boolean = false; private static var _cursorManager:ICursorManager; private static var _urlCaller:IURLCaller; private static var _fontManager:IFontManager; private static var _styleManager:IStyleManager; private static var _soManager:ISOManager; private static var onInitCallback:Function; private static var _assetManager:AssetManager; private static function onButtonMouseOverHandler(_arg1:AbstractButton):void{ } public static function get styleManager():IStyleManager{ return (_styleManager); } public static function get resourceManager():IResourceManager{ return (_resourceManager); } public static function get configManager():ConfigManager{ return (_configManager); } public static function initialize(_arg1:Function):void{ if (initialized){ return; }; initialized = true; Managers.onInitCallback = _arg1; Global.stage = ApplicationGlobals.application.stage; LogFactory.getInstance().getLog("Boostworthy Animation System").setLevel(0); Singleton.registerClass("com.bigwigmedia.font::IFontManager", FontManager); _fontManager = IFontManager(Singleton.getInstance("com.bigwigmedia.font::IFontManager")); Singleton.registerClass("com.bigwigmedia.ui::ICursorManager", CursorManager); _cursorManager = ICursorManager(Singleton.getInstance("com.bigwigmedia.ui::ICursorManager")); Singleton.registerClass("com.bigwigmedia.sound::ISoundManager", SoundManager); _soundManager = ISoundManager(Singleton.getInstance("com.bigwigmedia.sound::ISoundManager")); Singleton.registerClass("com.bigwigmedia.ui::IStyleManager", StyleManager); _styleManager = IStyleManager(Singleton.getInstance("com.bigwigmedia.ui::IStyleManager")); Singleton.registerClass("com.bigwigmedia.net::ISOManager", SOManager); _soManager = ISOManager(Singleton.getInstance("com.bigwigmedia.net::ISOManager")); Singleton.registerClass("com.bigwigmedia.net::IURLCaller", URLCaller_2DPlay); _urlCaller = IURLCaller(Singleton.getInstance("com.bigwigmedia.net::IURLCaller")); Singleton.registerClass("com.bigwigmedia.resources::IResourceManager", ResourceManager); _resourceManager = IResourceManager(Singleton.getInstance("com.bigwigmedia.resources::IResourceManager")); _fontManager.registerFonts("Font_1"); _fontManager.registerFonts("Font_2"); _styleManager.setSharedStyle(AbstractComponent, AbstractComponentStyle.TEXT_FORMAT, new TextFormat(_fontManager.getFontNameByID("Font_1"), 20, 0xFFFFFF)); _styleManager.setSharedStyle(AbstractComponent, AbstractComponentStyle.EMBED_FONTS, true); _styleManager.setSharedStyle(TextInput, AbstractComponentStyle.TEXT_FORMAT, new TextFormat(_fontManager.getFontNameByID("Font_1"), 20, 0)); _styleManager.setSharedStyle(LevelButton, AbstractComponentStyle.TEXT_FORMAT, new TextFormat(_fontManager.getFontNameByID("Font_1"), 18, 0xFFFFFF, null, null, null, null, null, TextFormatAlign.CENTER)); _styleManager.setSharedStyle(LabelButton, AbstractComponentStyle.DECORATION, new FilterDecoration(new GlowFilter(0, 1, 4, 4, 5), new DropShadowFilter(2, 45, 0, 0.5))); _styleManager.setSharedStyle(GameButton, AbstractComponentStyle.DECORATION, new FilterDecoration(new DropShadowFilter(2, 45, 0, 0.5))); _styleManager.setSharedStyle(Label, AbstractComponentStyle.DECORATION, new FilterDecoration(new GlowFilter(0, 1, 4, 4, 5), new DropShadowFilter(2, 45, 0, 0.5))); _styleManager.setSharedStyle(TextArea, AbstractComponentStyle.DECORATION, new FilterDecoration(new GlowFilter(0, 1, 4, 4, 5), new DropShadowFilter(2, 45, 0, 0.5))); _styleManager.setSharedStyle(IconicButton, IconicButtonStyle.UP_DECORATION, new TintDecoration(0xFFFFFF, 0)); _styleManager.setSharedStyle(IconicButton, IconicButtonStyle.OVER_DECORATION, new TintDecoration(0xFFFFFF, 0.4)); _styleManager.setSharedStyle(LabelButton, LabelButtonStyle.UP_STATE_COLOR, 0xFFFFFF); _styleManager.setSharedStyle(LabelButton, LabelButtonStyle.OVER_STATE_COLOR, 0xFFCC00); _styleManager.setSharedStyle(LabelButton, LabelButtonStyle.DOWN_STATE_COLOR, 0xFFCC00); _styleManager.setSharedStyle(AbstractButton, AbstractButtonStyle.MOUSE_DOWN_HANDLER, Managers.onButtonMouseDownHandler); _styleManager.setSharedStyle(AbstractButton, AbstractButtonStyle.ROLL_OVER_HANDLER, Managers.onButtonMouseOverHandler); _styleManager.setSharedStyle(LabelButton, AbstractButtonStyle.BEACON, new ColorBeacon(0xFFCC00)); _soundManager = new SoundManager(); _soundManager.registerRecord("vo_apprec_ohhh_wav", vo_apprec_ohhh_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_apprec_ohyeah_wav", vo_apprec_ohyeah_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_apprec_woo_wav", vo_apprec_woo_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_grnt01_wav", vo_grnt01_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_grnt02_wav", vo_grnt02_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_grnt03_wav", vo_grnt03_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_grnt04_wav", vo_grnt04_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_hurt_ooothatcant_wav", vo_hurt_ooothatcant_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_nitro_do_it_wav", vo_nitro_do_it_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_precrash_uhoh_wav", vo_precrash_uhoh_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_precrash_youdead_wav", vo_precrash_youdead_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("vo_start_okherewego_wav", vo_start_okherewego_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("bike_motorcycle_idle_wav", bike_motorcycle_idle_wav, ChannelID.BIKE_EFFECTS); _soundManager.registerRecord("bike_motorcycle_move_wav", bike_motorcycle_move_wav, ChannelID.BIKE_EFFECTS); _soundManager.registerRecord("bike_motorcycle_stops_wav", bike_motorcycle_stops_wav, ChannelID.BIKE_EFFECTS); _soundManager.registerRecord("bike_speed_up_short_wav", bike_speed_up_short_wav, ChannelID.BIKE_EFFECTS); _soundManager.registerRecord("bike_bike_brake_press_01_wav", bike_bike_brake_press_01_wav, ChannelID.VO_EFFECTS); _soundManager.registerRecord("applause_wav", applause_wav, ChannelID.MISC_EFFECTS); _soundManager.registerRecord("checkpoint_sfx", checkpoint_sfx, ChannelID.MISC_EFFECTS); _soundManager.registerRecord("nitro_sfx", nitro_sfx, ChannelID.MISC_EFFECTS); _soundManager.registerRecord("bike_suspension_forks_02_wav", bike_suspension_forks_02_wav, ChannelID.MISC_EFFECTS); _soundManager.registerRecord("button_press_sfx", button_press_sfx, ChannelID.MISC_EFFECTS); if (_soManager.getValue("user_levels") === undefined){ _soManager.setValue("user_levels", "<levels />"); _soManager.flush(); }; if (_soManager.getValue("level_reached") === undefined){ _soManager.setValue("level_reached", 0); _soManager.setValue("level_scores", new Array()); _soManager.flush(); }; _configManager = new ConfigManager(); _configManager.addEventListener(Event.INIT, Managers.onConfigManCompleteHandler); _configManager.initialize(); _assetManager = new AssetManager(); } public static function get assetManager():AssetManager{ return (_assetManager); } public static function get fontManager():IFontManager{ return (_fontManager); } public static function get urlCaller():IURLCaller{ return (_urlCaller); } public static function get soundManager():ISoundManager{ return (_soundManager); } public static function get soManager():ISOManager{ return (_soManager); } public static function get cursorManager():ICursorManager{ return (_cursorManager); } private static function onConfigManCompleteHandler(_arg1:Event):void{ _configManager.removeEventListener(Event.INIT, Managers.onConfigManCompleteHandler); if (_soManager.getValue("sound_enabled") === false){ _configManager.soundEnabled = false; }; Managers.onInitCallback(); Managers.onInitCallback = null; } private static function onButtonMouseDownHandler(_arg1:AbstractButton):void{ _soundManager.play(SoundID.BUTTON_PRESS_SFX); } } }//package bikeChamp.managers
Section 87
//GameButton (bikeChamp.ui.GameButton) package bikeChamp.ui { import flash.display.*; import com.bigwigmedia.ui.*; import flash.text.*; public class GameButton extends LabelButton { private static const WIDTH:Number = 234; public function GameButton(_arg1:String=""){ super(_arg1); } override public function set label(_arg1:String):void{ _labelField.text = _arg1; _labelField.x = ((GameButton.WIDTH - _labelField.width) / 2); } override protected function createChildren():void{ var _local1:Sprite = new ButtonBackground(); addChild(_local1); _labelField = new TextField(); _labelField.type = TextFieldType.DYNAMIC; _labelField.selectable = false; _labelField.autoSize = TextFieldAutoSize.CENTER; _labelField.y = 12; label = _label; addChild(_labelField); } } }//package bikeChamp.ui
Section 88
//IPopupOwner (bikeChamp.ui.IPopupOwner) package bikeChamp.ui { public interface IPopupOwner { function removePopup():void; } }//package bikeChamp.ui
Section 89
//StringUtil (bikeChamp.utils.StringUtil) package bikeChamp.utils { public class StringUtil { public static function millisecondsToString(_arg1:int):String{ var _local2:int = ((_arg1 / 1000) % 60); var _local3:int = ((_arg1 / 1000) / 60); var _local4:int = (_arg1 % 1000); var _local5:String = (((((((_local3 < 10)) ? "0" : "" + String(_local3)) + ":") + (((_local2 < 10)) ? "0" : "" + String(_local2))) + ":") + ((_local4 > 99)) ? String(_local4).substr(0, 2) : (((_local4 < 10)) ? "0" : "" + String(_local4))); return (_local5); } } }//package bikeChamp.utils
Section 90
//Main (bikeChamp.Main) package bikeChamp { import com.bigwigmedia.application.*; import com.bigwigmedia.preloaders.*; import com.bigwigmedia.events.*; import com.bigwigmedia.ui.*; import bikeChamp.core.*; public class Main extends AbstractApplication_2DPLay { public static const VERSION:String = "1.0.0.654"; public function Main(){ super("Bike Champ", "1745", VERSION, "com.bigwigmedia.bike_champ"); addEventListener(ApplicationEvent.INIT, onAppInitHandler); addEventListener(ApplicationEvent.READY, onAppReadyHandler); } private function onAppInitHandler(_arg1:ApplicationEvent):void{ this.contextMenu = ContextMenu_2DPlay.getMenu(); fillBackground(0xFFFFFF); createMask(0xFFFFFF); startPreloading(new Preloader_2DPlay(true)); } private function onAppReadyHandler(_arg1:ApplicationEvent):void{ fillBackground(0); removeMask(); createMask(0); removeChild(_preloader); _preloader = null; removeEventListener(ApplicationEvent.INIT, onAppInitHandler); removeEventListener(ApplicationEvent.READY, onAppReadyHandler); Console.initialize([67, 79, 78, 83, 79, 76, 69]); var _local2:Class = getClassByName("bikeChamp.core.main.MainController"); var _local3:IController = new (_local2); createMainView(_local3.view); } } }//package bikeChamp
Section 91
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 92
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 93
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 94
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 95
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 96
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 97
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 98
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int;// = -1 public function b2ShapeDef(){ filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 99
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 100
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 101
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 102
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = 0xFFFF; public static const b2_invalid:uint = 0xFFFF; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 103
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 104
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 105
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 106
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 107
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 108
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 109
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 110
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 111
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 112
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 113
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 114
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 115
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 116
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 117
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 118
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 119
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 120
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 121
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 122
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 123
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 124
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 125
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 126
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 127
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 128
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 129
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 130
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 131
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 132
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 133
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 134
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 135
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 136
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 137
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 138
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 139
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 140
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 141
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 142
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 143
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 144
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 145
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 146
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 147
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 148
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 149
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 150
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 151
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 152
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 153
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 154
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.Joints.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 155
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 156
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 157
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 158
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 159
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 160
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Common.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 161
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 162
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 163
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 164
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 165
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import flash.utils.*; import com.adobe.utils.*; public class MD5 { public static var digest:ByteArray; private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function f(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg2) | (~(_arg1) & _arg3))); } private static function g(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg3) | (_arg2 & ~(_arg3)))); } private static function h(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 ^ _arg2) ^ _arg3)); } private static function i(_arg1:int, _arg2:int, _arg3:int):int{ return ((_arg2 ^ (_arg1 | ~(_arg3)))); } private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{ var _local9:int = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hash(_arg1:String):String{ var _local2:ByteArray = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array = new Array(); var _local3:int = (_arg1.length * 8); var _local4 = 0xFF; var _local5:int; while (_local5 < _local3) { _local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32))); _local5 = (_local5 + 8); }; _local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32))); _local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3; return (_local2); } public static function hashBinary(_arg1:ByteArray):String{ var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local2 = 1732584193; var _local3 = -271733879; var _local4 = -1732584194; var _local5 = 271733878; var _local10:Array = createBlocks(_arg1); var _local11:int = _local10.length; var _local12:int; while (_local12 < _local11) { _local6 = _local2; _local7 = _local3; _local8 = _local4; _local9 = _local5; _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551); _local2 = (_local2 + _local6); _local3 = (_local3 + _local7); _local4 = (_local4 + _local8); _local5 = (_local5 + _local9); _local12 = (_local12 + 16); }; digest = new ByteArray(); digest.writeInt(_local2); digest.writeInt(_local3); digest.writeInt(_local4); digest.writeInt(_local5); digest.position = 0; return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5))); } private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hashBytes(_arg1:ByteArray):String{ return (hashBinary(_arg1)); } } }//package com.adobe.crypto
Section 166
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local4:int; var _local5:int; var _local3 = ""; if (_arg2){ _local4 = 0; while (_local4 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15)))); _local4++; }; } else { _local5 = 0; while (_local5 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15)))); _local5++; }; }; return (_local3); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package com.adobe.utils
Section 167
//AbstractApplication (com.bigwigmedia.application.AbstractApplication) package com.bigwigmedia.application { import flash.display.*; import com.bigwigmedia.effects.*; import flash.events.*; import com.bigwigmedia.preloaders.*; import com.bigwigmedia.events.*; import com.bigwigmedia.core.*; import flash.system.*; public class AbstractApplication extends MovieClip implements IApplication { protected var _cursorHolder:Sprite; private var _info:ApplicationInfo; protected var _overlay:AbstractOverlay; protected var _mask:Sprite; protected var _background:Sprite; protected var _mainView:DisplayObjectContainer; protected var _preloader:AbstractPreloader; public function AbstractApplication(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String=null){ ApplicationGlobals.bigwigmedia_ns::_application = this; _info = new ApplicationInfo(_arg1, _arg2, _arg3, _arg4, _arg5); stop(); if (((root) && (root.loaderInfo))){ root.loaderInfo.addEventListener(Event.INIT, onRootInitHandler); }; } protected function createMask(_arg1:uint=0):void{ if (_mask){ return; }; _mask = new Sprite(); var _local2:Graphics = _mask.graphics; _local2.lineStyle(); _local2.beginFill(_arg1, 1); var _local3:int = nominalWidth; var _local4:int = nominalHeight; _local2.moveTo(0, 0); _local2.lineTo(_local3, 0); _local2.lineTo(_local3, _local4); _local2.lineTo(0, _local4); _local2.lineTo(0, 0); var _local5:int = ((maxScreenWidth - _local3) / 2); var _local6:int = ((maxScreenHeight - _local4) / 2); _local2.moveTo(-(_local5), -(_local6)); _local2.lineTo((_local3 + _local5), -(_local6)); _local2.lineTo((_local3 + _local5), (_local4 + _local6)); _local2.lineTo(-(_local5), (_local4 + _local6)); _local2.lineTo(-(_local5), -(_local6)); _local2.endFill(); addChild(_mask); sortChildren(); } private function initialize():void{ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = ""; dispatchEvent(new ApplicationEvent(ApplicationEvent.INIT)); } protected function fillBackground(_arg1:uint=0):void{ if (!_background){ _background = new Sprite(); addChild(_background); sortChildren(); }; var _local2:Graphics = _background.graphics; _local2.clear(); _local2.lineStyle(); _local2.beginFill(_arg1, 1); _local2.drawRect(0, 0, nominalWidth, nominalHeight); _local2.endFill(); } protected function loadingComplete():void{ dispatchEvent(new ApplicationEvent(ApplicationEvent.READY)); } protected function removeMask():void{ if (_mask){ removeChild(_mask); _mask = null; }; } protected function createMainView(_arg1:Object):void{ var _local2:Class; if (_mainView){ return; }; if ((_arg1 is Class)){ _local2 = (_arg1 as Class); _mainView = new (_local2); } else { if ((_arg1 is DisplayObjectContainer)){ _mainView = (_arg1 as DisplayObjectContainer); } else { throw (new ArgumentError("Parameter view must be Class or DisplayObjectContainer object.")); }; }; addChild(_mainView); sortChildren(); } private function onOverlayCompleteHandler(_arg1:Event):void{ removeOverlay(); } public function get nominalHeight():int{ return (loaderInfo.height); } public function get cursorHolder():Sprite{ if (!_cursorHolder){ _cursorHolder = new Sprite(); _cursorHolder.mouseEnabled = false; _cursorHolder.mouseChildren = false; addChild(_cursorHolder); sortChildren(); }; return (_cursorHolder); } public function removeOverlay():void{ if (_overlay){ _overlay.removeEventListener(Event.COMPLETE, onOverlayCompleteHandler); removeChild(_overlay); _overlay.dispose(); _overlay = null; }; } public function get info():ApplicationInfo{ return (_info); } protected function get maxScreenWidth():int{ return (Capabilities.screenResolutionX); } protected function get maxScreenHeight():int{ return (Capabilities.screenResolutionY); } public function createOverlay(_arg1:AbstractOverlay):void{ if (_overlay){ return; }; _overlay = _arg1; _overlay.addEventListener(Event.COMPLETE, onOverlayCompleteHandler); addChild(_overlay); sortChildren(); _overlay.start(); } protected function sortChildren():void{ var _local4:DisplayObject; var _local1:Array = []; if (_background){ _local1.push(_background); }; if (_mainView){ _local1.push(_mainView); }; if (_preloader){ _local1.push(_preloader); }; if (_overlay){ _local1.push(_overlay); }; if (_mask){ _local1.push(_mask); }; if (_cursorHolder){ _local1.push(_cursorHolder); }; var _local2:int = _local1.length; var _local3:int; while (_local3 < _local2) { _local4 = _local1[_local3]; if (getChildIndex(_local4) != _local3){ setChildIndex(_local4, _local3); }; _local3++; }; } protected function startPreloading(_arg1:AbstractPreloader=null):void{ if (_preloader){ return; }; _preloader = ((_arg1) || (new EmptyPreloader())); addChild(_preloader); _preloader.addEventListener(PreloaderEvent.COMPLETE, preloadingCompleteHandler); } private function onAddedToStageHandler(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler); initialize(); } public function get nominalWidth():int{ return (loaderInfo.width); } public function getURLVariable(_arg1:String, _arg2:Boolean=false):String{ var _local4:String; var _local5:String; var _local3:Object = loaderInfo.parameters; if (_arg2){ return (_local3[_arg1]); }; _local4 = _arg1.toLowerCase(); for (_local5 in _local3) { if (_local5.toLowerCase() == _local4){ return (_local3[_local5]); }; }; return (null); } private function preloadingCompleteHandler(_arg1:PreloaderEvent):void{ _preloader.removeEventListener(PreloaderEvent.COMPLETE, preloadingCompleteHandler); nextFrame(); dispatchEvent(new ApplicationEvent(ApplicationEvent.LOAD_COMPLETE)); loadingComplete(); } protected function clearBackground():void{ if (_background){ _background.graphics.clear(); }; } public function getClassByName(_arg1:String):Class{ var _local2:ApplicationDomain = loaderInfo.applicationDomain; if (_local2.hasDefinition(_arg1)){ return ((_local2.getDefinition(_arg1) as Class)); }; return (null); } public function get nominalFrameRate():Number{ return (loaderInfo.frameRate); } private function onRootInitHandler(_arg1:Event):void{ root.loaderInfo.removeEventListener(Event.INIT, onRootInitHandler); if (stage){ initialize(); } else { addEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler); }; } public function get mainView():DisplayObjectContainer{ return (_mainView); } } }//package com.bigwigmedia.application
Section 168
//AbstractApplication_2DPLay (com.bigwigmedia.application.AbstractApplication_2DPLay) package com.bigwigmedia.application { public class AbstractApplication_2DPLay extends AbstractApplication { public function AbstractApplication_2DPLay(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); } final public function getBigWigWrappedGameData():Object{ var _local1:Object = {url:loaderInfo.url, gameid:info.id, affid:loaderInfo.parameters.affid}; return (_local1); } } }//package com.bigwigmedia.application
Section 169
//ApplicationGlobals (com.bigwigmedia.application.ApplicationGlobals) package com.bigwigmedia.application { import com.bigwigmedia.core.*; public class ApplicationGlobals { bigwigmedia_ns static var _application:IApplication; public static function get application():IApplication{ return (bigwigmedia_ns::_application); } } }//package com.bigwigmedia.application
Section 170
//ApplicationInfo (com.bigwigmedia.application.ApplicationInfo) package com.bigwigmedia.application { public class ApplicationInfo { private var _sharedObjectPath:String; private var _name:String; private var _sharedObjectName:String; private var _version:String; private var _id:String; public function ApplicationInfo(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String){ _name = _arg1; _id = _arg2; _version = _arg3; _sharedObjectName = _arg4; _sharedObjectPath = _arg5; } public function get id():String{ return (_id); } public function get sharedObjectPath():String{ return (_sharedObjectPath); } public function get name():String{ return (_name); } public function get sharedObjectName():String{ return (_sharedObjectName); } public function get version():String{ return (_version); } } }//package com.bigwigmedia.application
Section 171
//IApplication (com.bigwigmedia.application.IApplication) package com.bigwigmedia.application { import flash.display.*; import com.bigwigmedia.effects.*; import flash.events.*; public interface IApplication extends IEventDispatcher { function get cursorHolder():Sprite; function get nominalHeight():int; function getClassByName(_arg1:String):Class; function get mainView():DisplayObjectContainer; function get nominalWidth():int; function removeOverlay():void; function get info():ApplicationInfo; function get nominalFrameRate():Number; function createOverlay(_arg1:AbstractOverlay):void; function getURLVariable(_arg1:String, _arg2:Boolean=false):String; function get stage():Stage; } }//package com.bigwigmedia.application
Section 172
//bigwigmedia_ns (com.bigwigmedia.core.bigwigmedia_ns) package com.bigwigmedia.core { public namespace bigwigmedia_ns = "http://www.bigwigmedia.com/flash/as3/namespace"; }//package com.bigwigmedia.core
Section 173
//IDisposable (com.bigwigmedia.core.IDisposable) package com.bigwigmedia.core { public interface IDisposable { function dispose():void; } }//package com.bigwigmedia.core
Section 174
//IUpdatable (com.bigwigmedia.core.IUpdatable) package com.bigwigmedia.core { public interface IUpdatable { function update():void; } }//package com.bigwigmedia.core
Section 175
//Singleton (com.bigwigmedia.core.Singleton) package com.bigwigmedia.core { public class Singleton { private static var interfaceToClassHash:Object = {}; private static var interfaceToInstanceHash:Object = {}; public static function getClass(_arg1:String):Class{ return (interfaceToClassHash[_arg1]); } public static function registerClass(_arg1:String, _arg2:Class):void{ var _local3:Class = interfaceToClassHash[_arg1]; if (!_local3){ interfaceToClassHash[_arg1] = _arg2; }; } public static function getInstance(_arg1:String):Object{ var _local2:Object = interfaceToInstanceHash[_arg1]; if (_local2){ return (_local2); }; var _local3:Class = interfaceToClassHash[_arg1]; if (!_local3){ throw (new Error((("No class registered for interface \"" + _arg1) + "\"."))); }; _local3.bigwigmedia_ns::singletonAccessor = true; _local2 = new (_local3); _local3.bigwigmedia_ns::singletonAccessor = true; interfaceToInstanceHash[_arg1] = _local2; return (_local2); } } }//package com.bigwigmedia.core
Section 176
//ColorBeacon (com.bigwigmedia.display.ColorBeacon) package com.bigwigmedia.display { import flash.display.*; import flash.events.*; import fl.motion.*; public class ColorBeacon implements IBeacon { private var _multiplier:Number; private var _color:uint; private var _colorTransform:Color; private var _frameCounter:Number;// = 0 private var _target:DisplayObject; private var _dFrameCounter:Number; private var _period:int; public function ColorBeacon(_arg1:uint, _arg2:Number=1, _arg3:int=30){ _colorTransform = new Color(); super(); _color = _arg1; _multiplier = _arg2; _period = _arg3; _colorTransform.tintColor = _arg1; _dFrameCounter = ((2 * Math.PI) / _arg3); } public function clone():IBeacon{ return (new ColorBeacon(_color, _multiplier, _period)); } public function apply(_arg1:DisplayObject):void{ _target = _arg1; _target.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } private function onEnterFrameHandler(_arg1:Event):void{ _colorTransform.tintMultiplier = ((_multiplier / 2) * (1 + Math.sin(_frameCounter))); _target.transform.colorTransform = _colorTransform; _frameCounter = (_frameCounter + _dFrameCounter); if (_frameCounter >= (2 * Math.PI)){ _frameCounter = 0; }; } public function dispose():void{ _target.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); _target = null; } } }//package com.bigwigmedia.display
Section 177
//ColorDecoration (com.bigwigmedia.display.ColorDecoration) package com.bigwigmedia.display { import flash.display.*; import flash.geom.*; public class ColorDecoration implements IDecoration { private var _colorTransform:ColorTransform; public function ColorDecoration(_arg1:ColorTransform){ _colorTransform = _arg1; } public function remove(_arg1:DisplayObject):void{ _arg1.transform.colorTransform = new ColorTransform(); } public function apply(_arg1:DisplayObject):void{ _arg1.transform.colorTransform = _colorTransform; } } }//package com.bigwigmedia.display
Section 178
//FilterDecoration (com.bigwigmedia.display.FilterDecoration) package com.bigwigmedia.display { import flash.display.*; import flash.filters.*; public class FilterDecoration implements IDecoration { private var _filters:Array; public function FilterDecoration(... _args){ var _local4:BitmapFilter; _filters = []; super(); var _local2:int = _args.length; var _local3:int; while (_local3 < _local2) { _local4 = _args[_local3]; _filters.push(_local4.clone()); _local3++; }; } public function remove(_arg1:DisplayObject):void{ _arg1.filters = []; } public function apply(_arg1:DisplayObject):void{ _arg1.filters = _filters; } } }//package com.bigwigmedia.display
Section 179
//IBeacon (com.bigwigmedia.display.IBeacon) package com.bigwigmedia.display { import com.bigwigmedia.core.*; public interface IBeacon extends IDecoration, IDisposable { function clone():IBeacon; } }//package com.bigwigmedia.display
Section 180
//IDecoration (com.bigwigmedia.display.IDecoration) package com.bigwigmedia.display { import flash.display.*; public interface IDecoration { function apply(_arg1:DisplayObject):void; } }//package com.bigwigmedia.display
Section 181
//TintDecoration (com.bigwigmedia.display.TintDecoration) package com.bigwigmedia.display { import fl.motion.*; public class TintDecoration extends ColorDecoration implements IDecoration { public function TintDecoration(_arg1:uint, _arg2:Number){ var _local3:Color = new Color(); _local3.setTint(_arg1, _arg2); super(_local3); } } }//package com.bigwigmedia.display
Section 182
//AbstractOverlay (com.bigwigmedia.effects.AbstractOverlay) package com.bigwigmedia.effects { import flash.display.*; import com.bigwigmedia.application.*; import flash.events.*; import com.bigwigmedia.core.*; public class AbstractOverlay extends Sprite implements IDisposable { protected var appWidth:int; protected var appHeight:int; private var mouseBlocker:Sprite; public function AbstractOverlay(_arg1:Boolean=true){ appWidth = ApplicationGlobals.application.nominalWidth; appHeight = ApplicationGlobals.application.nominalHeight; mouseChildren = false; addEventListener(MouseEvent.CLICK, onMouseEventHandler, false, 100); addEventListener(MouseEvent.MOUSE_DOWN, onMouseEventHandler, false, 100); if (_arg1){ mouseBlocker = new Sprite(); mouseBlocker.graphics.lineStyle(0, 0, 0); mouseBlocker.graphics.beginFill(0, 0); mouseBlocker.graphics.drawRect(0, 0, appWidth, appHeight); mouseBlocker.graphics.endFill(); addChild(mouseBlocker); }; } public function start():void{ } private function onMouseEventHandler(_arg1:MouseEvent):void{ _arg1.stopImmediatePropagation(); } public function dispose():void{ removeEventListener(MouseEvent.CLICK, onMouseEventHandler); removeEventListener(MouseEvent.MOUSE_DOWN, onMouseEventHandler); if (mouseBlocker){ removeChild(mouseBlocker); mouseBlocker = null; }; } } }//package com.bigwigmedia.effects
Section 183
//BlackoutOverlay (com.bigwigmedia.effects.BlackoutOverlay) package com.bigwigmedia.effects { import flash.events.*; import com.boostworthy.animation.sequence.tweens.*; import com.boostworthy.animation.sequence.*; import com.boostworthy.animation.rendering.*; public class BlackoutOverlay extends AbstractOverlay { private var timeline:Timeline; private var _peakCallback:Function; private var _color:uint; private var _halfDuration:uint; private var _completeCallback:Function; public function BlackoutOverlay(_arg1:Function, _arg2:Function=null, _arg3:uint=16, _arg4:uint=0){ super(true); _peakCallback = _arg1; _completeCallback = _arg2; _halfDuration = int((_arg3 / 2)); _color = _arg4; } override public function start():void{ alpha = 0; graphics.beginFill(_color, 1); graphics.moveTo(0, 0); graphics.lineTo(appWidth, 0); graphics.lineTo(appWidth, appHeight); graphics.lineTo(0, appHeight); graphics.lineTo(0, 0); graphics.endFill(); timeline = new Timeline(RenderMethod.ENTER_FRAME); timeline.addTween(new Tween(this, "alpha", 1, 1, _halfDuration)); timeline.addTween(new Action(onPeak, [], null, [], (_halfDuration + 1))); timeline.addTween(new Tween(this, "alpha", 0, (_halfDuration + 2), ((_halfDuration * 2) + 1))); timeline.addTween(new Action(onComplete, [], null, [], ((_halfDuration * 2) + 2))); timeline.play(); } private function onComplete():void{ graphics.clear(); if (_completeCallback != null){ _completeCallback(); }; dispatchEvent(new Event(Event.COMPLETE)); } private function onPeak():void{ _peakCallback(); } override public function dispose():void{ super.dispose(); _peakCallback = null; _completeCallback = null; graphics.clear(); timeline.dispose(); timeline = null; } } }//package com.bigwigmedia.effects
Section 184
//ApplicationEvent (com.bigwigmedia.events.ApplicationEvent) package com.bigwigmedia.events { import flash.events.*; public class ApplicationEvent extends Event { public static const INIT:String = "ApplicationEvent.init"; public static const LOAD_COMPLETE:String = "ApplicationEvent.loadComplete"; public static const READY:String = "ApplicationEvent.ready"; public function ApplicationEvent(_arg1:String){ super(_arg1, false, false); } override public function toString():String{ return (formatToString("ApplicationEvent", "type")); } override public function clone():Event{ return (new ApplicationEvent(type)); } } }//package com.bigwigmedia.events
Section 185
//ComponentEvent (com.bigwigmedia.events.ComponentEvent) package com.bigwigmedia.events { import flash.events.*; public class ComponentEvent extends Event { public static const BUTTON_DOWN:String = "ComponentEvent.buttonDown"; public static const CHANGE:String = "ComponentEvent.change"; public static const MOVE:String = "ComponentEvent.move"; public static const RESIZE:String = "ComponentEvent.resize"; public static const CLOSE:String = "ComponentEvent.close"; public static const SELECT:String = "ComponentEvent.select"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package com.bigwigmedia.events
Section 186
//EventPriority (com.bigwigmedia.events.EventPriority) package com.bigwigmedia.events { public class EventPriority { public static const DEFAULT:int = 0; public static const HIGH:int = 2000; public static const LOW:int = -2000; public static const LOWEST:int = -5000; public static const HIGHEST:int = 5000; } }//package com.bigwigmedia.events
Section 187
//KeyInputEvent (com.bigwigmedia.events.KeyInputEvent) package com.bigwigmedia.events { import flash.events.*; public class KeyInputEvent extends KeyboardEvent { private var _keyAction:String; public static const SEQUENCE:String = "KeyInputEvent.sequence"; public static const KEY_DOWN:String = "KeyInputEvent.keyDown"; public static const KEY_UP:String = "KeyInputEvent.keyUp"; public static const KEY_HOLD:String = "KeyInputEvent.keyHold"; public function KeyInputEvent(_arg1:String, _arg2:String, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:Boolean, _arg7:Boolean, _arg8:Boolean){ super(_arg1, false, false, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); _keyAction = _arg2; } override public function toString():String{ return (formatToString("KeyInputEvent", "type", "keyAction", "keyCode", "ctrlKey", "altKey", "shiftKey")); } public function get keyAction():String{ return (_keyAction); } override public function clone():Event{ return (new KeyInputEvent(type, keyAction, charCode, keyCode, keyLocation, ctrlKey, altKey, shiftKey)); } } }//package com.bigwigmedia.events
Section 188
//ModuleEvent (com.bigwigmedia.events.ModuleEvent) package com.bigwigmedia.events { import flash.events.*; import com.bigwigmedia.modules.*; public class ModuleEvent extends Event { private var _message:String; private var _module:IModule; public static const READY:String = "ModuleEvent.ready"; public static const ALL_PENDING_READY:String = "ModuleEvent.allPendingReady"; public static const ALL_PENDING_LOAD:String = "ModuleEvent.allPendingLoad"; public static const LOAD:String = "ModuleEvent.load"; public static const ERROR:String = "ModuleEvent.error"; public function ModuleEvent(_arg1:String, _arg2:IModule, _arg3:String=""){ super(_arg1); _module = _arg2; _message = _arg3; } override public function toString():String{ return (formatToString("ModuleEvent", "type", "module", "message")); } public function get message():String{ return (_message); } public function get module():IModule{ return (_module); } override public function clone():Event{ return (new ModuleEvent(type, _module, _message)); } } }//package com.bigwigmedia.events
Section 189
//PreloaderEvent (com.bigwigmedia.events.PreloaderEvent) package com.bigwigmedia.events { import flash.events.*; public class PreloaderEvent extends Event { private var _percentLoaded:Number; public static const COMPLETE:String = "PreloaderEvent.complete"; public static const PROGRESS:String = "PreloaderEvent.progress"; public function PreloaderEvent(_arg1:String, _arg2:Number){ super(_arg1, false, false); _percentLoaded = _arg2; } public function get percentLoaded():Number{ return (_percentLoaded); } override public function toString():String{ return (formatToString("PreloaderEvent", "type", "percentLoaded")); } override public function clone():Event{ return (new PreloaderEvent(type, _percentLoaded)); } } }//package com.bigwigmedia.events
Section 190
//ScrollEvent (com.bigwigmedia.events.ScrollEvent) package com.bigwigmedia.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; public static const THUMB_PRESS:String = "ScrollEvent.thumbPress"; public static const SCROLL:String = "ScrollEvent.change"; public static const THUMB_RELEASE:String = "ScrollEvent.thumbRelease"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _position = _arg2; } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ScrollEvent(type, _position, bubbles, cancelable)); } } }//package com.bigwigmedia.events
Section 191
//SliderEvent (com.bigwigmedia.events.SliderEvent) package com.bigwigmedia.events { import flash.events.*; public class SliderEvent extends Event { private var _value:Number; public static const CHANGE:String = "SliderEvent.change"; public static const KNOB_PRESS:String = "SliderEvent.knobPress"; public static const KNOB_RELEASE:String = "SliderEvent.knobRelease"; public function SliderEvent(_arg1:String, _arg2:Number, _arg3:Boolean=true, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _value = _arg2; } public function get value():Number{ return (_value); } override public function toString():String{ return (formatToString("SliderEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new SliderEvent(type, _value, bubbles, cancelable)); } } }//package com.bigwigmedia.events
Section 192
//TweenEvent (com.bigwigmedia.events.TweenEvent) package com.bigwigmedia.events { import flash.events.*; public class TweenEvent extends Event { public static const COMPLETE:String = "TweenEvent.complete"; public function TweenEvent(_arg1:String){ super(_arg1); } override public function toString():String{ return (formatToString("TweenEvent", "type")); } override public function clone():Event{ return (new TweenEvent(type)); } } }//package com.bigwigmedia.events
Section 193
//FontManager (com.bigwigmedia.font.FontManager) package com.bigwigmedia.font { import flash.system.*; import flash.text.*; import com.bigwigmedia.core.*; import flash.errors.*; public class FontManager implements IFontManager { private var _domain:ApplicationDomain; bigwigmedia_ns static var singletonAccessor:Boolean = false; public function FontManager(){ if (!bigwigmedia_ns::singletonAccessor){ throw (new IllegalOperationError("Use method getInstance of Singleton class to get instance of FontManager.")); }; _domain = ApplicationDomain.currentDomain; } public function getFontNameByID(_arg1:String):String{ return (getFont(_arg1).fontName); } public function get domain():ApplicationDomain{ return (_domain); } private function getFont(_arg1:String):Font{ var _local2:Class = getFontClass(_arg1); return ((new (_local2) as Font)); } public function registerFonts(... _args):void{ var _local2:uint; while (_local2 < _args.length) { Font.registerFont(getFontClass(_args[_local2])); _local2++; }; } public function set domain(_arg1:ApplicationDomain):void{ _domain = _arg1; } private function getFontClass(_arg1:String):Class{ if (_domain){ return ((_domain.getDefinition(_arg1) as Class)); }; return ((ApplicationDomain.currentDomain.getDefinition(_arg1) as Class)); } } }//package com.bigwigmedia.font
Section 194
//IFontManager (com.bigwigmedia.font.IFontManager) package com.bigwigmedia.font { import flash.system.*; public interface IFontManager { function set domain(_arg1:ApplicationDomain):void; function registerFonts(... _args):void; function getFontNameByID(_arg1:String):String; function get domain():ApplicationDomain; } }//package com.bigwigmedia.font
Section 195
//KeyInputManager (com.bigwigmedia.input.KeyInputManager) package com.bigwigmedia.input { import flash.display.*; import flash.events.*; import com.bigwigmedia.events.*; import com.bigwigmedia.core.*; public class KeyInputManager extends EventDispatcher implements IDisposable { private var actionToMapperHash:Object; private var target:InteractiveObject; private var keySequences:Object; private var keycodeToMapperHash:Object; public function KeyInputManager(_arg1:InteractiveObject){ actionToMapperHash = {}; keycodeToMapperHash = {}; keySequences = {}; super(); this.target = _arg1; this.target.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler); this.target.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler); } public function mapKey(_arg1:String, _arg2:uint):void{ var _local3:KeyMapper; _local3 = keycodeToMapperHash[_arg2]; if (_local3){ unmapKey(_local3.keyAction); }; _local3 = actionToMapperHash[_arg1]; if (_local3){ unmapKey(_arg1); }; _local3 = new KeyMapper(_arg1, _arg2); actionToMapperHash[_arg1] = _local3; keycodeToMapperHash[_arg2] = _local3; } public function unmapSequence(_arg1:String):void{ delete keySequences[_arg1]; } private function onKeyDownHandler(_arg1:KeyboardEvent):void{ var _local4:KeySequence; var _local2:uint = _arg1.keyCode; var _local3:KeyMapper = keycodeToMapperHash[_local2]; if (_local3){ dispatchEvent(new KeyInputEvent((_local3.isDown) ? KeyInputEvent.KEY_HOLD : KeyInputEvent.KEY_DOWN, _local3.keyAction, _arg1.charCode, _local2, _arg1.keyLocation, _arg1.ctrlKey, _arg1.altKey, _arg1.shiftKey)); _local3.isDown = true; }; for each (_local4 in keySequences) { if (_local4.checkNext(_local2)){ dispatchEvent(new KeyInputEvent(KeyInputEvent.SEQUENCE, _local4.keyAction, _arg1.charCode, _local2, _arg1.keyLocation, _arg1.ctrlKey, _arg1.altKey, _arg1.shiftKey)); }; }; } public function dispose():void{ unmapAll(); target.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler); target.removeEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler); target = null; } private function onKeyUpHandler(_arg1:KeyboardEvent):void{ var _local2:KeyMapper = keycodeToMapperHash[_arg1.keyCode]; if (_local2){ if (_local2.isDown){ dispatchEvent(new KeyInputEvent(KeyInputEvent.KEY_UP, _local2.keyAction, _arg1.charCode, _arg1.keyCode, _arg1.keyLocation, _arg1.ctrlKey, _arg1.altKey, _arg1.shiftKey)); }; _local2.isDown = false; }; } public function isKeyMapped(_arg1:uint):Boolean{ return (keycodeToMapperHash[_arg1]); } public function isKeyDown(_arg1:String):Boolean{ var _local2:KeyMapper = actionToMapperHash[_arg1]; return (((_local2) && (_local2.isDown))); } public function unmapKey(_arg1:String):void{ var _local2:KeyMapper = actionToMapperHash[_arg1]; if (_local2){ delete actionToMapperHash[_arg1]; delete keycodeToMapperHash[_local2.keyCode]; }; } public function mapSequence(_arg1:String, _arg2:Array):void{ keySequences[_arg1] = new KeySequence(_arg1, _arg2.slice()); } public function unmapAll():void{ actionToMapperHash = {}; keycodeToMapperHash = {}; keySequences = {}; } public function depressAll():void{ var _local1:KeyMapper; for each (_local1 in actionToMapperHash) { _local1.isDown = false; }; } } }//package com.bigwigmedia.input
Section 196
//KeyMapper (com.bigwigmedia.input.KeyMapper) package com.bigwigmedia.input { class KeyMapper { public var keyCode:uint; public var keyAction:String; public var isDown:Boolean;// = false function KeyMapper(_arg1:String, _arg2:uint){ this.keyAction = _arg1; this.keyCode = _arg2; } } }//package com.bigwigmedia.input
Section 197
//KeySequence (com.bigwigmedia.input.KeySequence) package com.bigwigmedia.input { import com.bigwigmedia.input.*; class KeySequence { private var sequence:Array; public var keyAction:String; private var nextKeyIndex:int;// = 0 function KeySequence(_arg1:String, _arg2:Array){ this.keyAction = _arg1; this.sequence = _arg2; } public function checkNext(_arg1:uint):Boolean{ if (sequence[nextKeyIndex] != _arg1){ nextKeyIndex = 0; }; if (sequence[nextKeyIndex] == _arg1){ if (++nextKeyIndex == sequence.length){ nextKeyIndex = 0; return (true); }; }; return (false); } } }//package com.bigwigmedia.input
Section 198
//AbstractLayer (com.bigwigmedia.map2d.layers.AbstractLayer) package com.bigwigmedia.map2d.layers { import flash.geom.*; public class AbstractLayer implements ILayer { protected var _renderName:String; protected var _scrollFactorX:Number; protected var _name:String; protected var _prevDestinationX:Number;// = NAN protected var _prevDestinationY:Number;// = NAN protected var _scrollFactorY:Number; public function AbstractLayer(_arg1:XML){ _name = _arg1.@name; _renderName = _arg1.@render; _scrollFactorX = (_arg1.@scrollFactorX / 100); _scrollFactorY = (_arg1.@scrollFactorY / 100); } public function isDirty(_arg1:Rectangle):Boolean{ throw (new Error("Override required.")); } public function draw(_arg1:Rectangle):void{ throw (new Error("Override required.")); } public function get name():String{ return (_name); } public function dispose():void{ } } }//package com.bigwigmedia.map2d.layers
Section 199
//ILayer (com.bigwigmedia.map2d.layers.ILayer) package com.bigwigmedia.map2d.layers { import flash.geom.*; import com.bigwigmedia.core.*; public interface ILayer extends IDisposable { function isDirty(_arg1:Rectangle):Boolean; function get name():String; function draw(_arg1:Rectangle):void; } }//package com.bigwigmedia.map2d.layers
Section 200
//MapBrush (com.bigwigmedia.map2d.layers.MapBrush) package com.bigwigmedia.map2d.layers { import flash.display.*; import com.bigwigmedia.resources.*; import flash.geom.*; import com.bigwigmedia.core.*; public class MapBrush { private var _rectList:Array; private var _rect:Rectangle; private var _height:int; private var _width:int; private var _name:String; private var _bitmapList:Array; private var _numFrames:int;// = 0 private var _bitmapData:BitmapData; public function MapBrush(_arg1:XML){ var _local4:XML; var _local5:BitmapData; var _local6:Rectangle; var _local7:Number; var _local8:Number; var _local9:BitmapData; var _local10:int; var _local11:int; var _local12:int; var _local13:int; _bitmapList = []; _rectList = []; super(); _name = _arg1.@name; _width = _arg1.@width; _height = _arg1.@height; var _local2:XMLList = _arg1.texture; var _local3:BitmapDataCache = bitmapDataCache; for each (_local4 in _local2) { _local5 = _local3.getBitmapDataByClassName(_local4.@bitmap); _local6 = new Rectangle(_local4.@x, _local4.@y, _local4.@width, _local4.@height); _local7 = _local6.width; _local8 = _local6.height; if ((((_width <= _local7)) && ((_height <= _local8)))){ _bitmapList.push(_local5); _rectList.push(_local6); } else { _local9 = new BitmapData(_width, _height, true, 0); _local10 = Math.ceil((_height / _local8)); _local11 = Math.ceil((_width / _local7)); _local12 = 0; while (_local12 < _local10) { _local13 = 0; while (_local13 < _local11) { _local9.copyPixels(_local5, _local6, new Point((_local13 * _local8), (_local12 * _local7)), null, null, true); _local13++; }; _local12++; }; _bitmapList.push(_local9); _rectList.push(_local9.rect); }; }; _bitmapData = _bitmapList[0]; _rect = _rectList[0]; _numFrames = _bitmapList.length; } public function setFrameCount(_arg1:uint):void{ var _local2:int = (_arg1 % _numFrames); _bitmapData = _bitmapList[_local2]; _rect = _rectList[_local2]; } public function get name():String{ return (_name); } public function get animated():Boolean{ return ((_numFrames > 1)); } public function get width():int{ return (_width); } public function get height():int{ return (_height); } public function get bitmapData():BitmapData{ return (_bitmapData); } public function get rect():Rectangle{ return (_rect); } public static function get bitmapDataCache():BitmapDataCache{ var _local1:IResourceManager = IResourceManager(Singleton.getInstance("com.bigwigmedia.resources::IResourceManager")); return (_local1.getBitmapDataCache("MapBrush_BitmapDataCache")); } } }//package com.bigwigmedia.map2d.layers
Section 201
//SpriteLayer (com.bigwigmedia.map2d.layers.SpriteLayer) package com.bigwigmedia.map2d.layers { import flash.display.*; import flash.geom.*; import com.bigwigmedia.map2d.renders.*; import com.bigwigmedia.map2d.*; import flash.errors.*; public class SpriteLayer extends Sprite implements ILayer { protected var _scrollFactorX:Number; protected var _name:String; protected var _prevDestinationX:Number;// = NAN protected var _prevDestinationY:Number;// = NAN protected var _scrollFactorY:Number; public function SpriteLayer(_arg1:XML, _arg2:Map2d){ _name = _arg1.@name; _scrollFactorX = (_arg1.@scrollFactorX / 100); _scrollFactorY = (_arg1.@scrollFactorY / 100); var _local3:String = _arg1.@render; var _local4:SpriteRender = (_arg2.createRender(_local3, SpriteRender) as SpriteRender); _local4.addLayer(this); } public function draw(_arg1:Rectangle):void{ var _local2:Number; var _local3:Number; _local2 = (-(_arg1.x) * _scrollFactorX); _local3 = (-(_arg1.y) * _scrollFactorY); this.x = _local2; this.y = _local3; _prevDestinationX = _local2; _prevDestinationY = _local3; } public function isDirty(_arg1:Rectangle):Boolean{ var _local2:Number = (-(_arg1.x) * _scrollFactorX); var _local3:Number = (-(_arg1.y) * _scrollFactorY); return (((!((_local2 == _prevDestinationX))) || (!((_local3 == _prevDestinationY))))); } override public function get name():String{ return (_name); } override public function set name(_arg1:String):void{ throw (new IllegalOperationError("Can't assign name.")); } public function dispose():void{ } } }//package com.bigwigmedia.map2d.layers
Section 202
//TextureLayer (com.bigwigmedia.map2d.layers.TextureLayer) package com.bigwigmedia.map2d.layers { import flash.display.*; import com.bigwigmedia.resources.*; import flash.geom.*; import com.bigwigmedia.map2d.renders.*; import com.bigwigmedia.map2d.*; import com.bigwigmedia.core.*; public class TextureLayer extends AbstractLayer { private var _height:int; private var _width:int; private var _renderBitmapData:BitmapData; private var _drawStrategy:Function; private var _bitmapData:BitmapData; private var _tempPoint:Point; public function TextureLayer(_arg1:XML, _arg2:Map2d){ var _local12:int; var _local13:int; var _local14:int; var _local15:int; _tempPoint = new Point(); super(_arg1); var _local3:BitmapRender = (_arg2.createRender(_renderName, BitmapRender) as BitmapRender); _local3.addLayer(this); _renderBitmapData = _local3.bitmapData; var _local4:XML = _arg1.texture[0]; _width = _local4.@width; _height = _local4.@height; var _local5 = (_local4.@wrapX == "true"); var _local6 = (_local4.@wrapY == "true"); if (((_local5) && (_local6))){ _drawStrategy = drawWrapAll; } else { if (_local5){ _drawStrategy = drawWrapX; } else { if (_local6){ _drawStrategy = drawWrapY; } else { _drawStrategy = drawWrapNone; }; }; }; var _local7:BitmapDataCache = bitmapDataCache; var _local8:BitmapData = _local7.getBitmapDataByClassName(_local4.@bitmap); _bitmapData = new BitmapData(_width, _height, true, 0); var _local9:int = _local8.width; var _local10:int = _local8.height; var _local11:Rectangle = _local8.rect; if ((((_width <= _local9)) && ((_height <= _local10)))){ _bitmapData.copyPixels(_local8, _local11, new Point(), null, null, true); } else { _local12 = Math.ceil((_height / _local10)); _local13 = Math.ceil((_width / _local9)); _local14 = 0; while (_local14 < _local12) { _local15 = 0; while (_local15 < _local13) { _bitmapData.copyPixels(_local8, _local11, new Point((_local15 * _local9), (_local14 * _local10)), null, null, true); _local15++; }; _local14++; }; }; } private function drawWrapAll(_arg1:Number, _arg2:Number):void{ var _local3:Number = (Math.floor((_arg1 / _width)) + 1); var _local4:int = (_arg1 - (_width * _local3)); var _local5:Number = (Math.floor((_arg2 / _height)) + 1); var _local6:int = (_arg2 - (_height * _local5)); _tempPoint.x = _local4; _tempPoint.y = _local6; _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); _tempPoint.x = (_tempPoint.x + _width); _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); _tempPoint.x = _local4; _tempPoint.y = (_tempPoint.y + _height); _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); _tempPoint.x = (_tempPoint.x + _width); _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); } override public function draw(_arg1:Rectangle):void{ var _local2:Number = (-(_arg1.x) * _scrollFactorX); var _local3:Number = (-(_arg1.y) * _scrollFactorY); _drawStrategy(_local2, _local3); _prevDestinationX = _local2; _prevDestinationY = _local3; } override public function isDirty(_arg1:Rectangle):Boolean{ var _local2:Number = (-(_arg1.x) * _scrollFactorX); var _local3:Number = (-(_arg1.y) * _scrollFactorY); return (((!((_local2 == _prevDestinationX))) || (!((_local3 == _prevDestinationY))))); } private function drawWrapX(_arg1:Number, _arg2:Number):void{ var _local3:Number = (Math.floor((_arg1 / _width)) + 1); var _local4:int = (_arg1 - (_width * _local3)); _tempPoint.x = _local4; _tempPoint.y = _arg2; _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); _tempPoint.x = (_tempPoint.x + _width); _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); } private function drawWrapNone(_arg1:Number, _arg2:Number):void{ _tempPoint.x = _arg1; _tempPoint.y = _arg2; _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); } private function drawWrapY(_arg1:Number, _arg2:Number):void{ var _local3:Number = (Math.floor((_arg2 / _height)) + 1); var _local4:int = (_arg2 - (_height * _local3)); _tempPoint.x = _arg1; _tempPoint.y = _local4; _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); _tempPoint.x = (_tempPoint.x + _height); _renderBitmapData.copyPixels(_bitmapData, _bitmapData.rect, _tempPoint, null, null, true); } override public function dispose():void{ _renderBitmapData = null; _bitmapData.dispose(); _bitmapData = null; } public static function get bitmapDataCache():BitmapDataCache{ var _local1:IResourceManager = IResourceManager(Singleton.getInstance("com.bigwigmedia.resources::IResourceManager")); return (_local1.getBitmapDataCache("TextureLayer_BitmapDataCache")); } } }//package com.bigwigmedia.map2d.layers
Section 203
//BitmapRender (com.bigwigmedia.map2d.renders.BitmapRender) package com.bigwigmedia.map2d.renders { import flash.display.*; import flash.geom.*; import com.bigwigmedia.map2d.layers.*; import com.bigwigmedia.map2d.*; public class BitmapRender extends Bitmap implements IRender { private var _numLayers:int;// = 0 private var _layerList:Array; public function BitmapRender(_arg1:Map2d){ _layerList = []; var _local2:Rectangle = _arg1.cameraRect; super(new BitmapData(_local2.width, _local2.height, true, 0), PixelSnapping.AUTO, true); } public function draw(_arg1:Rectangle):void{ var _local2:ILayer; var _local3:int; for each (_local2 in _layerList) { if (_local2.isDirty(_arg1)){ bitmapData.lock(); bitmapData.fillRect(bitmapData.rect, 0); _local3 = 0; while (_local3 < _numLayers) { _layerList[_local3].draw(_arg1); _local3++; }; bitmapData.unlock(); break; }; }; } public function dispose():void{ var _local1:ILayer; for each (_local1 in _layerList) { _local1.dispose(); }; _layerList = []; bitmapData.dispose(); } public function removeAllLayers():void{ _layerList = []; _numLayers = 0; } public function addLayer(_arg1:ILayer):void{ _numLayers = _layerList.push(_arg1); } } }//package com.bigwigmedia.map2d.renders
Section 204
//IRender (com.bigwigmedia.map2d.renders.IRender) package com.bigwigmedia.map2d.renders { import flash.geom.*; import com.bigwigmedia.map2d.layers.*; import com.bigwigmedia.core.*; public interface IRender extends IDisposable { function addLayer(_arg1:ILayer):void; function draw(_arg1:Rectangle):void; function removeAllLayers():void; } }//package com.bigwigmedia.map2d.renders
Section 205
//SpriteRender (com.bigwigmedia.map2d.renders.SpriteRender) package com.bigwigmedia.map2d.renders { import flash.display.*; import flash.geom.*; import com.bigwigmedia.map2d.layers.*; import com.bigwigmedia.map2d.*; public class SpriteRender extends Sprite implements IRender { private var _numLayers:int;// = 0 private var _layerList:Array; public function SpriteRender(_arg1:Map2d){ _layerList = []; super(); } public function draw(_arg1:Rectangle):void{ var _local2:ILayer; for each (_local2 in _layerList) { if (_local2.isDirty(_arg1)){ _local2.draw(_arg1); }; }; } public function removeAllLayers():void{ _layerList = []; _numLayers = 0; } public function get renderTarget():Object{ return (this); } public function dispose():void{ var _local1:ILayer; for each (_local1 in _layerList) { _local1.dispose(); removeChild((_local1 as DisplayObject)); }; _layerList = []; } public function addLayer(_arg1:ILayer):void{ _numLayers = _layerList.push(_arg1); addChild((_arg1 as DisplayObject)); } } }//package com.bigwigmedia.map2d.renders
Section 206
//FollowScrollStrategy (com.bigwigmedia.map2d.scrollClasses.FollowScrollStrategy) package com.bigwigmedia.map2d.scrollClasses { import flash.geom.*; import com.bigwigmedia.map2d.*; public class FollowScrollStrategy implements IScrollStrategy { private var _accelY:Number; private var _accelX:Number; public function FollowScrollStrategy(_arg1:Number=1, _arg2:Number=1){ _accelX = _arg1; _accelY = _arg2; } public function scroll(_arg1:Map2d, _arg2:Rectangle):void{ var _local3:Rectangle = _arg1.cameraRect; var _local4:Number = ((((_arg2.x + (_arg2.width / 2)) - _local3.x) - (_local3.width / 2)) / _accelX); var _local5:Number = ((((_arg2.y + (_arg2.height / 2)) - _local3.y) - (_local3.height / 2)) / _accelY); if (Math.abs(_local4) >= 0.6){ _arg1.cameraX = (_arg1.cameraX + _local4); }; if (Math.abs(_local5) >= 0.6){ _arg1.cameraY = (_arg1.cameraY + _local5); }; } } }//package com.bigwigmedia.map2d.scrollClasses
Section 207
//IScrollStrategy (com.bigwigmedia.map2d.scrollClasses.IScrollStrategy) package com.bigwigmedia.map2d.scrollClasses { import flash.geom.*; import com.bigwigmedia.map2d.*; public interface IScrollStrategy { function scroll(_arg1:Map2d, _arg2:Rectangle):void; } }//package com.bigwigmedia.map2d.scrollClasses
Section 208
//Map2d (com.bigwigmedia.map2d.Map2d) package com.bigwigmedia.map2d { import flash.display.*; import flash.geom.*; import flash.utils.*; import com.bigwigmedia.map2d.layers.*; import com.bigwigmedia.map2d.renders.*; import com.bigwigmedia.core.*; import com.bigwigmedia.map2d.scrollClasses.*; public class Map2d implements IUpdatable, IDisposable { private var _layerHash:Object; private var _currentRoomInfo:RoomInfo; private var _view:Sprite; private var _cameraRect:Rectangle; private var _updateCount:int;// = 0 private var _prevRoomInfo:RoomInfo; public var scrollStrategy:IScrollStrategy; private var _config:XML; private var _renderHash:Object; private var _brushHash:Object; private var _maxCameraX:Number; private var _maxCameraY:Number; public function Map2d(_arg1:XML){ _brushHash = {}; _renderHash = {}; _layerHash = {}; super(); _config = _arg1; _cameraRect = new Rectangle(0, 0, _config.@cameraWidth, _config.@cameraHeight); _view = new Sprite(); } public function update():void{ var _local1:IRender; for each (_local1 in _renderHash) { _local1.draw(_cameraRect); }; _updateCount++; } public function getBrush(_arg1:String):MapBrush{ var brushXML:XML; var name = _arg1; var brush:MapBrush = _brushHash[name]; if (!brush){ brushXML = _config.brushes.brush.(@name == name)[0]; brush = new MapBrush(brushXML); _brushHash[name] = brush; }; return (brush); } public function getRender(_arg1:String):IRender{ return (_renderHash[_arg1]); } public function get currentRoomInfo():RoomInfo{ return (_currentRoomInfo); } public function get cameraX():Number{ return (_cameraRect.x); } public function scroll(_arg1:Rectangle):void{ scrollStrategy.scroll(this, _arg1); } public function get updateCount():int{ return (_updateCount); } public function setRoom(_arg1:String):void{ var config:XML; var name = _arg1; config = _config.rooms.room.(@name == name)[0]; createRoom(config); } public function dispose():void{ var _local1:IRender; for each (_local1 in _renderHash) { _view.removeChild((_local1 as DisplayObject)); _local1.dispose(); }; _renderHash = {}; _brushHash = {}; _layerHash = {}; _currentRoomInfo = null; _prevRoomInfo = null; _view = null; } public function getLayer(_arg1:String):ILayer{ return (_layerHash[_arg1]); } public function get view():Sprite{ return (_view); } public function set cameraY(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; } else { if (_arg1 > _maxCameraY){ _arg1 = _maxCameraY; }; }; _cameraRect.y = int(_arg1); } public function get cameraY():Number{ return (_cameraRect.y); } public function set cameraX(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; } else { if (_arg1 > _maxCameraX){ _arg1 = _maxCameraX; }; }; _cameraRect.x = int(_arg1); } public function get cameraRect():Rectangle{ return (_cameraRect); } public function createRender(_arg1:String, _arg2:Class):IRender{ var _local3:IRender = _renderHash[_arg1]; if (!_local3){ _local3 = new _arg2(this); _renderHash[_arg1] = _local3; _view.addChild((_local3 as DisplayObject)); } else { if (Object(_local3).constructor != _arg2){ throw (new ArgumentError((((("Render with name=\"" + _arg1) + "\" exists already, but supplied class ") + _arg2) + " is incompatible"))); }; }; return (_local3); } private function createLayer(_arg1:XML):void{ var _local2:Class = (getDefinitionByName(_arg1["@class"]) as Class); var _local3:ILayer = new _local2(_arg1, this); _layerHash[_local3.name] = _local3; } public function createRoom(_arg1:XML):void{ var render:IRender; var layers:XMLList; var config = _arg1; for each (render in _renderHash) { _view.removeChild((render as DisplayObject)); render.dispose(); }; _renderHash = {}; _layerHash = {}; _prevRoomInfo = _currentRoomInfo; _currentRoomInfo = new RoomInfo(config); _maxCameraX = Math.max(0, (_currentRoomInfo.width - _cameraRect.width)); _maxCameraY = Math.max(0, (_currentRoomInfo.height - _cameraRect.height)); layers = config.layers.layer; layers.(createLayer(valueOf())); //not popped update(); } public function get prevRoomInfo():RoomInfo{ return (_prevRoomInfo); } } }//package com.bigwigmedia.map2d
Section 209
//RoomInfo (com.bigwigmedia.map2d.RoomInfo) package com.bigwigmedia.map2d { public class RoomInfo { private var _targetTop:String; private var _height:int; private var _width:int; private var _targetRight:String; private var _targetLeft:String; private var _name:String; private var _parametersHash:Object; private var _targetBottom:String; public function RoomInfo(_arg1:XML){ var config = _arg1; _parametersHash = {}; super(); _name = config.@name; _width = config.@width; _height = config.@height; _targetLeft = (config.hasOwnProperty("@targetLeft")) ? config.@targetLeft : RoomTransitionTarget.NONE; _targetRight = (config.hasOwnProperty("@targetRight")) ? config.@targetRight : RoomTransitionTarget.NONE; _targetTop = (config.hasOwnProperty("@targetTop")) ? config.@targetTop : RoomTransitionTarget.NONE; _targetBottom = (config.hasOwnProperty("@targetBottom")) ? config.@targetBottom : RoomTransitionTarget.NONE; var parameters:XMLList = config.parameters.parameter; parameters.(_parametersHash[@name] = @value); //not popped } public function get targetTop():String{ return (_targetTop); } public function get name():String{ return (_name); } public function get width():int{ return (_width); } public function get targetRight():String{ return (_targetRight); } public function get targetBottom():String{ return (_targetBottom); } public function get height():int{ return (_height); } public function getParameter(_arg1:String):String{ return (_parametersHash[_arg1]); } public function get targetLeft():String{ return (_targetLeft); } } }//package com.bigwigmedia.map2d
Section 210
//RoomTransitionTarget (com.bigwigmedia.map2d.RoomTransitionTarget) package com.bigwigmedia.map2d { public class RoomTransitionTarget { public static const SELF:String = "self"; public static const NONE:String = "none"; } }//package com.bigwigmedia.map2d
Section 211
//IModule (com.bigwigmedia.modules.IModule) package com.bigwigmedia.modules { import flash.events.*; import com.bigwigmedia.core.*; public interface IModule extends IEventDispatcher, IDisposable { function get bytesTotal():uint; function get bytesDecrypted():uint; function get encrypted():Boolean; function load(_arg1:String=""):void; function get percentDecrypted():Number; function get percentLoaded():Number; function decrypt(_arg1:String):void; function get url():String; function get bytesLoaded():uint; function get status():String; function get content(); } }//package com.bigwigmedia.modules
Section 212
//ISWFModule (com.bigwigmedia.modules.ISWFModule) package com.bigwigmedia.modules { import flash.system.*; public interface ISWFModule extends IModule { function getDefinitionByName(_arg1:String):Object; function getClassByName(_arg1:String):Class; function get applicationDomain():ApplicationDomain; } }//package com.bigwigmedia.modules
Section 213
//ISOManager (com.bigwigmedia.net.ISOManager) package com.bigwigmedia.net { import flash.events.*; public interface ISOManager extends IEventDispatcher { function flush(_arg1:int=0):String; function get dataEmpty():Boolean; function getValue(_arg1:String); function clear():void; function setValue(_arg1:String, _arg2):void; } }//package com.bigwigmedia.net
Section 214
//IURLCaller (com.bigwigmedia.net.IURLCaller) package com.bigwigmedia.net { public interface IURLCaller { function submitScore(_arg1:Object):void; function mainLink():void; function viewScores():void; function playMoreGames():void; function getURL(_arg1:String, _arg2:String="_blank"):void; function downloadGame():void; function getGame():void; } }//package com.bigwigmedia.net
Section 215
//SOManager (com.bigwigmedia.net.SOManager) package com.bigwigmedia.net { import flash.events.*; import com.bigwigmedia.core.*; import flash.net.*; import com.bigwigmedia.utils.*; import com.bigwigmedia.application.*; import flash.errors.*; public class SOManager extends EventDispatcher implements ISOManager { private var dataObject:Object; private var so:SharedObject; bigwigmedia_ns static var singletonAccessor:Boolean = false; public function SOManager(){ super(); if (!bigwigmedia_ns::singletonAccessor){ throw (new IllegalOperationError("Use method getInstance of Singleton class to get instance of SOManager.")); }; try { so = SharedObject.getLocal(ApplicationGlobals.application.info.sharedObjectName, ApplicationGlobals.application.info.sharedObjectPath); so.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusEventHandler); dataObject = so.data; } catch(e:Error) { dataObject = {}; }; } private function onNetStatusEventHandler(_arg1:NetStatusEvent):void{ dispatchEvent(_arg1.clone()); } public function getValue(_arg1:String){ return (dataObject[_arg1]); } public function get dataEmpty():Boolean{ var _local1:Boolean = ObjectUtil.hasProperties(dataObject); return (!(_local1)); } public function flush(_arg1:int=0):String{ if (so){ return (so.flush(_arg1)); }; return (SharedObjectFlushStatus.FLUSHED); } public function clear():void{ var _local1:String; if (so){ for (_local1 in dataObject) { delete dataObject[_local1]; }; so.clear(); } else { dataObject = {}; }; } public function setValue(_arg1:String, _arg2):void{ dataObject[_arg1] = _arg2; } } }//package com.bigwigmedia.net
Section 216
//URLCaller_2DPlay (com.bigwigmedia.net.URLCaller_2DPlay) package com.bigwigmedia.net { import com.bigwigmedia.application.*; import com.bigwigmedia.core.*; import com.adobe.crypto.*; import flash.net.*; import flash.errors.*; public class URLCaller_2DPlay implements IURLCaller { private var applicationID:String; bigwigmedia_ns static var singletonAccessor:Boolean = false; public function URLCaller_2DPlay(){ if (!bigwigmedia_ns::singletonAccessor){ throw (new IllegalOperationError("Use method getInstance of Singleton class to get instance of URLCaller_2DPlay.")); }; applicationID = ApplicationGlobals.application.info.id; } public function submitScore(_arg1:Object):void{ var _local2:String = MD5.hash((((("gameid=" + applicationID) + "&hiscore=") + _arg1.toString()) + "2DPlay.com/")); var _local3:String = ((((("http://www.2DPlay.com/highscores.php?gameid=" + applicationID) + "&hiscore=") + _arg1.toString()) + "&hash=") + _local2); getURL(_local3); } public function viewScores():void{ getURL(("http://www.2Dplay.com/showscores.php?gameid=" + applicationID)); } public function getGame():void{ getURL("http://www.2DPlay.com/freecontent.htm"); } public function mainLink():void{ getURL(("http://www.2DPlay.com/index.php?gameid=" + applicationID)); } public function playMoreGames():void{ getURL(("http://www.2DPlay.com/index.php?gameid=" + applicationID)); } public function getURL(_arg1:String, _arg2:String="_blank"):void{ navigateToURL(new URLRequest(_arg1), _arg2); } public function downloadGame():void{ getURL(("http://www.2DPlay.com/downloadgame.php?gameid=" + applicationID)); } } }//package com.bigwigmedia.net
Section 217
//AbstractPreloader (com.bigwigmedia.preloaders.AbstractPreloader) package com.bigwigmedia.preloaders { import flash.display.*; public class AbstractPreloader extends Sprite { public function get percentLoaded():Number{ if (!root){ return (0); }; var _local1:uint = root.loaderInfo.bytesLoaded; var _local2:uint = root.loaderInfo.bytesTotal; if (_local2 == 0){ return (((_local1 > 0)) ? 1 : 0); }; return ((_local1 / _local2)); } } }//package com.bigwigmedia.preloaders
Section 218
//EmptyPreloader (com.bigwigmedia.preloaders.EmptyPreloader) package com.bigwigmedia.preloaders { import flash.events.*; import com.bigwigmedia.events.*; import flash.utils.*; public class EmptyPreloader extends AbstractPreloader { private var timer:Timer; public function EmptyPreloader(){ timer = new Timer(100); timer.addEventListener(TimerEvent.TIMER, onTimerEventHandler); timer.start(); } private function onTimerEventHandler(_arg1:TimerEvent):void{ if (percentLoaded == 1){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, onTimerEventHandler); timer = null; dispatchEvent(new PreloaderEvent(PreloaderEvent.COMPLETE, 1)); }; } } }//package com.bigwigmedia.preloaders
Section 219
//Preloader_2DPlay (com.bigwigmedia.preloaders.Preloader_2DPlay) package com.bigwigmedia.preloaders { import flash.display.*; import com.bigwigmedia.application.*; import flash.events.*; import com.bigwigmedia.events.*; import flash.utils.*; import flash.system.*; import flash.net.*; public class Preloader_2DPlay extends AbstractPreloader { private var ad:Sprite; private var adLoader:Loader; private var logoAnimationCompleted:Boolean;// = false private var timer:Timer; private var animation:MovieClip; private var barCompleted:Boolean;// = false public var _logo:MovieClip; private var progressBar:MovieClip; private var progressBarMask:MovieClip; public static const AD_WIDTH:Number = 400; public static const NOMINAL_WIDTH:Number = 468; public static const AD_HEIGHT:Number = 350; public static const NOMINAL_HEIGHT:Number = 117; public function Preloader_2DPlay(_arg1:Boolean=true){ var _local2:int; var _local3:int; logoAnimationCompleted = false; barCompleted = false; super(); _logo.visible = false; animation = _logo.animation; progressBar = _logo.progressBar; progressBarMask = progressBar.progressBarMask; animation.stop(); animation.mouseChildren = false; animation.buttonMode = true; animation.addEventListener(MouseEvent.CLICK, onLogoClickHandler); progressBar.alpha = 0; _local2 = ApplicationGlobals.application.nominalWidth; _local3 = ApplicationGlobals.application.nominalHeight; if (NOMINAL_WIDTH > _local2){ _logo.scaleX = (_logo.scaleY = ((_local2 * 0.9) / NOMINAL_WIDTH)); }; _logo.x = ((_local2 - _logo.width) / 2); _logo.y = ((_local3 - _logo.height) / 2); if (Security.sandboxType == Security.LOCAL_WITH_FILE){ trace("Movie sandbox type is LOCAL WITH FILE. It can't participate in BigWig Media ad network."); startLogoAnimation(); } else { if (_arg1){ loadAd(); } else { startLogoAnimation(); }; }; } private function onLogoClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(("http://www.2DPlay.com/index.php?gameid=" + ApplicationGlobals.application.info.id)), "_blank"); } private function onAdCompleteHandler(_arg1:Event):void{ completeAd(); } private function onTimerEventHandler(_arg1:TimerEvent):void{ var _local2:Number; _local2 = percentLoaded; progressBarMask.scaleX = _local2; if (!logoAnimationCompleted){ if (animation.currentFrame == animation.totalFrames){ logoAnimationCompleted = true; } else { animation.nextFrame(); }; } else { if (!barCompleted){ if (_local2 == 1){ barCompleted = true; } else { progressBar.alpha = (progressBar.alpha + 0.1); if (progressBar.alpha >= 1){ barCompleted = true; progressBar.alpha = 1; }; }; } else { if (_local2 == 1){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, onTimerEventHandler); timer = null; animation.removeEventListener(MouseEvent.CLICK, onLogoClickHandler); dispatchEvent(new PreloaderEvent(PreloaderEvent.COMPLETE, 1)); }; }; }; _arg1.updateAfterEvent(); } private function completeAd():void{ adLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, onAdLoadErrorHandler); adLoader.contentLoaderInfo.sharedEvents.removeEventListener("BigwigInGameAdComplete", onAdCompleteHandler); try { adLoader.unload(); } catch(error:Error) { }; ad.removeChild(adLoader); adLoader = null; removeChild(ad); ad = null; startLogoAnimation(); } private function loadAd():void{ var applicationNominalWidth:int; var applicationNominalHeight:int; Security.allowDomain("adserver.bigwigmedia.com"); applicationNominalWidth = ApplicationGlobals.application.nominalWidth; applicationNominalHeight = ApplicationGlobals.application.nominalHeight; ad = new Sprite(); ad.graphics.lineStyle(); ad.graphics.beginFill(0xFFFFFF); ad.graphics.drawRect(0, 0, AD_WIDTH, AD_HEIGHT); ad.graphics.endFill(); if (AD_HEIGHT > applicationNominalHeight){ ad.scaleX = (ad.scaleY = ((applicationNominalHeight * 0.9) / AD_HEIGHT)); }; ad.x = ((applicationNominalWidth - ad.width) / 2); ad.y = ((applicationNominalHeight - ad.height) / 2); addChild(ad); adLoader = new Loader(); adLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onAdLoadErrorHandler); adLoader.contentLoaderInfo.sharedEvents.addEventListener("BigwigInGameAdComplete", onAdCompleteHandler); ad.addChild(adLoader); try { adLoader.load(new URLRequest("http://adserver.bigwigmedia.com/ingamead3.swf")); } catch(error:Error) { trace("Resource http://adserver.bigwigmedia.com/ingamead3.swf is unavailable."); completeAd(); }; } private function onAdLoadErrorHandler(_arg1:IOErrorEvent):void{ completeAd(); } private function startLogoAnimation():void{ graphics.lineStyle(); graphics.beginFill(2045285, 1); graphics.drawRect(0, 0, ApplicationGlobals.application.nominalWidth, ApplicationGlobals.application.nominalHeight); graphics.endFill(); _logo.visible = true; timer = new Timer(33); timer.addEventListener(TimerEvent.TIMER, onTimerEventHandler); timer.start(); } } }//package com.bigwigmedia.preloaders
Section 220
//BitmapDataCache (com.bigwigmedia.resources.BitmapDataCache) package com.bigwigmedia.resources { import flash.display.*; import flash.utils.*; public class BitmapDataCache { private var nameToBitmapDataHash:Object; public function BitmapDataCache(){ nameToBitmapDataHash = {}; super(); } public function getRegisteredBitmapData(_arg1:String):BitmapData{ var _local2:BitmapData = nameToBitmapDataHash[_arg1]; return (_local2); } public function getBitmapDataByClass(_arg1:Class):BitmapData{ var _local2:String = getQualifiedClassName(_arg1); var _local3:BitmapData = nameToBitmapDataHash[_local2]; if (!_local3){ _local3 = new _arg1(0, 0); nameToBitmapDataHash[_local2] = _local3; }; return (_local3); } public function clear():void{ nameToBitmapDataHash = {}; } public function registerBitmapData(_arg1:String, _arg2:BitmapData):void{ if (!nameToBitmapDataHash[_arg1]){ nameToBitmapDataHash[_arg1] = _arg2; }; } public function getBitmapDataByClassName(_arg1:String):BitmapData{ var _local3:Class; var _local2:BitmapData = nameToBitmapDataHash[_arg1]; if (!_local2){ _local3 = (getDefinitionByName(_arg1) as Class); _local2 = new _local3(0, 0); nameToBitmapDataHash[_arg1] = _local2; }; return (_local2); } } }//package com.bigwigmedia.resources
Section 221
//IResourceManager (com.bigwigmedia.resources.IResourceManager) package com.bigwigmedia.resources { import flash.display.*; import com.bigwigmedia.modules.*; public interface IResourceManager { function removeModule(_arg1:IModule):void; function getBitmapDataByClassNameFromModule(_arg1:String, _arg2:String):BitmapData; function getClassFromModule(_arg1:String, _arg2:String):Class; function getBitmapDataCache(_arg1:String):BitmapDataCache; function clearBitmapDataCache(_arg1:String):void; function addModule(_arg1:IModule):void; } }//package com.bigwigmedia.resources
Section 222
//ResourceManager (com.bigwigmedia.resources.ResourceManager) package com.bigwigmedia.resources { import flash.display.*; import com.bigwigmedia.modules.*; import com.bigwigmedia.core.*; import flash.errors.*; public class ResourceManager implements IResourceManager { private var urlToModuleHash:Object; private var nameToBitmapDataCacheHash:Object; private var urlToClassNameToClassHash:Object; private var urlToClassNameToBitmapDataHash:Object; bigwigmedia_ns static var singletonAccessor:Boolean = false; public function ResourceManager(){ nameToBitmapDataCacheHash = {}; urlToClassNameToBitmapDataHash = {}; urlToClassNameToClassHash = {}; urlToModuleHash = {}; super(); if (!bigwigmedia_ns::singletonAccessor){ throw (new IllegalOperationError("Use method getInstance of Singleton class to get instance of ResourceManager.")); }; } public function getBitmapDataByClassNameFromModule(_arg1:String, _arg2:String):BitmapData{ var _local5:Class; var _local3:Object = urlToClassNameToBitmapDataHash[_arg2]; var _local4:BitmapData = _local3[_arg1]; if (!_local4){ _local5 = ISWFModule(urlToModuleHash[_arg2]).getClassByName(_arg1); _local4 = new _local5(0, 0); _local3[_arg1] = _local4; }; return (_local4); } public function addModule(_arg1:IModule):void{ var _local2:String = _arg1.url; if (!urlToClassNameToBitmapDataHash[_local2]){ urlToClassNameToBitmapDataHash[_local2] = _arg1; urlToClassNameToBitmapDataHash[_local2] = {}; }; } public function removeModule(_arg1:IModule):void{ var _local2:String = _arg1.url; delete urlToModuleHash[_local2]; delete urlToClassNameToBitmapDataHash[_local2]; delete urlToClassNameToClassHash[_local2]; } public function getClassFromModule(_arg1:String, _arg2:String):Class{ var _local3:Object = urlToClassNameToClassHash[_arg2]; var _local4:Class = _local3[_arg1]; if (!_local4){ _local4 = ISWFModule(urlToModuleHash[_arg2]).getClassByName(_arg1); _local3[_arg1] = _local4; }; return (_local4); } public function getBitmapDataCache(_arg1:String):BitmapDataCache{ var _local2:BitmapDataCache = nameToBitmapDataCacheHash[_arg1]; if (!_local2){ _local2 = new BitmapDataCache(); nameToBitmapDataCacheHash[_arg1] = _local2; }; return (_local2); } public function clearBitmapDataCache(_arg1:String):void{ var _local2:BitmapDataCache = nameToBitmapDataCacheHash[_arg1]; if (_local2){ _local2.clear(); delete nameToBitmapDataCacheHash[_arg1]; }; } } }//package com.bigwigmedia.resources
Section 223
//Channel (com.bigwigmedia.sound.Channel) package com.bigwigmedia.sound { import com.boostworthy.events.*; import com.boostworthy.animation.management.*; public class Channel { private var _volume:Number;// = 1 private var _inDuration:Number; private var _pan:Number;// = 0 private var _transitionVolume:Number;// = 1 private var _nextSoundLoops:int; private var animationMan:AnimationManager; private var recordsHash:Object; private var _nextSoundID:String; private var transitionState:String;// = null private static const TRANS_STATE_OUT:String = "out"; private static const TRANS_STATE_IN:String = "in"; public function Channel(){ recordsHash = new Object(); super(); } public function set pan(_arg1:Number):void{ var _local2:Record; _pan = _arg1; if (_pan < -1){ _pan = -1; } else { if (_pan > 1){ _pan = 1; }; }; for each (_local2 in recordsHash) { _local2.channelPan = _pan; }; } public function stop():void{ var _local1:Record; for each (_local1 in recordsHash) { _local1.stop(); }; } public function playNextSound(_arg1:String, _arg2:int, _arg3:Number, _arg4:Number):void{ _nextSoundID = _arg1; _nextSoundLoops = _arg2; _inDuration = _arg4; if (!animationMan){ animationMan = new AnimationManager(); animationMan.addEventListener(AnimationEvent.FINISH, onAnimationFinishHandler); }; animationMan.remove(this); animationMan.property(this, "transitionVolume", 0, Math.max(100, (_transitionVolume * _arg3))); transitionState = TRANS_STATE_OUT; } public function get transitionVolume():Number{ return (_transitionVolume); } private function onAnimationFinishHandler(_arg1:AnimationEvent):void{ switch (transitionState){ case TRANS_STATE_OUT: stop(); if (_nextSoundID){ recordsHash[_nextSoundID].play(_nextSoundLoops); animationMan.property(this, "transitionVolume", 1, _inDuration); transitionState = TRANS_STATE_IN; } else { transitionVolume = 1; transitionState = null; }; break; case TRANS_STATE_IN: transitionState = null; break; }; } public function set transitionVolume(_arg1:Number):void{ var _local2:Record; _transitionVolume = _arg1; for each (_local2 in recordsHash) { _local2.volume = _arg1; }; } public function set volume(_arg1:Number):void{ var _local2:Record; _volume = _arg1; if (_volume < 0){ _volume = 0; } else { if (_volume > 1){ _volume = 1; }; }; for each (_local2 in recordsHash) { _local2.channelVolume = _volume; }; } public function get playing():Boolean{ var _local1:Record; for each (_local1 in recordsHash) { if (_local1.playing){ return (true); }; }; return (false); } public function unregisterSound(_arg1:String):void{ var _local2:Record = recordsHash[_arg1]; if (_local2){ _local2.dispose(); delete recordsHash[_arg1]; }; } public function registerSound(_arg1:String, _arg2:Record):void{ if (!recordsHash[_arg1]){ _arg2.channelVolume = _volume; _arg2.channelPan = _pan; recordsHash[_arg1] = _arg2; }; } } }//package com.bigwigmedia.sound
Section 224
//ISoundManager (com.bigwigmedia.sound.ISoundManager) package com.bigwigmedia.sound { public interface ISoundManager { function stopChannel(_arg1:String):void; function stop(_arg1:String):void; function registerRecord(_arg1:String, _arg2:Class, _arg3:String="channel_0"):void; function getChannel(_arg1:String):Channel; function playNext(_arg1:String, _arg2:String=null, _arg3:int=1, _arg4:Number=500, _arg5:Number=500):void; function setAllChannelsVolume(_arg1:Number):void; function setPan(_arg1:String, _arg2:Number):void; function playSingle(_arg1:String, _arg2:int=1):Boolean; function unregisterRecord(_arg1:String):void; function getRecord(_arg1:String):Record; function play(_arg1:String, _arg2:int=1):void; function setChannelVolume(_arg1:String, _arg2:Number):void; function setChannelPan(_arg1:String, _arg2:Number):void; function setVolume(_arg1:String, _arg2:Number):void; function stopAll():void; } }//package com.bigwigmedia.sound
Section 225
//Record (com.bigwigmedia.sound.Record) package com.bigwigmedia.sound { import flash.events.*; import flash.media.*; import com.bigwigmedia.core.*; public class Record implements IDisposable { private var _channelPan:Number;// = 0 private var _volume:Number;// = 1 private var sound:Sound; private var _pan:Number;// = 0 private var soundTransform:SoundTransform; private var _playing:Boolean;// = false private var soundChannel:SoundChannel; private var _channelVolume:Number;// = 1 public function Record(_arg1:Sound){ soundTransform = new SoundTransform(); super(); this.sound = _arg1; } public function set pan(_arg1:Number):void{ _pan = _arg1; if (_pan < -1){ _pan = -1; } else { if (_pan > 1){ _pan = 1; }; }; setResultTransform(); } public function stop():void{ if (_playing){ soundChannel.stop(); soundChannel.removeEventListener(Event.SOUND_COMPLETE, onCompleteHandler); _playing = false; }; } public function play(_arg1:int):void{ stop(); soundChannel = sound.play(0, _arg1, soundTransform); soundChannel.addEventListener(Event.SOUND_COMPLETE, onCompleteHandler); _playing = true; } function set channelPan(_arg1:Number):void{ _channelPan = _arg1; setResultTransform(); } private function setResultTransform():void{ var _local1:Number = (_pan + _channelPan); if (_local1 < -1){ _local1 = -1; } else { if (_local1 > 1){ _local1 = 1; }; }; soundTransform.pan = _local1; soundTransform.volume = (_volume * _channelVolume); if (_playing){ soundChannel.soundTransform = soundTransform; }; } public function get volume():Number{ return (_volume); } public function get pan():Number{ return (_pan); } public function dispose():void{ stop(); soundChannel = null; sound = null; soundTransform = null; } public function get playing():Boolean{ return (_playing); } public function set volume(_arg1:Number):void{ _volume = _arg1; if (_volume < 0){ _volume = 0; } else { if (_volume > 1){ _volume = 1; }; }; setResultTransform(); } private function onCompleteHandler(_arg1:Event):void{ soundChannel.removeEventListener(Event.SOUND_COMPLETE, onCompleteHandler); _playing = false; } function set channelVolume(_arg1:Number):void{ _channelVolume = _arg1; setResultTransform(); } } }//package com.bigwigmedia.sound
Section 226
//SoundManager (com.bigwigmedia.sound.SoundManager) package com.bigwigmedia.sound { import com.bigwigmedia.core.*; import flash.errors.*; public class SoundManager implements ISoundManager { private var recordsHash:Object; private var channelsHash:Object; bigwigmedia_ns static var singletonAccessor:Boolean = false; public function SoundManager(){ channelsHash = {}; recordsHash = {}; super(); if (!bigwigmedia_ns::singletonAccessor){ throw (new IllegalOperationError("Use method getInstance of Singleton class to get instance of SoundManager.")); }; } public function stop(_arg1:String):void{ var _local2:Record = recordsHash[_arg1]; _local2.stop(); } public function stopAll():void{ var _local1:Record; for each (_local1 in recordsHash) { _local1.stop(); }; } public function playNext(_arg1:String, _arg2:String=null, _arg3:int=1, _arg4:Number=750, _arg5:Number=750):void{ var _local6:Channel = channelsHash[_arg1]; _local6.playNextSound(_arg2, _arg3, _arg4, _arg5); } public function getChannel(_arg1:String):Channel{ return (channelsHash[_arg1]); } public function getRecord(_arg1:String):Record{ return (recordsHash[_arg1]); } public function setAllChannelsVolume(_arg1:Number):void{ var _local2:Channel; for each (_local2 in channelsHash) { _local2.volume = _arg1; }; } public function registerRecord(_arg1:String, _arg2:Class, _arg3:String="default"):void{ if (recordsHash[_arg1]){ throw (new Error((("Record with \"" + _arg1) + "\" identifier already exists."))); }; var _local4:Channel = channelsHash[_arg3]; if (!_local4){ _local4 = new Channel(); channelsHash[_arg3] = _local4; }; var _local5:Record = new Record(new (_arg2)); recordsHash[_arg1] = _local5; _local4.registerSound(_arg1, _local5); } public function stopChannel(_arg1:String):void{ var _local2:Channel = channelsHash[_arg1]; _local2.stop(); } public function setVolume(_arg1:String, _arg2:Number):void{ var _local3:Record = recordsHash[_arg1]; _local3.volume = _arg2; } public function playSingle(_arg1:String, _arg2:int=1):Boolean{ var _local3:Record = recordsHash[_arg1]; if (_local3.playing){ return (false); }; _local3.play(_arg2); return (true); } public function setPan(_arg1:String, _arg2:Number):void{ var _local3:Record = recordsHash[_arg1]; _local3.pan = _arg2; } public function setChannelPan(_arg1:String, _arg2:Number):void{ var _local3:Channel = channelsHash[_arg1]; _local3.pan = _arg2; } public function unregisterRecord(_arg1:String):void{ var _local2:Channel; if (!recordsHash[_arg1]){ throw (new Error((("Record with \"" + _arg1) + "\" identifier doesn't exist."))); }; for each (_local2 in channelsHash) { _local2.unregisterSound(_arg1); }; delete recordsHash[_arg1]; } public function play(_arg1:String, _arg2:int=1):void{ var _local3:Record = recordsHash[_arg1]; _local3.play(_arg2); } public function setChannelVolume(_arg1:String, _arg2:Number):void{ var _local3:Channel = channelsHash[_arg1]; _local3.volume = _arg2; } } }//package com.bigwigmedia.sound
Section 227
//HSMError (com.bigwigmedia.stateMachine.errors.HSMError) package com.bigwigmedia.stateMachine.errors { public class HSMError extends Error { public function HSMError(_arg1:String=""){ super(_arg1); } } }//package com.bigwigmedia.stateMachine.errors
Section 228
//HSMEvent (com.bigwigmedia.stateMachine.events.HSMEvent) package com.bigwigmedia.stateMachine.events { import com.bigwigmedia.stateMachine.*; import flash.events.*; public class HSMEvent extends Event { private var _state:AbstractState; private var _event:AbstractEvent; public static const START:String = "HSMEvent.start"; public static const EVENT_RECIEVE:String = "HSMEvent.eventRecieve"; public static const COMPLETE:String = "HSMEvent.complete"; public static const STATE_CHANGE:String = "HSMEvent.stateChange"; public function HSMEvent(_arg1:String, _arg2:AbstractState=null, _arg3:AbstractEvent=null){ super(_arg1); _state = _arg2; _event = _arg3; } public function get state():AbstractState{ return (_state); } public function get event():AbstractEvent{ return (_event); } override public function toString():String{ return (formatToString("HSMEvent", "type", "state", "event")); } override public function clone():Event{ return (new HSMEvent(type, _state, _event)); } } }//package com.bigwigmedia.stateMachine.events
Section 229
//StateEvent (com.bigwigmedia.stateMachine.events.StateEvent) package com.bigwigmedia.stateMachine.events { import flash.events.*; public class StateEvent extends Event { private var _data:Object; public static const ADDED_TRIGGER:String = "StateEvent.addedTrigger"; public static const DEACTIVATE:String = "StateEvent.deactivate"; public function StateEvent(_arg1:String, _arg2:Object=null){ super(_arg1); _data = _arg2; } public function get data():Object{ return (_data); } override public function clone():Event{ return (new StateEvent(type, _data)); } } }//package com.bigwigmedia.stateMachine.events
Section 230
//TriggerEvent (com.bigwigmedia.stateMachine.events.TriggerEvent) package com.bigwigmedia.stateMachine.events { import com.bigwigmedia.stateMachine.*; import flash.events.*; public class TriggerEvent extends Event { private var _raisedEvent:AbstractEvent; public static const TRIGGER:String = "TriggerEvent.trigger"; public function TriggerEvent(_arg1:String, _arg2:AbstractEvent){ super(_arg1); _raisedEvent = _arg2; } public function get raisedEvent():AbstractEvent{ return (_raisedEvent); } override public function clone():Event{ return (new TriggerEvent(type, _raisedEvent)); } } }//package com.bigwigmedia.stateMachine.events
Section 231
//AbstractEvent (com.bigwigmedia.stateMachine.AbstractEvent) package com.bigwigmedia.stateMachine { import com.bigwigmedia.utils.*; public class AbstractEvent { public function toString():String{ return (ObjectUtil.formatToString(this)); } } }//package com.bigwigmedia.stateMachine
Section 232
//AbstractState (com.bigwigmedia.stateMachine.AbstractState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.events.*; import flash.events.*; import com.bigwigmedia.core.*; import com.bigwigmedia.stateMachine.errors.*; import com.bigwigmedia.utils.*; public class AbstractState extends EventDispatcher implements IUpdatable, IDisposable { private var _id:String; public var name:String; private var _parent:CompositeState; private var updatableTriggers:Array; private var _active:Boolean;// = false private var _owned:Boolean;// = false protected var transitionsList:Array; private static var idCount:int = 0; public function AbstractState(){ transitionsList = []; updatableTriggers = []; super(); _id = String(idCount++); name = ((NameUtil.getClassName(this) + "_") + _id); } function setParent(_arg1:CompositeState):void{ _parent = _arg1; } public function update():void{ var _local1:IUpdatable; for each (_local1 in updatableTriggers) { _local1.update(); }; } public function get id():String{ return (_id); } public function isAncestor(_arg1:AbstractState):Boolean{ var _local2:AbstractState = _parent; while (_local2) { if (_local2 == _arg1){ return (true); }; _local2 = _local2.parent; }; return (false); } function setOwned(_arg1:Boolean):void{ _owned = _arg1; } public function get parent():CompositeState{ return (_parent); } override public function toString():String{ return (ObjectUtil.formatToString(this, "name")); } public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ var _local6:Transition; _arg2 = ((_arg2) || (new EmptyTrigger())); var _local5:Transition = new Transition(this, _arg1, _arg2, _arg3, _arg4); for each (_local6 in transitionsList) { if (_local6.conflicts(_local5)){ throw (new HSMError("State can't have conflicting outgoing transitions.")); }; }; transitionsList.push(_local5); if ((_arg2 is IUpdatable)){ updatableTriggers.push(_arg2); }; dispatchEvent(new StateEvent(StateEvent.ADDED_TRIGGER, _arg2)); } public function getActiveTransition(_arg1:AbstractEvent):Transition{ var _local4:Transition; var _local2:int = transitionsList.length; var _local3:int; while (_local3 < _local2) { _local4 = transitionsList[_local3]; if (_local4.willFire(_arg1)){ return (_local4); }; _local3++; }; return (null); } public function dispose():void{ var _local1:Transition; deactivate(null); for each (_local1 in transitionsList) { _local1.dispose(); }; transitionsList = []; updatableTriggers = []; _parent = null; } public function getTransitionLevel(_arg1:AbstractState):String{ if (this == _arg1){ return (TransitionLevel.TO_SELF); }; if (this.parent == _arg1.parent){ return (TransitionLevel.TO_SIBLING); }; if (this.isAncestor(_arg1)){ return (TransitionLevel.TO_ANCESTOR); }; if (_arg1.isAncestor(this)){ return (TransitionLevel.TO_DESCENDANT); }; return (TransitionLevel.TO_IRRELATIVE); } public function activate(_arg1:AbstractEvent):void{ var _local2:Transition; _active = true; for each (_local2 in transitionsList) { _local2.trigger.activate(); }; } public function deactivate(_arg1:AbstractEvent):void{ var _local2:Transition; _active = false; for each (_local2 in transitionsList) { _local2.trigger.deactivate(); }; dispatchEvent(new StateEvent(StateEvent.DEACTIVATE)); } public function get owned():Boolean{ return (_owned); } } }//package com.bigwigmedia.stateMachine
Section 233
//AbstractTrigger (com.bigwigmedia.stateMachine.AbstractTrigger) package com.bigwigmedia.stateMachine { import flash.events.*; import com.bigwigmedia.core.*; public class AbstractTrigger extends EventDispatcher implements IDisposable { public function activate():void{ } public function deactivate():void{ } public function equals(_arg1:AbstractTrigger):Boolean{ throw (new Error("Method must be overriden in subclass.")); } public function willFire(_arg1:AbstractEvent):Boolean{ throw (new Error("Method must be overriden in subclass.")); } public function dispose():void{ } } }//package com.bigwigmedia.stateMachine
Section 234
//ChoiceState (com.bigwigmedia.stateMachine.ChoiceState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.errors.*; public class ChoiceState extends AbstractState { override public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ if (((_arg2) && (!((_arg2 is EmptyTrigger))))){ throw (new HSMError("Transition from ChoiceState may not have a trigger.")); }; super.addTransition(_arg1, _arg2, _arg3, _arg4); } } }//package com.bigwigmedia.stateMachine
Section 235
//CompositeState (com.bigwigmedia.stateMachine.CompositeState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.events.*; import com.bigwigmedia.stateMachine.errors.*; public class CompositeState extends SimpleState { private var substatesList:Array; private var _initialState:InitialState; private var _lastActiveState:AbstractState; private var hasHistoryState:Boolean;// = false public function CompositeState(_arg1:Function=null, _arg2:Function=null, _arg3:Function=null){ substatesList = []; super(_arg1, _arg2, _arg3); } private function onStateDeactivateHandler(_arg1:StateEvent):void{ if (hasHistoryState){ _lastActiveState = (_arg1.target as AbstractState); }; } public function get initial():InitialState{ return (_initialState); } public function addState(_arg1:AbstractState):AbstractState{ if (_arg1.owned){ throw (new HSMError("State can't be added twice.")); }; if ((_arg1 is InitialState)){ if (_initialState){ throw (new HSMError("CompositeState can have at most one InitialState.")); }; _initialState = (_arg1 as InitialState); } else { if ((_arg1 is HistoryState)){ if (hasHistoryState){ throw (new HSMError("CompositeState can have at most one HistoryState.")); }; hasHistoryState = true; }; }; _arg1.addEventListener(StateEvent.ADDED_TRIGGER, onAddedTriggerHandler); _arg1.addEventListener(StateEvent.DEACTIVATE, onStateDeactivateHandler); substatesList.push(_arg1); _arg1.setParent(this); _arg1.setOwned(true); return (_arg1); } private function onAddedTriggerHandler(_arg1:StateEvent):void{ dispatchEvent(_arg1.clone()); } public function get history():AbstractState{ return (((_lastActiveState) || (_initialState))); } override public function dispose():void{ var _local1:AbstractState; for each (_local1 in substatesList) { _local1.removeEventListener(StateEvent.DEACTIVATE, onStateDeactivateHandler); _local1.removeEventListener(StateEvent.ADDED_TRIGGER, onAddedTriggerHandler); _local1.dispose(); }; substatesList = []; _initialState = null; _lastActiveState = null; super.dispose(); } } }//package com.bigwigmedia.stateMachine
Section 236
//EmptyEvent (com.bigwigmedia.stateMachine.EmptyEvent) package com.bigwigmedia.stateMachine { public class EmptyEvent extends AbstractEvent { } }//package com.bigwigmedia.stateMachine
Section 237
//EmptyTrigger (com.bigwigmedia.stateMachine.EmptyTrigger) package com.bigwigmedia.stateMachine { public class EmptyTrigger extends AbstractTrigger { override public function willFire(_arg1:AbstractEvent):Boolean{ return ((_arg1 is EmptyEvent)); } override public function equals(_arg1:AbstractTrigger):Boolean{ return ((_arg1 is EmptyTrigger)); } } }//package com.bigwigmedia.stateMachine
Section 238
//FinalState (com.bigwigmedia.stateMachine.FinalState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.errors.*; public class FinalState extends SimpleState { override public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ throw (new HSMError("FinalState can't have any outgoing transitions.")); } } }//package com.bigwigmedia.stateMachine
Section 239
//FSM (com.bigwigmedia.stateMachine.FSM) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.events.*; import flash.events.*; import com.bigwigmedia.stateMachine.errors.*; public class FSM extends EventDispatcher implements IStateMachine { protected var statesList:Array; protected var started:Boolean;// = false protected var currentState:AbstractState; protected var inTransition:Boolean;// = false protected var initialState:InitialState; protected var eventsQueue:Array; public function FSM(){ statesList = []; eventsQueue = []; super(); } protected function doTransition(_arg1:Transition, _arg2:AbstractEvent=null):void{ if (inTransition){ eventsQueue.push(_arg2); return; }; inTransition = true; currentState = _arg1.target; _arg1.source.deactivate(_arg2); _arg1.invokeEffect(_arg2); _arg1.target.activate(_arg2); inTransition = false; dispatchEvent(new HSMEvent(HSMEvent.STATE_CHANGE, currentState, _arg2)); if ((((currentState is FinalState)) && (!(currentState.parent)))){ dispatchEvent(new HSMEvent(HSMEvent.COMPLETE, currentState, _arg2)); }; sendEvent(new EmptyEvent()); if (eventsQueue.length > 0){ sendEvent(eventsQueue.shift()); }; } public function update():void{ currentState.update(); } private function hasState(_arg1:AbstractState):Boolean{ var _local2:int = statesList.indexOf(_arg1); return (!((_local2 == -1))); } public function sendSignal(_arg1:SignalEvent):void{ sendEvent(_arg1); } public function dispose():void{ var _local1:AbstractState; for each (_local1 in statesList) { _local1.removeEventListener(StateEvent.ADDED_TRIGGER, onAddedTriggerHandler); _local1.dispose(); }; statesList = []; initialState = null; currentState = null; started = false; } public function start(_arg1:AbstractState=null):void{ if (started){ return; }; var _local2:AbstractState = ((_arg1) || (initialState)); if (!hasState(_local2)){ throw (new HSMError("InitialState doesn't exist or is not immediate state of state machine.")); }; started = true; dispatchEvent(new HSMEvent(HSMEvent.START)); var _local3:Transition = new Transition(null, _local2, null, null, null); doTransition(_local3, new SignalEvent(SignalEvent.START)); } protected function stateAdded(_arg1:AbstractState):void{ _arg1.addEventListener(StateEvent.ADDED_TRIGGER, onAddedTriggerHandler); statesList.push(_arg1); _arg1.setOwned(true); } public function addState(_arg1:AbstractState):AbstractState{ if (_arg1.owned){ throw (new HSMError("State can't be added twice.")); }; if ((_arg1 is CompositeState)){ throw (new HSMError("FSM cannot have composite states.")); }; if ((_arg1 is HistoryState)){ throw (new HSMError("State machine can't have any HistoryState.")); }; if ((_arg1 is InitialState)){ if (initialState){ throw (new HSMError("State machine can have at most one InitialState.")); }; initialState = (_arg1 as InitialState); }; stateAdded(_arg1); return (_arg1); } private function onTriggerHandler(_arg1:TriggerEvent):void{ sendEvent(_arg1.raisedEvent); } protected function sendEvent(_arg1:AbstractEvent):void{ if (!started){ throw (new HSMError("State machine is not started.")); }; dispatchEvent(new HSMEvent(HSMEvent.EVENT_RECIEVE, currentState, _arg1)); if ((((currentState is FinalState)) && (!(currentState.parent)))){ return; }; var _local2:Transition = currentState.getActiveTransition(_arg1); if (_local2){ doTransition(_local2, _arg1); }; } private function onAddedTriggerHandler(_arg1:StateEvent):void{ var _local2:AbstractTrigger = (_arg1.data as AbstractTrigger); _local2.addEventListener(TriggerEvent.TRIGGER, onTriggerHandler); } } }//package com.bigwigmedia.stateMachine
Section 240
//HistoryState (com.bigwigmedia.stateMachine.HistoryState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.errors.*; public class HistoryState extends AbstractState { override public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ if (transitionsList.length == 1){ throw (new HSMError("HistoryState can have at most one outgoing transition.")); }; if (((_arg2) && (!((_arg2 is EmptyTrigger))))){ throw (new HSMError("Transition from HistoryState may not have a trigger.")); }; super.addTransition(_arg1, _arg2, _arg3, _arg4); } } }//package com.bigwigmedia.stateMachine
Section 241
//HSM (com.bigwigmedia.stateMachine.HSM) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.events.*; import com.bigwigmedia.stateMachine.errors.*; public class HSM extends FSM { private var routesHash:Object; private var activeStates:Array; public function HSM(){ activeStates = []; routesHash = {}; super(); } override protected function doTransition(_arg1:Transition, _arg2:AbstractEvent=null):void{ if (inTransition){ eventsQueue.push(_arg2); return; }; inTransition = true; var _local3:AbstractState = _arg1.target; if ((_local3 is CompositeState)){ _local3 = ((CompositeState(_local3).initial) || (_local3)); } else { if ((_local3 is HistoryState)){ _local3 = _local3.parent.history; }; }; var _local4:Array = getExitRoute(currentState, _local3); var _local5:Array = getEntryRoute(currentState, _local3); activeStates = getStack(_local5[(_local5.length - 1)]); currentState = activeStates[0]; var _local6:int = _local4.length; var _local7:int; while (_local7 < _local6) { _local4[_local7].deactivate(_arg2); _local7++; }; _arg1.invokeEffect(_arg2); var _local8:int = _local5.length; var _local9:int; while (_local9 < _local8) { _local5[_local9].activate(_arg2); _local9++; }; inTransition = false; dispatchEvent(new HSMEvent(HSMEvent.STATE_CHANGE, currentState, _arg2)); if ((((currentState is FinalState)) && (!(currentState.parent)))){ dispatchEvent(new HSMEvent(HSMEvent.COMPLETE, currentState, _arg2)); }; sendEvent(new EmptyEvent()); if (eventsQueue.length > 0){ sendEvent(eventsQueue.shift()); }; } override public function dispose():void{ routesHash = {}; activeStates = []; super.dispose(); } override public function update():void{ var _local1:int = activeStates.length; var _local2:int; while (_local2 < _local1) { activeStates[_local2].update(); _local2++; }; } private function getEntryRoute(_arg1:AbstractState, _arg2:AbstractState):Array{ var _local5:AbstractState; var _local7:Array; if (!_arg1){ _local7 = getStack(_arg2).slice(); _local7.reverse(); return (_local7); }; var _local3:String = ((_arg1.id + "->") + _arg2.id); var _local4:Array = routesHash[_local3]; if (_local4){ return (_local4); }; _local4 = []; var _local6:String = _arg1.getTransitionLevel(_arg2); switch (_local6){ case TransitionLevel.TO_SELF: case TransitionLevel.TO_SIBLING: _local4.push(_arg2); break; case TransitionLevel.TO_ANCESTOR: _local5 = _arg1.parent; while (true) { _local4.push(_local5); if (_local5 == _arg2){ break; }; _local5 = _local5.parent; }; break; case TransitionLevel.TO_IRRELATIVE: _local5 = _arg2; while (true) { _local4.push(_local5); if (((!(_local5.parent)) || ((_local5.parent == _arg1.parent)))){ break; }; _local5 = _local5.parent; }; _local4.reverse(); break; case TransitionLevel.TO_DESCENDANT: _local4 = getStack(_arg2).slice(); _local4 = _local4.splice(0, _local4.indexOf(_arg1)); _local4.reverse(); break; }; routesHash[_local3] = _local4; return (_local4); } override public function addState(_arg1:AbstractState):AbstractState{ if (_arg1.owned){ throw (new HSMError("State can't be added twice.")); }; if ((_arg1 is InitialState)){ if (initialState){ throw (new HSMError("State machine can have at most one InitialState.")); }; initialState = (_arg1 as InitialState); } else { if ((_arg1 is HistoryState)){ throw (new HSMError("State machine can't have any HistoryState.")); }; }; stateAdded(_arg1); return (_arg1); } override protected function sendEvent(_arg1:AbstractEvent):void{ var _local4:Transition; if (!started){ throw (new HSMError("State machine is not started.")); }; dispatchEvent(new HSMEvent(HSMEvent.EVENT_RECIEVE, currentState, _arg1)); if ((((currentState is FinalState)) && (!(currentState.parent)))){ return; }; var _local2:int = activeStates.length; var _local3:int; while (_local3 < _local2) { _local4 = activeStates[_local3].getActiveTransition(_arg1); if (_local4){ doTransition(_local4, _arg1); break; }; _local3++; }; } private function getExitRoute(_arg1:AbstractState, _arg2:AbstractState):Array{ var _local5:AbstractState; if (!_arg1){ return ([]); }; var _local3:String = ((_arg1.id + "<-") + _arg2.id); var _local4:Array = routesHash[_local3]; if (_local4){ return (_local4); }; _local4 = []; var _local6:String = _arg1.getTransitionLevel(_arg2); switch (_local6){ case TransitionLevel.TO_SELF: case TransitionLevel.TO_SIBLING: _local4.push(_arg1); break; case TransitionLevel.TO_ANCESTOR: _local5 = _arg1; while (_local5 != _arg2) { _local4.push(_local5); _local5 = _local5.parent; }; break; case TransitionLevel.TO_DESCENDANT: break; case TransitionLevel.TO_IRRELATIVE: _local5 = _arg1; while (true) { _local4.push(_local5); if (((!(_local5.parent)) || ((_local5.parent == _arg2.parent)))){ break; }; _local5 = _local5.parent; }; break; }; routesHash[_local3] = _local4; return (_local4); } private function getStack(_arg1:AbstractState):Array{ var _local2:String = _arg1.id; var _local3:Array = routesHash[_local2]; if (_local3){ return (_local3); }; var _local4:AbstractState = _arg1; _local3 = [_local4]; while (_local4.parent) { _local3.push(_local4.parent); _local4 = _local4.parent; }; routesHash[_local2] = _local3; return (_local3); } } }//package com.bigwigmedia.stateMachine
Section 242
//InitialState (com.bigwigmedia.stateMachine.InitialState) package com.bigwigmedia.stateMachine { import com.bigwigmedia.stateMachine.errors.*; public class InitialState extends AbstractState { override public function addTransition(_arg1:AbstractState, _arg2:AbstractTrigger=null, _arg3:Function=null, _arg4:Function=null):void{ if (transitionsList.length == 1){ throw (new HSMError("InitialState can have at most one outgoing transition.")); }; if (((_arg2) && (!((_arg2 is EmptyTrigger))))){ throw (new HSMError("Transition from InitialState may not have a trigger.")); }; super.addTransition(_arg1, _arg2, _arg3, _arg4); } } }//package com.bigwigmedia.stateMachine
Section 243
//IStateMachine (com.bigwigmedia.stateMachine.IStateMachine) package com.bigwigmedia.stateMachine { import flash.events.*; import com.bigwigmedia.core.*; public interface IStateMachine extends IEventDispatcher, IUpdatable, IDisposable { function addState(_arg1:AbstractState):AbstractState; function start(_arg1:AbstractState=null):void; function sendSignal(_arg1:SignalEvent):void; } }//package com.bigwigmedia.stateMachine
Section 244
//SignalEvent (com.bigwigmedia.stateMachine.SignalEvent) package com.bigwigmedia.stateMachine { import com.bigwigmedia.utils.*; public class SignalEvent extends AbstractEvent { protected var _type:String; protected var _data:Object; public static const START:String = "SignalEvent.start"; public function SignalEvent(_arg1:String, _arg2:Object=null){ _type = _arg1; _data = _arg2; } public function get data():Object{ return (_data); } public function get type():String{ return (_type); } override public function toString():String{ return (ObjectUtil.formatToString(this, "type", "data")); } } }//package com.bigwigmedia.stateMachine
Section 245
//SignalTrigger (com.bigwigmedia.stateMachine.SignalTrigger) package com.bigwigmedia.stateMachine { public class SignalTrigger extends AbstractTrigger { private var _type:String; public function SignalTrigger(_arg1:String){ _type = _arg1; } override public function willFire(_arg1:AbstractEvent):Boolean{ var _local2:SignalEvent = (_arg1 as SignalEvent); return (((_local2) && ((_local2.type == _type)))); } public function get type():String{ return (_type); } override public function equals(_arg1:AbstractTrigger):Boolean{ var _local2:SignalTrigger = (_arg1 as SignalTrigger); return (((_local2) && ((_local2.type == _type)))); } } }//package com.bigwigmedia.stateMachine
Section 246
//SimpleState (com.bigwigmedia.stateMachine.SimpleState) package com.bigwigmedia.stateMachine { public class SimpleState extends AbstractState { protected var _entry:Function;// = null protected var _doActivity:Function;// = null protected var _exit:Function;// = null public function SimpleState(_arg1:Function=null, _arg2:Function=null, _arg3:Function=null){ _entry = _arg1; _doActivity = _arg2; _exit = _arg3; } override public function update():void{ super.update(); if (_doActivity != null){ _doActivity(); }; } override public function deactivate(_arg1:AbstractEvent):void{ if (_exit != null){ _exit(_arg1); }; super.deactivate(_arg1); } override public function activate(_arg1:AbstractEvent):void{ super.activate(_arg1); if (_entry != null){ _entry(_arg1); }; } override public function dispose():void{ _entry = null; _doActivity = null; _exit = null; super.dispose(); } } }//package com.bigwigmedia.stateMachine
Section 247
//Transition (com.bigwigmedia.stateMachine.Transition) package com.bigwigmedia.stateMachine { import com.bigwigmedia.core.*; import com.bigwigmedia.utils.*; public class Transition implements IDisposable { private var _guard:Function; private var _target:AbstractState; private var _effect:Function; private var _trigger:AbstractTrigger; private var _source:AbstractState; public function Transition(_arg1:AbstractState, _arg2:AbstractState, _arg3:AbstractTrigger, _arg4:Function, _arg5:Function){ _source = _arg1; _target = _arg2; _trigger = _arg3; _effect = _arg4; _guard = _arg5; } public function conflicts(_arg1:Transition):Boolean{ return ((((((_source == _arg1.source)) && (_trigger.equals(_arg1.trigger)))) && ((_guard == _arg1.guard)))); } public function get source():AbstractState{ return (_source); } public function get guard():Function{ return (_guard); } public function willFire(_arg1:AbstractEvent):Boolean{ if ((((guard == null)) || (_guard()))){ return (_trigger.willFire(_arg1)); }; return (false); } public function invokeEffect(_arg1:AbstractEvent):void{ if (_effect != null){ _effect(_arg1); }; } public function get target():AbstractState{ return (_target); } public function get trigger():AbstractTrigger{ return (_trigger); } public function toString():String{ return (ObjectUtil.formatToString(this, "source", "target", "trigger")); } public function dispose():void{ _source = null; _target = null; _trigger.dispose(); _trigger = null; _effect = null; _guard = null; } } }//package com.bigwigmedia.stateMachine
Section 248
//TransitionLevel (com.bigwigmedia.stateMachine.TransitionLevel) package com.bigwigmedia.stateMachine { public class TransitionLevel { public static const TO_SELF:String = "toSelf"; public static const TO_DESCENDANT:String = "toDescendant"; public static const TO_ANCESTOR:String = "toAncestor"; public static const TO_IRRELATIVE:String = "toIrrelative"; public static const TO_SIBLING:String = "toSibling"; } }//package com.bigwigmedia.stateMachine
Section 249
//Back (com.bigwigmedia.tweens.easing.Back) package com.bigwigmedia.tweens.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 250
//Circular (com.bigwigmedia.tweens.easing.Circular) package com.bigwigmedia.tweens.easing { public class Circular { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 251
//Cubic (com.bigwigmedia.tweens.easing.Cubic) package com.bigwigmedia.tweens.easing { public class Cubic { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 252
//Easing (com.bigwigmedia.tweens.easing.Easing) package com.bigwigmedia.tweens.easing { public class Easing { public static const CIRCULAR_IN:String = "circularIn"; public static const CUBIC_IN_OUT:String = "cubicInOut"; public static const CIRCULAR_OUT:String = "circularOut"; public static const BACK_OUT:String = "backOut"; public static const CUBIC_OUT:String = "cubicOut"; public static const CUBIC_IN:String = "cubicIn"; public static const ELASTIC_OUT:String = "elasticOut"; public static const LINEAR:String = "linear"; public static const BACK_IN_OUT:String = "backInOut"; public static const ELASTIC_IN_OUT:String = "elasticInOut"; public static const ELASTIC_IN:String = "elasticIn"; public static const CIRCULAR_IN_OUT:String = "circularInOut"; public static const BACK_IN:String = "backIn"; public static function getEasingFunc(_arg1:String):Function{ switch (_arg1){ case null: case LINEAR: return (Linear.easeNone); case CIRCULAR_IN: return (Circular.easeIn); case CIRCULAR_OUT: return (Circular.easeOut); case CIRCULAR_IN_OUT: return (Circular.easeInOut); case CUBIC_IN: return (Cubic.easeIn); case CUBIC_OUT: return (Cubic.easeOut); case CUBIC_IN_OUT: return (Cubic.easeInOut); case BACK_IN: return (Back.easeIn); case BACK_OUT: return (Back.easeOut); case BACK_IN_OUT: return (Back.easeInOut); case ELASTIC_IN: return (Elastic.easeIn); case ELASTIC_OUT: return (Elastic.easeOut); case ELASTIC_IN_OUT: return (Elastic.easeInOut); }; throw (new ArgumentError((("Easing \"" + _arg1) + "\" is not supported."))); } } }//package com.bigwigmedia.tweens.easing
Section 253
//Elastic (com.bigwigmedia.tweens.easing.Elastic) package com.bigwigmedia.tweens.easing { public class Elastic { private static const _2PI:Number = 6.28318530717959; public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * (0.3 * 1.5)); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) * 0.5) + _arg3) + _arg2)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) + _arg3) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 254
//Linear (com.bigwigmedia.tweens.easing.Linear) package com.bigwigmedia.tweens.easing { public class Linear { public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package com.bigwigmedia.tweens.easing
Section 255
//AbstractUpdater (com.bigwigmedia.tweens.updaters.AbstractUpdater) package com.bigwigmedia.tweens.updaters { import flash.events.*; import com.bigwigmedia.core.*; import com.bigwigmedia.tweens.easing.*; public class AbstractUpdater extends EventDispatcher implements IDisposable { protected var _duration:Number; protected var _time:Number;// = 0 protected var _easingFunc:Function; public function AbstractUpdater(_arg1:Number, _arg2:String){ _duration = (_arg1 - 1); _easingFunc = Easing.getEasingFunc(_arg2); } public function restart():void{ _time = 0; } protected function updateTime():void{ if (_time < _duration){ _time++; } else { if (_time == _duration){ dispatchEvent(new Event(Event.COMPLETE)); }; }; } public function dispose():void{ _easingFunc = null; } } }//package com.bigwigmedia.tweens.updaters
Section 256
//NumberUpdater (com.bigwigmedia.tweens.updaters.NumberUpdater) package com.bigwigmedia.tweens.updaters { public class NumberUpdater extends AbstractUpdater { private var _changeValue:Number; private var _startValue:Number; public function NumberUpdater(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:String){ super(_arg3, _arg4); _startValue = _arg1; _changeValue = (_arg2 - _arg1); } public function updateAndGetValue():Number{ var _local1:Number = _easingFunc(_time, _startValue, _changeValue, _duration); updateTime(); return (_local1); } } }//package com.bigwigmedia.tweens.updaters
Section 257
//AbstractTween (com.bigwigmedia.tweens.AbstractTween) package com.bigwigmedia.tweens { import flash.display.*; import flash.events.*; public class AbstractTween extends EventDispatcher implements ITween { private var _autoPlaying:Boolean;// = false protected var _loop:Boolean; protected var _target:Object; private static var _autoTicker:Shape = new Shape(); private static var _activeTweens:Array = []; public function AbstractTween(_arg1:Object, _arg2:Boolean){ _target = _arg1; _loop = _arg2; } public function autoPlay():void{ if (_autoPlaying){ return; }; if (!_autoTicker.hasEventListener(Event.ENTER_FRAME)){ _autoTicker.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); }; _activeTweens.push(this); _autoPlaying = true; } public function get target():Object{ return (_target); } public function restart():void{ } public function update():void{ } public function dispose():void{ if (_autoPlaying){ _activeTweens.splice(_activeTweens.indexOf(this), 1); if (_activeTweens.length == 0){ _autoTicker.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); }; }; _target = null; } private static function onEnterFrameHandler(_arg1:Event):void{ var _local2:ITween; for each (_local2 in _activeTweens) { _local2.update(); }; } } }//package com.bigwigmedia.tweens
Section 258
//AbstractUpdaterTween (com.bigwigmedia.tweens.AbstractUpdaterTween) package com.bigwigmedia.tweens { import flash.events.*; import com.bigwigmedia.events.*; import com.bigwigmedia.tweens.updaters.*; public class AbstractUpdaterTween extends AbstractTween { protected var _updater:AbstractUpdater; public function AbstractUpdaterTween(_arg1:Object, _arg2:AbstractUpdater, _arg3:Boolean){ super(_arg1, _arg3); _updater = _arg2; _updater.addEventListener(Event.COMPLETE, onTweenCompleteHandler); } private function onTweenCompleteHandler(_arg1:Event):void{ if (_loop){ _updater.restart(); } else { dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; } override public function restart():void{ _updater.restart(); } override public function dispose():void{ _updater.removeEventListener(Event.COMPLETE, onTweenCompleteHandler); _updater.dispose(); _updater = null; super.dispose(); } } }//package com.bigwigmedia.tweens
Section 259
//Delay (com.bigwigmedia.tweens.Delay) package com.bigwigmedia.tweens { import com.bigwigmedia.events.*; public class Delay extends AbstractTween { private var _count:int; private var _delay:int; private var _invoke:Boolean;// = true public function Delay(_arg1:int){ super(null, false); _delay = _arg1; _count = _arg1; } override public function update():void{ if (((_invoke) && ((_count-- == 0)))){ _invoke = false; dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; } override public function restart():void{ _invoke = true; _count = _delay; } } }//package com.bigwigmedia.tweens
Section 260
//ITween (com.bigwigmedia.tweens.ITween) package com.bigwigmedia.tweens { import flash.events.*; import com.bigwigmedia.core.*; public interface ITween extends IEventDispatcher, IUpdatable, IDisposable { function get target():Object; function autoPlay():void; function restart():void; } }//package com.bigwigmedia.tweens
Section 261
//PropertyTween (com.bigwigmedia.tweens.PropertyTween) package com.bigwigmedia.tweens { import com.bigwigmedia.tweens.updaters.*; public class PropertyTween extends AbstractUpdaterTween { private var _numberUpdater:NumberUpdater; private var _property:String; public function PropertyTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String="linear", _arg7:Boolean=false){ _numberUpdater = new NumberUpdater(_arg3, _arg4, _arg5, _arg6); super(_arg1, _numberUpdater, _arg7); _property = _arg2; if (((!((_arg2 in _arg1))) || ((_arg1[_arg2] is Function)))){ throw (new ArgumentError((("Supplied property \"" + _arg2) + "\" is invalid."))); }; } override public function update():void{ _target[_property] = _numberUpdater.updateAndGetValue(); } override public function dispose():void{ _numberUpdater = null; super.dispose(); } } }//package com.bigwigmedia.tweens
Section 262
//TweenSequence (com.bigwigmedia.tweens.TweenSequence) package com.bigwigmedia.tweens { import com.bigwigmedia.events.*; public class TweenSequence extends AbstractTween { private var _currentTweenIndex:int;// = 0 private var _tweens:Array; private var _currentTween:ITween; public function TweenSequence(_arg1:Array, _arg2:Boolean=false){ var _local5:ITween; _tweens = []; super(null, _arg2); var _local3:int = _arg1.length; var _local4:int; while (_local4 < _local3) { _local5 = _arg1[_local4]; _local5.addEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _tweens.push(_local5); _local4++; }; _currentTween = _tweens[0]; } private function onTweenCompleteHandler(_arg1:TweenEvent):void{ if (++_currentTweenIndex == _tweens.length){ if (_loop){ restart(); } else { dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; } else { _currentTween = _tweens[_currentTweenIndex]; }; } override public function update():void{ _currentTween.update(); } override public function restart():void{ var _local1:ITween; for each (_local1 in _tweens) { _local1.restart(); }; _currentTweenIndex = 0; _currentTween = _tweens[0]; } override public function dispose():void{ var _local1:ITween; _currentTween = null; for each (_local1 in _tweens) { _local1.removeEventListener(TweenEvent.COMPLETE, onTweenCompleteHandler); _local1.dispose(); }; _tweens = []; super.dispose(); } } }//package com.bigwigmedia.tweens
Section 263
//AbstractBox (com.bigwigmedia.ui.containers.AbstractBox) package com.bigwigmedia.ui.containers { public class AbstractBox extends LayoutContainer { protected var _gap:Number;// = 0 public function set gap(_arg1:Number):void{ _gap = _arg1; invalidateLayout(); invalidateSize(); } public function get gap():Number{ return (_gap); } } }//package com.bigwigmedia.ui.containers
Section 264
//Constraint (com.bigwigmedia.ui.containers.Constraint) package com.bigwigmedia.ui.containers { import flash.display.*; import com.bigwigmedia.ui.*; import flash.geom.*; public class Constraint { private var _bottom:Number;// = NAN private var _percentHeight:Number;// = NAN private var _isPositionConstraint:Boolean;// = false private var _verticalCenter:Number;// = NAN private var _top:Number;// = NAN private var _right:Number;// = NAN private var _percentWidth:Number;// = NAN private var _left:Number;// = NAN private var _isSizeConstraint:Boolean;// = false private var _horizontalCenter:Number;// = NAN private static var LAYOUT_METHODS:Object = {percentWidth:true, percentHeight:true, left:true, right:true, horizontalCenter:true, top:true, bottom:true, verticalCenter:true}; public function Constraint(_arg1:Object){ var _local2:String; super(); if (_arg1){ for (_local2 in _arg1) { if ((_local2 in LAYOUT_METHODS)){ this[_local2] = _arg1[_local2]; } else { throw (new ArgumentError((("Supplied layout method \"" + _local2) + "\" is not supported."))); }; }; }; } public function set percentWidth(_arg1:Number):void{ _percentWidth = _arg1; _isSizeConstraint = true; } public function set verticalCenter(_arg1:Number):void{ _verticalCenter = _arg1; _isPositionConstraint = true; } public function get isSizeConstraint():Boolean{ return (_isSizeConstraint); } public function set left(_arg1:Number):void{ _left = _arg1; _isPositionConstraint = true; if (!isNaN(_right)){ _isSizeConstraint = true; }; } public function set percentHeight(_arg1:Number):void{ _percentHeight = _arg1; _isSizeConstraint = true; } public function set bottom(_arg1:Number):void{ _bottom = _arg1; _isPositionConstraint = true; if (!isNaN(_top)){ _isSizeConstraint = true; }; } public function set top(_arg1:Number):void{ _top = _arg1; _isPositionConstraint = true; if (!isNaN(_bottom)){ _isSizeConstraint = true; }; } public function apply(_arg1:DisplayObject):void{ var _local5:Number; var _local6:Number; var _local7:Rectangle; var _local8:Number; var _local9:Number; var _local2:DisplayObject = _arg1.parent; if (!_local2){ return; }; var _local3:AbstractComponent = (_arg1 as AbstractComponent); var _local4:LayoutContainer = (_arg1 as LayoutContainer); if (((_isSizeConstraint) && (((!(_local4)) || (!(_local4.fitSizeToContent)))))){ _local5 = _arg1.width; _local6 = _arg1.height; if (!isNaN(_percentWidth)){ _local5 = ((_local2.width * _percentWidth) / 100); } else { if (((!(isNaN(_left))) && (!(isNaN(_right))))){ _local5 = ((_local2.width - _left) - _right); }; }; if (!isNaN(_percentHeight)){ _local6 = ((_local2.height * _percentHeight) / 100); } else { if (((!(isNaN(_top))) && (!(isNaN(_bottom))))){ _local6 = ((_local2.height - _top) - _bottom); }; }; if (_local3){ _local3.setSize(_local5, _local6); } else { _arg1.width = _local5; _arg1.height = _local6; }; }; if (_isPositionConstraint){ _local7 = _arg1.getBounds(_arg1.parent); _local8 = _arg1.x; _local9 = _arg1.y; if (!isNaN(_horizontalCenter)){ _local8 = (_local8 + (((_local2.width / 2) - (_local7.left + (_local7.width / 2))) + _horizontalCenter)); } else { if (!isNaN(_left)){ _local8 = (_local8 + (_left - _local7.left)); } else { if (!isNaN(_right)){ _local8 = (_local8 + ((_local2.width - _local7.right) - _right)); }; }; }; if (!isNaN(_verticalCenter)){ _local9 = (_local9 + (((_local2.height / 2) - (_local7.top + (_local7.height / 2))) + _verticalCenter)); } else { if (!isNaN(_top)){ _local9 = (_local9 + (_top - _local7.top)); } else { if (!isNaN(_bottom)){ _local9 = (_local9 + ((_local2.height - _local7.bottom) - _bottom)); }; }; }; if (_local3){ _local3.move(_local8, _local9); } else { _arg1.x = _local8; _arg1.y = _local9; }; }; } public function set horizontalCenter(_arg1:Number):void{ _horizontalCenter = _arg1; _isPositionConstraint = true; } public function get isPositionConstraint():Boolean{ return (_isPositionConstraint); } public function set right(_arg1:Number):void{ _right = _arg1; _isPositionConstraint = true; if (!isNaN(_left)){ _isSizeConstraint = true; }; } } }//package com.bigwigmedia.ui.containers
Section 265
//LayoutContainer (com.bigwigmedia.ui.containers.LayoutContainer) package com.bigwigmedia.ui.containers { import flash.display.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; import flash.utils.*; public class LayoutContainer extends AbstractContainer { private var invalidatingLayout:Boolean;// = false protected var _childToConstraintDict:Dictionary; private var invalidateLayoutFlag:Boolean;// = false protected var _fitSizeToContent:Boolean;// = false protected var _layoutChildren:Array; public function LayoutContainer(){ _layoutChildren = []; _childToConstraintDict = new Dictionary(); super(); } override public function setSize(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.round(_arg1); var _local4:Number = Math.round(_arg2); if (_local3 < _minWidth){ _local3 = _minWidth; } else { if (_local3 > _maxWidth){ _local3 = _maxWidth; }; }; if (_local4 < _minHeight){ _local4 = _minHeight; } else { if (_local4 > _maxHeight){ _local4 = _maxHeight; }; }; var _local5:Boolean; if (_explicitWidth != _local3){ _explicitWidth = _local3; _local5 = true; }; if (_explicitHeight != _local4){ _explicitHeight = _local4; _local5 = true; }; if (_local5){ invalidateLayout(); invalidateSize(); }; } protected function invalidateLayout():void{ invalidateLayoutFlag = true; callLater(); } override protected function componentAdded(_arg1:AbstractComponent):void{ invalidateLayout(); } private function onComponentEventHandler(_arg1:ComponentEvent):void{ if (_layoutChildren.indexOf(_arg1.target) != -1){ invalidateLayout(); }; } override protected function draw():void{ if (invalidatingLayout){ return; }; invalidatingLayout = true; if (invalidateLayoutFlag){ drawLayout(); }; super.draw(); invalidatingLayout = false; } public function get maxChildWidth():Number{ var _local2:DisplayObject; var _local1:Number = 0; for each (_local2 in _layoutChildren) { if (_local2.width > _local1){ _local1 = _local2.width; }; }; return (_local1); } override protected function validate():void{ invalidateLayoutFlag = false; super.validate(); } public function set fitSizeToContent(_arg1:Boolean):void{ _fitSizeToContent = _arg1; invalidateLayout(); invalidateSize(); } protected function drawLayout():void{ var _local1:DisplayObject; var _local2:Constraint; if (_fitSizeToContent){ this.width = maxChildWidth; this.height = maxChildHeight; }; for each (_local1 in _layoutChildren) { _local2 = _childToConstraintDict[_local1]; if (_local2){ _local2.apply(_local1); }; }; } public function get maxChildHeight():Number{ var _local2:DisplayObject; var _local1:Number = 0; for each (_local2 in _layoutChildren) { if (_local2.height > _local1){ _local1 = _local2.height; }; }; return (_local1); } public function addChildToLayout(_arg1:DisplayObject, _arg2:Object=null):DisplayObject{ return (addChildToLayoutAt(_arg1, numChildren, _arg2)); } override protected function componentRemoved(_arg1:AbstractComponent):void{ delete _childToConstraintDict[_arg1]; var _local2:int = _layoutChildren.indexOf(_arg1); if (_local2 != -1){ _layoutChildren.splice(_local2, 1); _arg1.removeEventListener(ComponentEvent.RESIZE, onComponentEventHandler); _arg1.removeEventListener(ComponentEvent.MOVE, onComponentEventHandler); }; invalidateLayout(); } override public function dispose():void{ var _local1:DisplayObject; for each (_local1 in _layoutChildren) { _local1.removeEventListener(ComponentEvent.RESIZE, onComponentEventHandler); _local1.removeEventListener(ComponentEvent.MOVE, onComponentEventHandler); }; _childToConstraintDict = new Dictionary(); _layoutChildren = []; super.dispose(); } public function get fitSizeToContent():Boolean{ return (_fitSizeToContent); } public function addChildToLayoutAt(_arg1:DisplayObject, _arg2:int, _arg3:Object=null):DisplayObject{ var _local4:Constraint = new Constraint(_arg3); if (((_local4.isPositionConstraint) || (_local4.isSizeConstraint))){ _childToConstraintDict[_arg1] = _local4; }; _arg1.addEventListener(ComponentEvent.RESIZE, onComponentEventHandler); _arg1.addEventListener(ComponentEvent.MOVE, onComponentEventHandler); _layoutChildren.push(_arg1); return (addChildAt(_arg1, _arg2)); } } }//package com.bigwigmedia.ui.containers
Section 266
//VBox (com.bigwigmedia.ui.containers.VBox) package com.bigwigmedia.ui.containers { import flash.display.*; public class VBox extends AbstractBox { override protected function drawLayout():void{ var _local4:DisplayObject; var _local5:Constraint; if (_fitSizeToContent){ this.width = maxChildWidth; }; var _local1:Number = 0; var _local2:int = _layoutChildren.length; var _local3:int; while (_local3 < _local2) { _local4 = _layoutChildren[_local3]; _local5 = _childToConstraintDict[_local4]; if (_local5){ _local5.apply(_local4); }; _local4.y = _local1; _local1 = (_local1 + (_local4.height + ((_local3 < (_local2 - 1))) ? _gap : 0)); _local3++; }; this.height = _local1; } } }//package com.bigwigmedia.ui.containers
Section 267
//ScrollBar (com.bigwigmedia.ui.scrollClasses.ScrollBar) package com.bigwigmedia.ui.scrollClasses { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; import com.bigwigmedia.ui.styles.*; import com.bigwigmedia.application.*; public class ScrollBar extends AbstractContainer { private var _direction:String; private var _minScrollPosition:Number;// = 0 private var _downArrow:IconicButton; private var _drag:Boolean;// = false private var _pageSize:Number;// = 10 private var _maxScrollPosition:Number;// = 100 private var _lineScrollSize:Number;// = 1 private var _thumbClickDisp:Number;// = 0 private var _scrollPosition:Number;// = 0 private var _track:IconicButton; private var _thumb:IconicButton; private var _upArrow:IconicButton; private var _pageScrollSize:Number;// = 0 public function ScrollBar(_arg1:String){ _direction = _arg1; super(); super.setSize(14, 100); } public function get lineScrollSize():Number{ return (((_lineScrollSize == 0)) ? _pageSize : _lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } public function get minScrollPosition():Number{ return (_minScrollPosition); } protected function mouseMoved():void{ positionThumb(); var _local1:Number = ((((_thumb.y - _upArrow.height) / (((super.height - _upArrow.height) - _downArrow.height) - _thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); scrollPosition = _local1; } public function set minScrollPosition(_arg1:Number):void{ if (_minScrollPosition != _arg1){ _minScrollPosition = _arg1; invalidateState(); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function dispose():void{ var _local1:Stage = ApplicationGlobals.application.stage; _local1.removeEventListener(MouseEvent.MOUSE_UP, onStageMouseEventHandler); _local1.removeEventListener(MouseEvent.MOUSE_MOVE, onStageMouseEventHandler); super.dispose(); } override protected function createChildren():void{ _track = new IconicButton(Class(getStyle(ScrollBarStyle.TRACK_SKIN))); _track.autoRepeat = true; addChild(_track); _upArrow = new IconicButton(Class(getStyle(ScrollBarStyle.UP_ARROW_SKIN))); _upArrow.autoRepeat = true; addChild(_upArrow); _downArrow = new IconicButton(Class(getStyle(ScrollBarStyle.DOWN_ARROW_SKIN))); _downArrow.autoRepeat = true; addChild(_downArrow); _thumb = new IconicButton(Class(getStyle(ScrollBarStyle.THUMB_SKIN))); addChild(_thumb); if (_direction == ScrollBarDirection.HORIZONTAL){ rotation = -90; scaleX = -1; }; addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler); addEventListener(ComponentEvent.BUTTON_DOWN, onButtonDownHandler); var _local1:Stage = ApplicationGlobals.application.stage; _local1.addEventListener(MouseEvent.MOUSE_UP, onStageMouseEventHandler); _local1.addEventListener(MouseEvent.MOUSE_MOVE, onStageMouseEventHandler); } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } public function set scrollPosition(_arg1:Number):void{ var _local2:Number = _scrollPosition; _scrollPosition = _arg1; if (_scrollPosition < _minScrollPosition){ _scrollPosition = _minScrollPosition; } else { if (_scrollPosition > _maxScrollPosition){ _scrollPosition = _maxScrollPosition; }; }; if (_local2 != _scrollPosition){ positionThumb(); dispatchEvent(new ScrollEvent(ScrollEvent.SCROLL, _scrollPosition, true)); }; } override protected function drawState():void{ positionThumb(); } private function onButtonDownHandler(_arg1:ComponentEvent):void{ var _local2:Number; switch (_arg1.target){ case _upArrow: scrollPosition = (scrollPosition - lineScrollSize); break; case _downArrow: scrollPosition = (scrollPosition + lineScrollSize); break; case _track: _local2 = ((((_track.mouseY - _upArrow.height) / ((super.height - _upArrow.height) - _downArrow.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); if (_scrollPosition < _local2){ scrollPosition = Math.min(_local2, (_scrollPosition + _pageSize)); } else { if (_scrollPosition > _local2){ scrollPosition = Math.max(_local2, (_scrollPosition - _pageSize)); }; }; break; }; } public function get pageSize():Number{ return (_pageSize); } private function positionThumb():void{ var _local3:Number; var _local1:Number = ((_maxScrollPosition - _minScrollPosition) + _pageSize); var _local2:Number = Math.round(((((super.height - _upArrow.height) - _downArrow.height) * _pageSize) / _local1)); if (_local2 < 14){ _local2 = 14; }; if ((((_local1 == _pageSize)) || ((_local1 == 0)))){ _thumb.visible = false; this.enabled = false; } else { _thumb.setSize(super.width, _local2); _thumb.visible = true; this.enabled = true; }; if (_drag){ _local3 = (this.mouseY - _thumbClickDisp); } else { _local3 = (_upArrow.height + ((((super.height - _upArrow.height) - _downArrow.height) - _thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); }; if ((((_local3 < _upArrow.height)) || (isNaN(_local3)))){ _local3 = _upArrow.height; } else { if (_local3 > ((super.height - _downArrow.height) - _thumb.height)){ _local3 = ((super.height - _downArrow.height) - _thumb.height); }; }; _thumb.y = _local3; } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _pageScrollSize = _arg1; }; } public function set maxScrollPosition(_arg1:Number):void{ if (_maxScrollPosition != _arg1){ _maxScrollPosition = _arg1; invalidateState(); }; } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } override protected function measureSizes():void{ _upArrow.width = (_downArrow.width = super.width); _downArrow.y = (super.height - _downArrow.height); _track.setSize(super.width, super.height); _minHeight = ((14 + _upArrow.height) + _downArrow.height); positionThumb(); } public function get pageScrollSize():Number{ return (((_pageScrollSize == 0)) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_pageSize != _arg1){ _pageSize = _arg1; invalidateState(); }; } private function onMouseDownHandler(_arg1:MouseEvent):void{ if (_arg1.target == _thumb){ _thumbClickDisp = _thumb.mouseY; _drag = true; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number):void{ this.minScrollPosition = _arg1; this.maxScrollPosition = _arg2; this.pageSize = _arg3; } private function onStageMouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.MOUSE_MOVE: if (_drag){ mouseMoved(); }; break; case MouseEvent.MOUSE_UP: if (_drag){ _drag = false; }; break; }; } public static function get defaultStyles():Object{ var _local1:Object = {trackSkin:ScrollBarTrack, thumbSkin:ScrollBarThumb, upArrowSkin:UpArrow, downArrowSkin:DownArrow}; return (_local1); } } }//package com.bigwigmedia.ui.scrollClasses import flash.display.*; import flash.geom.*; class ScrollBarTrack extends Shape { private var WIDTH:Number;// = 14 private var HEIGHT:Number;// = 100 private function ScrollBarTrack(){ graphics.beginFill(0xCCCCCC, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); graphics.beginFill(0xFFFFFF, 1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } } class UpArrow extends Shape { public static const WIDTH:Number = 14; public static const HEIGHT:Number = 14; private function UpArrow(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.beginFill(0x333333, 1); graphics.moveTo(7, 5); graphics.lineTo(11, 9); graphics.lineTo(3, 9); graphics.lineTo(7, 5); graphics.endFill(); } } class ScrollBarThumb extends Shape { private var WIDTH:Number;// = 14 private var HEIGHT:Number;// = 100 private function ScrollBarThumb(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } } class DownArrow extends Shape { public static const WIDTH:Number = 14; public static const HEIGHT:Number = 14; private function DownArrow(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.beginFill(0x333333, 1); graphics.moveTo(7, 9); graphics.lineTo(3, 5); graphics.lineTo(11, 5); graphics.lineTo(7, 9); graphics.endFill(); } }
Section 268
//ScrollBarDirection (com.bigwigmedia.ui.scrollClasses.ScrollBarDirection) package com.bigwigmedia.ui.scrollClasses { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package com.bigwigmedia.ui.scrollClasses
Section 269
//Slider (com.bigwigmedia.ui.sliderClasses.Slider) package com.bigwigmedia.ui.sliderClasses { import flash.display.*; import flash.events.*; import com.bigwigmedia.ui.*; import com.bigwigmedia.events.*; import com.bigwigmedia.ui.styles.*; import com.bigwigmedia.application.*; public class Slider extends AbstractContainer { private var _direction:String; protected var _track:IconicButton; protected var _snapInterval:Number;// = 0 protected var _minimum:Number;// = 0 private var _drag:Boolean;// = false protected var _thumb:AbstractButton; protected var _maximum:Number;// = 100 protected var _value:Number;// = 0 protected var _thumbClickDisp:Number;// = 0 public function Slider(_arg1:String){ _direction = _arg1; super(); super.setSize(16, 100); } private function removeThumb():void{ if (_thumb){ _thumb.dispose(); removeChild(_thumb); _thumb = null; }; } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == SliderDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } override public function get width():Number{ return (((_direction)==SliderDirection.HORIZONTAL) ? super.height : super.width); } private function getPrecision(_arg1:Number):Number{ var _local2:String = _arg1.toString(); if (_local2.indexOf(".") == -1){ return (0); }; return (_local2.split(".").pop().length); } override protected function measureSizes():void{ _track.height = super.height; _track.x = ((super.width - _track.width) / 2); _thumb.x = ((super.width - _thumb.width) / 2); positionThumb(); } protected function mouseMoved():void{ var _local1:Number = (((this.mouseY - _thumbClickDisp) / super.height) * (_maximum - _minimum)); if (_direction == SliderDirection.VERTICAL){ _local1 = (_maximum - _local1); } else { _local1 = (_minimum + _local1); }; value = _local1; } override protected function createChildren():void{ _track = new IconicButton(Class(getStyle(SliderStyle.TRACK_SKIN))); addChild(_track); var _local1:Class = Class(getStyle(SliderStyle.THUMB)); _thumb = new (_local1); addChild(_thumb); if (_direction == SliderDirection.HORIZONTAL){ rotation = -90; scaleX = -1; }; addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler); var _local2:Stage = ApplicationGlobals.application.stage; _local2.addEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler); _local2.addEventListener(MouseEvent.MOUSE_MOVE, onMouseEventHandler); } public function get minimum():Number{ return (_minimum); } override public function dispose():void{ var _local1:Stage = ApplicationGlobals.application.stage; _local1.removeEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler); _local1.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseEventHandler); super.dispose(); } public function get maximum():Number{ return (_maximum); } private function onMouseDownHandler(_arg1:MouseEvent):void{ var _local2:Number; switch (_arg1.target){ case _thumb: _thumbClickDisp = _thumb.mouseY; _drag = true; dispatchEvent(new SliderEvent(SliderEvent.KNOB_PRESS, _value, true)); break; case _track: _local2 = ((this.mouseY / super.height) * (_maximum - _minimum)); if (_direction == SliderDirection.VERTICAL){ _local2 = (_maximum - _local2); } else { _local2 = (_minimum + _local2); }; value = _local2; break; }; } public function set minimum(_arg1:Number):void{ _minimum = _arg1; invalidateState(); } public function set snapInterval(_arg1:Number):void{ _snapInterval = _arg1; invalidateState(); } override public function get height():Number{ return (((_direction)==SliderDirection.HORIZONTAL) ? super.width : super.height); } public function set value(_arg1:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local2:Number = _value; if (((!((_snapInterval == 0))) && (!((_snapInterval == 1))))){ _local3 = Math.pow(10, getPrecision(_snapInterval)); _local4 = (_snapInterval * _local3); _local5 = Math.round((_arg1 * _local3)); _local6 = (Math.round((_local5 / _local4)) * _local4); _local7 = (_local6 / _local3); _value = _local7; } else { _value = Math.round(_arg1); }; if (_value < _minimum){ _value = _minimum; } else { if (_value > _maximum){ _value = _maximum; }; }; if (_local2 != _value){ positionThumb(); dispatchEvent(new SliderEvent(SliderEvent.CHANGE, _value, true)); }; } protected function positionThumb():void{ if (("label" in _thumb)){ _thumb["label"] = String(_value); }; var _local1:Number = ((_direction == SliderDirection.HORIZONTAL)) ? (_value - _minimum) : ((maximum - minimum) - value); _thumb.y = ((_local1 / (_maximum - _minimum)) * super.height); } public function get snapInterval():Number{ return (_snapInterval); } public function get value():Number{ return (_value); } override protected function drawState():void{ positionThumb(); } private function onMouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.MOUSE_UP: if (_drag){ _drag = false; dispatchEvent(new SliderEvent(SliderEvent.KNOB_RELEASE, _value, true)); }; break; case MouseEvent.MOUSE_MOVE: if (_drag){ mouseMoved(); }; break; }; } public function set maximum(_arg1:Number):void{ _maximum = _arg1; invalidateState(); } public static function get defaultStyles():Object{ var _local1:Object = {trackSkin:SliderTrack, thumb:SliderThumb}; return (_local1); } } }//package com.bigwigmedia.ui.sliderClasses import flash.display.*; import flash.geom.*; class SliderTrack extends Shape { private var WIDTH:Number;// = 4 private var HEIGHT:Number;// = 100 private function SliderTrack(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 270
//SliderDirection (com.bigwigmedia.ui.sliderClasses.SliderDirection) package com.bigwigmedia.ui.sliderClasses { public class SliderDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package com.bigwigmedia.ui.sliderClasses
Section 271
//SliderThumb (com.bigwigmedia.ui.sliderClasses.SliderThumb) package com.bigwigmedia.ui.sliderClasses { import com.bigwigmedia.ui.*; public class SliderThumb extends IconicButton { public function SliderThumb(){ super(Icon); } } }//package com.bigwigmedia.ui.sliderClasses import flash.display.*; import flash.geom.*; class Icon extends Shape { private function Icon(){ graphics.lineStyle(1, 0x333333); var _local1:Matrix = new Matrix(); _local1.createGradientBox(16, 12, 0, 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.moveTo(0, 0); graphics.lineTo(6, -6); graphics.lineTo(16, -6); graphics.lineTo(16, 6); graphics.lineTo(6, 6); graphics.lineTo(0, 0); graphics.endFill(); } }
Section 272
//AbstractButtonStyle (com.bigwigmedia.ui.styles.AbstractButtonStyle) package com.bigwigmedia.ui.styles { public class AbstractButtonStyle { public static const MOUSE_CLICK_HANDLER:String = "mouseClickHandler"; public static const ROLL_OVER_HANDLER:String = "rollOverHandler"; public static const BEACON:String = "beacon"; public static const ROLL_OUT_HANDLER:String = "rollOutHandler"; public static const MOUSE_DOWN_HANDLER:String = "mouseDownHandler"; } }//package com.bigwigmedia.ui.styles
Section 273
//AbstractComponentStyle (com.bigwigmedia.ui.styles.AbstractComponentStyle) package com.bigwigmedia.ui.styles { public class AbstractComponentStyle { public static const DECORATION:String = "decoration"; public static const STYLE_SHEET:String = "styleSheet"; public static const DISABLED_DECORATION:String = "disabledDecoration"; public static const TEXT_FORMAT:String = "textFormat"; public static const EMBED_FONTS:String = "embedFonts"; } }//package com.bigwigmedia.ui.styles
Section 274
//CheckBoxStyle (com.bigwigmedia.ui.styles.CheckBoxStyle) package com.bigwigmedia.ui.styles { public class CheckBoxStyle { public static const ICON:String = "icon"; public static const SELECTED_ICON:String = "selectedIcon"; public static const TEXT_PADDING:String = "textPadding"; } }//package com.bigwigmedia.ui.styles
Section 275
//IconicButtonStyle (com.bigwigmedia.ui.styles.IconicButtonStyle) package com.bigwigmedia.ui.styles { public class IconicButtonStyle { public static const UP_DECORATION:String = "upDecoration"; public static const OVER_DECORATION:String = "overDecoration"; public static const DOWN_DECORATION:String = "downDecoration"; } }//package com.bigwigmedia.ui.styles
Section 276
//LabelButtonStyle (com.bigwigmedia.ui.styles.LabelButtonStyle) package com.bigwigmedia.ui.styles { public class LabelButtonStyle { public static const UP_STATE_COLOR:String = "upStateColor"; public static const DOWN_STATE_COLOR:String = "downStateColor"; public static const OVER_STATE_COLOR:String = "overStateColor"; } }//package com.bigwigmedia.ui.styles
Section 277
//ScrollBarStyle (com.bigwigmedia.ui.styles.ScrollBarStyle) package com.bigwigmedia.ui.styles { public class ScrollBarStyle { public static const DOWN_ARROW_SKIN:String = "downArrowSkin"; public static const TRACK_SKIN:String = "trackSkin"; public static const THUMB_SKIN:String = "thumbSkin"; public static const UP_ARROW_SKIN:String = "upArrowSkin"; } }//package com.bigwigmedia.ui.styles
Section 278
//SliderStyle (com.bigwigmedia.ui.styles.SliderStyle) package com.bigwigmedia.ui.styles { public class SliderStyle { public static const TRACK_SKIN:String = "trackSkin"; public static const THUMB:String = "thumb"; } }//package com.bigwigmedia.ui.styles
Section 279
//TextInputStyle (com.bigwigmedia.ui.styles.TextInputStyle) package com.bigwigmedia.ui.styles { public class TextInputStyle { public static const BORDER_COLOR:String = "borderColor"; public static const BACKGROUND_COLOR:String = "backgroundColor"; public static const BORDER:String = "border"; public static const BACKGROUND:String = "background"; } }//package com.bigwigmedia.ui.styles
Section 280
//AbstractButton (com.bigwigmedia.ui.AbstractButton) package com.bigwigmedia.ui { import flash.display.*; import flash.events.*; import com.bigwigmedia.events.*; import flash.utils.*; import com.bigwigmedia.display.*; import com.bigwigmedia.ui.styles.*; public class AbstractButton extends AbstractComponent { protected var _selected:Boolean;// = false private var pressTimer:Timer; protected var _autoRepeat:Boolean;// = false protected var _state:String; protected var _beaconEffect:IBeacon; protected var _toggle:Boolean;// = false public static const REPEAT_INTERVAL:Number = 50; public static const REPEAT_DELAY:Number = 500; public function AbstractButton(){ _state = ButtonState.UP; super(); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, onPressTimerHandler); buttonMode = true; mouseChildren = false; addEventListener(MouseEvent.MOUSE_UP, onMouseEventHandler, false, EventPriority.HIGH); addEventListener(MouseEvent.MOUSE_DOWN, onMouseEventHandler, false, EventPriority.HIGH); addEventListener(MouseEvent.ROLL_OVER, onMouseEventHandler, false, EventPriority.HIGH); addEventListener(MouseEvent.ROLL_OUT, onMouseEventHandler, false, EventPriority.HIGH); addEventListener(MouseEvent.CLICK, onMouseEventHandler, false, EventPriority.HIGH); } public function set beacon(_arg1:Boolean):void{ var _local2:IBeacon; if (_arg1){ _local2 = (getStyle(AbstractButtonStyle.BEACON) as IBeacon); if (_local2){ _beaconEffect = _local2.clone(); _beaconEffect.apply(this.beaconTarget); }; } else { if (_beaconEffect){ _beaconEffect.dispose(); _beaconEffect = null; }; }; } public function get beacon():Boolean{ return (!((_beaconEffect == null))); } private function onPressTimerHandler(_arg1:TimerEvent):void{ if (!_autoRepeat){ pressTimer.reset(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = REPEAT_INTERVAL; }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } override public function set enabled(_arg1:Boolean):void{ if (_enabled != _arg1){ super.enabled = _arg1; _state = ButtonState.UP; invalidateState(); }; } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } public function get toggle():Boolean{ return (_toggle); } override public function dispose():void{ pressTimer.reset(); pressTimer.removeEventListener(TimerEvent.TIMER, onPressTimerHandler); if (_beaconEffect){ _beaconEffect.dispose(); }; super.dispose(); } public function get selected():Boolean{ return (_selected); } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set toggle(_arg1:Boolean):void{ if (_toggle != _arg1){ _toggle = _arg1; invalidateState(); }; } protected function get beaconTarget():DisplayObject{ throw (new Error("Method must be overriden in subclass.")); } private function onMouseEventHandler(_arg1:MouseEvent):void{ var _local2:Function; var _local3:Function; var _local4:Function; var _local5:Function; switch (_arg1.type){ case MouseEvent.ROLL_OVER: _local2 = (getStyle(AbstractButtonStyle.ROLL_OVER_HANDLER) as Function); if (_local2 != null){ _local2(this); }; _state = ButtonState.OVER; break; case MouseEvent.ROLL_OUT: _local3 = (getStyle(AbstractButtonStyle.ROLL_OUT_HANDLER) as Function); if (_local3 != null){ _local3(this); }; _state = ButtonState.UP; break; case MouseEvent.MOUSE_DOWN: _local4 = (getStyle(AbstractButtonStyle.MOUSE_DOWN_HANDLER) as Function); if (_local4 != null){ _local4(this); }; _state = ButtonState.DOWN; break; case MouseEvent.MOUSE_UP: _state = ButtonState.OVER; break; case MouseEvent.CLICK: _local5 = (getStyle(AbstractButtonStyle.MOUSE_CLICK_HANDLER) as Function); if (_local5 != null){ _local5(this); }; if (_toggle){ selected = !(selected); }; return; }; if (_state == ButtonState.DOWN){ if (_autoRepeat){ pressTimer.delay = REPEAT_DELAY; pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } else { pressTimer.reset(); }; invalidateState(); } public function set selected(_arg1:Boolean):void{ if (_selected != _arg1){ _selected = _arg1; if (_toggle){ dispatchEvent(new ComponentEvent(ComponentEvent.CHANGE, true)); invalidateState(); }; }; } public static function get defaultStyles():Object{ var _local1:Object = {rollOverHandler:null, rollOutHandler:null, mouseDownHandler:null, mouseClickHandler:null, beacon:null}; return (_local1); } } }//package com.bigwigmedia.ui
Section 281
//AbstractComponent (com.bigwigmedia.ui.AbstractComponent) package com.bigwigmedia.ui { import flash.display.*; import flash.events.*; import com.bigwigmedia.events.*; import flash.geom.*; import com.bigwigmedia.display.*; import flash.text.*; import com.bigwigmedia.core.*; import com.bigwigmedia.ui.styles.*; import com.bigwigmedia.application.*; public class AbstractComponent extends Sprite implements IDisposable { protected var _enabled:Boolean;// = true protected var _sharedStyles:Object; private var invalidateStylesFlag:Boolean;// = false private var _nestLevel:int;// = 0 protected var _explicitHeight:Number;// = NAN private var invalidateStateFlag:Boolean;// = false protected var _visible:Boolean;// = true private var invalidateSizeFlag:Boolean;// = false protected var _explicitWidth:Number;// = NAN protected var _instanceStyles:Object; private static var _styleManager:IStyleManager; public function AbstractComponent(){ _instanceStyles = {}; _sharedStyles = {}; super(); super.visible = false; tabEnabled = false; styleManager.registerComponent(this); createChildren(); invalidateAll(); } public function setSize(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.round(_arg1); var _local4:Number = Math.round(_arg2); var _local5:Boolean; if (_explicitWidth != _local3){ _explicitWidth = _local3; _local5 = true; }; if (_explicitHeight != _local4){ _explicitHeight = _local4; _local5 = true; }; if (_local5){ invalidateSize(); }; } bigwigmedia_ns function setSharedStyle(_arg1:String, _arg2:Object):void{ _sharedStyles[_arg1] = _arg2; invalidateAll(); } override public function set width(_arg1:Number):void{ setSize(_arg1, height); } public function set enabled(_arg1:Boolean):void{ if (_enabled != _arg1){ _enabled = _arg1; mouseEnabled = _arg1; invalidateStyles(); }; } public function set scale(_arg1:Number):void{ this.scaleX = (this.scaleY = _arg1); } private function enterFrameHandler(_arg1:Event):void{ ApplicationGlobals.application.stage.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); draw(); } protected function invalidateState():void{ invalidateStateFlag = true; callLater(); } public function set nestLevel(_arg1:int):void{ if (_nestLevel == _arg1){ return; }; _nestLevel = _arg1; callLater(); var _local2:DisplayObjectContainer = this.parent; while ((_local2 is AbstractComponent)) { AbstractComponent(_local2).callLater(); _local2 = _local2.parent; }; } protected function createChildren():void{ } protected function validate():void{ invalidateSizeFlag = false; invalidateStateFlag = false; invalidateStylesFlag = false; } public function dispose():void{ ApplicationGlobals.application.stage.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); styleManager.unregisterComponent(this); _instanceStyles = {}; _sharedStyles = {}; } public function get nestLevel():int{ return (_nestLevel); } override public function get height():Number{ return ((isNaN(_explicitHeight)) ? super.height : _explicitHeight); } override public function getBounds(_arg1:DisplayObject):Rectangle{ return (new Rectangle(super.x, super.y, this.width, this.height)); } protected function drawState():void{ } public function get enabled():Boolean{ return (_enabled); } protected function drawStyles():void{ } protected function draw():void{ var _local3:IDecoration; var _local1:Number = this.width; var _local2:Number = this.height; if (invalidateStylesFlag){ drawStyles(); _local3 = (getStyle((_enabled) ? AbstractComponentStyle.DECORATION : AbstractComponentStyle.DISABLED_DECORATION) as IDecoration); if (_local3){ _local3.apply(this); }; }; if (invalidateStateFlag){ drawState(); }; if (((((invalidateSizeFlag) || (!((_local1 == this.width))))) || (!((_local2 == this.height))))){ measureSizes(); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE)); }; validate(); if (((_visible) && (!(super.visible)))){ visible = true; }; } override public function get width():Number{ return ((isNaN(_explicitWidth)) ? super.width : _explicitWidth); } protected function callLater():void{ var _local1:Stage = ApplicationGlobals.application.stage; _local1.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); _local1.addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, nestLevel); } public function move(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.round(_arg1); var _local4:Number = Math.round(_arg2); var _local5:Boolean; if (super.x != _local3){ super.x = _local3; _local5 = true; }; if (super.y != _local4){ super.y = _local4; _local5 = true; }; if (_local5){ dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); }; } protected function measureSizes():void{ } override public function set height(_arg1:Number):void{ setSize(width, _arg1); } protected function invalidateSize():void{ invalidateSizeFlag = true; callLater(); } override public function set visible(_arg1:Boolean):void{ _visible = _arg1; super.visible = _arg1; } public function setStyle(_arg1:String, _arg2:Object):void{ if (_arg2 === null){ delete _instanceStyles[_arg1]; }; _instanceStyles[_arg1] = _arg2; invalidateAll(); } override public function set x(_arg1:Number):void{ move(_arg1, super.y); } override public function set y(_arg1:Number):void{ move(super.x, _arg1); } protected function invalidateAll():void{ invalidateSizeFlag = true; invalidateStateFlag = true; invalidateStylesFlag = true; callLater(); } override public function get visible():Boolean{ return (_visible); } public function getStyle(_arg1:String):Object{ var _local2:Object = (_instanceStyles.hasOwnProperty(_arg1)) ? _instanceStyles[_arg1] : _sharedStyles[_arg1]; return (_local2); } protected function invalidateStyles():void{ invalidateStylesFlag = true; callLater(); } protected static function get styleManager():IStyleManager{ if (!_styleManager){ _styleManager = IStyleManager(Singleton.getInstance("com.bigwigmedia.ui::IStyleManager")); }; return (_styleManager); } public static function get defaultStyles():Object{ var _local1:Object = {textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), styleSheet:null, embedFonts:false, disabledDecoration:null, decoration:null}; return (_local1); } } }//package com.bigwigmedia.ui
Section 282
//AbstractContainer (com.bigwigmedia.ui.AbstractContainer) package com.bigwigmedia.ui { import flash.display.*; import flash.utils.*; public class AbstractContainer extends AbstractComponent { protected var _minHeight:Number;// = 0 protected var _maxWidth:Number;// = 10000 protected var _maxHeight:Number;// = 10000 protected var _components:Dictionary; protected var _minWidth:Number;// = 0 public function AbstractContainer(){ _components = new Dictionary(); super(); } override public function setSize(_arg1:Number, _arg2:Number):void{ var _local3:Number = Math.round(_arg1); var _local4:Number = Math.round(_arg2); if (_local3 < _minWidth){ _local3 = _minWidth; } else { if (_local3 > _maxWidth){ _local3 = _maxWidth; }; }; if (_local4 < _minHeight){ _local4 = _minHeight; } else { if (_local4 > _maxHeight){ _local4 = _maxHeight; }; }; var _local5:Boolean; if (_explicitWidth != _local3){ _explicitWidth = _local3; _local5 = true; }; if (_explicitHeight != _local4){ _explicitHeight = _local4; _local5 = true; }; if (_local5){ invalidateSize(); }; } public function set maxWidth(_arg1:Number):void{ _maxWidth = _arg1; setSize(width, height); } override public function set enabled(_arg1:Boolean):void{ var _local2:Object; for (_local2 in _components) { AbstractComponent(_local2).enabled = _arg1; }; super.enabled = _arg1; } protected function componentAdded(_arg1:AbstractComponent):void{ } override public function removeChildAt(_arg1:int):DisplayObject{ var _local2:AbstractComponent = (getChildAt(_arg1) as AbstractComponent); if (((_local2) && (_components[_local2]))){ delete _components[_local2]; componentRemoved(_local2); }; var _local3:DisplayObject = getChildAt(_arg1); return (super.removeChildAt(_arg1)); } override public function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject{ var _local3:AbstractComponent = (_arg1 as AbstractComponent); if (((_local3) && (!(_components[_local3])))){ _components[_local3] = true; if (_local3.nestLevel <= this.nestLevel){ _local3.nestLevel = (this.nestLevel + 1); }; componentAdded(_local3); }; return (super.addChildAt(_arg1, _arg2)); } public function get maxWidth():Number{ return (_maxWidth); } public function get minWidth():Number{ return (_minWidth); } public function set maxHeight(_arg1:Number):void{ _maxHeight = _arg1; setSize(width, height); } public function get minHeight():Number{ return (_minHeight); } override public function set nestLevel(_arg1:int):void{ var _local2:Object; var _local3:AbstractComponent; super.nestLevel = _arg1; for (_local2 in _components) { _local3 = (_local2 as AbstractComponent); if (_local3.nestLevel <= this.nestLevel){ _local3.nestLevel = (this.nestLevel + 1); }; }; } protected function componentRemoved(_arg1:AbstractComponent):void{ } public function set minWidth(_arg1:Number):void{ _minWidth = _arg1; setSize(width, height); } public function get maxHeight():Number{ return (_maxHeight); } override public function dispose():void{ var _local1:Object; for (_local1 in _components) { AbstractComponent(_local1).dispose(); }; _components = new Dictionary(); super.dispose(); } public function set minHeight(_arg1:Number):void{ _minHeight = _arg1; setSize(width, height); } override public function removeChild(_arg1:DisplayObject):DisplayObject{ var _local2:int = this.getChildIndex(_arg1); return (removeChildAt(_local2)); } override public function addChild(_arg1:DisplayObject):DisplayObject{ return (addChildAt(_arg1, numChildren)); } } }//package com.bigwigmedia.ui
Section 283
//ButtonState (com.bigwigmedia.ui.ButtonState) package com.bigwigmedia.ui { public class ButtonState { public static const DOWN:String = "down"; public static const OVER:String = "over"; public static const UP:String = "up"; } }//package com.bigwigmedia.ui
Section 284
//CheckBox (com.bigwigmedia.ui.CheckBox) package com.bigwigmedia.ui { import flash.display.*; import flash.geom.*; import flash.utils.*; import com.bigwigmedia.ui.styles.*; public class CheckBox extends LabelButton { public var value:Object;// = null protected var _icon:DisplayObject; public function CheckBox(_arg1:String=""){ super(_arg1); _toggle = true; } override public function get toggle():Boolean{ return (super.toggle); } override protected function drawState():void{ var _local2:Rectangle; var _local1:Class = Class(getStyle((_selected) ? CheckBoxStyle.SELECTED_ICON : CheckBoxStyle.ICON)); if (getQualifiedClassName(_local1) != getQualifiedClassName(_icon)){ if (_icon){ removeChild(_icon); }; _icon = new (_local1); addChild(_icon); _local2 = _icon.getBounds(this); _icon.x = (_icon.x - _local2.left); _icon.y = ((_labelField.height - _local2.height) / 2); _local2 = _icon.getBounds(this); _labelField.x = Math.floor((_local2.right + Number(getStyle(CheckBoxStyle.TEXT_PADDING)))); }; super.drawState(); } override public function set toggle(_arg1:Boolean):void{ } public static function get defaultStyles():Object{ var _local1:Object = {icon:DefaultIcon, selectedIcon:SelectedIcon, textPadding:4}; return (_local1); } } }//package com.bigwigmedia.ui import flash.display.*; import flash.geom.*; class DefaultIcon extends Shape { public static const WIDTH:Number = 14; public static const HEIGHT:Number = 14; private function DefaultIcon(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), (Math.PI / 2), 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); } } class SelectedIcon extends DefaultIcon { private function SelectedIcon(){ graphics.lineStyle(2, 0x333333, 1); graphics.moveTo(4, 7); graphics.lineTo(6, 9); graphics.lineTo(11, 4); } }
Section 285
//Console (com.bigwigmedia.ui.Console) package com.bigwigmedia.ui { import flash.display.*; import com.bigwigmedia.application.*; import flash.events.*; import com.bigwigmedia.events.*; import com.bigwigmedia.input.*; public class Console { private static var _view:ConsoleView; private static var _active:Boolean = false; private static var keyInputMan:KeyInputManager; private static var toggleKeyCode:uint; private static var _stage:Stage; private static function onKeyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == toggleKeyCode){ toggle(); }; } private static function onKeySequenceHandler(_arg1:KeyInputEvent):void{ if (_arg1.keyAction == "toggle_console"){ toggle(); }; } private static function toggle():void{ _active = !(_active); if (_active){ _stage.addChild(_view); _stage.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); } else { _stage.removeChild(_view); _stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); }; } private static function onEnterFrameHandler(_arg1:Event):void{ _view.update(); } public static function initialize(_arg1:Array=null):void{ if (_view){ return; }; _view = new ConsoleView(); _stage = ApplicationGlobals.application.stage; if (!_arg1){ toggleKeyCode = 67; _stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler); } else { keyInputMan = new KeyInputManager(_stage); keyInputMan.mapSequence("toggle_console", _arg1); keyInputMan.addEventListener(KeyInputEvent.SEQUENCE, onKeySequenceHandler); }; } } }//package com.bigwigmedia.ui import flash.display.*; import com.bigwigmedia.application.*; import flash.events.*; import flash.utils.*; import com.bigwigmedia.core.*; import flash.text.*; import flash.system.*; class ConsoleView extends Sprite implements IUpdatable { private var maxMemory:int; private var infoField:TextField; private var viewMode:int;// = 0 private var tfDelay:int;// = 0 private var minMemory:int; private var firstDraw:Boolean;// = true private var tfTimer:int; public static const PROFILER:int = 0; public static const UPDATE_DELAY:int = 10; public static const INFO:int = 1; private function ConsoleView(){ infoField = new TextField(); infoField.defaultTextFormat = new TextFormat("_sans", 10); infoField.selectable = false; infoField.x = 1; infoField.y = 0; infoField.multiline = true; addChild(infoField); this.mouseChildren = false; addEventListener(MouseEvent.CLICK, onMouseClickHandler); minMemory = (maxMemory = System.totalMemory); tfTimer = getTimer(); draw(); } private function draw():void{ var _local1:ApplicationInfo; graphics.clear(); graphics.lineStyle(0, 0, 1, true); graphics.beginFill(0x666666, 1); switch (viewMode){ case ConsoleView.PROFILER: infoField.autoSize = TextFieldAutoSize.LEFT; infoField.htmlText = ""; graphics.drawRect(0, 0, 80, 56); break; case ConsoleView.INFO: infoField.autoSize = TextFieldAutoSize.LEFT; _local1 = ApplicationGlobals.application.info; infoField.htmlText = (((((((((((((("<font color='#FFFFFF'>" + "APP: ") + _local1.name) + "\nID: ") + _local1.id) + "\nVER: ") + _local1.version) + "\nFP: ") + Capabilities.version) + " ") + Capabilities.playerType) + (Capabilities.isDebugger) ? " DEBUG" : " RELEASE") + "\nSANDBOX: ") + Security.sandboxType) + "</font>"); graphics.drawRect(0, 0, (infoField.width + 4), 68); break; }; graphics.endFill(); } public function update():void{ var _local1:int; var _local2:Number; if (++tfDelay >= UPDATE_DELAY){ tfDelay = 0; _local1 = System.totalMemory; if (_local1 > maxMemory){ maxMemory = _local1; }; if (_local1 < minMemory){ minMemory = _local1; }; _local2 = ((1000 * UPDATE_DELAY) / (getTimer() - tfTimer)); tfTimer = getTimer(); switch (viewMode){ case ConsoleView.PROFILER: infoField.htmlText = ((((((((((("<font color='#FFFFFF'>FPS: " + _local2.toFixed(2)) + "</font>\n") + "<font color='#9FCFFF'>MEM: ") + bytesToString(_local1)) + "</font>\n") + "<font color='#FFCC00'>MAX: ") + bytesToString(maxMemory)) + "</font>\n") + "<font color='#00FF00'>MIN: ") + bytesToString(minMemory)) + "</font>"); break; }; }; } private function onMouseClickHandler(_arg1:MouseEvent):void{ viewMode++; if (viewMode > ConsoleView.INFO){ viewMode = ConsoleView.PROFILER; }; draw(); } private function bytesToString(_arg1:uint):String{ var _local2:String; if (_arg1 < 0x0400){ _local2 = (String(_arg1) + "b"); } else { if (_arg1 < 0x2800){ _local2 = (Number((_arg1 / 0x0400)).toFixed(2) + "kb"); } else { if (_arg1 < 102400){ _local2 = (Number((_arg1 / 0x0400)).toFixed(1) + "kb"); } else { if (_arg1 < 0x100000){ _local2 = ((_arg1 >> 10) + "kb"); } else { if (_arg1 < 0xA00000){ _local2 = (Number((_arg1 / 0x100000)).toFixed(2) + "mb"); } else { if (_arg1 < 104857600){ _local2 = (Number((_arg1 / 0x100000)).toFixed(1) + "mb"); } else { _local2 = ((_arg1 >> 20) + "mb"); }; }; }; }; }; }; return (_local2); } }
Section 286
//ContextMenu_2DPlay (com.bigwigmedia.ui.ContextMenu_2DPlay) package com.bigwigmedia.ui { import flash.events.*; import flash.ui.*; import com.bigwigmedia.core.*; import com.bigwigmedia.net.*; public class ContextMenu_2DPlay { private static var moreGamesItem:ContextMenuItem = new ContextMenuItem("Play more games"); private static var getGameItem:ContextMenuItem = new ContextMenuItem("Get game for your site"); private static var scoresItem:ContextMenuItem = new ContextMenuItem("High scores"); private static var downloadItem:ContextMenuItem = new ContextMenuItem("Download this game"); private static var menu:ContextMenu; private static function onMenuItemSelect(_arg1:ContextMenuEvent):void{ var _local2:IURLCaller = IURLCaller(Singleton.getInstance("com.bigwigmedia.net::IURLCaller")); switch (_arg1.target){ case scoresItem: _local2.viewScores(); break; case moreGamesItem: _local2.playMoreGames(); break; case getGameItem: _local2.getGame(); break; case downloadItem: _local2.downloadGame(); break; }; } public static function getEmptyMenu():ContextMenu{ var _local1:ContextMenu = new ContextMenu(); _local1.hideBuiltInItems(); return (_local1); } public static function getMenu():ContextMenu{ Singleton.registerClass("com.bigwigmedia.net::IURLCaller", URLCaller_2DPlay); if (!menu){ menu = getEmptyMenu(); scoresItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect); moreGamesItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect); getGameItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect); downloadItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onMenuItemSelect); menu.customItems.push(scoresItem); menu.customItems.push(moreGamesItem); menu.customItems.push(getGameItem); menu.customItems.push(downloadItem); }; return (menu); } } }//package com.bigwigmedia.ui
Section 287
//CursorManager (com.bigwigmedia.ui.CursorManager) package com.bigwigmedia.ui { import flash.display.*; import flash.events.*; import flash.text.*; import flash.ui.*; import com.bigwigmedia.core.*; import com.bigwigmedia.application.*; import flash.errors.*; public class CursorManager implements ICursorManager { private var cursorLeftStage:Boolean; private var nextCursorID:int;// = 1 private var _currentCursorID:int;// = 0 private var cursorQueue:Array; private var cursorHolder:Sprite; private var _currentCursor:DisplayObject; private var stage:Stage; bigwigmedia_ns static var singletonAccessor:Boolean = true; public function CursorManager(){ cursorQueue = []; super(); if (!bigwigmedia_ns::singletonAccessor){ throw (new IllegalOperationError("Use method getInstance of Singleton class to get instance of CursorManager.")); }; stage = ApplicationGlobals.application.stage; cursorHolder = ApplicationGlobals.application.cursorHolder; } public function get currentCursor():DisplayObject{ return (_currentCursor); } public function removeCursor(_arg1:int):void{ var _local2:int = cursorQueue.length; var _local3:int; while (_local3 < _local2) { if (cursorQueue[_local3].id == _arg1){ cursorQueue.splice(_local3, 1); showCurrentCursor(); break; }; _local3++; }; } public function get currentCursorID():int{ return (_currentCursorID); } private function removeCustomEventHandlers():void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler, true); stage.removeEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler, true); var _local1:ContextMenu = InteractiveObject(ApplicationGlobals.application).contextMenu; if (_local1){ _local1.removeEventListener(ContextMenuEvent.MENU_SELECT, onContextMenuSelectHandler); }; } private function addCustomEventHandlers():void{ stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler, true); stage.addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler, true); var _local1:ContextMenu = InteractiveObject(ApplicationGlobals.application).contextMenu; if (_local1){ _local1.addEventListener(ContextMenuEvent.MENU_SELECT, onContextMenuSelectHandler); }; } private function onMouseMoveHandler(_arg1:MouseEvent):void{ cursorHolder.x = stage.mouseX; cursorHolder.y = stage.mouseY; var _local2:Object = _arg1.target; if ((((_local2 is TextField)) && ((_local2.type == TextFieldType.INPUT)))){ cursorVisible = false; Mouse.show(); } else { cursorVisible = true; }; if (cursorLeftStage){ cursorLeftStage = false; cursorVisible = true; }; if (cursorQueue.length > 0){ Mouse.hide(); }; } public function setCursor(_arg1:Class, _arg2:int=2):int{ var _local3:int = nextCursorID++; cursorQueue.push(new CursorInfo(_arg1, _local3, _arg2)); cursorQueue.sortOn("priority", (Array.NUMERIC | Array.DESCENDING)); showCurrentCursor(); return (_local3); } private function onMouseOutHandler(_arg1:MouseEvent):void{ if ((((_arg1.relatedObject == null)) && ((cursorQueue.length > 0)))){ stage.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler); }; } private function onContextMenuSelectHandler(_arg1:ContextMenuEvent):void{ stage.addEventListener(MouseEvent.MOUSE_OVER, contextMenuMouseOverHandler, true); } public function removeAllCursors():void{ cursorQueue = []; showCurrentCursor(); } private function showCurrentCursor():void{ var _local1:CursorInfo; if (cursorQueue.length > 0){ _local1 = cursorQueue[0]; if (_local1.id != _currentCursorID){ if (_currentCursor){ cursorHolder.removeChild(_currentCursor); }; _currentCursor = new _local1.cursorClass(); if (_currentCursor){ if ((_currentCursor is InteractiveObject)){ InteractiveObject(_currentCursor).mouseEnabled = false; }; cursorHolder.x = stage.mouseX; cursorHolder.y = stage.mouseY; cursorHolder.addChild(_currentCursor); _currentCursorID = _local1.id; addCustomEventHandlers(); }; }; Mouse.hide(); } else { if (_currentCursorID != 0){ _currentCursorID = 0; cursorHolder.removeChild(_currentCursor); _currentCursor = null; removeCustomEventHandlers(); }; Mouse.show(); }; } public function set cursorVisible(_arg1:Boolean):void{ if (cursorHolder){ cursorHolder.visible = _arg1; }; } private function onEnterFrameHandler(_arg1:Event):void{ stage.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); cursorLeftStage = true; cursorVisible = false; Mouse.show(); } private function contextMenuMouseOverHandler(_arg1:MouseEvent):void{ stage.removeEventListener(MouseEvent.MOUSE_OVER, contextMenuMouseOverHandler, true); onMouseMoveHandler(_arg1); } } }//package com.bigwigmedia.ui class CursorInfo { public var cursorClass:Class; public var priority:int; public var id:int; private function CursorInfo(_arg1:Class, _arg2:int, _arg3:int){ this.cursorClass = _arg1; this.id = _arg2; this.priority = _arg3; } }
Section 288
//HScrollBar (com.bigwigmedia.ui.HScrollBar) package com.bigwigmedia.ui { import com.bigwigmedia.ui.scrollClasses.*; public class HScrollBar extends ScrollBar { public function HScrollBar(){ super(ScrollBarDirection.HORIZONTAL); } } }//package com.bigwigmedia.ui
Section 289
//HSlider (com.bigwigmedia.ui.HSlider) package com.bigwigmedia.ui { import com.bigwigmedia.ui.sliderClasses.*; public class HSlider extends Slider { public function HSlider(){ super(SliderDirection.HORIZONTAL); } } }//package com.bigwigmedia.ui
Section 290
//IconicButton (com.bigwigmedia.ui.IconicButton) package com.bigwigmedia.ui { import flash.display.*; import flash.utils.*; import com.bigwigmedia.display.*; import com.bigwigmedia.ui.styles.*; public class IconicButton extends AbstractButton { private var _upIcon:DisplayObject;// = null private var _currentIcon:DisplayObject;// = null private var _overIcon:DisplayObject;// = null private var _downIcon:DisplayObject;// = null public function IconicButton(_arg1:Object=null, _arg2:Object=null, _arg3:Object=null){ this.upIcon = ((_arg1) || (DefaultIcon)); if (_arg2){ this.overIcon = _arg2; }; if (_arg3){ this.downIcon = _arg3; }; super(); } public function set overIcon(_arg1:Object):void{ _overIcon = getIconDisplayObject(_arg1); invalidateAll(); } public function set upIcon(_arg1:Object):void{ _upIcon = getIconDisplayObject(_arg1); invalidateAll(); } override protected function createChildren():void{ setNewIcon(_upIcon); } private function getIconDisplayObject(_arg1:Object):DisplayObject{ if ((_arg1 is Class) == false){ return (DisplayObject(_arg1)); }; if (getQualifiedSuperclassName(_arg1) == "flash.display::BitmapData"){ return (new Bitmap(new _arg1(0, 0))); }; return (new (_arg1)); } override protected function get beaconTarget():DisplayObject{ return (_upIcon); } public function set downIcon(_arg1:Object):void{ _downIcon = getIconDisplayObject(_arg1); invalidateAll(); } private function setNewIcon(_arg1:DisplayObject):void{ if (_currentIcon == _arg1){ return; }; if (_currentIcon){ removeChild(_currentIcon); }; _currentIcon = _arg1; measureSizes(); addChild(_currentIcon); } override protected function measureSizes():void{ if (((!(isNaN(_explicitWidth))) && (!(isNaN(_explicitHeight))))){ _currentIcon.width = _explicitWidth; _currentIcon.height = _explicitHeight; }; } override protected function drawState():void{ var _local1:IDecoration; switch (_state){ case ButtonState.UP: setNewIcon(_upIcon); _local1 = (getStyle(IconicButtonStyle.UP_DECORATION) as IDecoration); break; case ButtonState.OVER: setNewIcon(((_overIcon) || (_upIcon))); _local1 = (getStyle(IconicButtonStyle.OVER_DECORATION) as IDecoration); break; case ButtonState.DOWN: setNewIcon(((_downIcon) || (((_overIcon) || (_upIcon))))); _local1 = (getStyle(IconicButtonStyle.DOWN_DECORATION) as IDecoration); break; }; if (_local1){ _local1.apply(_currentIcon); }; } override public function dispose():void{ if (_currentIcon){ removeChild(_currentIcon); }; _currentIcon = null; _upIcon = null; _overIcon = null; _downIcon = null; super.dispose(); } public static function get defaultStyles():Object{ var _local1:Object = {upDecoration:null, overDecoration:null, downDecoration:null}; return (_local1); } } }//package com.bigwigmedia.ui import flash.display.*; import flash.geom.*; class DefaultIcon extends Shape { public static const WIDTH:Number = 32; public static const HEIGHT:Number = 24; private function DefaultIcon(){ graphics.beginFill(0x333333, 1); graphics.drawRect(0, 0, WIDTH, HEIGHT); graphics.endFill(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((WIDTH - 2), (HEIGHT - 2), (Math.PI / 2), 0, 0); graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xCCCCCC], [1, 1], [0, 0xFF], _local1); graphics.drawRect(1, 1, (WIDTH - 2), (HEIGHT - 2)); graphics.endFill(); this.scale9Grid = new Rectangle(1, 1, (WIDTH - 2), (HEIGHT - 2)); } }
Section 291
//ICursorManager (com.bigwigmedia.ui.ICursorManager) package com.bigwigmedia.ui { import flash.display.*; public interface ICursorManager { function removeAllCursors():void; function removeCursor(_arg1:int):void; function get currentCursor():DisplayObject; function setCursor(_arg1:Class, _arg2:int=2):int; function get currentCursorID():int; function set cursorVisible(_arg1:Boolean):void; } }//package com.bigwigmedia.ui
Section 292
//IStyleManager (com.bigwigmedia.ui.IStyleManager) package com.bigwigmedia.ui { public interface IStyleManager { function unregisterComponent(_arg1:AbstractComponent):void; function registerComponent(_arg1:AbstractComponent):void; function setSharedStyle(_arg1:Class, _arg2:String, _arg3:Object):void; } }//package com.bigwigmedia.ui
Section 293
//Label (com.bigwigmedia.ui.Label) package com.bigwigmedia.ui { import flash.text.*; import com.bigwigmedia.ui.styles.*; public class Label extends AbstractComponent { protected var _text:String; protected var _textField:TextField; protected var _selectable:Boolean;// = false protected var _htmlText:String; public function Label(_arg1:String=""){ _text = _arg1; super(); mouseChildren = false; mouseEnabled = false; } public function set selectable(_arg1:Boolean):void{ _textField.selectable = _arg1; } public function get text():String{ return (_text); } override protected function drawStyles():void{ var _local2:TextFormat; _textField.embedFonts = (getStyle(AbstractComponentStyle.EMBED_FONTS) as Boolean); var _local1:StyleSheet = (getStyle(AbstractComponentStyle.STYLE_SHEET) as StyleSheet); if (_local1){ _textField.styleSheet = _local1; } else { _textField.styleSheet = null; _local2 = (getStyle(AbstractComponentStyle.TEXT_FORMAT) as TextFormat); if (_local2){ _textField.setTextFormat(_local2); _textField.defaultTextFormat = _local2; }; }; } override protected function drawState():void{ if (_htmlText != null){ _textField.htmlText = _htmlText; } else { _textField.text = _text; }; } public function set htmlText(_arg1:String):void{ if (_htmlText != _arg1){ _text = null; _htmlText = _arg1; invalidateSize(); invalidateState(); }; } override protected function measureSizes():void{ _textField.width = this.width; _textField.height = this.height; } public function get selectable():Boolean{ return (_textField.selectable); } public function set text(_arg1:String):void{ if (_text != _arg1){ _text = _arg1; _htmlText = null; invalidateSize(); invalidateState(); }; } override protected function createChildren():void{ _textField = new TextField(); _textField.background = false; _textField.wordWrap = false; _textField.autoSize = TextFieldAutoSize.LEFT; _textField.text = _text; addChild(_textField); } public function get htmlText():String{ return (_htmlText); } } }//package com.bigwigmedia.ui
Section 294
//LabelButton (com.bigwigmedia.ui.LabelButton) package com.bigwigmedia.ui { import flash.display.*; import flash.text.*; import com.bigwigmedia.ui.styles.*; public class LabelButton extends AbstractButton { protected var _labelField:TextField; protected var _label:String; public function LabelButton(_arg1:String=""){ _label = _arg1; super(); } override protected function createChildren():void{ _labelField = new TextField(); _labelField.type = TextFieldType.DYNAMIC; _labelField.selectable = false; _labelField.autoSize = TextFieldAutoSize.LEFT; _labelField.text = _label; addChild(_labelField); } override protected function drawStyles():void{ _labelField.embedFonts = (getStyle(AbstractComponentStyle.EMBED_FONTS) as Boolean); var _local1:TextFormat = (getStyle(AbstractComponentStyle.TEXT_FORMAT) as TextFormat); if (_local1){ _labelField.setTextFormat(_local1); _labelField.defaultTextFormat = _local1; }; } public function set label(_arg1:String):void{ if (_label != _arg1){ _labelField.text = (_label = _arg1); invalidateSize(); }; } override protected function drawState():void{ switch (_state){ case ButtonState.UP: _labelField.textColor = (getStyle(LabelButtonStyle.UP_STATE_COLOR) as uint); break; case ButtonState.OVER: _labelField.textColor = (getStyle(LabelButtonStyle.OVER_STATE_COLOR) as uint); break; case ButtonState.DOWN: _labelField.textColor = (getStyle(LabelButtonStyle.DOWN_STATE_COLOR) as uint); break; }; } override protected function measureSizes():void{ graphics.clear(); graphics.lineStyle(); graphics.beginFill(0xFFFFFF, 0); graphics.drawRect(0, 0, this.width, this.height); } public function get label():String{ return (_label); } override protected function get beaconTarget():DisplayObject{ return (_labelField); } public static function get defaultStyles():Object{ var _local1:Object = {upStateColor:0xFFFFFF, overStateColor:0xFF0000, downStateColor:0x880000}; return (_local1); } } }//package com.bigwigmedia.ui
Section 295
//StyleManager (com.bigwigmedia.ui.StyleManager) package com.bigwigmedia.ui { import flash.utils.*; import com.bigwigmedia.core.*; import flash.errors.*; public class StyleManager implements IStyleManager { private var cachedStylesHash:Dictionary; private var sharedStylesHash:Dictionary; private var _components:Dictionary; bigwigmedia_ns static var singletonAccessor:Boolean = false; public function StyleManager(){ sharedStylesHash = new Dictionary(); cachedStylesHash = new Dictionary(); _components = new Dictionary(); super(); if (!bigwigmedia_ns::singletonAccessor){ throw (new IllegalOperationError("Use method getInstance of Singleton class to get instance of StyleManager.")); }; } public function unregisterComponent(_arg1:AbstractComponent):void{ if (_components[_arg1]){ delete _components[_arg1]; }; } public function registerComponent(_arg1:AbstractComponent):void{ var _local2:Object; var _local3:String; if (!_components[_arg1]){ _components[_arg1] = true; _local2 = getMergedSharedStyles(_arg1); for (_local3 in _local2) { var _local6 = _arg1; _local6.bigwigmedia_ns::setSharedStyle(_local3, _local2[_local3]); }; }; } private function invalidateSharedStyles(_arg1:Class):void{ var _local2:Object; var _local3:AbstractComponent; var _local4:Object; var _local5:String; for each (_local2 in _components) { _local3 = (_local2 as AbstractComponent); if ((_local3 is _arg1)){ _local4 = getMergedSharedStyles(_local3); for (_local5 in _local4) { var _local10 = _local3; _local10.bigwigmedia_ns::setSharedStyle(_local5, _local4[_local5]); }; }; }; } private function getMergedSharedStyles(_arg1:AbstractComponent):Object{ var _local5:String; var _local6:Class; var _local7:Object; var _local8:String; var _local2:Class = (getDefinitionByName(getQualifiedClassName(_arg1)) as Class); if (cachedStylesHash[_local2]){ return (cachedStylesHash[_local2]); }; var _local3:Object = getSharedStyle(_local2); var _local4:Object = {}; for (_local5 in _local3) { _local4[_local5] = _local3[_local5]; }; _local6 = (getDefinitionByName(getQualifiedClassName(_arg1)) as Class); while (true) { _local7 = getSharedStyle(_local6); for (_local8 in _local7) { if (_local4[_local8] === undefined){ _local4[_local8] = _local7[_local8]; }; }; if (getQualifiedClassName(_local6) == "com.bigwigmedia.ui::AbstractComponent"){ break; } else { _local6 = (getDefinitionByName(getQualifiedSuperclassName(_local6)) as Class); }; }; cachedStylesHash[_local2] = _local4; return (_local4); } private function getSharedStyle(_arg1:Class):Object{ var _local2:Object; if (!sharedStylesHash[_arg1]){ _local2 = _arg1["defaultStyles"]; sharedStylesHash[_arg1] = ((_local2) || (new Object())); }; return (sharedStylesHash[_arg1]); } public function setSharedStyle(_arg1:Class, _arg2:String, _arg3:Object):void{ var _local4:Object = getSharedStyle(_arg1); _local4[_arg2] = _arg3; cachedStylesHash = new Dictionary(); invalidateSharedStyles(_arg1); } } }//package com.bigwigmedia.ui
Section 296
//Text (com.bigwigmedia.ui.Text) package com.bigwigmedia.ui { import flash.text.*; public class Text extends Label { public function Text(_arg1:String=""){ super(_arg1); } override protected function createChildren():void{ _textField = new TextField(); _textField.background = false; _textField.wordWrap = true; _textField.multiline = true; _textField.autoSize = TextFieldAutoSize.LEFT; _textField.text = _text; addChild(_textField); } } }//package com.bigwigmedia.ui
Section 297
//TextArea (com.bigwigmedia.ui.TextArea) package com.bigwigmedia.ui { import flash.text.*; public class TextArea extends TextInput { override protected function createChildren():void{ _textField = new TextField(); _textField.wordWrap = true; _textField.multiline = true; _textField.type = TextFieldType.INPUT; _textField.text = ""; addChild(_textField); } } }//package com.bigwigmedia.ui
Section 298
//TextInput (com.bigwigmedia.ui.TextInput) package com.bigwigmedia.ui { import flash.text.*; import com.bigwigmedia.ui.styles.*; public class TextInput extends AbstractComponent { protected var _editable:Boolean;// = true protected var _textField:TextField; protected var _selectable:Boolean;// = true public function get editable():Boolean{ return (_editable); } public function get text():String{ return (_textField.text); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get restrict():String{ return (_textField.restrict); } public function set selectable(_arg1:Boolean):void{ _selectable = _arg1; updateTextFieldType(); } override protected function drawStyles():void{ _textField.background = (getStyle(TextInputStyle.BACKGROUND) as Boolean); _textField.backgroundColor = (getStyle(TextInputStyle.BACKGROUND_COLOR) as uint); _textField.border = (getStyle(TextInputStyle.BORDER) as Boolean); _textField.borderColor = (getStyle(TextInputStyle.BORDER_COLOR) as uint); _textField.embedFonts = (getStyle(AbstractComponentStyle.EMBED_FONTS) as Boolean); var _local1:TextFormat = (getStyle(AbstractComponentStyle.TEXT_FORMAT) as TextFormat); if (_local1){ _textField.setTextFormat(_local1); _textField.defaultTextFormat = _local1; }; } public function set maxChars(_arg1:int):void{ _textField.maxChars = _arg1; } override protected function measureSizes():void{ _textField.width = this.width; _textField.height = this.height; } public function get selectable():Boolean{ return (_selectable); } public function set restrict(_arg1:String):void{ _textField.restrict = _arg1; } public function get maxChars():int{ return (_textField.maxChars); } public function set text(_arg1:String):void{ _textField.text = _arg1; } override protected function createChildren():void{ _textField = new TextField(); _textField.multiline = false; _textField.type = TextFieldType.INPUT; text = ""; addChild(_textField); } private function updateTextFieldType():void{ _textField.type = (((_editable) && (_selectable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; _textField.selectable = _selectable; } public static function get defaultStyles():Object{ var _local1:Object = {background:true, backgroundColor:0xFFFFFF, border:true, borderColor:0}; return (_local1); } } }//package com.bigwigmedia.ui
Section 299
//VScrollBar (com.bigwigmedia.ui.VScrollBar) package com.bigwigmedia.ui { import com.bigwigmedia.ui.scrollClasses.*; public class VScrollBar extends ScrollBar { public function VScrollBar(){ super(ScrollBarDirection.VERTICAL); } } }//package com.bigwigmedia.ui
Section 300
//Message (com.bigwigmedia.utils.messages.Message) package com.bigwigmedia.utils.messages { import com.bigwigmedia.utils.*; public class Message { private var _priority:int; private var _data:Object; private var _removeDuplicates:Boolean; private var _cancelQueue:Boolean; private var _type:String; public function Message(_arg1:String, _arg2:int, _arg3:Boolean, _arg4:Boolean, _arg5:Object){ _type = _arg1; _priority = _arg2; _cancelQueue = _arg3; _removeDuplicates = _arg4; _data = _arg5; } public function get priority():int{ return (_priority); } public function get data():Object{ return (_data); } public function toString():String{ return (ObjectUtil.formatToString(this, "type", "priority", "data")); } function cloneWithData(_arg1:Object):Message{ return (new Message(_type, _priority, _cancelQueue, _removeDuplicates, _arg1)); } public function get cancelQueue():Boolean{ return (_cancelQueue); } public function get type():String{ return (_type); } public function get removeDuplicates():Boolean{ return (_removeDuplicates); } } }//package com.bigwigmedia.utils.messages
Section 301
//MessageQueue (com.bigwigmedia.utils.messages.MessageQueue) package com.bigwigmedia.utils.messages { import com.bigwigmedia.core.*; public class MessageQueue implements IDisposable { private var pendingMessages:Array; private var locked:Boolean;// = false private var pendingMessagesWhileLocked:Array; private var messagePrototypes:Object; public function MessageQueue(){ pendingMessages = []; pendingMessagesWhileLocked = []; messagePrototypes = {}; super(); } public function registerMessage(_arg1:String, _arg2:int, _arg3:Boolean=false, _arg4:Boolean=false):void{ if (messagePrototypes[_arg1] != undefined){ throw (new ArgumentError((("Message of type \"" + _arg1) + "\" is registered already."))); }; messagePrototypes[_arg1] = new Message(_arg1, _arg2, _arg4, _arg3, null); } public function getNext():Message{ var _local1:Message = pendingMessages.pop(); if (_local1.cancelQueue){ pendingMessages = []; }; return (_local1); } public function lock():void{ locked = true; } public function clear():void{ if (pendingMessages.length > 0){ pendingMessages = []; }; if (pendingMessagesWhileLocked.length > 0){ pendingMessagesWhileLocked = []; }; } public function dispose():void{ pendingMessages = []; pendingMessagesWhileLocked = []; messagePrototypes = {}; } public function unlock():void{ while (pendingMessagesWhileLocked.length > 0) { _append(pendingMessagesWhileLocked.pop()); }; locked = false; } private function _append(_arg1:Message):void{ var _local2:Message; var _local3:int; if (_arg1.removeDuplicates){ for each (_local2 in pendingMessages) { if (_arg1.type == _local2.type){ _local3 = pendingMessages.indexOf(_local2); pendingMessages.splice(_local3, 1); }; }; }; pendingMessages.push(_arg1); pendingMessages.sortOn("priority", Array.NUMERIC); } public function append(_arg1:String, _arg2:Object=null):void{ if (messagePrototypes[_arg1] == undefined){ throw (new ArgumentError((("There's no message of type \"" + _arg1) + "\" registered."))); }; var _local3:Message = messagePrototypes[_arg1]; var _local4:Message = _local3.cloneWithData(_arg2); if (locked){ pendingMessagesWhileLocked.push(_local4); } else { _append(_local4); }; } public function hasNext():Boolean{ return ((pendingMessages.length > 0)); } } }//package com.bigwigmedia.utils.messages
Section 302
//NameUtil (com.bigwigmedia.utils.NameUtil) package com.bigwigmedia.utils { import flash.display.*; import flash.utils.*; public class NameUtil { public static function getClassName(_arg1):String{ var _local2:String = getQualifiedClassName(_arg1); return (_local2.split("::").pop()); } public static function toDisplayObjectString(_arg1:Object):String{ var _local2:String; var _local3:DisplayObject; var _local4:String; if ((_arg1 is DisplayObject)){ _local3 = (_arg1 as DisplayObject); while (_local3 != null) { if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){ break; }; _local4 = _local3.name; _local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2); _local3 = _local3.parent; }; } else { _local2 = "Not a DisplayObject"; }; return (_local2); } } }//package com.bigwigmedia.utils
Section 303
//NumberFormatter (com.bigwigmedia.utils.NumberFormatter) package com.bigwigmedia.utils { public class NumberFormatter { public static function addLeadingZeros(_arg1:Object, _arg2:int=2):String{ var _local3:String = String(_arg1); while (_local3.length < _arg2) { _local3 = ("0" + _local3); }; return (_local3); } public static function formatThousands(_arg1:Object, _arg2:String=","):String{ var _local3:String = String(_arg1); var _local4 = ""; var _local5:Number = _local3.length; var _local6:int; while (_local6 < _local5) { if (((((_local6 % 3) == 0)) && ((_local6 > 0)))){ _local4 = (_arg2 + _local4); }; _local4 = (_local3.substr((_local5 - (_local6 + 1)), 1) + _local4); _local6++; }; return (_local4); } public static function formatPrecision(_arg1:Object, _arg2:String=".", _arg3:int=3):String{ var _local6:String; var _local7:String; var _local4:String = String(_arg1); var _local5:Array = _local4.split("."); _local5[0] = ((_local5[0].length == 0)) ? "0" : _local5[0]; if (_arg3 > 0){ _local6 = (_local5[1]) ? String(_local5[1]) : ""; _local7 = (_local6 + "000000000000000000000000000000000"); _local4 = ((_local5[0] + _arg2) + _local7.substr(0, _arg3)); } else { _local4 = String(_local5[0]); }; return (_local4); } } }//package com.bigwigmedia.utils
Section 304
//ObjectUtil (com.bigwigmedia.utils.ObjectUtil) package com.bigwigmedia.utils { public class ObjectUtil { public static function getRandomValue(_arg1:Object){ var _local3:Object; var _local4:int; var _local2:Array = []; for each (_local3 in _arg1) { _local2.push(_local3); }; _local4 = (Math.random() * _local2.length); return (_local2[_local4]); } public static function formatToString(_arg1, ... _args):String{ var _local6:String; var _local7:Object; var _local3:String = ("[" + NameUtil.getClassName(_arg1)); var _local4:int = _args.length; var _local5:int; while (_local5 < _local4) { _local6 = _args[_local5]; if (_arg1.hasOwnProperty(_local6)){ _local7 = _arg1[_local6]; if ((_local7 is String)){ _local3 = (_local3 + ((((" " + _local6) + "=\"") + _local7) + "\"")); } else { _local3 = (_local3 + (((" " + _local6) + "=") + _local7)); }; }; _local5++; }; return ((_local3 + "]")); } public static function hasProperties(_arg1:Object):Boolean{ var _local2:String; for (_local2 in _arg1) { return (true); }; return (false); } } }//package com.bigwigmedia.utils
Section 305
//Transitions (com.boostworthy.animation.easing.Transitions) package com.boostworthy.animation.easing { public final class Transitions { public static const SINE_OUT:String = "sineOut"; public static const QUAD_IN_AND_OUT:String = "quadInAndOut"; private static const ELASTIC_PERIOD:Number = 400; public static const QUART_OUT:String = "quartOut"; public static const BOUNCE:String = "bounce"; public static const EXPO_IN:String = "expoIn"; public static const SINE_IN:String = "sineIn"; public static const CUBIC_OUT:String = "cubicOut"; public static const QUINT_OUT:String = "quintOut"; public static const QUAD_IN:String = "quadIn"; public static const QUINT_IN_AND_OUT:String = "quintInAndOut"; public static const ELASTIC_OUT:String = "elasticOut"; public static const LINEAR:String = "linear"; public static const QUART_IN_AND_OUT:String = "quartInAndOut"; public static const QUAD_OUT:String = "quadOut"; public static const QUINT_IN:String = "quintIn"; public static const CUBIC_IN_AND_OUT:String = "cubicInAndOut"; public static const QUART_IN:String = "quartIn"; public static const DEFAULT_TRANSITION:String = "linear"; private static const BACK_OVERSHOOT:Number = 1.70158; public static const BACK_OUT:String = "backOut"; private static const ELASTIC_AMPLITUDE:Number = undefined; public static const CUBIC_IN:String = "cubicIn"; public static const ELASTIC_IN_AND_OUT:String = "elasticInAndOut"; public static const EXPO_OUT:String = "expoOut"; public static const BACK_IN_AND_OUT:String = "backInAndOut"; public static const ELASTIC_IN:String = "elasticIn"; public static const EXPO_IN_AND_OUT:String = "expoInAndOut"; public static const BACK_IN:String = "backIn"; public static const SINE_IN_AND_OUT:String = "sineInAndOut"; public static function quadOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function expoOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : ((_arg3 * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function expoInAndOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2)); }; --_arg1; return ((((_arg3 / 2) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function quintOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function cubicIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function sineIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2) + _arg3)); } public static function sineOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function quartOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function sineInAndOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) / 2) * (Math.cos(((_arg1 / _arg4) * Math.PI)) - 1)) + _arg2)); } public static function bounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function backInAndOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number = BACK_OVERSHOOT; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local5 = (_local5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local5 + 1) * _arg1) - _local5))) + _arg2)); }; _arg1 = (_arg1 - 2); _local5 = (_local5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local5 + 1) * _arg1) + _local5)) + 2)) + _arg2)); } public static function expoIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==0) ? _arg2 : ((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2)); } public static function cubicOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function linear(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function quadIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function quintIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function elasticOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local7:Number; var _local5:Number = ELASTIC_AMPLITUDE; var _local6:Number = ELASTIC_PERIOD; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_local6){ _local6 = (_arg4 * 0.3); }; if (((!(_local5)) || ((_local5 < Math.abs(_arg3))))){ _local5 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local5))); }; return (((((_local5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function quartInAndOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function quartIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function quadInAndOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function quintInAndOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function elasticIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local7:Number; var _local5:Number = ELASTIC_AMPLITUDE; var _local6:Number = ELASTIC_PERIOD; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_local6){ _local6 = (_arg4 * 0.3); }; if (((!(_local5)) || ((_local5 < Math.abs(_arg3))))){ _local5 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local5))); }; --_arg1; return ((-(((_local5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function cubicInAndOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function backOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number = BACK_OVERSHOOT; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local5 + 1) * _arg1) + _local5)) + 1)) + _arg2)); } public static function elasticInAndOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local7:Number; var _local5:Number = ELASTIC_AMPLITUDE; var _local6:Number = ELASTIC_PERIOD; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_local6){ _local6 = (_arg4 * (0.3 * 1.5)); }; if (((!(_local5)) || ((_local5 < Math.abs(_arg3))))){ _local5 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function backIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number = BACK_OVERSHOOT; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local5 + 1) * _arg1) - _local5)) + _arg2)); } } }//package com.boostworthy.animation.easing
Section 306
//Animation (com.boostworthy.animation.management.types.abstract.Animation) package com.boostworthy.animation.management.types.abstract { public class Animation implements IAnimation { protected var m_objTarget:Object; protected var m_uRenderMethod:uint; protected var m_strProperty:String; public function Animation(_arg1:Object, _arg2:String, _arg3:uint){ m_objTarget = _arg1; m_strProperty = _arg2; m_uRenderMethod = _arg3; } public function get method():uint{ return (m_uRenderMethod); } public function get property():String{ return (m_strProperty); } public function get target():Object{ return (m_objTarget); } public function render():Boolean{ return (false); } } }//package com.boostworthy.animation.management.types.abstract
Section 307
//IAnimation (com.boostworthy.animation.management.types.abstract.IAnimation) package com.boostworthy.animation.management.types.abstract { import com.boostworthy.animation.rendering.*; public interface IAnimation extends IRenderable { function get method():uint; function get target():Object; function get property():String; } }//package com.boostworthy.animation.management.types.abstract
Section 308
//AlphaAnimation (com.boostworthy.animation.management.types.AlphaAnimation) package com.boostworthy.animation.management.types { import flash.display.*; import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class AlphaAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_fncTransition:Function; public static const PROPERTY:String = "alpha"; public function AlphaAnimation(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:String, _arg5:uint){ super(_arg1, PROPERTY, _arg5); m_nTargetValue = _arg2; m_nDuration = _arg3; m_fncTransition = Transitions[_arg4]; m_nStartValue = m_objTarget.alpha; m_nChangeValue = (m_nTargetValue - m_nStartValue); m_objTarget.visible = true; m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.alpha = m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration); return (true); }; m_objTarget.alpha = m_nTargetValue; if (!m_nTargetValue){ m_objTarget.visible = false; }; return (false); } } }//package com.boostworthy.animation.management.types
Section 309
//BlurAnimation (com.boostworthy.animation.management.types.BlurAnimation) package com.boostworthy.animation.management.types { import flash.display.*; import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import flash.filters.*; import com.boostworthy.animation.easing.*; public class BlurAnimation extends Animation { protected var m_nStartTime:Number; protected var m_aFilters:Array; protected var m_fncTransition:Function; protected var m_objBlur:BlurFilter; protected var m_nStartValueX:Number; protected var m_nStartValueY:Number; protected var m_nDuration:Number; protected var m_nChangeValueX:Number; protected var m_nTargetValueX:Number; protected var m_nTargetValueY:Number; protected var m_nChangeValueY:Number; protected static const DEFAULT_QUALITY:Number = 3; public static const PROPERTY:String = "filters.BlurFilter.blurX, filters.BlurFilter.blurY"; protected static const DEFAULT_BLUR_X:Number = 0; protected static const DEFAULT_BLUR_Y:Number = 0; public function BlurAnimation(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:uint){ var _local8:Number; super(_arg1, PROPERTY, _arg7); m_nTargetValueX = _arg2; m_nTargetValueY = _arg3; m_nDuration = _arg5; m_aFilters = new Array(); if (m_objTarget.filters.length){ _local8 = 0; while (_local8 < m_objTarget.filters.length) { if ((m_objTarget.filters[_local8] is BlurFilter)){ m_objBlur = m_objTarget.filters[_local8].clone(); } else { m_aFilters.push(m_objTarget.filters[_local8]); }; _local8++; }; } else { m_objBlur = new BlurFilter(DEFAULT_BLUR_X, DEFAULT_BLUR_Y, _arg4); }; m_fncTransition = Transitions[_arg6]; m_nStartValueX = m_objBlur.blurX; m_nStartValueY = m_objBlur.blurY; m_nChangeValueX = (m_nTargetValueX - m_nStartValueX); m_nChangeValueY = (m_nTargetValueY - m_nStartValueY); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local2:Array; var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ _local2 = m_aFilters.concat(); m_objBlur.blurX = m_fncTransition(_local1, m_nStartValueX, m_nChangeValueX, m_nDuration); m_objBlur.blurY = m_fncTransition(_local1, m_nStartValueY, m_nChangeValueY, m_nDuration); _local2.push(m_objBlur); m_objTarget.filters = _local2; return (true); }; m_objBlur.blurX = m_nTargetValueX; m_objBlur.blurY = m_nTargetValueY; m_aFilters.push(m_objBlur); m_objTarget.filters = m_aFilters; return (false); } } }//package com.boostworthy.animation.management.types
Section 310
//BrightnessAnimation (com.boostworthy.animation.management.types.BrightnessAnimation) package com.boostworthy.animation.management.types { import flash.utils.*; import com.boostworthy.core.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class BrightnessAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_fncTransition:Function; public static const PROPERTY:String = "colorMatrix.brightness"; public function BrightnessAnimation(_arg1:IColorable, _arg2:Number, _arg3:Number, _arg4:String, _arg5:uint){ super(_arg1, PROPERTY, _arg5); m_nTargetValue = _arg2; m_nDuration = _arg3; m_fncTransition = Transitions[_arg4]; m_nStartValue = _arg1.colorMatrix.brightness; m_nChangeValue = (m_nTargetValue - m_nStartValue); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.colorMatrix.brightness = m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration); return (true); }; m_objTarget.colorMatrix.brightness = m_nTargetValue; return (false); } } }//package com.boostworthy.animation.management.types
Section 311
//ColorAnimation (com.boostworthy.animation.management.types.ColorAnimation) package com.boostworthy.animation.management.types { import flash.display.*; import flash.geom.*; import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class ColorAnimation extends Animation { protected var m_nChangeValueG:Number; protected var m_nStartValueR:Number; protected var m_nStartValueG:Number; protected var m_nChangeValueR:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_nTargetValueB:Number; protected var m_nTargetValueG:Number; protected var m_nTargetValueR:Number; protected var m_nStartValueB:Number; protected var m_nChangeValueB:Number; protected var m_fncTransition:Function; public static const PROPERTY:String = "transform.colorTransform.redOffset, transform.colorTransform.greenOffset, transform.colorTransform.blueOffset"; public function ColorAnimation(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:String, _arg5:uint){ super(_arg1, PROPERTY, _arg5); var _local6:ColorTransform = new ColorTransform(0, 0, 0, 1, 0, 0, 0, NaN); _local6.color = _arg2; m_nTargetValueR = _local6.redOffset; m_nTargetValueG = _local6.greenOffset; m_nTargetValueB = _local6.blueOffset; m_nDuration = _arg3; m_fncTransition = Transitions[_arg4]; m_nStartValueR = m_objTarget.transform.colorTransform.redOffset; m_nStartValueG = m_objTarget.transform.colorTransform.greenOffset; m_nStartValueB = m_objTarget.transform.colorTransform.blueOffset; m_nChangeValueR = (m_nTargetValueR - m_nStartValueR); m_nChangeValueG = (m_nTargetValueG - m_nStartValueG); m_nChangeValueB = (m_nTargetValueB - m_nStartValueB); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:ColorTransform = new ColorTransform(0, 0, 0, 1, 0, 0, 0, NaN); var _local2:Number = (getTimer() - m_nStartTime); if (_local2 < m_nDuration){ _local1.redOffset = m_fncTransition(_local2, m_nStartValueR, m_nChangeValueR, m_nDuration); _local1.greenOffset = m_fncTransition(_local2, m_nStartValueG, m_nChangeValueG, m_nDuration); _local1.blueOffset = m_fncTransition(_local2, m_nStartValueB, m_nChangeValueB, m_nDuration); m_objTarget.transform.colorTransform = _local1; return (true); }; _local1.redOffset = m_nTargetValueR; _local1.greenOffset = m_nTargetValueG; _local1.blueOffset = m_nTargetValueB; m_objTarget.transform.colorTransform = _local1; return (false); } } }//package com.boostworthy.animation.management.types
Section 312
//ContrastAnimation (com.boostworthy.animation.management.types.ContrastAnimation) package com.boostworthy.animation.management.types { import flash.utils.*; import com.boostworthy.core.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class ContrastAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_fncTransition:Function; public static const PROPERTY:String = "colorMatrix.contrast"; public function ContrastAnimation(_arg1:IColorable, _arg2:Number, _arg3:Number, _arg4:String, _arg5:uint){ super(_arg1, PROPERTY, _arg5); m_nTargetValue = _arg2; m_nDuration = _arg3; m_fncTransition = Transitions[_arg4]; m_nStartValue = _arg1.colorMatrix.contrast; m_nChangeValue = (m_nTargetValue - m_nStartValue); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.colorMatrix.contrast = m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration); return (true); }; m_objTarget.colorMatrix.contrast = m_nTargetValue; return (false); } } }//package com.boostworthy.animation.management.types
Section 313
//FilterAnimation (com.boostworthy.animation.management.types.FilterAnimation) package com.boostworthy.animation.management.types { import flash.display.*; import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import flash.filters.*; import com.boostworthy.animation.easing.*; public class FilterAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_objFilter:Class; protected var m_fncTransition:Function; public function FilterAnimation(_arg1:DisplayObject, _arg2:Class, _arg3:String, _arg4:Number, _arg5:Number, _arg6:String, _arg7:uint){ super(_arg1, _arg3, _arg7); m_nTargetValue = _arg4; m_nDuration = _arg5; m_objFilter = _arg2; var _local8:int = m_objTarget.filters.length; var _local9:int; while (_local9 < _local8) { if ((m_objTarget.filters[_local9] is m_objFilter)){ m_nStartValue = m_objTarget.filters[_local9][m_strProperty]; }; _local9++; }; if (isNaN(m_nStartValue)){ throw (new Error("ERROR -> FilterAnimation :: Constructor :: An invalid filter and/or filter property was specified.")); }; m_fncTransition = Transitions[_arg6]; m_nChangeValue = (m_nTargetValue - m_nStartValue); m_nStartTime = getTimer(); } protected function updateTargetFliter(_arg1:Number):void{ var _local2:Array = getFilters(); var _local3:BitmapFilter = getTargetFilter(); _local3[m_strProperty] = _arg1; _local2.push(_local3); m_objTarget.filters = _local2; } protected function getFilters():Array{ var _local1:Array = new Array(); var _local2:int = m_objTarget.filters.length; var _local3:int; while (_local3 < _local2) { if (!(m_objTarget.filters[_local3] is m_objFilter)){ _local1.push(m_objTarget.filters[_local3]); }; _local3++; }; return (_local1); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ updateTargetFliter(m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration)); return (true); }; updateTargetFliter(m_nTargetValue); return (false); } protected function getTargetFilter():BitmapFilter{ var _local1:int = m_objTarget.filters.length; var _local2:int; while (_local2 < _local1) { if ((m_objTarget.filters[_local2] is m_objFilter)){ return (m_objTarget.filters[_local2]); }; _local2++; }; return (null); } } }//package com.boostworthy.animation.management.types
Section 314
//FunctionsAnimation (com.boostworthy.animation.management.types.FunctionsAnimation) package com.boostworthy.animation.management.types { import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class FunctionsAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_fncSet:Function; protected var m_fncTransition:Function; public function FunctionsAnimation(_arg1:Object, _arg2:String, _arg3:String, _arg4:Number, _arg5:Number, _arg6:String, _arg7:uint){ super(_arg1, (((_arg2 + "(), ") + _arg3) + "()"), _arg7); m_nTargetValue = _arg4; m_nDuration = _arg5; m_fncTransition = Transitions[_arg6]; m_nStartValue = m_objTarget[_arg2](); m_nChangeValue = (m_nTargetValue - m_nStartValue); m_fncSet = m_objTarget[_arg3]; m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_fncSet(m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration)); return (true); }; m_fncSet(m_nTargetValue); return (false); } } }//package com.boostworthy.animation.management.types
Section 315
//HueAnimation (com.boostworthy.animation.management.types.HueAnimation) package com.boostworthy.animation.management.types { import flash.utils.*; import com.boostworthy.core.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class HueAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_fncTransition:Function; public static const PROPERTY:String = "colorMatrix.hue"; public function HueAnimation(_arg1:IColorable, _arg2:Number, _arg3:Number, _arg4:String, _arg5:uint){ super(_arg1, PROPERTY, _arg5); m_nTargetValue = _arg2; m_nDuration = _arg3; m_fncTransition = Transitions[_arg4]; m_nStartValue = _arg1.colorMatrix.hue; m_nChangeValue = (m_nTargetValue - m_nStartValue); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.colorMatrix.hue = m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration); return (true); }; m_objTarget.colorMatrix.hue = m_nTargetValue; return (false); } } }//package com.boostworthy.animation.management.types
Section 316
//MoveAnimation (com.boostworthy.animation.management.types.MoveAnimation) package com.boostworthy.animation.management.types { import flash.display.*; import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class MoveAnimation extends Animation { protected var m_nStartTime:Number; protected var m_fncTransition:Function; protected var m_nStartValueX:Number; protected var m_nStartValueY:Number; protected var m_nDuration:Number; protected var m_nChangeValueX:Number; protected var m_nTargetValueX:Number; protected var m_nTargetValueY:Number; protected var m_nChangeValueY:Number; public static const PROPERTY:String = "x, y"; public function MoveAnimation(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String, _arg6:uint){ super(_arg1, PROPERTY, _arg6); m_nTargetValueX = _arg2; m_nTargetValueY = _arg3; m_nDuration = _arg4; m_fncTransition = Transitions[_arg5]; m_nStartValueX = m_objTarget.x; m_nStartValueY = m_objTarget.y; m_nChangeValueX = (m_nTargetValueX - m_nStartValueX); m_nChangeValueY = (m_nTargetValueY - m_nStartValueY); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.x = m_fncTransition(_local1, m_nStartValueX, m_nChangeValueX, m_nDuration); m_objTarget.y = m_fncTransition(_local1, m_nStartValueY, m_nChangeValueY, m_nDuration); return (true); }; m_objTarget.x = m_nTargetValueX; m_objTarget.y = m_nTargetValueY; return (false); } } }//package com.boostworthy.animation.management.types
Section 317
//PropertyAnimation (com.boostworthy.animation.management.types.PropertyAnimation) package com.boostworthy.animation.management.types { import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class PropertyAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_fncTransition:Function; public function PropertyAnimation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:uint){ super(_arg1, _arg2, _arg6); m_nTargetValue = _arg3; m_nDuration = _arg4; m_fncTransition = Transitions[_arg5]; m_nStartValue = m_objTarget[m_strProperty]; m_nChangeValue = (m_nTargetValue - m_nStartValue); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget[m_strProperty] = m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration); return (true); }; m_objTarget[m_strProperty] = m_nTargetValue; return (false); } } }//package com.boostworthy.animation.management.types
Section 318
//PulseAnimation (com.boostworthy.animation.management.types.PulseAnimation) package com.boostworthy.animation.management.types { import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; public class PulseAnimation extends Animation { protected var m_nMax:Number; protected var m_nMedian:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_nValue:Number; protected var m_nMin:Number; public function PulseAnimation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:uint){ super(_arg1, _arg2, _arg6); m_nMin = _arg3; m_nMax = _arg4; m_nDuration = _arg5; m_nValue = ((m_nMax - m_nMin) / 2); m_nMedian = (m_nMin + m_nValue); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); m_objTarget[m_strProperty] = (m_nMedian + (Math.cos(((_local1 / m_nDuration) * (Math.PI * 2))) * m_nValue)); return (true); } } }//package com.boostworthy.animation.management.types
Section 319
//RotationAnimation (com.boostworthy.animation.management.types.RotationAnimation) package com.boostworthy.animation.management.types { import flash.display.*; import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class RotationAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_uNumRepeats:uint; protected var m_uRepeatCount:uint; protected var m_fncTransition:Function; public static const PROPERTY:String = "rotation"; public function RotationAnimation(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:uint, _arg5:String, _arg6:uint){ super(_arg1, PROPERTY, _arg6); m_nTargetValue = _arg2; m_nDuration = _arg3; m_uNumRepeats = _arg4; m_uRepeatCount = 0; m_fncTransition = Transitions[_arg5]; m_nStartValue = m_objTarget.rotation; m_nChangeValue = ((m_uNumRepeats)==1) ? (m_nTargetValue - m_nStartValue) : m_nTargetValue; m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.rotation = m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration); } else { if (((!((m_uNumRepeats == 0))) && ((++m_uRepeatCount == m_uNumRepeats)))){ m_objTarget.rotation = m_nTargetValue; return (false); }; m_nStartValue = m_objTarget.rotation; m_nStartTime = getTimer(); }; return (true); } } }//package com.boostworthy.animation.management.types
Section 320
//SaturationAnimation (com.boostworthy.animation.management.types.SaturationAnimation) package com.boostworthy.animation.management.types { import flash.utils.*; import com.boostworthy.core.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class SaturationAnimation extends Animation { protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_nDuration:Number; protected var m_nStartTime:Number; protected var m_fncTransition:Function; public static const PROPERTY:String = "colorMatrix.saturation"; public function SaturationAnimation(_arg1:IColorable, _arg2:Number, _arg3:Number, _arg4:String, _arg5:uint){ super(_arg1, PROPERTY, _arg5); m_nTargetValue = _arg2; m_nDuration = _arg3; m_fncTransition = Transitions[_arg4]; m_nStartValue = _arg1.colorMatrix.saturation; m_nChangeValue = (m_nTargetValue - m_nStartValue); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.colorMatrix.saturation = m_fncTransition(_local1, m_nStartValue, m_nChangeValue, m_nDuration); return (true); }; m_objTarget.colorMatrix.saturation = m_nTargetValue; return (false); } } }//package com.boostworthy.animation.management.types
Section 321
//ScaleAnimation (com.boostworthy.animation.management.types.ScaleAnimation) package com.boostworthy.animation.management.types { import flash.display.*; import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class ScaleAnimation extends Animation { protected var m_nStartTime:Number; protected var m_fncTransition:Function; protected var m_nStartValueX:Number; protected var m_nStartValueY:Number; protected var m_nDuration:Number; protected var m_nChangeValueX:Number; protected var m_nTargetValueX:Number; protected var m_nTargetValueY:Number; protected var m_nChangeValueY:Number; public static const PROPERTY:String = "scaleX, scaleY"; public function ScaleAnimation(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String, _arg6:uint){ super(_arg1, PROPERTY, _arg6); m_nTargetValueX = _arg2; m_nTargetValueY = _arg3; m_nDuration = _arg4; m_fncTransition = Transitions[_arg5]; m_nStartValueX = m_objTarget.scaleX; m_nStartValueY = m_objTarget.scaleY; m_nChangeValueX = (m_nTargetValueX - m_nStartValueX); m_nChangeValueY = (m_nTargetValueY - m_nStartValueY); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.scaleX = m_fncTransition(_local1, m_nStartValueX, m_nChangeValueX, m_nDuration); m_objTarget.scaleY = m_fncTransition(_local1, m_nStartValueY, m_nChangeValueY, m_nDuration); return (true); }; m_objTarget.scaleX = m_nTargetValueX; m_objTarget.scaleY = m_nTargetValueY; return (false); } } }//package com.boostworthy.animation.management.types
Section 322
//SizeAnimation (com.boostworthy.animation.management.types.SizeAnimation) package com.boostworthy.animation.management.types { import flash.display.*; import flash.utils.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.easing.*; public class SizeAnimation extends Animation { protected var m_nStartTime:Number; protected var m_nChangeValueH:Number; protected var m_nTargetValueH:Number; protected var m_nStartValueW:Number; protected var m_nDuration:Number; protected var m_nChangeValueW:Number; protected var m_nTargetValueW:Number; protected var m_nStartValueH:Number; protected var m_fncTransition:Function; public static const PROPERTY:String = "width, height"; public function SizeAnimation(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String, _arg6:uint){ super(_arg1, PROPERTY, _arg6); m_nTargetValueW = _arg2; m_nTargetValueH = _arg3; m_nDuration = _arg4; m_fncTransition = Transitions[_arg5]; m_nStartValueW = m_objTarget.width; m_nStartValueH = m_objTarget.height; m_nChangeValueW = (m_nTargetValueW - m_nStartValueW); m_nChangeValueH = (m_nTargetValueH - m_nStartValueH); m_nStartTime = getTimer(); } override public function render():Boolean{ var _local1:Number = (getTimer() - m_nStartTime); if (_local1 < m_nDuration){ m_objTarget.width = m_fncTransition(_local1, m_nStartValueW, m_nChangeValueW, m_nDuration); m_objTarget.height = m_fncTransition(_local1, m_nStartValueH, m_nChangeValueH, m_nDuration); return (true); }; m_objTarget.width = m_nTargetValueW; m_objTarget.height = m_nTargetValueH; return (false); } } }//package com.boostworthy.animation.management.types
Section 323
//AnimationManager (com.boostworthy.animation.management.AnimationManager) package com.boostworthy.animation.management { import flash.display.*; import flash.events.*; import flash.geom.*; import com.boostworthy.core.*; import com.boostworthy.animation.*; import com.boostworthy.animation.management.types.*; public class AnimationManager implements IEventDispatcher, IDisposable { protected const DEFAULT_REFRESH_RATE:Number = 10; protected const DEFAULT_RENDER_METHOD:uint = 2; protected const DEFAULT_TRANSITION:String = "linear"; protected var m_objFramebuffer:Framebuffer; public function AnimationManager(){ init(); } public function dispatchEvent(_arg1:Event):Boolean{ return (m_objFramebuffer.dispatchEvent(_arg1)); } public function size(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String="linear", _arg6:uint=2):void{ setStageReference(_arg1); m_objFramebuffer.addBufferObject(new SizeAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } public function willTrigger(_arg1:String):Boolean{ return (m_objFramebuffer.willTrigger(_arg1)); } public function contrast(_arg1:IColorable, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:uint=2):void{ if ((_arg1 is DisplayObject)){ setStageReference((_arg1 as DisplayObject)); }; m_objFramebuffer.addBufferObject(new ContrastAnimation(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function scale(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String="linear", _arg6:uint=2):void{ setStageReference(_arg1); m_objFramebuffer.addBufferObject(new ScaleAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } public function remove(_arg1:Object):void{ m_objFramebuffer.removeBufferObject(_arg1); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ m_objFramebuffer.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function brightness(_arg1:IColorable, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:uint=2):void{ if ((_arg1 is DisplayObject)){ setStageReference((_arg1 as DisplayObject)); }; m_objFramebuffer.addBufferObject(new BrightnessAnimation(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function saturation(_arg1:IColorable, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:uint=2):void{ if ((_arg1 is DisplayObject)){ setStageReference((_arg1 as DisplayObject)); }; m_objFramebuffer.addBufferObject(new SaturationAnimation(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function property(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String="linear", _arg6:uint=2):void{ if ((_arg1 is DisplayObject)){ setStageReference((_arg1 as DisplayObject)); }; m_objFramebuffer.addBufferObject(new PropertyAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } protected function init():void{ BoostworthyAnimation.log(); m_objFramebuffer = new Framebuffer(DEFAULT_REFRESH_RATE); } public function move(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:String="linear", _arg6:uint=2):void{ setStageReference(_arg1); m_objFramebuffer.addBufferObject(new MoveAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } public function pulse(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:uint=2):void{ if ((_arg1 is DisplayObject)){ setStageReference((_arg1 as DisplayObject)); }; m_objFramebuffer.addBufferObject(new PulseAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } public function functions(_arg1:Object, _arg2:String, _arg3:String, _arg4:Number, _arg5:Number, _arg6:String="linear", _arg7:uint=2):void{ if ((_arg1 is DisplayObject)){ setStageReference((_arg1 as DisplayObject)); }; m_objFramebuffer.addBufferObject(new FunctionsAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public function alpha(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:uint=2):void{ setStageReference(_arg1); m_objFramebuffer.addBufferObject(new AlphaAnimation(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function dispose():void{ m_objFramebuffer.dispose(); m_objFramebuffer = null; } public function initColor(_arg1:DisplayObject, _arg2:Number):void{ var _local3:ColorTransform = new ColorTransform(0, 0, 0, 1, 0, 0, 0, NaN); _local3.color = _arg2; _arg1.transform.colorTransform = _local3; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ m_objFramebuffer.removeEventListener(_arg1, _arg2, _arg3); } public function color(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:uint=2):void{ setStageReference(_arg1); m_objFramebuffer.addBufferObject(new ColorAnimation(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function blur(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String="linear", _arg7:uint=2):void{ setStageReference(_arg1); m_objFramebuffer.addBufferObject(new BlurAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } protected function setStageReference(_arg1:DisplayObject):void{ if (!Global.stage){ Global.stage = _arg1.stage; }; } public function hasEventListener(_arg1:String):Boolean{ return (m_objFramebuffer.hasEventListener(_arg1)); } public function filter(_arg1:DisplayObject, _arg2:Class, _arg3:String, _arg4:Number, _arg5:Number, _arg6:String="linear", _arg7:uint=2):void{ setStageReference(_arg1); m_objFramebuffer.addBufferObject(new FilterAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public function removeAll():void{ m_objFramebuffer.clearBuffer(); } public function rotation(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:uint=1, _arg5:String="linear", _arg6:uint=2):void{ setStageReference(_arg1); m_objFramebuffer.addBufferObject(new RotationAnimation(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } public function hue(_arg1:IColorable, _arg2:Number, _arg3:Number, _arg4:String="linear", _arg5:uint=2):void{ if ((_arg1 is DisplayObject)){ setStageReference((_arg1 as DisplayObject)); }; m_objFramebuffer.addBufferObject(new HueAnimation(_arg1, _arg2, _arg3, _arg4, _arg5)); } } }//package com.boostworthy.animation.management
Section 324
//Buffer (com.boostworthy.animation.management.Buffer) package com.boostworthy.animation.management { import flash.events.*; import com.boostworthy.events.*; import com.boostworthy.collections.iterators.*; import com.boostworthy.collections.*; import com.boostworthy.core.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.rendering.*; public class Buffer extends EventDispatcher implements ICollection, IDisposable, IRenderable { protected var m_objQueue:Queue; public function Buffer(){ init(); } public function add(_arg1:IAnimation):void{ m_objQueue.addElement(_arg1); } public function remove(_arg1:IAnimation):void{ var _local3:IAnimation; var _local2:IIterator = getIterator(); while (_local2.hasNext()) { _local3 = (_local2.next() as IAnimation); if (_local3 === _arg1){ removeElement(_local3); break; }; }; } public function get length():uint{ return (m_objQueue.length); } protected function removeElement(_arg1:IAnimation):void{ dispatchEvent(new AnimationEvent(AnimationEvent.STOP, _arg1.target, _arg1.property)); m_objQueue.removeElement(_arg1); } public function getIterator(_arg1:uint=2):IIterator{ return (m_objQueue.getIterator(_arg1)); } public function removeByTarget(_arg1:Object):void{ var _local3:IAnimation; var _local2:IIterator = getIterator(IteratorType.ARRAY_REVERSE); while (_local2.hasNext()) { _local3 = (_local2.next() as IAnimation); if (_local3.target === _arg1){ removeElement(_local3); }; }; } public function clear():void{ var _local2:IAnimation; var _local1:IIterator = getIterator(); while (_local1.hasNext()) { _local2 = (_local1.next() as IAnimation); dispatchEvent(new AnimationEvent(AnimationEvent.STOP, _local2.target, _local2.property)); }; m_objQueue.dispose(); } public function removeByProperty(_arg1:Object, _arg2:String):void{ var _local4:IAnimation; var _local3:IIterator = getIterator(); while (_local3.hasNext()) { _local4 = (_local3.next() as IAnimation); if ((((_local4.target === _arg1)) && ((_local4.property == _arg2)))){ removeElement(_local4); break; }; }; } public function render():Boolean{ var _local2:IAnimation; var _local1:IIterator = getIterator(); while (_local1.hasNext()) { _local2 = (_local1.next() as IAnimation); dispatchEvent(new AnimationEvent(AnimationEvent.CHANGE, _local2.target, _local2.property)); if (!_local2.render()){ dispatchEvent(new AnimationEvent(AnimationEvent.FINISH, _local2.target, _local2.property)); m_objQueue.removeElement(_local2); }; }; return (true); } protected function init():void{ m_objQueue = new Queue(); } public function dispose():void{ clear(); m_objQueue = null; } } }//package com.boostworthy.animation.management
Section 325
//Framebuffer (com.boostworthy.animation.management.Framebuffer) package com.boostworthy.animation.management { import flash.events.*; import com.boostworthy.events.*; import com.boostworthy.core.*; import com.boostworthy.animation.management.types.abstract.*; import com.boostworthy.animation.rendering.*; import com.boostworthy.animation.*; public class Framebuffer extends EventDispatcher implements IDisposable { protected var m_objBufferEF:Buffer; protected var m_objRenderer:Renderer; protected var m_objBufferT:Buffer; public function Framebuffer(_arg1:Number){ init(_arg1); } public function addBufferObject(_arg1:IAnimation):void{ removeAnimationByProperty(_arg1.target, _arg1.property); dispatchEvent(new AnimationEvent(AnimationEvent.START, _arg1.target, _arg1.property)); if (_arg1.method == RenderMethod.ENTER_FRAME){ m_objBufferEF.add(_arg1); m_objRenderer.start(RenderMethod.ENTER_FRAME); } else { if (_arg1.method == RenderMethod.TIMER){ m_objBufferT.add(_arg1); m_objRenderer.start(RenderMethod.TIMER); }; }; } protected function removeAnimation(_arg1:IAnimation):void{ if (_arg1.method == RenderMethod.ENTER_FRAME){ m_objBufferEF.remove(_arg1); checkBufferLengthEF(); } else { if (_arg1.method == RenderMethod.TIMER){ m_objBufferT.remove(_arg1); checkBufferLengthT(); }; }; } public function removeBufferObject(_arg1:Object):void{ removeAnimationByObject(_arg1); } protected function removeAnimationByObject(_arg1:Object):void{ m_objBufferEF.removeByTarget(_arg1); checkBufferLengthEF(); m_objBufferT.removeByTarget(_arg1); checkBufferLengthT(); } protected function onAnimationStop(_arg1:AnimationEvent):void{ dispatchEvent(new AnimationEvent(AnimationEvent.STOP, _arg1.animTarget, _arg1.animProperty)); } public function clearBuffer():void{ m_objRenderer.stopAll(); m_objBufferEF.clear(); m_objBufferT.clear(); } public function dispose():void{ m_objBufferEF.removeEventListener(AnimationEvent.START, onAnimationStart); m_objBufferEF.removeEventListener(AnimationEvent.CHANGE, onAnimationChange); m_objBufferEF.removeEventListener(AnimationEvent.STOP, onAnimationStop); m_objBufferEF.removeEventListener(AnimationEvent.FINISH, onAnimationFinish); m_objBufferT.removeEventListener(AnimationEvent.START, onAnimationStart); m_objBufferT.removeEventListener(AnimationEvent.CHANGE, onAnimationChange); m_objBufferT.removeEventListener(AnimationEvent.STOP, onAnimationStop); m_objBufferT.removeEventListener(AnimationEvent.FINISH, onAnimationFinish); m_objBufferEF.dispose(); m_objBufferT.dispose(); m_objRenderer.dispose(); m_objBufferEF = null; m_objBufferT = null; m_objRenderer = null; } protected function checkBufferLengthEF():void{ if (!m_objBufferEF.length){ m_objRenderer.stop(RenderMethod.ENTER_FRAME); }; } protected function init(_arg1:Number):void{ BoostworthyAnimation.log(); m_objBufferEF = new Buffer(); m_objBufferT = new Buffer(); m_objRenderer = new Renderer(onRenderEF, onRenderT, _arg1); m_objBufferEF.addEventListener(AnimationEvent.START, onAnimationStart); m_objBufferEF.addEventListener(AnimationEvent.CHANGE, onAnimationChange); m_objBufferEF.addEventListener(AnimationEvent.STOP, onAnimationStop); m_objBufferEF.addEventListener(AnimationEvent.FINISH, onAnimationFinish); m_objBufferT.addEventListener(AnimationEvent.START, onAnimationStart); m_objBufferT.addEventListener(AnimationEvent.CHANGE, onAnimationChange); m_objBufferT.addEventListener(AnimationEvent.STOP, onAnimationStop); m_objBufferT.addEventListener(AnimationEvent.FINISH, onAnimationFinish); } protected function onAnimationChange(_arg1:AnimationEvent):void{ dispatchEvent(new AnimationEvent(AnimationEvent.CHANGE, _arg1.animTarget, _arg1.animProperty)); } protected function onRenderEF(_arg1:Event):void{ m_objBufferEF.render(); checkBufferLengthEF(); } protected function onAnimationFinish(_arg1:AnimationEvent):void{ dispatchEvent(new AnimationEvent(AnimationEvent.FINISH, _arg1.animTarget, _arg1.animProperty)); } protected function checkBufferLengthT():void{ if (!m_objBufferT.length){ m_objRenderer.stop(RenderMethod.TIMER); }; } protected function removeAnimationByProperty(_arg1:Object, _arg2:String):void{ m_objBufferEF.removeByProperty(_arg1, _arg2); checkBufferLengthEF(); m_objBufferT.removeByProperty(_arg1, _arg2); checkBufferLengthT(); } protected function onAnimationStart(_arg1:AnimationEvent):void{ dispatchEvent(new AnimationEvent(AnimationEvent.START, _arg1.animTarget, _arg1.animProperty)); } protected function onRenderT(_arg1:TimerEvent):void{ m_objBufferT.render(); _arg1.updateAfterEvent(); checkBufferLengthT(); } } }//package com.boostworthy.animation.management
Section 326
//IRenderable (com.boostworthy.animation.rendering.IRenderable) package com.boostworthy.animation.rendering { public interface IRenderable { function render():Boolean; } }//package com.boostworthy.animation.rendering
Section 327
//Renderer (com.boostworthy.animation.rendering.Renderer) package com.boostworthy.animation.rendering { import flash.display.*; import flash.events.*; import flash.utils.*; import com.boostworthy.utils.logger.*; import com.boostworthy.core.*; public class Renderer extends EventDispatcher implements IDisposable { protected var m_objTimer:Timer; protected var m_fncOnTimer:Function; protected var m_objStage:Stage; protected var m_fncOnEnterFrame:Function; protected var m_objLog:ILog; public function Renderer(_arg1:Function, _arg2:Function, _arg3:Number){ if (_arg1 != null){ m_fncOnEnterFrame = _arg1; m_objStage = Global.stage; }; if (_arg2 != null){ m_fncOnTimer = _arg2; m_objTimer = new Timer(_arg3, 0); m_objTimer.addEventListener(TimerEvent.TIMER, m_fncOnTimer); }; m_objLog = LogFactory.getInstance().getLog("Renderer"); } public function start(_arg1:Number):void{ if (_arg1 == RenderMethod.ENTER_FRAME){ startEnterFrame(); } else { if (_arg1 == RenderMethod.TIMER){ startTimer(); }; }; } protected function startTimer():void{ m_objTimer.start(); } public function startAll():void{ startEnterFrame(); startTimer(); } public function stop(_arg1:Number):void{ if (_arg1 == RenderMethod.ENTER_FRAME){ stopEnterFrame(); } else { if (_arg1 == RenderMethod.TIMER){ stopTimer(); }; }; } protected function stopTimer():void{ m_objTimer.stop(); } public function stopAll():void{ stopEnterFrame(); stopTimer(); } protected function startEnterFrame():void{ if (!m_objStage){ m_objStage = Global.stage; }; if (m_objStage){ m_objStage.addEventListener(Event.ENTER_FRAME, m_fncOnEnterFrame); } else { m_objLog.warning("startEnterFrame :: Unable to add a listener to the enter frame event because a global stage reference does not exist."); }; } protected function stopEnterFrame():void{ if (m_objStage){ m_objStage.removeEventListener(Event.ENTER_FRAME, m_fncOnEnterFrame); }; } public function dispose():void{ if (((!((m_fncOnEnterFrame == null))) && (!((m_objStage == null))))){ m_objStage.removeEventListener(Event.ENTER_FRAME, m_fncOnEnterFrame); }; if (m_objTimer != null){ m_objTimer.removeEventListener(TimerEvent.TIMER, m_fncOnTimer); }; m_fncOnEnterFrame = null; m_objTimer = null; m_fncOnTimer = null; m_objStage = null; } } }//package com.boostworthy.animation.rendering
Section 328
//RenderMethod (com.boostworthy.animation.rendering.RenderMethod) package com.boostworthy.animation.rendering { public final class RenderMethod { public static const TIMER:uint = 2; public static const ENTER_FRAME:uint = 1; } }//package com.boostworthy.animation.rendering
Section 329
//Action (com.boostworthy.animation.sequence.tweens.Action) package com.boostworthy.animation.sequence.tweens { public class Action implements ITween { protected const PROPERTY:String = "action"; protected var m_aParamsForward:Array; protected var m_uPreviousFrame:uint; protected var m_uLastFrame:uint; protected var m_fncReverse:Function; protected var m_uFirstFrame:uint; protected var m_aParamsReverse:Array; protected var m_fncForward:Function; public function Action(_arg1:Function, _arg2:Array, _arg3:Function, _arg4:Array, _arg5:uint){ m_fncForward = _arg1; m_aParamsForward = _arg2; m_fncReverse = _arg3; m_aParamsReverse = _arg4; m_uFirstFrame = _arg5; m_uLastFrame = _arg5; m_uPreviousFrame = 1; } public function get target():Object{ return (null); } public function get property():String{ return (PROPERTY); } public function get firstFrame():uint{ return (m_uFirstFrame); } public function clone():ITween{ return (new Action(m_fncForward, m_aParamsForward, m_fncReverse, m_aParamsReverse, m_uFirstFrame)); } public function get lastFrame():uint{ return (m_uLastFrame); } public function renderFrame(_arg1:uint):void{ if (_arg1 == m_uFirstFrame){ if (m_uPreviousFrame > _arg1){ m_fncReverse.apply(null, m_aParamsReverse); } else { m_fncForward.apply(null, m_aParamsForward); }; }; m_uPreviousFrame = _arg1; } } }//package com.boostworthy.animation.sequence.tweens
Section 330
//ITween (com.boostworthy.animation.sequence.tweens.ITween) package com.boostworthy.animation.sequence.tweens { public interface ITween { function get target():Object; function clone():ITween; function get property():String; function get lastFrame():uint; function get firstFrame():uint; function renderFrame(_arg1:uint):void; } }//package com.boostworthy.animation.sequence.tweens
Section 331
//Tween (com.boostworthy.animation.sequence.tweens.Tween) package com.boostworthy.animation.sequence.tweens { import com.boostworthy.animation.easing.*; public class Tween implements ITween { protected const DEFAULT_TRANSITION:String = "linear"; protected var m_objToTween:Object; protected var m_strTransition:String; protected var m_bIsDirty:Boolean; protected var m_strProperty:String; protected var m_uFirstFrame:uint; protected var m_uLastFrame:uint; protected var m_nTargetValue:Number; protected var m_nChangeValue:Number; protected var m_nStartValue:Number; protected var m_fncTransition:Function; public function Tween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:uint, _arg5:uint, _arg6:String="linear"){ m_objToTween = _arg1; m_strProperty = _arg2; m_nTargetValue = _arg3; m_uFirstFrame = _arg4; m_uLastFrame = _arg5; m_strTransition = _arg6; m_fncTransition = Transitions[m_strTransition]; } public function renderFrame(_arg1:uint):void{ var _local2:Number; if ((((_arg1 < m_uFirstFrame)) && (!(isNaN(m_nStartValue))))){ m_objToTween[m_strProperty] = m_nStartValue; m_bIsDirty = true; } else { if ((((_arg1 >= m_uFirstFrame)) && ((_arg1 <= m_uLastFrame)))){ _local2 = ((_arg1 - m_uFirstFrame) / (m_uLastFrame - m_uFirstFrame)); if (((isNaN(m_nStartValue)) && ((_arg1 == m_uFirstFrame)))){ m_nStartValue = m_objToTween[m_strProperty]; m_nChangeValue = (m_nTargetValue - m_nStartValue); }; m_objToTween[m_strProperty] = m_fncTransition(_local2, m_nStartValue, m_nChangeValue, 1); m_bIsDirty = true; } else { if ((((_arg1 > m_uLastFrame)) && (m_bIsDirty))){ m_objToTween[m_strProperty] = m_nTargetValue; m_bIsDirty = false; }; }; }; } public function get target():Object{ return (m_objToTween); } public function get property():String{ return (m_strProperty); } public function get lastFrame():uint{ return (m_uLastFrame); } public function clone():ITween{ return (new Tween(m_objToTween, m_strProperty, m_nTargetValue, m_uFirstFrame, m_uLastFrame, m_strTransition)); } public function get firstFrame():uint{ return (m_uFirstFrame); } } }//package com.boostworthy.animation.sequence.tweens
Section 332
//Timeline (com.boostworthy.animation.sequence.Timeline) package com.boostworthy.animation.sequence { import flash.events.*; import com.boostworthy.animation.sequence.tweens.*; import com.boostworthy.events.*; import com.boostworthy.collections.iterators.*; import com.boostworthy.core.*; import com.boostworthy.animation.rendering.*; import com.boostworthy.animation.*; public class Timeline extends EventDispatcher implements IDisposable { protected const DEFAULT_LOOP:Boolean = false; protected const DEFAULT_RENDER_METHOD:uint = 2; protected const DEFAULT_FRAME_RATE:Number = 60; protected var m_uFrameRate:uint; protected var m_uFrame:uint; protected var m_uRenderMethod:uint; protected var m_nRefreshRate:Number; protected var m_objTweenStack:TweenStack; protected var m_bLoop:Boolean; protected var m_uLength:uint; protected var m_objRendererPrev:Renderer; protected var m_objRendererNext:Renderer; public function Timeline(_arg1:uint=2, _arg2:Number=60){ init(_arg1, _arg2); } protected function computeFrameData(_arg1:uint, _arg2:uint):void{ var _local5:ITween; var _local3:IIterator = m_objTweenStack.getIterator(IteratorType.ARRAY_REVERSE); var _local4:int = _arg1; while (_local4 <= _arg2) { while (_local3.hasNext()) { _local5 = (_local3.next() as ITween); if (!(_local5 is Action)){ _local5.renderFrame(_local4); }; }; _local3.reset(); _local4++; }; render(); } public function prevFrame():void{ setFrame((m_uFrame - 1)); } protected function onNextFrameEF(_arg1:Event):void{ nextFrame(); } public function gotoAndPlay(_arg1:uint):void{ stop(); setFrame(_arg1); play(); } public function stop():void{ m_objRendererPrev.stop(m_uRenderMethod); m_objRendererNext.stop(m_uRenderMethod); dispatchEvent(new AnimationEvent(AnimationEvent.STOP)); } public function playReverse():void{ stop(); dispatchEvent(new AnimationEvent(AnimationEvent.START)); m_objRendererPrev.start(m_uRenderMethod); } public function set loop(_arg1:Boolean):void{ m_bLoop = _arg1; } protected function init(_arg1:uint, _arg2:Number):void{ BoostworthyAnimation.log(); setFrameRate(_arg2); m_uRenderMethod = _arg1; m_objRendererPrev = new Renderer(onPrevFrameEF, onPrevFrameT, m_nRefreshRate); m_objRendererNext = new Renderer(onNextFrameEF, onNextFrameT, m_nRefreshRate); m_objTweenStack = new TweenStack(); m_uFrame = (m_uLength = 1); loop = DEFAULT_LOOP; } public function gotoAndStop(_arg1:uint):void{ stop(); setFrame(_arg1); } protected function onPrevFrameT(_arg1:TimerEvent):void{ prevFrame(); _arg1.updateAfterEvent(); } public function nextFrame():void{ setFrame((m_uFrame + 1)); } protected function render(_arg1:Boolean=false):void{ var _local2:IIterator = m_objTweenStack.getIterator((_arg1) ? IteratorType.ARRAY_REVERSE : IteratorType.ARRAY_FORWARD); while (_local2.hasNext()) { _local2.next().renderFrame(m_uFrame); }; } public function get loop():Boolean{ return (m_bLoop); } public function get length():Number{ return (m_uLength); } public function setFrameRate(_arg1:Number):void{ m_uFrameRate = ((_arg1)>0) ? _arg1 : DEFAULT_FRAME_RATE; m_nRefreshRate = Math.floor((1000 / m_uFrameRate)); } public function addTween(_arg1:ITween):void{ var _local2:ITween = _arg1.clone(); m_uLength = ((_local2.lastFrame)>m_uLength) ? _local2.lastFrame : m_uLength; m_objTweenStack.addElement(_local2); computeFrameData(_local2.firstFrame, _local2.lastFrame); } public function dispose():void{ stop(); m_objRendererPrev.dispose(); m_objRendererNext.dispose(); m_objTweenStack.dispose(); m_uRenderMethod = NaN; m_uFrameRate = NaN; m_nRefreshRate = NaN; m_uFrame = NaN; m_uLength = NaN; m_bLoop = false; } protected function onNextFrameT(_arg1:TimerEvent):void{ nextFrame(); _arg1.updateAfterEvent(); } protected function setFrame(_arg1:Number):void{ var _local2:Boolean; var _local3:Boolean; if (_arg1 > m_uLength){ if (m_bLoop){ _arg1 = 1; } else { _local3 = true; }; }; if (_arg1 < 1){ if (m_bLoop){ _arg1 = m_uLength; _local2 = true; } else { _local3 = true; }; }; m_uFrame = Math.min(Math.max(1, _arg1), m_uLength); if (!_local3){ render(_local2); }; dispatchEvent(new AnimationEvent(AnimationEvent.CHANGE)); if (_local3){ stop(); dispatchEvent(new AnimationEvent(AnimationEvent.FINISH)); }; } public function gotoAndPlayReverse(_arg1:uint):void{ stop(); setFrame(_arg1); playReverse(); } public function play():void{ stop(); dispatchEvent(new AnimationEvent(AnimationEvent.START)); m_objRendererNext.start(m_uRenderMethod); } protected function onPrevFrameEF(_arg1:Event):void{ prevFrame(); } } }//package com.boostworthy.animation.sequence
Section 333
//TweenStack (com.boostworthy.animation.sequence.TweenStack) package com.boostworthy.animation.sequence { import com.boostworthy.animation.sequence.tweens.*; import com.boostworthy.collections.iterators.*; import com.boostworthy.collections.*; public class TweenStack extends Stack { override public function addElement(_arg1:Object):void{ var _local7:ITween; var _local2:ITween = (_arg1 as ITween); var _local3:Array = new Array(); var _local4:IIterator = getIterator(); while (_local4.hasNext()) { _local7 = (_local4.next() as ITween); if ((((_local7.target == _local2.target)) && ((_local7.property == _local2.property)))){ if (_local7.firstFrame > _local2.firstFrame){ _local3.push(_local7.clone()); removeElement(_local7); }; }; }; super.addElement(_local2); var _local5:int = _local3.length; var _local6:int; while (_local6 < _local5) { super.addElement(_local3[_local6]); _local6++; }; } } }//package com.boostworthy.animation.sequence
Section 334
//BoostworthyAnimation (com.boostworthy.animation.BoostworthyAnimation) package com.boostworthy.animation { import com.boostworthy.utils.logger.*; public final class BoostworthyAnimation { public static const VERSION:String = "2.1"; public static const AUTHOR:String = "Copyright (c) 2007 Ryan Taylor | http://www.boostworthy.com"; public static const NAME:String = "Boostworthy Animation System"; public static const DATE:String = "06.07.2007"; private static var c_bIsLogged:Boolean; public static function log():void{ if (!c_bIsLogged){ LogFactory.getInstance().getLog(NAME).info(((("Version " + VERSION) + " :: ") + AUTHOR)); c_bIsLogged = true; }; } } }//package com.boostworthy.animation
Section 335
//ForwardArrayIterator (com.boostworthy.collections.iterators.ForwardArrayIterator) package com.boostworthy.collections.iterators { public class ForwardArrayIterator implements IIterator { private var m_aData:Array; private var m_uIndex:uint; public function ForwardArrayIterator(_arg1:Array){ m_aData = _arg1; reset(); } public function reset():void{ m_uIndex = 0; } public function next():Object{ return (m_aData[m_uIndex++]); } public function hasNext():Boolean{ return ((m_uIndex < m_aData.length)); } } }//package com.boostworthy.collections.iterators
Section 336
//IIterator (com.boostworthy.collections.iterators.IIterator) package com.boostworthy.collections.iterators { public interface IIterator { function next():Object; function hasNext():Boolean; function reset():void; } }//package com.boostworthy.collections.iterators
Section 337
//IteratorType (com.boostworthy.collections.iterators.IteratorType) package com.boostworthy.collections.iterators { public final class IteratorType { public static const NULL:uint = 1; public static const ARRAY_REVERSE:uint = 4; public static const ARRAY_FORWARD:uint = 2; } }//package com.boostworthy.collections.iterators
Section 338
//ReverseArrayIterator (com.boostworthy.collections.iterators.ReverseArrayIterator) package com.boostworthy.collections.iterators { public class ReverseArrayIterator implements IIterator { private var m_aData:Array; private var m_uIndex:uint; public function ReverseArrayIterator(_arg1:Array){ m_aData = _arg1; reset(); } public function reset():void{ m_uIndex = m_aData.length; } public function next():Object{ return (m_aData[--m_uIndex]); } public function hasNext():Boolean{ return ((m_uIndex > 0)); } } }//package com.boostworthy.collections.iterators
Section 339
//HashMap (com.boostworthy.collections.HashMap) package com.boostworthy.collections { import com.boostworthy.collections.iterators.*; import com.boostworthy.core.*; public class HashMap implements ICollection, IDisposable { protected var m_aKeys:Array; protected var m_aValues:Array; public function HashMap(_arg1:Object=null){ init(_arg1); } public function containsKey(_arg1:Object):Boolean{ return (!((searchForKey(_arg1) == Global.NULL_INDEX))); } public function remove(_arg1:Object):void{ var _local2:int = searchForKey(_arg1); if (_local2 != Global.NULL_INDEX){ m_aKeys.splice(_local2, 1); m_aValues.splice(_local2, 1); }; } public function getValueIterator(_arg1:uint=2):IIterator{ if (_arg1 == IteratorType.ARRAY_FORWARD){ return (new ForwardArrayIterator(m_aValues.concat())); }; if (_arg1 == IteratorType.ARRAY_REVERSE){ return (new ReverseArrayIterator(m_aValues.concat())); }; return (new ForwardArrayIterator(m_aValues.concat())); } public function getIterator(_arg1:uint=2):IIterator{ return (getValueIterator(_arg1)); } public function putMap(_arg1:Object):void{ var _local2:String; for (_local2 in _arg1) { put(_local2, _arg1[_local2]); }; } public function put(_arg1:Object, _arg2:Object):void{ remove(_arg1); m_aKeys.push(_arg1); m_aValues.push(_arg2); } protected function init(_arg1:Object):void{ dispose(); if (_arg1 != null){ putMap(_arg1); }; } public function get length():uint{ return (m_aKeys.length); } public function get(_arg1:Object):Object{ var _local2:int = searchForKey(_arg1); if (_local2 != Global.NULL_INDEX){ return (m_aValues[_local2]); }; return (null); } public function getKeyIterator(_arg1:uint=2):IIterator{ if (_arg1 == IteratorType.ARRAY_FORWARD){ return (new ForwardArrayIterator(m_aKeys.concat())); }; if (_arg1 == IteratorType.ARRAY_REVERSE){ return (new ReverseArrayIterator(m_aKeys.concat())); }; return (new ForwardArrayIterator(m_aKeys.concat())); } public function clone():HashMap{ var _local1:HashMap = new HashMap(); var _local2:int = m_aKeys.length; var _local3:int; while (_local3 < _local2) { _local1.put(m_aKeys[_local3], m_aValues[_local3]); _local3++; }; return (_local1); } protected function searchForKey(_arg1:Object):int{ var _local2:int = m_aKeys.length; var _local3:int; while (_local3 < _local2) { if (m_aKeys[_local3] === _arg1){ return (_local3); }; _local3++; }; return (Global.NULL_INDEX); } public function dispose():void{ m_aKeys = new Array(); m_aValues = new Array(); } } }//package com.boostworthy.collections
Section 340
//ICollection (com.boostworthy.collections.ICollection) package com.boostworthy.collections { import com.boostworthy.collections.iterators.*; public interface ICollection { function getIterator(_arg1:uint=2):IIterator; } }//package com.boostworthy.collections
Section 341
//Queue (com.boostworthy.collections.Queue) package com.boostworthy.collections { import com.boostworthy.collections.iterators.*; import com.boostworthy.core.*; public class Queue implements ICollection, IDisposable { protected var m_aData:Array; public function Queue(){ dispose(); } public function getIterator(_arg1:uint=2):IIterator{ if (_arg1 == IteratorType.ARRAY_FORWARD){ return (new ForwardArrayIterator(m_aData.concat())); }; if (_arg1 == IteratorType.ARRAY_REVERSE){ return (new ReverseArrayIterator(m_aData.concat())); }; return (new ForwardArrayIterator(m_aData.concat())); } private function getElementIndex(_arg1:Object):int{ var _local2:int; while (_local2 < m_aData.length) { if (m_aData[_local2] === _arg1){ return (_local2); }; _local2++; }; return (Global.NULL_INDEX); } public function get length():uint{ return (m_aData.length); } public function removeElement(_arg1:Object):void{ var _local2:int = getElementIndex(_arg1); if (_local2 != Global.NULL_INDEX){ m_aData.splice(_local2, 1); }; } public function addElement(_arg1:Object):void{ m_aData.push(_arg1); } public function dispose():void{ m_aData = new Array(); } } }//package com.boostworthy.collections
Section 342
//Stack (com.boostworthy.collections.Stack) package com.boostworthy.collections { import com.boostworthy.collections.iterators.*; import com.boostworthy.core.*; public class Stack implements ICollection, IDisposable { protected var m_aData:Array; public function Stack(){ dispose(); } public function getIterator(_arg1:uint=2):IIterator{ if (_arg1 == IteratorType.ARRAY_FORWARD){ return (new ForwardArrayIterator(m_aData.concat())); }; if (_arg1 == IteratorType.ARRAY_REVERSE){ return (new ReverseArrayIterator(m_aData.concat())); }; return (new ForwardArrayIterator(m_aData.concat())); } private function getElementIndex(_arg1:Object):int{ var _local2:int; while (_local2 < m_aData.length) { if (m_aData[_local2] === _arg1){ return (_local2); }; _local2++; }; return (Global.NULL_INDEX); } public function get length():uint{ return (m_aData.length); } public function removeElement(_arg1:Object):void{ var _local2:int = getElementIndex(_arg1); if (_local2 != Global.NULL_INDEX){ m_aData.splice(_local2, 1); }; } public function addElement(_arg1:Object):void{ m_aData.unshift(_arg1); } public function dispose():void{ m_aData = new Array(); } } }//package com.boostworthy.collections
Section 343
//EnhancedBitmap (com.boostworthy.core.EnhancedBitmap) package com.boostworthy.core { import flash.display.*; import flash.events.*; import com.boostworthy.geom.*; import flash.filters.*; public class EnhancedBitmap extends Bitmap implements IColorable, IDisposable { protected var m_objColorMatrix:ColorMatrix; public function EnhancedBitmap(){ init(); } protected function init():void{ m_objColorMatrix = new ColorMatrix(); m_objColorMatrix.addEventListener(Event.CHANGE, onColorMatrixChange); } protected function onColorMatrixChange(_arg1:Event):void{ applyColorMatrix(); } public function dispose():void{ m_objColorMatrix.removeEventListener(Event.CHANGE, onColorMatrixChange); m_objColorMatrix = null; filters = new Array(); } public function get colorMatrix():ColorMatrix{ return (m_objColorMatrix); } protected function applyColorMatrix():void{ var _local3:int; var _local1:Array = new Array(); var _local2:int = filters.length; if (_local2){ _local3 = 0; while (_local3 < _local2) { if (!(filters[_local3] is ColorMatrixFilter)){ _local1.push(filters[_local3]); }; _local3++; }; }; _local1.push(new ColorMatrixFilter(m_objColorMatrix.valueOf())); filters = _local1; } } }//package com.boostworthy.core
Section 344
//Global (com.boostworthy.core.Global) package com.boostworthy.core { import flash.display.*; public final class Global { private static var c_objStage:Stage; public static var NULL_INDEX:int = -1; public function Global(){ throw (new Error("ERROR -> Global :: Constructor :: The 'Global' class is not meant to be instantiated.")); } public static function set stage(_arg1:Stage):void{ c_objStage = _arg1; } public static function get stage():Stage{ return (c_objStage); } } }//package com.boostworthy.core
Section 345
//IColorable (com.boostworthy.core.IColorable) package com.boostworthy.core { import com.boostworthy.geom.*; public interface IColorable { function get colorMatrix():ColorMatrix; } }//package com.boostworthy.core
Section 346
//IDisposable (com.boostworthy.core.IDisposable) package com.boostworthy.core { public interface IDisposable { function dispose():void; } }//package com.boostworthy.core
Section 347
//AnimationEvent (com.boostworthy.events.AnimationEvent) package com.boostworthy.events { import flash.events.*; public class AnimationEvent extends Event { protected var m_strProperty:String; protected var m_objTarget:Object; public static const CHANGE:String = "animationChange"; public static const STOP:String = "animationStop"; public static const START:String = "animationStart"; public static const FINISH:String = "animationFinish"; public function AnimationEvent(_arg1:String, _arg2:Object=null, _arg3:String=""){ super(_arg1); m_objTarget = _arg2; m_strProperty = _arg3; } public function get animTarget():Object{ return (m_objTarget); } public function get animProperty():String{ return (m_strProperty); } } }//package com.boostworthy.events
Section 348
//ColorMatrix (com.boostworthy.geom.ColorMatrix) package com.boostworthy.geom { import flash.events.*; public class ColorMatrix extends EventDispatcher { protected const IDENTITY:Array; protected const LUMINANCE_B:Number = 0.072169; protected const LUMINANCE_G:Number = 0.71516; protected const LUMINANCE_R:Number = 0.212671; protected var m_nHue:Number; protected var m_nBrightness:Number; protected var m_nSaturation:Number; protected var m_nAlpha:Number; protected var m_aMatrix:Array; protected var m_nContrast:Number; public function ColorMatrix(_arg1:Array=null){ IDENTITY = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; super(); init(((_arg1 == null)) ? IDENTITY.concat() : _arg1.concat()); } protected function setDefaultValues():void{ m_nAlpha = 100; m_nBrightness = 0; m_nContrast = 0; m_nHue = 0; m_nSaturation = 0; } public function get contrast():Number{ return (m_nContrast); } protected function multiply(_arg1:Array):void{ var _local5:int; var _local2:Array = new Array(); var _local3:int; var _local4:int; while (_local4 < 4) { _local5 = 0; while (_local5 < 5) { _local2[(_local3 + _local5)] = (((((_arg1[_local3] * m_aMatrix[_local5]) + (_arg1[(_local3 + 1)] * m_aMatrix[(_local5 + 5)])) + (_arg1[(_local3 + 2)] * m_aMatrix[(_local5 + 10)])) + (_arg1[(_local3 + 3)] * m_aMatrix[(_local5 + 15)])) + ((_local5 == 4)) ? _arg1[(_local3 + 4)] : 0); _local5++; }; _local3 = (_local3 + 5); _local4++; }; m_aMatrix = _local2.concat(); dispatchEvent(new Event(Event.CHANGE)); } public function reset():void{ init(IDENTITY.concat()); } protected function init(_arg1:Array):void{ m_aMatrix = _arg1; setDefaultValues(); } public function get brightness():Number{ return (m_nBrightness); } public function get saturation():Number{ return (m_nSaturation); } public function set contrast(_arg1:Number):void{ var _local2:Number = ((m_nContrast / 100) + 1); m_nContrast = _arg1; _arg1 = ((_arg1 / 100) + 1); _arg1 = (_arg1 / _local2); var _local3:Array = [_arg1, 0, 0, 0, (128 * (1 - _arg1)), 0, _arg1, 0, 0, (128 * (1 - _arg1)), 0, 0, _arg1, 0, (128 * (1 - _arg1)), 0, 0, 0, 1, 0]; multiply(_local3); } public function set alpha(_arg1:Number):void{ var _local2:Number = (m_nAlpha / 100); m_nAlpha = _arg1; _arg1 = (_arg1 / 100); _arg1 = (_arg1 / _local2); var _local3:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, _arg1, 0]; multiply(_local3); } public function clone():ColorMatrix{ return (new ColorMatrix(valueOf())); } public function get alpha():Number{ return (m_nAlpha); } public function set saturation(_arg1:Number):void{ var _local2:Number = ((m_nSaturation + 100) / 100); m_nSaturation = Math.min(100, Math.max(-99.99, _arg1)); _arg1 = ((m_nSaturation + 100) / 100); _arg1 = (_arg1 / _local2); var _local3:Number = ((1 - _arg1) * LUMINANCE_R); var _local4:Number = ((1 - _arg1) * LUMINANCE_G); var _local5:Number = ((1 - _arg1) * LUMINANCE_B); var _local6:Array = [(_local3 + _arg1), _local4, _local5, 0, 0, _local3, (_local4 + _arg1), _local5, 0, 0, _local3, _local4, (_local5 + _arg1), 0, 0, 0, 0, 0, 1, 0]; multiply(_local6); } public function valueOf():Array{ return (m_aMatrix.concat()); } public function set brightness(_arg1:Number):void{ var _local2:Number = (m_nBrightness * (0xFF / 100)); m_nBrightness = _arg1; _arg1 = (_arg1 * (0xFF / 100)); _arg1 = (_arg1 - _local2); var _local3:Array = [1, 0, 0, 0, _arg1, 0, 1, 0, 0, _arg1, 0, 0, 1, 0, _arg1, 0, 0, 0, 1, 0]; multiply(_local3); } public function set hue(_arg1:Number):void{ var _local2:Number = (m_nHue * (Math.PI / 180)); m_nHue = _arg1; _arg1 = (_arg1 * (Math.PI / 180)); _arg1 = (_arg1 - _local2); var _local3:Number = Math.cos(_arg1); var _local4:Number = Math.sin(_arg1); var _local5:Array = [((LUMINANCE_R + (_local3 * (1 - LUMINANCE_R))) + (_local4 * -(LUMINANCE_R))), ((LUMINANCE_G + (_local3 * -(LUMINANCE_G))) + (_local4 * -(LUMINANCE_G))), ((LUMINANCE_B + (_local3 * -(LUMINANCE_B))) + (_local4 * (1 - LUMINANCE_B))), 0, 0, ((LUMINANCE_R + (_local3 * -(LUMINANCE_R))) + (_local4 * 0.143)), ((LUMINANCE_G + (_local3 * (1 - LUMINANCE_G))) + (_local4 * 0.14)), ((LUMINANCE_B + (_local3 * -(LUMINANCE_B))) + (_local4 * -0.283)), 0, 0, ((LUMINANCE_R + (_local3 * -(LUMINANCE_R))) + (_local4 * -((1 - LUMINANCE_R)))), ((LUMINANCE_G + (_local3 * -(LUMINANCE_G))) + (_local4 * LUMINANCE_G)), ((LUMINANCE_B + (_local3 * (1 - LUMINANCE_B))) + (_local4 * LUMINANCE_B)), 0, 0, 0, 0, 0, 1, 0]; multiply(_local5); } public function get hue():Number{ return (m_nHue); } } }//package com.boostworthy.geom
Section 349
//ILog (com.boostworthy.utils.logger.ILog) package com.boostworthy.utils.logger { public interface ILog { function getName():String; function setLevel(_arg1:uint):void; function debug(_arg1:String):void; function severe(_arg1:String):void; function getLevel():uint; function warning(_arg1:String):void; function info(_arg1:String):void; } }//package com.boostworthy.utils.logger
Section 350
//Log (com.boostworthy.utils.logger.Log) package com.boostworthy.utils.logger { public class Log implements ILog { protected var m_strName:String; protected var m_uLevel:uint; public function Log(_arg1:String, _arg2:uint){ init(_arg1, _arg2); } protected function output(_arg1:String, _arg2:uint):void{ if (((!((m_uLevel & LogLevel.OFF))) && ((m_uLevel >= _arg2)))){ trace(createOutputMessage(_arg1, _arg2)); }; } public function getName():String{ return (m_strName); } public function setLevel(_arg1:uint):void{ m_uLevel = _arg1; } protected function createOutputMessage(_arg1:String, _arg2:uint):String{ return ((((((m_strName + " (") + getLevelName(_arg2)) + ") :: ") + _arg1) + "\n")); } public function getLevel():uint{ return (m_uLevel); } protected function init(_arg1:String, _arg2:uint):void{ m_strName = _arg1; m_uLevel = _arg2; } protected function getLevelName(_arg1:uint):String{ switch (_arg1){ case LogLevel.OFF: return ("OFF"); case LogLevel.SEVERE: return ("SEVERE"); case LogLevel.WARNING: return ("WARNING"); case LogLevel.INFO: return ("INFO"); case LogLevel.DEBUG: return ("DEBUG"); default: return (""); }; } public function debug(_arg1:String):void{ output(_arg1, LogLevel.DEBUG); } public function severe(_arg1:String):void{ output(_arg1, LogLevel.SEVERE); } public function warning(_arg1:String):void{ output(_arg1, LogLevel.WARNING); } public function info(_arg1:String):void{ output(_arg1, LogLevel.INFO); } } }//package com.boostworthy.utils.logger
Section 351
//LogFactory (com.boostworthy.utils.logger.LogFactory) package com.boostworthy.utils.logger { import com.boostworthy.collections.iterators.*; import com.boostworthy.collections.*; import com.boostworthy.core.*; public class LogFactory implements IDisposable { private var m_uLevel:uint; private var m_objLogHash:HashMap; private static var c_objInstance:LogFactory; public function LogFactory(_arg1:SingletonEnforcer){ init(); } protected function init():void{ m_uLevel = LogSettings.DEFAULT_LOG_LEVEL; m_objLogHash = new HashMap(); } public function getLog(_arg1:String):ILog{ if (m_objLogHash.containsKey(_arg1)){ return ((m_objLogHash.get(_arg1) as ILog)); }; m_objLogHash.put(_arg1, new Log(_arg1, m_uLevel)); return ((m_objLogHash.get(_arg1) as ILog)); } public function setLevel(_arg1:uint):void{ m_uLevel = _arg1; var _local2:IIterator = m_objLogHash.getValueIterator(); while (_local2.hasNext()) { _local2.next().setLevel(m_uLevel); }; } public function getLevel():uint{ return (m_uLevel); } public function dispose():void{ m_objLogHash.dispose(); } public static function getInstance():LogFactory{ if (c_objInstance == null){ c_objInstance = new LogFactory(new SingletonEnforcer()); }; return (c_objInstance); } } }//package com.boostworthy.utils.logger class SingletonEnforcer { private function SingletonEnforcer(){ } }
Section 352
//LogLevel (com.boostworthy.utils.logger.LogLevel) package com.boostworthy.utils.logger { public final class LogLevel { public static const SEVERE:uint = 2; public static const INFO:uint = 8; public static const DEBUG:uint = 16; public static const WARNING:uint = 4; public static const OFF:uint = 1; } }//package com.boostworthy.utils.logger
Section 353
//LogSettings (com.boostworthy.utils.logger.LogSettings) package com.boostworthy.utils.logger { public final class LogSettings { public static const DEFAULT_LOG_LEVEL:uint = 16; } }//package com.boostworthy.utils.logger
Section 354
//Base64 (com.dynamicflash.util.Base64) package com.dynamicflash.util { import flash.utils.*; public class Base64 { public static const version:String = "1.0.0"; private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; public function Base64(){ throw (new Error("Base64 class is static container only")); } public static function encode(_arg1:String):String{ var _local2:ByteArray = new ByteArray(); _local2.writeUTFBytes(_arg1); return (encodeByteArray(_local2)); } public static function encodeByteArray(_arg1:ByteArray):String{ var _local3:Array; var _local5:uint; var _local6:uint; var _local7:uint; var _local2 = ""; var _local4:Array = new Array(4); _arg1.position = 0; while (_arg1.bytesAvailable > 0) { _local3 = new Array(); _local5 = 0; while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) { _local3[_local5] = _arg1.readUnsignedByte(); _local5++; }; _local4[0] = ((_local3[0] & 252) >> 2); _local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4)); _local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6)); _local4[3] = (_local3[2] & 63); _local6 = _local3.length; while (_local6 < 3) { _local4[(_local6 + 1)] = 64; _local6++; }; _local7 = 0; while (_local7 < _local4.length) { _local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7])); _local7++; }; }; return (_local2); } public static function decode(_arg1:String):String{ var _local2:ByteArray = decodeToByteArray(_arg1); return (_local2.readUTFBytes(_local2.length)); } public static function decodeToByteArray(_arg1:String):ByteArray{ var _local6:uint; var _local7:uint; var _local2:ByteArray = new ByteArray(); var _local3:Array = new Array(4); var _local4:Array = new Array(3); var _local5:uint; while (_local5 < _arg1.length) { _local6 = 0; while ((((_local6 < 4)) && (((_local5 + _local6) < _arg1.length)))) { _local3[_local6] = BASE64_CHARS.indexOf(_arg1.charAt((_local5 + _local6))); _local6++; }; _local4[0] = ((_local3[0] << 2) + ((_local3[1] & 48) >> 4)); _local4[1] = (((_local3[1] & 15) << 4) + ((_local3[2] & 60) >> 2)); _local4[2] = (((_local3[2] & 3) << 6) + _local3[3]); _local7 = 0; while (_local7 < _local4.length) { if (_local3[(_local7 + 1)] == 64){ break; }; _local2.writeByte(_local4[_local7]); _local7++; }; _local5 = (_local5 + 4); }; _local2.position = 0; return (_local2); } } }//package com.dynamicflash.util
Section 355
//TransformTool (com.senocular.display.TransformTool) package com.senocular.display { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; public class TransformTool extends Sprite { private var _moveUnderObjects:Boolean;// = true private var _scaleLeftControl:TransformToolControl; private var _registrationCursor:TransformToolCursor; private var _raiseNewTargets:Boolean;// = true private var _moveNewTargets:Boolean;// = false private var scaleControls:Sprite; private var _moveCursor:TransformToolCursor; private var _scaleBottomControl:TransformToolControl; private var _skewRightControl:TransformToolControl; private var innerRegistration:Point; private var _constrainScale:Boolean;// = false private var _boundsBottomRight:Point; private var mouseLoc:Point; private var _moveEnabled:Boolean;// = true private var _scaleEnabled:Boolean;// = true private var _maintainControlForm:Boolean;// = true private var _boundsTopLeft:Point; private var _moveControl:TransformToolControl; private var registrationControls:Sprite; private var _rotationCursor:TransformToolCursor; private var _registration:Point; private var _boundsRight:Point; private var _skewCursor:TransformToolCursor; private var _target:DisplayObject; private var _outlineEnabled:Boolean;// = true private var _cursorsEnabled:Boolean;// = true private var _rememberRegistration:Boolean;// = true private var toolInvertedMatrix:Matrix; private var innerMouseLoc:Point; private var _rotationBottomLeftControl:TransformToolControl; private var _outlineControl:TransformToolControl; private var _constrainRotationAngle:Number;// = 0.785398163397448 private var _boundsTop:Point; private var _scaleTopControl:TransformToolControl; private var _rotationTopRightControl:TransformToolControl; private var _customControlsEnabled:Boolean;// = true private var _rotationTopLeftControl:TransformToolControl; private var lines:Sprite; private var _skewTopControl:TransformToolControl; private var _scaleBottomRightControl:TransformToolControl; private var _toolMatrix:Matrix; private var _skewEnabled:Boolean;// = true private var _scaleBottomLeftControl:TransformToolControl; private var _globalMatrix:Matrix; private var _boundsBottom:Point; private var _rotationBottomRightControl:TransformToolControl; private var rotateControls:Sprite; private var customCursors:Sprite; private var _controlSize:Number;// = 8 private var interactionStartAngle:Number;// = 0 private var customControls:Sprite; private var _boundsCenter:Point; private var interactionStartMatrix:Matrix; private var _maxScaleX:Number;// = INF private var _customCursorsEnabled:Boolean;// = true private var _skewBottomControl:TransformToolControl; private var _maxScaleY:Number;// = INF private var interactionStart:Point; private var _livePreview:Boolean;// = true private var _scaleCursor:TransformToolCursor; private var _registrationEnabled:Boolean;// = true private var _scaleRightControl:TransformToolControl; private var toolSprites:Sprite; private var mouseOffset:Point; private var _rotationEnabled:Boolean;// = true private var _constrainRotation:Boolean;// = false private var targetBounds:Rectangle; private var moveControls:Sprite; private var _registrationControl:TransformToolControl; private var _skewLeftControl:TransformToolControl; private var _boundsTopRight:Point; private var _currentControl:TransformToolControl; private var _boundsBottomLeft:Point; private var registrationLog:Dictionary; private var _scaleTopRightControl:TransformToolControl; private var cursors:Sprite; private var skewControls:Sprite; private var _scaleTopLeftControl:TransformToolControl; private var innerInteractionStart:Point; private var _boundsLeft:Point; public static const CURSOR_SCALE:String = "cursorScale"; public static const CURSOR_REGISTRATION:String = "cursorRegistration"; public static const SCALE_BOTTOM_LEFT:String = "scaleBottomLeft"; public static const ROTATION_BOTTOM_RIGHT:String = "rotationBottomRight"; public static const SKEW_TOP:String = "skewTop"; public static const CONTROL_MOVE:String = "controlMove"; public static const SKEW_RIGHT:String = "skewRight"; public static const SKEW_BOTTOM:String = "skewBottom"; public static const CURSOR_MOVE:String = "cursorMove"; public static const SKEW_LEFT:String = "skewLeft"; public static const CONTROL_PREFERENCE:String = "controlPreference"; public static const SCALE_TOP:String = "scaleTop"; public static const SCALE_RIGHT:String = "scaleRight"; public static const TRANSFORM_TOOL:String = "transformTool"; public static const SCALE_TOP_RIGHT:String = "scaleTopRight"; public static const NEW_TARGET:String = "newTarget"; public static const REGISTRATION:String = "registration"; public static const SCALE_TOP_LEFT:String = "scaleTopLeft"; public static const CONTROL_INIT:String = "controlInit"; public static const CURSOR_SKEW:String = "cursorSkew"; public static const CONTROL_UP:String = "controlUp"; public static const CURSOR_ROTATION:String = "cursorRotate"; public static const ROTATION_BOTTOM_LEFT:String = "rotationBottomLeft"; public static const SCALE_BOTTOM:String = "scaleBottom"; public static const TRANSFORM_TARGET:String = "transformTarget"; public static const SCALE_BOTTOM_RIGHT:String = "scaleBottomRight"; public static const CONTROL_TRANSFORM_TOOL:String = "controlTransformTool"; public static const ROTATION_TOP_RIGHT:String = "rotationTopRight"; public static const ROTATION_TOP_LEFT:String = "rotationTopLeft"; public static const CONTROL_DOWN:String = "controlDown"; public static const SCALE_LEFT:String = "scaleLeft"; public function TransformTool(){ toolInvertedMatrix = new Matrix(); innerRegistration = new Point(); registrationLog = new Dictionary(true); targetBounds = new Rectangle(); mouseLoc = new Point(); mouseOffset = new Point(); innerMouseLoc = new Point(); interactionStart = new Point(); innerInteractionStart = new Point(); interactionStartMatrix = new Matrix(); toolSprites = new Sprite(); lines = new Sprite(); moveControls = new Sprite(); registrationControls = new Sprite(); rotateControls = new Sprite(); scaleControls = new Sprite(); skewControls = new Sprite(); cursors = new Sprite(); customControls = new Sprite(); customCursors = new Sprite(); _toolMatrix = new Matrix(); _globalMatrix = new Matrix(); _registration = new Point(); _boundsTopLeft = new Point(); _boundsTop = new Point(); _boundsTopRight = new Point(); _boundsRight = new Point(); _boundsBottomRight = new Point(); _boundsBottom = new Point(); _boundsBottomLeft = new Point(); _boundsLeft = new Point(); _boundsCenter = new Point(); super(); createControls(); } public function get scaleBottomLeftControl():TransformToolControl{ return (_scaleBottomLeftControl); } public function getSkin(_arg1:String):DisplayObject{ var _local2:TransformToolInternalControl = getControlByName(_arg1); return (_local2.skin); } private function distortAngle():Number{ var _local1:Matrix = transform.concatenatedMatrix; var _local2:Point = _local1.transformPoint(mouseLoc); var _local3:Point = _local1.transformPoint(_registration); var _local4:Point = _local2.subtract(_local3); return (Math.atan2(_local4.y, _local4.x)); } public function skewYInteraction():void{ var _local1:Point = distortOffset(new Point(innerInteractionStart.x, innerMouseLoc.y), (innerInteractionStart.x - innerRegistration.x)); _toolMatrix.a = (_toolMatrix.a + _local1.x); _toolMatrix.b = (_toolMatrix.b + _local1.y); completeInteraction(true); } private function distortOffset(_arg1:Point, _arg2:Number):Point{ var _local3:Number = (_arg2) ? (targetBounds.width / _arg2) : 0; var _local4:Number = (_arg2) ? (targetBounds.height / _arg2) : 0; _arg1 = interactionStartMatrix.transformPoint(_arg1).subtract(interactionStart); _arg1.x = (_arg1.x * (targetBounds.width) ? (_local3 / targetBounds.width) : 0); _arg1.y = (_arg1.y * (targetBounds.height) ? (_local4 / targetBounds.height) : 0); return (_arg1); } public function get constrainScale():Boolean{ return (_constrainScale); } public function get constrainRotation():Boolean{ return (_constrainRotation); } public function get skewLeftControl():TransformToolControl{ return (_skewLeftControl); } public function get scaleRightControl():TransformToolControl{ return (_scaleRightControl); } private function updateRegistration():void{ _registration = _toolMatrix.transformPoint(innerRegistration); } public function set constrainScale(_arg1:Boolean):void{ if (_constrainScale != _arg1){ _constrainScale = _arg1; dispatchEvent(new Event(CONTROL_PREFERENCE)); }; } public function set constrainRotation(_arg1:Boolean):void{ if (_constrainRotation != _arg1){ _constrainRotation = _arg1; dispatchEvent(new Event(CONTROL_PREFERENCE)); }; } public function get rotationTopRightControl():TransformToolControl{ return (_rotationTopRightControl); } public function removeControl(_arg1:TransformToolControl):TransformToolControl{ if (customControls.contains(_arg1)){ customControls.removeChild(_arg1); return (_arg1); }; return (null); } public function get moveEnabled():Boolean{ return (_moveEnabled); } public function scaleYInteraction():void{ var _local1:Point = distortOffset(new Point(innerInteractionStart.x, innerMouseLoc.y), (innerInteractionStart.y - innerRegistration.y)); _toolMatrix.c = (_toolMatrix.c + _local1.x); _toolMatrix.d = (_toolMatrix.d + _local1.y); completeInteraction(true); } public function get registrationEnabled():Boolean{ return (_registrationEnabled); } public function get rotationBottomLeftControl():TransformToolControl{ return (_rotationBottomLeftControl); } public function get moveControl():TransformToolControl{ return (_moveControl); } public function get raiseNewTargets():Boolean{ return (_raiseNewTargets); } public function get scaleBottomRightControl():TransformToolControl{ return (_scaleBottomRightControl); } public function get boundsLeft():Point{ return (_boundsLeft.clone()); } public function set moveEnabled(_arg1:Boolean):void{ if (_moveEnabled != _arg1){ _moveEnabled = _arg1; updateControlsEnabled(); }; } public function get boundsTop():Point{ return (_boundsTop.clone()); } public function get registrationControl():TransformToolControl{ return (_registrationControl); } public function set maintainControlForm(_arg1:Boolean):void{ if (_maintainControlForm != _arg1){ _maintainControlForm = _arg1; dispatchEvent(new Event(CONTROL_PREFERENCE)); }; } public function get boundsRight():Point{ return (_boundsRight.clone()); } override public function toString():String{ return ((("[Transform Tool: target=" + String(_target)) + "]")); } public function get rotationCursor():TransformToolCursor{ return (_rotationCursor); } public function get customCursorsEnabled():Boolean{ return (_customCursorsEnabled); } public function set livePreview(_arg1:Boolean):void{ _livePreview = _arg1; } private function setNewRegistation():void{ var _local1:Point; if (((_rememberRegistration) && ((_target in registrationLog)))){ _local1 = registrationLog[_target]; innerRegistration = registrationLog[_target]; } else { innerRegistration = new Point(0, 0); }; updateRegistration(); } public function get boundsTopLeft():Point{ return (_boundsTopLeft.clone()); } public function set registrationEnabled(_arg1:Boolean):void{ if (_registrationEnabled != _arg1){ _registrationEnabled = _arg1; updateControlsEnabled(); }; } private function updateControlContainer(_arg1:Sprite, _arg2:Boolean):void{ var _local3:Boolean = toolSprites.contains(_arg1); if (_arg2){ if (_local3){ toolSprites.setChildIndex(_arg1, 0); } else { toolSprites.addChildAt(_arg1, 0); }; } else { if (_local3){ toolSprites.removeChild(_arg1); }; }; } public function get moveCursor():TransformToolCursor{ return (_moveCursor); } public function set globalMatrix(_arg1:Matrix):void{ updateMatrix(_arg1); updateRegistration(); dispatchEvent(new Event(TRANSFORM_TOOL)); } private function enforceLimits():void{ var _local1:Number; var _local2:Number; var _local5:Matrix; var _local3:Boolean; var _local4:Matrix = _toolMatrix.clone(); _local4.concat(transform.concatenatedMatrix); _local1 = Math.sqrt(((_local4.a * _local4.a) + (_local4.b * _local4.b))); if (_local1 > _maxScaleX){ _local2 = Math.atan2(_local4.b, _local4.a); _local4.a = (Math.cos(_local2) * _maxScaleX); _local4.b = (Math.sin(_local2) * _maxScaleX); _local3 = true; }; _local1 = Math.sqrt(((_local4.c * _local4.c) + (_local4.d * _local4.d))); if (_local1 > _maxScaleY){ _local2 = Math.atan2(_local4.c, _local4.d); _local4.d = (Math.cos(_local2) * _maxScaleY); _local4.c = (Math.sin(_local2) * _maxScaleY); _local3 = true; }; if (_local3){ _toolMatrix = _local4; _local5 = transform.concatenatedMatrix; _local5.invert(); _toolMatrix.concat(_local5); }; } public function set raiseNewTargets(_arg1:Boolean):void{ _raiseNewTargets = _arg1; } private function raiseTarget():void{ var _local1:int = (_target.parent.numChildren - 1); _target.parent.setChildIndex(_target, _local1); if (_target.parent == parent){ parent.setChildIndex(this, _local1); }; } public function get scaleEnabled():Boolean{ return (_scaleEnabled); } public function get outlineEnabled():Boolean{ return (_outlineEnabled); } public function get cursorsEnabled():Boolean{ return (_cursorsEnabled); } public function get mouse():Point{ return (new Point(mouseX, mouseY)); } public function get scaleTopLeftControl():TransformToolControl{ return (_scaleTopLeftControl); } public function skewXInteraction():void{ var _local1:Point = distortOffset(new Point(innerMouseLoc.x, innerInteractionStart.y), (innerInteractionStart.y - innerRegistration.y)); _toolMatrix.c = (_toolMatrix.c + _local1.x); _toolMatrix.d = (_toolMatrix.d + _local1.y); completeInteraction(true); } public function get registration():Point{ return (_registration.clone()); } public function get outlineControl():TransformToolControl{ return (_outlineControl); } public function get boundsBottomRight():Point{ return (_boundsBottomRight.clone()); } public function get maxScaleX():Number{ return (_maxScaleX); } public function get maxScaleY():Number{ return (_maxScaleY); } public function get skewEnabled():Boolean{ return (_skewEnabled); } private function interactionHandler(_arg1:MouseEvent):void{ updateMouse(); _toolMatrix = interactionStartMatrix.clone(); dispatchEvent(new Event(CONTROL_MOVE)); dispatchEvent(new Event(CONTROL_TRANSFORM_TOOL)); if (_livePreview){ apply(); }; _arg1.updateAfterEvent(); } private function updateBounds():void{ if (_target){ targetBounds = _target.getBounds(_target); _boundsTopLeft = _toolMatrix.transformPoint(new Point(targetBounds.left, targetBounds.top)); _boundsTopRight = _toolMatrix.transformPoint(new Point(targetBounds.right, targetBounds.top)); _boundsBottomRight = _toolMatrix.transformPoint(new Point(targetBounds.right, targetBounds.bottom)); _boundsBottomLeft = _toolMatrix.transformPoint(new Point(targetBounds.left, targetBounds.bottom)); _boundsTop = Point.interpolate(_boundsTopLeft, _boundsTopRight, 0.5); _boundsRight = Point.interpolate(_boundsTopRight, _boundsBottomRight, 0.5); _boundsBottom = Point.interpolate(_boundsBottomRight, _boundsBottomLeft, 0.5); _boundsLeft = Point.interpolate(_boundsBottomLeft, _boundsTopLeft, 0.5); _boundsCenter = Point.interpolate(_boundsTopLeft, _boundsBottomRight, 0.5); }; } public function scaleXInteraction():void{ var _local1:Point = distortOffset(new Point(innerMouseLoc.x, innerInteractionStart.y), (innerInteractionStart.x - innerRegistration.x)); _toolMatrix.a = (_toolMatrix.a + _local1.x); _toolMatrix.b = (_toolMatrix.b + _local1.y); completeInteraction(true); } private function startInteractionHandler(_arg1:MouseEvent):void{ _currentControl = (_arg1.currentTarget as TransformToolControl); if (_currentControl){ setupInteraction(); }; } public function set customCursorsEnabled(_arg1:Boolean):void{ if (_customCursorsEnabled != _arg1){ _customCursorsEnabled = _arg1; updateControlsEnabled(); dispatchEvent(new Event(CONTROL_PREFERENCE)); }; } private function updateControlsVisible():void{ var _local1:Boolean = contains(toolSprites); if (_target){ if (!_local1){ addChild(toolSprites); }; } else { if (_local1){ removeChild(toolSprites); }; }; } public function set toolMatrix(_arg1:Matrix):void{ updateMatrix(_arg1, false); updateRegistration(); dispatchEvent(new Event(TRANSFORM_TOOL)); } public function get skewCursor():TransformToolCursor{ return (_skewCursor); } public function get skewTopControl():TransformToolControl{ return (_skewTopControl); } public function get scaleTopRightControl():TransformToolControl{ return (_scaleTopRightControl); } public function get controlSize():Number{ return (_controlSize); } public function setSkin(_arg1:String, _arg2:DisplayObject):void{ var _local3:TransformToolInternalControl = getControlByName(_arg1); if (_local3){ _local3.skin = _arg2; }; } public function removeCursor(_arg1:TransformToolCursor):TransformToolCursor{ if (customCursors.contains(_arg1)){ customCursors.removeChild(_arg1); return (_arg1); }; return (null); } private function endInteractionHandler(_arg1:MouseEvent):void{ if ((((_arg1.eventPhase == EventPhase.BUBBLING_PHASE)) || (!((_arg1.currentTarget is Stage))))){ return; }; if (!_livePreview){ apply(); }; var _local2:Stage = (_arg1.currentTarget as Stage); _local2.removeEventListener(MouseEvent.MOUSE_MOVE, interactionHandler); _local2.removeEventListener(MouseEvent.MOUSE_UP, endInteractionHandler, false); _local2.removeEventListener(MouseEvent.MOUSE_UP, endInteractionHandler, true); dispatchEvent(new Event(CONTROL_UP)); _currentControl = null; } private function completeInteraction(_arg1:Boolean=false):void{ var _local2:Point; enforceLimits(); if (_arg1){ _local2 = _registration.subtract(_toolMatrix.transformPoint(innerRegistration)); _toolMatrix.tx = (_toolMatrix.tx + _local2.x); _toolMatrix.ty = (_toolMatrix.ty + _local2.y); }; updateBounds(); } public function set moveUnderObjects(_arg1:Boolean):void{ if (_moveUnderObjects != _arg1){ _moveUnderObjects = _arg1; dispatchEvent(new Event(CONTROL_PREFERENCE)); }; } public function set target(_arg1:DisplayObject):void{ if (!_arg1){ if (_target){ _target = null; updateControlsVisible(); dispatchEvent(new Event(NEW_TARGET)); }; return; } else { if ((((((((_arg1 == _target)) || ((_arg1 == this)))) || (contains(_arg1)))) || ((((_arg1 is DisplayObjectContainer)) && ((_arg1 as DisplayObjectContainer).contains(this)))))){ return; }; _target = _arg1; updateMatrix(); setNewRegistation(); updateControlsVisible(); if (_raiseNewTargets){ raiseTarget(); }; }; if (!_moveNewTargets){ apply(); }; dispatchEvent(new Event(NEW_TARGET)); if (((((_moveNewTargets) && (_moveEnabled))) && (_moveControl))){ _currentControl = _moveControl; _currentControl.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN)); }; } public function set scaleEnabled(_arg1:Boolean):void{ if (_scaleEnabled != _arg1){ _scaleEnabled = _arg1; updateControlsEnabled(); }; } public function get scaleTopControl():TransformToolControl{ return (_scaleTopControl); } public function get maintainControlForm():Boolean{ return (_maintainControlForm); } public function get livePreview():Boolean{ return (_livePreview); } public function get boundsBottom():Point{ return (_boundsBottom.clone()); } public function get globalMatrix():Matrix{ var _local1:Matrix = _toolMatrix.clone(); _local1.concat(transform.concatenatedMatrix); return (_local1); } public function set outlineEnabled(_arg1:Boolean):void{ if (_outlineEnabled != _arg1){ _outlineEnabled = _arg1; updateControlsEnabled(); }; } private function addToolControl(_arg1:Sprite, _arg2:TransformToolControl, _arg3:Boolean=true):void{ _arg2.transformTool = this; if (_arg3){ _arg2.addEventListener(MouseEvent.MOUSE_DOWN, startInteractionHandler); }; _arg1.addChild(_arg2); _arg2.dispatchEvent(new Event(CONTROL_INIT)); } public function set cursorsEnabled(_arg1:Boolean):void{ if (_cursorsEnabled != _arg1){ _cursorsEnabled = _arg1; updateControlsEnabled(); }; } private function setupInteraction():void{ updateMatrix(); apply(); dispatchEvent(new Event(CONTROL_DOWN)); mouseOffset = (((_currentControl) && (_currentControl.referencePoint))) ? _currentControl.referencePoint.subtract(new Point(mouseX, mouseY)) : new Point(0, 0); updateMouse(); interactionStart = mouseLoc.clone(); innerInteractionStart = innerMouseLoc.clone(); interactionStartMatrix = _toolMatrix.clone(); interactionStartAngle = distortAngle(); if (stage){ stage.addEventListener(MouseEvent.MOUSE_MOVE, interactionHandler); stage.addEventListener(MouseEvent.MOUSE_UP, endInteractionHandler, false); stage.addEventListener(MouseEvent.MOUSE_UP, endInteractionHandler, true); }; } public function addCursor(_arg1:TransformToolCursor):void{ addToolControl(customCursors, _arg1); } private function updateMouse():void{ mouseLoc = new Point(mouseX, mouseY).add(mouseOffset); innerMouseLoc = toolInvertedMatrix.transformPoint(mouseLoc); } public function get scaleCursor():TransformToolCursor{ return (_scaleCursor); } public function draw():void{ updateMatrix(); dispatchEvent(new Event(TRANSFORM_TOOL)); } public function get boundsBottomLeft():Point{ return (_boundsBottomLeft.clone()); } public function get boundsCenter():Point{ return (_boundsCenter.clone()); } public function scaleBothInteraction():void{ var _local4:Point; var _local5:Point; var _local6:Number; var _local7:Number; var _local1:Point = innerMouseLoc.clone(); if (_constrainScale){ _local4 = innerMouseLoc.subtract(innerInteractionStart); _local5 = innerInteractionStart.subtract(innerRegistration); _local6 = (_local5.x) ? (_local4.x / _local5.x) : 0; _local7 = (_local5.y) ? (_local4.y / _local5.y) : 0; if (_local6 > _local7){ _local1.x = (innerInteractionStart.x + (_local5.x * _local7)); } else { _local1.y = (innerInteractionStart.y + (_local5.y * _local6)); }; }; var _local2:Point = distortOffset(new Point(_local1.x, innerInteractionStart.y), (innerInteractionStart.x - innerRegistration.x)); var _local3:Point = distortOffset(new Point(innerInteractionStart.x, _local1.y), (innerInteractionStart.y - innerRegistration.y)); _toolMatrix.a = (_toolMatrix.a + _local2.x); _toolMatrix.b = (_toolMatrix.b + _local2.y); _toolMatrix.c = (_toolMatrix.c + _local3.x); _toolMatrix.d = (_toolMatrix.d + _local3.y); completeInteraction(true); } public function apply():void{ var _local1:Matrix; var _local2:Matrix; if (_target){ _local1 = _toolMatrix.clone(); _local1.concat(transform.concatenatedMatrix); if (_target.parent){ _local2 = target.parent.transform.concatenatedMatrix; _local2.invert(); _local1.concat(_local2); }; _target.transform.matrix = _local1; dispatchEvent(new Event(TRANSFORM_TARGET)); }; } public function get registrationCursor():TransformToolCursor{ return (_registrationCursor); } public function set registration(_arg1:Point):void{ _registration = _arg1.clone(); innerRegistration = toolInvertedMatrix.transformPoint(_registration); if (_rememberRegistration){ registrationLog[_target] = innerRegistration; }; dispatchEvent(new Event(TRANSFORM_TOOL)); } public function get toolMatrix():Matrix{ return (_toolMatrix.clone()); } public function set constrainRotationAngle(_arg1:Number):void{ var _local2:Number = ((_arg1 * Math.PI) / 180); if (_constrainRotationAngle != _local2){ _constrainRotationAngle = _local2; dispatchEvent(new Event(CONTROL_PREFERENCE)); }; } public function get scaleBottomControl():TransformToolControl{ return (_scaleBottomControl); } public function addControl(_arg1:TransformToolControl):void{ addToolControl(customControls, _arg1); } private function getControlByName(_arg1:String):TransformToolInternalControl{ var _local2:TransformToolInternalControl; var _local3:Array = new Array(skewControls, registrationControls, cursors, rotateControls, scaleControls); var _local4:int = _local3.length; while (((_local4--) && ((_local2 == null)))) { _local2 = (_local3[_local4].getChildByName(_arg1) as TransformToolInternalControl); }; return (_local2); } public function get target():DisplayObject{ return (_target); } public function get moveUnderObjects():Boolean{ return (_moveUnderObjects); } public function get rotationBottomRightControl():TransformToolControl{ return (_rotationBottomRightControl); } public function registrationInteraction():void{ _registration.x = mouseLoc.x; _registration.y = mouseLoc.y; innerRegistration = toolInvertedMatrix.transformPoint(_registration); if (_rememberRegistration){ registrationLog[_target] = innerRegistration; }; completeInteraction(); } private function updateControlsEnabled():void{ updateControlContainer(customCursors, _customCursorsEnabled); updateControlContainer(cursors, _cursorsEnabled); updateControlContainer(customControls, _customControlsEnabled); updateControlContainer(registrationControls, _registrationEnabled); updateControlContainer(scaleControls, _scaleEnabled); updateControlContainer(skewControls, _skewEnabled); updateControlContainer(moveControls, _moveEnabled); updateControlContainer(rotateControls, _rotationEnabled); updateControlContainer(lines, _outlineEnabled); } public function get currentControl():TransformToolControl{ return (_currentControl); } public function set maxScaleX(_arg1:Number):void{ _maxScaleX = _arg1; } public function set skewEnabled(_arg1:Boolean):void{ if (_skewEnabled != _arg1){ _skewEnabled = _arg1; updateControlsEnabled(); }; } public function get constrainRotationAngle():Number{ return (((_constrainRotationAngle * 180) / Math.PI)); } public function get scaleLeftControl():TransformToolControl{ return (_scaleLeftControl); } public function moveInteraction():void{ var _local1:Point = mouseLoc.subtract(interactionStart); _toolMatrix.tx = (_toolMatrix.tx + _local1.x); _toolMatrix.ty = (_toolMatrix.ty + _local1.y); updateRegistration(); completeInteraction(); } public function set maxScaleY(_arg1:Number):void{ _maxScaleY = _arg1; } public function get boundsTopRight():Point{ return (_boundsTopRight.clone()); } public function set rotationEnabled(_arg1:Boolean):void{ if (_rotationEnabled != _arg1){ _rotationEnabled = _arg1; updateControlsEnabled(); }; } public function get skewBottomControl():TransformToolControl{ return (_skewBottomControl); } public function set rememberRegistration(_arg1:Boolean):void{ _rememberRegistration = _arg1; if (!_rememberRegistration){ registrationLog = new Dictionary(true); }; } public function rotationInteraction():void{ var _local1:Matrix = transform.concatenatedMatrix; var _local2:Matrix = _local1.clone(); _local2.invert(); _toolMatrix.concat(_local1); var _local3:Number = (distortAngle() - interactionStartAngle); if (_constrainRotation){ if (_local3 > Math.PI){ _local3 = (_local3 - (Math.PI * 2)); } else { if (_local3 < -(Math.PI)){ _local3 = (_local3 + (Math.PI * 2)); }; }; _local3 = (Math.round((_local3 / _constrainRotationAngle)) * _constrainRotationAngle); }; _toolMatrix.rotate(_local3); _toolMatrix.concat(_local2); completeInteraction(true); } private function createControls():void{ _moveControl = new TransformToolMoveShape("move", moveInteraction); _registrationControl = new TransformToolRegistrationControl(REGISTRATION, registrationInteraction, "registration"); _rotationTopLeftControl = new TransformToolRotateControl(ROTATION_TOP_LEFT, rotationInteraction, "boundsTopLeft"); _rotationTopRightControl = new TransformToolRotateControl(ROTATION_TOP_RIGHT, rotationInteraction, "boundsTopRight"); _rotationBottomRightControl = new TransformToolRotateControl(ROTATION_BOTTOM_RIGHT, rotationInteraction, "boundsBottomRight"); _rotationBottomLeftControl = new TransformToolRotateControl(ROTATION_BOTTOM_LEFT, rotationInteraction, "boundsBottomLeft"); _scaleTopLeftControl = new TransformToolScaleControl(SCALE_TOP_LEFT, scaleBothInteraction, "boundsTopLeft"); _scaleTopControl = new TransformToolScaleControl(SCALE_TOP, scaleYInteraction, "boundsTop"); _scaleTopRightControl = new TransformToolScaleControl(SCALE_TOP_RIGHT, scaleBothInteraction, "boundsTopRight"); _scaleRightControl = new TransformToolScaleControl(SCALE_RIGHT, scaleXInteraction, "boundsRight"); _scaleBottomRightControl = new TransformToolScaleControl(SCALE_BOTTOM_RIGHT, scaleBothInteraction, "boundsBottomRight"); _scaleBottomControl = new TransformToolScaleControl(SCALE_BOTTOM, scaleYInteraction, "boundsBottom"); _scaleBottomLeftControl = new TransformToolScaleControl(SCALE_BOTTOM_LEFT, scaleBothInteraction, "boundsBottomLeft"); _scaleLeftControl = new TransformToolScaleControl(SCALE_LEFT, scaleXInteraction, "boundsLeft"); _skewTopControl = new TransformToolSkewBar(SKEW_TOP, skewXInteraction, "boundsTopRight", "boundsTopLeft", "boundsTopRight"); _skewRightControl = new TransformToolSkewBar(SKEW_RIGHT, skewYInteraction, "boundsBottomRight", "boundsTopRight", "boundsBottomRight"); _skewBottomControl = new TransformToolSkewBar(SKEW_BOTTOM, skewXInteraction, "boundsBottomLeft", "boundsBottomRight", "boundsBottomLeft"); _skewLeftControl = new TransformToolSkewBar(SKEW_LEFT, skewYInteraction, "boundsTopLeft", "boundsBottomLeft", "boundsTopLeft"); _moveCursor = new TransformToolMoveCursor(); _moveCursor.addReference(_moveControl); _registrationCursor = new TransformToolRegistrationCursor(); _registrationCursor.addReference(_registrationControl); _rotationCursor = new TransformToolRotateCursor(); _rotationCursor.addReference(_rotationTopLeftControl); _rotationCursor.addReference(_rotationTopRightControl); _rotationCursor.addReference(_rotationBottomRightControl); _rotationCursor.addReference(_rotationBottomLeftControl); _scaleCursor = new TransformToolScaleCursor(); _scaleCursor.addReference(_scaleTopLeftControl); _scaleCursor.addReference(_scaleTopControl); _scaleCursor.addReference(_scaleTopRightControl); _scaleCursor.addReference(_scaleRightControl); _scaleCursor.addReference(_scaleBottomRightControl); _scaleCursor.addReference(_scaleBottomControl); _scaleCursor.addReference(_scaleBottomLeftControl); _scaleCursor.addReference(_scaleLeftControl); _skewCursor = new TransformToolSkewCursor(); _skewCursor.addReference(_skewTopControl); _skewCursor.addReference(_skewRightControl); _skewCursor.addReference(_skewBottomControl); _skewCursor.addReference(_skewLeftControl); addToolControl(moveControls, _moveControl); addToolControl(registrationControls, _registrationControl); addToolControl(rotateControls, _rotationTopLeftControl); addToolControl(rotateControls, _rotationTopRightControl); addToolControl(rotateControls, _rotationBottomRightControl); addToolControl(rotateControls, _rotationBottomLeftControl); addToolControl(scaleControls, _scaleTopControl); addToolControl(scaleControls, _scaleRightControl); addToolControl(scaleControls, _scaleBottomControl); addToolControl(scaleControls, _scaleLeftControl); addToolControl(scaleControls, _scaleTopLeftControl); addToolControl(scaleControls, _scaleTopRightControl); addToolControl(scaleControls, _scaleBottomRightControl); addToolControl(scaleControls, _scaleBottomLeftControl); addToolControl(skewControls, _skewTopControl); addToolControl(skewControls, _skewRightControl); addToolControl(skewControls, _skewBottomControl); addToolControl(skewControls, _skewLeftControl); addToolControl(lines, new TransformToolOutline("outline"), false); addToolControl(cursors, _moveCursor, false); addToolControl(cursors, _registrationCursor, false); addToolControl(cursors, _rotationCursor, false); addToolControl(cursors, _scaleCursor, false); addToolControl(cursors, _skewCursor, false); updateControlsEnabled(); } public function get skewRightControl():TransformToolControl{ return (_skewRightControl); } public function get rotationEnabled():Boolean{ return (_rotationEnabled); } public function get rememberRegistration():Boolean{ return (_rememberRegistration); } private function updateMatrix(_arg1:Matrix=null, _arg2:Boolean=true):void{ var _local3:Matrix; if (_target){ _toolMatrix = (_arg1) ? _arg1.clone() : _target.transform.concatenatedMatrix.clone(); if (_arg2){ _local3 = transform.concatenatedMatrix; _local3.invert(); _toolMatrix.concat(_local3); }; enforceLimits(); toolInvertedMatrix = _toolMatrix.clone(); toolInvertedMatrix.invert(); updateBounds(); }; } public function get rotationTopLeftControl():TransformToolControl{ return (_rotationTopLeftControl); } public function get moveNewTargets():Boolean{ return (_moveNewTargets); } public function set customControlsEnabled(_arg1:Boolean):void{ if (_customControlsEnabled != _arg1){ _customControlsEnabled = _arg1; updateControlsEnabled(); dispatchEvent(new Event(CONTROL_PREFERENCE)); }; } public function get customControlsEnabled():Boolean{ return (_customControlsEnabled); } public function set controlSize(_arg1:Number):void{ if (_controlSize != _arg1){ _controlSize = _arg1; dispatchEvent(new Event(CONTROL_PREFERENCE)); }; } public function set moveNewTargets(_arg1:Boolean):void{ _moveNewTargets = _arg1; } } }//package com.senocular.display import flash.display.*; import flash.events.*; import flash.geom.*; class TransformToolSkewBar extends TransformToolInternalControl { private var locationEnd:String; private var locationStart:String; private function TransformToolSkewBar(_arg1:String, _arg2:Function, _arg3:String, _arg4:String, _arg5:String){ super(_arg1, _arg2, _arg3); this.locationStart = _arg4; this.locationEnd = _arg5; } override public function draw(_arg1:Event=null):void{ var _local4:Matrix; var _local5:Matrix; graphics.clear(); if (_skin){ super.draw(_arg1); return; }; var _local2:Point = _transformTool[locationStart]; var _local3:Point = _transformTool[locationEnd]; var _local6:Boolean = _transformTool.maintainControlForm; if (_local6){ _local4 = transform.concatenatedMatrix; _local5 = _local4.clone(); _local5.invert(); _local2 = _local4.transformPoint(_local2); _local3 = _local4.transformPoint(_local3); }; var _local7:Number = (_transformTool.controlSize / 2); var _local8:Point = _local3.subtract(_local2); var _local9:Number = (Math.atan2(_local8.y, _local8.x) - (Math.PI / 2)); var _local10:Point = Point.polar(_local7, _local9); var _local11:Point = _local2.add(_local10); var _local12:Point = _local3.add(_local10); var _local13:Point = _local3.subtract(_local10); var _local14:Point = _local2.subtract(_local10); if (_local6){ _local11 = _local5.transformPoint(_local11); _local12 = _local5.transformPoint(_local12); _local13 = _local5.transformPoint(_local13); _local14 = _local5.transformPoint(_local14); }; graphics.beginFill(0xFF0000, 0); graphics.moveTo(_local11.x, _local11.y); graphics.lineTo(_local12.x, _local12.y); graphics.lineTo(_local13.x, _local13.y); graphics.lineTo(_local14.x, _local14.y); graphics.lineTo(_local11.x, _local11.y); graphics.endFill(); } override public function position(_arg1:Event=null):void{ var _local2:Point; var _local3:Point; var _local4:Point; if (_skin){ _local2 = _transformTool[locationStart]; _local3 = _transformTool[locationEnd]; _local4 = Point.interpolate(_local2, _local3, 0.5); x = _local4.x; y = _local4.y; } else { x = 0; y = 0; draw(_arg1); }; } } class TransformToolSkewCursor extends TransformToolInternalCursor { private function TransformToolSkewCursor(){ } override public function updateVisible(_arg1:Event=null):void{ var _local2:TransformToolSkewBar; super.updateVisible(_arg1); if (_arg1){ _local2 = (_arg1.target as TransformToolSkewBar); if (_local2){ switch (_local2){ case _transformTool.skewLeftControl: case _transformTool.skewRightControl: icon.rotation = getGlobalAngle(new Point(0, 100)); break; default: icon.rotation = getGlobalAngle(new Point(100, 0)); }; }; }; } override public function draw():void{ super.draw(); icon.graphics.moveTo(-6, -1); icon.graphics.lineTo(6, -1); icon.graphics.lineTo(6, -4); icon.graphics.lineTo(10, 1); icon.graphics.lineTo(-6, 1); icon.graphics.lineTo(-6, -1); icon.graphics.endFill(); super.draw(); icon.graphics.moveTo(10, 5); icon.graphics.lineTo(-2, 5); icon.graphics.lineTo(-2, 8); icon.graphics.lineTo(-6, 3); icon.graphics.lineTo(10, 3); icon.graphics.lineTo(10, 5); icon.graphics.endFill(); } } class TransformToolInternalControl extends TransformToolControl { public var referenceName:String; public var interactionMethod:Function; public var _skin:DisplayObject; private function TransformToolInternalControl(_arg1:String, _arg2:Function=null, _arg3:String=null){ this.name = _arg1; this.interactionMethod = _arg2; this.referenceName = _arg3; addEventListener(TransformTool.CONTROL_INIT, init); } public function set skin(_arg1:DisplayObject):void{ if (((_skin) && (contains(_skin)))){ removeChild(_skin); }; _skin = _arg1; if (_skin){ addChild(_skin); }; draw(); } public function draw(_arg1:Event=null):void{ if (_transformTool.maintainControlForm){ counterTransform(); }; position(); } override public function get referencePoint():Point{ if ((referenceName in _transformTool)){ return (_transformTool[referenceName]); }; return (null); } public function position(_arg1:Event=null):void{ var _local2:Point = referencePoint; if (_local2){ x = _local2.x; y = _local2.y; }; } private function controlMove(_arg1:Event):void{ if (((!((interactionMethod == null))) && ((_transformTool.currentControl == this)))){ interactionMethod(); }; } protected function init(_arg1:Event):void{ _transformTool.addEventListener(TransformTool.NEW_TARGET, draw); _transformTool.addEventListener(TransformTool.TRANSFORM_TOOL, draw); _transformTool.addEventListener(TransformTool.CONTROL_TRANSFORM_TOOL, position); _transformTool.addEventListener(TransformTool.CONTROL_PREFERENCE, draw); _transformTool.addEventListener(TransformTool.CONTROL_MOVE, controlMove); draw(); } public function get skin():DisplayObject{ return (_skin); } } class TransformToolRegistrationCursor extends TransformToolInternalCursor { private function TransformToolRegistrationCursor(){ } override public function draw():void{ super.draw(); icon.graphics.drawCircle(0, 0, 2); icon.graphics.drawCircle(0, 0, 4); icon.graphics.endFill(); } } class TransformToolInternalCursor extends TransformToolCursor { public var offset:Point; public var icon:Shape; private function TransformToolInternalCursor(){ offset = new Point(); icon = new Shape(); super(); addChild(icon); offset = _mouseOffset; addEventListener(TransformTool.CONTROL_INIT, init); } private function init(_arg1:Event):void{ _transformTool.addEventListener(TransformTool.NEW_TARGET, maintainTransform); _transformTool.addEventListener(TransformTool.CONTROL_PREFERENCE, maintainTransform); draw(); } protected function maintainTransform(_arg1:Event):void{ var _local2:Matrix; offset = _mouseOffset; if (_transformTool.maintainControlForm){ transform.matrix = new Matrix(); _local2 = transform.concatenatedMatrix; _local2.invert(); transform.matrix = _local2; offset = _local2.deltaTransformPoint(offset); }; updateVisible(_arg1); } public function draw():void{ icon.graphics.beginFill(0); icon.graphics.lineStyle(1, 0xFFFFFF); } override public function position(_arg1:Event=null):void{ if (parent){ x = (parent.mouseX + offset.x); y = (parent.mouseY + offset.y); }; } protected function getGlobalAngle(_arg1:Point):Number{ var _local2:Matrix = _transformTool.globalMatrix; _arg1 = _local2.deltaTransformPoint(_arg1); return ((Math.atan2(_arg1.y, _arg1.x) * (180 / Math.PI))); } protected function drawArc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean=true):void{ var _local12:int; var _local7:Number = (_arg5 - _arg4); var _local8:Number = (1 + Math.floor((Math.abs(_local7) / (Math.PI / 4)))); var _local9:Number = (_local7 / (2 * _local8)); var _local10:Number = Math.cos(_local9); var _local11:Number = (_local10) ? (_arg3 / _local10) : 0; if (_arg6){ icon.graphics.moveTo((_arg1 + (Math.cos(_arg4) * _arg3)), (_arg2 - (Math.sin(_arg4) * _arg3))); } else { icon.graphics.lineTo((_arg1 + (Math.cos(_arg4) * _arg3)), (_arg2 - (Math.sin(_arg4) * _arg3))); }; _local12 = 0; while (_local12 < _local8) { _arg5 = (_arg4 + _local9); _arg4 = (_arg5 + _local9); icon.graphics.curveTo((_arg1 + (Math.cos(_arg5) * _local11)), (_arg2 - (Math.sin(_arg5) * _local11)), (_arg1 + (Math.cos(_arg4) * _arg3)), (_arg2 - (Math.sin(_arg4) * _arg3))); _local12++; }; } } class TransformToolScaleCursor extends TransformToolInternalCursor { private function TransformToolScaleCursor(){ } override public function updateVisible(_arg1:Event=null):void{ var _local2:TransformToolScaleControl; super.updateVisible(_arg1); if (_arg1){ _local2 = (_arg1.target as TransformToolScaleControl); if (_local2){ switch (_local2){ case _transformTool.scaleTopLeftControl: case _transformTool.scaleBottomRightControl: icon.rotation = ((getGlobalAngle(new Point(0, 100)) + getGlobalAngle(new Point(100, 0))) / 2); break; case _transformTool.scaleTopRightControl: case _transformTool.scaleBottomLeftControl: icon.rotation = ((getGlobalAngle(new Point(0, -100)) + getGlobalAngle(new Point(100, 0))) / 2); break; case _transformTool.scaleTopControl: case _transformTool.scaleBottomControl: icon.rotation = getGlobalAngle(new Point(0, 100)); break; default: icon.rotation = getGlobalAngle(new Point(100, 0)); }; }; }; } override public function draw():void{ super.draw(); icon.graphics.moveTo(4.5, -0.5); icon.graphics.lineTo(4.5, -2.5); icon.graphics.lineTo(8.5, 0.5); icon.graphics.lineTo(4.5, 3.5); icon.graphics.lineTo(4.5, 1.5); icon.graphics.lineTo(-0.5, 1.5); icon.graphics.lineTo(-3.5, 1.5); icon.graphics.lineTo(-3.5, 3.5); icon.graphics.lineTo(-7.5, 0.5); icon.graphics.lineTo(-3.5, -2.5); icon.graphics.lineTo(-3.5, -0.5); icon.graphics.lineTo(4.5, -0.5); icon.graphics.endFill(); } } class TransformToolOutline extends TransformToolInternalControl { private function TransformToolOutline(_arg1:String){ super(_arg1); } override public function position(_arg1:Event=null):void{ draw(_arg1); } override public function draw(_arg1:Event=null):void{ var _local2:Point = _transformTool.boundsTopLeft; var _local3:Point = _transformTool.boundsTopRight; var _local4:Point = _transformTool.boundsBottomRight; var _local5:Point = _transformTool.boundsBottomLeft; graphics.clear(); graphics.lineStyle(0, 0); graphics.moveTo(_local2.x, _local2.y); graphics.lineTo(_local3.x, _local3.y); graphics.lineTo(_local4.x, _local4.y); graphics.lineTo(_local5.x, _local5.y); graphics.lineTo(_local2.x, _local2.y); } } class TransformToolMoveCursor extends TransformToolInternalCursor { private function TransformToolMoveCursor(){ } override public function draw():void{ super.draw(); icon.graphics.moveTo(1, 1); icon.graphics.lineTo(1, -2); icon.graphics.lineTo(-1, -2); icon.graphics.lineTo(2, -6); icon.graphics.lineTo(5, -2); icon.graphics.lineTo(3, -2); icon.graphics.lineTo(3, 1); icon.graphics.lineTo(6, 1); icon.graphics.lineTo(6, -1); icon.graphics.lineTo(10, 2); icon.graphics.lineTo(6, 5); icon.graphics.lineTo(6, 3); icon.graphics.lineTo(3, 3); icon.graphics.lineTo(3, 5); icon.graphics.lineTo(3, 6); icon.graphics.lineTo(5, 6); icon.graphics.lineTo(2, 10); icon.graphics.lineTo(-1, 6); icon.graphics.lineTo(1, 6); icon.graphics.lineTo(1, 5); icon.graphics.lineTo(1, 3); icon.graphics.lineTo(-2, 3); icon.graphics.lineTo(-2, 5); icon.graphics.lineTo(-6, 2); icon.graphics.lineTo(-2, -1); icon.graphics.lineTo(-2, 1); icon.graphics.lineTo(1, 1); icon.graphics.endFill(); } } class TransformToolMoveShape extends TransformToolInternalControl { private var lastTarget:DisplayObject; private function TransformToolMoveShape(_arg1:String, _arg2:Function){ super(_arg1, _arg2); } private function mouseDown(_arg1:MouseEvent):void{ dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN)); } override public function draw(_arg1:Event=null):void{ var _local2:DisplayObject; var _local4:TransformToolCursor; var _local3:Boolean = _transformTool.moveUnderObjects; if (_local3){ hitArea = (_transformTool.target as Sprite); _local2 = null; relatedObject = this; } else { hitArea = null; _local2 = _transformTool.target; relatedObject = (_transformTool.target as InteractiveObject); }; if (lastTarget != _local2){ if (lastTarget){ lastTarget.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown, false); }; if (_local2){ _local2.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown, false, 0, true); }; _local4 = _transformTool.moveCursor; _local4.removeReference(lastTarget); _local4.addReference(_local2); lastTarget = _local2; }; } } class TransformToolRotateCursor extends TransformToolInternalCursor { private function TransformToolRotateCursor(){ } override public function draw():void{ super.draw(); var _local1:Number = Math.PI; var _local2:Number = (-(Math.PI) / 2); drawArc(0, 0, 4, _local1, _local2); drawArc(0, 0, 6, _local2, _local1, false); icon.graphics.lineTo(-8, 0); icon.graphics.lineTo(-5, 4); icon.graphics.lineTo(-2, 0); icon.graphics.lineTo(-4, 0); icon.graphics.endFill(); } } class TransformToolRegistrationControl extends TransformToolInternalControl { private function TransformToolRegistrationControl(_arg1:String, _arg2:Function, _arg3:String){ super(_arg1, _arg2, _arg3); } override public function draw(_arg1:Event=null):void{ graphics.clear(); if (!_skin){ graphics.lineStyle(1, 0); graphics.beginFill(0xFFFFFF); graphics.drawCircle(0, 0, (_transformTool.controlSize / 2)); graphics.endFill(); }; super.draw(); } } class TransformToolScaleControl extends TransformToolInternalControl { private function TransformToolScaleControl(_arg1:String, _arg2:Function, _arg3:String){ super(_arg1, _arg2, _arg3); } override public function draw(_arg1:Event=null):void{ var _local2:Number; var _local3:Number; graphics.clear(); if (!_skin){ graphics.lineStyle(2, 0xFFFFFF); graphics.beginFill(0); _local2 = _transformTool.controlSize; _local3 = (_local2 / 2); graphics.drawRect(-(_local3), -(_local3), _local2, _local2); graphics.endFill(); }; super.draw(); } } class TransformToolRotateControl extends TransformToolInternalControl { private var locationName:String; private function TransformToolRotateControl(_arg1:String, _arg2:Function, _arg3:String){ super(_arg1, _arg2); this.locationName = _arg3; } override public function position(_arg1:Event=null):void{ var _local2:Point; if ((locationName in _transformTool)){ _local2 = _transformTool[locationName]; x = _local2.x; y = _local2.y; }; } override public function draw(_arg1:Event=null):void{ graphics.clear(); if (!_skin){ graphics.beginFill(0xFF, 0); graphics.drawCircle(0, 0, (_transformTool.controlSize * 2)); graphics.endFill(); }; super.draw(); } }
Section 356
//TransformToolControl (com.senocular.display.TransformToolControl) package com.senocular.display { import flash.display.*; import flash.geom.*; public class TransformToolControl extends MovieClip { protected var _transformTool:TransformTool; protected var _referencePoint:Point; protected var _relatedObject:InteractiveObject; public function TransformToolControl(){ _relatedObject = this; } public function get transformTool():TransformTool{ return (_transformTool); } public function get relatedObject():InteractiveObject{ return (_relatedObject); } public function get referencePoint():Point{ return (_referencePoint); } public function set transformTool(_arg1:TransformTool):void{ _transformTool = _arg1; } public function counterTransform():void{ transform.matrix = new Matrix(); var _local1:Matrix = transform.concatenatedMatrix; _local1.invert(); transform.matrix = _local1; } public function set referencePoint(_arg1:Point):void{ _referencePoint = _arg1; } public function set relatedObject(_arg1:InteractiveObject):void{ _relatedObject = (_arg1) ? _arg1 : this; } } }//package com.senocular.display
Section 357
//TransformToolCursor (com.senocular.display.TransformToolCursor) package com.senocular.display { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; public class TransformToolCursor extends TransformToolControl { protected var contact:Boolean;// = false protected var active:Boolean;// = false protected var references:Dictionary; protected var _mouseOffset:Point; public function TransformToolCursor(){ _mouseOffset = new Point(20, 20); references = new Dictionary(true); super(); addEventListener(TransformTool.CONTROL_INIT, init); } public function position(_arg1:Event=null):void{ if (parent){ x = (parent.mouseX + mouseOffset.x); y = (parent.mouseY + mouseOffset.y); }; } protected function controlMouseUp(_arg1:Event):void{ if (references[_transformTool.currentControl.relatedObject]){ active = false; }; updateVisible(_arg1); } protected function referenceUnset(_arg1:Event):void{ contact = false; if (!_transformTool.currentControl){ updateVisible(_arg1); }; } public function updateVisible(_arg1:Event=null):void{ if (active){ if (!visible){ visible = true; }; } else { if (visible != contact){ visible = contact; }; }; position(_arg1); } public function addReference(_arg1:DisplayObject):void{ if (((_arg1) && (!(references[_arg1])))){ references[_arg1] = true; addReferenceListeners(_arg1); }; } public function removeReference(_arg1:DisplayObject):DisplayObject{ if (((_arg1) && (references[_arg1]))){ removeReferenceListeners(_arg1); delete references[_arg1]; return (_arg1); }; return (null); } public function set mouseOffset(_arg1:Point):void{ _mouseOffset = _arg1; } protected function controlMouseDown(_arg1:Event):void{ if (references[_transformTool.currentControl.relatedObject]){ active = true; }; updateVisible(_arg1); } private function addReferenceListeners(_arg1:DisplayObject):void{ _arg1.addEventListener(MouseEvent.MOUSE_MOVE, referenceMove, false, 0, true); _arg1.addEventListener(MouseEvent.MOUSE_DOWN, referenceSet, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OVER, referenceSet, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OUT, referenceUnset, false, 0, true); } public function get mouseOffset():Point{ return (_mouseOffset.clone()); } private function removeReferenceListeners(_arg1:DisplayObject):void{ _arg1.removeEventListener(MouseEvent.MOUSE_MOVE, referenceMove, false); _arg1.removeEventListener(MouseEvent.MOUSE_DOWN, referenceSet, false); _arg1.removeEventListener(MouseEvent.ROLL_OVER, referenceSet, false); _arg1.removeEventListener(MouseEvent.ROLL_OUT, referenceUnset, false); } protected function referenceMove(_arg1:MouseEvent):void{ position(_arg1); _arg1.updateAfterEvent(); } protected function controlMove(_arg1:Event):void{ if (references[_transformTool.currentControl.relatedObject]){ position(_arg1); }; } protected function referenceSet(_arg1:Event):void{ contact = true; if (!_transformTool.currentControl){ updateVisible(_arg1); }; } private function init(_arg1:Event):void{ _transformTool.addEventListener(TransformTool.TRANSFORM_TOOL, position, false, 0, true); _transformTool.addEventListener(TransformTool.NEW_TARGET, referenceUnset, false, 0, true); _transformTool.addEventListener(TransformTool.CONTROL_TRANSFORM_TOOL, position, false, 0, true); _transformTool.addEventListener(TransformTool.CONTROL_DOWN, controlMouseDown, false, 0, true); _transformTool.addEventListener(TransformTool.CONTROL_MOVE, controlMove, false, 0, true); _transformTool.addEventListener(TransformTool.CONTROL_UP, controlMouseUp, false, 0, true); updateVisible(_arg1); position(_arg1); } } }//package com.senocular.display
Section 358
//Color (fl.motion.Color) package fl.motion { import flash.display.*; import flash.geom.*; public class Color extends ColorTransform { private var _tintColor:Number;// = 0 private var _tintMultiplier:Number;// = 0 public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } private function deriveTintColor():uint{ var _local1:Number = (1 / this.tintMultiplier); var _local2:uint = Math.round((this.redOffset * _local1)); var _local3:uint = Math.round((this.greenOffset * _local1)); var _local4:uint = Math.round((this.blueOffset * _local1)); var _local5:uint = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function set brightness(_arg1:Number):void{ if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; var _local2:Number = (1 - Math.abs(_arg1)); var _local3:Number = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } private function parseXML(_arg1:XML=null):Color{ var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; var _local2:XML = _arg1.elements()[0]; if (!_local2){ return (this); }; for each (_local3 in _local2.attributes()) { _local4 = _local3.localName(); if (_local4 == "tintColor"){ _local5 = (Number(_local3.toString()) as uint); this.tintColor = _local5; } else { this[_local4] = Number(_local3.toString()); }; }; return (this); } public function get tintColor():uint{ return (this._tintColor); } public function set tintColor(_arg1:uint):void{ this.setTint(_arg1, this.tintMultiplier); } public function get brightness():Number{ return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1)); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function setTint(_arg1:uint, _arg2:Number):void{ this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); var _local3:uint = ((_arg1 >> 16) & 0xFF); var _local4:uint = ((_arg1 >> 8) & 0xFF); var _local5:uint = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number = (1 - _arg3); var _local5:uint = ((_arg1 >> 24) & 0xFF); var _local6:uint = ((_arg1 >> 16) & 0xFF); var _local7:uint = ((_arg1 >> 8) & 0xFF); var _local8:uint = (_arg1 & 0xFF); var _local9:uint = ((_arg2 >> 24) & 0xFF); var _local10:uint = ((_arg2 >> 16) & 0xFF); var _local11:uint = ((_arg2 >> 8) & 0xFF); var _local12:uint = (_arg2 & 0xFF); var _local13:uint = ((_local5 * _local4) + (_local9 * _arg3)); var _local14:uint = ((_local6 * _local4) + (_local10 * _arg3)); var _local15:uint = ((_local7 * _local4) + (_local11 * _arg3)); var _local16:uint = ((_local8 * _local4) + (_local12 * _arg3)); var _local17:uint = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number = (1 - _arg3); var _local5:ColorTransform = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3))); return (_local5); } public static function fromXML(_arg1:XML):Color{ return (Color(new (Color).parseXML(_arg1))); } } }//package fl.motion
Section 359
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.4.0.9271"; } }//package mx.core
Section 360
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 361
//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 362
//logo_2 (Preloader_2DPlay_fla.logo_2) package Preloader_2DPlay_fla { import flash.display.*; public dynamic class logo_2 extends MovieClip { public var animation:MovieClip; public var progressBar:MovieClip; } }//package Preloader_2DPlay_fla
Section 363
//preloader_progress_bar_4 (Preloader_2DPlay_fla.preloader_progress_bar_4) package Preloader_2DPlay_fla { import flash.display.*; public dynamic class preloader_progress_bar_4 extends MovieClip { public var progressBarMask:MovieClip; } }//package Preloader_2DPlay_fla
Section 364
//acbigball_png_texture (acbigball_png_texture) package { import flash.display.*; public dynamic class acbigball_png_texture extends BitmapData { public function acbigball_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 365
//acconcrblock_01_png_texture (acconcrblock_01_png_texture) package { import flash.display.*; public dynamic class acconcrblock_01_png_texture extends BitmapData { public function acconcrblock_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 366
//acconcrblock_01up_png_texture (acconcrblock_01up_png_texture) package { import flash.display.*; public dynamic class acconcrblock_01up_png_texture extends BitmapData { public function acconcrblock_01up_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 367
//acconcrblock_02_png_texture (acconcrblock_02_png_texture) package { import flash.display.*; public dynamic class acconcrblock_02_png_texture extends BitmapData { public function acconcrblock_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 368
//acconcrblock_03_png_texture (acconcrblock_03_png_texture) package { import flash.display.*; public dynamic class acconcrblock_03_png_texture extends BitmapData { public function acconcrblock_03_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 369
//acconcrblock_04_png_texture (acconcrblock_04_png_texture) package { import flash.display.*; public dynamic class acconcrblock_04_png_texture extends BitmapData { public function acconcrblock_04_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 370
//acconcrblock_05_png_texture (acconcrblock_05_png_texture) package { import flash.display.*; public dynamic class acconcrblock_05_png_texture extends BitmapData { public function acconcrblock_05_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 371
//acconcrblock_05up_png_texture (acconcrblock_05up_png_texture) package { import flash.display.*; public dynamic class acconcrblock_05up_png_texture extends BitmapData { public function acconcrblock_05up_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 372
//achoop_png_texture (achoop_png_texture) package { import flash.display.*; public dynamic class achoop_png_texture extends BitmapData { public function achoop_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 373
//acramp01_png_texture (acramp01_png_texture) package { import flash.display.*; public dynamic class acramp01_png_texture extends BitmapData { public function acramp01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 374
//acramp01b_png_texture (acramp01b_png_texture) package { import flash.display.*; public dynamic class acramp01b_png_texture extends BitmapData { public function acramp01b_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 375
//acramp02curve_png_texture (acramp02curve_png_texture) package { import flash.display.*; public dynamic class acramp02curve_png_texture extends BitmapData { public function acramp02curve_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 376
//acramp02curveb_png_texture (acramp02curveb_png_texture) package { import flash.display.*; public dynamic class acramp02curveb_png_texture extends BitmapData { public function acramp02curveb_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 377
//acramp03_png_texture (acramp03_png_texture) package { import flash.display.*; public dynamic class acramp03_png_texture extends BitmapData { public function acramp03_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 378
//acramp03b_png_texture (acramp03b_png_texture) package { import flash.display.*; public dynamic class acramp03b_png_texture extends BitmapData { public function acramp03b_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 379
//acramp04_png_texture (acramp04_png_texture) package { import flash.display.*; public dynamic class acramp04_png_texture extends BitmapData { public function acramp04_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 380
//acramp04b_png_texture (acramp04b_png_texture) package { import flash.display.*; public dynamic class acramp04b_png_texture extends BitmapData { public function acramp04b_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 381
//acsqrblockblue_png_texture (acsqrblockblue_png_texture) package { import flash.display.*; public dynamic class acsqrblockblue_png_texture extends BitmapData { public function acsqrblockblue_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 382
//acsqrblockgrey_png_texture (acsqrblockgrey_png_texture) package { import flash.display.*; public dynamic class acsqrblockgrey_png_texture extends BitmapData { public function acsqrblockgrey_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 383
//acsqrblockred_png_texture (acsqrblockred_png_texture) package { import flash.display.*; public dynamic class acsqrblockred_png_texture extends BitmapData { public function acsqrblockred_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 384
//applause_wav (applause_wav) package { import flash.media.*; public dynamic class applause_wav extends Sound { } }//package
Section 385
//bg_1 (bg_1) package { import flash.display.*; public dynamic class bg_1 extends BitmapData { public function bg_1(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 386
//bg_2 (bg_2) package { import flash.display.*; public dynamic class bg_2 extends BitmapData { public function bg_2(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 387
//bg_3 (bg_3) package { import flash.display.*; public dynamic class bg_3 extends BitmapData { public function bg_3(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 388
//bike_bike_brake_press_01_wav (bike_bike_brake_press_01_wav) package { import flash.media.*; public dynamic class bike_bike_brake_press_01_wav extends Sound { } }//package
Section 389
//bike_body (bike_body) package { import flash.display.*; public dynamic class bike_body extends Sprite { } }//package
Section 390
//bike_motorcycle_idle_wav (bike_motorcycle_idle_wav) package { import flash.media.*; public dynamic class bike_motorcycle_idle_wav extends Sound { } }//package
Section 391
//bike_motorcycle_move_wav (bike_motorcycle_move_wav) package { import flash.media.*; public dynamic class bike_motorcycle_move_wav extends Sound { } }//package
Section 392
//bike_motorcycle_stops_wav (bike_motorcycle_stops_wav) package { import flash.media.*; public dynamic class bike_motorcycle_stops_wav extends Sound { } }//package
Section 393
//bike_speed_up_short_wav (bike_speed_up_short_wav) package { import flash.media.*; public dynamic class bike_speed_up_short_wav extends Sound { } }//package
Section 394
//bike_suspension_forks_02_wav (bike_suspension_forks_02_wav) package { import flash.media.*; public dynamic class bike_suspension_forks_02_wav extends Sound { } }//package
Section 395
//biker_arm_sprite (biker_arm_sprite) package { import flash.display.*; public dynamic class biker_arm_sprite extends Sprite { } }//package
Section 396
//biker_body_sprite (biker_body_sprite) package { import flash.display.*; public dynamic class biker_body_sprite extends Sprite { } }//package
Section 397
//biker_fore_arm_sprite (biker_fore_arm_sprite) package { import flash.display.*; public dynamic class biker_fore_arm_sprite extends Sprite { } }//package
Section 398
//biker_head_sprite (biker_head_sprite) package { import flash.display.*; public dynamic class biker_head_sprite extends Sprite { } }//package
Section 399
//biker_hip_sprite (biker_hip_sprite) package { import flash.display.*; public dynamic class biker_hip_sprite extends Sprite { } }//package
Section 400
//biker_leg_sprite (biker_leg_sprite) package { import flash.display.*; public dynamic class biker_leg_sprite extends Sprite { } }//package
Section 401
//bus_png_texture (bus_png_texture) package { import flash.display.*; public dynamic class bus_png_texture extends BitmapData { public function bus_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 402
//bush_01_png_texture (bush_01_png_texture) package { import flash.display.*; public dynamic class bush_01_png_texture extends BitmapData { public function bush_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 403
//bush_02_png_texture (bush_02_png_texture) package { import flash.display.*; public dynamic class bush_02_png_texture extends BitmapData { public function bush_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 404
//bush_03_png_texture (bush_03_png_texture) package { import flash.display.*; public dynamic class bush_03_png_texture extends BitmapData { public function bush_03_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 405
//bush_04_png_texture (bush_04_png_texture) package { import flash.display.*; public dynamic class bush_04_png_texture extends BitmapData { public function bush_04_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 406
//button_press_sfx (button_press_sfx) package { import flash.media.*; public dynamic class button_press_sfx extends Sound { } }//package
Section 407
//ButtonBackground (ButtonBackground) package { import flash.display.*; public dynamic class ButtonBackground extends Sprite { } }//package
Section 408
//car_01_png_texture (car_01_png_texture) package { import flash.display.*; public dynamic class car_01_png_texture extends BitmapData { public function car_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 409
//carcop_png_texture (carcop_png_texture) package { import flash.display.*; public dynamic class carcop_png_texture extends BitmapData { public function carcop_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 410
//carpickup_png_texture (carpickup_png_texture) package { import flash.display.*; public dynamic class carpickup_png_texture extends BitmapData { public function carpickup_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 411
//carrubbishtruck_png_texture (carrubbishtruck_png_texture) package { import flash.display.*; public dynamic class carrubbishtruck_png_texture extends BitmapData { public function carrubbishtruck_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 412
//cartaxi_png_texture (cartaxi_png_texture) package { import flash.display.*; public dynamic class cartaxi_png_texture extends BitmapData { public function cartaxi_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 413
//carvancamper_png_texture (carvancamper_png_texture) package { import flash.display.*; public dynamic class carvancamper_png_texture extends BitmapData { public function carvancamper_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 414
//carvantransit_png_texture (carvantransit_png_texture) package { import flash.display.*; public dynamic class carvantransit_png_texture extends BitmapData { public function carvantransit_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 415
//carwreck_01a_png_texture (carwreck_01a_png_texture) package { import flash.display.*; public dynamic class carwreck_01a_png_texture extends BitmapData { public function carwreck_01a_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 416
//carwreck_01b_png_texture (carwreck_01b_png_texture) package { import flash.display.*; public dynamic class carwreck_01b_png_texture extends BitmapData { public function carwreck_01b_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 417
//carwreck_02a_png_texture (carwreck_02a_png_texture) package { import flash.display.*; public dynamic class carwreck_02a_png_texture extends BitmapData { public function carwreck_02a_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 418
//carwreck_02b_png_texture (carwreck_02b_png_texture) package { import flash.display.*; public dynamic class carwreck_02b_png_texture extends BitmapData { public function carwreck_02b_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 419
//carwreck_03a_png_texture (carwreck_03a_png_texture) package { import flash.display.*; public dynamic class carwreck_03a_png_texture extends BitmapData { public function carwreck_03a_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 420
//carwreck_03b_png_texture (carwreck_03b_png_texture) package { import flash.display.*; public dynamic class carwreck_03b_png_texture extends BitmapData { public function carwreck_03b_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 421
//carvw_01_png_texture (carvw_01_png_texture) package { import flash.display.*; public dynamic class carvw_01_png_texture extends BitmapData { public function carvw_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 422
//carvw_02_png_texture (carvw_02_png_texture) package { import flash.display.*; public dynamic class carvw_02_png_texture extends BitmapData { public function carvw_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 423
//check_point_icon (check_point_icon) package { import flash.display.*; public dynamic class check_point_icon extends BitmapData { public function check_point_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 424
//checkpoint_sfx (checkpoint_sfx) package { import flash.media.*; public dynamic class checkpoint_sfx extends Sound { } }//package
Section 425
//CheckPointClip (CheckPointClip) package { import flash.display.*; public dynamic class CheckPointClip extends Sprite { } }//package
Section 426
//CheckPointFinishClip (CheckPointFinishClip) package { import flash.display.*; public dynamic class CheckPointFinishClip extends Sprite { } }//package
Section 427
//cityconcrbollard_png_texture (cityconcrbollard_png_texture) package { import flash.display.*; public dynamic class cityconcrbollard_png_texture extends BitmapData { public function cityconcrbollard_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 428
//cityconcrdividr_png_texture (cityconcrdividr_png_texture) package { import flash.display.*; public dynamic class cityconcrdividr_png_texture extends BitmapData { public function cityconcrdividr_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 429
//citygreybrickpile_png_texture (citygreybrickpile_png_texture) package { import flash.display.*; public dynamic class citygreybrickpile_png_texture extends BitmapData { public function citygreybrickpile_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 430
//citygreybrickwall_01_png_texture (citygreybrickwall_01_png_texture) package { import flash.display.*; public dynamic class citygreybrickwall_01_png_texture extends BitmapData { public function citygreybrickwall_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 431
//citygreybrickwall_02_png_texture (citygreybrickwall_02_png_texture) package { import flash.display.*; public dynamic class citygreybrickwall_02_png_texture extends BitmapData { public function citygreybrickwall_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 432
//citymetalbarrier_01_png_texture (citymetalbarrier_01_png_texture) package { import flash.display.*; public dynamic class citymetalbarrier_01_png_texture extends BitmapData { public function citymetalbarrier_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 433
//citymetalbarrier_02_png_texture (citymetalbarrier_02_png_texture) package { import flash.display.*; public dynamic class citymetalbarrier_02_png_texture extends BitmapData { public function citymetalbarrier_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 434
//citynoentrysign_png_texture (citynoentrysign_png_texture) package { import flash.display.*; public dynamic class citynoentrysign_png_texture extends BitmapData { public function citynoentrysign_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 435
//citypedlight_png_texture (citypedlight_png_texture) package { import flash.display.*; public dynamic class citypedlight_png_texture extends BitmapData { public function citypedlight_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 436
//cityredbrickwall_png_texture (cityredbrickwall_png_texture) package { import flash.display.*; public dynamic class cityredbrickwall_png_texture extends BitmapData { public function cityredbrickwall_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 437
//citytrafficbarrier_png_texture (citytrafficbarrier_png_texture) package { import flash.display.*; public dynamic class citytrafficbarrier_png_texture extends BitmapData { public function citytrafficbarrier_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 438
//citytrafficcone_01_png_texture (citytrafficcone_01_png_texture) package { import flash.display.*; public dynamic class citytrafficcone_01_png_texture extends BitmapData { public function citytrafficcone_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 439
//citytrafficcone_02_png_texture (citytrafficcone_02_png_texture) package { import flash.display.*; public dynamic class citytrafficcone_02_png_texture extends BitmapData { public function citytrafficcone_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 440
//citytrafflight_png_texture (citytrafflight_png_texture) package { import flash.display.*; public dynamic class citytrafflight_png_texture extends BitmapData { public function citytrafflight_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 441
//citywoodencrate_01_png_texture (citywoodencrate_01_png_texture) package { import flash.display.*; public dynamic class citywoodencrate_01_png_texture extends BitmapData { public function citywoodencrate_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 442
//citywoodencrate_02_png_texture (citywoodencrate_02_png_texture) package { import flash.display.*; public dynamic class citywoodencrate_02_png_texture extends BitmapData { public function citywoodencrate_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 443
//concreteblk_png_texture (concreteblk_png_texture) package { import flash.display.*; public dynamic class concreteblk_png_texture extends BitmapData { public function concreteblk_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 444
//ctryearthfill_png_texture (ctryearthfill_png_texture) package { import flash.display.*; public dynamic class ctryearthfill_png_texture extends BitmapData { public function ctryearthfill_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 445
//ctryhay_01_png_texture (ctryhay_01_png_texture) package { import flash.display.*; public dynamic class ctryhay_01_png_texture extends BitmapData { public function ctryhay_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 446
//ctryhay_02_png_texture (ctryhay_02_png_texture) package { import flash.display.*; public dynamic class ctryhay_02_png_texture extends BitmapData { public function ctryhay_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 447
//ctryhay_03_png_texture (ctryhay_03_png_texture) package { import flash.display.*; public dynamic class ctryhay_03_png_texture extends BitmapData { public function ctryhay_03_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 448
//ctryhay_04_png_texture (ctryhay_04_png_texture) package { import flash.display.*; public dynamic class ctryhay_04_png_texture extends BitmapData { public function ctryhay_04_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 449
//ctrylog_01_png_texture (ctrylog_01_png_texture) package { import flash.display.*; public dynamic class ctrylog_01_png_texture extends BitmapData { public function ctrylog_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 450
//ctrylog_02_png_texture (ctrylog_02_png_texture) package { import flash.display.*; public dynamic class ctrylog_02_png_texture extends BitmapData { public function ctrylog_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 451
//ctrylog_side_png_texture (ctrylog_side_png_texture) package { import flash.display.*; public dynamic class ctrylog_side_png_texture extends BitmapData { public function ctrylog_side_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 452
//ctrylogstmp_01_png_texture (ctrylogstmp_01_png_texture) package { import flash.display.*; public dynamic class ctrylogstmp_01_png_texture extends BitmapData { public function ctrylogstmp_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 453
//ctrylogstmp_02_png_texture (ctrylogstmp_02_png_texture) package { import flash.display.*; public dynamic class ctrylogstmp_02_png_texture extends BitmapData { public function ctrylogstmp_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 454
//ctrylogstmp_03_png_texture (ctrylogstmp_03_png_texture) package { import flash.display.*; public dynamic class ctrylogstmp_03_png_texture extends BitmapData { public function ctrylogstmp_03_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 455
//ctryramp01_png_texture (ctryramp01_png_texture) package { import flash.display.*; public dynamic class ctryramp01_png_texture extends BitmapData { public function ctryramp01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 456
//ctryramp01b_png_texture (ctryramp01b_png_texture) package { import flash.display.*; public dynamic class ctryramp01b_png_texture extends BitmapData { public function ctryramp01b_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 457
//ctryramp01mid_png_texture (ctryramp01mid_png_texture) package { import flash.display.*; public dynamic class ctryramp01mid_png_texture extends BitmapData { public function ctryramp01mid_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 458
//ctryramp01midlong_png_texture (ctryramp01midlong_png_texture) package { import flash.display.*; public dynamic class ctryramp01midlong_png_texture extends BitmapData { public function ctryramp01midlong_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 459
//ctryramp01midlongest_png_texture (ctryramp01midlongest_png_texture) package { import flash.display.*; public dynamic class ctryramp01midlongest_png_texture extends BitmapData { public function ctryramp01midlongest_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 460
//ctryramp01midmed_png_texture (ctryramp01midmed_png_texture) package { import flash.display.*; public dynamic class ctryramp01midmed_png_texture extends BitmapData { public function ctryramp01midmed_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 461
//ctryramp02_png_texture (ctryramp02_png_texture) package { import flash.display.*; public dynamic class ctryramp02_png_texture extends BitmapData { public function ctryramp02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 462
//ctryramp02b_png_texture (ctryramp02b_png_texture) package { import flash.display.*; public dynamic class ctryramp02b_png_texture extends BitmapData { public function ctryramp02b_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 463
//ctryramp02mid_png_texture (ctryramp02mid_png_texture) package { import flash.display.*; public dynamic class ctryramp02mid_png_texture extends BitmapData { public function ctryramp02mid_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 464
//ctrystonesgrnd_png_texture (ctrystonesgrnd_png_texture) package { import flash.display.*; public dynamic class ctrystonesgrnd_png_texture extends BitmapData { public function ctrystonesgrnd_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 465
//ctrystonewall_01_png_texture (ctrystonewall_01_png_texture) package { import flash.display.*; public dynamic class ctrystonewall_01_png_texture extends BitmapData { public function ctrystonewall_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 466
//ctrystonewall_02_png_texture (ctrystonewall_02_png_texture) package { import flash.display.*; public dynamic class ctrystonewall_02_png_texture extends BitmapData { public function ctrystonewall_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 467
//ctrytractor_png_texture (ctrytractor_png_texture) package { import flash.display.*; public dynamic class ctrytractor_png_texture extends BitmapData { public function ctrytractor_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 468
//ctrywoodfence_01_png_texture (ctrywoodfence_01_png_texture) package { import flash.display.*; public dynamic class ctrywoodfence_01_png_texture extends BitmapData { public function ctrywoodfence_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 469
//ctrywoodfence_02_png_texture (ctrywoodfence_02_png_texture) package { import flash.display.*; public dynamic class ctrywoodfence_02_png_texture extends BitmapData { public function ctrywoodfence_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 470
//directnarrow_png_texture (directnarrow_png_texture) package { import flash.display.*; public dynamic class directnarrow_png_texture extends BitmapData { public function directnarrow_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 471
//directnramp_png_texture (directnramp_png_texture) package { import flash.display.*; public dynamic class directnramp_png_texture extends BitmapData { public function directnramp_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 472
//distance_joint_icon (distance_joint_icon) package { import flash.display.*; public dynamic class distance_joint_icon extends BitmapData { public function distance_joint_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 473
//DistanceJointHandle (DistanceJointHandle) package { import flash.display.*; public dynamic class DistanceJointHandle extends Sprite { } }//package
Section 474
//EditorHelpPages (EditorHelpPages) package { import flash.display.*; public dynamic class EditorHelpPages extends MovieClip { } }//package
Section 475
//empty_icon (empty_icon) package { import flash.display.*; public dynamic class empty_icon extends BitmapData { public function empty_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 476
//exit_icon (exit_icon) package { import flash.display.*; public dynamic class exit_icon extends BitmapData { public function exit_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 477
//Font_1 (Font_1) package { import flash.text.*; public dynamic class Font_1 extends Font { } }//package
Section 478
//Font_2 (Font_2) package { import flash.text.*; public dynamic class Font_2 extends Font { } }//package
Section 479
//front_fork (front_fork) package { import flash.display.*; public dynamic class front_fork extends Sprite { } }//package
Section 480
//front_wheel_1 (front_wheel_1) package { import flash.display.*; public dynamic class front_wheel_1 extends Sprite { } }//package
Section 481
//GameWonBackground (GameWonBackground) package { import flash.display.*; public dynamic class GameWonBackground extends Sprite { } }//package
Section 482
//glass_png_texture (glass_png_texture) package { import flash.display.*; public dynamic class glass_png_texture extends BitmapData { public function glass_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 483
//help_icon (help_icon) package { import flash.display.*; public dynamic class help_icon extends BitmapData { public function help_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 484
//instrctn_accler_png_texture (instrctn_accler_png_texture) package { import flash.display.*; public dynamic class instrctn_accler_png_texture extends BitmapData { public function instrctn_accler_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 485
//instrctn_bhop_png_texture (instrctn_bhop_png_texture) package { import flash.display.*; public dynamic class instrctn_bhop_png_texture extends BitmapData { public function instrctn_bhop_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 486
//instrctn_brakehard_png_texture (instrctn_brakehard_png_texture) package { import flash.display.*; public dynamic class instrctn_brakehard_png_texture extends BitmapData { public function instrctn_brakehard_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 487
//instrctn_chkpoint_png_texture (instrctn_chkpoint_png_texture) package { import flash.display.*; public dynamic class instrctn_chkpoint_png_texture extends BitmapData { public function instrctn_chkpoint_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 488
//instrctn_jump_png_texture (instrctn_jump_png_texture) package { import flash.display.*; public dynamic class instrctn_jump_png_texture extends BitmapData { public function instrctn_jump_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 489
//instrctn_leanforward_png_texture (instrctn_leanforward_png_texture) package { import flash.display.*; public dynamic class instrctn_leanforward_png_texture extends BitmapData { public function instrctn_leanforward_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 490
//instrctn_nitro_png_texture (instrctn_nitro_png_texture) package { import flash.display.*; public dynamic class instrctn_nitro_png_texture extends BitmapData { public function instrctn_nitro_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 491
//instrctn_rampjump_png_texture (instrctn_rampjump_png_texture) package { import flash.display.*; public dynamic class instrctn_rampjump_png_texture extends BitmapData { public function instrctn_rampjump_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 492
//instrctn_restart_png_texture (instrctn_restart_png_texture) package { import flash.display.*; public dynamic class instrctn_restart_png_texture extends BitmapData { public function instrctn_restart_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 493
//instrctn_revers_png_texture (instrctn_revers_png_texture) package { import flash.display.*; public dynamic class instrctn_revers_png_texture extends BitmapData { public function instrctn_revers_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 494
//instrctn_stunts_png_texture (instrctn_stunts_png_texture) package { import flash.display.*; public dynamic class instrctn_stunts_png_texture extends BitmapData { public function instrctn_stunts_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 495
//instrctn_wheelie_png_texture (instrctn_wheelie_png_texture) package { import flash.display.*; public dynamic class instrctn_wheelie_png_texture extends BitmapData { public function instrctn_wheelie_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 496
//instrctn_wheeliejumps_png_texture (instrctn_wheeliejumps_png_texture) package { import flash.display.*; public dynamic class instrctn_wheeliejumps_png_texture extends BitmapData { public function instrctn_wheeliejumps_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 497
//InstructionsBackground (InstructionsBackground) package { import flash.display.*; public dynamic class InstructionsBackground extends Sprite { } }//package
Section 498
//LevelButtonIcon (LevelButtonIcon) package { import flash.display.*; public dynamic class LevelButtonIcon extends Sprite { } }//package
Section 499
//LevelButtonLockedIcon (LevelButtonLockedIcon) package { import flash.display.*; public dynamic class LevelButtonLockedIcon extends Sprite { } }//package
Section 500
//LevelLostBackground (LevelLostBackground) package { import flash.display.*; public dynamic class LevelLostBackground extends Sprite { } }//package
Section 501
//LevelWonBackground (LevelWonBackground) package { import flash.display.*; public dynamic class LevelWonBackground extends Sprite { } }//package
Section 502
//nitro_icon (nitro_icon) package { import flash.display.*; public dynamic class nitro_icon extends BitmapData { public function nitro_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 503
//nitro_indicator (nitro_indicator) package { import flash.display.*; public dynamic class nitro_indicator extends Sprite { } }//package
Section 504
//nitro_sfx (nitro_sfx) package { import flash.media.*; public dynamic class nitro_sfx extends Sound { } }//package
Section 505
//NitroClip (NitroClip) package { import flash.display.*; public dynamic class NitroClip extends Sprite { } }//package
Section 506
//rear_fork (rear_fork) package { import flash.display.*; public dynamic class rear_fork extends Sprite { } }//package
Section 507
//rear_wheel_1 (rear_wheel_1) package { import flash.display.*; public dynamic class rear_wheel_1 extends Sprite { } }//package
Section 508
//revolute_joint_icon (revolute_joint_icon) package { import flash.display.*; public dynamic class revolute_joint_icon extends BitmapData { public function revolute_joint_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 509
//RevoluteJointHandle (RevoluteJointHandle) package { import flash.display.*; public dynamic class RevoluteJointHandle extends Sprite { } }//package
Section 510
//roadworksbarrier_01_png_texture (roadworksbarrier_01_png_texture) package { import flash.display.*; public dynamic class roadworksbarrier_01_png_texture extends BitmapData { public function roadworksbarrier_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 511
//roadworksbarrier_02_png_texture (roadworksbarrier_02_png_texture) package { import flash.display.*; public dynamic class roadworksbarrier_02_png_texture extends BitmapData { public function roadworksbarrier_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 512
//rock_01_png_texture (rock_01_png_texture) package { import flash.display.*; public dynamic class rock_01_png_texture extends BitmapData { public function rock_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 513
//rock_02_png_texture (rock_02_png_texture) package { import flash.display.*; public dynamic class rock_02_png_texture extends BitmapData { public function rock_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 514
//rock_03_png_texture (rock_03_png_texture) package { import flash.display.*; public dynamic class rock_03_png_texture extends BitmapData { public function rock_03_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 515
//rock_04_png_texture (rock_04_png_texture) package { import flash.display.*; public dynamic class rock_04_png_texture extends BitmapData { public function rock_04_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 516
//rock_05_png_texture (rock_05_png_texture) package { import flash.display.*; public dynamic class rock_05_png_texture extends BitmapData { public function rock_05_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 517
//rock_06_png_texture (rock_06_png_texture) package { import flash.display.*; public dynamic class rock_06_png_texture extends BitmapData { public function rock_06_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 518
//rock_07_png_texture (rock_07_png_texture) package { import flash.display.*; public dynamic class rock_07_png_texture extends BitmapData { public function rock_07_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 519
//rock_08_png_texture (rock_08_png_texture) package { import flash.display.*; public dynamic class rock_08_png_texture extends BitmapData { public function rock_08_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 520
//rock_09_png_texture (rock_09_png_texture) package { import flash.display.*; public dynamic class rock_09_png_texture extends BitmapData { public function rock_09_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 521
//rock_10_png_texture (rock_10_png_texture) package { import flash.display.*; public dynamic class rock_10_png_texture extends BitmapData { public function rock_10_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 522
//rock_11_png_texture (rock_11_png_texture) package { import flash.display.*; public dynamic class rock_11_png_texture extends BitmapData { public function rock_11_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 523
//rock_12_png_texture (rock_12_png_texture) package { import flash.display.*; public dynamic class rock_12_png_texture extends BitmapData { public function rock_12_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 524
//rockbldr_01_png_texture (rockbldr_01_png_texture) package { import flash.display.*; public dynamic class rockbldr_01_png_texture extends BitmapData { public function rockbldr_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 525
//rockbldr_02_png_texture (rockbldr_02_png_texture) package { import flash.display.*; public dynamic class rockbldr_02_png_texture extends BitmapData { public function rockbldr_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 526
//rockbldr_03_png_texture (rockbldr_03_png_texture) package { import flash.display.*; public dynamic class rockbldr_03_png_texture extends BitmapData { public function rockbldr_03_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 527
//rockbldr_04_png_texture (rockbldr_04_png_texture) package { import flash.display.*; public dynamic class rockbldr_04_png_texture extends BitmapData { public function rockbldr_04_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 528
//rockbldr_05_png_texture (rockbldr_05_png_texture) package { import flash.display.*; public dynamic class rockbldr_05_png_texture extends BitmapData { public function rockbldr_05_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 529
//rockbldr_06_png_texture (rockbldr_06_png_texture) package { import flash.display.*; public dynamic class rockbldr_06_png_texture extends BitmapData { public function rockbldr_06_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 530
//rockbldr_07_png_texture (rockbldr_07_png_texture) package { import flash.display.*; public dynamic class rockbldr_07_png_texture extends BitmapData { public function rockbldr_07_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 531
//RotationTransformSkin (RotationTransformSkin) package { import flash.display.*; public dynamic class RotationTransformSkin extends Sprite { } }//package
Section 532
//sandpile_01_png_texture (sandpile_01_png_texture) package { import flash.display.*; public dynamic class sandpile_01_png_texture extends BitmapData { public function sandpile_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 533
//sandpile_02_png_texture (sandpile_02_png_texture) package { import flash.display.*; public dynamic class sandpile_02_png_texture extends BitmapData { public function sandpile_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 534
//sandpile_03_png_texture (sandpile_03_png_texture) package { import flash.display.*; public dynamic class sandpile_03_png_texture extends BitmapData { public function sandpile_03_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 535
//scaffold_01_png_texture (scaffold_01_png_texture) package { import flash.display.*; public dynamic class scaffold_01_png_texture extends BitmapData { public function scaffold_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 536
//scaffold_02_png_texture (scaffold_02_png_texture) package { import flash.display.*; public dynamic class scaffold_02_png_texture extends BitmapData { public function scaffold_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 537
//signslow_png_texture (signslow_png_texture) package { import flash.display.*; public dynamic class signslow_png_texture extends BitmapData { public function signslow_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 538
//SplashScreenBackground (SplashScreenBackground) package { import flash.display.*; public dynamic class SplashScreenBackground extends Sprite { } }//package
Section 539
//steamroller_png_texture (steamroller_png_texture) package { import flash.display.*; public dynamic class steamroller_png_texture extends BitmapData { public function steamroller_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 540
//steeldrum_01side_png_texture (steeldrum_01side_png_texture) package { import flash.display.*; public dynamic class steeldrum_01side_png_texture extends BitmapData { public function steeldrum_01side_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 541
//steeldrum_01up_png_texture (steeldrum_01up_png_texture) package { import flash.display.*; public dynamic class steeldrum_01up_png_texture extends BitmapData { public function steeldrum_01up_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 542
//steeldrum_02side_png_texture (steeldrum_02side_png_texture) package { import flash.display.*; public dynamic class steeldrum_02side_png_texture extends BitmapData { public function steeldrum_02side_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 543
//steeldrum_02up_png_texture (steeldrum_02up_png_texture) package { import flash.display.*; public dynamic class steeldrum_02up_png_texture extends BitmapData { public function steeldrum_02up_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 544
//steelgirder_01_png_texture (steelgirder_01_png_texture) package { import flash.display.*; public dynamic class steelgirder_01_png_texture extends BitmapData { public function steelgirder_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 545
//steelgirder_02_png_texture (steelgirder_02_png_texture) package { import flash.display.*; public dynamic class steelgirder_02_png_texture extends BitmapData { public function steelgirder_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 546
//test_icon (test_icon) package { import flash.display.*; public dynamic class test_icon extends BitmapData { public function test_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 547
//transform_icon (transform_icon) package { import flash.display.*; public dynamic class transform_icon extends BitmapData { public function transform_icon(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 548
//TwoDPlayButtonIcon (TwoDPlayButtonIcon) package { import flash.display.*; public dynamic class TwoDPlayButtonIcon extends Sprite { } }//package
Section 549
//vo_apprec_ohhh_wav (vo_apprec_ohhh_wav) package { import flash.media.*; public dynamic class vo_apprec_ohhh_wav extends Sound { } }//package
Section 550
//vo_apprec_ohyeah_wav (vo_apprec_ohyeah_wav) package { import flash.media.*; public dynamic class vo_apprec_ohyeah_wav extends Sound { } }//package
Section 551
//vo_apprec_woo_wav (vo_apprec_woo_wav) package { import flash.media.*; public dynamic class vo_apprec_woo_wav extends Sound { } }//package
Section 552
//vo_grnt01_wav (vo_grnt01_wav) package { import flash.media.*; public dynamic class vo_grnt01_wav extends Sound { } }//package
Section 553
//vo_grnt02_wav (vo_grnt02_wav) package { import flash.media.*; public dynamic class vo_grnt02_wav extends Sound { } }//package
Section 554
//vo_grnt03_wav (vo_grnt03_wav) package { import flash.media.*; public dynamic class vo_grnt03_wav extends Sound { } }//package
Section 555
//vo_grnt04_wav (vo_grnt04_wav) package { import flash.media.*; public dynamic class vo_grnt04_wav extends Sound { } }//package
Section 556
//vo_hurt_ooothatcant_wav (vo_hurt_ooothatcant_wav) package { import flash.media.*; public dynamic class vo_hurt_ooothatcant_wav extends Sound { } }//package
Section 557
//vo_nitro_do_it_wav (vo_nitro_do_it_wav) package { import flash.media.*; public dynamic class vo_nitro_do_it_wav extends Sound { } }//package
Section 558
//vo_precrash_uhoh_wav (vo_precrash_uhoh_wav) package { import flash.media.*; public dynamic class vo_precrash_uhoh_wav extends Sound { } }//package
Section 559
//vo_precrash_youdead_wav (vo_precrash_youdead_wav) package { import flash.media.*; public dynamic class vo_precrash_youdead_wav extends Sound { } }//package
Section 560
//vo_start_okherewego_wav (vo_start_okherewego_wav) package { import flash.media.*; public dynamic class vo_start_okherewego_wav extends Sound { } }//package
Section 561
//woodbarrel_01side_png_texture (woodbarrel_01side_png_texture) package { import flash.display.*; public dynamic class woodbarrel_01side_png_texture extends BitmapData { public function woodbarrel_01side_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 562
//woodbarrel_01up_png_texture (woodbarrel_01up_png_texture) package { import flash.display.*; public dynamic class woodbarrel_01up_png_texture extends BitmapData { public function woodbarrel_01up_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 563
//woodplank_01_png_texture (woodplank_01_png_texture) package { import flash.display.*; public dynamic class woodplank_01_png_texture extends BitmapData { public function woodplank_01_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 564
//woodplank_02_png_texture (woodplank_02_png_texture) package { import flash.display.*; public dynamic class woodplank_02_png_texture extends BitmapData { public function woodplank_02_png_texture(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package

Library Items

Symbol 1 ShapeTweeningUsed by:75
Symbol 2 GraphicUsed by:75
Symbol 3 SoundUsed by:75
Symbol 4 GraphicUsed by:75
Symbol 5 GraphicUsed by:75
Symbol 6 GraphicUsed by:75
Symbol 7 GraphicUsed by:75
Symbol 8 GraphicUsed by:75
Symbol 9 GraphicUsed by:75
Symbol 10 GraphicUsed by:75
Symbol 11 GraphicUsed by:75
Symbol 12 GraphicUsed by:75
Symbol 13 GraphicUsed by:75
Symbol 14 GraphicUsed by:75
Symbol 15 GraphicUsed by:75
Symbol 16 GraphicUsed by:75
Symbol 17 GraphicUsed by:75
Symbol 18 GraphicUsed by:75
Symbol 19 GraphicUsed by:75
Symbol 20 GraphicUsed by:75
Symbol 21 GraphicUsed by:75
Symbol 22 GraphicUsed by:75
Symbol 23 GraphicUsed by:75
Symbol 24 GraphicUsed by:75
Symbol 25 GraphicUsed by:75
Symbol 26 GraphicUsed by:75
Symbol 27 GraphicUsed by:75
Symbol 28 GraphicUsed by:75
Symbol 29 GraphicUsed by:75
Symbol 30 GraphicUsed by:75
Symbol 31 GraphicUsed by:75
Symbol 32 GraphicUsed by:75
Symbol 33 GraphicUsed by:75
Symbol 34 GraphicUsed by:75
Symbol 35 GraphicUsed by:75
Symbol 36 GraphicUsed by:75
Symbol 37 GraphicUsed by:75
Symbol 38 GraphicUsed by:75
Symbol 39 GraphicUsed by:75
Symbol 40 GraphicUsed by:75
Symbol 41 GraphicUsed by:75
Symbol 42 GraphicUsed by:75
Symbol 43 GraphicUsed by:75
Symbol 44 GraphicUsed by:75
Symbol 45 GraphicUsed by:75
Symbol 46 GraphicUsed by:75
Symbol 47 GraphicUsed by:75
Symbol 48 GraphicUsed by:75
Symbol 49 GraphicUsed by:75
Symbol 50 GraphicUsed by:75
Symbol 51 GraphicUsed by:75
Symbol 52 GraphicUsed by:75
Symbol 53 GraphicUsed by:75
Symbol 54 GraphicUsed by:75
Symbol 55 GraphicUsed by:75
Symbol 56 GraphicUsed by:75
Symbol 57 GraphicUsed by:75
Symbol 58 GraphicUsed by:75
Symbol 59 SoundUsed by:75
Symbol 60 GraphicUsed by:75
Symbol 61 GraphicUsed by:75
Symbol 62 ShapeTweeningUsed by:75
Symbol 63 GraphicUsed by:75
Symbol 64 GraphicUsed by:75
Symbol 65 SoundUsed by:75
Symbol 66 GraphicUsed by:75
Symbol 67 SoundUsed by:75
Symbol 68 GraphicUsed by:75
Symbol 69 GraphicUsed by:75
Symbol 70 GraphicUsed by:75
Symbol 71 GraphicUsed by:75
Symbol 72 GraphicUsed by:75
Symbol 73 SoundUsed by:75
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74Used by:82
Symbol 76 GraphicUsed by:81
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:77Used by:81
Symbol 79 GraphicUsed by:81
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClip {Preloader_2DPlay_fla.preloader_progress_bar_4} [Preloader_2DPlay_fla.preloader_progress_bar_4]Uses:76 78 79 80Used by:82
Symbol 82 MovieClip {Preloader_2DPlay_fla.logo_2} [Preloader_2DPlay_fla.logo_2]Uses:75 81Used by:83
Symbol 83 MovieClip {com.bigwigmedia.preloaders.Preloader_2DPlay} [com.bigwigmedia.preloaders.Preloader_2DPlay]Uses:82
Symbol 84 Bitmap {instrctn_accler_png_texture} [instrctn_accler_png_texture]
Symbol 85 Bitmap {ctrytractor_png_texture} [ctrytractor_png_texture]
Symbol 86 BitmapUsed by:87
Symbol 87 GraphicUses:86Used by:88
Symbol 88 MovieClip {CheckPointClip} [CheckPointClip]Uses:87
Symbol 89 Bitmap {acconcrblock_03_png_texture} [acconcrblock_03_png_texture]
Symbol 90 Bitmap {bush_01_png_texture} [bush_01_png_texture]
Symbol 91 Bitmap {citypedlight_png_texture} [citypedlight_png_texture]
Symbol 92 BitmapUsed by:93
Symbol 93 GraphicUses:92Used by:94
Symbol 94 MovieClip {biker_hip_sprite} [biker_hip_sprite]Uses:93
Symbol 95 Bitmap {rock_07_png_texture} [rock_07_png_texture]
Symbol 96 Bitmap {ctrylog_01_png_texture} [ctrylog_01_png_texture]
Symbol 97 Bitmap {instrctn_brakehard_png_texture} [instrctn_brakehard_png_texture]
Symbol 98 Bitmap {acconcrblock_01up_png_texture} [acconcrblock_01up_png_texture]
Symbol 99 BitmapUsed by:100
Symbol 100 GraphicUses:99Used by:101
Symbol 101 MovieClip {biker_body_sprite} [biker_body_sprite]Uses:100
Symbol 102 Font {Font_1} [Font_1]
Symbol 103 Bitmap {nitro_icon} [nitro_icon]
Symbol 104 Bitmap {citytrafflight_png_texture} [citytrafflight_png_texture]
Symbol 105 Bitmap {rock_02_png_texture} [rock_02_png_texture]
Symbol 106 Font {Font_2} [Font_2]
Symbol 107 Bitmap {rock_12_png_texture} [rock_12_png_texture]
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:110
Symbol 110 MovieClip {LevelWonBackground} [LevelWonBackground]Uses:109
Symbol 111 Bitmap {instrctn_wheelie_png_texture} [instrctn_wheelie_png_texture]
Symbol 112 Bitmap {acbigball_png_texture} [acbigball_png_texture]
Symbol 113 Bitmap {citytrafficbarrier_png_texture} [citytrafficbarrier_png_texture]
Symbol 114 Bitmap {carwreck_02a_png_texture} [carwreck_02a_png_texture]
Symbol 115 Bitmap {test_icon} [test_icon]
Symbol 116 Bitmap {carvw_02_png_texture} [carvw_02_png_texture]
Symbol 117 BitmapUsed by:118
Symbol 118 GraphicUses:117Used by:119
Symbol 119 MovieClip {LevelLostBackground} [LevelLostBackground]Uses:118
Symbol 120 Bitmap {rockbldr_04_png_texture} [rockbldr_04_png_texture]
Symbol 121 Bitmap {car_01_png_texture} [car_01_png_texture]
Symbol 122 Bitmap {ctryhay_04_png_texture} [ctryhay_04_png_texture]
Symbol 123 Bitmap {ctryearthfill_png_texture} [ctryearthfill_png_texture]
Symbol 124 Bitmap {steeldrum_02up_png_texture} [steeldrum_02up_png_texture]
Symbol 125 Bitmap {citymetalbarrier_01_png_texture} [citymetalbarrier_01_png_texture]
Symbol 126 Bitmap {cityredbrickwall_png_texture} [cityredbrickwall_png_texture]
Symbol 127 Bitmap {acramp02curveb_png_texture} [acramp02curveb_png_texture]
Symbol 128 Bitmap {exit_icon} [exit_icon]
Symbol 129 Bitmap {woodbarrel_01side_png_texture} [woodbarrel_01side_png_texture]
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClip {TwoDPlayButtonIcon} [TwoDPlayButtonIcon]Uses:130
Symbol 132 Bitmap {signslow_png_texture} [signslow_png_texture]
Symbol 133 Bitmap {rock_03_png_texture} [rock_03_png_texture]
Symbol 134 Bitmap {ctryhay_03_png_texture} [ctryhay_03_png_texture]
Symbol 135 Bitmap {carwreck_03a_png_texture} [carwreck_03a_png_texture]
Symbol 136 BitmapUsed by:137
Symbol 137 GraphicUses:136Used by:138
Symbol 138 MovieClip {NitroClip} [NitroClip]Uses:137Used by:296
Symbol 139 Bitmap {acsqrblockred_png_texture} [acsqrblockred_png_texture]
Symbol 140 Bitmap {acconcrblock_04_png_texture} [acconcrblock_04_png_texture]
Symbol 141 BitmapUsed by:142
Symbol 142 GraphicUses:141Used by:173
Symbol 143 BitmapUsed by:144
Symbol 144 GraphicUses:143Used by:173
Symbol 145 BitmapUsed by:146
Symbol 146 GraphicUses:145Used by:173
Symbol 147 BitmapUsed by:148
Symbol 148 GraphicUses:147Used by:173
Symbol 149 BitmapUsed by:150
Symbol 150 GraphicUses:149Used by:173
Symbol 151 BitmapUsed by:152
Symbol 152 GraphicUses:151Used by:173
Symbol 153 BitmapUsed by:154
Symbol 154 GraphicUses:153Used by:173
Symbol 155 BitmapUsed by:156
Symbol 156 GraphicUses:155Used by:173
Symbol 157 BitmapUsed by:158
Symbol 158 GraphicUses:157Used by:173
Symbol 159 BitmapUsed by:160
Symbol 160 GraphicUses:159Used by:173
Symbol 161 BitmapUsed by:162
Symbol 162 GraphicUses:161Used by:173
Symbol 163 BitmapUsed by:164
Symbol 164 GraphicUses:163Used by:173
Symbol 165 BitmapUsed by:166
Symbol 166 GraphicUses:165Used by:173
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:173
Symbol 169 BitmapUsed by:170
Symbol 170 GraphicUses:169Used by:173
Symbol 171 BitmapUsed by:172
Symbol 172 GraphicUses:171Used by:173
Symbol 173 MovieClip {EditorHelpPages} [EditorHelpPages]Uses:142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172
Symbol 174 Bitmap {rock_08_png_texture} [rock_08_png_texture]
Symbol 175 Bitmap {roadworksbarrier_02_png_texture} [roadworksbarrier_02_png_texture]
Symbol 176 Bitmap {woodplank_01_png_texture} [woodplank_01_png_texture]
Symbol 177 BitmapUsed by:178
Symbol 178 GraphicUses:177Used by:179
Symbol 179 MovieClip {rear_fork} [rear_fork]Uses:178
Symbol 180 Bitmap {ctryramp01mid_png_texture} [ctryramp01mid_png_texture]
Symbol 181 Bitmap {ctrywoodfence_02_png_texture} [ctrywoodfence_02_png_texture]
Symbol 182 Bitmap {acramp04_png_texture} [acramp04_png_texture]
Symbol 183 Bitmap {acsqrblockblue_png_texture} [acsqrblockblue_png_texture]
Symbol 184 Bitmap {cityconcrbollard_png_texture} [cityconcrbollard_png_texture]
Symbol 185 Bitmap {citygreybrickpile_png_texture} [citygreybrickpile_png_texture]
Symbol 186 Bitmap {distance_joint_icon} [distance_joint_icon]
Symbol 187 Bitmap {empty_icon} [empty_icon]
Symbol 188 Bitmap {instrctn_revers_png_texture} [instrctn_revers_png_texture]
Symbol 189 Bitmap {ctryramp02mid_png_texture} [ctryramp02mid_png_texture]
Symbol 190 Bitmap {steeldrum_01up_png_texture} [steeldrum_01up_png_texture]
Symbol 191 Bitmap {citywoodencrate_01_png_texture} [citywoodencrate_01_png_texture]
Symbol 192 Bitmap {instrctn_stunts_png_texture} [instrctn_stunts_png_texture]
Symbol 193 Bitmap {help_icon} [help_icon]
Symbol 194 BitmapUsed by:195
Symbol 195 GraphicUses:194Used by:196
Symbol 196 MovieClip {biker_head_sprite} [biker_head_sprite]Uses:195
Symbol 197 Bitmap {carvantransit_png_texture} [carvantransit_png_texture]
Symbol 198 Bitmap {ctrystonewall_01_png_texture} [ctrystonewall_01_png_texture]
Symbol 199 Bitmap {roadworksbarrier_01_png_texture} [roadworksbarrier_01_png_texture]
Symbol 200 BitmapUsed by:201
Symbol 201 GraphicUses:200Used by:202
Symbol 202 MovieClip {GameWonBackground} [GameWonBackground]Uses:201
Symbol 203 Bitmap {rockbldr_01_png_texture} [rockbldr_01_png_texture]
Symbol 204 Bitmap {rock_04_png_texture} [rock_04_png_texture]
Symbol 205 Bitmap {acramp02curve_png_texture} [acramp02curve_png_texture]
Symbol 206 Bitmap {instrctn_wheeliejumps_png_texture} [instrctn_wheeliejumps_png_texture]
Symbol 207 Bitmap {acsqrblockgrey_png_texture} [acsqrblockgrey_png_texture]
Symbol 208 Bitmap {ctryramp01midlong_png_texture} [ctryramp01midlong_png_texture]
Symbol 209 Bitmap {cartaxi_png_texture} [cartaxi_png_texture]
Symbol 210 Bitmap {carwreck_03b_png_texture} [carwreck_03b_png_texture]
Symbol 211 Bitmap {revolute_joint_icon} [revolute_joint_icon]
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClip {RevoluteJointHandle} [RevoluteJointHandle]Uses:212
Symbol 214 Bitmap {ctryramp02_png_texture} [ctryramp02_png_texture]
Symbol 215 BitmapUsed by:217
Symbol 216 BitmapUsed by:217 224
Symbol 217 GraphicUses:215 216Used by:218
Symbol 218 MovieClip {LevelButtonLockedIcon} [LevelButtonLockedIcon]Uses:217
Symbol 219 Bitmap {carwreck_02b_png_texture} [carwreck_02b_png_texture]
Symbol 220 Bitmap {rockbldr_03_png_texture} [rockbldr_03_png_texture]
Symbol 221 Bitmap {citytrafficcone_02_png_texture} [citytrafficcone_02_png_texture]
Symbol 222 Bitmap {cityconcrdividr_png_texture} [cityconcrdividr_png_texture]
Symbol 223 Bitmap {sandpile_03_png_texture} [sandpile_03_png_texture]
Symbol 224 GraphicUses:216Used by:225
Symbol 225 MovieClip {LevelButtonIcon} [LevelButtonIcon]Uses:224
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClip {RotationTransformSkin} [RotationTransformSkin]Uses:226
Symbol 228 BitmapUsed by:229
Symbol 229 GraphicUses:228Used by:230
Symbol 230 MovieClip {ButtonBackground} [ButtonBackground]Uses:229
Symbol 231 Bitmap {scaffold_02_png_texture} [scaffold_02_png_texture]
Symbol 232 Bitmap {concreteblk_png_texture} [concreteblk_png_texture]
Symbol 233 Bitmap {steeldrum_01side_png_texture} [steeldrum_01side_png_texture]
Symbol 234 Bitmap {bus_png_texture} [bus_png_texture]
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:237
Symbol 237 MovieClip {biker_fore_arm_sprite} [biker_fore_arm_sprite]Uses:236
Symbol 238 Bitmap {steelgirder_02_png_texture} [steelgirder_02_png_texture]
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:241
Symbol 241 MovieClip {biker_arm_sprite} [biker_arm_sprite]Uses:240
Symbol 242 Bitmap {rockbldr_07_png_texture} [rockbldr_07_png_texture]
Symbol 243 Bitmap {acramp03b_png_texture} [acramp03b_png_texture]
Symbol 244 Bitmap {woodbarrel_01up_png_texture} [woodbarrel_01up_png_texture]
Symbol 245 BitmapUsed by:246
Symbol 246 GraphicUses:245Used by:247
Symbol 247 MovieClip {bike_body} [bike_body]Uses:246
Symbol 248 Bitmap {rock_05_png_texture} [rock_05_png_texture]
Symbol 249 Bitmap {acconcrblock_02_png_texture} [acconcrblock_02_png_texture]
Symbol 250 Bitmap {bush_02_png_texture} [bush_02_png_texture]
Symbol 251 BitmapUsed by:252 293
Symbol 252 GraphicUses:251Used by:253
Symbol 253 MovieClip {rear_wheel_1} [rear_wheel_1]Uses:252
Symbol 254 Bitmap {ctryhay_02_png_texture} [ctryhay_02_png_texture]
Symbol 255 Bitmap {instrctn_nitro_png_texture} [instrctn_nitro_png_texture]
Symbol 256 Bitmap {directnramp_png_texture} [directnramp_png_texture]
Symbol 257 Bitmap {glass_png_texture} [glass_png_texture]
Symbol 258 BitmapUsed by:259
Symbol 259 GraphicUses:258Used by:260
Symbol 260 MovieClip {CheckPointFinishClip} [CheckPointFinishClip]Uses:259
Symbol 261 Bitmap {transform_icon} [transform_icon]
Symbol 262 Bitmap {ctryramp01midmed_png_texture} [ctryramp01midmed_png_texture]
Symbol 263 Bitmap {rock_11_png_texture} [rock_11_png_texture]
Symbol 264 Bitmap {instrctn_chkpoint_png_texture} [instrctn_chkpoint_png_texture]
Symbol 265 Bitmap {ctrystonewall_02_png_texture} [ctrystonewall_02_png_texture]
Symbol 266 Bitmap {achoop_png_texture} [achoop_png_texture]
Symbol 267 Bitmap {rockbldr_05_png_texture} [rockbldr_05_png_texture]
Symbol 268 Bitmap {check_point_icon} [check_point_icon]
Symbol 269 Bitmap {instrctn_rampjump_png_texture} [instrctn_rampjump_png_texture]
Symbol 270 BitmapUsed by:271
Symbol 271 GraphicUses:270Used by:272
Symbol 272 MovieClip {front_fork} [front_fork]Uses:271
Symbol 273 Bitmap {ctryramp02b_png_texture} [ctryramp02b_png_texture]
Symbol 274 Bitmap {instrctn_restart_png_texture} [instrctn_restart_png_texture]
Symbol 275 Bitmap {acramp01_png_texture} [acramp01_png_texture]
Symbol 276 Bitmap {carvancamper_png_texture} [carvancamper_png_texture]
Symbol 277 Bitmap {bush_03_png_texture} [bush_03_png_texture]
Symbol 278 Bitmap {instrctn_bhop_png_texture} [instrctn_bhop_png_texture]
Symbol 279 Bitmap {steelgirder_01_png_texture} [steelgirder_01_png_texture]
Symbol 280 BitmapUsed by:281
Symbol 281 GraphicUses:280Used by:282
Symbol 282 MovieClip {SplashScreenBackground} [SplashScreenBackground]Uses:281
Symbol 283 Bitmap {rock_09_png_texture} [rock_09_png_texture]
Symbol 284 Bitmap {rockbldr_02_png_texture} [rockbldr_02_png_texture]
Symbol 285 Bitmap {directnarrow_png_texture} [directnarrow_png_texture]
Symbol 286 Bitmap {instrctn_leanforward_png_texture} [instrctn_leanforward_png_texture]
Symbol 287 Bitmap {rock_01_png_texture} [rock_01_png_texture]
Symbol 288 Bitmap {citygreybrickwall_02_png_texture} [citygreybrickwall_02_png_texture]
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:291
Symbol 291 MovieClip {InstructionsBackground} [InstructionsBackground]Uses:290
Symbol 292 Bitmap {ctrystonesgrnd_png_texture} [ctrystonesgrnd_png_texture]
Symbol 293 GraphicUses:251Used by:294
Symbol 294 MovieClip {front_wheel_1} [front_wheel_1]Uses:293
Symbol 295 Bitmap {scaffold_01_png_texture} [scaffold_01_png_texture]
Symbol 296 MovieClip {nitro_indicator} [nitro_indicator]Uses:138
Symbol 297 Bitmap {ctryramp01b_png_texture} [ctryramp01b_png_texture]
Symbol 298 Bitmap {acramp03_png_texture} [acramp03_png_texture]
Symbol 299 Bitmap {citynoentrysign_png_texture} [citynoentrysign_png_texture]
Symbol 300 Bitmap {ctryramp01_png_texture} [ctryramp01_png_texture]
Symbol 301 Bitmap {carrubbishtruck_png_texture} [carrubbishtruck_png_texture]
Symbol 302 Bitmap {acconcrblock_05_png_texture} [acconcrblock_05_png_texture]
Symbol 303 Bitmap {ctrylogstmp_02_png_texture} [ctrylogstmp_02_png_texture]
Symbol 304 Bitmap {ctryramp01midlongest_png_texture} [ctryramp01midlongest_png_texture]
Symbol 305 Bitmap {ctryhay_01_png_texture} [ctryhay_01_png_texture]
Symbol 306 BitmapUsed by:307
Symbol 307 GraphicUses:306Used by:308
Symbol 308 MovieClip {biker_leg_sprite} [biker_leg_sprite]Uses:307
Symbol 309 Bitmap {steeldrum_02side_png_texture} [steeldrum_02side_png_texture]
Symbol 310 Bitmap {citymetalbarrier_02_png_texture} [citymetalbarrier_02_png_texture]
Symbol 311 Bitmap {ctrylog_02_png_texture} [ctrylog_02_png_texture]
Symbol 312 Bitmap {sandpile_02_png_texture} [sandpile_02_png_texture]
Symbol 313 Bitmap {sandpile_01_png_texture} [sandpile_01_png_texture]
Symbol 314 Bitmap {citywoodencrate_02_png_texture} [citywoodencrate_02_png_texture]
Symbol 315 Bitmap {instrctn_jump_png_texture} [instrctn_jump_png_texture]
Symbol 316 Bitmap {acramp04b_png_texture} [acramp04b_png_texture]
Symbol 317 Bitmap {rock_06_png_texture} [rock_06_png_texture]
Symbol 318 Bitmap {bg_1} [bg_1]
Symbol 319 Bitmap {rockbldr_06_png_texture} [rockbldr_06_png_texture]
Symbol 320 Bitmap {acconcrblock_01_png_texture} [acconcrblock_01_png_texture]
Symbol 321 Bitmap {carpickup_png_texture} [carpickup_png_texture]
Symbol 322 Bitmap {ctrylog_side_png_texture} [ctrylog_side_png_texture]
Symbol 323 Bitmap {bush_04_png_texture} [bush_04_png_texture]
Symbol 324 Bitmap {ctrylogstmp_03_png_texture} [ctrylogstmp_03_png_texture]
Symbol 325 Bitmap {carwreck_01a_png_texture} [carwreck_01a_png_texture]
Symbol 326 Bitmap {bg_2} [bg_2]
Symbol 327 Bitmap {bg_3} [bg_3]
Symbol 328 Bitmap {carwreck_01b_png_texture} [carwreck_01b_png_texture]
Symbol 329 Bitmap {acramp01b_png_texture} [acramp01b_png_texture]
Symbol 330 Bitmap {carvw_01_png_texture} [carvw_01_png_texture]
Symbol 331 Bitmap {citytrafficcone_01_png_texture} [citytrafficcone_01_png_texture]
Symbol 332 Bitmap {woodplank_02_png_texture} [woodplank_02_png_texture]
Symbol 333 Bitmap {ctrylogstmp_01_png_texture} [ctrylogstmp_01_png_texture]
Symbol 334 Bitmap {carcop_png_texture} [carcop_png_texture]
Symbol 335 Bitmap {steamroller_png_texture} [steamroller_png_texture]
Symbol 336 Bitmap {rock_10_png_texture} [rock_10_png_texture]
Symbol 337 Bitmap {citygreybrickwall_01_png_texture} [citygreybrickwall_01_png_texture]
Symbol 338 Bitmap {acconcrblock_05up_png_texture} [acconcrblock_05up_png_texture]
Symbol 339 Bitmap {ctrywoodfence_01_png_texture} [ctrywoodfence_01_png_texture]
Symbol 340 GraphicUsed by:341
Symbol 341 MovieClip {DistanceJointHandle} [DistanceJointHandle]Uses:340
Symbol 342 Sound {bike_motorcycle_stops_wav} [bike_motorcycle_stops_wav]
Symbol 343 Sound {vo_grnt04_wav} [vo_grnt04_wav]
Symbol 344 Sound {bike_speed_up_short_wav} [bike_speed_up_short_wav]
Symbol 345 Sound {vo_apprec_ohhh_wav} [vo_apprec_ohhh_wav]
Symbol 346 Sound {vo_precrash_uhoh_wav} [vo_precrash_uhoh_wav]
Symbol 347 Sound {nitro_sfx} [nitro_sfx]
Symbol 348 Sound {vo_apprec_woo_wav} [vo_apprec_woo_wav]
Symbol 349 Sound {vo_grnt01_wav} [vo_grnt01_wav]
Symbol 350 Sound {vo_nitro_do_it_wav} [vo_nitro_do_it_wav]
Symbol 351 Sound {bike_motorcycle_move_wav} [bike_motorcycle_move_wav]
Symbol 352 Sound {bike_motorcycle_idle_wav} [bike_motorcycle_idle_wav]
Symbol 353 Sound {button_press_sfx} [button_press_sfx]
Symbol 354 Sound {bike_suspension_forks_02_wav} [bike_suspension_forks_02_wav]
Symbol 355 Sound {vo_precrash_youdead_wav} [vo_precrash_youdead_wav]
Symbol 356 Sound {applause_wav} [applause_wav]
Symbol 357 Sound {vo_grnt02_wav} [vo_grnt02_wav]
Symbol 358 Sound {vo_grnt03_wav} [vo_grnt03_wav]
Symbol 359 Sound {bike_bike_brake_press_01_wav} [bike_bike_brake_press_01_wav]
Symbol 360 Sound {checkpoint_sfx} [checkpoint_sfx]
Symbol 361 Sound {vo_apprec_ohyeah_wav} [vo_apprec_ohyeah_wav]
Symbol 362 Sound {vo_start_okherewego_wav} [vo_start_okherewego_wav]
Symbol 363 Sound {vo_hurt_ooothatcant_wav} [vo_hurt_ooothatcant_wav]
Symbol 364 BinaryData {bikeChamp.managers.ConfigManager_levelsXMLClass}
Symbol 365 BinaryData {bikeChamp.managers.ConfigManager_surfacesXMLClass}
Symbol 366 BinaryData {bikeChamp.managers.ConfigManager_levelsOrderXMLClass}
Symbol 367 BinaryData {bikeChamp.managers.ConfigManager_configXMLClass}

Instance Names

"progressBarMask"Symbol 81 MovieClip {Preloader_2DPlay_fla.preloader_progress_bar_4} [Preloader_2DPlay_fla.preloader_progress_bar_4] Frame 1Symbol 78 MovieClip
"animation"Symbol 82 MovieClip {Preloader_2DPlay_fla.logo_2} [Preloader_2DPlay_fla.logo_2] Frame 1Symbol 75 MovieClip
"progressBar"Symbol 82 MovieClip {Preloader_2DPlay_fla.logo_2} [Preloader_2DPlay_fla.logo_2] Frame 1Symbol 81 MovieClip {Preloader_2DPlay_fla.preloader_progress_bar_4} [Preloader_2DPlay_fla.preloader_progress_bar_4]
"_logo"Symbol 83 MovieClip {com.bigwigmedia.preloaders.Preloader_2DPlay} [com.bigwigmedia.preloaders.Preloader_2DPlay] Frame 1Symbol 82 MovieClip {Preloader_2DPlay_fla.logo_2} [Preloader_2DPlay_fla.logo_2]

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
ExportAssets (56)Timeline Frame 1Symbol 83 as "com.bigwigmedia.preloaders.Preloader_2DPlay"
ExportAssets (56)Timeline Frame 1Symbol 82 as "Preloader_2DPlay_fla.logo_2"
ExportAssets (56)Timeline Frame 1Symbol 81 as "Preloader_2DPlay_fla.preloader_progress_bar_4"
ExportAssets (56)Timeline Frame 2Symbol 84 as "instrctn_accler_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 85 as "ctrytractor_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 88 as "CheckPointClip"
ExportAssets (56)Timeline Frame 2Symbol 89 as "acconcrblock_03_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 90 as "bush_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 91 as "citypedlight_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 94 as "biker_hip_sprite"
ExportAssets (56)Timeline Frame 2Symbol 95 as "rock_07_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 96 as "ctrylog_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 97 as "instrctn_brakehard_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 98 as "acconcrblock_01up_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 101 as "biker_body_sprite"
ExportAssets (56)Timeline Frame 2Symbol 102 as "Font_1"
ExportAssets (56)Timeline Frame 2Symbol 103 as "nitro_icon"
ExportAssets (56)Timeline Frame 2Symbol 104 as "citytrafflight_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 105 as "rock_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 106 as "Font_2"
ExportAssets (56)Timeline Frame 2Symbol 107 as "rock_12_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 110 as "LevelWonBackground"
ExportAssets (56)Timeline Frame 2Symbol 111 as "instrctn_wheelie_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 112 as "acbigball_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 113 as "citytrafficbarrier_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 114 as "carwreck_02a_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 115 as "test_icon"
ExportAssets (56)Timeline Frame 2Symbol 116 as "carvw_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 119 as "LevelLostBackground"
ExportAssets (56)Timeline Frame 2Symbol 120 as "rockbldr_04_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 121 as "car_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 122 as "ctryhay_04_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 123 as "ctryearthfill_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 124 as "steeldrum_02up_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 125 as "citymetalbarrier_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 126 as "cityredbrickwall_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 127 as "acramp02curveb_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 128 as "exit_icon"
ExportAssets (56)Timeline Frame 2Symbol 129 as "woodbarrel_01side_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 131 as "TwoDPlayButtonIcon"
ExportAssets (56)Timeline Frame 2Symbol 132 as "signslow_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 133 as "rock_03_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 134 as "ctryhay_03_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 135 as "carwreck_03a_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 138 as "NitroClip"
ExportAssets (56)Timeline Frame 2Symbol 139 as "acsqrblockred_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 140 as "acconcrblock_04_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 173 as "EditorHelpPages"
ExportAssets (56)Timeline Frame 2Symbol 174 as "rock_08_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 175 as "roadworksbarrier_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 176 as "woodplank_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 179 as "rear_fork"
ExportAssets (56)Timeline Frame 2Symbol 180 as "ctryramp01mid_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 181 as "ctrywoodfence_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 182 as "acramp04_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 183 as "acsqrblockblue_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 184 as "cityconcrbollard_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 185 as "citygreybrickpile_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 186 as "distance_joint_icon"
ExportAssets (56)Timeline Frame 2Symbol 187 as "empty_icon"
ExportAssets (56)Timeline Frame 2Symbol 188 as "instrctn_revers_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 189 as "ctryramp02mid_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 190 as "steeldrum_01up_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 191 as "citywoodencrate_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 192 as "instrctn_stunts_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 193 as "help_icon"
ExportAssets (56)Timeline Frame 2Symbol 196 as "biker_head_sprite"
ExportAssets (56)Timeline Frame 2Symbol 197 as "carvantransit_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 198 as "ctrystonewall_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 199 as "roadworksbarrier_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 202 as "GameWonBackground"
ExportAssets (56)Timeline Frame 2Symbol 203 as "rockbldr_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 204 as "rock_04_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 205 as "acramp02curve_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 206 as "instrctn_wheeliejumps_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 207 as "acsqrblockgrey_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 208 as "ctryramp01midlong_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 209 as "cartaxi_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 210 as "carwreck_03b_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 211 as "revolute_joint_icon"
ExportAssets (56)Timeline Frame 2Symbol 213 as "RevoluteJointHandle"
ExportAssets (56)Timeline Frame 2Symbol 214 as "ctryramp02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 218 as "LevelButtonLockedIcon"
ExportAssets (56)Timeline Frame 2Symbol 219 as "carwreck_02b_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 220 as "rockbldr_03_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 221 as "citytrafficcone_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 222 as "cityconcrdividr_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 223 as "sandpile_03_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 225 as "LevelButtonIcon"
ExportAssets (56)Timeline Frame 2Symbol 227 as "RotationTransformSkin"
ExportAssets (56)Timeline Frame 2Symbol 230 as "ButtonBackground"
ExportAssets (56)Timeline Frame 2Symbol 231 as "scaffold_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 232 as "concreteblk_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 233 as "steeldrum_01side_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 234 as "bus_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 237 as "biker_fore_arm_sprite"
ExportAssets (56)Timeline Frame 2Symbol 238 as "steelgirder_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 241 as "biker_arm_sprite"
ExportAssets (56)Timeline Frame 2Symbol 242 as "rockbldr_07_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 243 as "acramp03b_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 244 as "woodbarrel_01up_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 247 as "bike_body"
ExportAssets (56)Timeline Frame 2Symbol 248 as "rock_05_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 249 as "acconcrblock_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 250 as "bush_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 253 as "rear_wheel_1"
ExportAssets (56)Timeline Frame 2Symbol 254 as "ctryhay_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 255 as "instrctn_nitro_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 256 as "directnramp_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 257 as "glass_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 260 as "CheckPointFinishClip"
ExportAssets (56)Timeline Frame 2Symbol 261 as "transform_icon"
ExportAssets (56)Timeline Frame 2Symbol 262 as "ctryramp01midmed_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 263 as "rock_11_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 264 as "instrctn_chkpoint_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 265 as "ctrystonewall_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 266 as "achoop_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 267 as "rockbldr_05_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 268 as "check_point_icon"
ExportAssets (56)Timeline Frame 2Symbol 269 as "instrctn_rampjump_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 272 as "front_fork"
ExportAssets (56)Timeline Frame 2Symbol 273 as "ctryramp02b_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 274 as "instrctn_restart_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 275 as "acramp01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 276 as "carvancamper_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 277 as "bush_03_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 278 as "instrctn_bhop_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 279 as "steelgirder_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 282 as "SplashScreenBackground"
ExportAssets (56)Timeline Frame 2Symbol 283 as "rock_09_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 284 as "rockbldr_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 285 as "directnarrow_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 286 as "instrctn_leanforward_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 287 as "rock_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 288 as "citygreybrickwall_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 291 as "InstructionsBackground"
ExportAssets (56)Timeline Frame 2Symbol 292 as "ctrystonesgrnd_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 294 as "front_wheel_1"
ExportAssets (56)Timeline Frame 2Symbol 295 as "scaffold_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 296 as "nitro_indicator"
ExportAssets (56)Timeline Frame 2Symbol 297 as "ctryramp01b_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 298 as "acramp03_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 299 as "citynoentrysign_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 300 as "ctryramp01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 301 as "carrubbishtruck_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 302 as "acconcrblock_05_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 303 as "ctrylogstmp_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 304 as "ctryramp01midlongest_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 305 as "ctryhay_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 308 as "biker_leg_sprite"
ExportAssets (56)Timeline Frame 2Symbol 309 as "steeldrum_02side_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 310 as "citymetalbarrier_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 311 as "ctrylog_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 312 as "sandpile_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 313 as "sandpile_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 314 as "citywoodencrate_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 315 as "instrctn_jump_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 316 as "acramp04b_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 317 as "rock_06_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 318 as "bg_1"
ExportAssets (56)Timeline Frame 2Symbol 319 as "rockbldr_06_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 320 as "acconcrblock_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 321 as "carpickup_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 322 as "ctrylog_side_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 323 as "bush_04_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 324 as "ctrylogstmp_03_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 325 as "carwreck_01a_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 326 as "bg_2"
ExportAssets (56)Timeline Frame 2Symbol 327 as "bg_3"
ExportAssets (56)Timeline Frame 2Symbol 328 as "carwreck_01b_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 329 as "acramp01b_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 330 as "carvw_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 331 as "citytrafficcone_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 332 as "woodplank_02_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 333 as "ctrylogstmp_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 334 as "carcop_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 335 as "steamroller_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 336 as "rock_10_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 337 as "citygreybrickwall_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 338 as "acconcrblock_05up_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 339 as "ctrywoodfence_01_png_texture"
ExportAssets (56)Timeline Frame 2Symbol 341 as "DistanceJointHandle"
ExportAssets (56)Timeline Frame 2Symbol 342 as "bike_motorcycle_stops_wav"
ExportAssets (56)Timeline Frame 2Symbol 343 as "vo_grnt04_wav"
ExportAssets (56)Timeline Frame 2Symbol 344 as "bike_speed_up_short_wav"
ExportAssets (56)Timeline Frame 2Symbol 345 as "vo_apprec_ohhh_wav"
ExportAssets (56)Timeline Frame 2Symbol 346 as "vo_precrash_uhoh_wav"
ExportAssets (56)Timeline Frame 2Symbol 347 as "nitro_sfx"
ExportAssets (56)Timeline Frame 2Symbol 348 as "vo_apprec_woo_wav"
ExportAssets (56)Timeline Frame 2Symbol 349 as "vo_grnt01_wav"
ExportAssets (56)Timeline Frame 2Symbol 350 as "vo_nitro_do_it_wav"
ExportAssets (56)Timeline Frame 2Symbol 351 as "bike_motorcycle_move_wav"
ExportAssets (56)Timeline Frame 2Symbol 352 as "bike_motorcycle_idle_wav"
ExportAssets (56)Timeline Frame 2Symbol 353 as "button_press_sfx"
ExportAssets (56)Timeline Frame 2Symbol 354 as "bike_suspension_forks_02_wav"
ExportAssets (56)Timeline Frame 2Symbol 355 as "vo_precrash_youdead_wav"
ExportAssets (56)Timeline Frame 2Symbol 356 as "applause_wav"
ExportAssets (56)Timeline Frame 2Symbol 357 as "vo_grnt02_wav"
ExportAssets (56)Timeline Frame 2Symbol 358 as "vo_grnt03_wav"
ExportAssets (56)Timeline Frame 2Symbol 359 as "bike_bike_brake_press_01_wav"
ExportAssets (56)Timeline Frame 2Symbol 360 as "checkpoint_sfx"
ExportAssets (56)Timeline Frame 2Symbol 361 as "vo_apprec_ohyeah_wav"
ExportAssets (56)Timeline Frame 2Symbol 362 as "vo_start_okherewego_wav"
ExportAssets (56)Timeline Frame 2Symbol 363 as "vo_hurt_ooothatcant_wav"
SerialNumber (41)Timeline Frame 1

Labels

"bikeChamp_Main"Frame 1
"start"Frame 2




http://swfchan.com/26/129703/info.shtml
Created: 22/2 -2019 23:47:47 Last modified: 22/2 -2019 23:47:47 Server time: 11/05 -2024 18:15:50