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

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

Bricks & Breakout & Arkanoid - Robonoid.swf

This is the info page for
Flash #235859

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


ActionScript [AS3]
Section 1
//ColorAutoChangedBall (balls.ColorAutoChangedBall) package balls { import flash.events.*; import flash.utils.*; public class ColorAutoChangedBall extends StaticBall { private var timer:Timer; private var colors_list:Array; private var cur_color_index:int;// = -1 private var tmp_detonate_balls:Array; private var cycled:Boolean;// = true public function ColorAutoChangedBall(_arg1:Number, _arg2:Number, _arg3:int){ tmp_detonate_balls = new Array(); super(_arg1, _arg2, _arg3); } private function eventTimer(_arg1:TimerEvent):void{ cur_color_index++; if (((!(cycled)) && (((cur_color_index + 1) == colors_list.length)))){ timer.stop(); } else { if (((cycled) && ((cur_color_index >= colors_list.length)))){ cur_color_index = 0; }; }; setColorIndex(colors_list[cur_color_index]); } public function startAutoChangeColors(_arg1:int, _arg2:Boolean):void{ if ((((colors_list.length == 0)) || ((_arg1 <= 0)))){ return; }; timer = new Timer(_arg1); timer.addEventListener(TimerEvent.TIMER, eventTimer); timer.start(); cur_color_index = 0; setColorIndex(colors_list[cur_color_index]); } public function setColorList(... _args):void{ colors_list = new Array(); var _local2:int; while (_local2 < _args.length) { colors_list.push(_args[_local2]); _local2++; }; } } }//package balls
Section 2
//MoveBall (balls.MoveBall) package balls { import flash.events.*; import screens.*; import effects.*; import flash.geom.*; import flash.text.*; import flash.utils.*; public class MoveBall extends StaticBall { private const MAX_X_SPEED:int = 10; private const MAX_Y_SPEED:int = 10; private var dir_y:Number;// = 10 private var dir_x:Number;// = 0 private var move_mode:int;// = -1 private var slowly_timer:Timer; private var game_screen:GameScreen; private var max_x_speed:int;// = 10 private var max_y_speed:int;// = 10 private var kick_multiplicator:int;// = 0 private var platform:Platform; private var bPause:Boolean;// = false private var bubble_path_counter:int;// = 0 private var sound_wall_counter:Boolean;// = false private var heavy_mode:Boolean;// = false public static const MOVE_MODE_SLOWLY:int = 0; public static const MOVE_MODE_NORMAL:int = -1; public function MoveBall(_arg1:Number, _arg2:Number, _arg3:int, _arg4:Boolean=false){ game_screen = Main.getThisPointer().getGameScreen(); super(_arg1, _arg2, _arg3, _arg4); setState(STATE_MOVE); if (_arg4){ kick_multiplicator = 1; }; addEventListener(Event.ENTER_FRAME, render); } override public function destroy():void{ super.destroy(); game_screen = null; platform = null; slowly_timer = null; } public function setDirAsBall(_arg1:MoveBall):void{ var _local2:Point = _arg1.getDir(); dir_x = _local2.x; dir_y = _local2.y; } public function setHeavyMode(_arg1:Boolean):void{ heavy_mode = _arg1; } private function render(_arg1:Event):void{ if (!this.parent){ return; }; if (getState() == STATE_MUST_DIE){ return; }; if (((bPause) || (((platform) && ((platform.getAttachedBall() == this)))))){ return; }; x = (x + dir_x); y = (y + dir_y); createBubblePath(x, y, dir_x, dir_y); calcCollisionWithPlatform(); calcCollisionWithBalls(); calcOtherEvents(); } public function setMoveMode(_arg1:int):void{ move_mode = _arg1; if (slowly_timer){ slowly_timer.stop(); slowly_timer.removeEventListener(TimerEvent.TIMER, eventSlowlyTimer); slowly_timer = null; }; if (move_mode == MoveBall.MOVE_MODE_NORMAL){ max_x_speed = MAX_X_SPEED; max_y_speed = MAX_Y_SPEED; } else { if (move_mode == MoveBall.MOVE_MODE_SLOWLY){ max_x_speed = (MAX_X_SPEED * 0.5); max_y_speed = (MAX_Y_SPEED * 0.5); if (!slowly_timer){ slowly_timer = new Timer(15000); }; slowly_timer.addEventListener(TimerEvent.TIMER, eventSlowlyTimer); slowly_timer.start(); }; }; dir_x = fixDir(dir_x, max_x_speed); dir_y = fixDir(dir_y, max_y_speed); } public function getDir():Point{ return (new Point(dir_x, dir_y)); } private function createBubblePath(_arg1:int, _arg2:int, _arg3:Number, _arg4:Number):void{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; bubble_path_counter++; if (bubble_path_counter > 1){ bubble_path_counter = 0; _local5 = Math.atan2(-(_arg4), -(_arg3)); _local6 = (1 - (Math.random() * 2)); _local5 = (_local5 + _local6); _local7 = (_arg1 + (Math.cos((_local5 + ((_local6 * Math.PI) / 16))) * 15)); _local8 = (_arg2 + (Math.sin((_local5 + ((_local6 * Math.PI) / 16))) * 15)); _local9 = (1500 - (Math.abs(_local6) * 1000)); parent.addChild(new HidedBubble(_local7, _local8, _local9)); }; } private function eventSlowlyTimer(_arg1:TimerEvent):void{ setMoveMode(MoveBall.MOVE_MODE_NORMAL); } public function setPause(_arg1:Boolean):void{ bPause = _arg1; } public function getHeavyMode():Boolean{ return (heavy_mode); } private function calcCollisionWithBalls():void{ var _local2:Number; var _local3:Number; var _local4:String; var _local5:Point; var _local6:FlyFadeText; var _local7:neuropol_font; var _local8:TextFormat; var _local9:Number; var _local1:int; while (_local1 < balls_info.length) { if ((((((balls_info[_local1] == null)) || ((balls_info[_local1] == this)))) || ((balls_info[_local1].getState() == STATE_MUST_DIE)))){ } else { _local2 = ((x - balls_info[_local1].x) * (x - balls_info[_local1].x)); _local3 = ((y - balls_info[_local1].y) * (y - balls_info[_local1].y)); if (((((_local2 + _local3) <= (((StaticBall.RADIUS * StaticBall.RADIUS) * 2) * 2))) && (((!(heavy_mode)) || (((heavy_mode) && (balls_info[_local1].isActive()))))))){ vibro.start(); if (getColorIndex() == -1){ if (isUserMoveBall){ if ((balls_info[_local1] as StoneBall)){ Main.sound_master.play(SfxStorage.SFXID_SOUND_BANG_STONE_BALL); }; }; if (((!((balls_info[_local1].getColorIndex() == -1))) && (!((balls_info[_local1] as StoneBall))))){ if (balls_info[_local1].isActive()){ game_screen.addScore((getBallPoints() * kick_multiplicator)); if (kick_multiplicator > 1){ _local4 = (("x" + kick_multiplicator.toString()) + "COMBO"); _local5 = new Point(balls_info[_local1].x, balls_info[_local1].y); _local6 = new FlyFadeText(_local4, _local5, new Point(0, -1)); _local7 = new neuropol_font(); _local8 = new TextFormat(_local7.fontName, 15, 0xFFFFFF); _local6.autoSize = "left"; _local6.selectable = false; _local6.embedFonts = true; _local8.bold = true; _local6.setTextFormat(_local8); game_screen.addChild(_local6); Main.sound_master.play(SfxStorage.SFXID_SOUND_COMBO); } else { Main.sound_master.play(SfxStorage.SFXID_SOUND_BANG_ROBOT); }; kick_multiplicator++; }; balls_info[_local1].mustDie(400); }; if (((((!(heavy_mode)) || ((balls_info[_local1] is StoneBall)))) || ((balls_info[_local1].getColorIndex() == -1)))){ _local9 = (Math.atan2((balls_info[_local1].y - y), (balls_info[_local1].x - x)) - Math.PI); dir_x = (max_x_speed * Math.cos(_local9)); dir_y = (max_y_speed * Math.sin(_local9)); dir_x = fixDir(dir_x, max_x_speed); dir_y = fixDir(dir_y, max_y_speed); if ((balls_info[_local1] is StoneBall)){ balls_info[_local1].setState(StaticBall.STATE_MUST_DIE); }; }; } else { if (getColorIndex() == balls_info[_local1].getColorIndex()){ if (kick_multiplicator >= 1){ kick_multiplicator = 1; }; setState(STATE_MUST_DIE); balls_info[_local1].mustDie(400); }; }; }; }; _local1++; }; } private function calcCollisionWithPlatform():void{ var _local1:Number; if ((x + StaticBall.RADIUS) > (600 - GameScreen.RIGHT_PLANE_WIDTH)){ x = ((600 - StaticBall.RADIUS) - GameScreen.RIGHT_PLANE_WIDTH); dir_x = -(dir_x); Main.sound_master.play(SfxStorage.SFXID_SOUND_WALL_BANG); vibro.start(); }; if (x < (GameScreen.LEFT_PLANE_WIDTH + StaticBall.RADIUS)){ x = (GameScreen.LEFT_PLANE_WIDTH + StaticBall.RADIUS); dir_x = -(dir_x); Main.sound_master.play(SfxStorage.SFXID_SOUND_WALL_BANG); vibro.start(); }; if (y < (StaticBall.RADIUS + GameScreen.UP_PLANE_WIDTH)){ y = (StaticBall.RADIUS + GameScreen.UP_PLANE_WIDTH); dir_y = -(dir_y); Main.sound_master.play(SfxStorage.SFXID_SOUND_WALL_BANG); vibro.start(); }; if (((((((((!((platform == null))) && (((y + StaticBall.RADIUS) >= platform.y)))) && (((y + StaticBall.RADIUS) < (platform.y + StaticBall.RADIUS))))) && ((x > ((platform.x - (platform.width / 2)) - 5))))) && ((x < ((platform.x + (platform.width / 2)) + 5))))){ y = (platform.y - StaticBall.RADIUS); _local1 = ((x - platform.x) / (platform.width / 2)); dir_x = (_local1 * max_x_speed); dir_y = (-((1 - (_local1 - 0.3))) * max_y_speed); dir_y = fixDir(dir_y, max_y_speed); Main.sound_master.play(SfxStorage.SFXID_SOUND_PLATFORM_BANG); if (kick_multiplicator > 0){ kick_multiplicator = 1; }; platform.startPingEffect(); if (platform.getStickyMode()){ platform.attachBall(this, (x - platform.x)); setPause(true); } else { vibro.start(); }; }; } private function calcOtherEvents():void{ if ((((y > 560)) && (!((getState() == StaticBall.STATE_MUST_DIE))))){ setState(StaticBall.STATE_MUST_DIE); }; } public function setPlatform(_arg1:Platform):void{ platform = _arg1; } private function fixDir(_arg1:Number, _arg2:int):Number{ if (_arg1 > _arg2){ return (_arg2); }; if (_arg1 < -(_arg2)){ return (-(_arg2)); }; if ((((_arg1 > -3)) && ((_arg1 < 3)))){ _arg1 = ((_arg1 < 0)) ? -3 : 3; }; return (_arg1); } } }//package balls
Section 3
//StaticBall (balls.StaticBall) package balls { import flash.events.*; import screens.*; import flash.display.*; import effects.*; import flash.geom.*; import flash.utils.*; import core.system.*; public class StaticBall extends Sprite implements IDestroyObject { protected var bmp:Bitmap; private var die_timer:Timer; protected var vibro:VibroBallEffect; private var state:int;// = 0 private var mc:MovieClip; private var timer_start_eyes:Timer; private var bmp_eyes:Array; protected var bonus:IBubblenoidBonus; private var bmp_eyes_counter:int;// = 0 protected var isUserMoveBall:Boolean;// = false private var timer_eyes_frame_ticker:Timer; private var color_index:int;// = 0 protected var balls_info:Array; private var bmp_color_index:int;// = 0 public static const STATE_STAY:int = 0; public static const STATE_MUST_DIE:int = 2; public static const RADIUS:int = 15; private static const POINTS_BY_BALL:int = 100; public static const STATE_MOVE:int = 1; public function StaticBall(_arg1:Number, _arg2:Number, _arg3:int, _arg4:Boolean=false){ var _local5:MovieClip; var _local6:int; var _local7:BitmapData; var _local8:Bitmap; bmp_eyes = new Array(); vibro = new VibroBallEffect(); mc = (new game_main_ball() as MovieClip); super(); bmp = new Bitmap(); addChild(bmp); if (((!((_arg3 == TextureStorage.BALL_STONE_INDEX))) && (!(_arg4)))){ _local5 = (new game_ball_eyes() as MovieClip); _local6 = 0; _local6 = 1; while (_local6 <= _local5.totalFrames) { _local5.gotoAndStop(_local6); _local7 = new BitmapData(_local5.width, _local5.height, true, 0); _local8 = new Bitmap(_local7); _local8.x = -7; _local8.y = -11; _local8.scaleX = 1.001; _local8.scaleY = 1.001; _local8.smoothing = true; bmp_eyes.push(_local8); _local7.draw(_local5); if (_local6 == 1){ addChild(_local8); }; _local6++; }; timer_start_eyes = new Timer((3000 * Math.random()), 1); timer_start_eyes.addEventListener(TimerEvent.TIMER, eventTimerStartEyes); timer_start_eyes.start(); }; isUserMoveBall = _arg4; if (isUserMoveBall){ mc.gotoAndStop(1); }; setColorIndex(_arg3); x = _arg1; y = _arg2; addEventListener(Event.ENTER_FRAME, render); } private function eventTimerEyesFrameTicker(_arg1:TimerEvent):void{ removeChild(bmp_eyes[bmp_eyes_counter]); bmp_eyes_counter++; if (bmp_eyes_counter == bmp_eyes.length){ bmp_eyes_counter = 0; timer_eyes_frame_ticker.stop(); timer_eyes_frame_ticker = null; timer_start_eyes = new Timer((2000 + (3000 * Math.random())), 1); timer_start_eyes.addEventListener(TimerEvent.TIMER, eventTimerStartEyes); timer_start_eyes.start(); }; addChild(bmp_eyes[bmp_eyes_counter]); } public function getBallPoints():int{ return (StaticBall.POINTS_BY_BALL); } public function destroy():void{ removeEventListener(Event.ENTER_FRAME, render); bmp_eyes.splice(0, bmp_eyes.length); if (timer_eyes_frame_ticker){ timer_eyes_frame_ticker.stop(); timer_eyes_frame_ticker = null; }; if (timer_start_eyes){ timer_start_eyes.stop(); timer_start_eyes = null; }; removeChild(bmp); } public function setState(_arg1:int):void{ state = _arg1; } public function isActive():Boolean{ return (!(((die_timer) && (die_timer.running)))); } protected function eventDie(_arg1:TimerEvent):void{ setState(StaticBall.STATE_MUST_DIE); } public function attachBonus(_arg1:IBubblenoidBonus):void{ bonus = _arg1; } public function getState():int{ return (state); } private function startBonus(_arg1:GameScreen):void{ if (bonus){ _arg1.pushFlyingBonus(bonus); bonus.StartFly(new Point(x, y)); }; } public function bonusAttached():Boolean{ return (!((bonus == null))); } public function mustDie(_arg1:int):void{ vibro.start(); die_timer = new Timer(_arg1, 1); die_timer.addEventListener(TimerEvent.TIMER, eventDie); die_timer.start(); } private function startPoppedBubbles(_arg1:GameScreen):void{ _arg1.addChild(new PoppedBubbles(x, y)); } private function eventTimerStartEyes(_arg1:TimerEvent):void{ timer_start_eyes.stop(); timer_start_eyes = null; timer_eyes_frame_ticker = new Timer(50, 0); timer_eyes_frame_ticker.addEventListener(TimerEvent.TIMER, eventTimerEyesFrameTicker); timer_eyes_frame_ticker.start(); } private function render(_arg1:Event):void{ if (isUserMoveBall){ vibro.update(this); return; }; vibro.update(this); } public function dieTasks(_arg1:GameScreen):void{ startBonus(_arg1); startPoppedBubbles(_arg1); } public function setBallsInfo(_arg1:Array):void{ balls_info = _arg1; } protected function setColorIndex(_arg1:int):void{ var _local2:int; if (((isUserMoveBall) || ((_arg1 == -1)))){ color_index = -1; bmp_color_index = TextureStorage.BALL_DEEP_BLUE_INDEX; bmp.bitmapData = new BitmapData(mc.width, mc.height, true, 0); bmp.bitmapData.draw(mc); bmp.x = (bmp.x - 15); bmp.y = (bmp.y - 15); scaleX = 1.001; scaleY = 1.001; bmp.smoothing = true; return; }; color_index = _arg1; var _local3:int = color_index; if (_local3 == -1){ _local3 = TextureStorage.BALL_DEEP_BLUE_INDEX; }; bmp_color_index = _local3; scaleX = 1.01; scaleY = 1.01; var _local4:MovieClip = (new game_balls() as MovieClip); _local4.gotoAndStop((_arg1 + 1)); if (_arg1 == TextureStorage.BALL_STONE_INDEX){ _local4 = (new stone_ball() as MovieClip); }; bmp.bitmapData = new BitmapData(_local4.width, _local4.height, true, 0xFFFFFF); bmp.bitmapData.draw(_local4); bmp.smoothing = true; bmp.x = -15; bmp.y = -15; } public function getColorIndex():int{ return (color_index); } } }//package balls
Section 4
//StoneBall (balls.StoneBall) package balls { import flash.events.*; import flash.display.*; import flash.utils.*; public class StoneBall extends StaticBall { private var blink_timer:Timer; private var mcc:MovieClip; private var blink_process_state:int;// = 0 public static const BLINK_PROCESS_BLINKED_END:int = 2; public static const BLINK_PROCESS_STAY:int = 0; public static const BLINK_PROCESS_BLINKED:int = 1; public function StoneBall(_arg1:Number, _arg2:Number, _arg3:int){ mcc = (new stone_ball() as MovieClip); super(_arg1, _arg2, _arg3, false); setState(STATE_MOVE); } override protected function eventDie(_arg1:TimerEvent):void{ if (blink_process_state != BLINK_PROCESS_STAY){ return; }; setState(StaticBall.STATE_MUST_DIE); } override public function mustDie(_arg1:int):void{ if (blink_process_state != BLINK_PROCESS_STAY){ return; }; super.mustDie(_arg1); } private function eventTimer(_arg1:TimerEvent):void{ blink_timer = null; mcc.gotoAndStop(1); bmp.bitmapData = new BitmapData(mcc.width, mcc.height, true, 0xFFFFFF); bmp.bitmapData.draw(mcc); blink_process_state = BLINK_PROCESS_STAY; } override public function setState(_arg1:int):void{ if (_arg1 != StaticBall.STATE_MUST_DIE){ super.setState(_arg1); } else { if (blink_process_state == BLINK_PROCESS_STAY){ blink_timer = new Timer(100, 1); blink_timer.addEventListener(TimerEvent.TIMER, eventTimer); blink_timer.start(); mcc.gotoAndStop(2); bmp.bitmapData = new BitmapData(mcc.width, mcc.height, true, 0xFFFFFF); bmp.bitmapData.draw(mcc); blink_process_state = BLINK_PROCESS_BLINKED; }; }; } } }//package balls
Section 5
//HeavyBallBonus (bonuses.HeavyBallBonus) package bonuses { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class HeavyBallBonus extends LongPlatformBonus { public function HeavyBallBonus(_arg1:int=2){ super(_arg1); } override public function Action(_arg1:GameScreen):Boolean{ _arg1.userBallsSetMoveMode(MoveBall.MOVE_MODE_NORMAL); _arg1.getPlatform().setStickyMode(false); _arg1.userBallsSetHeavyMode(true); var _local2:FlyFadeText = new FlyFadeText("HEAVY BUBBLE", new Point(x, y), new Point(0, -1)); _arg1.addChild(_local2); var _local3:neuropol_font = new neuropol_font(); var _local4:TextFormat = new TextFormat(_local3.fontName, 15, 0xFFFFFF); _local2.autoSize = "left"; _local2.selectable = false; _local2.embedFonts = true; _local4.bold = true; _local2.setTextFormat(_local4); Main.sound_master.play(SfxStorage.SFXID_SOUND_TAKE_BONUS); return (true); } } }//package bonuses
Section 6
//LifeBonus (bonuses.LifeBonus) package bonuses { import screens.*; import effects.*; import flash.geom.*; import flash.text.*; public class LifeBonus extends LongPlatformBonus { public function LifeBonus(_arg1:int=3){ super(_arg1); } override public function Action(_arg1:GameScreen):Boolean{ _arg1.getPlatform().setStickyMode(false); _arg1.addLife(); _arg1.refreshUpPanel(); var _local2:FlyFadeText = new FlyFadeText("+1 LIFE", new Point(x, y), new Point(0, -1)); _arg1.addChild(_local2); var _local3:neuropol_font = new neuropol_font(); var _local4:TextFormat = new TextFormat(_local3.fontName, 15, 0xFFFFFF); _local2.autoSize = "left"; _local2.selectable = false; _local2.embedFonts = true; _local4.bold = true; _local2.setTextFormat(_local4); Main.sound_master.play(SfxStorage.SFXID_SOUND_TAKE_BONUS); return (true); } } }//package bonuses
Section 7
//LongPlatformBonus (bonuses.LongPlatformBonus) package bonuses { import flash.events.*; import screens.*; import balls.*; import flash.display.*; import effects.*; import flash.geom.*; import flash.text.*; public class LongPlatformBonus extends Sprite implements IBubblenoidBonus { private var bmp:Bitmap; private var state:int;// = -1 private var bonus_index:int;// = -1 private var pause:Boolean;// = false private var mc_bonus:game_bonus; public static const STATE_HIDE:int = -1; public static const STATE_FLY:int = 0; public function LongPlatformBonus(_arg1:int=1){ mc_bonus = new game_bonus(); super(); bonus_index = _arg1; bmp = new Bitmap(); addChild(bmp); x = -15; y = -10; addEventListener(Event.ENTER_FRAME, render); } public function Action(_arg1:GameScreen):Boolean{ _arg1.userBallsSetMoveMode(MoveBall.MOVE_MODE_NORMAL); _arg1.userBallsSetHeavyMode(false); _arg1.getPlatform().setStickyMode(false); _arg1.getPlatform().setWidthMode(Platform.WIDTH_MODE_LONG); var _local2:FlyFadeText = new FlyFadeText("LONG PLATFORM", new Point(x, y), new Point(0, -1)); _arg1.addChild(_local2); var _local3:neuropol_font = new neuropol_font(); var _local4:TextFormat = new TextFormat(_local3.fontName, 15, 0xFFFFFF); _local2.autoSize = "left"; _local2.selectable = false; _local2.embedFonts = true; _local4.bold = true; _local2.setTextFormat(_local4); Main.sound_master.play(SfxStorage.SFXID_SOUND_TAKE_BONUS); return (true); } public function dieNow():Boolean{ if (y > 500){ return (true); }; return (false); } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function StartFly(_arg1:Point):void{ state = STATE_FLY; x = (x + _arg1.x); y = (y + _arg1.y); if (bonus_index == TextureStorage.BONUS_MONEY_INDEX){ removeChild(bmp); mc_bonus.gotoAndStop(1); addChild(mc_bonus); mc_bonus.x = (mc_bonus.x - 7); mc_bonus.y = (mc_bonus.y - 5); } else { if (bonus_index == TextureStorage.BONUS_LONG_INDEX){ removeChild(bmp); mc_bonus.gotoAndStop(2); addChild(mc_bonus); mc_bonus.x = (mc_bonus.x - 7); mc_bonus.y = (mc_bonus.y - 5); } else { if (bonus_index == TextureStorage.BONUS_STICKY_INDEX){ removeChild(bmp); mc_bonus.gotoAndStop(3); addChild(mc_bonus); mc_bonus.x = (mc_bonus.x - 7); mc_bonus.y = (mc_bonus.y - 5); } else { if (bonus_index == TextureStorage.BONUS_SHORT_INDEX){ removeChild(bmp); mc_bonus.gotoAndStop(4); addChild(mc_bonus); mc_bonus.x = (mc_bonus.x - 7); mc_bonus.y = (mc_bonus.y - 5); } else { if (bonus_index == TextureStorage.BONUS_HEAVY_INDEX){ removeChild(bmp); mc_bonus.gotoAndStop(5); addChild(mc_bonus); mc_bonus.x = (mc_bonus.x - 7); mc_bonus.y = (mc_bonus.y - 5); } else { if (bonus_index == TextureStorage.BONUS_LIFE_INDEX){ removeChild(bmp); mc_bonus.gotoAndStop(6); addChild(mc_bonus); mc_bonus.x = (mc_bonus.x - 7); mc_bonus.y = (mc_bonus.y - 5); } else { if (bonus_index == TextureStorage.BONUS_SLOWLY_INDEX){ removeChild(bmp); mc_bonus.gotoAndStop(7); addChild(mc_bonus); mc_bonus.x = (mc_bonus.x - 7); mc_bonus.y = (mc_bonus.y - 5); } else { if (bonus_index == TextureStorage.BONUS_TRIPLE_INDEX){ removeChild(bmp); mc_bonus.gotoAndStop(8); addChild(mc_bonus); mc_bonus.x = (mc_bonus.x - 7); mc_bonus.y = (mc_bonus.y - 5); }; }; }; }; }; }; }; }; visible = true; } private function render(_arg1:Event):void{ if (pause){ return; }; if (state == STATE_FLY){ y = (y + 2); }; } } }//package bonuses
Section 8
//MegaPointsBonus (bonuses.MegaPointsBonus) package bonuses { import screens.*; import effects.*; import flash.geom.*; import flash.text.*; public class MegaPointsBonus extends LongPlatformBonus { private var points:int;// = 0 public function MegaPointsBonus(_arg1:int, _arg2:int=6){ super(_arg2); points = 1000; } override public function Action(_arg1:GameScreen):Boolean{ _arg1.addScore(points); var _local2:FlyFadeText = new FlyFadeText((("+" + points.toString()) + " POINTS"), new Point(x, y), new Point(0, -1)); _arg1.addChild(_local2); var _local3:neuropol_font = new neuropol_font(); var _local4:TextFormat = new TextFormat(_local3.fontName, 15, 0xFFFFFF); _local2.autoSize = "left"; _local2.selectable = false; _local2.embedFonts = true; _local4.bold = true; _local2.setTextFormat(_local4); Main.sound_master.play(SfxStorage.SFXID_SOUND_TAKE_BONUS_MONEY); return (true); } } }//package bonuses
Section 9
//SlowlyBallBonus (bonuses.SlowlyBallBonus) package bonuses { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class SlowlyBallBonus extends LongPlatformBonus { public function SlowlyBallBonus(_arg1:int=0){ super(_arg1); } override public function Action(_arg1:GameScreen):Boolean{ _arg1.userBallsSetMoveMode(MoveBall.MOVE_MODE_SLOWLY); _arg1.userBallsSetHeavyMode(false); var _local2:FlyFadeText = new FlyFadeText("SLOWLY BALL", new Point(x, y), new Point(0, -1)); _arg1.addChild(_local2); var _local3:neuropol_font = new neuropol_font(); var _local4:TextFormat = new TextFormat(_local3.fontName, 15, 0xFFFFFF); _local2.autoSize = "left"; _local2.selectable = false; _local2.embedFonts = true; _local4.bold = true; _local2.setTextFormat(_local4); Main.sound_master.play(SfxStorage.SFXID_SOUND_TAKE_BONUS); return (true); } } }//package bonuses
Section 10
//SmartPlatformBonus (bonuses.SmartPlatformBonus) package bonuses { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class SmartPlatformBonus extends LongPlatformBonus { public function SmartPlatformBonus(_arg1:int=4){ super(_arg1); } override public function Action(_arg1:GameScreen):Boolean{ _arg1.userBallsSetMoveMode(MoveBall.MOVE_MODE_NORMAL); _arg1.getPlatform().setStickyMode(false); _arg1.getPlatform().setWidthMode(Platform.WIDTH_MODE_SMART); _arg1.userBallsSetHeavyMode(false); var _local2:FlyFadeText = new FlyFadeText("SHORT PLATFORM", new Point(x, y), new Point(0, -1)); _arg1.addChild(_local2); var _local3:neuropol_font = new neuropol_font(); var _local4:TextFormat = new TextFormat(_local3.fontName, 15, 0xFFFFFF); _local2.autoSize = "left"; _local2.selectable = false; _local2.embedFonts = true; _local4.bold = true; _local2.setTextFormat(_local4); Main.sound_master.play(SfxStorage.SFXID_SOUND_TAKE_BONUS); return (true); } } }//package bonuses
Section 11
//StickyPlatformBonus (bonuses.StickyPlatformBonus) package bonuses { import screens.*; import effects.*; import flash.geom.*; import flash.text.*; public class StickyPlatformBonus extends LongPlatformBonus { public function StickyPlatformBonus(_arg1:int=5){ super(_arg1); } override public function Action(_arg1:GameScreen):Boolean{ _arg1.getPlatform().setStickyMode(true); _arg1.userBallsSetHeavyMode(false); var _local2:FlyFadeText = new FlyFadeText("STICKY PLATFORM", new Point(x, y), new Point(0, -1)); _arg1.addChild(_local2); var _local3:neuropol_font = new neuropol_font(); var _local4:TextFormat = new TextFormat(_local3.fontName, 15, 0xFFFFFF); _local2.autoSize = "left"; _local2.selectable = false; _local2.embedFonts = true; _local4.bold = true; _local2.setTextFormat(_local4); Main.sound_master.play(SfxStorage.SFXID_SOUND_TAKE_BONUS); return (true); } } }//package bonuses
Section 12
//TripleBallBonus (bonuses.TripleBallBonus) package bonuses { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class TripleBallBonus extends LongPlatformBonus { public function TripleBallBonus(_arg1:int=7){ super(_arg1); } override public function Action(_arg1:GameScreen):Boolean{ var _local5:MoveBall; var _local6:MoveBall; var _local7:FlyFadeText; var _local8:neuropol_font; var _local9:TextFormat; var _local2:Array = _arg1.getUserBalls(); _arg1.userBallsSetHeavyMode(false); var _local3:int = _local2.length; var _local4:int; while (_local4 < _local3) { _local5 = _local2[_local4]; _local6 = new MoveBall((_local5.x - (StaticBall.RADIUS * 2)), _local5.y, -1, true); _local6.setDirAsBall(_local5); _arg1.pushUserBall(_local6); _local6 = new MoveBall((_local5.x + (StaticBall.RADIUS * 2)), _local5.y, -1, true); _local6.setDirAsBall(_local5); _arg1.pushUserBall(_local6); _local7 = new FlyFadeText("TRIPLE BALL", new Point(x, y), new Point(0, -1)); _arg1.addChild(_local7); _local8 = new neuropol_font(); _local9 = new TextFormat(_local8.fontName, 15, 0xFFFFFF); _local7.autoSize = "left"; _local7.selectable = false; _local7.embedFonts = true; _local9.bold = true; _local7.setTextFormat(_local9); _local4++; }; Main.sound_master.play(SfxStorage.SFXID_SOUND_TAKE_BONUS); return (true); } } }//package bonuses
Section 13
//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 14
//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.x + ((_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 15
//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 16
//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 17
//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 18
//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 19
//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 20
//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; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 21
//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 22
//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 23
//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 24
//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 25
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 26
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 = 0; }; }; _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 27
//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 28
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 29
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 - ((_local15 * _local19) + (_local16 * _local20))) <= (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(((_local13 * _local13) + (_local14 * _local14))); _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(((_local13 * _local13) + (_local14 * _local14))); _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 30
//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 31
//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 32
//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 33
//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 34
//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 35
//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 36
//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 37
//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 38
//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 = ((-(_local7) * _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 39
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 40
//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 41
//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 42
//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 43
//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 44
//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 45
//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 46
//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 47
//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 48
//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 49
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 50
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 51
//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 52
//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 53
//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 54
//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 55
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 56
//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 57
//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 58
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 59
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 60
//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 61
//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 62
//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 63
//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 64
//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 65
//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 66
//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 67
//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 68
//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 69
//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 70
//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 71
//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 72
//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 73
//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 74
//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 75
//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 76
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; 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.x - (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 77
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 78
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 79
//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 80
//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 81
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; 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_shape1; _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 82
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; 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 83
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 84
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; 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 85
//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 86
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; 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 87
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function getObjectLength(_arg1:Object):uint{ var _local3:String; var _local2:uint; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function concatObjects(... _args):Object{ var _local3:Object; var _local5:String; var _local2:Object = {}; var _local4:int; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } } }//package caurina.transitions
Section 88
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ trace("Equations is a static class and should not be instantiated."); } public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2)); }; _arg1 = (_arg1 - 2); _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; --_arg1; return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } } }//package caurina.transitions
Section 89
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var valueComplete:Number; public var modifierFunction:Function; public var extra:Object; public var valueStart:Number; public var hasModifier:Boolean; public var arrayIndex:Number; public var originalValueComplete:Object; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){ valueStart = _arg1; valueComplete = _arg2; originalValueComplete = _arg3; arrayIndex = _arg4; extra = _arg5; isSpecialProperty = _arg6; hasModifier = Boolean(_arg7); modifierFunction = _arg7; modifierParameters = _arg8; } public function toString():String{ var _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("arrayIndex:" + String(arrayIndex))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("extra:" + String(extra))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("hasModifier:" + String(hasModifier))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 90
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var preProcess:Function; public var setValue:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; preProcess = _arg4; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("preProcess:" + String(preProcess))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 91
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 92
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; parameters = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 93
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _currentTimeFrame:Number; private static var _specialPropertySplitterList:Object; public static var autoOverwrite:Boolean = true; private static var _engineExists:Boolean = false; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyModifierList:Object; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ if (!_inited){ init(); }; var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ if (!_inited){ init(); }; var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5); _specialPropertyList[_arg1] = _local6; } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Array; var _local8:Function; var _local9:TweenListObj; var _local10:Number; var _local11:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local4 = _arg1.concat(); } else { _local4 = [_arg1]; }; var _local5:Object = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time; var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay; if (typeof(_local5.transition) == "string"){ _local11 = _local5.transition.toLowerCase(); _local8 = _transitionList[_local11]; } else { _local8 = _local5.transition; }; if (!Boolean(_local8)){ _local8 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local4.length) { if (_local5.useFrames == true){ _local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams); } else { _local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams); }; _local9.properties = null; _local9.onStart = _local5.onStart; _local9.onUpdate = _local5.onUpdate; _local9.onComplete = _local5.onComplete; _local9.onOverwrite = _local5.onOverwrite; _local9.onStartParams = _local5.onStartParams; _local9.onUpdateParams = _local5.onUpdateParams; _local9.onCompleteParams = _local5.onCompleteParams; _local9.onOverwriteParams = _local5.onOverwriteParams; _local9.onStartScope = _local5.onStartScope; _local9.onUpdateScope = _local5.onUpdateScope; _local9.onCompleteScope = _local5.onCompleteScope; _local9.onOverwriteScope = _local5.onOverwriteScope; _local9.onErrorScope = _local5.onErrorScope; _local9.isCaller = true; _local9.count = _local5.count; _local9.waitFrames = _local5.waitFrames; _tweenList.push(_local9); if ((((_local6 == 0)) && ((_local7 == 0)))){ _local10 = (_tweenList.length - 1); updateTweenByIndex(_local10); removeTweenByIndex(_local10); }; _local3++; }; return (true); } public static function pauseAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local5:SpecialPropertySplitter; var _local6:Array; var _local7:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ if (_specialPropertySplitterList[_args[_local4]]){ _local5 = _specialPropertySplitterList[_args[_local4]]; _local6 = _local5.splitValues(_arg1, null); _local7 = 0; while (_local7 < _local6.length) { _local3.push(_local6[_local7].name); _local7++; }; } else { _local3.push(_args[_local4]); }; }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function updateFrame():void{ _currentTimeFrame++; } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local5:uint; var _local6:String; var _local7:Boolean; var _local3:TweenListObj = _tweenList[_arg1]; var _local4:TweenListObj = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; var _local3:Number = getCurrentTweeningTime(_local2); _local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } public static function getVersion():String{ return ("AS3 1.33.74"); } public static function onEnterFrame(_arg1:Event):void{ updateTime(); updateFrame(); var _local2:Boolean; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; var isOver:Boolean; var cTime:Number = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e2:Error) { handleError(tTweening, e2, "onStart"); }; }; tTweening.hasStarted = true; }; do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(cTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e2:Error) { handleError(tTweening, e2, "onStart"); }; }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; try { tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); } catch(e3:Error) { handleError(tTweening, e3, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e4:Error) { handleError(tTweening, e4, "onComplete"); }; }; return (!(isOver)); }; return (true); } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ if (_tweenList != null){ _local2 = 0; while (_local2 < _tweenList.length) { _local3 = getCurrentTweeningTime(_tweenList[_local2]); _tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; }; _timeScale = _arg1; }; } public static function resumeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var eventScope:Object; var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; try { pTweening.onError.apply(eventScope, [pTweening.scope, pError]); } catch(metaError:Error) { printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace())); }; } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } public static function removeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Number; var _local5:String; var _local6:Array; var _local13:Function; var _local14:Object; var _local15:TweenListObj; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local6 = _arg1.concat(); } else { _local6 = [_arg1]; }; var _local7:Object = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time; var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay; var _local10:Array = new Array(); var _local11:Object = {overwrite:true, time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; var _local12:Object = new Object(); for (_local5 in _local7) { if (!_local11[_local5]){ if (_specialPropertySplitterList[_local5]){ _local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters); _local3 = 0; while (_local3 < _local17.length) { if (_specialPropertySplitterList[_local17[_local3].name]){ _local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters); _local4 = 0; while (_local4 < _local18.length) { _local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false}; _local4++; }; } else { _local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false}; }; _local3++; }; } else { if (_specialPropertyModifierList[_local5] != undefined){ _local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]); _local3 = 0; while (_local3 < _local19.length) { _local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue}; _local3++; }; } else { _local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]}; }; }; }; }; for (_local5 in _local10) { if (_specialPropertyList[_local5] != undefined){ _local10[_local5].isSpecialProperty = true; } else { if (_local6[0][_local5] == undefined){ printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property.")); }; }; }; for (_local5 in _local12) { if (_local10[_local5] != undefined){ _local10[_local5].modifierParameters = _local12[_local5].modifierParameters; _local10[_local5].modifierFunction = _local12[_local5].modifierFunction; }; }; if (typeof(_local7.transition) == "string"){ _local20 = _local7.transition.toLowerCase(); _local13 = _transitionList[_local20]; } else { _local13 = _local7.transition; }; if (!Boolean(_local13)){ _local13 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local6.length) { _local14 = new Object(); for (_local5 in _local10) { _local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters); }; if (_local7.useFrames == true){ _local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams); } else { _local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams); }; _local15.properties = _local14; _local15.onStart = _local7.onStart; _local15.onUpdate = _local7.onUpdate; _local15.onComplete = _local7.onComplete; _local15.onOverwrite = _local7.onOverwrite; _local15.onError = _local7.onError; _local15.onStartParams = _local7.onStartParams; _local15.onUpdateParams = _local7.onUpdateParams; _local15.onCompleteParams = _local7.onCompleteParams; _local15.onOverwriteParams = _local7.onOverwriteParams; _local15.onStartScope = _local7.onStartScope; _local15.onUpdateScope = _local7.onUpdateScope; _local15.onCompleteScope = _local7.onCompleteScope; _local15.onOverwriteScope = _local7.onOverwriteScope; _local15.onErrorScope = _local7.onErrorScope; _local15.rounded = _local7.rounded; _local15.skipUpdates = _local7.skipUpdates; if (((_local7.overwrite == undefined)) ? autoOverwrite : _local7.overwrite){ removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete); }; _tweenList.push(_local15); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local16 = (_tweenList.length - 1); updateTweenByIndex(_local16); removeTweenByIndex(_local16); }; _local3++; }; return (true); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function printError(_arg1:String):void{ trace(("## [Tweener] Error: " + _arg1)); } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local4:Boolean; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; if (!Boolean(_tweenList)){ return ([]); }; var _local4:Array = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = getCurrentTweeningTime(_local2); _local2.isPaused = true; return (true); } public static function getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; if (!Boolean(_tweenList)){ return (0); }; var _local3:Number = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removedLocally:Boolean; var i:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; var removed:Boolean; var tl:uint = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; try { _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); } catch(e:Error) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ if (!_inited){ init(); }; var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 94
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var hasStarted:Boolean; public var onUpdate:Function; public var useFrames:Boolean; public var count:Number; public var onOverwriteParams:Array; public var timeStart:Number; public var timeComplete:Number; public var onStartParams:Array; public var onUpdateScope:Object; public var rounded:Boolean; public var onUpdateParams:Array; public var properties:Object; public var onComplete:Function; public var transitionParams:Object; public var updatesSkipped:Number; public var onStart:Function; public var onOverwriteScope:Object; public var skipUpdates:Number; public var onStartScope:Object; public var scope:Object; public var isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var onError:Function; public var timesCalled:Number; public var onErrorScope:Object; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public var onCompleteScope:Object; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; transitionParams = _arg6; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local3:String; var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onError = onError; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; _local2.onStartScope = onStartScope; _local2.onUpdateScope = onUpdateScope; _local2.onCompleteScope = onCompleteScope; _local2.onOverwriteScope = onOverwriteScope; _local2.onErrorScope = onErrorScope; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local3:String; var _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); var _local2:Boolean; for (_local3 in properties) { if (!_local2){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local3].name)); _local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete)); _local1 = (_local1 + "]"); _local2 = false; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); _local1 = (_local1 + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ _local1 = (_local1 + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ _local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ _local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ _local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ _local1 = (_local1 + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } public static function makePropertiesChain(_arg1:Object):Object{ var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local2:Object = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 95
//ToolTip (com.hybrid.ui.ToolTip) package com.hybrid.ui { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.text.*; import fl.transitions.*; import flash.utils.*; import fl.transitions.easing.*; import flash.filters.*; public class ToolTip extends Sprite { private var _titleEmbed:Boolean;// = false private var _cf:TextField; private var _align:String;// = "center" private var _delay:Number;// = 0 private var _tf:TextField; private var _hookOffSet:Number; private var _offSet:Number; private var _styleOverride:Boolean;// = false private var _hookSize:Number;// = 10 private var _contentOverride:Boolean;// = false private var _cornerRadius:Number;// = 12 private var _autoSize:Boolean;// = false private var _titleFormat:TextFormat; private var _contentEmbed:Boolean;// = false private var _titleOverride:Boolean;// = false private var _defaultHeight:Number; private var _border:Number; private var _contentFormat:TextFormat; private var _timer:Timer; private var _buffer:Number;// = 10 private var _bgAlpha:Number;// = 1 private var _defaultWidth:Number;// = 200 private var _hookEnabled:Boolean;// = false private var _contentContainer:Sprite; private var _parentObject:DisplayObject; private var _tween:Tween; private var _stylesheet:StyleSheet; private var _borderSize:Number;// = 1 private var _bgColors:Array; private var _stage:Stage; public function ToolTip():void{ _contentContainer = new Sprite(); _bgColors = [0xFFFFFF, 0x9C9C9C]; super(); this.mouseEnabled = false; this.buttonMode = false; this.mouseChildren = false; _timer = new Timer(this._delay, 1); _timer.addEventListener("timer", timerHandler); } private function initContentFormat():void{ _contentFormat = new TextFormat(); _contentFormat.font = "_sans"; _contentFormat.bold = false; _contentFormat.size = 14; _contentFormat.color = 0x333333; } private function drawBG():void{ var _local9:Number; var _local10:Number; var _local11:Number; this.graphics.clear(); var _local1:Rectangle = this.getBounds(this); var _local2:Number = (isNaN(this._defaultHeight)) ? (_local1.height + (this._buffer * 2)) : this._defaultHeight; var _local3:String = GradientType.LINEAR; var _local4:Array = [this._bgAlpha, this._bgAlpha]; var _local5:Array = [0, 0xFF]; var _local6:Matrix = new Matrix(); var _local7:Number = ((90 * Math.PI) / 180); _local6.createGradientBox(this._defaultWidth, _local2, _local7, 0, 0); var _local8:String = SpreadMethod.PAD; if (!isNaN(this._border)){ this.graphics.lineStyle(_borderSize, _border, 1); }; this.graphics.beginGradientFill(_local3, this._bgColors, _local4, _local5, _local6, _local8); if (this._hookEnabled){ _local9 = 0; _local10 = 0; _local11 = this._defaultWidth; this.graphics.moveTo((_local9 + this._cornerRadius), _local10); this.graphics.lineTo(((_local9 + _local11) - this._cornerRadius), _local10); this.graphics.curveTo((_local9 + _local11), _local10, (_local9 + _local11), (_local10 + this._cornerRadius)); this.graphics.lineTo((_local9 + _local11), ((_local10 + _local2) - this._cornerRadius)); this.graphics.curveTo((_local9 + _local11), (_local10 + _local2), ((_local9 + _local11) - this._cornerRadius), (_local10 + _local2)); this.graphics.lineTo(((_local9 + this._hookOffSet) + this._hookSize), (_local10 + _local2)); this.graphics.lineTo((_local9 + this._hookOffSet), ((_local10 + _local2) + this._hookSize)); this.graphics.lineTo(((_local9 + this._hookOffSet) - this._hookSize), (_local10 + _local2)); this.graphics.lineTo((_local9 + this._cornerRadius), (_local10 + _local2)); this.graphics.curveTo(_local9, (_local10 + _local2), _local9, ((_local10 + _local2) - this._cornerRadius)); this.graphics.lineTo(_local9, (_local10 + this._cornerRadius)); this.graphics.curveTo(_local9, _local10, (_local9 + this._cornerRadius), _local10); this.graphics.endFill(); } else { this.graphics.drawRoundRect(0, 0, this._defaultWidth, _local2, this._cornerRadius); }; } public function set delay(_arg1:Number):void{ this._delay = _arg1; this._timer.delay = _arg1; } public function set cornerRadius(_arg1:Number):void{ this._cornerRadius = _arg1; } public function set buffer(_arg1:Number):void{ this._buffer = _arg1; } public function set hookSize(_arg1:Number):void{ this._hookSize = _arg1; } public function set hook(_arg1:Boolean):void{ this._hookEnabled = _arg1; } public function set stylesheet(_arg1:StyleSheet):void{ this._stylesheet = _arg1; this._styleOverride = true; } public function get bgAlpha():Number{ return (this._bgAlpha); } public function set borderSize(_arg1:Number):void{ this._borderSize = _arg1; } public function set contentFormat(_arg1:TextFormat):void{ this._contentFormat = _arg1; if (this._contentFormat.font == null){ this._contentFormat.font = "_sans"; }; this._contentOverride = true; } public function set align(_arg1:String):void{ var _local2:String = _arg1.toLowerCase(); var _local3 = "right left center"; if (_local3.indexOf(_arg1) == -1){ throw (new Error((this + " : Invalid Align Property, options are: 'right', 'left' & 'center'"))); }; this._align = _local2; } private function follow(_arg1:Boolean):void{ if (_arg1){ addEventListener(Event.ENTER_FRAME, this.eof); } else { removeEventListener(Event.ENTER_FRAME, this.eof); }; } public function set bgAlpha(_arg1:Number):void{ this._bgAlpha = _arg1; } private function addCopy(_arg1:String, _arg2:String=null):void{ var _local3:Rectangle; var _local4:Number; if (this._tf == null){ this._tf = this.createField(this._titleEmbed); }; if (this._styleOverride){ this._tf.styleSheet = this._stylesheet; }; this._tf.htmlText = _arg1; if (!this._styleOverride){ if (!this._titleOverride){ this.initTitleFormat(); }; this._tf.setTextFormat(this._titleFormat); }; if (this._autoSize){ this._defaultWidth = ((this._tf.textWidth + 4) + (_buffer * 2)); } else { this._tf.width = (this._defaultWidth - (_buffer * 2)); }; this._tf.x = (this._tf.y = this._buffer); this.textGlow(this._tf); this._contentContainer.addChild(this._tf); if (_arg2 != null){ if (this._cf == null){ this._cf = this.createField(this._contentEmbed); }; if (this._styleOverride){ this._cf.styleSheet = this._stylesheet; }; this._cf.htmlText = _arg2; if (!this._styleOverride){ if (!this._contentOverride){ this.initContentFormat(); }; this._cf.setTextFormat(this._contentFormat); }; _local3 = this.getBounds(this); this._cf.x = this._buffer; this._cf.y = (this._tf.y + this._tf.textHeight); this.textGlow(this._cf); if (this._autoSize){ _local4 = ((this._cf.textWidth + 4) + (_buffer * 2)); this._defaultWidth = ((_local4 > this._defaultWidth)) ? _local4 : this._defaultWidth; } else { this._cf.width = (this._defaultWidth - (_buffer * 2)); }; this._contentContainer.addChild(this._cf); }; } public function setContent(_arg1:String, _arg2:String=null):void{ this.graphics.clear(); this.addCopy(_arg1, _arg2); this.setOffset(); this.drawBG(); } private function position():void{ var _local1:Number = 3; var _local2:Point = new Point(_parentObject.mouseX, _parentObject.mouseY); var _local3:Point = _parentObject.localToGlobal(_local2); var _local4:Number = (_local3.x + this._offSet); var _local5:Number = ((_local3.y - this.height) - 10); var _local6:Number = (this._defaultWidth + _local4); if (_local6 > stage.stageWidth){ _local4 = (stage.stageWidth - this._defaultWidth); }; if (_local4 < 0){ _local4 = 0; }; if (_local5 < 0){ _local5 = 0; }; this.x = (this.x + ((_local4 - this.x) / _local1)); this.y = (this.y + ((_local5 - this.y) / _local1)); } private function addedToStage(_arg1:DisplayObject):Boolean{ var _local2:Stage = _arg1.stage; return (((_local2 == null)) ? false : true); } public function get buffer():Number{ return (this._buffer); } public function hide():void{ this.animate(false); } public function set tipHeight(_arg1:Number):void{ this._defaultHeight = _arg1; } private function onComplete(_arg1:TweenEvent):void{ _arg1.currentTarget.removeEventListener(_arg1.type, arguments.callee); this.cleanUp(); } public function set contentEmbed(_arg1:Boolean):void{ this._contentEmbed = _arg1; } private function timerHandler(_arg1:TimerEvent):void{ this.animate(true); } public function set tipWidth(_arg1:Number):void{ this._defaultWidth = _arg1; } private function initTitleFormat():void{ _titleFormat = new TextFormat(); _titleFormat.font = "_sans"; _titleFormat.bold = true; _titleFormat.size = 20; _titleFormat.color = 0x333333; } public function set autoSize(_arg1:Boolean):void{ this._autoSize = _arg1; } private function setOffset():void{ switch (this._align){ case "left": this._offSet = ((-(_defaultWidth) + (_buffer * 3)) + this._hookSize); this._hookOffSet = ((this._defaultWidth - (_buffer * 3)) - this._hookSize); break; case "right": this._offSet = ((0 - (_buffer * 3)) - this._hookSize); this._hookOffSet = ((_buffer * 3) + this._hookSize); break; case "center": this._offSet = -((_defaultWidth / 2)); this._hookOffSet = (_defaultWidth / 2); break; default: this._offSet = -((_defaultWidth / 2)); this._hookOffSet = (_defaultWidth / 2); break; }; } private function cleanUp():void{ this._parentObject.removeEventListener(MouseEvent.MOUSE_OUT, this.onMouseOut); this.follow(false); if (this._tf){ this._tf.filters = []; }; this.filters = []; if (this._tf){ this._contentContainer.removeChild(this._tf); }; this._tf = null; if (this._cf != null){ this._cf.filters = []; this._contentContainer.removeChild(this._cf); }; this.graphics.clear(); removeChild(this._contentContainer); parent.removeChild(this); } private function createField(_arg1:Boolean):TextField{ var _local2:TextField = new TextField(); _local2.embedFonts = _arg1; _local2.gridFitType = "pixel"; _local2.autoSize = TextFieldAutoSize.LEFT; _local2.selectable = false; if (!this._autoSize){ _local2.multiline = true; _local2.wordWrap = true; }; return (_local2); } private function textGlow(_arg1:TextField):void{ var _local2:Number = 0; var _local3:Number = 0.35; var _local4:Number = 2; var _local5:Number = 2; var _local6:Number = 1; var _local7:Boolean; var _local8:Boolean; var _local9:Number = BitmapFilterQuality.HIGH; var _local10:GlowFilter = new GlowFilter(_local2, _local3, _local4, _local5, _local6, _local9, _local7, _local8); var _local11:Array = new Array(); _local11.push(_local10); _arg1.filters = _local11; } private function bgGlow():void{ var _local1:Number = 0; var _local2:Number = 0.2; var _local3:Number = 5; var _local4:Number = 5; var _local5:Number = 1; var _local6:Boolean; var _local7:Boolean; var _local8:Number = BitmapFilterQuality.HIGH; var _local9:GlowFilter = new GlowFilter(_local1, _local2, _local3, _local4, _local5, _local8, _local6, _local7); var _local10:Array = new Array(); _local10.push(_local9); filters = _local10; } public function set titleFormat(_arg1:TextFormat):void{ this._titleFormat = _arg1; if (this._titleFormat.font == null){ this._titleFormat.font = "_sans"; }; this._titleOverride = true; } private function onMouseOut(_arg1:MouseEvent):void{ _arg1.currentTarget.removeEventListener(_arg1.type, arguments.callee); this.hide(); } public function set colors(_arg1:Array):void{ this._bgColors = _arg1; } private function animate(_arg1:Boolean):void{ var _local2:int = ((_arg1 == true)) ? 1 : 0; if (((!((_tween == null))) && (_tween.isPlaying))){ _tween.stop(); }; _tween = new Tween(this, "alpha", Strong.easeOut, this.alpha, _local2, 0.5, true); if (!_arg1){ _tween.addEventListener(TweenEvent.MOTION_FINISH, onComplete); _timer.reset(); }; } public function set border(_arg1:Number):void{ this._border = _arg1; } public function set titleEmbed(_arg1:Boolean):void{ this._titleEmbed = _arg1; } private function eof(_arg1:Event):void{ this.position(); } public function show(_arg1:DisplayObject, _arg2:String, _arg3:String=null):void{ this._stage = _arg1.stage; this._parentObject = _arg1; var _local4:Boolean = this.addedToStage(this._contentContainer); if (!_local4){ this.addChild(this._contentContainer); }; this.addCopy(_arg2, _arg3); this.setOffset(); this.drawBG(); this.bgGlow(); var _local5:Point = new Point(_parentObject.mouseX, _parentObject.mouseY); var _local6:Point = _arg1.localToGlobal(_local5); this.x = (_local6.x + this._offSet); this.y = ((_local6.y - this.height) - 10); this.alpha = 0; this._stage.addChild(this); this._parentObject.addEventListener(MouseEvent.MOUSE_OUT, this.onMouseOut); this.follow(true); _timer.start(); } } }//package com.hybrid.ui
Section 96
//Particles (core.effects.Particles) package core.effects { import flash.events.*; import flash.display.*; import effects.*; import flash.geom.*; import flash.utils.*; public class Particles extends Sprite { private var timer:Timer; private var offsets:Array; private var bmp_ori:Bitmap; private var bmps:Array; private var time_k:Number;// = 0 public function Particles(_arg1:Bitmap, _arg2:Point){ var _local4:int; bmps = new Array(); offsets = new Array(); super(); var _local3:int = (3 + (Math.random() * 4)); _local4 = 0; while (_local4 < _local3) { bmps.push(new Bitmap()); bmps[_local4].bitmapData = _arg1.bitmapData; bmps[_local4].x = _arg2.x; bmps[_local4].y = _arg2.y; bmps[_local4].transform.colorTransform = BubbleColor.getRandomColor(); offsets.push(new Point(((-6 * Math.random()) + 3), (-3 - (5 * Math.random())))); addChild(bmps[_local4]); _local4++; }; addEventListener(Event.ENTER_FRAME, render); timer = new Timer(3000); timer.addEventListener(TimerEvent.TIMER, eventTimer); timer.start(); } private function eventTimer(_arg1:TimerEvent):void{ if (parent){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, eventTimer); timer = null; parent.removeChild(this); }; } private function render(_arg1:Event):void{ var _local2:int; _local2 = 0; while (_local2 < offsets.length) { bmps[_local2].x = (bmps[_local2].x + offsets[_local2].x); bmps[_local2].y = (bmps[_local2].y + offsets[_local2].y); offsets[_local2].y = (offsets[_local2].y + 0.1); if (offsets[_local2].y > 0){ bmps[_local2].alpha = (1 - offsets[_local2].y); if (bmps[_local2].alpha < 0){ bmps[_local2].alpha = 0; }; }; _local2++; }; } } }//package core.effects
Section 97
//YesOrNoDialog (core.gui.YesOrNoDialog) package core.gui { import flash.events.*; import flash.display.*; import flash.geom.*; public class YesOrNoDialog extends Sprite { private var button_yes:SimpleButton; private var button_no:SimpleButton; public function YesOrNoDialog(_arg1:Array, _arg2:Point, _arg3:Point, _arg4:Point){ if (((!(_arg1)) || ((_arg1.length < 3)))){ return; }; var _local5:MovieClip = (_arg1[0] as MovieClip); _local5.x = _arg2.x; _local5.y = _arg2.y; addChild(_local5); button_yes = (_arg1[1] as SimpleButton); button_yes.x = (_local5.x + _arg3.x); button_yes.y = (_local5.y + _arg3.y); addChild(button_yes); button_yes.addEventListener(MouseEvent.CLICK, eventPressButtonYes); button_no = (_arg1[2] as SimpleButton); button_no.x = (_local5.x + _arg4.x); button_no.y = (_local5.y + _arg4.y); addChild(button_no); button_no.addEventListener(MouseEvent.CLICK, eventPressButtonNo); } private function eventPressButtonYes(_arg1:MouseEvent):void{ dispatchEvent(new YesOrNoDialogEvent(YesOrNoDialogEvent.YES_PRESSED, true)); } private function eventPressButtonNo(_arg1:MouseEvent):void{ dispatchEvent(new YesOrNoDialogEvent(YesOrNoDialogEvent.NO_PRESSED, true)); } } }//package core.gui
Section 98
//YesOrNoDialogEvent (core.gui.YesOrNoDialogEvent) package core.gui { import flash.events.*; public class YesOrNoDialogEvent extends Event { public static const YES_PRESSED:String = "yes_pressed"; public static const NO_PRESSED:String = "no_pressed"; public function YesOrNoDialogEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, cancelable); } override public function toString():String{ return (formatToString("YesOrNoDialogEvent", "type", "bubbles", "cancenable", "eventPhase")); } override public function clone():Event{ return (new YesOrNoDialogEvent(type, bubbles, cancelable)); } } }//package core.gui
Section 99
//SoundMaster (core.sound.SoundMaster) package core.sound { public class SoundMaster { private var sfx_data:Array; private var bEnable:Boolean;// = true public function SoundMaster(_arg1:Array){ sfx_data = _arg1; } public function play(_arg1:int, _arg2:Boolean=false):void{ if ((((((_arg1 < 0)) || ((_arg1 >= sfx_data.length)))) || (!(bEnable)))){ return; }; sfx_data[_arg1].play(_arg2); } public function stop(_arg1:int):void{ if ((((_arg1 < 0)) || ((_arg1 >= sfx_data.length)))){ return; }; sfx_data[_arg1].stop(); } public function pause(_arg1:int):void{ if ((((_arg1 < 0)) || ((_arg1 >= sfx_data.length)))){ return; }; sfx_data[_arg1].pause(); } public function isPlaying(_arg1:int):Boolean{ if ((((_arg1 < 0)) || ((_arg1 >= sfx_data.length)))){ return (false); }; return (sfx_data[_arg1].isPlaying()); } public function setEnable(_arg1:Boolean):void{ bEnable = _arg1; } } }//package core.sound
Section 100
//SoundWrap (core.sound.SoundWrap) package core.sound { import flash.events.*; import flash.media.*; import flash.utils.*; public class SoundWrap extends EventDispatcher { private const end_gap:int = 30; private const start_gap:int = 30; private var pause_time:Number;// = 0 private var place_to_stop:int; private var id_interval_for_looped:int; private var sound_channel:SoundChannel; private var sound:Sound; private var bIsPlaying:Boolean;// = false private var bIsLooped:Boolean;// = false private var bIsPaused:Boolean;// = false public function SoundWrap(_arg1:Sound){ sound = _arg1; } public function stop():void{ if (bIsPlaying){ clearInterval(id_interval_for_looped); if (sound_channel){ sound_channel.stop(); }; sound_channel = null; bIsPlaying = false; }; } public function isPlaying():Boolean{ return (bIsPlaying); } private function eventSoundComplete(_arg1:Event):void{ if (bIsLooped){ play(true); } else { bIsPlaying = false; sound_channel = null; }; } public function pause():void{ if (((((!(bIsPlaying)) || (bIsPaused))) || (!(sound_channel)))){ return; }; pause_time = sound_channel.position; bIsPaused = true; sound_channel.stop(); clearInterval(id_interval_for_looped); } public function play(_arg1:Boolean=false, _arg2:Number=0):SoundChannel{ if (!sound){ return (null); }; if (((bIsPaused) && ((_arg2 == 0)))){ _arg2 = pause_time; } else { if (_arg2 == 0){ _arg2 = start_gap; }; }; bIsPlaying = true; bIsLooped = _arg1; bIsPaused = false; place_to_stop = (sound.length - end_gap); sound_channel = sound.play(_arg2, 0, null); if (!sound_channel){ return (null); }; sound_channel.addEventListener(Event.SOUND_COMPLETE, eventSoundComplete); if (bIsLooped){ id_interval_for_looped = setInterval(eventTestEndMusic, 1); }; return (sound_channel); } private function eventTestEndMusic():void{ if (((((sound_channel) && ((sound_channel.position > place_to_stop)))) && (bIsLooped))){ sound_channel.stop(); sound_channel = sound.play(start_gap, 0, null); }; } } }//package core.sound
Section 101
//IDestroyObject (core.system.IDestroyObject) package core.system { public interface IDestroyObject { function destroy():void; } }//package core.system
Section 102
//BubbleColor (effects.BubbleColor) package effects { import flash.geom.*; public class BubbleColor { public static function getRandomColor():ColorTransform{ var _local1:int = int((Math.random() * 10)); var _local2:ColorTransform = new ColorTransform(); switch (_local1){ case 0: _local2 = new ColorTransform(1, 1, 1); break; case 1: _local2 = new ColorTransform(0, 0, 1); break; case 2: _local2 = new ColorTransform(0, 1, 0); break; case 3: _local2 = new ColorTransform(1, 0, 1); break; case 4: _local2 = new ColorTransform(0, 1, 1); break; case 5: _local2 = new ColorTransform(1, 0, 0); break; case 6: _local2 = new ColorTransform(1, 1, 0); break; case 7: _local2 = new ColorTransform(0, 1, 0.5); break; case 8: _local2 = new ColorTransform(1, 0.5, 0); break; case 9: _local2 = new ColorTransform(0.2, 1, 0.5); break; case 10: _local2 = new ColorTransform(1, 0.5, 0.5); break; }; return (_local2); } } }//package effects
Section 103
//FlyFadeText (effects.FlyFadeText) package effects { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.text.*; import flash.utils.*; public class FlyFadeText extends TextField { private var move_step:Point; private var timer:Timer; private var alpha_state:int;// = 0 private var current_orientation:String;// = "left" private var time_show_text:int;// = 200 public static const CENTERED:String = "centered"; public static const LEFT:String = "left"; public function FlyFadeText(_arg1:String, _arg2:Point, _arg3:Point){ timer = new Timer(200); move_step = new Point(); super(); setMoveOffset(_arg3.x, _arg3.y); autoSize = "left"; text = _arg1; selectable = false; textColor = 0xFFFFFF; blendMode = BlendMode.LAYER; x = (_arg2.x - (width / 2)); y = _arg2.y; alpha = 0; addEventListener(Event.ENTER_FRAME, render); } public function setScreenOrientation(_arg1:String):void{ if (_arg1 == FlyFadeText.CENTERED){ x = ((600 / 2) - (width / 2)); }; } public function setMoveOffset(_arg1:Number, _arg2:Number):void{ move_step.x = _arg1; move_step.y = _arg2; } private function eventTimer(_arg1:TimerEvent):void{ alpha_state = 3; timer.removeEventListener(TimerEvent.TIMER, eventTimer); timer.stop(); } private function render(_arg1:Event):void{ if (alpha_state == 0){ alpha = (alpha + 0.05); if (alpha > 1){ alpha = 1; alpha_state = 1; }; } else { if (alpha_state == 1){ timer.addEventListener(TimerEvent.TIMER, eventTimer); timer.delay = time_show_text; timer.start(); alpha_state = 2; } else { if (alpha_state == 3){ alpha = (alpha - 0.05); if (alpha < 0){ alpha = 0; alpha_state = 4; }; } else { if (alpha_state == 4){ if (parent){ removeEventListener(Event.ENTER_FRAME, render); parent.removeChild(this); }; }; }; }; }; x = (x + move_step.x); y = (y + move_step.y); } public function setTimeShowText(_arg1:int):void{ time_show_text = _arg1; } } }//package effects
Section 104
//HidedBubble (effects.HidedBubble) package effects { import flash.events.*; import flash.display.*; public class HidedBubble extends Sprite { private var scale_step:Number; public function HidedBubble(_arg1:int, _arg2:int, _arg3:int){ if (_arg3 < 1){ _arg3 = 1; }; scale_step = ((1000 / _arg3) / 30); addEventListener(Event.ENTER_FRAME, render); var _local4:Bitmap = new Bitmap(); _local4.bitmapData = Main.texture_storage.GetBallsTextures()[TextureStorage.BALL_MINI_MOVE_PATH_INDEX][0].bitmapData; addChild(_local4); x = ((_arg1 + 5) - (10 * Math.random())); y = ((_arg2 + 5) - (10 * Math.random())); scaleX = (0.5 + (0.5 * Math.random())); scaleY = scaleX; } private function render(_arg1:Event):void{ scaleX = (scaleX - scale_step); scaleY = (scaleY - scale_step); if ((((scaleX <= 0)) || ((scaleY <= 0)))){ this.parent.removeChild(this); removeEventListener(Event.ENTER_FRAME, render); }; } } }//package effects
Section 105
//LevelCompleteCheck (effects.LevelCompleteCheck) package effects { import flash.events.*; import flash.display.*; import flash.utils.*; public class LevelCompleteCheck extends Bitmap { private var timer:Timer; private var count_blinks:int;// = 0 public function LevelCompleteCheck(_arg1:Boolean){ bitmapData = Main.texture_storage.GetLevelSelectTextures()[0][0].bitmapData; if (_arg1){ timer = new Timer(200, 6); timer.addEventListener(TimerEvent.TIMER, eventTimer); timer.start(); Main.sound_master.play(SfxStorage.SFXID_SOUND_LEVEL_GALKA); }; } private function eventTimer(_arg1:TimerEvent):void{ _arg1.stopPropagation(); visible = !(visible); count_blinks++; if (count_blinks == 6){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, eventTimer); timer = null; }; } } }//package effects
Section 106
//PoppedBubbles (effects.PoppedBubbles) package effects { import flash.events.*; import flash.display.*; public class PoppedBubbles extends Sprite { private var time_k:Number;// = 0 private var bubbles:Array; private static const COUNT_BUBBLES:int = 6; public function PoppedBubbles(_arg1:int, _arg2:int){ var _local3:int; bubbles = new Array(COUNT_BUBBLES); super(); x = _arg1; y = _arg2; _local3 = 0; while (_local3 < COUNT_BUBBLES) { bubbles[_local3] = new PoppedBubblesMoveData((_local3 <= 2)); addChild(bubbles[_local3].spr); _local3++; }; time_k = 0; addEventListener(Event.ENTER_FRAME, render); } private function render(_arg1:Event):void{ var _local2:int; var _local3:int; time_k = (time_k + 0.02); if (this.parent){ _local3 = 0; _local2 = 0; while (_local2 < COUNT_BUBBLES) { if (((bubbles[_local2]) && (bubbles[_local2].update(time_k)))){ removeChild(bubbles[_local2].spr); bubbles[_local2] = null; _local3++; }; _local2++; }; if ((((_local3 == COUNT_BUBBLES)) || ((time_k > 3)))){ this.parent.removeChild(this); removeEventListener(Event.ENTER_FRAME, render); }; }; } } }//package effects
Section 107
//PoppedBubblesMoveData (effects.PoppedBubblesMoveData) package effects { import flash.display.*; public class PoppedBubblesMoveData { public var die_k:Number;// = 1 public var spr:Sprite; public var offset_x:Number;// = 15 public var offset_y:Number;// = -0.02 public function PoppedBubblesMoveData(_arg1:Boolean){ spr = new Sprite(); super(); var _local2:Bitmap = new Bitmap(); _local2.bitmapData = Main.texture_storage.GetBallsTextures()[TextureStorage.BALL_MINI_INDEX][0].bitmapData; spr.addChild(_local2); if (_arg1){ spr.x = (-(Math.random()) * 10); spr.y = ((Math.random() * 20) - 10); } else { spr.x = (Math.random() * 10); spr.y = ((Math.random() * 20) - 10); }; die_k = (0.1 + Math.random()); if (_arg1){ offset_x = -(offset_x); }; offset_y = (-(Math.random()) * 0.4); } public function update(_arg1:Number):Boolean{ if (_arg1 > die_k){ return (true); }; spr.x = (spr.x + ((offset_x * (die_k - _arg1)) / 30)); spr.y = (spr.y + offset_y); return (false); } } }//package effects
Section 108
//SalutController (effects.SalutController) package effects { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import core.effects.*; public class SalutController extends Sprite { private var time_total:int;// = 0 private var timer:Timer; private var duration:int;// = 0 public function SalutController(_arg1:int){ duration = _arg1; timer = new Timer((300 + (Math.random() * 300))); timer.addEventListener(TimerEvent.TIMER, eventTimer); timer.start(); } private function eventTimer(_arg1:TimerEvent):void{ if (!parent){ return; }; var _local2:Point = new Point((100 + (Math.random() * 400)), (100 + (Math.random() * 300))); parent.addChild(new Particles(Main.texture_storage.GetParticlesTextures()[0][0], _local2)); time_total = (time_total + timer.delay); if (time_total >= duration){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, eventTimer); timer = null; if (parent){ parent.removeChild(this); }; } else { timer.stop(); timer = new Timer((300 + (Math.random() * 300))); timer.addEventListener(TimerEvent.TIMER, eventTimer); timer.start(); }; } } }//package effects
Section 109
//VibroBallEffect (effects.VibroBallEffect) package effects { import flash.display.*; public class VibroBallEffect { private var vibro_k_step:Number;// = 0.314159265358979 private var vibro_k:Number;// = 0 private var vibro_now:Boolean;// = false public function update(_arg1:Sprite):void{ var _local2:Number; var _local3:Number; if (vibro_now){ vibro_k = (vibro_k + vibro_k_step); if (vibro_k >= (Math.PI * 4)){ vibro_now = false; vibro_k = (Math.PI * 4); }; _local2 = (((Math.PI * 4) - vibro_k) / (Math.PI * 4)); _local3 = ((Math.sin(vibro_k) * 0.15) * _local2); _arg1.scaleX = (1 + _local3); _arg1.scaleY = (1 - _local3); }; } public function start():void{ vibro_now = true; vibro_k = 0; vibro_k_step = (Math.PI / 6); } } }//package effects
Section 110
//Strong (fl.transitions.easing.Strong) package fl.transitions.easing { public class Strong { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } } }//package fl.transitions.easing
Section 111
//Tween (fl.transitions.Tween) package fl.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false private var _fps:Number;// = NAN private var _time:Number;// = NAN public var begin:Number;// = NAN private var _finish:Number;// = NAN public var change:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function get position():Number{ return (this.getPosition(this._time)); } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 112
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var position:Number;// = NAN public var time:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 113
//Level01 (levels.Level01) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; import bonuses.*; public class Level01 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:StaticBall; if (pause){ return; }; angle = (angle + (Math.PI / 360)); var _local7:Number = (_local4 + (Math.cos(((_local3 * Math.PI) / 3)) * 30)); var _local8:Number = (_local5 + (Math.sin(((_local3 * Math.PI) / 3)) * 30)); _local2 = 0; while (_local2 < 3) { _local4 = (100 + (200 * _local2)); _local5 = 70; _local3 = 0; while (_local3 < 6) { if (_arg1[((1 + (_local2 * 7)) + _local3)] == null){ } else { _local7 = (_local4 + (Math.cos((((_local3 * Math.PI) / 3) + angle)) * 30)); _local8 = (_local5 + (Math.sin((((_local3 * Math.PI) / 3) + angle)) * 30)); _arg1[((1 + (_local2 * 7)) + _local3)].x = _local7; _arg1[((1 + (_local2 * 7)) + _local3)].y = _local8; }; _local3++; }; _local2++; }; _local2 = 0; while (_local2 < 2) { _local4 = (200 + (200 * _local2)); _local5 = 170; _local3 = 0; while (_local3 < 6) { if (_arg1[((28 + (_local2 * 7)) + _local3)] == null){ } else { _local7 = (_local4 + (Math.cos((((_local3 * Math.PI) / 3) + angle)) * 30)); _local8 = (_local5 + (Math.sin((((_local3 * Math.PI) / 3) + angle)) * 30)); _arg1[((28 + (_local2 * 7)) + _local3)].x = _local7; _arg1[((28 + (_local2 * 7)) + _local3)].y = _local8; }; _local3++; }; _local2++; }; _local2 = 0; while (_local2 < 1) { _local4 = (300 + (300 * _local2)); _local5 = 270; _local3 = 0; while (_local3 < 6) { if (_arg1[((45 + (_local2 * 7)) + _local3)] == null){ } else { _local7 = (_local4 + (Math.cos((((_local3 * Math.PI) / 3) + angle)) * 30)); _local8 = (_local5 + (Math.sin((((_local3 * Math.PI) / 3) + angle)) * 30)); _arg1[((45 + (_local2 * 7)) + _local3)].x = _local7; _arg1[((45 + (_local2 * 7)) + _local3)].y = _local8; }; _local3++; }; _local2++; }; } public function setupLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:StaticBall; _arg1.splice(0, _arg1.length); var _local7:Number = (_local4 + (Math.cos(((_local3 * Math.PI) / 3)) * 30)); var _local8:Number = (_local5 + (Math.sin(((_local3 * Math.PI) / 3)) * 30)); _local2 = 0; while (_local2 < 3) { _local4 = (100 + (200 * _local2)); _local5 = 70; _local6 = new StaticBall(_local4, _local5, TextureStorage.BALL_YELLOW_INDEX); if (_local2 == 0){ _local6.attachBonus(new MegaPointsBonus(300)); } else { if (_local2 == 1){ _local6.attachBonus(new SmartPlatformBonus()); } else { if (_local2 == 2){ _local6.attachBonus(new LongPlatformBonus()); }; }; }; _arg1.push(_local6); _local3 = 0; while (_local3 < 6) { _local7 = (_local4 + (Math.cos(((-(Math.PI) / 4) + ((_local3 * Math.PI) / 3))) * 30)); _local8 = (_local5 + (Math.sin(((-(Math.PI) / 4) + ((_local3 * Math.PI) / 3))) * 30)); _local6 = new StaticBall(_local7, _local8, ((_local3 < 4)) ? TextureStorage.BALL_PINK_INDEX : TextureStorage.BALL_VIOLET_INDEX); _arg1.push(_local6); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < 2) { _local4 = (200 + (200 * _local2)); _local5 = 70; _local3 = 0; while (_local3 < 3) { _local7 = (_local4 + (Math.cos((((_local3 * Math.PI) * 2) / 3)) * 17.5)); _local8 = (_local5 + (Math.sin((((_local3 * Math.PI) * 2) / 3)) * 17.5)); _local6 = new StaticBall(_local7, _local8, TextureStorage.BALL_GREEN_INDEX); _arg1.push(_local6); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < 2) { _local4 = (200 + (200 * _local2)); _local5 = 170; _local6 = new StaticBall(_local4, _local5, TextureStorage.BALL_YELLOW_INDEX); if (_local2 == 1){ _local6.attachBonus(new MegaPointsBonus(300)); } else { if (_local2 == 0){ _local6.attachBonus(new MegaPointsBonus(500)); }; }; _arg1.push(_local6); _local3 = 0; while (_local3 < 6) { _local7 = (_local4 + (Math.cos(((_local3 * Math.PI) / 3)) * 30)); _local8 = (_local5 + (Math.sin(((_local3 * Math.PI) / 3)) * 30)); _local6 = new StaticBall(_local7, _local8, ((_local3 < 4)) ? TextureStorage.BALL_PINK_INDEX : TextureStorage.BALL_VIOLET_INDEX); _arg1.push(_local6); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < 1) { _local4 = (300 + (200 * _local2)); _local5 = 170; _local3 = 0; while (_local3 < 3) { _local7 = (_local4 + (Math.cos((((_local3 * Math.PI) * 2) / 3)) * 17.5)); _local8 = (_local5 + (Math.sin((((_local3 * Math.PI) * 2) / 3)) * 17.5)); _local6 = new StaticBall(_local7, _local8, TextureStorage.BALL_GREEN_INDEX); _arg1.push(_local6); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < 1) { _local4 = (300 + (300 * _local2)); _local5 = 270; _local6 = new StaticBall(_local4, _local5, TextureStorage.BALL_YELLOW_INDEX); _local6.attachBonus(new MegaPointsBonus(300)); _arg1.push(_local6); _local3 = 0; while (_local3 < 6) { _local7 = (_local4 + (Math.cos(((_local3 * Math.PI) / 3)) * 30)); _local8 = (_local5 + (Math.sin(((_local3 * Math.PI) / 3)) * 30)); _local6 = new StaticBall(_local7, _local8, ((_local3 < 4)) ? TextureStorage.BALL_PINK_INDEX : TextureStorage.BALL_VIOLET_INDEX); _arg1.push(_local6); _local3++; }; _local2++; }; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(0), new Point(1150, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } } }//package levels
Section 114
//Level04 (levels.Level04) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level04 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private static const COUNT_BALLS:int = 67; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(2), new Point(230, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local3:StaticBall; var _local4:ColorAutoChangedBall; var _local5:Number; var _local6:Number; var _local7:int; _arg1.splice(0, _arg1.length); var _local2:int; _local2 = 0; while (_local2 < COUNT_BALLS) { _local7 = TextureStorage.BALL_ORANGE_INDEX; if ((((_local2 >= 0)) && ((_local2 < 1)))){ _local7 = TextureStorage.BALL_YELLOW_INDEX; _local4 = new ColorAutoChangedBall(300, (25 + 75), _local7); _local4.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_YELLOW_INDEX); _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); } else { if ((((_local2 >= 1)) && ((_local2 < (1 + 6))))){ _local7 = (((_local2 % 2) == 0)) ? TextureStorage.BALL_ORANGE_INDEX : TextureStorage.BALL_GREEN_INDEX; _local4 = new ColorAutoChangedBall(0, 0, _local7); if ((_local2 % 2) == 0){ _local4.setColorList(TextureStorage.BALL_ORANGE_INDEX, TextureStorage.BALL_GREEN_INDEX); } else { _local4.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_ORANGE_INDEX); }; _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); } else { if ((((_local2 >= (1 + 6))) && ((_local2 < ((1 + 6) + 12))))){ _local7 = ((((_local2 / 2) % 2) == 0)) ? TextureStorage.BALL_PINK_INDEX : TextureStorage.BALL_VIOLET_INDEX; _local4 = new ColorAutoChangedBall(0, 0, _local7); if (((((((((((((_local2 - 7) == 0)) || (((_local2 - 7) == 1)))) || (((_local2 - 7) == 4)))) || (((_local2 - 7) == 5)))) || (((_local2 - 7) == 8)))) || (((_local2 - 7) == 9)))){ _local4.setColorList(TextureStorage.BALL_PINK_INDEX, TextureStorage.BALL_VIOLET_INDEX); } else { _local4.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); }; _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); } else { if ((((_local2 >= ((1 + 6) + 12))) && ((_local2 < (((1 + 6) + 12) + 1))))){ _local7 = TextureStorage.BALL_VIOLET_INDEX; _local4 = new ColorAutoChangedBall(106, (25 + 122), _local7); _local4.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_BLUE_INDEX); _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); } else { if ((((_local2 >= ((1 + 6) + 12))) && ((_local2 < ((((1 + 6) + 12) + 1) + (5 * 3)))))){ _local7 = TextureStorage.BALL_VIOLET_INDEX; _local4 = new ColorAutoChangedBall(0, 0, _local7); if ((_local2 - 19) == 0){ _local4.setColorList(TextureStorage.BALL_BLUE_INDEX, TextureStorage.BALL_VIOLET_INDEX); } else { if (((((_local2 - 19) > 0)) && (((_local2 - 19) < 6)))){ _local4.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_ORANGE_INDEX); } else { _local4.setColorList(TextureStorage.BALL_RED_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); }; }; _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); } else { if ((((_local2 >= ((((1 + 6) + 12) + 1) + (5 * 3)))) && ((_local2 < (((((1 + 6) + 12) + 1) + (5 * 3)) + 1))))){ _local7 = TextureStorage.BALL_VIOLET_INDEX; _local4 = new ColorAutoChangedBall((600 - 106), (25 + 122), _local7); _local4.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); } else { if ((((_local2 >= (((((1 + 6) + 12) + 1) + (5 * 3)) + 1))) && ((_local2 < ((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)))))){ _local7 = TextureStorage.BALL_VIOLET_INDEX; _local4 = new ColorAutoChangedBall(0, 0, _local7); if ((_local2 - (((((1 + 6) + 12) + 1) + (5 * 3)) + 1)) == 0){ _local4.setColorList(TextureStorage.BALL_BLUE_INDEX, TextureStorage.BALL_VIOLET_INDEX); } else { if (((((_local2 - (((((1 + 6) + 12) + 1) + (5 * 3)) + 1)) > 0)) && (((_local2 - (((((1 + 6) + 12) + 1) + (5 * 3)) + 1)) < 6)))){ _local4.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_ORANGE_INDEX); } else { _local4.setColorList(TextureStorage.BALL_RED_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); }; }; _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); } else { if ((((_local2 >= ((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)))) && ((_local2 < (((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)) + 1))))){ _local7 = TextureStorage.BALL_VIOLET_INDEX; _local4 = new ColorAutoChangedBall(300, (25 + 0xFF), _local7); _local4.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); } else { if ((((_local2 >= (((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)) + 1))) && ((_local2 < ((((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)) + 1) + (5 * 3)))))){ _local7 = TextureStorage.BALL_VIOLET_INDEX; _local4 = new ColorAutoChangedBall(0, 0, _local7); if ((_local2 - (((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)) + 1)) == 0){ _local4.setColorList(TextureStorage.BALL_BLUE_INDEX, TextureStorage.BALL_VIOLET_INDEX); } else { if (((((_local2 - (((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)) + 1)) > 0)) && (((_local2 - (((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)) + 1)) < 6)))){ _local4.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_ORANGE_INDEX); } else { _local4.setColorList(TextureStorage.BALL_RED_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); }; }; _local4.startAutoChangeColors(2000, true); _arg1.push(_local4); }; }; }; }; }; }; }; }; }; _local2++; }; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:StaticBall; var _local7:Number; var _local8:Number; var _local10:int; if (pause){ return; }; var _local9:Number = 0; var _local11:Number = 1; _local2 = 1; while (_local2 < (1 + 6)) { _local4 = (300 + ((Math.cos(((((_local2 - 1) * Math.PI) / 3) + angle)) * StaticBall.RADIUS) * 2)); _local5 = ((25 + 75) + ((Math.sin(((((_local2 - 1) * Math.PI) / 3) + angle)) * StaticBall.RADIUS) * 2)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = (1 + 6); while (_local2 < ((1 + 6) + 12)) { _local4 = (300 + ((Math.cos((((((_local2 - 1) - 6) * Math.PI) / 6) - angle)) * StaticBall.RADIUS) * 4)); _local5 = ((25 + 75) + ((Math.sin((((((_local2 - 1) - 6) * Math.PI) / 6) - angle)) * StaticBall.RADIUS) * 4)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = (((1 + 6) + 12) + 1); while (_local2 < ((((1 + 6) + 12) + 1) + (5 * 1))) { _local4 = (106 + ((Math.cos(((((((((_local2 - 1) - 6) - 12) - 1) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 2)); _local5 = ((25 + 122) + ((Math.sin(((((((((_local2 - 1) - 6) - 12) - 1) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 2)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = ((((1 + 6) + 12) + 1) + (5 * 1)); while (_local2 < ((((1 + 6) + 12) + 1) + (5 * 2))) { _local4 = (106 + ((Math.cos((((((((((_local2 - 1) - 6) - 12) - 1) * Math.PI) * 2) / 5) - angle) - (Math.PI / 12))) * StaticBall.RADIUS) * 4)); _local5 = ((25 + 122) + ((Math.sin((((((((((_local2 - 1) - 6) - 12) - 1) * Math.PI) * 2) / 5) - angle) - (Math.PI / 12))) * StaticBall.RADIUS) * 4)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = ((((1 + 6) + 12) + 1) + (5 * 2)); while (_local2 < ((((1 + 6) + 12) + 1) + (5 * 3))) { _local4 = (106 + ((Math.cos(((((((((_local2 - 1) - 6) - 12) - 1) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 6)); _local5 = ((25 + 122) + ((Math.sin(((((((((_local2 - 1) - 6) - 12) - 1) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 6)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = (((((1 + 6) + 12) + 1) + (5 * 3)) + 1); while (_local2 < ((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 1))) { _local4 = ((600 - 106) + ((Math.cos(((((((((((_local2 - 1) - 6) - 12) - 1) - (5 * 3)) - 1) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 2)); _local5 = ((25 + 122) + ((Math.sin(((((((((((_local2 - 1) - 6) - 12) - 1) - (5 * 3)) - 1) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 2)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = ((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 1)); while (_local2 < ((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 2))) { _local4 = ((600 - 106) + ((Math.cos((((((((((((_local2 - 1) - 6) - 12) - 1) - (5 * 3)) - 1) * Math.PI) * 2) / 5) - angle) - (Math.PI / 12))) * StaticBall.RADIUS) * 4)); _local5 = ((25 + 122) + ((Math.sin((((((((((((_local2 - 1) - 6) - 12) - 1) - (5 * 3)) - 1) * Math.PI) * 2) / 5) - angle) - (Math.PI / 12))) * StaticBall.RADIUS) * 4)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = ((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 2)); while (_local2 < ((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3))) { _local4 = ((600 - 106) + ((Math.cos(((((((((((_local2 - 1) - 6) - 12) - 1) - (5 * 3)) - 1) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 6)); _local5 = ((25 + 122) + ((Math.sin(((((((((((_local2 - 1) - 6) - 12) - 1) - (5 * 3)) - 1) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 6)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; var _local12:int = (((((((1 + 6) + 12) + 1) + (5 * 3)) + 1) + (5 * 3)) + 1); _local2 = _local12; while (_local2 < (_local12 + (5 * 1))) { _local4 = (300 + ((Math.cos((((((_local2 - _local12) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 2)); _local5 = ((25 + 0xFF) + ((Math.sin((((((_local2 - _local12) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 2)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = (_local12 + (5 * 1)); while (_local2 < (_local12 + (5 * 2))) { _local4 = (300 + ((Math.cos(((((((_local2 - _local12) * Math.PI) * 2) / 5) - angle) - (Math.PI / 12))) * StaticBall.RADIUS) * 4)); _local5 = ((25 + 0xFF) + ((Math.sin(((((((_local2 - _local12) * Math.PI) * 2) / 5) - angle) - (Math.PI / 12))) * StaticBall.RADIUS) * 4)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = (_local12 + (5 * 2)); while (_local2 < (_local12 + (5 * 3))) { _local4 = (300 + ((Math.cos((((((_local2 - _local12) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 6)); _local5 = ((25 + 0xFF) + ((Math.sin((((((_local2 - _local12) * Math.PI) * 2) / 5) - angle)) * StaticBall.RADIUS) * 6)); if (_arg1[_local2]){ _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; angle = (angle + (Math.PI / 36)); } } }//package levels
Section 115
//Level08 (levels.Level08) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level08 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; private static const COUNT_BALLS:int = 17; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(3), new Point(230, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:Number; var _local7:Number; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; var _local8:int = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(78, 50, _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 - 15), (50 + 27), _local8); _local5.setColorList(TextureStorage.BALL_PINK_INDEX, TextureStorage.BALL_GREEN_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 + 15), (50 + 27), _local8); _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 - 30), (50 + (27 * 2)), _local8); _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, TextureStorage.BALL_YELLOW_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(78, (50 + (27 * 2)), _local8); _local5.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_VIOLET_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 + 30), (50 + (27 * 2)), _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 - 45), (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_PINK_INDEX, TextureStorage.BALL_GREEN_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 - 15), (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 + 15), (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, TextureStorage.BALL_YELLOW_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 + 45), (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_VIOLET_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 - 30), (50 + (27 * 4)), _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(78, (50 + (27 * 4)), _local8); _local5.setColorList(TextureStorage.BALL_PINK_INDEX, TextureStorage.BALL_GREEN_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 + 30), (50 + (27 * 4)), _local8); _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 - 15), (50 + (27 * 5)), _local8); _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, TextureStorage.BALL_YELLOW_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((78 + 15), (50 + (27 * 5)), _local8); _local5.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_VIOLET_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(78, (50 + (27 * 6)), _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local8 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((600 - 78), 50, _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) - 15), (50 + 27), _local8); _local5.setColorList(TextureStorage.BALL_PINK_INDEX, TextureStorage.BALL_GREEN_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) + 15), (50 + 27), _local8); _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) - 30), (50 + (27 * 2)), _local8); _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, TextureStorage.BALL_YELLOW_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((600 - 78), (50 + (27 * 2)), _local8); _local5.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_VIOLET_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) + 30), (50 + (27 * 2)), _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) - 45), (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_PINK_INDEX, TextureStorage.BALL_GREEN_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) - 15), (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) + 15), (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, TextureStorage.BALL_YELLOW_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) + 45), (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_VIOLET_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) - 30), (50 + (27 * 4)), _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((600 - 78), (50 + (27 * 4)), _local8); _local5.setColorList(TextureStorage.BALL_PINK_INDEX, TextureStorage.BALL_GREEN_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) + 30), (50 + (27 * 4)), _local8); _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) - 15), (50 + (27 * 5)), _local8); _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, TextureStorage.BALL_YELLOW_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall(((600 - 78) + 15), (50 + (27 * 5)), _local8); _local5.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_VIOLET_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local5 = new ColorAutoChangedBall((600 - 78), (50 + (27 * 6)), _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); index_start_center = _arg1.length; _local5 = new ColorAutoChangedBall(300, (50 + (27 * 3)), _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2 = 0; while (_local2 < 6) { _local6 = (300 + (Math.cos(((_local2 * Math.PI) / 3)) * 30)); _local7 = ((50 + (27 * 3)) + (Math.sin(((_local2 * Math.PI) / 3)) * 30)); _local5 = new ColorAutoChangedBall(_local6, _local7, _local8); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX, (TextureStorage.BALL_ORANGE_INDEX - (_local2 % 4))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 12) { _local6 = (300 + (Math.cos(((_local2 * Math.PI) / 6)) * 60)); _local7 = ((50 + (27 * 3)) + (Math.sin(((_local2 * Math.PI) / 6)) * 60)); _local5 = new ColorAutoChangedBall(_local6, _local7, _local8); _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, (TextureStorage.BALL_RED_INDEX + (_local2 % 2)), TextureStorage.BALL_ORANGE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 18) { _local6 = (300 + (Math.cos(((_local2 * Math.PI) / 9)) * 90)); _local7 = ((50 + (27 * 3)) + (Math.sin(((_local2 * Math.PI) / 9)) * 90)); _local5 = new ColorAutoChangedBall(_local6, _local7, _local8); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 4)), TextureStorage.BALL_ORANGE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:StaticBall; var _local7:Number; var _local8:Number; var _local10:int; if (pause){ return; }; var _local9:Number = 0; var _local11:Number = 1; _local2 = 0; while (_local2 < 6) { _local4 = (300 + (Math.cos((((_local2 * Math.PI) / 3) + angle)) * 30)); _local5 = ((50 + (27 * 3)) + (Math.sin((((_local2 * Math.PI) / 3) + angle)) * 30)); if (_arg1[((index_start_center + 1) + _local2)]){ _arg1[((index_start_center + 1) + _local2)].x = _local4; _arg1[((index_start_center + 1) + _local2)].y = _local5; }; _local2++; }; _local2 = 0; while (_local2 < 12) { _local4 = (300 + (Math.cos((((_local2 * Math.PI) / 6) - angle)) * 60)); _local5 = ((50 + (27 * 3)) + (Math.sin((((_local2 * Math.PI) / 6) - angle)) * 60)); if (_arg1[(((index_start_center + 1) + 6) + _local2)]){ _arg1[(((index_start_center + 1) + 6) + _local2)].x = _local4; _arg1[(((index_start_center + 1) + 6) + _local2)].y = _local5; }; _local2++; }; _local2 = 0; while (_local2 < 18) { _local4 = (300 + (Math.cos((((_local2 * Math.PI) / 9) + angle)) * 90)); _local5 = ((50 + (27 * 3)) + (Math.sin((((_local2 * Math.PI) / 9) + angle)) * 90)); if (_arg1[((((index_start_center + 1) + 6) + 12) + _local2)]){ _arg1[((((index_start_center + 1) + 6) + 12) + _local2)].x = _local4; _arg1[((((index_start_center + 1) + 6) + 12) + _local2)].y = _local5; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 116
//Level09 (levels.Level09) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level09 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; private static const COUNT_BALLS:int = 17; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(4), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 6) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((35 + (_local2 * 30)), 40, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 3)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(((600 - 35) - (_local2 * 30)), 40, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 3)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 12; while (_local2 < 18) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((35 + ((_local2 - 12) * 30)), 230, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 3)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(((600 - 35) - ((_local2 - 12) * 30)), 230, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 3)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 24; while (_local2 < 30) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((225 + ((_local2 - 24) * 30)), 40, _local9); _local5.setColorList((TextureStorage.BALL_PINK_INDEX + (_local2 % 3)), (TextureStorage.BALL_BLUE_INDEX + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((225 + ((_local2 - 24) * 30)), 230, _local9); _local5.setColorList((TextureStorage.BALL_PINK_INDEX + (_local2 % 3)), (TextureStorage.BALL_BLUE_INDEX + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 36; while (_local2 < 41) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((285 - 60), (75 + ((_local2 - 36) * 30)), _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((315 + 60), (75 + ((_local2 - 36) * 30)), _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 46; while (_local2 < 48) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((((285 - 60) - 30) - ((_local2 - 46) * 30)), (75 + 60), _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((((315 + 60) + 30) + ((_local2 - 46) * 30)), (75 + 60), _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local9 = TextureStorage.BALL_STONE_INDEX; _local6 = new StoneBall(120, 270, _local9); _arg1.push(_local6); _local9 = TextureStorage.BALL_STONE_INDEX; _local6 = new StoneBall(120, 300, _local9); _arg1.push(_local6); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(94, 285, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 1), (TextureStorage.BALL_PINK_INDEX + 2)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(146, 285, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 1), (TextureStorage.BALL_PINK_INDEX + 2)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_STONE_INDEX; _local6 = new StoneBall(480, 270, _local9); _arg1.push(_local6); _local9 = TextureStorage.BALL_STONE_INDEX; _local6 = new StoneBall(480, 300, _local9); _arg1.push(_local6); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((480 + (94 - 120)), 285, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 1), (TextureStorage.BALL_PINK_INDEX + 2)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((480 + (146 - 120)), 285, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 1), (TextureStorage.BALL_PINK_INDEX + 2)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(240, ((285 - 26) + 10), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 3), TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(240, ((285 + 26) + 10), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 3), TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_STONE_INDEX; _local6 = new StoneBall((240 - 15), (285 + 10), _local9); _arg1.push(_local6); _local9 = TextureStorage.BALL_STONE_INDEX; _local6 = new StoneBall((240 + 15), (285 + 10), _local9); _arg1.push(_local6); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((600 - 240), ((285 - 26) + 10), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 3), TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((600 - 240), ((285 + 26) + 10), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 3), TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_STONE_INDEX; _local6 = new StoneBall((600 - (240 - 15)), (285 + 10), _local9); _arg1.push(_local6); _local9 = TextureStorage.BALL_STONE_INDEX; _local6 = new StoneBall((600 - (240 + 15)), (285 + 10), _local9); _arg1.push(_local6); updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:StaticBall; var _local7:Number; var _local8:Number; var _local10:int; if (pause){ return; }; var _local9:Number = 0; var _local11:Number = 1; _local2 = 0; while (_local2 < 6) { if (_arg1[(_local2 * 2)]){ _arg1[(_local2 * 2)].y = ((40 + 40) - (Math.sin(((angle * 6) + (Math.PI / 2))) * 40)); }; if (_arg1[(1 + (_local2 * 2))]){ _arg1[(1 + (_local2 * 2))].y = ((40 + 40) - (Math.sin(((angle * 6) + (Math.PI / 2))) * 40)); }; _local2++; }; _local2 = 0; while (_local2 < 6) { if (_arg1[(12 + (_local2 * 2))]){ _arg1[(12 + (_local2 * 2))].y = (230 - (40 - (Math.sin(((angle * 6) + (Math.PI / 2))) * 40))); }; if (_arg1[((1 + 12) + (_local2 * 2))]){ _arg1[((1 + 12) + (_local2 * 2))].y = (230 - (40 - (Math.sin(((angle * 6) + (Math.PI / 2))) * 40))); }; _local2++; }; _local2 = 0; while (_local2 < 5) { if (_arg1[(36 + (_local2 * 2))]){ _arg1[(36 + (_local2 * 2))].x = (((285 - 60) + 30) - (Math.sin(((angle * 6) + (Math.PI / 2))) * 30)); }; if (_arg1[((1 + 36) + (_local2 * 2))]){ _arg1[((1 + 36) + (_local2 * 2))].x = (((315 + 60) - 30) + (Math.sin(((angle * 6) + (Math.PI / 2))) * 30)); }; _local2++; }; _local2 = 0; while (_local2 < 2) { if (_arg1[(46 + (_local2 * 2))]){ _arg1[(46 + (_local2 * 2))].x = (((((285 - 60) - 30) - (30 * _local2)) + 30) - (Math.sin(((angle * 6) + (Math.PI / 2))) * 30)); }; if (_arg1[((1 + 46) + (_local2 * 2))]){ _arg1[((1 + 46) + (_local2 * 2))].x = (((((315 + 60) + 30) + (30 * _local2)) - 30) + (Math.sin(((angle * 6) + (Math.PI / 2))) * 30)); }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 117
//Level10 (levels.Level10) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level10 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; private static const COUNT_BALLS:int = 17; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(5), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local3 = 0; while (_local3 < 3) { _local2 = 0; while (_local2 < 8) { _local7 = (135 + (Math.cos(((_local2 * Math.PI) / 4)) * (55 + (_local3 * 30)))); _local8 = (155 + (Math.sin(((_local2 * Math.PI) / 4)) * (55 + (_local3 * 30)))); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 7)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 7))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local3++; }; _local2 = 0; while (_local2 < 8) { _local7 = (135 + (Math.cos(((_local2 * Math.PI) / 15)) * 145)); _local8 = (155 + (Math.sin(((_local2 * Math.PI) / 15)) * 145)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local3 = 0; while (_local3 < 3) { _local2 = 0; while (_local2 < 8) { _local7 = (600 - (135 + (Math.cos(((_local2 * Math.PI) / 4)) * (55 + (_local3 * 30))))); _local8 = (155 + (Math.sin(((_local2 * Math.PI) / 4)) * (55 + (_local3 * 30)))); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 7)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 7))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local3++; }; _local2 = 0; while (_local2 < 8) { _local7 = (600 - (135 + (Math.cos(((_local2 * Math.PI) / 15)) * 145))); _local8 = (155 + (Math.sin(((_local2 * Math.PI) / 15)) * 145)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:StaticBall; var _local7:Number; var _local8:Number; var _local10:int; var _local12:Number; if (pause){ return; }; var _local9:Number = 0; var _local11:Number = 1; _local3 = 0; while (_local3 < 3) { _local2 = 0; while (_local2 < 8) { if (_arg1[((_local3 * 8) + _local2)]){ _local4 = (135 + (Math.cos((((_local2 * Math.PI) / 4) + (angle * 3))) * (55 + (_local3 * 30)))); _local5 = (155 + (Math.sin((((_local2 * Math.PI) / 4) + (angle * 3))) * (55 + (_local3 * 30)))); _arg1[((_local3 * 8) + _local2)].x = _local4; _arg1[((_local3 * 8) + _local2)].y = _local5; }; _local2++; }; _local3++; }; _local2 = 0; while (_local2 < 8) { if (_arg1[(24 + _local2)]){ _local12 = ((Math.cos((angle * 8)) * Math.PI) / 3.5); _local4 = (135 + (Math.cos((((_local2 * Math.PI) / 15) + _local12)) * 145)); _local5 = (155 + (Math.sin((((_local2 * Math.PI) / 15) + _local12)) * 145)); _arg1[(24 + _local2)].x = _local4; _arg1[(24 + _local2)].y = _local5; }; _local2++; }; _local3 = 0; while (_local3 < 3) { _local2 = 0; while (_local2 < 8) { if (_arg1[((32 + (_local3 * 8)) + _local2)]){ _local4 = (600 - (135 + (Math.cos((((_local2 * Math.PI) / 4) - (angle * 3))) * (55 + (_local3 * 30))))); _local5 = (155 + (Math.sin((((_local2 * Math.PI) / 4) - (angle * 3))) * (55 + (_local3 * 30)))); _arg1[((32 + (_local3 * 8)) + _local2)].x = _local4; _arg1[((32 + (_local3 * 8)) + _local2)].y = _local5; }; _local2++; }; _local3++; }; _local2 = 0; while (_local2 < 8) { if (_arg1[(56 + _local2)]){ _local12 = ((-(Math.cos((angle * 8))) * Math.PI) / 3.5); _local4 = (600 - (135 + (Math.cos((((_local2 * Math.PI) / 15) + _local12)) * 145))); _local5 = (155 + (Math.sin((((_local2 * Math.PI) / 15) + _local12)) * 145)); _arg1[(56 + _local2)].x = _local4; _arg1[(56 + _local2)].y = _local5; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 118
//Level12 (levels.Level12) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level12 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var ufo2_setup_data:Object; private var ufo1_setup_data:Object; private var old_angle:Number;// = 0 private var index_start_center:int; public function Level12(){ ufo1_setup_data = {x:100, y:120, angle:(Math.PI / 2), state:0}; ufo2_setup_data = {x:500, y:300, angle:((Math.PI / 2) + Math.PI), state:2}; super(); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 18) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); if ((((_local2 >= 0)) && ((_local2 < 6)))){ _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 1) - (_local2 % 3)), ((TextureStorage.BALL_PINK_INDEX + 1) + (_local2 % 4))); } else { _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); }; _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 18) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); if ((((_local2 >= 0)) && ((_local2 < 6)))){ _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 1) - (_local2 % 3)), ((TextureStorage.BALL_PINK_INDEX + 1) + (_local2 % 4))); } else { _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); }; _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; updateLevelBalls(_arg1); angle = 0; } private function calcUfoPos(_arg1:Number, _arg2:Object):void{ var _local3:Number = 5; if (_arg2.state == 0){ _arg2.angle = (Math.PI / 2); _arg2.x = (_arg2.x + _local3); if (_arg2.x > 500){ _arg2.x = 500; _arg2.state = 1; }; } else { if (_arg2.state == 1){ _arg2.angle = (_arg2.angle + (_local3 / 50)); if (_arg2.angle >= (Math.PI + (Math.PI / 2))){ _arg2.angle = (Math.PI + (Math.PI / 2)); _arg2.state = 2; }; } else { if (_arg2.state == 2){ _arg2.angle = ((Math.PI / 2) + Math.PI); _arg2.x = (_arg2.x - _local3); if (_arg2.x < 100){ _arg2.x = 100; _arg2.state = 3; }; } else { if (_arg2.state == 3){ _arg2.angle = (_arg2.angle - (_local3 / 50)); if (_arg2.angle <= (Math.PI / 2)){ _arg2.angle = (Math.PI / 2); _arg2.state = 0; }; }; }; }; }; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ if (pause){ return; }; calcUfoPos((angle - old_angle), ufo1_setup_data); calcUfoPos((angle - old_angle), ufo2_setup_data); setupUfoBalls(_arg1, 0, ufo1_setup_data); setupUfoBalls(_arg1, 18, ufo2_setup_data); old_angle = angle; angle = (angle + (Math.PI / 360)); } private function setupUfoBalls(_arg1:Array, _arg2:int, _arg3:Object):void{ var _local5:int; if (((!(_arg1)) || (((_arg2 + 18) > _arg1.length)))){ return; }; var _local4:int = _arg2; var _local6:Point = new Point(_arg3.x, _arg3.y); var _local7:Number = _arg3.angle; _local5 = 0; while (_local5 < 3) { if (_arg1[(_local4 + _local5)]){ _arg1[(_local4 + _local5)].x = (_local6.x + (Math.cos(_local7) * (15 + (_local5 * 30)))); _arg1[(_local4 + _local5)].y = (_local6.y + (Math.sin(_local7) * (15 + (_local5 * 30)))); }; if (_arg1[((_local4 + 3) + _local5)]){ _arg1[((_local4 + 3) + _local5)].x = (_local6.x - (Math.cos(_local7) * (15 + (_local5 * 30)))); _arg1[((_local4 + 3) + _local5)].y = (_local6.y - (Math.sin(_local7) * (15 + (_local5 * 30)))); }; _local5++; }; _local5 = 0; while (_local5 < 3) { if (_arg1[((_local4 + 6) + _local5)]){ _arg1[((_local4 + 6) + _local5)].x = (_local6.x + (Math.cos((_local7 + ((_local5 * Math.PI) / 8))) * (15 + (2 * 30)))); _arg1[((_local4 + 6) + _local5)].y = (_local6.y + (Math.sin((_local7 + ((_local5 * Math.PI) / 8))) * (15 + (2 * 30)))); }; if (_arg1[(((_local4 + 6) + 3) + _local5)]){ _arg1[(((_local4 + 6) + 3) + _local5)].x = (_local6.x + (Math.cos((_local7 - ((_local5 * Math.PI) / 8))) * (15 + (2 * 30)))); _arg1[(((_local4 + 6) + 3) + _local5)].y = (_local6.y + (Math.sin((_local7 - ((_local5 * Math.PI) / 8))) * (15 + (2 * 30)))); }; if (_arg1[((((_local4 + 6) + 3) + 3) + _local5)]){ _arg1[((((_local4 + 6) + 3) + 3) + _local5)].x = (_local6.x - (Math.cos((_local7 + ((_local5 * Math.PI) / 8))) * (15 + (2 * 30)))); _arg1[((((_local4 + 6) + 3) + 3) + _local5)].y = (_local6.y - (Math.sin((_local7 + ((_local5 * Math.PI) / 8))) * (15 + (2 * 30)))); }; if (_arg1[((((_local4 + 6) + 3) + 6) + _local5)]){ _arg1[((((_local4 + 6) + 3) + 6) + _local5)].x = (_local6.x - (Math.cos((_local7 - ((_local5 * Math.PI) / 8))) * (15 + (2 * 30)))); _arg1[((((_local4 + 6) + 3) + 6) + _local5)].y = (_local6.y - (Math.sin((_local7 - ((_local5 * Math.PI) / 8))) * (15 + (2 * 30)))); }; _local5++; }; } public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(6), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } } }//package levels
Section 119
//Level13 (levels.Level13) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level13 implements IBubblenoidLevel { private var old_angle:Number;// = 0 private var angle:Number;// = 0 private var pause:Boolean;// = false private var cubes:Array; private var index_start_center:int; public function Level13(){ cubes = new Array(); super(); } public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(7), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local2:Object; var _local5:StaticBall; var _local6:ColorAutoChangedBall; var _local7:StoneBall; var _local8:Number; var _local9:Number; var _local10:int; _arg1.splice(0, _arg1.length); _local2 = new Object(); _local2 = {x:(70 + 30), y:220, angle:(Math.PI / 2), state:0}; cubes.push(_local2); _local2 = new Object(); _local2 = {x:(170 + 30), y:100, angle:(Math.PI / 2), state:0}; cubes.push(_local2); _local2 = new Object(); _local2 = {x:(270 + 30), y:220, angle:(Math.PI / 2), state:0}; cubes.push(_local2); _local2 = new Object(); _local2 = {x:(370 + 30), y:100, angle:(Math.PI / 2), state:0}; cubes.push(_local2); _local2 = new Object(); _local2 = {x:(470 + 30), y:220, angle:(Math.PI / 2), state:0}; cubes.push(_local2); var _local3:int; var _local4:int; _local4 = 0; while (_local4 < cubes.length) { _local3 = 0; while (_local3 < 8) { _local10 = TextureStorage.BALL_VIOLET_INDEX; _local6 = new ColorAutoChangedBall(0, 0, _local10); _local6.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local4 % 7)), (TextureStorage.BALL_PINK_INDEX + (_local4 % 7))); _local6.startAutoChangeColors(2000, true); _arg1.push(_local6); _local3++; }; _local4++; }; updateLevelBalls(_arg1); angle = 0; } private function calcUfoPos(_arg1:Number, _arg2:Object):void{ _arg2.angle = (_arg2.angle + _arg1); var _local3:Number = 5; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; if (pause){ return; }; _local2 = 0; while (_local2 < cubes.length) { calcUfoPos((angle - old_angle), cubes[_local2]); setupUfoBalls(_arg1, (_local2 * 8), cubes[_local2]); _local2++; }; old_angle = angle; angle = (angle + (Math.PI / 360)); } private function setupUfoBalls(_arg1:Array, _arg2:int, _arg3:Object):void{ var _local5:int; if (((!(_arg1)) || (((_arg2 + 8) > _arg1.length)))){ return; }; var _local4:int = _arg2; var _local6:Point = new Point(_arg3.x, _arg3.y); var _local7:Number = _arg3.angle; _local5 = 0; while (_local5 < 4) { if (_arg1[(_local4 + _local5)]){ _arg1[(_local4 + _local5)].x = (_local6.x + (Math.cos((_local7 + ((_local5 * Math.PI) / 2))) * 50)); _arg1[(_local4 + _local5)].y = (_local6.y + (Math.sin((_local7 + ((_local5 * Math.PI) / 2))) * 50)); }; _local5++; }; _local5 = 0; while (_local5 < 4) { if (_arg1[((_local4 + 4) + _local5)]){ _arg1[((_local4 + 4) + _local5)].x = (_local6.x + (Math.cos(((_local7 + ((_local5 * Math.PI) / 2)) + (Math.PI / 4))) * (40 + (Math.sin((_local7 * 2)) * 17)))); _arg1[((_local4 + 4) + _local5)].y = (_local6.y + (Math.sin(((_local7 + ((_local5 * Math.PI) / 2)) + (Math.PI / 4))) * (40 + (Math.sin((_local7 * 2)) * 17)))); }; _local5++; }; } } }//package levels
Section 120
//Level14 (levels.Level14) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level14 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(8), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(300, 40, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(500, true); _arg1.push(_local5); _local2 = 0; while (_local2 < 7) { _local7 = (300 + (Math.cos(((_local2 * Math.PI) / 6)) * 60)); _local8 = (40 + (Math.sin(((_local2 * Math.PI) / 6)) * 60)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 7)), TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(900, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 13) { _local7 = (300 + (Math.cos(((_local2 * Math.PI) / 12)) * 120)); _local8 = (40 + (Math.sin(((_local2 * Math.PI) / 12)) * 120)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 7)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 7))); _local5.startAutoChangeColors(1300, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 19) { _local7 = (300 + (Math.cos(((_local2 * Math.PI) / 18)) * 180)); _local8 = (40 + (Math.sin(((_local2 * Math.PI) / 18)) * 180)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_YELLOW_INDEX + (_local2 % 3)), TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(1600, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 25) { _local7 = (300 + (Math.cos(((_local2 * Math.PI) / 24)) * 240)); _local8 = (40 + (Math.sin(((_local2 * Math.PI) / 24)) * 240)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_YELLOW_INDEX + (_local2 % 3)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 5))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local9 = TextureStorage.BALL_STONE_INDEX; _arg1.push(new StoneBall(0, 0, _local9)); _local9 = TextureStorage.BALL_STONE_INDEX; _arg1.push(new StoneBall(0, 0, _local9)); _arg1.push(new StoneBall(0, 0, _local9)); _local9 = TextureStorage.BALL_STONE_INDEX; _arg1.push(new StoneBall(0, 0, _local9)); _arg1.push(new StoneBall(0, 0, _local9)); _arg1.push(new StoneBall(0, 0, _local9)); _local9 = TextureStorage.BALL_STONE_INDEX; _arg1.push(new StoneBall(0, 0, _local9)); _arg1.push(new StoneBall(0, 0, _local9)); _arg1.push(new StoneBall(0, 0, _local9)); _arg1.push(new StoneBall(0, 0, _local9)); updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local4:Number; var _local5:Number; if (pause){ return; }; var _local3:Number = ((Math.PI / 2) + ((Math.PI / 2) * Math.sin((angle * 4)))); _local2 = 0; while (_local2 < 1) { if (_arg1[(65 + _local2)]){ _local4 = (300 + (Math.cos((_local3 + ((_local2 * Math.PI) / 4))) * 30)); _local5 = (40 + (Math.sin((_local3 + ((_local2 * Math.PI) / 4))) * 30)); _arg1[(65 + _local2)].x = _local4; _arg1[(65 + _local2)].y = _local5; }; _local2++; }; _local3 = ((Math.PI / 4) + ((Math.PI / 4) * Math.sin((Math.PI + (angle * 5))))); _local2 = 0; while (_local2 < 2) { if (_arg1[((65 + 1) + _local2)]){ _local4 = (300 + (Math.cos((_local3 + ((_local2 * Math.PI) / 2))) * 90)); _local5 = (40 + (Math.sin((_local3 + ((_local2 * Math.PI) / 2))) * 90)); _arg1[((65 + 1) + _local2)].x = _local4; _arg1[((65 + 1) + _local2)].y = _local5; }; _local2++; }; _local3 = ((Math.PI / 6) + ((Math.PI / 6) * Math.sin((-(angle) * 4)))); _local2 = 0; while (_local2 < 3) { if (_arg1[(((65 + 1) + 2) + _local2)]){ _local4 = (300 + (Math.cos((_local3 + ((_local2 * Math.PI) / 3))) * 150)); _local5 = (40 + (Math.sin((_local3 + ((_local2 * Math.PI) / 3))) * 150)); _arg1[(((65 + 1) + 2) + _local2)].x = _local4; _arg1[(((65 + 1) + 2) + _local2)].y = _local5; }; _local2++; }; _local3 = ((Math.PI / 8) + ((Math.PI / 8) * Math.sin((Math.PI - (angle * 5))))); _local2 = 0; while (_local2 < 4) { if (_arg1[((((65 + 1) + 2) + 3) + _local2)]){ _local4 = (300 + (Math.cos((_local3 + ((_local2 * Math.PI) / 4))) * 210)); _local5 = (40 + (Math.sin((_local3 + ((_local2 * Math.PI) / 4))) * 210)); _arg1[((((65 + 1) + 2) + 3) + _local2)].x = _local4; _arg1[((((65 + 1) + 2) + 3) + _local2)].y = _local5; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 121
//Level15 (levels.Level15) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level15 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(9), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 68) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); if (_local2 < 18){ _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); } else { if ((((_local2 >= 18)) && ((_local2 < (18 + 6))))){ _local5.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_RED_INDEX); } else { if ((((_local2 >= (18 + 6))) && ((_local2 < ((18 + 6) + 12))))){ _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, TextureStorage.BALL_GREEN_INDEX); } else { if ((((_local2 >= ((18 + 6) + 12))) && ((_local2 < (((18 + 6) + 12) + 4))))){ _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_BLUE_INDEX); } else { if ((((_local2 >= (((18 + 6) + 12) + 4))) && ((_local2 < ((((18 + 6) + 12) + 4) + 18))))){ _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_YELLOW_INDEX); } else { _local5.setColorList(TextureStorage.BALL_ORANGE_INDEX, TextureStorage.BALL_PINK_INDEX); }; }; }; }; }; _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(235, 100, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(475, 120, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(380, 250, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local4:Number; var _local5:Number; if (pause){ return; }; var _local3:Number = (angle * 2); _local2 = 0; while (_local2 < 18) { if (_arg1[_local2]){ _local4 = (100 + (Math.cos((_local3 + ((_local2 * Math.PI) / 8))) * 80)); _local5 = (200 + (Math.sin((_local3 + ((_local2 * Math.PI) / 8))) * 80)); _arg1[_local2].x = _local4; _arg1[_local2].y = _local5; }; _local2++; }; _local2 = 0; while (_local2 < 6) { if (_arg1[(18 + _local2)]){ _local4 = (115 + (Math.cos(((_local3 * 2) + ((_local2 * Math.PI) / 3))) * 30)); _local5 = (215 + (Math.sin(((_local3 * 2) + ((_local2 * Math.PI) / 3))) * 30)); _arg1[(18 + _local2)].x = _local4; _arg1[(18 + _local2)].y = _local5; }; _local2++; }; _local2 = 0; while (_local2 < 12) { if (_arg1[(24 + _local2)]){ _local4 = (235 + (Math.cos(((-(_local3) * 1.5) + ((_local2 * Math.PI) / 6))) * 60)); _local5 = (100 + (Math.sin(((-(_local3) * 1.5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[(24 + _local2)].x = _local4; _arg1[(24 + _local2)].y = _local5; }; _local2++; }; _local2 = 0; while (_local2 < 4) { if (_arg1[(36 + _local2)]){ _local4 = (345 + (Math.cos(((_local3 * 3) + ((_local2 * Math.PI) / 2))) * 21)); _local5 = (100 + (Math.sin(((_local3 * 3) + ((_local2 * Math.PI) / 2))) * 21)); _arg1[(36 + _local2)].x = _local4; _arg1[(36 + _local2)].y = _local5; }; _local2++; }; _local2 = 0; while (_local2 < 18) { if (_arg1[(40 + _local2)]){ _local4 = (475 + (Math.cos((-(_local3) + ((_local2 * Math.PI) / 8))) * 80)); _local5 = (120 + (Math.sin((-(_local3) + ((_local2 * Math.PI) / 8))) * 80)); _arg1[(40 + _local2)].x = _local4; _arg1[(40 + _local2)].y = _local5; }; _local2++; }; _local2 = 0; while (_local2 < 10) { if (_arg1[(58 + _local2)]){ _local4 = (380 + (Math.cos(((_local3 * 1.5) + ((_local2 * Math.PI) / 5))) * 50)); _local5 = (250 + (Math.sin(((_local3 * 1.5) + ((_local2 * Math.PI) / 5))) * 50)); _arg1[(58 + _local2)].x = _local4; _arg1[(58 + _local2)].y = _local5; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 122
//Level16 (levels.Level16) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level16 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(10), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 5) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(60, (60 + (_local2 * 45)), _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 5) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((600 - 60), (60 + (_local2 * 45)), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 1), (TextureStorage.BALL_PINK_INDEX + 1)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 4) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(120, (60 + (_local2 * 45)), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 2), (TextureStorage.BALL_PINK_INDEX + 2)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall(120, (60 + (4 * 45)), TextureStorage.BALL_STONE_INDEX)); _local2 = 0; while (_local2 < 4) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((600 - 120), (60 + (_local2 * 45)), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 3), (TextureStorage.BALL_PINK_INDEX + 3)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall((600 - 120), (60 + (4 * 45)), TextureStorage.BALL_STONE_INDEX)); _local2 = 0; while (_local2 < 3) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(180, (60 + (_local2 * 45)), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 4), (TextureStorage.BALL_PINK_INDEX + 4)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall(180, (60 + (3 * 45)), TextureStorage.BALL_STONE_INDEX)); _local2 = 0; while (_local2 < 3) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((600 - 180), (60 + (_local2 * 45)), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 5), (TextureStorage.BALL_PINK_INDEX + 5)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall((600 - 180), (60 + (3 * 45)), TextureStorage.BALL_STONE_INDEX)); _local2 = 0; while (_local2 < 3) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(240, (60 + (_local2 * 45)), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 6), (TextureStorage.BALL_PINK_INDEX + 6)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall(240, (60 + (3 * 45)), TextureStorage.BALL_STONE_INDEX)); _local2 = 0; while (_local2 < 3) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((600 - 240), (60 + (_local2 * 45)), _local9); _local5.setColorList(TextureStorage.BALL_ORANGE_INDEX, TextureStorage.BALL_GREEN_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall((600 - 240), (60 + (3 * 45)), TextureStorage.BALL_STONE_INDEX)); _local2 = 0; while (_local2 < 2) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(300, (60 + (_local2 * 45)), _local9); _local5.setColorList(TextureStorage.BALL_DEEP_BLUE_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall(300, (60 + (2 * 45)), TextureStorage.BALL_STONE_INDEX)); updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local4:Number; var _local5:Number; if (pause){ return; }; var _local3:Number = (angle * 2); angle = (angle + (Math.PI / 360)); } } }//package levels
Section 123
//Level17 (levels.Level17) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level17 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(11), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 10) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((75 + (_local2 * 50)), 300, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 4)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 2))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 11) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(((75 - 25) + (_local2 * 50)), 270, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 2)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 4))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 4) { _local9 = TextureStorage.BALL_STONE_INDEX; _arg1.push(new StoneBall(((75 - 25) + (_local2 * 45)), 225, _local9)); _arg1.push(new StoneBall((600 - ((75 - 25) + (_local2 * 45))), 225, _local9)); _local2++; }; _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(300, 40, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((300 - 30), 40, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((300 + 30), 40, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((300 - 15), 66, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((300 + 15), 66, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(300, 92, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 5), (TextureStorage.BALL_PINK_INDEX + 2)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2 = 0; while (_local2 < ((4 * 2) * 2)) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); if (_local2 < 4){ _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 5), (TextureStorage.BALL_PINK_INDEX + 2)); } else { if (_local2 < 8){ _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 3), (TextureStorage.BALL_PINK_INDEX + 1)); } else { _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); }; }; _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local5:Number; var _local6:Number; if (pause){ return; }; var _local3:Number = ((Math.PI / 12) + (((Math.PI / 4) - (Math.PI / 12)) * Math.sin((angle * 4)))); var _local4:Number = ((Math.PI / 12) + (((Math.PI / 4) - (Math.PI / 12)) * Math.sin((Math.PI + (angle * 4))))); _local2 = 0; while (_local2 < 4) { if (_arg1[(35 + _local2)]){ _local5 = (60 + (Math.cos((_local3 + ((_local2 * Math.PI) / 10))) * 100)); _local6 = (80 + (Math.sin((_local3 + ((_local2 * Math.PI) / 10))) * 100)); _arg1[(35 + _local2)].x = _local5; _arg1[(35 + _local2)].y = _local6; }; if (_arg1[((35 + 8) + _local2)]){ _local5 = ((60 + 0x0101) + (Math.cos((_local3 + ((_local2 * Math.PI) / 10))) * 100)); _local6 = (80 + (Math.sin((_local3 + ((_local2 * Math.PI) / 10))) * 100)); _arg1[((35 + 8) + _local2)].x = _local5; _arg1[((35 + 8) + _local2)].y = _local6; }; if (_arg1[((35 + 4) + _local2)]){ _local5 = (600 - (60 + (Math.cos((_local4 + ((_local2 * Math.PI) / 10))) * 100))); _local6 = (80 + (Math.sin((_local4 + ((_local2 * Math.PI) / 10))) * 100)); _arg1[((35 + 4) + _local2)].x = _local5; _arg1[((35 + 4) + _local2)].y = _local6; }; if (_arg1[(((35 + 4) + 8) + _local2)]){ _local5 = ((600 - 0x0101) - (60 + (Math.cos((_local4 + ((_local2 * Math.PI) / 10))) * 100))); _local6 = (80 + (Math.sin((_local4 + ((_local2 * Math.PI) / 10))) * 100)); _arg1[(((35 + 4) + 8) + _local2)].x = _local5; _arg1[(((35 + 4) + 8) + _local2)].y = _local6; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 124
//Level18 (levels.Level18) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level18 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(12), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 16) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((35 + (_local2 * 35)), 160, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - ((_local2 / 3) % 3)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 2))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local3 = 0; while (_local3 < (9 * 2)) { _local2 = 0; while (_local2 < 3) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local3 % 7)), (TextureStorage.BALL_PINK_INDEX + (_local3 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local3++; }; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local5:Number; var _local6:Number; if (pause){ return; }; var _local3:Number = (angle * 4); var _local4:Number = ((Math.PI / 12) + (((Math.PI / 4) - (Math.PI / 12)) * Math.sin((Math.PI + (angle * 4))))); _local2 = 0; while (_local2 < 3) { if (_arg1[((16 + 0) + _local2)]){ _local5 = ((((70 + 15) - (Math.sin(_local3) * 15)) + (_local2 * 35)) - 40); _local6 = 55; _arg1[((16 + 0) + _local2)].x = _local5; _arg1[((16 + 0) + _local2)].y = _local6; }; if (_arg1[((16 + 18) + _local2)]){ _local5 = (((((70 + 15) - (Math.sin(_local3) * 15)) + (_local2 * 35)) + 170) - 40); _local6 = 55; _arg1[((16 + 18) + _local2)].x = _local5; _arg1[((16 + 18) + _local2)].y = _local6; }; if (_arg1[((16 + 36) + _local2)]){ _local5 = (((((70 + 15) - (Math.sin(_local3) * 15)) + (_local2 * 35)) + 340) - 40); _local6 = 55; _arg1[((16 + 36) + _local2)].x = _local5; _arg1[((16 + 36) + _local2)].y = _local6; }; _local2++; }; _local2 = 0; while (_local2 < 3) { if (_arg1[((16 + 3) + _local2)]){ _local5 = (((((70 + 35) + 15) - (Math.sin((_local3 + (Math.PI / 3))) * 15)) + (_local2 * 35)) - 40); _local6 = 90; _arg1[((16 + 3) + _local2)].x = _local5; _arg1[((16 + 3) + _local2)].y = _local6; }; if (_arg1[((16 + 21) + _local2)]){ _local5 = ((((((70 + 35) + 15) - (Math.sin((_local3 + (Math.PI / 3))) * 15)) + (_local2 * 35)) + 170) - 40); _local6 = 90; _arg1[((16 + 21) + _local2)].x = _local5; _arg1[((16 + 21) + _local2)].y = _local6; }; if (_arg1[((16 + 39) + _local2)]){ _local5 = ((((((70 + 35) + 15) - (Math.sin((_local3 + (Math.PI / 3))) * 15)) + (_local2 * 35)) + 340) - 40); _local6 = 90; _arg1[((16 + 39) + _local2)].x = _local5; _arg1[((16 + 39) + _local2)].y = _local6; }; _local2++; }; _local2 = 0; while (_local2 < 3) { if (_arg1[((16 + 6) + _local2)]){ _local5 = (((((70 + (35 * 2)) + 15) - (Math.sin((_local3 + ((Math.PI * 2) / 3))) * 15)) + (_local2 * 35)) - 40); _local6 = 125; _arg1[((16 + 6) + _local2)].x = _local5; _arg1[((16 + 6) + _local2)].y = _local6; }; if (_arg1[((16 + 24) + _local2)]){ _local5 = ((((((70 + (35 * 2)) + 15) - (Math.sin((_local3 + ((Math.PI * 2) / 3))) * 15)) + (_local2 * 35)) + 170) - 40); _local6 = 125; _arg1[((16 + 24) + _local2)].x = _local5; _arg1[((16 + 24) + _local2)].y = _local6; }; if (_arg1[((16 + 42) + _local2)]){ _local5 = ((((((70 + (35 * 2)) + 15) - (Math.sin((_local3 + ((Math.PI * 2) / 3))) * 15)) + (_local2 * 35)) + 340) - 40); _local6 = 125; _arg1[((16 + 42) + _local2)].x = _local5; _arg1[((16 + 42) + _local2)].y = _local6; }; _local2++; }; _local2 = 0; while (_local2 < 3) { if (_arg1[((16 + 9) + _local2)]){ _local5 = (((((70 + (35 * 2)) + 15) - (Math.sin((_local3 + ((Math.PI * 2) / 3))) * 15)) + (_local2 * 35)) - 40); _local6 = 195; _arg1[((16 + 9) + _local2)].x = _local5; _arg1[((16 + 9) + _local2)].y = _local6; }; if (_arg1[((16 + 27) + _local2)]){ _local5 = ((((((70 + (35 * 2)) + 15) - (Math.sin((_local3 + ((Math.PI * 2) / 3))) * 15)) + (_local2 * 35)) + 170) - 40); _local6 = 195; _arg1[((16 + 27) + _local2)].x = _local5; _arg1[((16 + 27) + _local2)].y = _local6; }; if (_arg1[((16 + 45) + _local2)]){ _local5 = ((((((70 + (35 * 2)) + 15) - (Math.sin((_local3 + ((Math.PI * 2) / 3))) * 15)) + (_local2 * 35)) + 340) - 40); _local6 = 195; _arg1[((16 + 45) + _local2)].x = _local5; _arg1[((16 + 45) + _local2)].y = _local6; }; _local2++; }; _local2 = 0; while (_local2 < 3) { if (_arg1[((16 + 12) + _local2)]){ _local5 = (((((70 + 35) + 15) - (Math.sin((_local3 + (Math.PI / 3))) * 15)) + (_local2 * 35)) - 40); _local6 = 230; _arg1[((16 + 12) + _local2)].x = _local5; _arg1[((16 + 12) + _local2)].y = _local6; }; if (_arg1[((16 + 30) + _local2)]){ _local5 = ((((((70 + 35) + 15) - (Math.sin((_local3 + (Math.PI / 3))) * 15)) + (_local2 * 35)) + 170) - 40); _local6 = 230; _arg1[((16 + 30) + _local2)].x = _local5; _arg1[((16 + 30) + _local2)].y = _local6; }; if (_arg1[((16 + 48) + _local2)]){ _local5 = ((((((70 + 35) + 15) - (Math.sin((_local3 + (Math.PI / 3))) * 15)) + (_local2 * 35)) + 340) - 40); _local6 = 230; _arg1[((16 + 48) + _local2)].x = _local5; _arg1[((16 + 48) + _local2)].y = _local6; }; _local2++; }; _local2 = 0; while (_local2 < 3) { if (_arg1[((16 + 15) + _local2)]){ _local5 = ((((70 + 15) - (Math.sin(_local3) * 15)) + (_local2 * 35)) - 40); _local6 = 265; _arg1[((16 + 15) + _local2)].x = _local5; _arg1[((16 + 15) + _local2)].y = _local6; }; if (_arg1[((16 + 33) + _local2)]){ _local5 = (((((70 + 15) - (Math.sin(_local3) * 15)) + (_local2 * 35)) + 170) - 40); _local6 = 265; _arg1[((16 + 33) + _local2)].x = _local5; _arg1[((16 + 33) + _local2)].y = _local6; }; if (_arg1[((16 + 51) + _local2)]){ _local5 = (((((70 + 15) - (Math.sin(_local3) * 15)) + (_local2 * 35)) + 340) - 40); _local6 = 265; _arg1[((16 + 51) + _local2)].x = _local5; _arg1[((16 + 51) + _local2)].y = _local6; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 125
//Level19 (levels.Level19) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level19 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(13), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 6) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((((300 - (35 * 3)) + (_local2 * 35)) + 18), 40, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((((300 - (35 * 3)) + (_local2 * 35)) + 18), (240 + 15), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 2), (TextureStorage.BALL_PINK_INDEX + 1)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((((300 - (35 * 3)) + (_local2 * 35)) + 18), (275 + 15), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 1), (TextureStorage.BALL_PINK_INDEX + 3)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall(((300 - (35 * 4)) + 18), 40, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall(((300 + (35 * 4)) - 18), 40, TextureStorage.BALL_STONE_INDEX)); _local3 = 0; while (_local3 < 5) { _local2 = 0; while (_local2 < (5 - _local3)) { if ((_local2 + 1) < (5 - _local3)){ _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((30 + (_local2 * 26)), ((100 + (35 * _local3)) + (_local2 * 18)), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 3)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 4))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((600 - (30 + (_local2 * 26))), ((100 + (35 * _local3)) + (_local2 * 18)), _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 2)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 5))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); } else { _arg1.push(new StoneBall((30 + (_local2 * 26)), ((100 + (35 * _local3)) + (_local2 * 18)), TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((600 - (30 + (_local2 * 26))), ((100 + (35 * _local3)) + (_local2 * 18)), TextureStorage.BALL_STONE_INDEX)); }; _local2++; }; _local3++; }; _local2 = 0; while (_local2 < 6) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 5), TextureStorage.BALL_VIOLET_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 7), (TextureStorage.BALL_PINK_INDEX + 1)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 1), (TextureStorage.BALL_PINK_INDEX + 6)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 2), (TextureStorage.BALL_PINK_INDEX + 5)); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local5:Number; var _local6:Number; if (pause){ return; }; var _local3:Number = (angle * 4); var _local4:Number = (((Math.PI * 1.03) / 2) + (((Math.PI * 1.2) / 12) * Math.abs(Math.sin(((Math.PI / 2) + (angle * 4)))))); _local2 = 0; while (_local2 < 6) { if (_arg1[(50 + _local2)]){ _local5 = (((300 - (35 * 3)) + (_local2 * 35)) + 18); _local6 = (130 - Math.abs((Math.sin(_local3) * 50))); _arg1[(50 + _local2)].x = _local5; _arg1[(50 + _local2)].y = _local6; }; if (_arg1[((50 + 6) + _local2)]){ _local5 = (((300 - (35 * 3)) + (_local2 * 35)) + 18); _local6 = (170 + Math.abs((Math.sin(_local3) * 50))); _arg1[((50 + 6) + _local2)].x = _local5; _arg1[((50 + 6) + _local2)].y = _local6; }; if (_arg1[((50 + 12) + _local2)]){ _local5 = (300 + (Math.cos((_local4 + ((Math.PI / 35) * _local2))) * 350)); _local6 = (-200 + (Math.sin((_local4 + ((Math.PI / 35) * _local2))) * 350)); _arg1[((50 + 12) + _local2)].x = _local5; _arg1[((50 + 12) + _local2)].y = _local6; }; if (_arg1[((50 + 18) + _local2)]){ _local5 = (600 - (300 + (Math.cos((_local4 + ((Math.PI / 35) * _local2))) * 350))); _local6 = (-200 + (Math.sin((_local4 + ((Math.PI / 35) * _local2))) * 350)); _arg1[((50 + 18) + _local2)].x = _local5; _arg1[((50 + 18) + _local2)].y = _local6; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 126
//Level20 (levels.Level20) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level20 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(14), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local3 = 0; while (_local3 < 4) { _local7 = (75 + (_local3 * 150)); _local8 = 120; _arg1.push(new StoneBall(_local7, _local8, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((_local7 - 30), _local8, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((_local7 + 30), _local8, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall(_local7, (_local8 - 30), TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall(_local7, (_local8 + 30), TextureStorage.BALL_STONE_INDEX)); _local3++; }; _local2 = 0; while (_local2 < ((3 * 2) * 4)) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 2) - (_local2 % 3)), ((TextureStorage.BALL_PINK_INDEX + 1) + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < ((2 * 2) * 4)) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 3) - (_local2 % 3)), ((TextureStorage.BALL_PINK_INDEX + 2) + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local6:Number; var _local7:Number; if (pause){ return; }; var _local4:Number = (angle * 4); var _local5:Number = Math.abs(Math.sin((angle * 4))); _local2 = 0; while (_local2 < 3) { if (_arg1[(20 + _local2)]){ _local6 = ((75 + (0 * 150)) + (Math.cos((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _local7 = (120 + (Math.sin((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[(20 + _local2)].x = _local6; _arg1[(20 + _local2)].y = _local7; }; if (_arg1[((20 + 3) + _local2)]){ _local6 = ((75 + (0 * 150)) + (Math.cos((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _local7 = (120 - (Math.sin((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[((20 + 3) + _local2)].x = _local6; _arg1[((20 + 3) + _local2)].y = _local7; }; if (_arg1[(26 + _local2)]){ _local6 = ((75 + (1 * 150)) + (Math.cos((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _local7 = (120 + (Math.sin((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[(26 + _local2)].x = _local6; _arg1[(26 + _local2)].y = _local7; }; if (_arg1[((26 + 3) + _local2)]){ _local6 = ((75 + (1 * 150)) + (Math.cos((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _local7 = (120 - (Math.sin((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[((26 + 3) + _local2)].x = _local6; _arg1[((26 + 3) + _local2)].y = _local7; }; if (_arg1[(32 + _local2)]){ _local6 = ((75 + (2 * 150)) + (Math.cos((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _local7 = (120 + (Math.sin((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[(32 + _local2)].x = _local6; _arg1[(32 + _local2)].y = _local7; }; if (_arg1[((32 + 3) + _local2)]){ _local6 = ((75 + (2 * 150)) + (Math.cos((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _local7 = (120 - (Math.sin((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[((32 + 3) + _local2)].x = _local6; _arg1[((32 + 3) + _local2)].y = _local7; }; if (_arg1[(38 + _local2)]){ _local6 = ((75 + (3 * 150)) + (Math.cos((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _local7 = (120 + (Math.sin((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[(38 + _local2)].x = _local6; _arg1[(38 + _local2)].y = _local7; }; if (_arg1[((38 + 3) + _local2)]){ _local6 = ((75 + (3 * 150)) + (Math.cos((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _local7 = (120 - (Math.sin((((-(Math.PI) / 2) - _local5) + ((_local2 * Math.PI) / 6))) * 60)); _arg1[((38 + 3) + _local2)].x = _local6; _arg1[((38 + 3) + _local2)].y = _local7; }; _local2++; }; _local3 = 0; while (_local3 < 4) { _local2 = 0; while (_local2 < 2) { if (_arg1[((44 + _local2) + (_local3 * 4))]){ _local6 = ((((75 - 15) + (_local3 * 150)) + (Math.cos(_local4) * 30)) + (_local2 * 30)); _local7 = (260 + (Math.sin(_local4) * 30)); _arg1[((44 + _local2) + (_local3 * 4))].x = _local6; _arg1[((44 + _local2) + (_local3 * 4))].y = _local7; }; if (_arg1[((46 + _local2) + (_local3 * 4))]){ _local6 = ((((75 - 15) + (_local3 * 150)) + (Math.cos((Math.PI + _local4)) * 30)) + (_local2 * 30)); _local7 = (260 + (Math.sin((Math.PI + _local4)) * 30)); _arg1[((46 + _local2) + (_local3 * 4))].x = _local6; _arg1[((46 + _local2) + (_local3 * 4))].y = _local7; }; _local2++; }; _local3++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 127
//Level21 (levels.Level21) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level21 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(15), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 4) { _local3 = 0; while (_local3 < 7) { _local7 = (30 + (_local3 * 90)); _local8 = (40 + (_local2 * 65)); _arg1.push(new StoneBall(_local7, _local8, TextureStorage.BALL_STONE_INDEX)); _local3++; }; _local2++; }; _local2 = 0; while (_local2 < 3) { _local3 = 0; while (_local3 < 6) { _local7 = (75 + (_local3 * 90)); _local8 = (72 + (_local2 * 65)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - ((((5 + (_local2 * _local3)) - _local2) + _local3) % 5)), (TextureStorage.BALL_PINK_INDEX + ((_local2 + _local3) % 7))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; _local2++; }; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local6:Number; var _local7:Number; if (pause){ return; }; var _local4:Number = (angle * 4); var _local5:Number = Math.abs(Math.sin((angle * 4))); _local2 = 0; while (_local2 < 3) { _local3 = 0; while (_local3 < 6) { if (_arg1[((28 + (_local2 * 6)) + _local3)]){ _local6 = ((75 + (_local3 * 90)) + (Math.cos(((angle * 4) + Math.cos((((((_local2 - _local3) * 34) * angle) * Math.PI) / 23)))) * 10)); _local7 = ((72 + (_local2 * 65)) + (Math.sin(((angle * 4) + Math.cos((((((_local2 + _local3) * 19) * angle) * Math.PI) / 27)))) * 10)); _arg1[((28 + (_local2 * 6)) + _local3)].x = _local6; _arg1[((28 + (_local2 * 6)) + _local3)].y = _local7; }; _local3++; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 128
//Level22 (levels.Level22) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level22 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(16), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _arg1.push(new StoneBall(120, 100, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((600 - 120), 100, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((300 - 25), 65, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((300 + 25), 65, TextureStorage.BALL_STONE_INDEX)); _local3 = 0; while (_local3 < (((10 + 10) + 10) + (4 * 4))) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); if (_local3 < 10){ _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - ((_local3 * _local3) % 4)), (TextureStorage.BALL_PINK_INDEX + (_local3 % 2))); } else { if (_local3 < 20){ _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 2), (TextureStorage.BALL_PINK_INDEX + 6)); } else { if (_local3 < 30){ _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - ((_local3 * _local3) % 4)), (TextureStorage.BALL_PINK_INDEX + (_local3 % 2))); } else { _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 2) - (_local3 % 3)), ((TextureStorage.BALL_PINK_INDEX + 3) + (_local3 % 2))); }; }; }; _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; _arg1.push(new StoneBall((300 - 25), 250, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((300 + 25), 250, TextureStorage.BALL_STONE_INDEX)); angle = 0; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local8:Number; var _local9:Number; var _local10:Number; if (pause){ return; }; var _local4:Number = (angle * 4); var _local5:Number = Math.sin(_local4); var _local6:Number = 0; var _local7:Number = 0; _local2 = 0; while (_local2 < 5) { if (_arg1[(4 + _local2)]){ _local6 = Math.cos((_local4 + ((Math.PI / 5) * 2))); _local7 = Math.sin((_local4 + ((Math.PI / 5) * 2))); _local8 = ((120 + (_local6 * (6 + (_local5 * 6)))) + (Math.cos((_local4 + ((Math.PI / 5) * _local2))) * 50)); _local9 = ((100 + (_local7 * (6 + (_local5 * 6)))) + (Math.sin((_local4 + ((Math.PI / 5) * _local2))) * 50)); _arg1[(4 + _local2)].x = _local8; _arg1[(4 + _local2)].y = _local9; }; if (_arg1[(9 + _local2)]){ _local6 = Math.cos(((_local4 + ((Math.PI / 5) * 2)) + Math.PI)); _local7 = Math.sin(((_local4 + ((Math.PI / 5) * 2)) + Math.PI)); _local8 = ((120 + (_local6 * (6 + (_local5 * 6)))) + (Math.cos(((_local4 + ((Math.PI / 5) * _local2)) + Math.PI)) * 50)); _local9 = ((100 + (_local7 * (6 + (_local5 * 6)))) + (Math.sin(((_local4 + ((Math.PI / 5) * _local2)) + Math.PI)) * 50)); _arg1[(9 + _local2)].x = _local8; _arg1[(9 + _local2)].y = _local9; }; if (_arg1[(24 + _local2)]){ _local6 = Math.cos((_local4 + ((Math.PI / 5) * 2))); _local7 = Math.sin((_local4 + ((Math.PI / 5) * 2))); _local8 = (600 - ((120 + (_local6 * (6 + (_local5 * 6)))) + (Math.cos((_local4 + ((Math.PI / 5) * _local2))) * 50))); _local9 = ((100 + (_local7 * (6 + (_local5 * 6)))) + (Math.sin((_local4 + ((Math.PI / 5) * _local2))) * 50)); _arg1[(24 + _local2)].x = _local8; _arg1[(24 + _local2)].y = _local9; }; if (_arg1[(29 + _local2)]){ _local6 = Math.cos(((_local4 + ((Math.PI / 5) * 2)) + Math.PI)); _local7 = Math.sin(((_local4 + ((Math.PI / 5) * 2)) + Math.PI)); _local8 = (600 - ((120 + (_local6 * (6 + (_local5 * 6)))) + (Math.cos(((_local4 + ((Math.PI / 5) * _local2)) + Math.PI)) * 50))); _local9 = ((100 + (_local7 * (6 + (_local5 * 6)))) + (Math.sin(((_local4 + ((Math.PI / 5) * _local2)) + Math.PI)) * 50)); _arg1[(29 + _local2)].x = _local8; _arg1[(29 + _local2)].y = _local9; }; _local10 = Math.abs((Math.sin(_local4) * ((Math.PI / 2) - ((Math.PI / 15.7) * 5)))); if (_arg1[(14 + _local2)]){ _local8 = (120 + (Math.cos((_local10 + ((Math.PI / 15.7) * _local2))) * 157)); _local9 = (100 + (Math.sin((_local10 + ((Math.PI / 15.7) * _local2))) * 157)); _arg1[(14 + _local2)].x = _local8; _arg1[(14 + _local2)].y = _local9; }; if (_arg1[(19 + _local2)]){ _local8 = (600 - (120 + (Math.cos((_local10 + ((Math.PI / 15.7) * _local2))) * 157))); _local9 = (100 + (Math.sin((_local10 + ((Math.PI / 15.7) * _local2))) * 157)); _arg1[(19 + _local2)].x = _local8; _arg1[(19 + _local2)].y = _local9; }; _local2++; }; _local2 = 0; while (_local2 < 4) { _local3 = 0; while (_local3 < 4) { if (_arg1[((34 + (_local2 * 4)) + _local3)]){ _local8 = ((151 + (_local2 * 100)) + (Math.cos((_local4 + ((Math.PI / 2) * _local3))) * 26)); _local9 = (310 + (Math.sin((_local4 + ((Math.PI / 2) * _local3))) * 26)); _arg1[((34 + (_local2 * 4)) + _local3)].x = _local8; _arg1[((34 + (_local2 * 4)) + _local3)].y = _local9; }; _local3++; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 129
//Level23 (levels.Level23) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level23 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(17), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local3 = 0; while (_local3 < 20) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 5) - (_local3 % 2)), (TextureStorage.BALL_PINK_INDEX + (_local3 % 5))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; angle = 0; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; if (pause){ return; }; var _local4:Number = (angle * 4); var _local5:Number = Math.abs(Math.sin(_local4)); var _local6:Number = 0; var _local7:Number = 0; _local3 = 0; while (_local3 < 4) { _local2 = 0; while (_local2 < 5) { if (_arg1[((_local3 * 5) + _local2)]){ _local9 = ((300 - 60) + (_local2 * 30)); _local10 = (35 + (_local2 * 132)); _local12 = (130 + (_local3 * 30)); _local13 = (50 + (_local3 * 100)); _local8 = (_local9 + ((_local10 - _local9) * _local5)); _local11 = (_local12 + ((_local13 - _local12) * _local5)); _arg1[((_local3 * 5) + _local2)].x = _local8; _arg1[((_local3 * 5) + _local2)].y = _local11; }; _local2++; }; _local3++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 130
//Level24 (levels.Level24) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level24 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(18), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 8) { _local7 = (300 + (Math.cos(((-(Math.PI) / 12) + ((_local2 * Math.PI) / 6))) * 160)); _local8 = (175 + (Math.sin(((-(Math.PI) / 12) + ((_local2 * Math.PI) / 6))) * 160)); _arg1.push(new StoneBall(_local7, _local8, TextureStorage.BALL_STONE_INDEX)); _local2++; }; _arg1.push(new StoneBall(80, 300, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((600 - 80), 300, TextureStorage.BALL_STONE_INDEX)); _local7 = 146; _local8 = (67 - 13); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local7 = 146; _local8 = (105 - 13); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(TextureStorage.BALL_YELLOW_INDEX, TextureStorage.BALL_RED_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local7 = 455; _local8 = (67 - 13); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_DEEP_BLUE_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local7 = 455; _local8 = (105 - 13); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(TextureStorage.BALL_BLUE_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3 = 0; while (_local3 < 5) { _local7 = (((_local3 % 2) == 1)) ? 108 : 55; _local8 = (60 + (_local3 * 35)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local3 % 4)), (TextureStorage.BALL_PINK_INDEX + (_local3 % 5))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local7 = (600 - (((_local3 % 2) == 1)) ? 108 : 55); _local8 = (60 + (_local3 * 35)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local3 % 2)), (TextureStorage.BALL_PINK_INDEX + (_local3 % 2))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; _local3 = 0; while (_local3 < (((20 + 15) + 10) + 5)) { _local7 = 0; _local8 = 0; _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); if (_local3 < 20){ _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); } else { if (_local3 < (20 + 15)){ _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 2), (TextureStorage.BALL_PINK_INDEX + 5)); } else { if (_local3 < ((20 + 15) + 10)){ _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 5), (TextureStorage.BALL_PINK_INDEX + 1)); } else { _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 3), (TextureStorage.BALL_PINK_INDEX + 6)); }; }; }; _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; _arg1.push(new StoneBall(300, 175, TextureStorage.BALL_STONE_INDEX)); angle = 0; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; if (pause){ return; }; var _local4:Number = (angle * 4); var _local5:Number = Math.abs(Math.sin(_local4)); var _local6:Number = 0; var _local7:Number = 0; _local2 = 0; while (_local2 < 20) { if (_arg1[(24 + _local2)]){ _local8 = (300 + (Math.cos((_local4 + ((_local2 * Math.PI) / 13))) * 130)); _local11 = (175 + (Math.sin((_local4 + ((_local2 * Math.PI) / 13))) * 130)); _arg1[(24 + _local2)].x = _local8; _arg1[(24 + _local2)].y = _local11; }; _local2++; }; _local2 = 0; while (_local2 < 15) { if (_arg1[(44 + _local2)]){ _local8 = (300 + (Math.cos((-(_local4) + ((_local2 * Math.PI) / 10))) * 100)); _local11 = (175 + (Math.sin((-(_local4) + ((_local2 * Math.PI) / 10))) * 100)); _arg1[(44 + _local2)].x = _local8; _arg1[(44 + _local2)].y = _local11; }; _local2++; }; _local2 = 0; while (_local2 < 10) { if (_arg1[(59 + _local2)]){ _local8 = (300 + (Math.cos(((_local4 * 0.7) + ((_local2 * Math.PI) / 7))) * 70)); _local11 = (175 + (Math.sin(((_local4 * 0.7) + ((_local2 * Math.PI) / 7))) * 70)); _arg1[(59 + _local2)].x = _local8; _arg1[(59 + _local2)].y = _local11; }; _local2++; }; _local2 = 0; while (_local2 < 5) { if (_arg1[(69 + _local2)]){ _local8 = (300 + (Math.cos(((_local4 * 1.7) + ((_local2 * Math.PI) / 4))) * 40)); _local11 = (175 + (Math.sin(((_local4 * 1.7) + ((_local2 * Math.PI) / 4))) * 40)); _arg1[(69 + _local2)].x = _local8; _arg1[(69 + _local2)].y = _local11; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 131
//Level25 (levels.Level25) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level25 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(19), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < 19) { _local7 = ((15 + 15) + (_local2 * 30)); _local8 = 40; if (((((!((_local2 == 2))) && (!((_local2 == 9))))) && (!((_local2 == 16))))){ _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 2) - (_local2 % 4)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 2))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, (_local8 + (8 * 30)), _local9); _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 2) - (_local2 % 3)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 2))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); } else { if (_local2 == 9){ _arg1.push(new StoneBall(_local7, _local8, TextureStorage.BALL_STONE_INDEX)); } else { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 6), (TextureStorage.BALL_PINK_INDEX + (_local2 % 5))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); }; _arg1.push(new StoneBall(_local7, (_local8 + (8 * 30)), TextureStorage.BALL_STONE_INDEX)); }; _local2++; }; _local2 = 0; while (_local2 < 7) { _local7 = (15 + 15); _local8 = ((40 + 30) + (_local2 * 30)); if (((!((_local2 == 1))) && (!((_local2 == 5))))){ _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall((_local7 + (18 * 30)), _local8, _local9); _local5.setColorList(TextureStorage.BALL_VIOLET_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); } else { _arg1.push(new StoneBall(_local7, _local8, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((_local7 + (2 * 30)), _local8, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((_local7 + (9 * 30)), _local8, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((_local7 + (16 * 30)), _local8, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((_local7 + (18 * 30)), _local8, TextureStorage.BALL_STONE_INDEX)); }; _local2++; }; _local2 = 0; while (_local2 < 14) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 4) - (_local2 % 3)), TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _local2 = 0; while (_local2 < 14) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList(((TextureStorage.BALL_VIOLET_INDEX - 4) - (_local2 % 2)), TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local2++; }; _arg1.push(new StoneBall(215, 155, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((600 - 215), 155, TextureStorage.BALL_STONE_INDEX)); angle = 0; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; if (pause){ return; }; var _local4:Number = angle; var _local5:Number = Math.abs(Math.sin(_local4)); var _local6:Number = 0; var _local7:Number = 0; _local2 = 0; while (_local2 < 14) { if (_arg1[(58 + _local2)]){ _local8 = (215 + (Math.cos((_local4 + ((_local2 * Math.PI) / 7))) * 70)); _local11 = (155 + (Math.sin((_local4 + ((_local2 * Math.PI) / 7))) * 70)); _arg1[(58 + _local2)].x = _local8; _arg1[(58 + _local2)].y = _local11; }; if (_arg1[((58 + 14) + _local2)]){ _local8 = (600 - (215 + (Math.cos((_local4 + ((_local2 * Math.PI) / 7))) * 70))); _local11 = (155 + (Math.sin((_local4 + ((_local2 * Math.PI) / 7))) * 70)); _arg1[((58 + 14) + _local2)].x = _local8; _arg1[((58 + 14) + _local2)].y = _local11; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 132
//Level27 (levels.Level27) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level27 implements IBubblenoidLevel { private var active_node_angle1:Number;// = 0 private var pause:Boolean;// = false private var active_node_angle:Number;// = 0 private var angle:Number;// = 0 private var active_node:int; private var node_angles:Array; private var index_start_center:int; public function Level27(){ node_angles = new Array(); active_node = int(((Math.random() * 4) * 3)); super(); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local2 = 0; while (_local2 < (4 * 3)) { _local3 = 0; while (_local3 < 4) { if (_local3 < 2){ _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local2 % 7)), (TextureStorage.BALL_PINK_INDEX + (_local2 % 3))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); } else { _arg1.push(new StoneBall(0, 0, TextureStorage.BALL_STONE_INDEX)); }; _local3++; }; node_angles.push(((Math.PI / 2) * _local2)); _local2++; }; angle = 0; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local7:Number; var _local8:Number; if (pause){ return; }; var _local4:Number = (angle * 4); var _local5:Number = Math.abs(Math.sin(_local4)); var _local6:int = int(((Math.random() * 4) * 3)); if ((_local4 - active_node_angle1) > (Math.PI / 2)){ active_node_angle1 = _local4; active_node_angle = _local4; active_node = int(((Math.random() * 4) * 3)); } else { node_angles[active_node] = (node_angles[active_node] + (_local4 - active_node_angle)); active_node_angle = _local4; }; _local2 = 0; while (_local2 < (4 * 3)) { _local3 = 0; while (_local3 < 4) { if (_arg1[((_local2 * 4) + _local3)]){ _local7 = (((int((_local2 / 3)) * 150) + 72) + (Math.cos((((Math.PI / 2) * _local3) + node_angles[_local2])) * 22)); _local8 = ((((_local2 % 3) * 100) + 65) + (Math.sin((((Math.PI / 2) * _local3) + node_angles[_local2])) * 22)); _arg1[((_local2 * 4) + _local3)].x = _local7; _arg1[((_local2 * 4) + _local3)].y = _local8; }; _local3++; }; _local2++; }; angle = (angle + (Math.PI / 360)); } public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(20), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } } }//package levels
Section 133
//Level28 (levels.Level28) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level28 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(1), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local3 = 0; while (_local3 < 21) { if (_local3 < 19){ _local7 = (30 + (_local3 * 30)); _local8 = 250; _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local3 % 4)), (TextureStorage.BALL_PINK_INDEX + (_local3 % 2))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); }; _local7 = (300 + (Math.cos(((-(Math.PI) - ((Math.PI * 5) / 30)) - ((Math.PI / 30) * _local3))) * 300)); _local8 = (-100 + (Math.sin(((-(Math.PI) - ((Math.PI * 5) / 30)) - ((Math.PI / 30) * _local3))) * 300)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local3 % 2)), ((TextureStorage.BALL_PINK_INDEX + 2) + (_local3 % 2))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; _arg1.push(new StoneBall(30, 110, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall(30, 210, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall(570, 110, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall(570, 210, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall(95, 155, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((600 - 95), 155, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall(188, 210, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((600 - 188), 210, TextureStorage.BALL_STONE_INDEX)); _local3 = 0; while (_local3 < 4) { _local7 = 0; _local8 = 0; _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList(TextureStorage.BALL_GREEN_INDEX, TextureStorage.BALL_PINK_INDEX); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; angle = 0; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local7:Number; var _local8:Number; if (pause){ return; }; var _local4:Number = (angle * 4); var _local5:Number = ((Math.PI / 2) + ((Math.sin(_local4) * Math.PI) / 5)); var _local6:int = int(((Math.random() * 4) * 3)); _local2 = 0; while (_local2 < 4) { if (_arg1[(48 + _local2)]){ _local7 = (300 + (Math.cos(_local5) * (270 - (_local2 * 30)))); _local8 = (-100 + (Math.sin(_local5) * (270 - (_local2 * 30)))); _arg1[(48 + _local2)].x = _local7; _arg1[(48 + _local2)].y = _local8; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 134
//Level29 (levels.Level29) package levels { import screens.*; import balls.*; import effects.*; import flash.geom.*; import flash.text.*; public class Level29 implements IBubblenoidLevel { private var angle:Number;// = 0 private var pause:Boolean;// = false private var index_start_center:int; public function createTitle():FlyFadeText{ var _local1:FlyFadeText = new FlyFadeText(LevelSelectScreen.getLevelName(0), new Point(130, 200), new Point(0, 0)); var _local2:neuropol_font = new neuropol_font(); _local1.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF)); _local1.embedFonts = true; _local1.setTimeShowText(1000); _local1.setScreenOrientation(FlyFadeText.CENTERED); return (_local1); } public function setupLevelBalls(_arg1:Array):void{ var _local4:StaticBall; var _local5:ColorAutoChangedBall; var _local6:StoneBall; var _local7:Number; var _local8:Number; var _local9:int; _arg1.splice(0, _arg1.length); var _local2:int; var _local3:int; _local3 = 0; while (_local3 < 14) { _local7 = (90 + (Math.cos(((Math.PI / 7) * _local3)) * 70)); _local8 = (175 + (Math.sin(((Math.PI / 7) * _local3)) * 70)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - (_local3 % 4)), (TextureStorage.BALL_PINK_INDEX + (_local3 % 2))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local7 = (600 - (90 + (Math.cos(((Math.PI / 7) * _local3)) * 70))); _local8 = (175 + (Math.sin(((Math.PI / 7) * _local3)) * 70)); _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_PINK_INDEX + (_local3 % 2)), (TextureStorage.BALL_VIOLET_INDEX - (_local3 % 4))); _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; _local3 = 0; while (_local3 < 8) { _local7 = (195 + (_local3 * 30)); _local8 = 175; _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(_local7, _local8, _local9); _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 2), (TextureStorage.BALL_PINK_INDEX + (_local3 % 2))); _local5.startAutoChangeColors(1000, true); _arg1.push(_local5); _local3++; }; _arg1.push(new StoneBall(90, 175, TextureStorage.BALL_STONE_INDEX)); _arg1.push(new StoneBall((600 - 90), 175, TextureStorage.BALL_STONE_INDEX)); _local3 = 0; while (_local3 < (((10 + 4) + 10) + 4)) { _local9 = TextureStorage.BALL_VIOLET_INDEX; _local5 = new ColorAutoChangedBall(0, 0, _local9); if (_local3 < 14){ _local5.setColorList((TextureStorage.BALL_VIOLET_INDEX - 3), (TextureStorage.BALL_PINK_INDEX + 2)); } else { _local5.setColorList((TextureStorage.BALL_PINK_INDEX + 2), (TextureStorage.BALL_VIOLET_INDEX - 3)); }; _local5.startAutoChangeColors(2000, true); _arg1.push(_local5); _local3++; }; angle = 0; updateLevelBalls(_arg1); angle = 0; } public function setPause(_arg1:Boolean):void{ pause = _arg1; } public function updateLevelBalls(_arg1:Array):void{ var _local2:int; var _local3:int; var _local7:Number; var _local8:Number; if (pause){ return; }; var _local4:Number = (angle * 4); var _local5:Number = (70 - (Math.cos(_local4) * 70)); var _local6:int = int(((Math.random() * 4) * 3)); _local2 = 0; while (_local2 < 10) { if (_arg1[(38 + _local2)]){ _local7 = ((230 + (Math.cos((((Math.PI / 5) * _local2) + (((_local5 * Math.PI) * 2) / 280))) * 50)) + _local5); _local8 = (90 + (Math.sin((((Math.PI / 5) * _local2) + (((_local5 * Math.PI) * 2) / 280))) * 50)); _arg1[(38 + _local2)].x = _local7; _arg1[(38 + _local2)].y = _local8; }; _local2++; }; _local2 = 0; while (_local2 < 4) { if (_arg1[(48 + _local2)]){ _local7 = ((230 + (Math.cos((((Math.PI / 2) * _local2) + (((_local5 * Math.PI) * 2) / 280))) * 21)) + _local5); _local8 = (90 + (Math.sin((((Math.PI / 2) * _local2) + (((_local5 * Math.PI) * 2) / 280))) * 21)); _arg1[(48 + _local2)].x = _local7; _arg1[(48 + _local2)].y = _local8; }; _local2++; }; _local2 = 0; while (_local2 < 10) { if (_arg1[(52 + _local2)]){ _local7 = (600 - ((230 + (Math.cos((((Math.PI / 5) * _local2) - (((_local5 * Math.PI) * 2) / 280))) * 50)) + _local5)); _local8 = (260 + (Math.sin((((Math.PI / 5) * _local2) - (((_local5 * Math.PI) * 2) / 280))) * 50)); _arg1[(52 + _local2)].x = _local7; _arg1[(52 + _local2)].y = _local8; }; _local2++; }; _local2 = 0; while (_local2 < 4) { if (_arg1[(62 + _local2)]){ _local7 = (600 - ((230 + (Math.cos((((Math.PI / 2) * _local2) - (((_local5 * Math.PI) * 2) / 280))) * 21)) + _local5)); _local8 = (260 + (Math.sin((((Math.PI / 2) * _local2) - (((_local5 * Math.PI) * 2) / 280))) * 21)); _arg1[(62 + _local2)].x = _local7; _arg1[(62 + _local2)].y = _local8; }; _local2++; }; angle = (angle + (Math.PI / 360)); } } }//package levels
Section 135
//LevelMainMenu (levels.LevelMainMenu) package levels { import flash.events.*; import balls.*; import flash.display.*; import effects.*; import Box2D.Dynamics.*; import flash.geom.*; import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import flash.utils.*; public class LevelMainMenu implements IBubblenoidLevel { private var timer:Timer; private var time_line:Number;// = 0 private var phys_balls:Array; private var k:Number;// = 1 private var _world:b2World; private static const RATIO:Number = 30; public function LevelMainMenu(){ timer = new Timer(3000); phys_balls = new Array(); super(); timer.addEventListener(TimerEvent.TIMER, eventChangeDirBalls); timer.start(); } public function updateLevelBalls(_arg1:Array):void{ var _local2:Number; var _local3:int; var _local4:b2Vec2; _world.Step((1 / 30), 10); _local3 = 0; while ((((_local3 < _arg1.length)) && ((_local3 < phys_balls.length)))) { if (((((phys_balls[_local3].GetPosition().x * RATIO) > 615)) || (((phys_balls[_local3].GetPosition().x * RATIO) < -25)))){ _local4 = new b2Vec2((-20 / RATIO), (phys_balls[_local3].GetPosition().y - (10 / RATIO))); phys_balls[_local3].SetXForm(_local4, 0); phys_balls[_local3].SetLinearVelocity(new b2Vec2(10, -3)); }; _arg1[_local3].x = (phys_balls[_local3].GetPosition().x * RATIO); _arg1[_local3].y = (phys_balls[_local3].GetPosition().y * RATIO); _local3++; }; } private function setupDebugDraw():void{ var _local1:Sprite = new Sprite(); Main.getThisPointer().mainmenu_screen.addChild(_local1); var _local2:b2DebugDraw = new b2DebugDraw(); _local2.m_sprite = _local1; _local2.m_drawScale = RATIO; _local2.SetFlags(b2DebugDraw.e_shapeBit); _local2.m_lineThickness = 2; _local2.m_fillAlpha = 0.6; _world.SetDebugDraw(_local2); } private function eventChangeDirBalls(_arg1:Event):void{ k = -(k); } private function createWalls():void{ var _local1:b2PolygonDef = new b2PolygonDef(); _local1.vertexCount = 4; b2Vec2(_local1.vertices[0]).Set((-125 / RATIO), (84 / RATIO)); b2Vec2(_local1.vertices[1]).Set(((-125 + 854) / RATIO), (84 / RATIO)); b2Vec2(_local1.vertices[2]).Set(((-125 + 854) / RATIO), ((84 + 16) / RATIO)); b2Vec2(_local1.vertices[3]).Set((-125 / RATIO), ((84 + 16) / RATIO)); _local1.friction = 0.5; _local1.restitution = 0.3; _local1.density = 0; var _local2:b2BodyDef = new b2BodyDef(); _local2.position.Set((0 / RATIO), (0 / RATIO)); var _local3:b2Body = _world.CreateBody(_local2); _local3.CreateShape(_local1); _local3.SetMassFromShapes(); var _local4:b2PolygonDef = new b2PolygonDef(); _local4.vertexCount = 4; b2Vec2(_local4.vertices[0]).Set((-125 / RATIO), (201 / RATIO)); b2Vec2(_local4.vertices[1]).Set(((-125 + 854) / RATIO), (201 / RATIO)); b2Vec2(_local4.vertices[2]).Set(((-125 + 854) / RATIO), ((201 + 16) / RATIO)); b2Vec2(_local4.vertices[3]).Set((-125 / RATIO), ((201 + 16) / RATIO)); _local4.friction = 0.5; _local4.restitution = 0.3; _local4.density = 0; var _local5:b2BodyDef = new b2BodyDef(); _local5.position.Set((0 / RATIO), (0 / RATIO)); var _local6:b2Body = _world.CreateBody(_local5); _local6.CreateShape(_local4); _local6.SetMassFromShapes(); } private function setupWorld():void{ var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set((-3000 / RATIO), (-3000 / RATIO)); _local1.upperBound.Set((3000 / RATIO), (3000 / RATIO)); var _local2:b2Vec2 = new b2Vec2(0, 9.8); var _local3:Boolean; _world = new b2World(_local1, _local2, _local3); } private function pushBall(_arg1:Point, _arg2:Point):b2Body{ var _local3:b2CircleDef = new b2CircleDef(); _local3.radius = (15 / RATIO); _local3.density = 10; var _local4:b2BodyDef = new b2BodyDef(); _local4.position.Set((_arg1.x / RATIO), (_arg1.y / RATIO)); var _local5:b2Body = _world.CreateBody(_local4); _local5.CreateShape(_local3); _local5.SetMassFromShapes(); var _local6:b2Vec2 = new b2Vec2((_arg2.x / RATIO), (_arg2.y / RATIO)); _local5.SetLinearVelocity(_local6); return (_local5); } public function setPause(_arg1:Boolean):void{ } public function setupLevelBalls(_arg1:Array):void{ var _local3:Number; var _local4:Number; var _local5:StaticBall; setupWorld(); createWalls(); _arg1.splice(0, _arg1.length); var _local2:int; _local2 = 0; while (_local2 < 19) { _local3 = (_local2 * 50); _local4 = 60; _local5 = new StaticBall(_local3, _local4, ((TextureStorage.BALL_PINK_INDEX + _local2) % 8)); _arg1.push(_local5); phys_balls.push(pushBall(new Point(_local3, _local4), new Point(70, -3))); _local2++; }; _local2 = 0; while (_local2 < 19) { _local3 = (_local2 * 50); _local4 = (167 + 10); _local5 = new StaticBall(_local3, _local4, ((TextureStorage.BALL_PINK_INDEX + _local2) % 8)); _arg1.push(_local5); phys_balls.push(pushBall(new Point(_local3, _local4), new Point(30, -3))); _local2++; }; updateLevelBalls(_arg1); time_line = 0; } public function createTitle():FlyFadeText{ return (null); } } }//package levels
Section 136
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; public static var _inventory:MochiInventory; public static function triggerEvent(_arg1:String, _arg2:Object):void{ MochiSocial.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.addEventListener(_arg1, _arg2); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _inventory = new MochiInventory(); }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 137
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function set value(_arg1:Number):void{ setValue(_arg1); } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function get value():Number{ return (Number(this.toString())); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 138
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3
Section 139
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function endPlay():void{ MochiServices.send("events_clearRoundID", null, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function trackEvent(_arg1:String, _arg2=null):void{ MochiServices.send("events_trackEvent", {tag:_arg1, value:_arg2}, null, null); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local4:Object; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startPlay(_arg1:String="gameplay"):void{ MochiServices.send("events_setRoundID", {tag:String(_arg1)}, null, null); } } }//package mochi.as3
Section 140
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _syncID:Number; private var _consumableProperties:Object; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(_arg1:Object):void{ if (!this[(_arg1.id + KEY_SALT)]){ this[(_arg1.id + KEY_SALT)] = 0; }; if (!this[_arg1.id]){ this[_arg1.id] = 0; }; this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count); this[_arg1.id] = (this[_arg1.id] + _arg1.count); if (_arg1.privateProperties.consumable){ if (!this[_arg1.privateProperties.tag]){ this[_arg1.privateProperties.tag] = 0; }; this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count)); }; } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[_arg1]){ return (MochiDigits(_consumableProperties[_arg1]).value); }; return (undefined); } private function loggedIn(_arg1:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[_arg1] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1)); } private function putConsumableBag(_arg1:MochiUserData):void{ _syncPending = false; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(_arg2 is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2}); return; }; if (_consumableProperties[_arg1]){ _local3 = MochiDigits(_consumableProperties[_arg1]); if (_local3.value == _arg2){ return; }; _local3.value = _arg2; } else { _names.push(_arg1); _consumableProperties[_arg1] = new MochiDigits(_arg2); }; _syncID++; } private function itemOwned(_arg1:Object):void{ _storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count}; } private function sync(_arg1:Event=null):void{ var _local3:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; var _local2:Object = {}; for (_local3 in _consumableProperties) { _local2[_local3] = MochiDigits(_consumableProperties[_local3]).value; }; MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return (_names[(_arg1 - 1)]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{ if (!_consumableProperties[_arg1]){ return (false); }; _names.splice(_names.indexOf(_arg1), 1); delete _consumableProperties[_arg1]; return (true); } private function getConsumableBag(_arg1:MochiUserData):void{ var _local2:String; var _local3:Number; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); return; }; _consumableProperties = {}; _names = new Array(); if (_arg1.data){ for (_local2 in _arg1.data) { _names.push(_local2); _consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]); }; }; for (_local2 in _storeSync) { _local3 = _storeSync[_local2].count; if (_consumableProperties[(_local2 + KEY_SALT)]){ _local3 = (_local3 - _consumableProperties[_local2]); }; if (_local3 == 0){ } else { newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(_arg1:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 141
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; var _local2:Object = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(_arg1) != _arg1){ trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated")); }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 142
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.system.*; import flash.utils.*; import flash.net.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _queue:Array; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _nextCallbackID:Number; private static var _clip:MovieClip; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _loader:Loader; private static var _callbacks:Object; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(_arg1:Object):void{ var methodName:String; var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = _callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete _callbacks[cb]; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _queue.push({methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); }; if (_clip != null){ if (_callbacks != null){ _callbacks[_nextCallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _nextCallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.8 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } public static function warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_queue))){ while (_queue.length > 0) { _local2 = _queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _callbacks[_local2.callbackID]; }; delete _callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "sync": servicesSync.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function urlOptions(_arg1:Object):Object{ var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_clip.parent){ _clip.parent.removeChild(_clip); }; if (_arg1 != null){ if ((_arg1 is DisplayObjectContainer)){ _container = _arg1; }; }; if (_arg2){ if ((_container is DisplayObjectContainer)){ DisplayObjectContainer(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift()); }; }; } private static function loadLCBridge(_arg1:Object):void{ var loader:Loader; var clip = _arg1; loader = new Loader(); var mochiLCURL:String = (_servURL + _mochiLC); var req:URLRequest = new URLRequest(mochiLCURL); var complete:Function = function (_arg1:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; var _local3:String = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local3 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local3); _clip = new MovieClip(); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var _local4:URLRequest = new URLRequest(_local3); var _local5:URLVariables = new URLVariables(); _local5.listenLC = _listenChannelName; _local5.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local5.api_version = getVersion(); if (widget){ _local5.widget = true; }; _local4.data = _local5; _loader.load(_local4); _clip.addChild(_loader); _sendChannel = new LocalConnection(); _queue = []; _nextCallbackID = 0; _callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function updateCopy(_arg1:Object):void{ MochiServices.send("coins_updateCopy", _arg1, null, null); } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 143
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_SHOWN:String = "LoginShown"; public static const LOGIN_HIDE:String = "LoginHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _user_info:Object = null; public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function requestLogin():void{ MochiServices.send("coins_requestLogin"); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _user_info = _arg1; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 144
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ _syncContainer = {}; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ if (_syncContainer[_arg1] == _arg2){ return; }; var _local3:String = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } } }//package mochi.as3
Section 145
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var operation:String;// = null public var error:Event;// = null public var data;// = null public var _loader:URLLoader; public var key:String;// = null public function MochiUserData(_arg1:String="", _arg2:Function=null){ this.key = _arg1; this.callback = _arg2; } public function serialize(_arg1):ByteArray{ var _local2:ByteArray = new ByteArray(); _local2.objectEncoding = ObjectEncoding.AMF3; _local2.writeObject(_arg1); _local2.compress(); return (_local2); } public function errorHandler(_arg1:IOErrorEvent):void{ data = null; error = _arg1; if (callback != null){ performCallback(); } else { dispatchEvent(_arg1); }; close(); } public function putEvent(_arg1):void{ request("put", serialize(_arg1)); } public function deserialize(_arg1:ByteArray){ _arg1.objectEncoding = ObjectEncoding.AMF3; _arg1.uncompress(); return (_arg1.readObject()); } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString()))); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function performCallback():void{ try { callback(this); } catch(e:Error) { trace(("[MochiUserData] exception during callback: " + e)); }; } public function request(_arg1:String, _arg2:ByteArray):void{ var _operation = _arg1; var _data = _arg2; operation = _operation; var api_url:String = MochiSocial.getAPIURL(); var api_token:String = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); var args:URLVariables = new URLVariables(); args.op = _operation; args.key = key; var req:URLRequest = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); try { _loader.load(req); } catch(e:SecurityError) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString()))); }; } public function completeHandler(_arg1:Event):void{ var event = _arg1; try { if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; } catch(e:Error) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString()))); return; }; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public static function get(_arg1:String, _arg2:Function):void{ var _local3:MochiUserData = new MochiUserData(_arg1, _arg2); _local3.getEvent(); } public static function put(_arg1:String, _arg2, _arg3:Function):void{ var _local4:MochiUserData = new MochiUserData(_arg1, _arg3); _local4.putEvent(_arg2); } } }//package mochi.as3
Section 146
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.3.0.4852"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//package mx.core
Section 147
//EdgeMetrics (mx.core.EdgeMetrics) package mx.core { public class EdgeMetrics { public var top:Number; public var left:Number; public var bottom:Number; public var right:Number; mx_internal static const VERSION:String = "3.3.0.4852"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.left = _arg1; this.top = _arg2; this.right = _arg3; this.bottom = _arg4; } public function clone():EdgeMetrics{ return (new EdgeMetrics(left, top, right, bottom)); } } }//package mx.core
Section 148
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.3.0.4852"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 149
//FlexLoader (mx.core.FlexLoader) package mx.core { import flash.display.*; import mx.utils.*; public class FlexLoader extends Loader { mx_internal static const VERSION:String = "3.3.0.4852"; public function FlexLoader(){ super(); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 150
//FlexShape (mx.core.FlexShape) package mx.core { import flash.display.*; import mx.utils.*; public class FlexShape extends Shape { mx_internal static const VERSION:String = "3.3.0.4852"; public function FlexShape(){ super(); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 151
//FlexVersion (mx.core.FlexVersion) package mx.core { import mx.resources.*; public class FlexVersion { public static const VERSION_2_0_1:uint = 33554433; public static const CURRENT_VERSION:uint = 50331648; public static const VERSION_3_0:uint = 50331648; public static const VERSION_2_0:uint = 33554432; public static const VERSION_ALREADY_READ:String = "versionAlreadyRead"; public static const VERSION_ALREADY_SET:String = "versionAlreadySet"; mx_internal static const VERSION:String = "3.3.0.4852"; private static var compatibilityVersionChanged:Boolean = false; private static var _compatibilityErrorFunction:Function; private static var _compatibilityVersion:uint = 50331648; private static var compatibilityVersionRead:Boolean = false; mx_internal static function changeCompatibilityVersionString(_arg1:String):void{ var _local2:Array = _arg1.split("."); var _local3:uint = parseInt(_local2[0]); var _local4:uint = parseInt(_local2[1]); var _local5:uint = parseInt(_local2[2]); _compatibilityVersion = (((_local3 << 24) + (_local4 << 16)) + _local5); } public static function set compatibilityVersion(_arg1:uint):void{ var _local2:String; if (_arg1 == _compatibilityVersion){ return; }; if (compatibilityVersionChanged){ if (compatibilityErrorFunction == null){ _local2 = ResourceManager.getInstance().getString("core", VERSION_ALREADY_SET); throw (new Error(_local2)); }; compatibilityErrorFunction(_arg1, VERSION_ALREADY_SET); }; if (compatibilityVersionRead){ if (compatibilityErrorFunction == null){ _local2 = ResourceManager.getInstance().getString("core", VERSION_ALREADY_READ); throw (new Error(_local2)); }; compatibilityErrorFunction(_arg1, VERSION_ALREADY_READ); }; _compatibilityVersion = _arg1; compatibilityVersionChanged = true; } public static function get compatibilityVersion():uint{ compatibilityVersionRead = true; return (_compatibilityVersion); } public static function set compatibilityErrorFunction(_arg1:Function):void{ _compatibilityErrorFunction = _arg1; } public static function set compatibilityVersionString(_arg1:String):void{ var _local2:Array = _arg1.split("."); var _local3:uint = parseInt(_local2[0]); var _local4:uint = parseInt(_local2[1]); var _local5:uint = parseInt(_local2[2]); compatibilityVersion = (((_local3 << 24) + (_local4 << 16)) + _local5); } public static function get compatibilityErrorFunction():Function{ return (_compatibilityErrorFunction); } public static function get compatibilityVersionString():String{ var _local1:uint = ((compatibilityVersion >> 24) & 0xFF); var _local2:uint = ((compatibilityVersion >> 16) & 0xFF); var _local3:uint = (compatibilityVersion & 0xFFFF); return (((((_local1.toString() + ".") + _local2.toString()) + ".") + _local3.toString())); } } }//package mx.core
Section 152
//FontAsset (mx.core.FontAsset) package mx.core { import flash.text.*; public class FontAsset extends Font implements IFlexAsset { mx_internal static const VERSION:String = "3.3.0.4852"; } }//package mx.core
Section 153
//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.core
Section 154
//IButton (mx.core.IButton) package mx.core { public interface IButton extends IUIComponent { function get emphasized():Boolean; function set emphasized(_arg1:Boolean):void; function callLater(_arg1:Function, _arg2:Array=null):void; } }//package mx.core
Section 155
//IChildList (mx.core.IChildList) package mx.core { import flash.display.*; import flash.geom.*; public interface IChildList { function get numChildren():int; function removeChild(_arg1:DisplayObject):DisplayObject; function getChildByName(_arg1:String):DisplayObject; function removeChildAt(_arg1:int):DisplayObject; function getChildIndex(_arg1:DisplayObject):int; function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject; function getObjectsUnderPoint(_arg1:Point):Array; function setChildIndex(_arg1:DisplayObject, _arg2:int):void; function getChildAt(_arg1:int):DisplayObject; function addChild(_arg1:DisplayObject):DisplayObject; function contains(_arg1:DisplayObject):Boolean; } }//package mx.core
Section 156
//IContainer (mx.core.IContainer) package mx.core { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.media.*; import mx.managers.*; public interface IContainer extends IUIComponent { function set hitArea(_arg1:Sprite):void; function swapChildrenAt(_arg1:int, _arg2:int):void; function getChildByName(_arg1:String):DisplayObject; function get doubleClickEnabled():Boolean; function get graphics():Graphics; function get useHandCursor():Boolean; function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject; function set mouseChildren(_arg1:Boolean):void; function set creatingContentPane(_arg1:Boolean):void; function get textSnapshot():TextSnapshot; function getChildIndex(_arg1:DisplayObject):int; function set doubleClickEnabled(_arg1:Boolean):void; function getObjectsUnderPoint(_arg1:Point):Array; function get creatingContentPane():Boolean; function setChildIndex(_arg1:DisplayObject, _arg2:int):void; function get soundTransform():SoundTransform; function set useHandCursor(_arg1:Boolean):void; function get numChildren():int; function contains(_arg1:DisplayObject):Boolean; function get verticalScrollPosition():Number; function set defaultButton(_arg1:IFlexDisplayObject):void; function swapChildren(_arg1:DisplayObject, _arg2:DisplayObject):void; function set horizontalScrollPosition(_arg1:Number):void; function get focusManager():IFocusManager; function startDrag(_arg1:Boolean=false, _arg2:Rectangle=null):void; function set mouseEnabled(_arg1:Boolean):void; function getChildAt(_arg1:int):DisplayObject; function set soundTransform(_arg1:SoundTransform):void; function get tabChildren():Boolean; function get tabIndex():int; function set focusRect(_arg1:Object):void; function get hitArea():Sprite; function get mouseChildren():Boolean; function removeChildAt(_arg1:int):DisplayObject; function get defaultButton():IFlexDisplayObject; function stopDrag():void; function set tabEnabled(_arg1:Boolean):void; function get horizontalScrollPosition():Number; function get focusRect():Object; function get viewMetrics():EdgeMetrics; function set verticalScrollPosition(_arg1:Number):void; function get dropTarget():DisplayObject; function get mouseEnabled():Boolean; function set tabChildren(_arg1:Boolean):void; function set buttonMode(_arg1:Boolean):void; function get tabEnabled():Boolean; function get buttonMode():Boolean; function removeChild(_arg1:DisplayObject):DisplayObject; function set tabIndex(_arg1:int):void; function addChild(_arg1:DisplayObject):DisplayObject; function areInaccessibleObjectsUnderPoint(_arg1:Point):Boolean; } }//package mx.core
Section 157
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 158
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 159
//IFlexModuleFactory (mx.core.IFlexModuleFactory) package mx.core { public interface IFlexModuleFactory { function create(... _args):Object; function info():Object; } }//package mx.core
Section 160
//IInvalidating (mx.core.IInvalidating) package mx.core { public interface IInvalidating { function validateNow():void; function invalidateSize():void; function invalidateDisplayList():void; function invalidateProperties():void; } }//package mx.core
Section 161
//IProgrammaticSkin (mx.core.IProgrammaticSkin) package mx.core { public interface IProgrammaticSkin { function validateNow():void; function validateDisplayList():void; } }//package mx.core
Section 162
//IRawChildrenContainer (mx.core.IRawChildrenContainer) package mx.core { public interface IRawChildrenContainer { function get rawChildren():IChildList; } }//package mx.core
Section 163
//IRectangularBorder (mx.core.IRectangularBorder) package mx.core { import flash.geom.*; public interface IRectangularBorder extends IBorder { function get backgroundImageBounds():Rectangle; function get hasBackgroundImage():Boolean; function set backgroundImageBounds(_arg1:Rectangle):void; function layoutBackgroundImage():void; } }//package mx.core
Section 164
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 165
//ISWFBridgeGroup (mx.core.ISWFBridgeGroup) package mx.core { import flash.events.*; public interface ISWFBridgeGroup { function getChildBridgeProvider(_arg1:IEventDispatcher):ISWFBridgeProvider; function removeChildBridge(_arg1:IEventDispatcher):void; function get parentBridge():IEventDispatcher; function addChildBridge(_arg1:IEventDispatcher, _arg2:ISWFBridgeProvider):void; function set parentBridge(_arg1:IEventDispatcher):void; function containsBridge(_arg1:IEventDispatcher):Boolean; function getChildBridges():Array; } }//package mx.core
Section 166
//ISWFBridgeProvider (mx.core.ISWFBridgeProvider) package mx.core { import flash.events.*; public interface ISWFBridgeProvider { function get childAllowsParent():Boolean; function get swfBridge():IEventDispatcher; function get parentAllowsChild():Boolean; } }//package mx.core
Section 167
//IUIComponent (mx.core.IUIComponent) package mx.core { import flash.display.*; import mx.managers.*; public interface IUIComponent extends IFlexDisplayObject { function set focusPane(_arg1:Sprite):void; function get enabled():Boolean; function set enabled(_arg1:Boolean):void; function set isPopUp(_arg1:Boolean):void; function get explicitMinHeight():Number; function get percentWidth():Number; function get isPopUp():Boolean; function get owner():DisplayObjectContainer; function get percentHeight():Number; function get baselinePosition():Number; function owns(_arg1:DisplayObject):Boolean; function initialize():void; function get maxWidth():Number; function get minWidth():Number; function getExplicitOrMeasuredWidth():Number; function get explicitMaxWidth():Number; function get explicitMaxHeight():Number; function set percentHeight(_arg1:Number):void; function get minHeight():Number; function set percentWidth(_arg1:Number):void; function get document():Object; function get focusPane():Sprite; function getExplicitOrMeasuredHeight():Number; function set tweeningProperties(_arg1:Array):void; function set explicitWidth(_arg1:Number):void; function set measuredMinHeight(_arg1:Number):void; function get explicitMinWidth():Number; function get tweeningProperties():Array; function get maxHeight():Number; function set owner(_arg1:DisplayObjectContainer):void; function set includeInLayout(_arg1:Boolean):void; function setVisible(_arg1:Boolean, _arg2:Boolean=false):void; function parentChanged(_arg1:DisplayObjectContainer):void; function get explicitWidth():Number; function get measuredMinHeight():Number; function set measuredMinWidth(_arg1:Number):void; function set explicitHeight(_arg1:Number):void; function get includeInLayout():Boolean; function get measuredMinWidth():Number; function get explicitHeight():Number; function set systemManager(_arg1:ISystemManager):void; function set document(_arg1:Object):void; function get systemManager():ISystemManager; } }//package mx.core
Section 168
//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 169
//Singleton (mx.core.Singleton) package mx.core { public class Singleton { mx_internal static const VERSION:String = "3.3.0.4852"; private static var classMap:Object = {}; public static function registerClass(_arg1:String, _arg2:Class):void{ var _local3:Class = classMap[_arg1]; if (!_local3){ classMap[_arg1] = _arg2; }; } public static function getClass(_arg1:String):Class{ return (classMap[_arg1]); } public static function getInstance(_arg1:String):Object{ var _local2:Class = classMap[_arg1]; if (!_local2){ throw (new Error((("No class registered for interface '" + _arg1) + "'."))); }; return (_local2["getInstance"]()); } } }//package mx.core
Section 170
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.3.0.4852"; } }//package mx.core
Section 171
//UIComponentGlobals (mx.core.UIComponentGlobals) package mx.core { import flash.display.*; import flash.geom.*; import mx.managers.*; public class UIComponentGlobals { mx_internal static var callLaterSuspendCount:int = 0; mx_internal static var layoutManager:ILayoutManager; mx_internal static var nextFocusObject:InteractiveObject; mx_internal static var designTime:Boolean = false; mx_internal static var tempMatrix:Matrix = new Matrix(); mx_internal static var callLaterDispatcherCount:int = 0; private static var _catchCallLaterExceptions:Boolean = false; public static function set catchCallLaterExceptions(_arg1:Boolean):void{ _catchCallLaterExceptions = _arg1; } public static function get designMode():Boolean{ return (designTime); } public static function set designMode(_arg1:Boolean):void{ designTime = _arg1; } public static function get catchCallLaterExceptions():Boolean{ return (_catchCallLaterExceptions); } } }//package mx.core
Section 172
//ModuleEvent (mx.events.ModuleEvent) package mx.events { import flash.events.*; import mx.core.*; import mx.modules.*; public class ModuleEvent extends ProgressEvent { public var errorText:String; private var _module:IModuleInfo; public static const READY:String = "ready"; public static const ERROR:String = "error"; public static const PROGRESS:String = "progress"; mx_internal static const VERSION:String = "3.3.0.4852"; public static const SETUP:String = "setup"; public static const UNLOAD:String = "unload"; public function ModuleEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:uint=0, _arg5:uint=0, _arg6:String=null, _arg7:IModuleInfo=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); this.errorText = _arg6; this._module = _arg7; } public function get module():IModuleInfo{ if (_module){ return (_module); }; return ((target as IModuleInfo)); } override public function clone():Event{ return (new ModuleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText, module)); } } }//package mx.events
Section 173
//ResourceEvent (mx.events.ResourceEvent) package mx.events { import flash.events.*; import mx.core.*; public class ResourceEvent extends ProgressEvent { public var errorText:String; mx_internal static const VERSION:String = "3.3.0.4852"; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public static const ERROR:String = "error"; public function ResourceEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:uint=0, _arg5:uint=0, _arg6:String=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); this.errorText = _arg6; } override public function clone():Event{ return (new ResourceEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText)); } } }//package mx.events
Section 174
//StyleEvent (mx.events.StyleEvent) package mx.events { import flash.events.*; import mx.core.*; public class StyleEvent extends ProgressEvent { public var errorText:String; mx_internal static const VERSION:String = "3.3.0.4852"; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public static const ERROR:String = "error"; public function StyleEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:uint=0, _arg5:uint=0, _arg6:String=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); this.errorText = _arg6; } override public function clone():Event{ return (new StyleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText)); } } }//package mx.events
Section 175
//RectangularDropShadow (mx.graphics.RectangularDropShadow) package mx.graphics { import mx.core.*; import flash.display.*; import flash.geom.*; import mx.utils.*; import flash.filters.*; public class RectangularDropShadow { private var leftShadow:BitmapData; private var _tlRadius:Number;// = 0 private var _trRadius:Number;// = 0 private var _angle:Number;// = 45 private var topShadow:BitmapData; private var _distance:Number;// = 4 private var rightShadow:BitmapData; private var _alpha:Number;// = 0.4 private var shadow:BitmapData; private var _brRadius:Number;// = 0 private var _blRadius:Number;// = 0 private var _color:int;// = 0 private var bottomShadow:BitmapData; private var changed:Boolean;// = true mx_internal static const VERSION:String = "3.3.0.4852"; public function get blRadius():Number{ return (_blRadius); } public function set brRadius(_arg1:Number):void{ if (_brRadius != _arg1){ _brRadius = _arg1; changed = true; }; } public function set color(_arg1:int):void{ if (_color != _arg1){ _color = _arg1; changed = true; }; } public function drawShadow(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; if (changed){ createShadowBitmaps(); changed = false; }; _arg4 = Math.ceil(_arg4); _arg5 = Math.ceil(_arg5); var _local6:int = (leftShadow) ? leftShadow.width : 0; var _local7:int = (rightShadow) ? rightShadow.width : 0; var _local8:int = (topShadow) ? topShadow.height : 0; var _local9:int = (bottomShadow) ? bottomShadow.height : 0; var _local10:int = (_local6 + _local7); var _local11:int = (_local8 + _local9); var _local12:Number = ((_arg5 + _local11) / 2); var _local13:Number = ((_arg4 + _local10) / 2); var _local14:Matrix = new Matrix(); if (((leftShadow) || (topShadow))){ _local15 = Math.min((tlRadius + _local10), _local13); _local16 = Math.min((tlRadius + _local11), _local12); _local14.tx = (_arg2 - _local6); _local14.ty = (_arg3 - _local8); _arg1.beginBitmapFill(shadow, _local14); _arg1.drawRect((_arg2 - _local6), (_arg3 - _local8), _local15, _local16); _arg1.endFill(); }; if (((rightShadow) || (topShadow))){ _local17 = Math.min((trRadius + _local10), _local13); _local18 = Math.min((trRadius + _local11), _local12); _local14.tx = (((_arg2 + _arg4) + _local7) - shadow.width); _local14.ty = (_arg3 - _local8); _arg1.beginBitmapFill(shadow, _local14); _arg1.drawRect((((_arg2 + _arg4) + _local7) - _local17), (_arg3 - _local8), _local17, _local18); _arg1.endFill(); }; if (((leftShadow) || (bottomShadow))){ _local19 = Math.min((blRadius + _local10), _local13); _local20 = Math.min((blRadius + _local11), _local12); _local14.tx = (_arg2 - _local6); _local14.ty = (((_arg3 + _arg5) + _local9) - shadow.height); _arg1.beginBitmapFill(shadow, _local14); _arg1.drawRect((_arg2 - _local6), (((_arg3 + _arg5) + _local9) - _local20), _local19, _local20); _arg1.endFill(); }; if (((rightShadow) || (bottomShadow))){ _local21 = Math.min((brRadius + _local10), _local13); _local22 = Math.min((brRadius + _local11), _local12); _local14.tx = (((_arg2 + _arg4) + _local7) - shadow.width); _local14.ty = (((_arg3 + _arg5) + _local9) - shadow.height); _arg1.beginBitmapFill(shadow, _local14); _arg1.drawRect((((_arg2 + _arg4) + _local7) - _local21), (((_arg3 + _arg5) + _local9) - _local22), _local21, _local22); _arg1.endFill(); }; if (leftShadow){ _local14.tx = (_arg2 - _local6); _local14.ty = 0; _arg1.beginBitmapFill(leftShadow, _local14); _arg1.drawRect((_arg2 - _local6), ((_arg3 - _local8) + _local16), _local6, ((((_arg5 + _local8) + _local9) - _local16) - _local20)); _arg1.endFill(); }; if (rightShadow){ _local14.tx = (_arg2 + _arg4); _local14.ty = 0; _arg1.beginBitmapFill(rightShadow, _local14); _arg1.drawRect((_arg2 + _arg4), ((_arg3 - _local8) + _local18), _local7, ((((_arg5 + _local8) + _local9) - _local18) - _local22)); _arg1.endFill(); }; if (topShadow){ _local14.tx = 0; _local14.ty = (_arg3 - _local8); _arg1.beginBitmapFill(topShadow, _local14); _arg1.drawRect(((_arg2 - _local6) + _local15), (_arg3 - _local8), ((((_arg4 + _local6) + _local7) - _local15) - _local17), _local8); _arg1.endFill(); }; if (bottomShadow){ _local14.tx = 0; _local14.ty = (_arg3 + _arg5); _arg1.beginBitmapFill(bottomShadow, _local14); _arg1.drawRect(((_arg2 - _local6) + _local19), (_arg3 + _arg5), ((((_arg4 + _local6) + _local7) - _local19) - _local21), _local9); _arg1.endFill(); }; } public function get brRadius():Number{ return (_brRadius); } public function get angle():Number{ return (_angle); } private function createShadowBitmaps():void{ var _local1:Number = ((Math.max(tlRadius, blRadius) + (2 * distance)) + Math.max(trRadius, brRadius)); var _local2:Number = ((Math.max(tlRadius, trRadius) + (2 * distance)) + Math.max(blRadius, brRadius)); if ((((_local1 < 0)) || ((_local2 < 0)))){ return; }; var _local3:Shape = new FlexShape(); var _local4:Graphics = _local3.graphics; _local4.beginFill(0xFFFFFF); GraphicsUtil.drawRoundRectComplex(_local4, 0, 0, _local1, _local2, tlRadius, trRadius, blRadius, brRadius); _local4.endFill(); var _local5:BitmapData = new BitmapData(_local1, _local2, true, 0); _local5.draw(_local3, new Matrix()); var _local6:DropShadowFilter = new DropShadowFilter(distance, angle, color, alpha); _local6.knockout = true; var _local7:Rectangle = new Rectangle(0, 0, _local1, _local2); var _local8:Rectangle = _local5.generateFilterRect(_local7, _local6); var _local9:Number = (_local7.left - _local8.left); var _local10:Number = (_local8.right - _local7.right); var _local11:Number = (_local7.top - _local8.top); var _local12:Number = (_local8.bottom - _local7.bottom); shadow = new BitmapData(_local8.width, _local8.height); shadow.applyFilter(_local5, _local7, new Point(_local9, _local11), _local6); var _local13:Point = new Point(0, 0); var _local14:Rectangle = new Rectangle(); if (_local9 > 0){ _local14.x = 0; _local14.y = ((tlRadius + _local11) + _local12); _local14.width = _local9; _local14.height = 1; leftShadow = new BitmapData(_local9, 1); leftShadow.copyPixels(shadow, _local14, _local13); } else { leftShadow = null; }; if (_local10 > 0){ _local14.x = (shadow.width - _local10); _local14.y = ((trRadius + _local11) + _local12); _local14.width = _local10; _local14.height = 1; rightShadow = new BitmapData(_local10, 1); rightShadow.copyPixels(shadow, _local14, _local13); } else { rightShadow = null; }; if (_local11 > 0){ _local14.x = ((tlRadius + _local9) + _local10); _local14.y = 0; _local14.width = 1; _local14.height = _local11; topShadow = new BitmapData(1, _local11); topShadow.copyPixels(shadow, _local14, _local13); } else { topShadow = null; }; if (_local12 > 0){ _local14.x = ((blRadius + _local9) + _local10); _local14.y = (shadow.height - _local12); _local14.width = 1; _local14.height = _local12; bottomShadow = new BitmapData(1, _local12); bottomShadow.copyPixels(shadow, _local14, _local13); } else { bottomShadow = null; }; } public function get alpha():Number{ return (_alpha); } public function get color():int{ return (_color); } public function set angle(_arg1:Number):void{ if (_angle != _arg1){ _angle = _arg1; changed = true; }; } public function set trRadius(_arg1:Number):void{ if (_trRadius != _arg1){ _trRadius = _arg1; changed = true; }; } public function set tlRadius(_arg1:Number):void{ if (_tlRadius != _arg1){ _tlRadius = _arg1; changed = true; }; } public function get trRadius():Number{ return (_trRadius); } public function set distance(_arg1:Number):void{ if (_distance != _arg1){ _distance = _arg1; changed = true; }; } public function get distance():Number{ return (_distance); } public function get tlRadius():Number{ return (_tlRadius); } public function set alpha(_arg1:Number):void{ if (_alpha != _arg1){ _alpha = _arg1; changed = true; }; } public function set blRadius(_arg1:Number):void{ if (_blRadius != _arg1){ _blRadius = _arg1; changed = true; }; } } }//package mx.graphics
Section 176
//IFocusManager (mx.managers.IFocusManager) package mx.managers { import flash.events.*; import mx.core.*; import flash.display.*; public interface IFocusManager { function get focusPane():Sprite; function getFocus():IFocusManagerComponent; function deactivate():void; function set defaultButton(_arg1:IButton):void; function set focusPane(_arg1:Sprite):void; function set showFocusIndicator(_arg1:Boolean):void; function moveFocus(_arg1:String, _arg2:DisplayObject=null):void; function addSWFBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void; function removeSWFBridge(_arg1:IEventDispatcher):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(_arg1:InteractiveObject):IFocusManagerComponent; function get nextTabIndex():int; function get defaultButton():IButton; function get showFocusIndicator():Boolean; function setFocus(_arg1:IFocusManagerComponent):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function getNextFocusManagerComponent(_arg1:Boolean=false):IFocusManagerComponent; } }//package mx.managers
Section 177
//IFocusManagerComponent (mx.managers.IFocusManagerComponent) package mx.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package mx.managers
Section 178
//IFocusManagerContainer (mx.managers.IFocusManagerContainer) package mx.managers { import flash.events.*; import flash.display.*; public interface IFocusManagerContainer extends IEventDispatcher { function set focusManager(_arg1:IFocusManager):void; function get focusManager():IFocusManager; function get systemManager():ISystemManager; function contains(_arg1:DisplayObject):Boolean; } }//package mx.managers
Section 179
//ILayoutManager (mx.managers.ILayoutManager) package mx.managers { import flash.events.*; public interface ILayoutManager extends IEventDispatcher { function validateNow():void; function validateClient(_arg1:ILayoutManagerClient, _arg2:Boolean=false):void; function isInvalid():Boolean; function invalidateDisplayList(_arg1:ILayoutManagerClient):void; function set usePhasedInstantiation(_arg1:Boolean):void; function invalidateSize(_arg1:ILayoutManagerClient):void; function get usePhasedInstantiation():Boolean; function invalidateProperties(_arg1:ILayoutManagerClient):void; } }//package mx.managers
Section 180
//ILayoutManagerClient (mx.managers.ILayoutManagerClient) package mx.managers { import flash.events.*; public interface ILayoutManagerClient extends IEventDispatcher { function get updateCompletePendingFlag():Boolean; function set updateCompletePendingFlag(_arg1:Boolean):void; function set initialized(_arg1:Boolean):void; function validateProperties():void; function validateDisplayList():void; function get nestLevel():int; function get initialized():Boolean; function get processedDescriptors():Boolean; function validateSize(_arg1:Boolean=false):void; function set nestLevel(_arg1:int):void; function set processedDescriptors(_arg1:Boolean):void; } }//package mx.managers
Section 181
//ISystemManager (mx.managers.ISystemManager) package mx.managers { import flash.events.*; import mx.core.*; import flash.display.*; import flash.geom.*; import flash.text.*; public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModuleFactory { function set focusPane(_arg1:Sprite):void; function get toolTipChildren():IChildList; function useSWFBridge():Boolean; function isFontFaceEmbedded(_arg1:TextFormat):Boolean; function deployMouseShields(_arg1:Boolean):void; function get rawChildren():IChildList; function get topLevelSystemManager():ISystemManager; function dispatchEventFromSWFBridges(_arg1:Event, _arg2:IEventDispatcher=null, _arg3:Boolean=false, _arg4:Boolean=false):void; function getSandboxRoot():DisplayObject; function get swfBridgeGroup():ISWFBridgeGroup; function removeFocusManager(_arg1:IFocusManagerContainer):void; function addChildToSandboxRoot(_arg1:String, _arg2:DisplayObject):void; function get document():Object; function get focusPane():Sprite; function get loaderInfo():LoaderInfo; function addChildBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void; function getTopLevelRoot():DisplayObject; function removeChildBridge(_arg1:IEventDispatcher):void; function isDisplayObjectInABridgedApplication(_arg1:DisplayObject):Boolean; function get popUpChildren():IChildList; function get screen():Rectangle; function removeChildFromSandboxRoot(_arg1:String, _arg2:DisplayObject):void; function getDefinitionByName(_arg1:String):Object; function activate(_arg1:IFocusManagerContainer):void; function deactivate(_arg1:IFocusManagerContainer):void; function get cursorChildren():IChildList; function set document(_arg1:Object):void; function get embeddedFontList():Object; function set numModalWindows(_arg1:int):void; function isTopLevel():Boolean; function isTopLevelRoot():Boolean; function get numModalWindows():int; function addFocusManager(_arg1:IFocusManagerContainer):void; function get stage():Stage; function getVisibleApplicationRect(_arg1:Rectangle=null):Rectangle; } }//package mx.managers
Section 182
//SystemManagerGlobals (mx.managers.SystemManagerGlobals) package mx.managers { public class SystemManagerGlobals { public static var topLevelSystemManagers:Array = []; public static var changingListenersInOtherSystemManagers:Boolean; public static var bootstrapLoaderInfoURL:String; public static var showMouseCursor:Boolean; } }//package mx.managers
Section 183
//IModuleInfo (mx.modules.IModuleInfo) package mx.modules { import flash.events.*; import mx.core.*; import flash.system.*; import flash.utils.*; public interface IModuleInfo extends IEventDispatcher { function get ready():Boolean; function get loaded():Boolean; function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void; function release():void; function get error():Boolean; function get data():Object; function publish(_arg1:IFlexModuleFactory):void; function get factory():IFlexModuleFactory; function set data(_arg1:Object):void; function get url():String; function get setup():Boolean; function unload():void; } }//package mx.modules
Section 184
//ModuleManager (mx.modules.ModuleManager) package mx.modules { import mx.core.*; public class ModuleManager { mx_internal static const VERSION:String = "3.3.0.4852"; public static function getModule(_arg1:String):IModuleInfo{ return (getSingleton().getModule(_arg1)); } private static function getSingleton():Object{ if (!ModuleManagerGlobals.managerSingleton){ ModuleManagerGlobals.managerSingleton = new ModuleManagerImpl(); }; return (ModuleManagerGlobals.managerSingleton); } public static function getAssociatedFactory(_arg1:Object):IFlexModuleFactory{ return (getSingleton().getAssociatedFactory(_arg1)); } } }//package mx.modules import flash.events.*; import mx.core.*; import flash.display.*; import flash.system.*; import mx.events.*; import flash.utils.*; import flash.net.*; class ModuleInfoProxy extends EventDispatcher implements IModuleInfo { private var _data:Object; private var info:ModuleInfo; private var referenced:Boolean;// = false private function ModuleInfoProxy(_arg1:ModuleInfo){ this.info = _arg1; _arg1.addEventListener(ModuleEvent.SETUP, moduleEventHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.PROGRESS, moduleEventHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.READY, moduleEventHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.ERROR, moduleEventHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.UNLOAD, moduleEventHandler, false, 0, true); } public function get loaded():Boolean{ return (info.loaded); } public function release():void{ if (referenced){ info.removeReference(); referenced = false; }; } public function get error():Boolean{ return (info.error); } public function get factory():IFlexModuleFactory{ return (info.factory); } public function publish(_arg1:IFlexModuleFactory):void{ info.publish(_arg1); } public function set data(_arg1:Object):void{ _data = _arg1; } public function get ready():Boolean{ return (info.ready); } public function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void{ var _local4:ModuleEvent; info.resurrect(); if (!referenced){ info.addReference(); referenced = true; }; if (info.error){ dispatchEvent(new ModuleEvent(ModuleEvent.ERROR)); } else { if (info.loaded){ if (info.setup){ dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); if (info.ready){ _local4 = new ModuleEvent(ModuleEvent.PROGRESS); _local4.bytesLoaded = info.size; _local4.bytesTotal = info.size; dispatchEvent(_local4); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); }; }; } else { info.load(_arg1, _arg2, _arg3); }; }; } private function moduleEventHandler(_arg1:ModuleEvent):void{ dispatchEvent(_arg1); } public function get url():String{ return (info.url); } public function get data():Object{ return (_data); } public function get setup():Boolean{ return (info.setup); } public function unload():void{ info.unload(); info.removeEventListener(ModuleEvent.SETUP, moduleEventHandler); info.removeEventListener(ModuleEvent.PROGRESS, moduleEventHandler); info.removeEventListener(ModuleEvent.READY, moduleEventHandler); info.removeEventListener(ModuleEvent.ERROR, moduleEventHandler); info.removeEventListener(ModuleEvent.UNLOAD, moduleEventHandler); } } class ModuleManagerImpl extends EventDispatcher { private var moduleList:Object; private function ModuleManagerImpl(){ moduleList = {}; super(); } public function getModule(_arg1:String):IModuleInfo{ var _local2:ModuleInfo = (moduleList[_arg1] as ModuleInfo); if (!_local2){ _local2 = new ModuleInfo(_arg1); moduleList[_arg1] = _local2; }; return (new ModuleInfoProxy(_local2)); } public function getAssociatedFactory(_arg1:Object):IFlexModuleFactory{ var m:Object; var info:ModuleInfo; var domain:ApplicationDomain; var cls:Class; var object = _arg1; var className:String = getQualifiedClassName(object); for each (m in moduleList) { info = (m as ModuleInfo); if (!info.ready){ } else { domain = info.applicationDomain; try { cls = Class(domain.getDefinition(className)); if ((object is cls)){ return (info.factory); }; } catch(error:Error) { }; }; }; return (null); } } class ModuleInfo extends EventDispatcher { private var _error:Boolean;// = false private var loader:Loader; private var factoryInfo:FactoryInfo; private var limbo:Dictionary; private var _loaded:Boolean;// = false private var _ready:Boolean;// = false private var numReferences:int;// = 0 private var _url:String; private var _setup:Boolean;// = false private function ModuleInfo(_arg1:String){ _url = _arg1; } private function clearLoader():void{ if (loader){ if (loader.contentLoaderInfo){ loader.contentLoaderInfo.removeEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); }; try { if (loader.content){ loader.content.removeEventListener("ready", readyHandler); loader.content.removeEventListener("error", moduleErrorHandler); }; } catch(error:Error) { }; if (_loaded){ try { loader.close(); } catch(error:Error) { }; }; try { loader.unload(); } catch(error:Error) { }; loader = null; }; } public function get size():int{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.bytesTotal : 0); } public function get loaded():Boolean{ return ((limbo) ? false : _loaded); } public function release():void{ if (((_ready) && (!(limbo)))){ limbo = new Dictionary(true); limbo[factoryInfo] = 1; factoryInfo = null; } else { unload(); }; } public function get error():Boolean{ return ((limbo) ? false : _error); } public function get factory():IFlexModuleFactory{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.factory : null); } public function completeHandler(_arg1:Event):void{ var _local2:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = loader.contentLoaderInfo.bytesLoaded; _local2.bytesTotal = loader.contentLoaderInfo.bytesTotal; dispatchEvent(_local2); } public function publish(_arg1:IFlexModuleFactory):void{ if (factoryInfo){ return; }; if (_url.indexOf("published://") != 0){ return; }; factoryInfo = new FactoryInfo(); factoryInfo.factory = _arg1; _loaded = true; _setup = true; _ready = true; _error = false; dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); dispatchEvent(new ModuleEvent(ModuleEvent.PROGRESS)); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); } public function initHandler(_arg1:Event):void{ var moduleEvent:ModuleEvent; var event = _arg1; factoryInfo = new FactoryInfo(); try { factoryInfo.factory = (loader.content as IFlexModuleFactory); } catch(error:Error) { }; if (!factoryInfo.factory){ moduleEvent = new ModuleEvent(ModuleEvent.ERROR, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = 0; moduleEvent.bytesTotal = 0; moduleEvent.errorText = "SWF is not a loadable module"; dispatchEvent(moduleEvent); return; }; loader.content.addEventListener("ready", readyHandler); loader.content.addEventListener("error", moduleErrorHandler); try { factoryInfo.applicationDomain = loader.contentLoaderInfo.applicationDomain; } catch(error:Error) { }; _setup = true; dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); } public function resurrect():void{ var _local1:Object; if (((!(factoryInfo)) && (limbo))){ for (_local1 in limbo) { factoryInfo = (_local1 as FactoryInfo); break; }; limbo = null; }; if (!factoryInfo){ if (_loaded){ dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD)); }; loader = null; _loaded = false; _setup = false; _ready = false; _error = false; }; } public function errorHandler(_arg1:ErrorEvent):void{ _error = true; var _local2:ModuleEvent = new ModuleEvent(ModuleEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = 0; _local2.bytesTotal = 0; _local2.errorText = _arg1.text; dispatchEvent(_local2); } public function get ready():Boolean{ return ((limbo) ? false : _ready); } private function loadBytes(_arg1:ApplicationDomain, _arg2:ByteArray):void{ var _local3:LoaderContext = new LoaderContext(); _local3.applicationDomain = (_arg1) ? _arg1 : new ApplicationDomain(ApplicationDomain.currentDomain); if (("allowLoadBytesCodeExecution" in _local3)){ _local3["allowLoadBytesCodeExecution"] = true; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.loadBytes(_arg2, _local3); } public function removeReference():void{ numReferences--; if (numReferences == 0){ release(); }; } public function addReference():void{ numReferences++; } public function progressHandler(_arg1:ProgressEvent):void{ var _local2:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; dispatchEvent(_local2); } public function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void{ if (_loaded){ return; }; _loaded = true; limbo = null; if (_arg3){ loadBytes(_arg1, _arg3); return; }; if (_url.indexOf("published://") == 0){ return; }; var _local4:URLRequest = new URLRequest(_url); var _local5:LoaderContext = new LoaderContext(); _local5.applicationDomain = (_arg1) ? _arg1 : new ApplicationDomain(ApplicationDomain.currentDomain); _local5.securityDomain = _arg2; if ((((_arg2 == null)) && ((Security.sandboxType == Security.REMOTE)))){ _local5.securityDomain = SecurityDomain.currentDomain; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.load(_local4, _local5); } public function get url():String{ return (_url); } public function get applicationDomain():ApplicationDomain{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.applicationDomain : null); } public function moduleErrorHandler(_arg1:Event):void{ var _local2:ModuleEvent; _ready = true; factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal; clearLoader(); if ((_arg1 is ModuleEvent)){ _local2 = ModuleEvent(_arg1); } else { _local2 = new ModuleEvent(ModuleEvent.ERROR); }; dispatchEvent(_local2); } public function readyHandler(_arg1:Event):void{ _ready = true; factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal; clearLoader(); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); } public function get setup():Boolean{ return ((limbo) ? false : _setup); } public function unload():void{ clearLoader(); if (_loaded){ dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD)); }; limbo = null; factoryInfo = null; _loaded = false; _setup = false; _ready = false; _error = false; } } class FactoryInfo { public var bytesTotal:int;// = 0 public var factory:IFlexModuleFactory; public var applicationDomain:ApplicationDomain; private function FactoryInfo(){ } }
Section 185
//ModuleManagerGlobals (mx.modules.ModuleManagerGlobals) package mx.modules { public class ModuleManagerGlobals { public static var managerSingleton:Object = null; } }//package mx.modules
Section 186
//IResourceBundle (mx.resources.IResourceBundle) package mx.resources { public interface IResourceBundle { function get content():Object; function get locale():String; function get bundleName():String; } }//package mx.resources
Section 187
//IResourceManager (mx.resources.IResourceManager) package mx.resources { import flash.events.*; import flash.system.*; public interface IResourceManager extends IEventDispatcher { function loadResourceModule(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher; function getBoolean(_arg1:String, _arg2:String, _arg3:String=null):Boolean; function getClass(_arg1:String, _arg2:String, _arg3:String=null):Class; function getLocales():Array; function removeResourceBundlesForLocale(_arg1:String):void; function getResourceBundle(_arg1:String, _arg2:String):IResourceBundle; function get localeChain():Array; function getInt(_arg1:String, _arg2:String, _arg3:String=null):int; function update():void; function set localeChain(_arg1:Array):void; function getUint(_arg1:String, _arg2:String, _arg3:String=null):uint; function addResourceBundle(_arg1:IResourceBundle):void; function getStringArray(_arg1:String, _arg2:String, _arg3:String=null):Array; function getBundleNamesForLocale(_arg1:String):Array; function removeResourceBundle(_arg1:String, _arg2:String):void; function getObject(_arg1:String, _arg2:String, _arg3:String=null); function getString(_arg1:String, _arg2:String, _arg3:Array=null, _arg4:String=null):String; function installCompiledResourceBundles(_arg1:ApplicationDomain, _arg2:Array, _arg3:Array):void; function unloadResourceModule(_arg1:String, _arg2:Boolean=true):void; function getPreferredLocaleChain():Array; function findResourceBundleWithResource(_arg1:String, _arg2:String):IResourceBundle; function initializeLocaleChain(_arg1:Array):void; function getNumber(_arg1:String, _arg2:String, _arg3:String=null):Number; } }//package mx.resources
Section 188
//IResourceModule (mx.resources.IResourceModule) package mx.resources { public interface IResourceModule { function get resourceBundles():Array; } }//package mx.resources
Section 189
//LocaleSorter (mx.resources.LocaleSorter) package mx.resources { import mx.core.*; public class LocaleSorter { mx_internal static const VERSION:String = "3.3.0.4852"; private static function normalizeLocale(_arg1:String):String{ return (_arg1.toLowerCase().replace(/-/g, "_")); } public static function sortLocalesByPreference(_arg1:Array, _arg2:Array, _arg3:String=null, _arg4:Boolean=false):Array{ var result:Array; var hasLocale:Object; var i:int; var j:int; var k:int; var l:int; var locale:String; var plocale:LocaleID; var appLocales = _arg1; var systemPreferences = _arg2; var ultimateFallbackLocale = _arg3; var addAll = _arg4; var promote:Function = function (_arg1:String):void{ if (typeof(hasLocale[_arg1]) != "undefined"){ result.push(appLocales[hasLocale[_arg1]]); delete hasLocale[_arg1]; }; }; result = []; hasLocale = {}; var locales:Array = trimAndNormalize(appLocales); var preferenceLocales:Array = trimAndNormalize(systemPreferences); addUltimateFallbackLocale(preferenceLocales, ultimateFallbackLocale); j = 0; while (j < locales.length) { hasLocale[locales[j]] = j; j = (j + 1); }; i = 0; l = preferenceLocales.length; while (i < l) { plocale = LocaleID.fromString(preferenceLocales[i]); promote(preferenceLocales[i]); promote(plocale.toString()); while (plocale.transformToParent()) { promote(plocale.toString()); }; plocale = LocaleID.fromString(preferenceLocales[i]); j = 0; while (j < l) { locale = preferenceLocales[j]; if (plocale.isSiblingOf(LocaleID.fromString(locale))){ promote(locale); }; j = (j + 1); }; j = 0; k = locales.length; while (j < k) { locale = locales[j]; if (plocale.isSiblingOf(LocaleID.fromString(locale))){ promote(locale); }; j = (j + 1); }; i = (i + 1); }; if (addAll){ j = 0; k = locales.length; while (j < k) { promote(locales[j]); j = (j + 1); }; }; return (result); } private static function addUltimateFallbackLocale(_arg1:Array, _arg2:String):void{ var _local3:String; if (((!((_arg2 == null))) && (!((_arg2 == ""))))){ _local3 = normalizeLocale(_arg2); if (_arg1.indexOf(_local3) == -1){ _arg1.push(_local3); }; }; } private static function trimAndNormalize(_arg1:Array):Array{ var _local2:Array = []; var _local3:int; while (_local3 < _arg1.length) { _local2.push(normalizeLocale(_arg1[_local3])); _local3++; }; return (_local2); } } }//package mx.resources class LocaleID { private var privateLangs:Boolean;// = false private var script:String;// = "" private var variants:Array; private var privates:Array; private var extensions:Object; private var lang:String;// = "" private var region:String;// = "" private var extended_langs:Array; public static const STATE_PRIMARY_LANGUAGE:int = 0; public static const STATE_REGION:int = 3; public static const STATE_EXTENDED_LANGUAGES:int = 1; public static const STATE_EXTENSIONS:int = 5; public static const STATE_SCRIPT:int = 2; public static const STATE_VARIANTS:int = 4; public static const STATE_PRIVATES:int = 6; private function LocaleID(){ extended_langs = []; variants = []; extensions = {}; privates = []; super(); } public function equals(_arg1:LocaleID):Boolean{ return ((toString() == _arg1.toString())); } public function canonicalize():void{ var _local1:String; for (_local1 in extensions) { if (extensions.hasOwnProperty(_local1)){ if (extensions[_local1].length == 0){ delete extensions[_local1]; } else { extensions[_local1] = extensions[_local1].sort(); }; }; }; extended_langs = extended_langs.sort(); variants = variants.sort(); privates = privates.sort(); if (script == ""){ script = LocaleRegistry.getScriptByLang(lang); }; if ((((script == "")) && (!((region == ""))))){ script = LocaleRegistry.getScriptByLangAndRegion(lang, region); }; if ((((region == "")) && (!((script == ""))))){ region = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script); }; } public function toString():String{ var _local2:String; var _local1:Array = [lang]; Array.prototype.push.apply(_local1, extended_langs); if (script != ""){ _local1.push(script); }; if (region != ""){ _local1.push(region); }; Array.prototype.push.apply(_local1, variants); for (_local2 in extensions) { if (extensions.hasOwnProperty(_local2)){ _local1.push(_local2); Array.prototype.push.apply(_local1, extensions[_local2]); }; }; if (privates.length > 0){ _local1.push("x"); Array.prototype.push.apply(_local1, privates); }; return (_local1.join("_")); } public function isSiblingOf(_arg1:LocaleID):Boolean{ return ((((lang == _arg1.lang)) && ((script == _arg1.script)))); } public function transformToParent():Boolean{ var _local2:String; var _local3:Array; var _local4:String; if (privates.length > 0){ privates.splice((privates.length - 1), 1); return (true); }; var _local1:String; for (_local2 in extensions) { if (extensions.hasOwnProperty(_local2)){ _local1 = _local2; }; }; if (_local1){ _local3 = extensions[_local1]; if (_local3.length == 1){ delete extensions[_local1]; return (true); }; _local3.splice((_local3.length - 1), 1); return (true); }; if (variants.length > 0){ variants.splice((variants.length - 1), 1); return (true); }; if (script != ""){ if (LocaleRegistry.getScriptByLang(lang) != ""){ script = ""; return (true); }; if (region == ""){ _local4 = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script); if (_local4 != ""){ region = _local4; script = ""; return (true); }; }; }; if (region != ""){ if (!(((script == "")) && ((LocaleRegistry.getScriptByLang(lang) == "")))){ region = ""; return (true); }; }; if (extended_langs.length > 0){ extended_langs.splice((extended_langs.length - 1), 1); return (true); }; return (false); } public static function fromString(_arg1:String):LocaleID{ var _local5:Array; var _local8:String; var _local9:int; var _local10:String; var _local2:LocaleID = new (LocaleID); var _local3:int = STATE_PRIMARY_LANGUAGE; var _local4:Array = _arg1.replace(/-/g, "_").split("_"); var _local6:int; var _local7:int = _local4.length; while (_local6 < _local7) { _local8 = _local4[_local6].toLowerCase(); if (_local3 == STATE_PRIMARY_LANGUAGE){ if (_local8 == "x"){ _local2.privateLangs = true; } else { if (_local8 == "i"){ _local2.lang = (_local2.lang + "i-"); } else { _local2.lang = (_local2.lang + _local8); _local3 = STATE_EXTENDED_LANGUAGES; }; }; } else { _local9 = _local8.length; if (_local9 == 0){ } else { _local10 = _local8.charAt(0).toLowerCase(); if ((((_local3 <= STATE_EXTENDED_LANGUAGES)) && ((_local9 == 3)))){ _local2.extended_langs.push(_local8); if (_local2.extended_langs.length == 3){ _local3 = STATE_SCRIPT; }; } else { if ((((_local3 <= STATE_SCRIPT)) && ((_local9 == 4)))){ _local2.script = _local8; _local3 = STATE_REGION; } else { if ((((_local3 <= STATE_REGION)) && ((((_local9 == 2)) || ((_local9 == 3)))))){ _local2.region = _local8; _local3 = STATE_VARIANTS; } else { if ((((_local3 <= STATE_VARIANTS)) && ((((((((_local10 >= "a")) && ((_local10 <= "z")))) && ((_local9 >= 5)))) || ((((((_local10 >= "0")) && ((_local10 <= "9")))) && ((_local9 >= 4)))))))){ _local2.variants.push(_local8); _local3 = STATE_VARIANTS; } else { if ((((_local3 < STATE_PRIVATES)) && ((_local9 == 1)))){ if (_local8 == "x"){ _local3 = STATE_PRIVATES; _local5 = _local2.privates; } else { _local3 = STATE_EXTENSIONS; _local5 = ((_local2.extensions[_local8]) || ([])); _local2.extensions[_local8] = _local5; }; } else { if (_local3 >= STATE_EXTENSIONS){ _local5.push(_local8); }; }; }; }; }; }; }; }; _local6++; }; _local2.canonicalize(); return (_local2); } } class LocaleRegistry { private static const SCRIPT_ID_BY_LANG:Object = {ab:5, af:1, am:2, ar:3, as:4, ay:1, be:5, bg:5, bn:4, bs:1, ca:1, ch:1, cs:1, cy:1, da:1, de:1, dv:6, dz:7, el:8, en:1, eo:1, es:1, et:1, eu:1, fa:3, fi:1, fj:1, fo:1, fr:1, frr:1, fy:1, ga:1, gl:1, gn:1, gu:9, gv:1, he:10, hi:11, hr:1, ht:1, hu:1, hy:12, id:1, in:1, is:1, it:1, iw:10, ja:13, ka:14, kk:5, kl:1, km:15, kn:16, ko:17, la:1, lb:1, ln:1, lo:18, lt:1, lv:1, mg:1, mh:1, mk:5, ml:19, mo:1, mr:11, ms:1, mt:1, my:20, na:1, nb:1, nd:1, ne:11, nl:1, nn:1, no:1, nr:1, ny:1, om:1, or:21, pa:22, pl:1, ps:3, pt:1, qu:1, rn:1, ro:1, ru:5, rw:1, sg:1, si:23, sk:1, sl:1, sm:1, so:1, sq:1, ss:1, st:1, sv:1, sw:1, ta:24, te:25, th:26, ti:2, tl:1, tn:1, to:1, tr:1, ts:1, uk:5, ur:3, ve:1, vi:1, wo:1, xh:1, yi:10, zu:1, cpe:1, dsb:1, frs:1, gsw:1, hsb:1, kok:11, mai:11, men:1, nds:1, niu:1, nqo:27, nso:1, son:1, tem:1, tkl:1, tmh:1, tpi:1, tvl:1, zbl:28}; private static const SCRIPTS:Array = ["", "latn", "ethi", "arab", "beng", "cyrl", "thaa", "tibt", "grek", "gujr", "hebr", "deva", "armn", "jpan", "geor", "khmr", "knda", "kore", "laoo", "mlym", "mymr", "orya", "guru", "sinh", "taml", "telu", "thai", "nkoo", "blis", "hans", "hant", "mong", "syrc"]; private static const DEFAULT_REGION_BY_LANG_AND_SCRIPT:Object = {bg:{5:"bg"}, ca:{1:"es"}, zh:{30:"tw", 29:"cn"}, cs:{1:"cz"}, da:{1:"dk"}, de:{1:"de"}, el:{8:"gr"}, en:{1:"us"}, es:{1:"es"}, fi:{1:"fi"}, fr:{1:"fr"}, he:{10:"il"}, hu:{1:"hu"}, is:{1:"is"}, it:{1:"it"}, ja:{13:"jp"}, ko:{17:"kr"}, nl:{1:"nl"}, nb:{1:"no"}, pl:{1:"pl"}, pt:{1:"br"}, ro:{1:"ro"}, ru:{5:"ru"}, hr:{1:"hr"}, sk:{1:"sk"}, sq:{1:"al"}, sv:{1:"se"}, th:{26:"th"}, tr:{1:"tr"}, ur:{3:"pk"}, id:{1:"id"}, uk:{5:"ua"}, be:{5:"by"}, sl:{1:"si"}, et:{1:"ee"}, lv:{1:"lv"}, lt:{1:"lt"}, fa:{3:"ir"}, vi:{1:"vn"}, hy:{12:"am"}, az:{1:"az", 5:"az"}, eu:{1:"es"}, mk:{5:"mk"}, af:{1:"za"}, ka:{14:"ge"}, fo:{1:"fo"}, hi:{11:"in"}, ms:{1:"my"}, kk:{5:"kz"}, ky:{5:"kg"}, sw:{1:"ke"}, uz:{1:"uz", 5:"uz"}, tt:{5:"ru"}, pa:{22:"in"}, gu:{9:"in"}, ta:{24:"in"}, te:{25:"in"}, kn:{16:"in"}, mr:{11:"in"}, sa:{11:"in"}, mn:{5:"mn"}, gl:{1:"es"}, kok:{11:"in"}, syr:{32:"sy"}, dv:{6:"mv"}, nn:{1:"no"}, sr:{1:"cs", 5:"cs"}, cy:{1:"gb"}, mi:{1:"nz"}, mt:{1:"mt"}, quz:{1:"bo"}, tn:{1:"za"}, xh:{1:"za"}, zu:{1:"za"}, nso:{1:"za"}, se:{1:"no"}, smj:{1:"no"}, sma:{1:"no"}, sms:{1:"fi"}, smn:{1:"fi"}, bs:{1:"ba"}}; private static const SCRIPT_BY_ID:Object = {latn:1, ethi:2, arab:3, beng:4, cyrl:5, thaa:6, tibt:7, grek:8, gujr:9, hebr:10, deva:11, armn:12, jpan:13, geor:14, khmr:15, knda:16, kore:17, laoo:18, mlym:19, mymr:20, orya:21, guru:22, sinh:23, taml:24, telu:25, thai:26, nkoo:27, blis:28, hans:29, hant:30, mong:31, syrc:32}; private static const SCRIPT_ID_BY_LANG_AND_REGION:Object = {zh:{cn:29, sg:29, tw:30, hk:30, mo:30}, mn:{cn:31, sg:5}, pa:{pk:3, in:22}, ha:{gh:1, ne:1}}; private function LocaleRegistry(){ } public static function getScriptByLangAndRegion(_arg1:String, _arg2:String):String{ var _local3:Object = SCRIPT_ID_BY_LANG_AND_REGION[_arg1]; if (_local3 == null){ return (""); }; var _local4:Object = _local3[_arg2]; if (_local4 == null){ return (""); }; return (SCRIPTS[int(_local4)].toLowerCase()); } public static function getScriptByLang(_arg1:String):String{ var _local2:Object = SCRIPT_ID_BY_LANG[_arg1]; if (_local2 == null){ return (""); }; return (SCRIPTS[int(_local2)].toLowerCase()); } public static function getDefaultRegionForLangAndScript(_arg1:String, _arg2:String):String{ var _local3:Object = DEFAULT_REGION_BY_LANG_AND_SCRIPT[_arg1]; var _local4:Object = SCRIPT_BY_ID[_arg2]; if ((((_local3 == null)) || ((_local4 == null)))){ return (""); }; return (((_local3[int(_local4)]) || (""))); } }
Section 190
//ResourceBundle (mx.resources.ResourceBundle) package mx.resources { import mx.core.*; import flash.system.*; import mx.utils.*; public class ResourceBundle implements IResourceBundle { mx_internal var _locale:String; private var _content:Object; mx_internal var _bundleName:String; mx_internal static const VERSION:String = "3.3.0.4852"; mx_internal static var backupApplicationDomain:ApplicationDomain; mx_internal static var locale:String; public function ResourceBundle(_arg1:String=null, _arg2:String=null){ _content = {}; super(); mx_internal::_locale = _arg1; mx_internal::_bundleName = _arg2; _content = getContent(); } protected function getContent():Object{ return ({}); } public function getString(_arg1:String):String{ return (String(_getObject(_arg1))); } public function get content():Object{ return (_content); } public function getBoolean(_arg1:String, _arg2:Boolean=true):Boolean{ var _local3:String = _getObject(_arg1).toLowerCase(); if (_local3 == "false"){ return (false); }; if (_local3 == "true"){ return (true); }; return (_arg2); } public function getStringArray(_arg1:String):Array{ var _local2:Array = _getObject(_arg1).split(","); var _local3:int = _local2.length; var _local4:int; while (_local4 < _local3) { _local2[_local4] = StringUtil.trim(_local2[_local4]); _local4++; }; return (_local2); } public function getObject(_arg1:String):Object{ return (_getObject(_arg1)); } private function _getObject(_arg1:String):Object{ var _local2:Object = content[_arg1]; if (!_local2){ throw (new Error(((("Key " + _arg1) + " was not found in resource bundle ") + bundleName))); }; return (_local2); } public function get locale():String{ return (mx_internal::_locale); } public function get bundleName():String{ return (mx_internal::_bundleName); } public function getNumber(_arg1:String):Number{ return (Number(_getObject(_arg1))); } private static function getClassByName(_arg1:String, _arg2:ApplicationDomain):Class{ var _local3:Class; if (_arg2.hasDefinition(_arg1)){ _local3 = (_arg2.getDefinition(_arg1) as Class); }; return (_local3); } public static function getResourceBundle(_arg1:String, _arg2:ApplicationDomain=null):ResourceBundle{ var _local3:String; var _local4:Class; var _local5:Object; var _local6:ResourceBundle; if (!_arg2){ _arg2 = ApplicationDomain.currentDomain; }; _local3 = (((mx_internal::locale + "$") + _arg1) + "_properties"); _local4 = getClassByName(_local3, _arg2); if (!_local4){ _local3 = (_arg1 + "_properties"); _local4 = getClassByName(_local3, _arg2); }; if (!_local4){ _local3 = _arg1; _local4 = getClassByName(_local3, _arg2); }; if (((!(_local4)) && (mx_internal::backupApplicationDomain))){ _local3 = (_arg1 + "_properties"); _local4 = getClassByName(_local3, mx_internal::backupApplicationDomain); if (!_local4){ _local3 = _arg1; _local4 = getClassByName(_local3, mx_internal::backupApplicationDomain); }; }; if (_local4){ _local5 = new (_local4); if ((_local5 is ResourceBundle)){ _local6 = ResourceBundle(_local5); return (_local6); }; }; throw (new Error(("Could not find resource bundle " + _arg1))); } } }//package mx.resources
Section 191
//ResourceManager (mx.resources.ResourceManager) package mx.resources { import mx.core.*; public class ResourceManager { mx_internal static const VERSION:String = "3.3.0.4852"; private static var implClassDependency:ResourceManagerImpl; private static var instance:IResourceManager; public static function getInstance():IResourceManager{ if (!instance){ try { instance = IResourceManager(Singleton.getInstance("mx.resources::IResourceManager")); } catch(e:Error) { instance = new ResourceManagerImpl(); }; }; return (instance); } } }//package mx.resources
Section 192
//ResourceManagerImpl (mx.resources.ResourceManagerImpl) package mx.resources { import flash.events.*; import mx.core.*; import flash.system.*; import mx.modules.*; import mx.events.*; import flash.utils.*; import mx.utils.*; public class ResourceManagerImpl extends EventDispatcher implements IResourceManager { private var resourceModules:Object; private var initializedForNonFrameworkApp:Boolean;// = false private var localeMap:Object; private var _localeChain:Array; mx_internal static const VERSION:String = "3.3.0.4852"; private static var instance:IResourceManager; public function ResourceManagerImpl(){ localeMap = {}; resourceModules = {}; super(); } public function get localeChain():Array{ return (_localeChain); } public function set localeChain(_arg1:Array):void{ _localeChain = _arg1; update(); } public function getStringArray(_arg1:String, _arg2:String, _arg3:String=null):Array{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (null); }; var _local5:* = _local4.content[_arg2]; var _local6:Array = String(_local5).split(","); var _local7:int = _local6.length; var _local8:int; while (_local8 < _local7) { _local6[_local8] = StringUtil.trim(_local6[_local8]); _local8++; }; return (_local6); } mx_internal function installCompiledResourceBundle(_arg1:ApplicationDomain, _arg2:String, _arg3:String):void{ var _local4:String; var _local5:String = _arg3; var _local6:int = _arg3.indexOf(":"); if (_local6 != -1){ _local4 = _arg3.substring(0, _local6); _local5 = _arg3.substring((_local6 + 1)); }; if (getResourceBundle(_arg2, _arg3)){ return; }; var _local7 = (((_arg2 + "$") + _local5) + "_properties"); if (_local4 != null){ _local7 = ((_local4 + ".") + _local7); }; var _local8:Class; if (_arg1.hasDefinition(_local7)){ _local8 = Class(_arg1.getDefinition(_local7)); }; if (!_local8){ _local7 = _arg3; if (_arg1.hasDefinition(_local7)){ _local8 = Class(_arg1.getDefinition(_local7)); }; }; if (!_local8){ _local7 = (_arg3 + "_properties"); if (_arg1.hasDefinition(_local7)){ _local8 = Class(_arg1.getDefinition(_local7)); }; }; if (!_local8){ throw (new Error((((("Could not find compiled resource bundle '" + _arg3) + "' for locale '") + _arg2) + "'."))); }; var _local9:ResourceBundle = ResourceBundle(new (_local8)); _local9.mx_internal::_locale = _arg2; _local9.mx_internal::_bundleName = _arg3; addResourceBundle(_local9); } public function getString(_arg1:String, _arg2:String, _arg3:Array=null, _arg4:String=null):String{ var _local5:IResourceBundle = findBundle(_arg1, _arg2, _arg4); if (!_local5){ return (null); }; var _local6:String = String(_local5.content[_arg2]); if (_arg3){ _local6 = StringUtil.substitute(_local6, _arg3); }; return (_local6); } public function loadResourceModule(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher{ var moduleInfo:IModuleInfo; var resourceEventDispatcher:ResourceEventDispatcher; var timer:Timer; var timerHandler:Function; var url = _arg1; var updateFlag = _arg2; var applicationDomain = _arg3; var securityDomain = _arg4; moduleInfo = ModuleManager.getModule(url); resourceEventDispatcher = new ResourceEventDispatcher(moduleInfo); var readyHandler:Function = function (_arg1:ModuleEvent):void{ var _local2:* = _arg1.module.factory.create(); resourceModules[_arg1.module.url].resourceModule = _local2; if (updateFlag){ update(); }; }; moduleInfo.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true); var errorHandler:Function = function (_arg1:ModuleEvent):void{ var _local3:ResourceEvent; var _local2:String = ("Unable to load resource module from " + url); if (resourceEventDispatcher.willTrigger(ResourceEvent.ERROR)){ _local3 = new ResourceEvent(ResourceEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local3.bytesLoaded = 0; _local3.bytesTotal = 0; _local3.errorText = _local2; resourceEventDispatcher.dispatchEvent(_local3); } else { throw (new Error(_local2)); }; }; moduleInfo.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true); resourceModules[url] = new ResourceModuleInfo(moduleInfo, readyHandler, errorHandler); timer = new Timer(0); timerHandler = function (_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.stop(); moduleInfo.load(applicationDomain, securityDomain); }; timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true); timer.start(); return (resourceEventDispatcher); } public function getLocales():Array{ var _local2:String; var _local1:Array = []; for (_local2 in localeMap) { _local1.push(_local2); }; return (_local1); } public function removeResourceBundlesForLocale(_arg1:String):void{ delete localeMap[_arg1]; } public function getResourceBundle(_arg1:String, _arg2:String):IResourceBundle{ var _local3:Object = localeMap[_arg1]; if (!_local3){ return (null); }; return (_local3[_arg2]); } private function dumpResourceModule(_arg1):void{ var _local2:ResourceBundle; var _local3:String; for each (_local2 in _arg1.resourceBundles) { trace(_local2.locale, _local2.bundleName); for (_local3 in _local2.content) { }; }; } public function addResourceBundle(_arg1:IResourceBundle):void{ var _local2:String = _arg1.locale; var _local3:String = _arg1.bundleName; if (!localeMap[_local2]){ localeMap[_local2] = {}; }; localeMap[_local2][_local3] = _arg1; } public function getObject(_arg1:String, _arg2:String, _arg3:String=null){ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (undefined); }; return (_local4.content[_arg2]); } public function getInt(_arg1:String, _arg2:String, _arg3:String=null):int{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (0); }; var _local5:* = _local4.content[_arg2]; return (int(_local5)); } private function findBundle(_arg1:String, _arg2:String, _arg3:String):IResourceBundle{ supportNonFrameworkApps(); return (((_arg3)!=null) ? getResourceBundle(_arg3, _arg1) : findResourceBundleWithResource(_arg1, _arg2)); } private function supportNonFrameworkApps():void{ if (initializedForNonFrameworkApp){ return; }; initializedForNonFrameworkApp = true; if (getLocales().length > 0){ return; }; var _local1:ApplicationDomain = ApplicationDomain.currentDomain; if (!_local1.hasDefinition("_CompiledResourceBundleInfo")){ return; }; var _local2:Class = Class(_local1.getDefinition("_CompiledResourceBundleInfo")); var _local3:Array = _local2.compiledLocales; var _local4:Array = _local2.compiledResourceBundleNames; installCompiledResourceBundles(_local1, _local3, _local4); localeChain = _local3; } public function getBundleNamesForLocale(_arg1:String):Array{ var _local3:String; var _local2:Array = []; for (_local3 in localeMap[_arg1]) { _local2.push(_local3); }; return (_local2); } public function getPreferredLocaleChain():Array{ return (LocaleSorter.sortLocalesByPreference(getLocales(), getSystemPreferredLocales(), null, true)); } public function getNumber(_arg1:String, _arg2:String, _arg3:String=null):Number{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (NaN); }; var _local5:* = _local4.content[_arg2]; return (Number(_local5)); } public function update():void{ dispatchEvent(new Event(Event.CHANGE)); } public function getClass(_arg1:String, _arg2:String, _arg3:String=null):Class{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (null); }; var _local5:* = _local4.content[_arg2]; return ((_local5 as Class)); } public function removeResourceBundle(_arg1:String, _arg2:String):void{ delete localeMap[_arg1][_arg2]; if (getBundleNamesForLocale(_arg1).length == 0){ delete localeMap[_arg1]; }; } public function initializeLocaleChain(_arg1:Array):void{ localeChain = LocaleSorter.sortLocalesByPreference(_arg1, getSystemPreferredLocales(), null, true); } public function findResourceBundleWithResource(_arg1:String, _arg2:String):IResourceBundle{ var _local5:String; var _local6:Object; var _local7:ResourceBundle; if (!_localeChain){ return (null); }; var _local3:int = _localeChain.length; var _local4:int; while (_local4 < _local3) { _local5 = localeChain[_local4]; _local6 = localeMap[_local5]; if (!_local6){ } else { _local7 = _local6[_arg1]; if (!_local7){ } else { if ((_arg2 in _local7.content)){ return (_local7); }; }; }; _local4++; }; return (null); } public function getUint(_arg1:String, _arg2:String, _arg3:String=null):uint{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (0); }; var _local5:* = _local4.content[_arg2]; return (uint(_local5)); } private function getSystemPreferredLocales():Array{ var _local1:Array; if (Capabilities["languages"]){ _local1 = Capabilities["languages"]; } else { _local1 = [Capabilities.language]; }; return (_local1); } public function installCompiledResourceBundles(_arg1:ApplicationDomain, _arg2:Array, _arg3:Array):void{ var _local7:String; var _local8:int; var _local9:String; var _local4:int = (_arg2) ? _arg2.length : 0; var _local5:int = (_arg3) ? _arg3.length : 0; var _local6:int; while (_local6 < _local4) { _local7 = _arg2[_local6]; _local8 = 0; while (_local8 < _local5) { _local9 = _arg3[_local8]; mx_internal::installCompiledResourceBundle(_arg1, _local7, _local9); _local8++; }; _local6++; }; } public function getBoolean(_arg1:String, _arg2:String, _arg3:String=null):Boolean{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (false); }; var _local5:* = _local4.content[_arg2]; return ((String(_local5).toLowerCase() == "true")); } public function unloadResourceModule(_arg1:String, _arg2:Boolean=true):void{ throw (new Error("unloadResourceModule() is not yet implemented.")); } public static function getInstance():IResourceManager{ if (!instance){ instance = new (ResourceManagerImpl); }; return (instance); } } }//package mx.resources import flash.events.*; import mx.modules.*; import mx.events.*; class ResourceModuleInfo { public var resourceModule:IResourceModule; public var errorHandler:Function; public var readyHandler:Function; public var moduleInfo:IModuleInfo; private function ResourceModuleInfo(_arg1:IModuleInfo, _arg2:Function, _arg3:Function){ this.moduleInfo = _arg1; this.readyHandler = _arg2; this.errorHandler = _arg3; } } class ResourceEventDispatcher extends EventDispatcher { private function ResourceEventDispatcher(_arg1:IModuleInfo){ _arg1.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true); } private function moduleInfo_progressHandler(_arg1:ModuleEvent):void{ var _local2:ResourceEvent = new ResourceEvent(ResourceEvent.PROGRESS, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; dispatchEvent(_local2); } private function moduleInfo_readyHandler(_arg1:ModuleEvent):void{ var _local2:ResourceEvent = new ResourceEvent(ResourceEvent.COMPLETE); dispatchEvent(_local2); } private function moduleInfo_errorHandler(_arg1:ModuleEvent):void{ var _local2:ResourceEvent = new ResourceEvent(ResourceEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; _local2.errorText = _arg1.errorText; dispatchEvent(_local2); } }
Section 193
//HaloBorder (mx.skins.halo.HaloBorder) package mx.skins.halo { import mx.core.*; import flash.display.*; import mx.styles.*; import mx.skins.*; import mx.graphics.*; import mx.utils.*; public class HaloBorder extends RectangularBorder { mx_internal var radiusObj:Object; mx_internal var backgroundHole:Object; mx_internal var radius:Number; mx_internal var bRoundedCorners:Boolean; mx_internal var backgroundColor:Object; private var dropShadow:RectangularDropShadow; protected var _borderMetrics:EdgeMetrics; mx_internal var backgroundAlphaName:String; mx_internal static const VERSION:String = "3.3.0.4852"; private static var BORDER_WIDTHS:Object = {none:0, solid:1, inset:2, outset:2, alert:3, dropdown:2, menuBorder:1, comboNonEdit:2}; public function HaloBorder(){ BORDER_WIDTHS["default"] = 3; } override public function styleChanged(_arg1:String):void{ if ((((((((((_arg1 == null)) || ((_arg1 == "styleName")))) || ((_arg1 == "borderStyle")))) || ((_arg1 == "borderThickness")))) || ((_arg1 == "borderSides")))){ _borderMetrics = null; }; invalidateDisplayList(); } override protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ if (((isNaN(_arg1)) || (isNaN(_arg2)))){ return; }; super.updateDisplayList(_arg1, _arg2); backgroundColor = getBackgroundColor(); bRoundedCorners = false; backgroundAlphaName = "backgroundAlpha"; backgroundHole = null; radius = 0; radiusObj = null; drawBorder(_arg1, _arg2); drawBackground(_arg1, _arg2); } mx_internal function drawBorder(_arg1:Number, _arg2:Number):void{ var _local5:Number; var _local6:uint; var _local7:uint; var _local8:String; var _local9:Number; var _local10:uint; var _local11:Boolean; var _local12:uint; var _local13:Array; var _local14:Array; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:Boolean; var _local20:Object; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Object; var _local27:Number; var _local28:Number; var _local29:IContainer; var _local30:EdgeMetrics; var _local31:Boolean; var _local32:Number; var _local33:Array; var _local34:uint; var _local35:Boolean; var _local36:Number; var _local3:String = getStyle("borderStyle"); var _local4:Array = getStyle("highlightAlphas"); var _local21:Boolean; var _local26:Graphics = graphics; _local26.clear(); if (_local3){ switch (_local3){ case "none": break; case "inset": _local7 = getStyle("borderColor"); _local22 = ColorUtil.adjustBrightness2(_local7, -40); _local23 = ColorUtil.adjustBrightness2(_local7, 25); _local24 = ColorUtil.adjustBrightness2(_local7, 40); _local25 = backgroundColor; if ((((_local25 === null)) || ((_local25 === "")))){ _local25 = _local7; }; draw3dBorder(_local23, _local22, _local24, Number(_local25), Number(_local25), Number(_local25)); break; case "outset": _local7 = getStyle("borderColor"); _local22 = ColorUtil.adjustBrightness2(_local7, -40); _local23 = ColorUtil.adjustBrightness2(_local7, -25); _local24 = ColorUtil.adjustBrightness2(_local7, 40); _local25 = backgroundColor; if ((((_local25 === null)) || ((_local25 === "")))){ _local25 = _local7; }; draw3dBorder(_local23, _local24, _local22, Number(_local25), Number(_local25), Number(_local25)); break; case "alert": case "default": if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ _local27 = getStyle("backgroundAlpha"); _local5 = getStyle("borderAlpha"); backgroundAlphaName = "borderAlpha"; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); _local28 = (bRoundedCorners) ? radius : 0; drawDropShadow(0, 0, _arg1, _arg2, radius, radius, _local28, _local28); if (!bRoundedCorners){ radiusObj = {}; }; _local29 = (parent as IContainer); if (_local29){ _local30 = _local29.viewMetrics; backgroundHole = {x:_local30.left, y:_local30.top, w:Math.max(0, ((_arg1 - _local30.left) - _local30.right)), h:Math.max(0, ((_arg2 - _local30.top) - _local30.bottom)), r:0}; if ((((backgroundHole.w > 0)) && ((backgroundHole.h > 0)))){ if (_local27 != _local5){ drawDropShadow(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h, 0, 0, 0, 0); }; _local26.beginFill(Number(backgroundColor), _local27); _local26.drawRect(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h); _local26.endFill(); }; }; backgroundColor = getStyle("borderColor"); }; break; case "dropdown": _local12 = getStyle("dropdownBorderColor"); drawDropShadow(0, 0, _arg1, _arg2, 4, 0, 0, 4); drawRoundRect(0, 0, _arg1, _arg2, {tl:4, tr:0, br:0, bl:4}, 5068126, 1); drawRoundRect(0, 0, _arg1, _arg2, {tl:4, tr:0, br:0, bl:4}, [0xFFFFFF, 0xFFFFFF], [0.7, 0], verticalGradientMatrix(0, 0, _arg1, _arg2)); drawRoundRect(1, 1, (_arg1 - 1), (_arg2 - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1); drawRoundRect(1, 2, (_arg1 - 1), (_arg2 - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (_arg1 - 1), (_arg2 - 3))); if (!isNaN(_local12)){ drawRoundRect(0, 0, (_arg1 + 1), _arg2, {tl:4, tr:0, br:0, bl:4}, _local12, 0.5); drawRoundRect(1, 1, (_arg1 - 1), (_arg2 - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1); drawRoundRect(1, 2, (_arg1 - 1), (_arg2 - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (_arg1 - 1), (_arg2 - 3))); }; backgroundColor = null; break; case "menuBorder": _local7 = getStyle("borderColor"); drawRoundRect(0, 0, _arg1, _arg2, 0, _local7, 1); drawDropShadow(1, 1, (_arg1 - 2), (_arg2 - 2), 0, 0, 0, 0); break; case "comboNonEdit": break; case "controlBar": if ((((_arg1 == 0)) || ((_arg2 == 0)))){ backgroundColor = null; break; }; _local14 = getStyle("footerColors"); _local31 = !((_local14 == null)); _local32 = getStyle("borderAlpha"); if (_local31){ _local26.lineStyle(0, ((_local14.length > 0)) ? _local14[1] : _local14[0], _local32); _local26.moveTo(0, 0); _local26.lineTo(_arg1, 0); _local26.lineStyle(0, 0, 0); if (((((parent) && (parent.parent))) && ((parent.parent is IStyleClient)))){ radius = IStyleClient(parent.parent).getStyle("cornerRadius"); _local32 = IStyleClient(parent.parent).getStyle("borderAlpha"); }; if (isNaN(radius)){ radius = 0; }; if (IStyleClient(parent.parent).getStyle("roundedBottomCorners").toString().toLowerCase() != "true"){ radius = 0; }; drawRoundRect(0, 1, _arg1, (_arg2 - 1), {tl:0, tr:0, bl:radius, br:radius}, _local14, _local32, verticalGradientMatrix(0, 0, _arg1, _arg2)); if ((((_local14.length > 1)) && (!((_local14[0] == _local14[1]))))){ drawRoundRect(0, 1, _arg1, (_arg2 - 1), {tl:0, tr:0, bl:radius, br:radius}, [0xFFFFFF, 0xFFFFFF], _local4, verticalGradientMatrix(0, 0, _arg1, _arg2)); drawRoundRect(1, 2, (_arg1 - 2), (_arg2 - 3), {tl:0, tr:0, bl:(radius - 1), br:(radius - 1)}, _local14, _local32, verticalGradientMatrix(0, 0, _arg1, _arg2)); }; }; backgroundColor = null; break; case "applicationControlBar": _local13 = getStyle("fillColors"); _local5 = getStyle("backgroundAlpha"); _local4 = getStyle("highlightAlphas"); _local33 = getStyle("fillAlphas"); _local11 = getStyle("docked"); _local34 = uint(backgroundColor); radius = getStyle("cornerRadius"); if (!radius){ radius = 0; }; drawDropShadow(0, 1, _arg1, (_arg2 - 1), radius, radius, radius, radius); if (((!((backgroundColor === null))) && (StyleManager.isValidStyleValue(backgroundColor)))){ drawRoundRect(0, 1, _arg1, (_arg2 - 1), radius, _local34, _local5, verticalGradientMatrix(0, 0, _arg1, _arg2)); }; drawRoundRect(0, 1, _arg1, (_arg2 - 1), radius, _local13, _local33, verticalGradientMatrix(0, 0, _arg1, _arg2)); drawRoundRect(0, 1, _arg1, ((_arg2 / 2) - 1), {tl:radius, tr:radius, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], _local4, verticalGradientMatrix(0, 0, _arg1, ((_arg2 / 2) - 1))); drawRoundRect(0, 1, _arg1, (_arg2 - 1), {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, 0.3, null, GradientType.LINEAR, null, {x:0, y:2, w:_arg1, h:(_arg2 - 2), r:{tl:radius, tr:radius, bl:0, br:0}}); backgroundColor = null; break; default: _local7 = getStyle("borderColor"); _local9 = getStyle("borderThickness"); _local8 = getStyle("borderSides"); _local35 = true; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); _local36 = Math.max((radius - _local9), 0); _local20 = {x:_local9, y:_local9, w:(_arg1 - (_local9 * 2)), h:(_arg2 - (_local9 * 2)), r:_local36}; if (!bRoundedCorners){ radiusObj = {tl:radius, tr:radius, bl:0, br:0}; _local20.r = {tl:_local36, tr:_local36, bl:0, br:0}; }; if (_local8 != "left top right bottom"){ _local20.r = {tl:_local36, tr:_local36, bl:(bRoundedCorners) ? _local36 : 0, br:(bRoundedCorners) ? _local36 : 0}; radiusObj = {tl:radius, tr:radius, bl:(bRoundedCorners) ? radius : 0, br:(bRoundedCorners) ? radius : 0}; _local8 = _local8.toLowerCase(); if (_local8.indexOf("left") == -1){ _local20.x = 0; _local20.w = (_local20.w + _local9); _local20.r.tl = 0; _local20.r.bl = 0; radiusObj.tl = 0; radiusObj.bl = 0; _local35 = false; }; if (_local8.indexOf("top") == -1){ _local20.y = 0; _local20.h = (_local20.h + _local9); _local20.r.tl = 0; _local20.r.tr = 0; radiusObj.tl = 0; radiusObj.tr = 0; _local35 = false; }; if (_local8.indexOf("right") == -1){ _local20.w = (_local20.w + _local9); _local20.r.tr = 0; _local20.r.br = 0; radiusObj.tr = 0; radiusObj.br = 0; _local35 = false; }; if (_local8.indexOf("bottom") == -1){ _local20.h = (_local20.h + _local9); _local20.r.bl = 0; _local20.r.br = 0; radiusObj.bl = 0; radiusObj.br = 0; _local35 = false; }; }; if ((((radius == 0)) && (_local35))){ drawDropShadow(0, 0, _arg1, _arg2, 0, 0, 0, 0); _local26.beginFill(_local7); _local26.drawRect(0, 0, _arg1, _arg2); _local26.drawRect(_local9, _local9, (_arg1 - (2 * _local9)), (_arg2 - (2 * _local9))); _local26.endFill(); } else { if (radiusObj){ drawDropShadow(0, 0, _arg1, _arg2, radiusObj.tl, radiusObj.tr, radiusObj.br, radiusObj.bl); drawRoundRect(0, 0, _arg1, _arg2, radiusObj, _local7, 1, null, null, null, _local20); radiusObj.tl = Math.max((radius - _local9), 0); radiusObj.tr = Math.max((radius - _local9), 0); radiusObj.bl = (bRoundedCorners) ? Math.max((radius - _local9), 0) : 0; radiusObj.br = (bRoundedCorners) ? Math.max((radius - _local9), 0) : 0; } else { drawDropShadow(0, 0, _arg1, _arg2, radius, radius, radius, radius); drawRoundRect(0, 0, _arg1, _arg2, radius, _local7, 1, null, null, null, _local20); radius = Math.max((getStyle("cornerRadius") - _local9), 0); }; }; }; }; } mx_internal function drawBackground(_arg1:Number, _arg2:Number):void{ var _local4:Number; var _local5:Number; var _local6:EdgeMetrics; var _local7:Graphics; var _local8:Number; var _local9:Number; var _local10:Array; var _local11:Number; if (((((((!((backgroundColor === null))) && (!((backgroundColor === ""))))) || (getStyle("mouseShield")))) || (getStyle("mouseShieldChildren")))){ _local4 = Number(backgroundColor); _local5 = 1; _local6 = getBackgroundColorMetrics(); _local7 = graphics; if (((((isNaN(_local4)) || ((backgroundColor === "")))) || ((backgroundColor === null)))){ _local5 = 0; _local4 = 0xFFFFFF; } else { _local5 = getStyle(backgroundAlphaName); }; if (((!((radius == 0))) || (backgroundHole))){ _local8 = _local6.bottom; if (radiusObj){ _local9 = (bRoundedCorners) ? radius : 0; radiusObj = {tl:radius, tr:radius, bl:_local9, br:_local9}; drawRoundRect(_local6.left, _local6.top, (width - (_local6.left + _local6.right)), (height - (_local6.top + _local8)), radiusObj, _local4, _local5, null, GradientType.LINEAR, null, backgroundHole); } else { drawRoundRect(_local6.left, _local6.top, (width - (_local6.left + _local6.right)), (height - (_local6.top + _local8)), radius, _local4, _local5, null, GradientType.LINEAR, null, backgroundHole); }; } else { _local7.beginFill(_local4, _local5); _local7.drawRect(_local6.left, _local6.top, ((_arg1 - _local6.right) - _local6.left), ((_arg2 - _local6.bottom) - _local6.top)); _local7.endFill(); }; }; var _local3:String = getStyle("borderStyle"); if ((((((FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)) && ((((_local3 == "alert")) || ((_local3 == "default")))))) && ((getStyle("headerColors") == null)))){ _local10 = getStyle("highlightAlphas"); _local11 = (_local10) ? _local10[0] : 0.3; drawRoundRect(0, 0, _arg1, _arg2, {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, _local11, null, GradientType.LINEAR, null, {x:0, y:1, w:_arg1, h:(_arg2 - 1), r:{tl:radius, tr:radius, bl:0, br:0}}); }; } mx_internal function drawDropShadow(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{ var _local11:Number; var _local12:Boolean; if ((((((((getStyle("dropShadowEnabled") == false)) || ((getStyle("dropShadowEnabled") == "false")))) || ((_arg3 == 0)))) || ((_arg4 == 0)))){ return; }; var _local9:Number = getStyle("shadowDistance"); var _local10:String = getStyle("shadowDirection"); if (getStyle("borderStyle") == "applicationControlBar"){ _local12 = getStyle("docked"); _local11 = (_local12) ? 90 : getDropShadowAngle(_local9, _local10); _local9 = Math.abs(_local9); } else { _local11 = getDropShadowAngle(_local9, _local10); _local9 = (Math.abs(_local9) + 2); }; if (!dropShadow){ dropShadow = new RectangularDropShadow(); }; dropShadow.distance = _local9; dropShadow.angle = _local11; dropShadow.color = getStyle("dropShadowColor"); dropShadow.alpha = 0.4; dropShadow.tlRadius = _arg5; dropShadow.trRadius = _arg6; dropShadow.blRadius = _arg8; dropShadow.brRadius = _arg7; dropShadow.drawShadow(graphics, _arg1, _arg2, _arg3, _arg4); } mx_internal function getBackgroundColor():Object{ var _local2:Object; var _local1:IUIComponent = (parent as IUIComponent); if (((_local1) && (!(_local1.enabled)))){ _local2 = getStyle("backgroundDisabledColor"); if (((!((_local2 === null))) && (StyleManager.isValidStyleValue(_local2)))){ return (_local2); }; }; return (getStyle("backgroundColor")); } mx_internal function draw3dBorder(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ var _local7:Number = width; var _local8:Number = height; drawDropShadow(0, 0, width, height, 0, 0, 0, 0); var _local9:Graphics = graphics; _local9.beginFill(_arg1); _local9.drawRect(0, 0, _local7, _local8); _local9.drawRect(1, 0, (_local7 - 2), _local8); _local9.endFill(); _local9.beginFill(_arg2); _local9.drawRect(1, 0, (_local7 - 2), 1); _local9.endFill(); _local9.beginFill(_arg3); _local9.drawRect(1, (_local8 - 1), (_local7 - 2), 1); _local9.endFill(); _local9.beginFill(_arg4); _local9.drawRect(1, 1, (_local7 - 2), 1); _local9.endFill(); _local9.beginFill(_arg5); _local9.drawRect(1, (_local8 - 2), (_local7 - 2), 1); _local9.endFill(); _local9.beginFill(_arg6); _local9.drawRect(1, 2, (_local7 - 2), (_local8 - 4)); _local9.drawRect(2, 2, (_local7 - 4), (_local8 - 4)); _local9.endFill(); } mx_internal function getBackgroundColorMetrics():EdgeMetrics{ return (borderMetrics); } mx_internal function getDropShadowAngle(_arg1:Number, _arg2:String):Number{ if (_arg2 == "left"){ return (((_arg1 >= 0)) ? 135 : 225); //unresolved jump }; if (_arg2 == "right"){ return (((_arg1 >= 0)) ? 45 : 315); //unresolved jump }; return (((_arg1 >= 0)) ? 90 : 270); } override public function get borderMetrics():EdgeMetrics{ var _local1:Number; var _local3:String; if (_borderMetrics){ return (_borderMetrics); }; var _local2:String = getStyle("borderStyle"); if ((((_local2 == "default")) || ((_local2 == "alert")))){ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ _borderMetrics = new EdgeMetrics(0, 0, 0, 0); } else { return (EdgeMetrics.EMPTY); }; } else { if ((((_local2 == "controlBar")) || ((_local2 == "applicationControlBar")))){ _borderMetrics = new EdgeMetrics(1, 1, 1, 1); } else { if (_local2 == "solid"){ _local1 = getStyle("borderThickness"); if (isNaN(_local1)){ _local1 = 0; }; _borderMetrics = new EdgeMetrics(_local1, _local1, _local1, _local1); _local3 = getStyle("borderSides"); if (_local3 != "left top right bottom"){ if (_local3.indexOf("left") == -1){ _borderMetrics.left = 0; }; if (_local3.indexOf("top") == -1){ _borderMetrics.top = 0; }; if (_local3.indexOf("right") == -1){ _borderMetrics.right = 0; }; if (_local3.indexOf("bottom") == -1){ _borderMetrics.bottom = 0; }; }; } else { _local1 = BORDER_WIDTHS[_local2]; if (isNaN(_local1)){ _local1 = 0; }; _borderMetrics = new EdgeMetrics(_local1, _local1, _local1, _local1); }; }; }; return (_borderMetrics); } } }//package mx.skins.halo
Section 194
//HaloFocusRect (mx.skins.halo.HaloFocusRect) package mx.skins.halo { import mx.core.*; import flash.display.*; import mx.styles.*; import mx.skins.*; import mx.utils.*; public class HaloFocusRect extends ProgrammaticSkin implements IStyleClient { private var _focusColor:Number; mx_internal static const VERSION:String = "3.3.0.4852"; public function get inheritingStyles():Object{ return (styleName.inheritingStyles); } public function set inheritingStyles(_arg1:Object):void{ } public function notifyStyleChangeInChildren(_arg1:String, _arg2:Boolean):void{ } public function registerEffects(_arg1:Array):void{ } public function regenerateStyleCache(_arg1:Boolean):void{ } public function get styleDeclaration():CSSStyleDeclaration{ return (CSSStyleDeclaration(styleName)); } public function getClassStyleDeclarations():Array{ return ([]); } public function get className():String{ return ("HaloFocusRect"); } public function clearStyle(_arg1:String):void{ if (_arg1 == "focusColor"){ _focusColor = NaN; }; } public function setStyle(_arg1:String, _arg2):void{ if (_arg1 == "focusColor"){ _focusColor = _arg2; }; } public function set nonInheritingStyles(_arg1:Object):void{ } public function get nonInheritingStyles():Object{ return (styleName.nonInheritingStyles); } override protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; super.updateDisplayList(_arg1, _arg2); var _local3:String = getStyle("focusBlendMode"); var _local4:Number = getStyle("focusAlpha"); var _local5:Number = getStyle("focusColor"); var _local6:Number = getStyle("cornerRadius"); var _local7:Number = getStyle("focusThickness"); var _local8:String = getStyle("focusRoundedCorners"); var _local9:Number = getStyle("themeColor"); var _local10:Number = _local5; if (isNaN(_local10)){ _local10 = _local9; }; var _local11:Graphics = graphics; _local11.clear(); if (_local3){ blendMode = _local3; }; if (((!((_local8 == "tl tr bl br"))) && ((_local6 > 0)))){ _local12 = 0; _local13 = 0; _local14 = 0; _local15 = 0; _local16 = (_local6 + _local7); if (_local8.indexOf("tl") >= 0){ _local12 = _local16; }; if (_local8.indexOf("tr") >= 0){ _local14 = _local16; }; if (_local8.indexOf("bl") >= 0){ _local13 = _local16; }; if (_local8.indexOf("br") >= 0){ _local15 = _local16; }; _local11.beginFill(_local10, _local4); GraphicsUtil.drawRoundRectComplex(_local11, 0, 0, _arg1, _arg2, _local12, _local14, _local13, _local15); _local12 = (_local12) ? _local6 : 0; _local14 = (_local14) ? _local6 : 0; _local13 = (_local13) ? _local6 : 0; _local15 = (_local15) ? _local6 : 0; GraphicsUtil.drawRoundRectComplex(_local11, _local7, _local7, (_arg1 - (2 * _local7)), (_arg2 - (2 * _local7)), _local12, _local14, _local13, _local15); _local11.endFill(); _local16 = (_local6 + (_local7 / 2)); _local12 = (_local12) ? _local16 : 0; _local14 = (_local14) ? _local16 : 0; _local13 = (_local13) ? _local16 : 0; _local15 = (_local15) ? _local16 : 0; _local11.beginFill(_local10, _local4); GraphicsUtil.drawRoundRectComplex(_local11, (_local7 / 2), (_local7 / 2), (_arg1 - _local7), (_arg2 - _local7), _local12, _local14, _local13, _local15); _local12 = (_local12) ? _local6 : 0; _local14 = (_local14) ? _local6 : 0; _local13 = (_local13) ? _local6 : 0; _local15 = (_local15) ? _local6 : 0; GraphicsUtil.drawRoundRectComplex(_local11, _local7, _local7, (_arg1 - (2 * _local7)), (_arg2 - (2 * _local7)), _local12, _local14, _local13, _local15); _local11.endFill(); } else { _local11.beginFill(_local10, _local4); _local17 = (((_local6 > 0)) ? (_local6 + _local7) : 0 * 2); _local11.drawRoundRect(0, 0, _arg1, _arg2, _local17, _local17); _local17 = (_local6 * 2); _local11.drawRoundRect(_local7, _local7, (_arg1 - (2 * _local7)), (_arg2 - (2 * _local7)), _local17, _local17); _local11.endFill(); _local11.beginFill(_local10, _local4); _local17 = (((_local6 > 0)) ? (_local6 + (_local7 / 2)) : 0 * 2); _local11.drawRoundRect((_local7 / 2), (_local7 / 2), (_arg1 - _local7), (_arg2 - _local7), _local17, _local17); _local17 = (_local6 * 2); _local11.drawRoundRect(_local7, _local7, (_arg1 - (2 * _local7)), (_arg2 - (2 * _local7)), _local17, _local17); _local11.endFill(); }; } override public function getStyle(_arg1:String){ return (((_arg1 == "focusColor")) ? _focusColor : super.getStyle(_arg1)); } public function set styleDeclaration(_arg1:CSSStyleDeclaration):void{ } } }//package mx.skins.halo
Section 195
//ToolTipBorder (mx.skins.halo.ToolTipBorder) package mx.skins.halo { import mx.core.*; import flash.display.*; import mx.skins.*; import mx.graphics.*; import flash.filters.*; public class ToolTipBorder extends RectangularBorder { private var _borderMetrics:EdgeMetrics; private var dropShadow:RectangularDropShadow; mx_internal static const VERSION:String = "3.3.0.4852"; override public function get borderMetrics():EdgeMetrics{ if (_borderMetrics){ return (_borderMetrics); }; var _local1:String = getStyle("borderStyle"); switch (_local1){ case "errorTipRight": _borderMetrics = new EdgeMetrics(15, 1, 3, 3); break; case "errorTipAbove": _borderMetrics = new EdgeMetrics(3, 1, 3, 15); break; case "errorTipBelow": _borderMetrics = new EdgeMetrics(3, 13, 3, 3); break; default: _borderMetrics = new EdgeMetrics(3, 1, 3, 3); break; }; return (_borderMetrics); } override protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ super.updateDisplayList(_arg1, _arg2); var _local3:String = getStyle("borderStyle"); var _local4:uint = getStyle("backgroundColor"); var _local5:Number = getStyle("backgroundAlpha"); var _local6:uint = getStyle("borderColor"); var _local7:Number = getStyle("cornerRadius"); var _local8:uint = getStyle("shadowColor"); var _local9:Number = 0.1; var _local10:Graphics = graphics; _local10.clear(); filters = []; switch (_local3){ case "toolTip": drawRoundRect(3, 1, (_arg1 - 6), (_arg2 - 4), _local7, _local4, _local5); if (!dropShadow){ dropShadow = new RectangularDropShadow(); }; dropShadow.distance = 3; dropShadow.angle = 90; dropShadow.color = 0; dropShadow.alpha = 0.4; dropShadow.tlRadius = (_local7 + 2); dropShadow.trRadius = (_local7 + 2); dropShadow.blRadius = (_local7 + 2); dropShadow.brRadius = (_local7 + 2); dropShadow.drawShadow(graphics, 3, 0, (_arg1 - 6), (_arg2 - 4)); break; case "errorTipRight": drawRoundRect(11, 0, (_arg1 - 11), (_arg2 - 2), 3, _local6, _local5); _local10.beginFill(_local6, _local5); _local10.moveTo(11, 7); _local10.lineTo(0, 13); _local10.lineTo(11, 19); _local10.moveTo(11, 7); _local10.endFill(); filters = [new DropShadowFilter(2, 90, 0, 0.4)]; break; case "errorTipAbove": drawRoundRect(0, 0, _arg1, (_arg2 - 13), 3, _local6, _local5); _local10.beginFill(_local6, _local5); _local10.moveTo(9, (_arg2 - 13)); _local10.lineTo(15, (_arg2 - 2)); _local10.lineTo(21, (_arg2 - 13)); _local10.moveTo(9, (_arg2 - 13)); _local10.endFill(); filters = [new DropShadowFilter(2, 90, 0, 0.4)]; break; case "errorTipBelow": drawRoundRect(0, 11, _arg1, (_arg2 - 13), 3, _local6, _local5); _local10.beginFill(_local6, _local5); _local10.moveTo(9, 11); _local10.lineTo(15, 0); _local10.lineTo(21, 11); _local10.moveTo(10, 11); _local10.endFill(); filters = [new DropShadowFilter(2, 90, 0, 0.4)]; break; }; } override public function styleChanged(_arg1:String):void{ if ((((((_arg1 == "borderStyle")) || ((_arg1 == "styleName")))) || ((_arg1 == null)))){ _borderMetrics = null; }; invalidateDisplayList(); } } }//package mx.skins.halo
Section 196
//Border (mx.skins.Border) package mx.skins { import mx.core.*; public class Border extends ProgrammaticSkin implements IBorder { mx_internal static const VERSION:String = "3.3.0.4852"; public function get borderMetrics():EdgeMetrics{ return (EdgeMetrics.EMPTY); } } }//package mx.skins
Section 197
//ProgrammaticSkin (mx.skins.ProgrammaticSkin) package mx.skins { import mx.core.*; import flash.display.*; import flash.geom.*; import mx.styles.*; import mx.managers.*; import mx.utils.*; public class ProgrammaticSkin extends FlexShape implements IFlexDisplayObject, IInvalidating, ILayoutManagerClient, ISimpleStyleClient, IProgrammaticSkin { private var _initialized:Boolean;// = false private var _height:Number; private var invalidateDisplayListFlag:Boolean;// = false private var _styleName:IStyleClient; private var _nestLevel:int;// = 0 private var _processedDescriptors:Boolean;// = false private var _updateCompletePendingFlag:Boolean;// = true private var _width:Number; mx_internal static const VERSION:String = "3.3.0.4852"; private static var tempMatrix:Matrix = new Matrix(); public function ProgrammaticSkin(){ _width = measuredWidth; _height = measuredHeight; } public function getStyle(_arg1:String){ return ((_styleName) ? _styleName.getStyle(_arg1) : null); } protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ } public function get nestLevel():int{ return (_nestLevel); } public function set nestLevel(_arg1:int):void{ _nestLevel = _arg1; invalidateDisplayList(); } override public function get height():Number{ return (_height); } public function get updateCompletePendingFlag():Boolean{ return (_updateCompletePendingFlag); } protected function verticalGradientMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix{ return (rotatedGradientMatrix(_arg1, _arg2, _arg3, _arg4, 90)); } public function validateSize(_arg1:Boolean=false):void{ } public function invalidateDisplayList():void{ if (((!(invalidateDisplayListFlag)) && ((nestLevel > 0)))){ invalidateDisplayListFlag = true; UIComponentGlobals.layoutManager.invalidateDisplayList(this); }; } public function set updateCompletePendingFlag(_arg1:Boolean):void{ _updateCompletePendingFlag = _arg1; } protected function horizontalGradientMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix{ return (rotatedGradientMatrix(_arg1, _arg2, _arg3, _arg4, 0)); } override public function set height(_arg1:Number):void{ _height = _arg1; invalidateDisplayList(); } public function set processedDescriptors(_arg1:Boolean):void{ _processedDescriptors = _arg1; } public function validateDisplayList():void{ invalidateDisplayListFlag = false; updateDisplayList(width, height); } public function get measuredWidth():Number{ return (0); } override public function set width(_arg1:Number):void{ _width = _arg1; invalidateDisplayList(); } public function get measuredHeight():Number{ return (0); } public function set initialized(_arg1:Boolean):void{ _initialized = _arg1; } protected function drawRoundRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null, _arg6:Object=null, _arg7:Object=null, _arg8:Matrix=null, _arg9:String="linear", _arg10:Array=null, _arg11:Object=null):void{ var _local13:Number; var _local14:Array; var _local15:Object; var _local12:Graphics = graphics; if ((((_arg3 == 0)) || ((_arg4 == 0)))){ return; }; if (_arg6 !== null){ if ((_arg6 is uint)){ _local12.beginFill(uint(_arg6), Number(_arg7)); } else { if ((_arg6 is Array)){ _local14 = ((_arg7 is Array)) ? (_arg7 as Array) : [_arg7, _arg7]; if (!_arg10){ _arg10 = [0, 0xFF]; }; _local12.beginGradientFill(_arg9, (_arg6 as Array), _local14, _arg10, _arg8); }; }; }; if (!_arg5){ _local12.drawRect(_arg1, _arg2, _arg3, _arg4); } else { if ((_arg5 is Number)){ _local13 = (Number(_arg5) * 2); _local12.drawRoundRect(_arg1, _arg2, _arg3, _arg4, _local13, _local13); } else { GraphicsUtil.drawRoundRectComplex(_local12, _arg1, _arg2, _arg3, _arg4, _arg5.tl, _arg5.tr, _arg5.bl, _arg5.br); }; }; if (_arg11){ _local15 = _arg11.r; if ((_local15 is Number)){ _local13 = (Number(_local15) * 2); _local12.drawRoundRect(_arg11.x, _arg11.y, _arg11.w, _arg11.h, _local13, _local13); } else { GraphicsUtil.drawRoundRectComplex(_local12, _arg11.x, _arg11.y, _arg11.w, _arg11.h, _local15.tl, _local15.tr, _local15.bl, _local15.br); }; }; if (_arg6 !== null){ _local12.endFill(); }; } public function get processedDescriptors():Boolean{ return (_processedDescriptors); } public function set styleName(_arg1:Object):void{ if (_styleName != _arg1){ _styleName = (_arg1 as IStyleClient); invalidateDisplayList(); }; } public function setActualSize(_arg1:Number, _arg2:Number):void{ var _local3:Boolean; if (_width != _arg1){ _width = _arg1; _local3 = true; }; if (_height != _arg2){ _height = _arg2; _local3 = true; }; if (_local3){ invalidateDisplayList(); }; } public function styleChanged(_arg1:String):void{ invalidateDisplayList(); } override public function get width():Number{ return (_width); } public function invalidateProperties():void{ } public function get initialized():Boolean{ return (_initialized); } protected function rotatedGradientMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Matrix{ tempMatrix.createGradientBox(_arg3, _arg4, ((_arg5 * Math.PI) / 180), _arg1, _arg2); return (tempMatrix); } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function get styleName():Object{ return (_styleName); } public function validateNow():void{ if (invalidateDisplayListFlag){ validateDisplayList(); }; } public function invalidateSize():void{ } public function validateProperties():void{ } } }//package mx.skins
Section 198
//RectangularBorder (mx.skins.RectangularBorder) package mx.skins { import flash.events.*; import mx.core.*; import flash.display.*; import flash.geom.*; import mx.styles.*; import flash.system.*; import mx.resources.*; import flash.utils.*; import flash.net.*; public class RectangularBorder extends Border implements IRectangularBorder { private var backgroundImage:DisplayObject; private var backgroundImageHeight:Number; private var _backgroundImageBounds:Rectangle; private var backgroundImageStyle:Object; private var backgroundImageWidth:Number; private var resourceManager:IResourceManager; mx_internal static const VERSION:String = "3.3.0.4852"; public function RectangularBorder(){ resourceManager = ResourceManager.getInstance(); super(); addEventListener(Event.REMOVED, removedHandler); } public function layoutBackgroundImage():void{ var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; var _local14:Number; var _local15:Graphics; var _local1:DisplayObject = parent; var _local2:EdgeMetrics = ((_local1 is IContainer)) ? IContainer(_local1).viewMetrics : borderMetrics; var _local3 = !((getStyle("backgroundAttachment") == "fixed")); if (_backgroundImageBounds){ _local4 = _backgroundImageBounds.width; _local5 = _backgroundImageBounds.height; } else { _local4 = ((width - _local2.left) - _local2.right); _local5 = ((height - _local2.top) - _local2.bottom); }; var _local6:Number = getBackgroundSize(); if (isNaN(_local6)){ _local7 = 1; _local8 = 1; } else { _local14 = (_local6 * 0.01); _local7 = ((_local14 * _local4) / backgroundImageWidth); _local8 = ((_local14 * _local5) / backgroundImageHeight); }; backgroundImage.scaleX = _local7; backgroundImage.scaleY = _local8; var _local9:Number = Math.round((0.5 * (_local4 - (backgroundImageWidth * _local7)))); var _local10:Number = Math.round((0.5 * (_local5 - (backgroundImageHeight * _local8)))); backgroundImage.x = _local2.left; backgroundImage.y = _local2.top; var _local11:Shape = Shape(backgroundImage.mask); _local11.x = _local2.left; _local11.y = _local2.top; if (((_local3) && ((_local1 is IContainer)))){ _local9 = (_local9 - IContainer(_local1).horizontalScrollPosition); _local10 = (_local10 - IContainer(_local1).verticalScrollPosition); }; backgroundImage.alpha = getStyle("backgroundAlpha"); backgroundImage.x = (backgroundImage.x + _local9); backgroundImage.y = (backgroundImage.y + _local10); var _local12:Number = ((width - _local2.left) - _local2.right); var _local13:Number = ((height - _local2.top) - _local2.bottom); if (((!((_local11.width == _local12))) || (!((_local11.height == _local13))))){ _local15 = _local11.graphics; _local15.clear(); _local15.beginFill(0xFFFFFF); _local15.drawRect(0, 0, _local12, _local13); _local15.endFill(); }; } public function set backgroundImageBounds(_arg1:Rectangle):void{ _backgroundImageBounds = _arg1; invalidateDisplayList(); } private function getBackgroundSize():Number{ var _local3:int; var _local1:Number = NaN; var _local2:Object = getStyle("backgroundSize"); if (((_local2) && ((_local2 is String)))){ _local3 = _local2.indexOf("%"); if (_local3 != -1){ _local1 = Number(_local2.substr(0, _local3)); }; }; return (_local1); } private function removedHandler(_arg1:Event):void{ var _local2:IChildList; if (backgroundImage){ _local2 = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent); _local2.removeChild(backgroundImage.mask); _local2.removeChild(backgroundImage); backgroundImage = null; }; } private function initBackgroundImage(_arg1:DisplayObject):void{ backgroundImage = _arg1; if ((_arg1 is Loader)){ backgroundImageWidth = Loader(_arg1).contentLoaderInfo.width; backgroundImageHeight = Loader(_arg1).contentLoaderInfo.height; } else { backgroundImageWidth = backgroundImage.width; backgroundImageHeight = backgroundImage.height; if ((_arg1 is ISimpleStyleClient)){ ISimpleStyleClient(_arg1).styleName = styleName; }; }; var _local2:IChildList = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent); var _local3:Shape = new FlexShape(); _local3.name = "backgroundMask"; _local3.x = 0; _local3.y = 0; _local2.addChild(_local3); var _local4:int = _local2.getChildIndex(this); _local2.addChildAt(backgroundImage, (_local4 + 1)); backgroundImage.mask = _local3; } public function get backgroundImageBounds():Rectangle{ return (_backgroundImageBounds); } public function get hasBackgroundImage():Boolean{ return (!((backgroundImage == null))); } private function completeEventHandler(_arg1:Event):void{ if (!parent){ return; }; var _local2:DisplayObject = DisplayObject(LoaderInfo(_arg1.target).loader); initBackgroundImage(_local2); layoutBackgroundImage(); dispatchEvent(_arg1.clone()); } override protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ var cls:Class; var newStyleObj:DisplayObject; var loader:Loader; var loaderContext:LoaderContext; var message:String; var unscaledWidth = _arg1; var unscaledHeight = _arg2; if (!parent){ return; }; var newStyle:Object = getStyle("backgroundImage"); if (newStyle != backgroundImageStyle){ removedHandler(null); backgroundImageStyle = newStyle; if (((newStyle) && ((newStyle as Class)))){ cls = Class(newStyle); initBackgroundImage(new (cls)); } else { if (((newStyle) && ((newStyle is String)))){ try { cls = Class(getDefinitionByName(String(newStyle))); } catch(e:Error) { }; if (cls){ newStyleObj = new (cls); initBackgroundImage(newStyleObj); } else { loader = new FlexLoader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeEventHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorEventHandler); loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, errorEventHandler); loaderContext = new LoaderContext(); loaderContext.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); loader.load(new URLRequest(String(newStyle)), loaderContext); }; } else { if (newStyle){ message = resourceManager.getString("skins", "notLoaded", [newStyle]); throw (new Error(message)); }; }; }; }; if (backgroundImage){ layoutBackgroundImage(); }; } private function errorEventHandler(_arg1:Event):void{ } } }//package mx.skins
Section 199
//CSSStyleDeclaration (mx.styles.CSSStyleDeclaration) package mx.styles { import flash.events.*; import mx.core.*; import flash.display.*; import mx.managers.*; import flash.utils.*; public class CSSStyleDeclaration extends EventDispatcher { mx_internal var effects:Array; protected var overrides:Object; public var defaultFactory:Function; public var factory:Function; mx_internal var selectorRefCount:int;// = 0 private var styleManager:IStyleManager2; private var clones:Dictionary; mx_internal static const VERSION:String = "3.3.0.4852"; private static const NOT_A_COLOR:uint = 4294967295; private static const FILTERMAP_PROP:String = "__reserved__filterMap"; public function CSSStyleDeclaration(_arg1:String=null){ clones = new Dictionary(true); super(); if (_arg1){ styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2); styleManager.setStyleDeclaration(_arg1, this, false); }; } mx_internal function addStyleToProtoChain(_arg1:Object, _arg2:DisplayObject, _arg3:Object=null):Object{ var p:String; var emptyObjectFactory:Function; var filteredChain:Object; var filterObjectFactory:Function; var i:String; var chain = _arg1; var target = _arg2; var filterMap = _arg3; var nodeAddedToChain:Boolean; var originalChain:Object = chain; if (filterMap){ chain = {}; }; if (defaultFactory != null){ defaultFactory.prototype = chain; chain = new defaultFactory(); nodeAddedToChain = true; }; if (factory != null){ factory.prototype = chain; chain = new factory(); nodeAddedToChain = true; }; if (overrides){ if ((((defaultFactory == null)) && ((factory == null)))){ emptyObjectFactory = function ():void{ }; emptyObjectFactory.prototype = chain; chain = new (emptyObjectFactory); nodeAddedToChain = true; }; for (p in overrides) { if (overrides[p] === undefined){ delete chain[p]; } else { chain[p] = overrides[p]; }; }; }; if (filterMap){ if (nodeAddedToChain){ filteredChain = {}; filterObjectFactory = function ():void{ }; filterObjectFactory.prototype = originalChain; filteredChain = new (filterObjectFactory); for (i in chain) { if (filterMap[i] != null){ filteredChain[filterMap[i]] = chain[i]; }; }; chain = filteredChain; chain[FILTERMAP_PROP] = filterMap; } else { chain = originalChain; }; }; if (nodeAddedToChain){ clones[chain] = 1; }; return (chain); } public function getStyle(_arg1:String){ var _local2:*; var _local3:*; if (overrides){ if ((((_arg1 in overrides)) && ((overrides[_arg1] === undefined)))){ return (undefined); }; _local3 = overrides[_arg1]; if (_local3 !== undefined){ return (_local3); }; }; if (factory != null){ factory.prototype = {}; _local2 = new factory(); _local3 = _local2[_arg1]; if (_local3 !== undefined){ return (_local3); }; }; if (defaultFactory != null){ defaultFactory.prototype = {}; _local2 = new defaultFactory(); _local3 = _local2[_arg1]; if (_local3 !== undefined){ return (_local3); }; }; return (undefined); } public function clearStyle(_arg1:String):void{ setStyle(_arg1, undefined); } public function setStyle(_arg1:String, _arg2):void{ var _local7:int; var _local8:Object; var _local3:Object = getStyle(_arg1); var _local4:Boolean; if ((((((((((selectorRefCount > 0)) && ((factory == null)))) && ((defaultFactory == null)))) && (!(overrides)))) && (!((_local3 === _arg2))))){ _local4 = true; }; if (_arg2 !== undefined){ setStyle(_arg1, _arg2); } else { if (_arg2 == _local3){ return; }; setStyle(_arg1, _arg2); }; var _local5:Array = SystemManagerGlobals.topLevelSystemManagers; var _local6:int = _local5.length; if (_local4){ _local7 = 0; while (_local7 < _local6) { _local8 = _local5[_local7]; _local8.regenerateStyleCache(true); _local7++; }; }; _local7 = 0; while (_local7 < _local6) { _local8 = _local5[_local7]; _local8.notifyStyleChangeInChildren(_arg1, true); _local7++; }; } private function clearStyleAttr(_arg1:String):void{ var _local2:*; if (!overrides){ overrides = {}; }; overrides[_arg1] = undefined; for (_local2 in clones) { delete _local2[_arg1]; }; } mx_internal function createProtoChainRoot():Object{ var _local1:Object = {}; if (defaultFactory != null){ defaultFactory.prototype = _local1; _local1 = new defaultFactory(); }; if (factory != null){ factory.prototype = _local1; _local1 = new factory(); }; clones[_local1] = 1; return (_local1); } mx_internal function clearOverride(_arg1:String):void{ if (((overrides) && (overrides[_arg1]))){ delete overrides[_arg1]; }; } mx_internal function setStyle(_arg1:String, _arg2):void{ var _local3:Object; var _local4:*; var _local5:Number; var _local6:Object; if (_arg2 === undefined){ clearStyleAttr(_arg1); return; }; if ((_arg2 is String)){ if (!styleManager){ styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2); }; _local5 = styleManager.getColorName(_arg2); if (_local5 != NOT_A_COLOR){ _arg2 = _local5; }; }; if (defaultFactory != null){ _local3 = new defaultFactory(); if (_local3[_arg1] !== _arg2){ if (!overrides){ overrides = {}; }; overrides[_arg1] = _arg2; } else { if (overrides){ delete overrides[_arg1]; }; }; }; if (factory != null){ _local3 = new factory(); if (_local3[_arg1] !== _arg2){ if (!overrides){ overrides = {}; }; overrides[_arg1] = _arg2; } else { if (overrides){ delete overrides[_arg1]; }; }; }; if ((((defaultFactory == null)) && ((factory == null)))){ if (!overrides){ overrides = {}; }; overrides[_arg1] = _arg2; }; for (_local4 in clones) { _local6 = _local4[FILTERMAP_PROP]; if (_local6){ if (_local6[_arg1] != null){ _local4[_local6[_arg1]] = _arg2; }; } else { _local4[_arg1] = _arg2; }; }; } } }//package mx.styles
Section 200
//ISimpleStyleClient (mx.styles.ISimpleStyleClient) package mx.styles { public interface ISimpleStyleClient { function set styleName(_arg1:Object):void; function styleChanged(_arg1:String):void; function get styleName():Object; } }//package mx.styles
Section 201
//IStyleClient (mx.styles.IStyleClient) package mx.styles { public interface IStyleClient extends ISimpleStyleClient { function regenerateStyleCache(_arg1:Boolean):void; function get className():String; function clearStyle(_arg1:String):void; function getClassStyleDeclarations():Array; function get inheritingStyles():Object; function set nonInheritingStyles(_arg1:Object):void; function setStyle(_arg1:String, _arg2):void; function get styleDeclaration():CSSStyleDeclaration; function set styleDeclaration(_arg1:CSSStyleDeclaration):void; function get nonInheritingStyles():Object; function set inheritingStyles(_arg1:Object):void; function getStyle(_arg1:String); function notifyStyleChangeInChildren(_arg1:String, _arg2:Boolean):void; function registerEffects(_arg1:Array):void; } }//package mx.styles
Section 202
//IStyleManager (mx.styles.IStyleManager) package mx.styles { import flash.events.*; public interface IStyleManager { function isColorName(_arg1:String):Boolean; function registerParentDisplayListInvalidatingStyle(_arg1:String):void; function registerInheritingStyle(_arg1:String):void; function set stylesRoot(_arg1:Object):void; function get typeSelectorCache():Object; function styleDeclarationsChanged():void; function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void; function isParentDisplayListInvalidatingStyle(_arg1:String):Boolean; function isSizeInvalidatingStyle(_arg1:String):Boolean; function get inheritingStyles():Object; function isValidStyleValue(_arg1):Boolean; function isParentSizeInvalidatingStyle(_arg1:String):Boolean; function getColorName(_arg1:Object):uint; function set typeSelectorCache(_arg1:Object):void; function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void; function getColorNames(_arg1:Array):void; function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false):IEventDispatcher; function isInheritingStyle(_arg1:String):Boolean; function set inheritingStyles(_arg1:Object):void; function get stylesRoot():Object; function initProtoChainRoots():void; function registerColorName(_arg1:String, _arg2:uint):void; function registerParentSizeInvalidatingStyle(_arg1:String):void; function registerSizeInvalidatingStyle(_arg1:String):void; function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void; function isInheritingTextFormatStyle(_arg1:String):Boolean; function getStyleDeclaration(_arg1:String):CSSStyleDeclaration; } }//package mx.styles
Section 203
//IStyleManager2 (mx.styles.IStyleManager2) package mx.styles { import flash.events.*; import flash.system.*; public interface IStyleManager2 extends IStyleManager { function get selectors():Array; function loadStyleDeclarations2(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher; } }//package mx.styles
Section 204
//IStyleModule (mx.styles.IStyleModule) package mx.styles { public interface IStyleModule { function unload():void; } }//package mx.styles
Section 205
//StyleManager (mx.styles.StyleManager) package mx.styles { import flash.events.*; import mx.core.*; import flash.system.*; public class StyleManager { mx_internal static const VERSION:String = "3.3.0.4852"; public static const NOT_A_COLOR:uint = 4294967295; private static var _impl:IStyleManager2; private static var implClassDependency:StyleManagerImpl; public static function isParentSizeInvalidatingStyle(_arg1:String):Boolean{ return (impl.isParentSizeInvalidatingStyle(_arg1)); } public static function registerInheritingStyle(_arg1:String):void{ impl.registerInheritingStyle(_arg1); } mx_internal static function set stylesRoot(_arg1:Object):void{ impl.stylesRoot = _arg1; } mx_internal static function get inheritingStyles():Object{ return (impl.inheritingStyles); } mx_internal static function styleDeclarationsChanged():void{ impl.styleDeclarationsChanged(); } public static function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void{ impl.setStyleDeclaration(_arg1, _arg2, _arg3); } public static function registerParentDisplayListInvalidatingStyle(_arg1:String):void{ impl.registerParentDisplayListInvalidatingStyle(_arg1); } mx_internal static function get typeSelectorCache():Object{ return (impl.typeSelectorCache); } mx_internal static function set inheritingStyles(_arg1:Object):void{ impl.inheritingStyles = _arg1; } public static function isColorName(_arg1:String):Boolean{ return (impl.isColorName(_arg1)); } public static function isParentDisplayListInvalidatingStyle(_arg1:String):Boolean{ return (impl.isParentDisplayListInvalidatingStyle(_arg1)); } public static function isSizeInvalidatingStyle(_arg1:String):Boolean{ return (impl.isSizeInvalidatingStyle(_arg1)); } public static function getColorName(_arg1:Object):uint{ return (impl.getColorName(_arg1)); } mx_internal static function set typeSelectorCache(_arg1:Object):void{ impl.typeSelectorCache = _arg1; } public static function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void{ impl.unloadStyleDeclarations(_arg1, _arg2); } public static function getColorNames(_arg1:Array):void{ impl.getColorNames(_arg1); } public static function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false, _arg4:ApplicationDomain=null, _arg5:SecurityDomain=null):IEventDispatcher{ return (impl.loadStyleDeclarations2(_arg1, _arg2, _arg4, _arg5)); } private static function get impl():IStyleManager2{ if (!_impl){ _impl = IStyleManager2(Singleton.getInstance("mx.styles::IStyleManager2")); }; return (_impl); } public static function isValidStyleValue(_arg1):Boolean{ return (impl.isValidStyleValue(_arg1)); } mx_internal static function get stylesRoot():Object{ return (impl.stylesRoot); } public static function isInheritingStyle(_arg1:String):Boolean{ return (impl.isInheritingStyle(_arg1)); } mx_internal static function initProtoChainRoots():void{ impl.initProtoChainRoots(); } public static function registerParentSizeInvalidatingStyle(_arg1:String):void{ impl.registerParentSizeInvalidatingStyle(_arg1); } public static function get selectors():Array{ return (impl.selectors); } public static function registerSizeInvalidatingStyle(_arg1:String):void{ impl.registerSizeInvalidatingStyle(_arg1); } public static function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void{ impl.clearStyleDeclaration(_arg1, _arg2); } public static function registerColorName(_arg1:String, _arg2:uint):void{ impl.registerColorName(_arg1, _arg2); } public static function isInheritingTextFormatStyle(_arg1:String):Boolean{ return (impl.isInheritingTextFormatStyle(_arg1)); } public static function getStyleDeclaration(_arg1:String):CSSStyleDeclaration{ return (impl.getStyleDeclaration(_arg1)); } } }//package mx.styles
Section 206
//StyleManagerImpl (mx.styles.StyleManagerImpl) package mx.styles { import flash.events.*; import mx.core.*; import flash.system.*; import mx.modules.*; import mx.events.*; import mx.resources.*; import mx.managers.*; import flash.utils.*; public class StyleManagerImpl implements IStyleManager2 { private var _stylesRoot:Object; private var _selectors:Object; private var styleModules:Object; private var _inheritingStyles:Object; private var resourceManager:IResourceManager; private var _typeSelectorCache:Object; mx_internal static const VERSION:String = "3.3.0.4852"; private static var parentSizeInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true}; private static var colorNames:Object = {transparent:"transparent", black:0, blue:0xFF, green:0x8000, gray:0x808080, silver:0xC0C0C0, lime:0xFF00, olive:0x808000, white:0xFFFFFF, yellow:0xFFFF00, maroon:0x800000, navy:128, red:0xFF0000, purple:0x800080, teal:0x8080, fuchsia:0xFF00FF, aqua:0xFFFF, magenta:0xFF00FF, cyan:0xFFFF, halogreen:8453965, haloblue:40447, haloorange:0xFFB600, halosilver:11455193}; private static var inheritingTextFormatStyles:Object = {align:true, bold:true, color:true, font:true, indent:true, italic:true, size:true}; private static var instance:IStyleManager2; private static var parentDisplayListInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true}; private static var sizeInvalidatingStyles:Object = {borderStyle:true, borderThickness:true, fontAntiAliasType:true, fontFamily:true, fontGridFitType:true, fontSharpness:true, fontSize:true, fontStyle:true, fontThickness:true, fontWeight:true, headerHeight:true, horizontalAlign:true, horizontalGap:true, kerning:true, leading:true, letterSpacing:true, paddingBottom:true, paddingLeft:true, paddingRight:true, paddingTop:true, strokeWidth:true, tabHeight:true, tabWidth:true, verticalAlign:true, verticalGap:true}; public function StyleManagerImpl(){ _selectors = {}; styleModules = {}; resourceManager = ResourceManager.getInstance(); _inheritingStyles = {}; _typeSelectorCache = {}; super(); } public function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void{ _arg2.selectorRefCount++; _selectors[_arg1] = _arg2; typeSelectorCache = {}; if (_arg3){ styleDeclarationsChanged(); }; } public function registerParentDisplayListInvalidatingStyle(_arg1:String):void{ parentDisplayListInvalidatingStyles[_arg1] = true; } public function getStyleDeclaration(_arg1:String):CSSStyleDeclaration{ var _local2:int; if (_arg1.charAt(0) != "."){ _local2 = _arg1.lastIndexOf("."); if (_local2 != -1){ _arg1 = _arg1.substr((_local2 + 1)); }; }; return (_selectors[_arg1]); } public function set typeSelectorCache(_arg1:Object):void{ _typeSelectorCache = _arg1; } public function isColorName(_arg1:String):Boolean{ return (!((colorNames[_arg1.toLowerCase()] === undefined))); } public function set inheritingStyles(_arg1:Object):void{ _inheritingStyles = _arg1; } public function getColorNames(_arg1:Array):void{ var _local4:uint; if (!_arg1){ return; }; var _local2:int = _arg1.length; var _local3:int; while (_local3 < _local2) { if (((!((_arg1[_local3] == null))) && (isNaN(_arg1[_local3])))){ _local4 = getColorName(_arg1[_local3]); if (_local4 != StyleManager.NOT_A_COLOR){ _arg1[_local3] = _local4; }; }; _local3++; }; } public function isInheritingTextFormatStyle(_arg1:String):Boolean{ return ((inheritingTextFormatStyles[_arg1] == true)); } public function registerParentSizeInvalidatingStyle(_arg1:String):void{ parentSizeInvalidatingStyles[_arg1] = true; } public function registerColorName(_arg1:String, _arg2:uint):void{ colorNames[_arg1.toLowerCase()] = _arg2; } public function isParentSizeInvalidatingStyle(_arg1:String):Boolean{ return ((parentSizeInvalidatingStyles[_arg1] == true)); } public function registerInheritingStyle(_arg1:String):void{ inheritingStyles[_arg1] = true; } public function set stylesRoot(_arg1:Object):void{ _stylesRoot = _arg1; } public function get typeSelectorCache():Object{ return (_typeSelectorCache); } public function isParentDisplayListInvalidatingStyle(_arg1:String):Boolean{ return ((parentDisplayListInvalidatingStyles[_arg1] == true)); } public function isSizeInvalidatingStyle(_arg1:String):Boolean{ return ((sizeInvalidatingStyles[_arg1] == true)); } public function styleDeclarationsChanged():void{ var _local4:Object; var _local1:Array = SystemManagerGlobals.topLevelSystemManagers; var _local2:int = _local1.length; var _local3:int; while (_local3 < _local2) { _local4 = _local1[_local3]; _local4.regenerateStyleCache(true); _local4.notifyStyleChangeInChildren(null, true); _local3++; }; } public function isValidStyleValue(_arg1):Boolean{ return (!((_arg1 === undefined))); } public function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false):IEventDispatcher{ return (loadStyleDeclarations2(_arg1, _arg2)); } public function get inheritingStyles():Object{ return (_inheritingStyles); } public function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void{ var _local4:IModuleInfo; var _local3:StyleModuleInfo = styleModules[_arg1]; if (_local3){ _local3.styleModule.unload(); _local4 = _local3.module; _local4.unload(); _local4.removeEventListener(ModuleEvent.READY, _local3.readyHandler); _local4.removeEventListener(ModuleEvent.ERROR, _local3.errorHandler); styleModules[_arg1] = null; }; if (_arg2){ styleDeclarationsChanged(); }; } public function getColorName(_arg1:Object):uint{ var _local2:Number; var _local3:*; if ((_arg1 is String)){ if (_arg1.charAt(0) == "#"){ _local2 = Number(("0x" + _arg1.slice(1))); return ((isNaN(_local2)) ? StyleManager.NOT_A_COLOR : uint(_local2)); }; if ((((_arg1.charAt(1) == "x")) && ((_arg1.charAt(0) == "0")))){ _local2 = Number(_arg1); return ((isNaN(_local2)) ? StyleManager.NOT_A_COLOR : uint(_local2)); }; _local3 = colorNames[_arg1.toLowerCase()]; if (_local3 === undefined){ return (StyleManager.NOT_A_COLOR); }; return (uint(_local3)); }; return (uint(_arg1)); } public function isInheritingStyle(_arg1:String):Boolean{ return ((inheritingStyles[_arg1] == true)); } public function get stylesRoot():Object{ return (_stylesRoot); } public function initProtoChainRoots():void{ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ delete _inheritingStyles["textDecoration"]; delete _inheritingStyles["leading"]; }; if (!stylesRoot){ stylesRoot = _selectors["global"].addStyleToProtoChain({}, null); }; } public function loadStyleDeclarations2(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher{ var module:IModuleInfo; var styleEventDispatcher:StyleEventDispatcher; var timer:Timer; var timerHandler:Function; var url = _arg1; var update = _arg2; var applicationDomain = _arg3; var securityDomain = _arg4; module = ModuleManager.getModule(url); var readyHandler:Function = function (_arg1:ModuleEvent):void{ var _local2:IStyleModule = IStyleModule(_arg1.module.factory.create()); styleModules[_arg1.module.url].styleModule = _local2; if (update){ styleDeclarationsChanged(); }; }; module.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true); styleEventDispatcher = new StyleEventDispatcher(module); var errorHandler:Function = function (_arg1:ModuleEvent):void{ var _local3:StyleEvent; var _local2:String = resourceManager.getString("styles", "unableToLoad", [_arg1.errorText, url]); if (styleEventDispatcher.willTrigger(StyleEvent.ERROR)){ _local3 = new StyleEvent(StyleEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local3.bytesLoaded = 0; _local3.bytesTotal = 0; _local3.errorText = _local2; styleEventDispatcher.dispatchEvent(_local3); } else { throw (new Error(_local2)); }; }; module.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true); styleModules[url] = new StyleModuleInfo(module, readyHandler, errorHandler); timer = new Timer(0); timerHandler = function (_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.stop(); module.load(applicationDomain, securityDomain); }; timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true); timer.start(); return (styleEventDispatcher); } public function registerSizeInvalidatingStyle(_arg1:String):void{ sizeInvalidatingStyles[_arg1] = true; } public function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void{ var _local3:CSSStyleDeclaration = getStyleDeclaration(_arg1); if (((_local3) && ((_local3.selectorRefCount > 0)))){ _local3.selectorRefCount--; }; delete _selectors[_arg1]; if (_arg2){ styleDeclarationsChanged(); }; } public function get selectors():Array{ var _local2:String; var _local1:Array = []; for (_local2 in _selectors) { _local1.push(_local2); }; return (_local1); } public static function getInstance():IStyleManager2{ if (!instance){ instance = new (StyleManagerImpl); }; return (instance); } } }//package mx.styles import flash.events.*; import mx.modules.*; import mx.events.*; class StyleEventDispatcher extends EventDispatcher { private function StyleEventDispatcher(_arg1:IModuleInfo){ _arg1.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true); } private function moduleInfo_progressHandler(_arg1:ModuleEvent):void{ var _local2:StyleEvent = new StyleEvent(StyleEvent.PROGRESS, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; dispatchEvent(_local2); } private function moduleInfo_readyHandler(_arg1:ModuleEvent):void{ var _local2:StyleEvent = new StyleEvent(StyleEvent.COMPLETE); dispatchEvent(_local2); } private function moduleInfo_errorHandler(_arg1:ModuleEvent):void{ var _local2:StyleEvent = new StyleEvent(StyleEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; _local2.errorText = _arg1.errorText; dispatchEvent(_local2); } } class StyleModuleInfo { public var errorHandler:Function; public var readyHandler:Function; public var module:IModuleInfo; public var styleModule:IStyleModule; private function StyleModuleInfo(_arg1:IModuleInfo, _arg2:Function, _arg3:Function){ this.module = _arg1; this.readyHandler = _arg2; this.errorHandler = _arg3; } }
Section 207
//ColorUtil (mx.utils.ColorUtil) package mx.utils { import mx.core.*; public class ColorUtil { mx_internal static const VERSION:String = "3.3.0.4852"; public static function adjustBrightness2(_arg1:uint, _arg2:Number):uint{ var _local3:Number; var _local4:Number; var _local5:Number; if (_arg2 == 0){ return (_arg1); }; if (_arg2 < 0){ _arg2 = ((100 + _arg2) / 100); _local3 = (((_arg1 >> 16) & 0xFF) * _arg2); _local4 = (((_arg1 >> 8) & 0xFF) * _arg2); _local5 = ((_arg1 & 0xFF) * _arg2); } else { _arg2 = (_arg2 / 100); _local3 = ((_arg1 >> 16) & 0xFF); _local4 = ((_arg1 >> 8) & 0xFF); _local5 = (_arg1 & 0xFF); _local3 = (_local3 + ((0xFF - _local3) * _arg2)); _local4 = (_local4 + ((0xFF - _local4) * _arg2)); _local5 = (_local5 + ((0xFF - _local5) * _arg2)); _local3 = Math.min(_local3, 0xFF); _local4 = Math.min(_local4, 0xFF); _local5 = Math.min(_local5, 0xFF); }; return ((((_local3 << 16) | (_local4 << 8)) | _local5)); } public static function rgbMultiply(_arg1:uint, _arg2:uint):uint{ var _local3:Number = ((_arg1 >> 16) & 0xFF); var _local4:Number = ((_arg1 >> 8) & 0xFF); var _local5:Number = (_arg1 & 0xFF); var _local6:Number = ((_arg2 >> 16) & 0xFF); var _local7:Number = ((_arg2 >> 8) & 0xFF); var _local8:Number = (_arg2 & 0xFF); return ((((((_local3 * _local6) / 0xFF) << 16) | (((_local4 * _local7) / 0xFF) << 8)) | ((_local5 * _local8) / 0xFF))); } public static function adjustBrightness(_arg1:uint, _arg2:Number):uint{ var _local3:Number = Math.max(Math.min((((_arg1 >> 16) & 0xFF) + _arg2), 0xFF), 0); var _local4:Number = Math.max(Math.min((((_arg1 >> 8) & 0xFF) + _arg2), 0xFF), 0); var _local5:Number = Math.max(Math.min(((_arg1 & 0xFF) + _arg2), 0xFF), 0); return ((((_local3 << 16) | (_local4 << 8)) | _local5)); } } }//package mx.utils
Section 208
//GraphicsUtil (mx.utils.GraphicsUtil) package mx.utils { import mx.core.*; import flash.display.*; public class GraphicsUtil { mx_internal static const VERSION:String = "3.3.0.4852"; public static function drawRoundRectComplex(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number):void{ var _local10:Number = (_arg2 + _arg4); var _local11:Number = (_arg3 + _arg5); var _local12:Number = ((_arg4 < _arg5)) ? (_arg4 * 2) : (_arg5 * 2); _arg6 = ((_arg6 < _local12)) ? _arg6 : _local12; _arg7 = ((_arg7 < _local12)) ? _arg7 : _local12; _arg8 = ((_arg8 < _local12)) ? _arg8 : _local12; _arg9 = ((_arg9 < _local12)) ? _arg9 : _local12; var _local13:Number = (_arg9 * 0.292893218813453); var _local14:Number = (_arg9 * 0.585786437626905); _arg1.moveTo(_local10, (_local11 - _arg9)); _arg1.curveTo(_local10, (_local11 - _local14), (_local10 - _local13), (_local11 - _local13)); _arg1.curveTo((_local10 - _local14), _local11, (_local10 - _arg9), _local11); _local13 = (_arg8 * 0.292893218813453); _local14 = (_arg8 * 0.585786437626905); _arg1.lineTo((_arg2 + _arg8), _local11); _arg1.curveTo((_arg2 + _local14), _local11, (_arg2 + _local13), (_local11 - _local13)); _arg1.curveTo(_arg2, (_local11 - _local14), _arg2, (_local11 - _arg8)); _local13 = (_arg6 * 0.292893218813453); _local14 = (_arg6 * 0.585786437626905); _arg1.lineTo(_arg2, (_arg3 + _arg6)); _arg1.curveTo(_arg2, (_arg3 + _local14), (_arg2 + _local13), (_arg3 + _local13)); _arg1.curveTo((_arg2 + _local14), _arg3, (_arg2 + _arg6), _arg3); _local13 = (_arg7 * 0.292893218813453); _local14 = (_arg7 * 0.585786437626905); _arg1.lineTo((_local10 - _arg7), _arg3); _arg1.curveTo((_local10 - _local14), _arg3, (_local10 - _local13), (_arg3 + _local13)); _arg1.curveTo(_local10, (_arg3 + _local14), _local10, (_arg3 + _arg7)); _arg1.lineTo(_local10, (_local11 - _arg9)); } } }//package mx.utils
Section 209
//NameUtil (mx.utils.NameUtil) package mx.utils { import mx.core.*; import flash.display.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.3.0.4852"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = _arg1; try { o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; } catch(e:SecurityError) { }; return (result); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 210
//StringUtil (mx.utils.StringUtil) package mx.utils { import mx.core.*; public class StringUtil { mx_internal static const VERSION:String = "3.3.0.4852"; public static function trim(_arg1:String):String{ if (_arg1 == null){ return (""); }; var _local2:int; while (isWhitespace(_arg1.charAt(_local2))) { _local2++; }; var _local3:int = (_arg1.length - 1); while (isWhitespace(_arg1.charAt(_local3))) { _local3--; }; if (_local3 >= _local2){ return (_arg1.slice(_local2, (_local3 + 1))); }; return (""); } public static function isWhitespace(_arg1:String):Boolean{ switch (_arg1){ case " ": case "\t": case "\r": case "\n": case "\f": return (true); default: return (false); }; } public static function substitute(_arg1:String, ... _args):String{ var _local4:Array; if (_arg1 == null){ return (""); }; var _local3:uint = _args.length; if ((((_local3 == 1)) && ((_args[0] is Array)))){ _local4 = (_args[0] as Array); _local3 = _local4.length; } else { _local4 = _args; }; var _local5:int; while (_local5 < _local3) { _arg1 = _arg1.replace(new RegExp((("\\{" + _local5) + "\\}"), "g"), _local4[_local5]); _local5++; }; return (_arg1); } public static function trimArrayElements(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:int; var _local5:int; if (((!((_arg1 == ""))) && (!((_arg1 == null))))){ _local3 = _arg1.split(_arg2); _local4 = _local3.length; _local5 = 0; while (_local5 < _local4) { _local3[_local5] = StringUtil.trim(_local3[_local5]); _local5++; }; if (_local4 > 0){ _arg1 = _local3.join(_arg2); }; }; return (_arg1); } } }//package mx.utils
Section 211
//GameScreen (screens.GameScreen) package screens { import flash.events.*; import core.gui.*; import balls.*; import flash.display.*; import effects.*; import flash.geom.*; import flash.text.*; import mochi.as3.*; import flash.utils.*; import core.system.*; import levels.*; import bonuses.*; public class GameScreen extends Sprite implements IDestroyObject { private var bPauseNow:Boolean;// = false private var level_fly_bonuses:Array; private var paused_title:TextField; private var exit_dialog:YesOrNoDialog; private var platform:Platform; private var pause_after_loss:Timer; public var bar:String;// = "GameScreen_bar" private var game_over_now:Boolean;// = false private var button_pause:game_button_pause; private var level_complete_now:Boolean;// = false private var score_text_field:TextField; private var current_level:int;// = -1 private var button_menu:game_button_menu; private var level_balls:Array; private var user_balls:Array; private var level_configurer:IBubblenoidLevel; private var pause_after_win:Timer; private var button_sound_off:game_button_sound_off; private var button_sound_on:game_button_sound_on; public static const START_LEVEL_BALLS_OFFSET_Y:int = 70; public static const UP_PLANE_WIDTH:int = 24; public static const RIGHT_PLANE_WIDTH:int = 5; public static const LEFT_PLANE_WIDTH:int = 5; public static const START_LEVEL_BALLS_OFFSET_X:int = 70; public function GameScreen(_arg1:int){ var _local4:game_score_title; score_text_field = new TextField(); level_balls = new Array(); level_fly_bonuses = new Array(); user_balls = new Array(); super(); var _local2:game_back = new game_back(); _local2.mouseEnabled = false; addChild(_local2); _local2.gotoAndStop((1 + (_arg1 % 5))); var _local3:game_level_title = new game_level_title(); addChild(_local3); _local3.x = 10; _local3.y = 4; _local4 = new game_score_title(); addChild(_local4); _local4.x = 153; _local4.y = 4; platform = new Platform(Main.getThisPointer()); addChild(platform); var _local5:neuropol_font = new neuropol_font(); var _local6:TextFormat = new TextFormat(_local5.fontName, 15, 0xFFFFFF); _local6.align = TextFormatAlign.RIGHT; score_text_field.defaultTextFormat = _local6; score_text_field.text = Main.getThisPointer().getTotalPoints().toString(); score_text_field.embedFonts = true; score_text_field.selectable = false; score_text_field.x = (171 + 60); score_text_field.y = (1 + 3); addChild(score_text_field); button_sound_off = new game_button_sound_off(); button_sound_off.x = 345; button_sound_off.y = 4; addChild(button_sound_off); button_sound_off.visible = true; button_sound_off.addEventListener(MouseEvent.CLICK, eventButtonSoundOff); button_sound_on = new game_button_sound_on(); button_sound_on.x = 345; button_sound_on.y = 4; addChild(button_sound_on); button_sound_on.visible = false; button_pause = new game_button_pause(); button_pause.x = 421; button_pause.y = 4; addChild(button_pause); button_pause.addEventListener(MouseEvent.CLICK, eventButtonPause); button_menu = new game_button_menu(); button_menu.x = 511; button_menu.y = 4; addChild(button_menu); button_menu.addEventListener(MouseEvent.CLICK, eventButtonMenu); addEventListener(Event.ENTER_FRAME, render); Main.sound_master.play(SfxStorage.SFXID_MUSIC_GAME, true); MochiEvents.startPlay(); } public function addScore(_arg1:int):void{ score_text_field.text = Main.getThisPointer().addPoints(_arg1).toString(); } private function eventPauseAfterLoss(_arg1:TimerEvent):void{ pause_after_loss.removeEventListener(TimerEvent.TIMER, eventPauseAfterLoss); pause_after_loss.stop(); pause_after_loss = null; if (game_over_now){ Main.getThisPointer().show_mainmenu_screen((Main.getThisPointer().getTotalPoints() > 0)); } else { platform.setWidthMode(Platform.WIDTH_MODE_NORMAL); platform.setStickyMode(false); userBallsSetHeavyMode(false); userBallsSetMoveMode(MoveBall.MOVE_MODE_NORMAL); platform.visible = true; userBallsSetPause(true); userBallsSetVisible(true); platform.attachBall(user_balls[0]); platform.setPause(false); button_menu.mouseEnabled = true; button_pause.mouseEnabled = true; button_sound_off.mouseEnabled = true; button_sound_on.mouseEnabled = true; }; } private function clearDying():void{ var _local2:int; var _local1:int = (level_balls.length - 1); while (_local1 >= 0) { if (((level_balls[_local1]) && ((level_balls[_local1].getState() == StaticBall.STATE_MUST_DIE)))){ level_balls[_local1].dieTasks(this); _local2 = 0; while (_local2 < user_balls.length) { if (level_balls[_local1] == user_balls[_local2]){ user_balls.splice(_local2, 1); }; _local2++; }; removeChild(level_balls[_local1]); level_balls[_local1].destroy(); level_balls[_local1] = null; }; _local1--; }; } private function eventExitDlgYesPressed(_arg1:YesOrNoDialogEvent):void{ Main.sound_master.stop(SfxStorage.SFXID_MUSIC_GAME); Main.getThisPointer().show_mainmenu_screen(); } private function eventExitDlgNoPressed(_arg1:YesOrNoDialogEvent):void{ removeChild(exit_dialog); exit_dialog = null; button_menu.mouseEnabled = true; button_sound_off.mouseEnabled = true; button_sound_on.mouseEnabled = true; button_pause.mouseEnabled = true; setPause(false); } public function userBallsSetMoveMode(_arg1:int):void{ var _local2:int; _local2 = 0; while (_local2 < user_balls.length) { user_balls[_local2].setMoveMode(_arg1); _local2++; }; } private function render(_arg1:Event):void{ if (!this.parent){ return; }; clearDying(); level_configurer.updateLevelBalls(level_balls); testFlyBonuses(platform, level_fly_bonuses); processNextStateGame(user_balls, level_balls); } public function getUserBalls():Array{ return (user_balls); } private function getBallsMoving():int{ var _local1:int; var _local2:int; while (_local2 < level_balls.length) { if (((level_balls[_local2]) && ((level_balls[_local2] is MoveBall)))){ return (1); }; _local2++; }; return (_local1); } public function userBallsSetPause(_arg1:Boolean):void{ var _local2:int; _local2 = 0; while (_local2 < user_balls.length) { user_balls[_local2].setPause(_arg1); _local2++; }; } public function pushUserBall(_arg1:MoveBall):void{ _arg1.setPlatform(platform); _arg1.setBallsInfo(level_balls); user_balls.push(_arg1); addChild(_arg1); level_balls.push(_arg1); } private function setupBallsInfo(_arg1:Array):void{ var _local2:int; _local2 = 0; while (_local2 < _arg1.length) { if ((_arg1[_local2] is MoveBall)){ _arg1[_local2].setPlatform(platform); _arg1[_local2].setBallsInfo(_arg1); }; addChild(_arg1[_local2]); _local2++; }; } public function userBallsSetHeavyMode(_arg1:Boolean):void{ var _local2:int; _local2 = 0; while (_local2 < user_balls.length) { user_balls[_local2].setHeavyMode(_arg1); _local2++; }; } public function setPause(_arg1:Boolean):void{ bPauseNow = _arg1; var _local2:int; while (_local2 < level_balls.length) { if (((level_balls[_local2]) && ((level_balls[_local2] is MoveBall)))){ level_balls[_local2].setPause(_arg1); }; _local2++; }; platform.setPause(_arg1); if (_arg1){ Main.sound_master.pause(SfxStorage.SFXID_MUSIC_GAME); } else { Main.sound_master.play(SfxStorage.SFXID_MUSIC_GAME, true); }; level_configurer.setPause(_arg1); _local2 = 0; while (_local2 < level_fly_bonuses.length) { level_fly_bonuses[_local2].setPause(_arg1); _local2++; }; } public function addLife():void{ Main.getThisPointer().addLife(); } private function processNextStateGame(_arg1:Array, _arg2:Array):void{ var _local11:MoveBall; var _local12:int; var _local13:FlyFadeText; var _local14:TextFormat; var _local15:int; var _local16:String; var _local17:FlyFadeText; var _local18:TextFormat; var _local19:int; var _local20:int; if (level_complete_now){ return; }; var _local3:neuropol_font = new neuropol_font(); var _local4:int; while ((((_local4 < _arg1.length)) && ((_arg1.length == 1)))) { _local11 = _arg1[_local4]; if ((((_local11.y > 520)) && (!(level_complete_now)))){ button_menu.mouseEnabled = false; button_sound_off.mouseEnabled = false; button_sound_on.mouseEnabled = false; button_pause.mouseEnabled = false; game_over_now = !(Main.getThisPointer().killLife()); platform.visible = false; platform.setPause(true); _local12 = 0; while (_local12 < level_fly_bonuses.length) { removeChild(level_fly_bonuses[_local12]); level_fly_bonuses[_local12] = null; _local12++; }; level_fly_bonuses.splice(0, level_fly_bonuses.length); _local11.y = 300; _local11.visible = false; _local11.setPause(true); pause_after_loss = new Timer(3000); pause_after_loss.addEventListener(TimerEvent.TIMER, eventPauseAfterLoss); pause_after_loss.start(); if (game_over_now){ _local13 = new FlyFadeText("GAME OVER", new Point(220, 170), new Point(0, 0)); addChild(_local13); _local14 = new TextFormat(_local3.fontName, 40, 0xFFFFFF); _local13.setTextFormat(_local14); _local13.embedFonts = true; _local13.setTimeShowText(2500); _local13.setScreenOrientation(FlyFadeText.CENTERED); Main.sound_master.stop(SfxStorage.SFXID_MUSIC_GAME); Main.sound_master.play(SfxStorage.SFXID_SOUND_GAME_OVER); } else { Main.sound_master.play(SfxStorage.SFXID_SOUND_KILL_BALL); _local15 = Main.getThisPointer().getLifes(); _local16 = ("Last " + _local15.toString()); if (_local15 == 1){ _local16 = (_local16 + " life"); } else { _local16 = (_local16 + " lifes"); }; _local17 = new FlyFadeText(_local16, new Point(250, 200), new Point(0, 0)); _local18 = new TextFormat(_local3.fontName, 30, 0xFFFFFF); _local17.setTextFormat(_local18); _local17.setTimeShowText(1500); _local17.embedFonts = true; _local17.setScreenOrientation(FlyFadeText.CENTERED); addChild(_local17); }; return; }; _local4++; }; var _local5:int; while (_local5 < _arg2.length) { if (((_arg2[_local5]) && ((((((_arg2[_local5] is StaticBall)) && (!((_arg2[_local5] is StoneBall))))) || ((_arg2[_local5] is MoveBall)))))){ _local19 = 0; _local20 = 0; while (_local20 < _arg1.length) { if (_arg2[_local5] != _arg1[_local20]){ _local19++; }; _local20++; }; if (_local19 == _arg1.length){ return; }; }; _local5++; }; level_complete_now = true; platform.visible = false; platform.setPause(true); button_menu.mouseEnabled = false; button_sound_off.mouseEnabled = false; button_sound_on.mouseEnabled = false; button_pause.mouseEnabled = false; var _local6:int; while (_local6 < _arg1.length) { _arg1[_local6].y = 300; _arg1[_local6].visible = false; _arg1[_local6].setPause(true); _local6++; }; pause_after_win = new Timer(2500); pause_after_win.addEventListener(TimerEvent.TIMER, eventPauseAfterWin); pause_after_win.start(); var _local7:FlyFadeText = new FlyFadeText("VERY GOOD!", new Point(220, 170), new Point(0, 0)); addChild(_local7); var _local8:TextFormat = new TextFormat(_local3.fontName, 40, 0xFFFFFF); _local7.setTextFormat(_local8); _local7.setTimeShowText(1000); _local7.embedFonts = true; _local7.setScreenOrientation(FlyFadeText.CENTERED); var _local9:FlyFadeText = new FlyFadeText("LEVEL COMPLETED", new Point(180, 220), new Point(0, 0)); addChild(_local9); var _local10:TextFormat = new TextFormat(_local3.fontName, 40, 0xFFFFFF); _local9.setTextFormat(_local10); _local9.setTimeShowText(1000); _local9.embedFonts = true; _local9.setScreenOrientation(FlyFadeText.CENTERED); Main.sound_master.play(SfxStorage.SFXID_SOUND_LEVEL_COMPLETED); } public function setLevel(_arg1:int):void{ var _local2:int = LevelSelectScreen.lni[_arg1]; switch (_local2){ case 0: level_configurer = new Level29(); break; case 1: level_configurer = new Level28(); break; case 2: level_configurer = new Level04(); break; case 3: level_configurer = new Level08(); break; case 4: level_configurer = new Level09(); break; case 5: level_configurer = new Level10(); break; case 6: level_configurer = new Level12(); break; case 7: level_configurer = new Level13(); break; case 8: level_configurer = new Level14(); break; case 9: level_configurer = new Level15(); break; case 10: level_configurer = new Level16(); break; case 11: level_configurer = new Level17(); break; case 12: level_configurer = new Level18(); break; case 13: level_configurer = new Level19(); break; case 14: level_configurer = new Level20(); break; case 15: level_configurer = new Level21(); break; case 16: level_configurer = new Level22(); break; case 17: level_configurer = new Level23(); break; case 18: level_configurer = new Level24(); break; case 19: level_configurer = new Level25(); break; case 20: level_configurer = new Level27(); break; default: level_configurer = new Level01(); break; }; current_level = _local2; var _local3:TextField = new TextField(); var _local4:neuropol_font = new neuropol_font(); var _local5:TextFormat = new TextFormat(_local4.fontName, 20, 0xFFFFFF); _local5.align = TextFormatAlign.CENTER; _local3.defaultTextFormat = _local5; _local3.embedFonts = true; _local3.text = (current_level + 1).toString(); _local3.selectable = false; _local3.autoSize = "center"; _local3.x = ((71 - 10) + 45); _local3.y = (1 + 1); addChild(_local3); level_configurer.setupLevelBalls(level_balls); setupBonuses(level_balls); var _local6:MoveBall = new MoveBall(0, 0, -1, true); user_balls.push(_local6); level_balls.push(_local6); _local6.setPause(true); platform.attachBall(_local6); setupBallsInfo(level_balls); addChild(level_configurer.createTitle()); } private function eventButtonSoundOn(_arg1:MouseEvent):void{ Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); button_sound_on.mouseEnabled = false; button_sound_on.visible = false; button_sound_on.removeEventListener(MouseEvent.CLICK, eventButtonSoundOn); button_sound_off.mouseEnabled = true; button_sound_off.visible = true; button_sound_off.addEventListener(MouseEvent.CLICK, eventButtonSoundOff); Main.sound_master.setEnable(true); Main.sound_master.play(SfxStorage.SFXID_MUSIC_GAME); } private function setupBonuses(_arg1:Array):void{ var _local5:int; var _local7:Number; var _local2:int; var _local3:int; var _local4:Array = new Array(); _local5 = 0; while (_local5 < _arg1.length) { if (((((_arg1[_local5]) && (!((_arg1[_local5] as StoneBall))))) && (!(_arg1[_local5].bonusAttached())))){ _local2++; _local4.push(_arg1[_local5]); }; _local5++; }; _local3 = Math.round((_local2 / 5)); if (_local3 < 1){ _local3 = 1; }; var _local6:int = Math.round((Math.random() * 5)); _local5 = _local6; while (_local5 < _local4.length) { _local7 = Math.random(); if (_local7 < 0.4){ _local4[_local5].attachBonus(new MegaPointsBonus(300)); } else { if (_local7 < 0.6){ if (Math.random() < 0.5){ _local4[_local5].attachBonus(new SmartPlatformBonus()); } else { _local4[_local5].attachBonus(new LongPlatformBonus()); }; } else { if (_local7 < 0.75){ if (Math.random() < 0.5){ _local4[_local5].attachBonus(new StickyPlatformBonus()); } else { _local4[_local5].attachBonus(new SlowlyBallBonus()); }; } else { if (_local7 < 0.8){ _local4[_local5].attachBonus(new HeavyBallBonus()); } else { if (_local7 < 0.9){ _local4[_local5].attachBonus(new TripleBallBonus()); } else { _local4[_local5].attachBonus(new LifeBonus()); }; }; }; }; }; _local5 = (_local5 + 5); }; } private function testFlyBonuses(_arg1:Platform, _arg2:Array):void{ var _local3:int; _local3 = 0; while (_local3 < _arg2.length) { if (platform.hitTestObject(_arg2[_local3])){ _arg2[_local3].Action(this); removeChild(_arg2[_local3]); _arg2[_local3] = null; _arg2.splice(_local3, 1); _local3--; } else { if (_arg2[_local3].dieNow()){ removeChild(_arg2[_local3]); _arg2[_local3] = null; _arg2.splice(_local3, 1); _local3--; }; }; _local3++; }; } public function refreshUpPanel():void{ } public function pushFlyingBonus(_arg1:IBubblenoidBonus):void{ level_fly_bonuses.push(_arg1); addChild((_arg1 as Sprite)); } private function eventPauseAfterWin(_arg1:TimerEvent):void{ pause_after_win.removeEventListener(TimerEvent.TIMER, eventPauseAfterWin); pause_after_win.stop(); pause_after_win = null; Main.getThisPointer().setLevelFlag(current_level, Main.LEVEL_FLAG_COMPLETE); Main.getThisPointer().show_levels_screen(current_level, true); } public function addPoints(_arg1:int):void{ Main.getThisPointer().addPoints(_arg1); } private function setupDetonateBallsInfo(_arg1:Array):void{ var _local2:int; var _local3:int; _local2 = 0; while (_local2 < _arg1.length) { if (((((!(_arg1[_local2])) || ((_arg1[_local2] is MoveBall)))) || ((_arg1[_local2] is ColorAutoChangedBall)))){ } else { _arg1[_local2].setBallsInfo(_arg1); }; _local2++; }; } public function userBallsSetVisible(_arg1:Boolean):void{ var _local2:int; _local2 = 0; while (_local2 < user_balls.length) { user_balls[_local2].visible = _arg1; _local2++; }; } public function getPlatform():Platform{ return (platform); } private function eventButtonMenu(_arg1:MouseEvent):void{ Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); button_menu.mouseEnabled = false; button_sound_off.mouseEnabled = false; button_sound_on.mouseEnabled = false; button_pause.mouseEnabled = false; setPause(true); exit_dialog = new YesOrNoDialog(new Array(new dialog_exit(), new dialog_exit_button_ok(), new dialog_exit_button_cancel()), new Point(107, 106), new Point(86, 276), new Point(208, 276)); addChild(exit_dialog); exit_dialog.addEventListener(YesOrNoDialogEvent.NO_PRESSED, eventExitDlgNoPressed); exit_dialog.addEventListener(YesOrNoDialogEvent.YES_PRESSED, eventExitDlgYesPressed); } private function eventButtonSoundOff(_arg1:MouseEvent):void{ Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); button_sound_off.mouseEnabled = false; button_sound_off.visible = false; button_sound_off.removeEventListener(MouseEvent.CLICK, eventButtonSoundOff); button_sound_on.mouseEnabled = true; button_sound_on.visible = true; button_sound_on.addEventListener(MouseEvent.CLICK, eventButtonSoundOn); Main.sound_master.stop(SfxStorage.SFXID_MUSIC_GAME); Main.sound_master.setEnable(false); } private function eventButtonPause(_arg1:MouseEvent):void{ var _local2:neuropol_font; Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); setPause(!(bPauseNow)); button_menu.mouseEnabled = !(bPauseNow); button_sound_off.mouseEnabled = !(bPauseNow); button_sound_on.mouseEnabled = !(bPauseNow); if (bPauseNow){ paused_title = new TextField(); paused_title.x = 235; paused_title.y = (200 - 60); paused_title.text = "PAUSE"; paused_title.autoSize = "left"; paused_title.selectable = false; _local2 = new neuropol_font(); paused_title.setTextFormat(new TextFormat(_local2.fontName, 40, 0xFFFFFF, true)); paused_title.embedFonts = true; addChild(paused_title); } else { removeChild(paused_title); paused_title = null; }; } public function destroy():void{ var _local1:int; MochiEvents.endPlay(); Main.sound_master.stop(SfxStorage.SFXID_MUSIC_GAME); removeEventListener(Event.ENTER_FRAME, render); _local1 = 0; while (_local1 < level_balls.length) { if (level_balls[_local1] != null){ removeChild(level_balls[_local1]); level_balls[_local1].destroy(); level_balls[_local1] = null; }; _local1++; }; level_balls = null; level_configurer = null; removeChild(platform); platform = null; removeChild(score_text_field); score_text_field = null; removeChild(button_sound_off); button_sound_off = null; removeChild(button_sound_on); button_sound_on = null; removeChild(button_menu); button_menu = null; removeChild(button_pause); button_pause = null; } } }//package screens
Section 212
//GameScreen_bar (screens.GameScreen_bar) package screens { import mx.core.*; public class GameScreen_bar extends FontAsset { } }//package screens
Section 213
//LevelSelectScreen (screens.LevelSelectScreen) package screens { import flash.events.*; import flash.display.*; import effects.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import com.hybrid.ui.*; import flash.net.*; public class LevelSelectScreen extends Sprite { private var winner_timer:Timer; public var level_enabled:Array; private var logo_button:button_logo_keygames_select_level; private var levels_states:Array; private var button_back:select_level_button_back; private var level_button_rects:Array; private var levels_buttons:Array; public static var lni:Array = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20); public static var tooltip_object:ToolTip; public static var level_names:Array = new Array("Rolling stones", "Old pendulum", "Windmills", "Hypnosis", "Flying platform", "Disco Lights", "UFO Patrol", "Cubes to circles", "Heart circle", "Related circles", "Chinese Wall", "Swing", "Right arrows", "Gates", "Live protection", "Magnetic points", "Crazy face", "Collapsoid", "Circular protection", "Magic carpet", "Who's next?"); public function LevelSelectScreen(_arg1:Array, _arg2:int, _arg3:Boolean=false){ var lvl_states = _arg1; var lvl_complete = _arg2; var music_start = _arg3; level_enabled = new Array(); level_button_rects = new Array(); levels_buttons = new Array(Main.COUNT_LEVELS); super(); levels_states = lvl_states; var back:select_level_back = new select_level_back(); addChild(back); button_back = new select_level_button_back(); addChild(button_back); button_back.x = 58; button_back.y = 441; button_back.addEventListener(MouseEvent.CLICK, pressButtonBack); var button_back_text:select_level_button_back_text = new select_level_button_back_text(); button_back_text.x = 124; button_back_text.y = 447; button_back_text.mouseEnabled = false; addChild(button_back_text); setupBalls(); addEventListener(Event.ENTER_FRAME, render); setupLevelButtons(lvl_states, lvl_complete); if (music_start){ Main.sound_master.play(SfxStorage.SFXID_MUSIC_MENU, true); }; addEventListener(Event.ADDED_TO_STAGE, function ():void{ var _local2:TextFormat; removeEventListener(Event.ADDED_TO_STAGE, arguments.callee); logo_button = new button_logo_keygames_select_level(); logo_button.x = 130; logo_button.y = -15; addChild(logo_button); logo_button.addEventListener(MouseEvent.CLICK, eventClickLogoButton); if (!allLevelsCompleted()){ _local2 = new TextFormat(); _local2.size = 20; }; }); } private function setupLevelButtons(_arg1:Array, _arg2:int):void{ var _local3:int; var _local5:level_select_button_level; var _local6:TextField; var _local7:neuropol_font; var _local8:TextFormat; var _local9:level_select_button_level; var _local10:TextField; var _local11:neuropol_font; var _local12:TextFormat; var _local13:LevelCompleteCheck; var _local14:FlyFadeText; var _local15:TextFormat; var _local16:FlyFadeText; var _local17:TextFormat; _local3 = 0; while (_local3 < levels_buttons.length) { if (levels_buttons[_local3] != null){ removeChild(levels_buttons[_local3]); levels_buttons[_local3] = null; }; _local3++; }; var _local4:int; _local3 = 0; while (_local3 < levels_buttons.length) { if (_arg1[_local3] == Main.LEVEL_FLAG_DISABLE){ _local9 = new level_select_button_level(); _local9.x = (58 + ((_local3 % 7) * 73)); _local9.y = (230 + (Math.round(((_local3 / 7) - 0.5)) * 73)); _local9.enabled = false; _local9.addEventListener(MouseEvent.MOUSE_OVER, eventMouseOver); addChild(_local9); addChild(_local9); levels_buttons[_local3] = _local9; _local10 = new TextField(); _local11 = new neuropol_font(); _local12 = new TextFormat(_local11.fontName, 25); _local12.kerning = true; _local12.align = TextFormatAlign.CENTER; _local12.color = 0x777777; _local10.embedFonts = true; _local10.defaultTextFormat = _local8; _local10.selectable = false; _local10.autoSize = "center"; _local10.x = ((_local9.x + (_local9.width / 2)) - 3); _local10.y = (_local9.y + 10); _local10.text = (_local3 + 1).toString(); _local10.mouseEnabled = false; _local10.alpha = 0.5; addChild(_local10); level_button_rects.push(new Rectangle(_local9.x, _local9.y, _local9.width, _local9.height)); level_enabled.push(false); } else { _local5 = new level_select_button_level(); _local5.x = (58 + ((_local3 % 7) * 73)); _local5.y = (230 + (Math.round(((_local3 / 7) - 0.5)) * 73)); addChild(_local5); levels_buttons[_local3] = _local5; _local6 = new TextField(); _local7 = new neuropol_font(); _local8 = new TextFormat(_local7.fontName, 25); _local8.kerning = true; _local8.align = TextFormatAlign.CENTER; _local8.color = 0xFFFFFF; _local6.embedFonts = true; _local6.defaultTextFormat = _local8; _local6.selectable = false; _local6.autoSize = "center"; _local6.x = ((_local5.x + (_local5.width / 2)) - 3); _local6.y = (_local5.y + 10); _local6.text = (_local3 + 1).toString(); _local6.mouseEnabled = false; addChild(_local6); level_button_rects.push(new Rectangle(_local5.x, _local5.y, _local5.width, _local5.height)); level_enabled.push(true); _local5.addEventListener(MouseEvent.MOUSE_OVER, eventMouseOver); _local5.addEventListener(MouseEvent.CLICK, eventLevelButton); if (_arg1[_local3] == Main.LEVEL_FLAG_COMPLETE){ _local5.mouseEnabled = false; _local13 = new LevelCompleteCheck((_local3 == _arg2)); addChild(_local13); _local13.x = _local5.x; _local13.y = _local5.y; _local4++; }; }; _local3++; }; if (_local4 == Main.COUNT_LEVELS){ _local3 = 0; while (_local3 < Main.COUNT_LEVELS) { levels_buttons[_local3].mouseEnabled = false; _local3++; }; if (button_back){ button_back.mouseEnabled = false; button_back.removeEventListener(MouseEvent.CLICK, pressButtonBack); }; winner_timer = new Timer(7000, 1); winner_timer.addEventListener(TimerEvent.TIMER, eventTimerWinner); winner_timer.start(); _local14 = new FlyFadeText("CONGRATULATIONS!", new Point((100 + 70), ((200 - 50) + 70)), new Point(0, 0)); addChild(_local14); _local15 = new TextFormat(_local7.fontName, 40); _local14.setTextFormat(_local15); _local14.setTimeShowText(6500); _local14.setScreenOrientation(FlyFadeText.CENTERED); _local14.embedFonts = true; _local16 = new FlyFadeText("GAME COMPLETED", new Point(((100 + 70) + 10), ((250 - 50) + 70)), new Point(0, 0)); addChild(_local16); _local17 = new TextFormat(_local7.fontName, 40); _local16.setTextFormat(_local17); _local16.setTimeShowText(6500); _local16.embedFonts = true; _local16.setScreenOrientation(FlyFadeText.CENTERED); addChild(new SalutController(6000)); Main.sound_master.stop(SfxStorage.SFXID_MUSIC_GAME); Main.sound_master.play(SfxStorage.SFXID_SOUND_GAME_WIN); if (tooltip_object){ tooltip_object.hide(); tooltip_object = null; }; }; } private function clearBalls():void{ var _local2:int; var _local1:Array = Main.getThisPointer().getShowBalls(); _local2 = 0; while (_local2 < _local1.length) { removeChild(_local1[_local2]); _local2++; }; } private function render(_arg1:Event):void{ Main.getThisPointer().getLevelCofigurer().updateLevelBalls(Main.getThisPointer().getShowBalls()); } private function setupBalls():void{ var _local2:int; var _local1:Array = Main.getThisPointer().getShowBalls(); _local2 = 0; while (_local2 < _local1.length) { addChild(_local1[_local2]); _local2++; }; } private function pressButtonBack(_arg1:MouseEvent):void{ Main.getThisPointer().show_mainmenu_screen(); } private function eventMouseOver(_arg1:MouseEvent):void{ var _local2:int; if (((!(level_button_rects)) || (!(tooltip_object)))){ return; }; var _local3:Boolean; _local2 = 0; while (_local2 < level_button_rects.length) { if (level_button_rects[_local2].contains(_arg1.stageX, _arg1.stageY)){ tooltip_object.show(this, level_names[_local2], (level_enabled[_local2]) ? "open" : "disabled"); _local3 = true; break; }; _local2++; }; } private function eventLevelButton(_arg1:Event):void{ _arg1.stopPropagation(); var _local2:int; while (_local2 < levels_buttons.length) { if (levels_buttons[_local2] == _arg1.currentTarget){ Main.getThisPointer().show_game_screen(getLevel(_local2)); Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); Main.sound_master.stop(SfxStorage.SFXID_MUSIC_MENU); break; }; _local2++; }; } public function pressButtonPlay(_arg1:MouseEvent):void{ Main.getThisPointer().show_game_screen(0); } private function eventTimerWinner(_arg1:TimerEvent):void{ winner_timer.stop(); winner_timer = null; Main.sound_master.stop(SfxStorage.SFXID_SOUND_GAME_WIN); if (tooltip_object){ tooltip_object.hide(); tooltip_object = null; }; Main.getThisPointer().show_mainmenu_screen((Main.getThisPointer().getTotalPoints() > 0)); } private function eventClickLogoButton(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.keygames.com/?utm_source=games&utm_medium=exclusives&utm_campaign=robonoid"); navigateToURL(_local2, "_blank"); } public function destroy(_arg1:Boolean):void{ var _local2:int; removeEventListener(Event.ENTER_FRAME, render); clearBalls(); removeChild(button_back); _local2 = 0; while (_local2 < levels_buttons.length) { if (levels_buttons[_local2] != null){ levels_buttons[_local2].removeEventListener(MouseEvent.MOUSE_OVER, eventMouseOver); if (level_enabled[_local2]){ levels_buttons[_local2].removeEventListener(MouseEvent.CLICK, eventLevelButton, true); }; removeChild(levels_buttons[_local2]); levels_buttons[_local2] = null; }; _local2++; }; level_button_rects.splice(0, level_button_rects.length); levels_buttons = null; if (tooltip_object){ tooltip_object.hide(); tooltip_object = null; }; } private function allLevelsCompleted():Boolean{ var _local1:int; var _local2:int; _local1 = 0; while (_local1 < Main.COUNT_LEVELS) { if (levels_states[_local1] == Main.LEVEL_FLAG_COMPLETE){ _local2++; }; _local1++; }; return ((_local2 == Main.COUNT_LEVELS)); } public static function getLevel(_arg1:int):int{ return (lni[_arg1]); } public static function getLevelName(_arg1:int):String{ return (level_names[lni[_arg1]]); } } }//package screens
Section 214
//MainMenuScreen (screens.MainMenuScreen) package screens { import flash.events.*; import flash.display.*; import mochi.as3.*; import caurina.transitions.*; import core.system.*; import flash.net.*; public class MainMenuScreen extends Sprite implements IDestroyObject { private var logo_button:button_logo_keygames; private var button_start:mainmenu_button_play; private var button_moregames:mainmenu_button_moregames; public function MainMenuScreen(){ Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); var _local1:mainmenu_back = new mainmenu_back(); addChild(_local1); logo_button = new button_logo_keygames(); logo_button.x = (100 + 25); logo_button.y = 400; addChild(logo_button); logo_button.addEventListener(MouseEvent.CLICK, eventClickLogoButton); button_start = new mainmenu_button_play(); addChild(button_start); button_start.x = 123; button_start.y = (252 + 400); button_start.addEventListener(MouseEvent.CLICK, pressButtonPlay); Tweener.addTween(button_start, {y:252, time:0.3, onComplete:eventEndMoveButtonPlay}); button_moregames = new mainmenu_button_moregames(); addChild(button_moregames); button_moregames.x = 123; button_moregames.y = (299 + 400); button_moregames.addEventListener(MouseEvent.CLICK, pressButtonMoregames); Main.getThisPointer().clearAllLevels(); Main.getThisPointer().setLevelFlag(0, Main.LEVEL_FLAG_ENABLE); Main.getThisPointer().setLevelFlag(1, Main.LEVEL_FLAG_ENABLE); Main.getThisPointer().setLevelFlag(2, Main.LEVEL_FLAG_ENABLE); setupBalls(); addEventListener(Event.ENTER_FRAME, render); if (!Main.sound_master.isPlaying(SfxStorage.SFXID_MUSIC_MENU)){ Main.sound_master.play(SfxStorage.SFXID_MUSIC_MENU, true); }; } public function showRecords(_arg1:int=-1):void{ button_start.mouseEnabled = false; button_moregames.mouseEnabled = false; if (_arg1 != -1){ MochiScores.showLeaderboard({boardID:"4d714984af0c36c2", res:"600x500", clip:Main.getThisPointer(), score:_arg1, onClose:eventCloseHighscores}); } else { MochiScores.showLeaderboard({boardID:"4d714984af0c36c2", res:"600x500", clip:Main.getThisPointer(), onClose:eventCloseHighscores}); }; } private function eventEndMoveButtonHighscores():void{ Tweener.addTween(button_moregames, {y:348, time:0.3}); } private function eventCloseHighscores():void{ button_start.mouseEnabled = true; button_moregames.mouseEnabled = true; } private function pressButtonPlay(_arg1:MouseEvent):void{ Tweener.removeAllTweens(); Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); Main.getThisPointer().show_levels_screen(); } private function eventClickLogoButton(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.keygames.com/?utm_source=games&utm_medium=exclusives&utm_campaign=robonoid"); navigateToURL(_local2, "_blank"); } private function clearBalls():void{ var _local2:int; var _local1:Array = Main.getThisPointer().getShowBalls(); _local2 = 0; while (_local2 < _local1.length) { removeChild(_local1[_local2]); _local2++; }; } private function pressButtonMoregames(_arg1:MouseEvent):void{ Tweener.removeAllTweens(); Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); var _local2:URLRequest = new URLRequest("http://www.keygames.com/?utm_source=games&utm_medium=exclusives&utm_campaign=robonoid"); navigateToURL(_local2, "_blank"); } private function pressButtonHighscores(_arg1:MouseEvent):void{ Tweener.removeAllTweens(); Main.sound_master.play(SfxStorage.SFXID_SOUND_CLICK); showRecords(); } private function render(_arg1:Event):void{ Main.getThisPointer().getLevelCofigurer().updateLevelBalls(Main.getThisPointer().getShowBalls()); } public function setupBalls():void{ var _local2:int; var _local1:Array = Main.getThisPointer().getShowBalls(); _local2 = 0; while (_local2 < _local1.length) { addChild(_local1[_local2]); _local2++; }; } private function eventEndMoveButtonPlay():void{ Tweener.addTween(button_moregames, {y:299, time:0.3}); } public function destroy():void{ removeChild(logo_button); logo_button = null; removeChild(button_start); button_start = null; removeChild(button_moregames); button_moregames = null; clearBalls(); removeEventListener(Event.ENTER_FRAME, render); } } }//package screens
Section 215
//_activeButtonStyleStyle (_activeButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _activeButtonStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".activeButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 216
//_activeTabStyleStyle (_activeTabStyleStyle) package { import mx.core.*; import mx.styles.*; public class _activeTabStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeTabStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".activeTabStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 217
//_alertButtonStyleStyle (_alertButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _alertButtonStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".alertButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".alertButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 734012; }; }; } } }//package
Section 218
//_comboDropdownStyle (_comboDropdownStyle) package { import mx.core.*; import mx.styles.*; public class _comboDropdownStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".comboDropdown"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".comboDropdown", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.shadowDirection = "center"; this.fontWeight = "normal"; this.dropShadowEnabled = true; this.leading = 0; this.backgroundColor = 0xFFFFFF; this.shadowDistance = 1; this.cornerRadius = 0; this.borderThickness = 0; this.paddingLeft = 5; this.paddingRight = 5; }; }; } } }//package
Section 219
//_dataGridStylesStyle (_dataGridStylesStyle) package { import mx.core.*; import mx.styles.*; public class _dataGridStylesStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dataGridStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".dataGridStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 220
//_dateFieldPopupStyle (_dateFieldPopupStyle) package { import mx.core.*; import mx.styles.*; public class _dateFieldPopupStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dateFieldPopup"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".dateFieldPopup", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.dropShadowEnabled = true; this.backgroundColor = 0xFFFFFF; this.borderThickness = 0; }; }; } } }//package
Section 221
//_errorTipStyle (_errorTipStyle) package { import mx.core.*; import mx.styles.*; public class _errorTipStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".errorTip"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".errorTip", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.borderStyle = "errorTipRight"; this.paddingTop = 4; this.borderColor = 13510953; this.color = 0xFFFFFF; this.fontSize = 9; this.shadowColor = 0; this.paddingLeft = 4; this.paddingBottom = 4; this.paddingRight = 4; }; }; } } }//package
Section 222
//_globalStyle (_globalStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _globalStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("global"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("global", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fillColor = 0xFFFFFF; this.kerning = false; this.iconColor = 0x111111; this.textRollOverColor = 2831164; this.horizontalAlign = "left"; this.shadowCapColor = 14015965; this.backgroundAlpha = 1; this.filled = true; this.textDecoration = "none"; this.roundedBottomCorners = true; this.fontThickness = 0; this.focusBlendMode = "normal"; this.fillColors = [0xFFFFFF, 0xCCCCCC, 0xFFFFFF, 0xEEEEEE]; this.horizontalGap = 8; this.borderCapColor = 9542041; this.buttonColor = 7305079; this.indentation = 17; this.selectionDisabledColor = 0xDDDDDD; this.closeDuration = 250; this.embedFonts = false; this.paddingTop = 0; this.letterSpacing = 0; this.focusAlpha = 0.4; this.bevel = true; this.fontSize = 10; this.shadowColor = 0xEEEEEE; this.borderAlpha = 1; this.paddingLeft = 0; this.fontWeight = "normal"; this.indicatorGap = 14; this.focusSkin = HaloFocusRect; this.dropShadowEnabled = false; this.leading = 2; this.borderSkin = HaloBorder; this.fontSharpness = 0; this.modalTransparencyDuration = 100; this.borderThickness = 1; this.backgroundSize = "auto"; this.borderStyle = "inset"; this.borderColor = 12040892; this.fontAntiAliasType = "advanced"; this.errorColor = 0xFF0000; this.shadowDistance = 2; this.horizontalGridLineColor = 0xF7F7F7; this.stroked = false; this.modalTransparencyColor = 0xDDDDDD; this.cornerRadius = 0; this.verticalAlign = "top"; this.textIndent = 0; this.fillAlphas = [0.6, 0.4, 0.75, 0.65]; this.verticalGridLineColor = 14015965; this.themeColor = 40447; this.version = "3.0.0"; this.shadowDirection = "center"; this.modalTransparency = 0.5; this.repeatInterval = 35; this.openDuration = 250; this.textAlign = "left"; this.fontFamily = "Verdana"; this.textSelectedColor = 2831164; this.paddingBottom = 0; this.strokeWidth = 1; this.fontGridFitType = "pixel"; this.horizontalGridLines = false; this.useRollOver = true; this.verticalGridLines = true; this.repeatDelay = 500; this.fontStyle = "normal"; this.dropShadowColor = 0; this.focusThickness = 2; this.verticalGap = 6; this.disabledColor = 11187123; this.paddingRight = 0; this.focusRoundedCorners = "tl tr bl br"; this.borderSides = "left top right bottom"; this.disabledIconColor = 0x999999; this.modalTransparencyBlur = 3; this.color = 734012; this.selectionDuration = 250; this.highlightAlphas = [0.3, 0]; }; }; } } }//package
Section 223
//_headerDateTextStyle (_headerDateTextStyle) package { import mx.core.*; import mx.styles.*; public class _headerDateTextStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDateText"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".headerDateText", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.textAlign = "center"; }; }; } } }//package
Section 224
//_headerDragProxyStyleStyle (_headerDragProxyStyleStyle) package { import mx.core.*; import mx.styles.*; public class _headerDragProxyStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDragProxyStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".headerDragProxyStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 225
//_linkButtonStyleStyle (_linkButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _linkButtonStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".linkButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".linkButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 2; this.paddingLeft = 2; this.paddingBottom = 2; this.paddingRight = 2; }; }; } } }//package
Section 226
//_opaquePanelStyle (_opaquePanelStyle) package { import mx.core.*; import mx.styles.*; public class _opaquePanelStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".opaquePanel"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".opaquePanel", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.borderColor = 0xFFFFFF; this.backgroundColor = 0xFFFFFF; this.headerColors = [0xE7E7E7, 0xD9D9D9]; this.footerColors = [0xE7E7E7, 0xC7C7C7]; this.borderAlpha = 1; }; }; } } }//package
Section 227
//_plainStyle (_plainStyle) package { import mx.core.*; import mx.styles.*; public class _plainStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".plain"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".plain", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 0; this.backgroundColor = 0xFFFFFF; this.backgroundImage = ""; this.horizontalAlign = "left"; this.paddingLeft = 0; this.paddingBottom = 0; this.paddingRight = 0; }; }; } } }//package
Section 228
//_popUpMenuStyle (_popUpMenuStyle) package { import mx.core.*; import mx.styles.*; public class _popUpMenuStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".popUpMenu"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".popUpMenu", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "normal"; this.textAlign = "left"; }; }; } } }//package
Section 229
//_richTextEditorTextAreaStyleStyle (_richTextEditorTextAreaStyleStyle) package { import mx.core.*; import mx.styles.*; public class _richTextEditorTextAreaStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".richTextEditorTextAreaStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".richTextEditorTextAreaStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 230
//_swatchPanelTextFieldStyle (_swatchPanelTextFieldStyle) package { import mx.core.*; import mx.styles.*; public class _swatchPanelTextFieldStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".swatchPanelTextField"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".swatchPanelTextField", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.borderStyle = "inset"; this.borderColor = 14015965; this.highlightColor = 12897484; this.backgroundColor = 0xFFFFFF; this.shadowCapColor = 14015965; this.shadowColor = 14015965; this.paddingLeft = 5; this.buttonColor = 7305079; this.borderCapColor = 9542041; this.paddingRight = 5; }; }; } } }//package
Section 231
//_textAreaHScrollBarStyleStyle (_textAreaHScrollBarStyleStyle) package { import mx.core.*; import mx.styles.*; public class _textAreaHScrollBarStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaHScrollBarStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".textAreaHScrollBarStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 232
//_textAreaVScrollBarStyleStyle (_textAreaVScrollBarStyleStyle) package { import mx.core.*; import mx.styles.*; public class _textAreaVScrollBarStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaVScrollBarStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".textAreaVScrollBarStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 233
//_todayStyleStyle (_todayStyleStyle) package { import mx.core.*; import mx.styles.*; public class _todayStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".todayStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".todayStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 0xFFFFFF; this.textAlign = "center"; }; }; } } }//package
Section 234
//_ToolTipStyle (_ToolTipStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _ToolTipStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("ToolTip"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("ToolTip", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.borderStyle = "toolTip"; this.paddingTop = 2; this.borderColor = 9542041; this.backgroundColor = 16777164; this.borderSkin = ToolTipBorder; this.cornerRadius = 2; this.fontSize = 9; this.shadowColor = 0; this.paddingLeft = 4; this.paddingBottom = 2; this.backgroundAlpha = 0.95; this.paddingRight = 4; }; }; } } }//package
Section 235
//_weekDayStyleStyle (_weekDayStyleStyle) package { import mx.core.*; import mx.styles.*; public class _weekDayStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".weekDayStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".weekDayStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.textAlign = "center"; }; }; } } }//package
Section 236
//_windowStatusStyle (_windowStatusStyle) package { import mx.core.*; import mx.styles.*; public class _windowStatusStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStatus"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".windowStatus", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 0x666666; }; }; } } }//package
Section 237
//_windowStylesStyle (_windowStylesStyle) package { import mx.core.*; import mx.styles.*; public class _windowStylesStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".windowStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 238
//button_logo_keygames (button_logo_keygames) package { import flash.display.*; public dynamic class button_logo_keygames extends SimpleButton { } }//package
Section 239
//button_logo_keygames_select_level (button_logo_keygames_select_level) package { import flash.display.*; public dynamic class button_logo_keygames_select_level extends SimpleButton { } }//package
Section 240
//dialog_exit (dialog_exit) package { import flash.display.*; public dynamic class dialog_exit extends MovieClip { } }//package
Section 241
//dialog_exit_button_cancel (dialog_exit_button_cancel) package { import flash.display.*; public dynamic class dialog_exit_button_cancel extends SimpleButton { } }//package
Section 242
//dialog_exit_button_ok (dialog_exit_button_ok) package { import flash.display.*; public dynamic class dialog_exit_button_ok extends SimpleButton { } }//package
Section 243
//en_US$core_properties (en_US$core_properties) package { import mx.resources.*; public class en_US$core_properties extends ResourceBundle { public function en_US$core_properties(){ super("en_US", "core"); } override protected function getContent():Object{ var _local1:Object = {multipleChildSets_ClassAndInstance:"Multiple sets of visual children have been specified for this component (component definition and component instance).", truncationIndicator:"...", notExecuting:"Repeater is not executing.", versionAlreadyRead:"Compatibility version has already been read.", multipleChildSets_ClassAndSubclass:"Multiple sets of visual children have been specified for this component (base component definition and derived component definition).", viewSource:"View Source", badFile:"File does not exist.", stateUndefined:"Undefined state '{0}'.", versionAlreadySet:"Compatibility version has already been set."}; return (_local1); } } }//package
Section 244
//en_US$skins_properties (en_US$skins_properties) package { import mx.resources.*; public class en_US$skins_properties extends ResourceBundle { public function en_US$skins_properties(){ super("en_US", "skins"); } override protected function getContent():Object{ var _local1:Object = {notLoaded:"Unable to load '{0}'."}; return (_local1); } } }//package
Section 245
//en_US$styles_properties (en_US$styles_properties) package { import mx.resources.*; public class en_US$styles_properties extends ResourceBundle { public function en_US$styles_properties(){ super("en_US", "styles"); } override protected function getContent():Object{ var _local1:Object = {unableToLoad:"Unable to load style({0}): {1}."}; return (_local1); } } }//package
Section 246
//game_back (game_back) package { import flash.display.*; public dynamic class game_back extends MovieClip { } }//package
Section 247
//game_ball_eyes (game_ball_eyes) package { import flash.display.*; public dynamic class game_ball_eyes extends MovieClip { } }//package
Section 248
//game_balls (game_balls) package { import flash.display.*; public dynamic class game_balls extends MovieClip { } }//package
Section 249
//game_bonus (game_bonus) package { import flash.display.*; public dynamic class game_bonus extends MovieClip { } }//package
Section 250
//game_button_menu (game_button_menu) package { import flash.display.*; public dynamic class game_button_menu extends SimpleButton { } }//package
Section 251
//game_button_pause (game_button_pause) package { import flash.display.*; public dynamic class game_button_pause extends SimpleButton { } }//package
Section 252
//game_button_sound_off (game_button_sound_off) package { import flash.display.*; public dynamic class game_button_sound_off extends SimpleButton { } }//package
Section 253
//game_button_sound_on (game_button_sound_on) package { import flash.display.*; public dynamic class game_button_sound_on extends SimpleButton { } }//package
Section 254
//game_level_title (game_level_title) package { import flash.display.*; public dynamic class game_level_title extends MovieClip { } }//package
Section 255
//game_main_ball (game_main_ball) package { import flash.display.*; public dynamic class game_main_ball extends MovieClip { } }//package
Section 256
//game_platform (game_platform) package { import flash.display.*; public dynamic class game_platform extends MovieClip { } }//package
Section 257
//game_score_title (game_score_title) package { import flash.display.*; public dynamic class game_score_title extends MovieClip { } }//package
Section 258
//IBubblenoidBonus (IBubblenoidBonus) package { import screens.*; import flash.geom.*; public interface IBubblenoidBonus { function StartFly(_arg1:Point):void; function Action(_arg1:GameScreen):Boolean; } }//package
Section 259
//IBubblenoidLevel (IBubblenoidLevel) package { import effects.*; public interface IBubblenoidLevel { function updateLevelBalls(_arg1:Array):void; function setPause(_arg1:Boolean):void; function createTitle():FlyFadeText; function setupLevelBalls(_arg1:Array):void; } }//package
Section 260
//level_select_button_level (level_select_button_level) package { import flash.display.*; public dynamic class level_select_button_level extends SimpleButton { } }//package
Section 261
//loader_back (loader_back) package { import flash.display.*; public dynamic class loader_back extends MovieClip { } }//package
Section 262
//loading_text_back (loading_text_back) package { import flash.display.*; public dynamic class loading_text_back extends MovieClip { } }//package
Section 263
//Main (Main) package { import flash.events.*; import screens.*; import flash.display.*; import mochi.as3.*; import levels.*; import core.sound.*; import flash.net.*; public dynamic class Main extends MovieClip { private var level_select_screen:LevelSelectScreen; private var game_screen:GameScreen; private var balls:Array; private var level_configurer:IBubblenoidLevel; private var level_open_flags:Array; private var lifes:int;// = 4 public var mainmenu_screen:MainMenuScreen; private var total_points:int;// = 0 public static const COUNT_LIFES:int = 4; public static const LEVEL_FLAG_DISABLE:int = 0; public static const LEVEL_FLAG_COMPLETE:int = 2; public static const LEVEL_FLAG_ENABLE:int = 1; public static const COUNT_LEVELS:int = 21; private static var sfx_storage:SfxStorage = new SfxStorage(); public static var sound_master:SoundMaster = new SoundMaster(sfx_storage.getSfxData()); public static var texture_storage:TextureStorage = new TextureStorage(); private static var this_pointer:Main; public function Main():void{ level_open_flags = new Array(COUNT_LEVELS); balls = new Array(); super(); if (stage){ init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); }; } public function resetLifes():void{ lifes = COUNT_LIFES; total_points = 0; } public function killLife():Boolean{ lifes--; if (lifes == 0){ return (false); }; return (true); } public function getLifes():int{ return (lifes); } public function show_levels_screen(_arg1:int=-1, _arg2:Boolean=false):void{ clearAllScreens(); level_select_screen = new LevelSelectScreen(level_open_flags, _arg1, _arg2); addChild(level_select_screen); } private function init(_arg1:Event=null):void{ MochiServices.connect("3f25c625d35a44e2", root); var _local2:LocalConnection = new LocalConnection(); this_pointer = this; stage.scaleMode = StageScaleMode.NO_SCALE; removeEventListener(Event.ADDED_TO_STAGE, init); clearAllScreens(); mainmenu_screen = new MainMenuScreen(); addChild(mainmenu_screen); setupBalls(); mainmenu_screen.setupBalls(); } public function getTotalPoints():int{ return (total_points); } private function clearAllScreens(_arg1:Boolean=false):void{ if (mainmenu_screen){ mainmenu_screen.destroy(); removeChild(mainmenu_screen); }; mainmenu_screen = null; if (level_select_screen){ level_select_screen.destroy(_arg1); removeChild(level_select_screen); }; level_select_screen = null; if (game_screen){ game_screen.destroy(); removeChild(game_screen); }; game_screen = null; } public function setLevelFlag(_arg1:int, _arg2:int):void{ var _local3:int; if ((((_arg1 < 0)) || ((_arg1 >= COUNT_LEVELS)))){ return; }; level_open_flags[_arg1] = _arg2; var _local4:Array = new Array(); var _local5:Array = new Array(); _local3 = 0; while (_local3 < Main.COUNT_LEVELS) { if (level_open_flags[_local3] == Main.LEVEL_FLAG_ENABLE){ _local4.push(_local3); }; if ((((level_open_flags[_local3] == Main.LEVEL_FLAG_DISABLE)) && ((_local5.length < 3)))){ _local5.push(_local3); }; _local3++; }; if (_local5.length > 0){ if (_local4.length == 0){ _local3 = 0; while (_local3 < _local5.length) { level_open_flags[_local5[_local3]] = Main.LEVEL_FLAG_ENABLE; _local3++; }; } else { if ((_local5[0] - _local4[0]) < 3){ _local3 = 0; while (_local3 < (3 - _local4.length)) { level_open_flags[_local5[_local3]] = Main.LEVEL_FLAG_ENABLE; _local3++; }; }; }; }; } private function setupBalls():void{ level_configurer = new LevelMainMenu(); level_configurer.setupLevelBalls(balls); } public function show_game_screen(_arg1:int):void{ clearAllScreens(true); game_screen = new GameScreen(_arg1); game_screen.setLevel(_arg1); addChild(game_screen); } public function getShowBalls():Array{ return (balls); } public function clearAllLevels():void{ var _local1:int; while (_local1 < COUNT_LEVELS) { level_open_flags[_local1] = LEVEL_FLAG_DISABLE; _local1++; }; level_select_screen = null; game_screen = null; } public function addPoints(_arg1:int):int{ total_points = (total_points + _arg1); return (total_points); } public function show_mainmenu_screen(_arg1:Boolean=false):void{ clearAllScreens(); clearAllLevels(); setLevelFlag(0, LEVEL_FLAG_ENABLE); setLevelFlag(1, LEVEL_FLAG_ENABLE); setLevelFlag(2, LEVEL_FLAG_ENABLE); mainmenu_screen = new MainMenuScreen(); addChild(mainmenu_screen); resetLifes(); } public function getLevelCofigurer():IBubblenoidLevel{ return (level_configurer); } public function getGameScreen():GameScreen{ return (game_screen); } public function addLife():void{ lifes++; } public static function getThisPointer():Main{ return (this_pointer); } } }//package
Section 264
//mainmenu_back (mainmenu_back) package { import flash.display.*; public dynamic class mainmenu_back extends MovieClip { } }//package
Section 265
//mainmenu_button_moregames (mainmenu_button_moregames) package { import flash.display.*; public dynamic class mainmenu_button_moregames extends SimpleButton { } }//package
Section 266
//mainmenu_button_play (mainmenu_button_play) package { import flash.display.*; public dynamic class mainmenu_button_play extends SimpleButton { } }//package
Section 267
//neuropol_font (neuropol_font) package { import flash.text.*; public dynamic class neuropol_font extends Font { } }//package
Section 268
//Platform (Platform) package { import flash.events.*; import screens.*; import balls.*; import flash.display.*; import flash.utils.*; public class Platform extends Sprite { private var move_flags:Array; private var sticky_x:int;// = 15 private var ping_process:int;// = 0 private var bStickyMode:Boolean;// = false private var sticky_timer:Timer; private var movie_platform:game_platform; private var bPause:Boolean;// = false private var attached_ball:MoveBall; private var width_mode:int;// = -1 private static const POSITION_Y:int = 450; public static const WIDTH_MODE_SMART:int = 1; public static const WIDTH_MODE_NORMAL:int = -1; public static const WIDTH_MODE_LONG:int = 0; public function Platform(_arg1:Main){ move_flags = new Array(false, false); movie_platform = new game_platform(); super(); addChild(movie_platform); setWidthMode(WIDTH_MODE_NORMAL); x = 300; y = Platform.POSITION_Y; _arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, eventMouseMove); _arg1.stage.addEventListener(MouseEvent.CLICK, eventMouseClick); addEventListener(Event.ENTER_FRAME, render); } public function setPause(_arg1:Boolean):void{ bPause = _arg1; } public function setWidthMode(_arg1:int):void{ width_mode = _arg1; var _local2 = 100; var _local3 = 20; if (width_mode == WIDTH_MODE_NORMAL){ _local2 = 150; _local3 = 20; movie_platform.gotoAndStop(3); } else { if (width_mode == WIDTH_MODE_LONG){ _local2 = 222; _local3 = 20; movie_platform.gotoAndStop(5); } else { if (width_mode == WIDTH_MODE_SMART){ _local2 = 75; _local3 = 20; movie_platform.gotoAndStop(1); }; }; }; movie_platform.x = (-(_local2) / 2); movie_platform.y = (-(_local3) / 2); width = _local2; height = _local3; } private function eventStickyTimer(_arg1:TimerEvent):void{ setStickyMode(false); } private function render(_arg1:Event):void{ pingEffect(); if (attached_ball){ attached_ball.x = (x + sticky_x); attached_ball.y = ((y - StaticBall.RADIUS) - (height / 2)); }; } public function getStickyMode():Boolean{ return (bStickyMode); } private function eventMouseMove(_arg1:MouseEvent):void{ if (bPause){ return; }; x = _arg1.stageX; if (x < (GameScreen.LEFT_PLANE_WIDTH + (width / 2))){ x = (GameScreen.LEFT_PLANE_WIDTH + (width / 2)); }; if (x > ((600 - GameScreen.RIGHT_PLANE_WIDTH) - (width / 2))){ x = ((600 - GameScreen.RIGHT_PLANE_WIDTH) - (width / 2)); }; } private function eventMouseClick(_arg1:MouseEvent):void{ if (_arg1.stageY <= GameScreen.UP_PLANE_WIDTH){ return; }; if (((attached_ball) && (!(bPause)))){ attached_ball.setPause(false); attachBall(null); }; } private function pingEffect():void{ if (ping_process == 1){ y = (y + 3); if (y >= (POSITION_Y + 10)){ y = (POSITION_Y + 10); ping_process = 2; }; } else { if (ping_process == 2){ y = (y - 3); if (y <= POSITION_Y){ (ping_process == 0); y = POSITION_Y; }; }; }; } public function attachBall(_arg1:MoveBall, _arg2:int=-1):void{ attached_ball = _arg1; if (_arg2 != -1){ sticky_x = _arg2; }; if (attached_ball){ render(new Event(Event.ENTER_FRAME)); }; } public function startPingEffect():void{ ping_process = 1; } public function setStickyMode(_arg1:Boolean):void{ if (sticky_timer){ sticky_timer.stop(); sticky_timer.removeEventListener(TimerEvent.TIMER, eventStickyTimer); sticky_timer = null; }; bStickyMode = _arg1; if (bStickyMode){ if (!sticky_timer){ sticky_timer = new Timer(15000); }; sticky_timer.addEventListener(TimerEvent.TIMER, eventStickyTimer); sticky_timer.start(); }; if (((!(bStickyMode)) && (attached_ball))){ attached_ball.setPause(false); attachBall(null); }; } public function getAttachedBall():MoveBall{ return (attached_ball); } } }//package
Section 269
//Preloader (Preloader) package { import flash.events.*; import flash.display.*; import flash.text.*; import flash.utils.*; import flash.net.*; public dynamic class Preloader extends MovieClip { private var progress_bar:MovieClip; private var back_loading:MovieClip; private var progressText:TextField; private var progress_bar_mask:MovieClip; private var background:MovieClip; private var play_button:SimpleButton; public function Preloader(){ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; addEventListener(Event.ENTER_FRAME, checkFrame); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress); background = (new loader_back() as MovieClip); addChild(background); background.buttonMode = true; background.addEventListener(MouseEvent.CLICK, eventClickToHappyTreeDotCom); back_loading = (new loading_text_back() as MovieClip); back_loading.x = 177; back_loading.y = 347; addChild(back_loading); back_loading.mouseEnabled = false; progress_bar = (new preloader_progress_bar() as MovieClip); addChild(progress_bar); progress_bar.x = 193; progress_bar.y = 413; progress_bar_mask = (new preloader_porgress_bar_mask() as MovieClip); addChild(progress_bar_mask); progress_bar_mask.blendMode = BlendMode.ALPHA; progress_bar.mask = progress_bar_mask; progress_bar_mask.x = -17; progress_bar_mask.y = 413; progressText = new TextField(); progressText.defaultTextFormat = new TextFormat("Arial", 10, 0xFFFFFF); progressText.x = ((300 - 40) + 15); progressText.y = ((350 - 30) + 91); progressText.mouseEnabled = false; progressText.text = "TEST"; addChild(progressText); play_button = new preloader_play_button(); addChild(play_button); play_button.x = 209; play_button.y = 330; play_button.visible = false; play_button.addEventListener(MouseEvent.CLICK, eventClickStart); stage.addEventListener(Event.RESIZE, onResize); onResize(); } private function eventClickStart(_arg1:MouseEvent):void{ removeEventListener(Event.ENTER_FRAME, checkFrame); removeChild(background); background = null; removeChild(back_loading); back_loading = null; removeChild(progressText); progressText = null; progress_bar.mask = null; removeChild(progress_bar_mask); progress_bar_mask = null; removeChild(progress_bar); progress_bar = null; removeChild(play_button); play_button = null; var _local2:Class = (getDefinitionByName("Main") as Class); addChildAt((new (_local2) as DisplayObject), 0); } private function progress(_arg1:ProgressEvent):void{ var _local2:Number; if (progressText){ _local2 = (Number(_arg1.bytesLoaded) / Number(_arg1.bytesTotal)); progress_bar_mask.x = (-17 + (190 * _local2)); progress_bar.mask = progress_bar_mask; progressText.text = (Math.round((_local2 * 100)).toString() + " %"); }; } private function onResize(_arg1:Event=null):void{ } private function checkFrame(_arg1:Event):void{ if (play_button.visible == true){ return; }; if (currentFrame == totalFrames){ removeEventListener(Event.ENTER_FRAME, checkFrame); progressText.visible = false; progress_bar.visible = false; progress_bar_mask.visible = false; back_loading.visible = false; play_button.visible = true; }; } private function eventClickToHappyTreeDotCom(_arg1:MouseEvent):void{ var _local2:URLRequest = new URLRequest("http://www.keygames.com/?utm_source=games&utm_medium=exclusives&utm_campaign=robonoid"); navigateToURL(_local2, "_blank"); } private function startup(_arg1:Event):void{ } } }//package
Section 270
//preloader_play_button (preloader_play_button) package { import flash.display.*; public dynamic class preloader_play_button extends SimpleButton { } }//package
Section 271
//preloader_porgress_bar_mask (preloader_porgress_bar_mask) package { import flash.display.*; public dynamic class preloader_porgress_bar_mask extends MovieClip { } }//package
Section 272
//preloader_progress_bar (preloader_progress_bar) package { import flash.display.*; public dynamic class preloader_progress_bar extends MovieClip { } }//package
Section 273
//select_level_back (select_level_back) package { import flash.display.*; public dynamic class select_level_back extends MovieClip { } }//package
Section 274
//select_level_button_back (select_level_button_back) package { import flash.display.*; public dynamic class select_level_button_back extends SimpleButton { } }//package
Section 275
//select_level_button_back_text (select_level_button_back_text) package { import flash.display.*; public dynamic class select_level_button_back_text extends MovieClip { } }//package
Section 276
//SfxStorage (SfxStorage) package { import flash.media.*; import core.sound.*; public class SfxStorage { private var sound_pop_big_bubble:Class; private var music_game:Class; private var sound_pop_small_bubble0:Class; private var sound_pop_small_bubble1:Class; private var sound_kill_ball:Class; private var sound_game_over:Class; private var sound_bang_robot:Class; private var sound_platform_bang:Class; private var sound_bang_stone_ball:Class; private var sound_wall_bang:Class; private var sound_click:Class; private var sound_combo:Class; private var sfx_array:Array; private var sound_bonus:Class; private var sound_level_win:Class; private var sound_bonus_money:Class; private var music_menu:Class; private var sound_level_galka:Class; private var sound_game_win:Class; public static const SFXID_SOUND_LEVEL_COMPLETED:int = 8; public static const SFXID_SOUND_POP_BIG_BUBBLE:int = 5; public static const SFXID_SOUND_BANG_ROBOT:int = 15; public static const SFXID_SOUND_BANG_STONE_BALL:int = 16; public static const SFXID_MUSIC_GAME:int = 14; public static const SFXID_SOUND_TAKE_BONUS_MONEY:int = 10; public static const SFXID_SOUND_CLICK:int = 1; public static const SFXID_SOUND_COMBO:int = 17; public static const SFXID_SOUND_LEVEL_GALKA:int = 9; public static const SFXID_SOUND_GAME_WIN:int = 11; public static const SFXID_SOUND_POP_SMALL_BUBBLE0:int = 6; public static const SFXID_SOUND_KILL_BALL:int = 13; public static const SFXID_SOUND_PLATFORM_BANG:int = 3; public static const SFXID_SOUND_TAKE_BONUS:int = 12; public static const SFXID_SOUND_POP_SMALL_BUBBLE1:int = 7; public static const SFXID_MUSIC_MENU:int = 0; public static const SFXID_SOUND_GAME_OVER:int = 4; public static const SFXID_SOUND_WALL_BANG:int = 2; public function SfxStorage(){ music_menu = SfxStorage_music_menu; music_game = SfxStorage_music_game; sound_click = SfxStorage_sound_click; sound_wall_bang = SfxStorage_sound_wall_bang; sound_platform_bang = SfxStorage_sound_platform_bang; sound_game_over = SfxStorage_sound_game_over; sound_pop_big_bubble = SfxStorage_sound_pop_big_bubble; sound_pop_small_bubble0 = SfxStorage_sound_pop_small_bubble0; sound_pop_small_bubble1 = SfxStorage_sound_pop_small_bubble1; sound_level_win = SfxStorage_sound_level_win; sound_level_galka = SfxStorage_sound_level_galka; sound_bonus_money = SfxStorage_sound_bonus_money; sound_bonus = SfxStorage_sound_bonus; sound_game_win = SfxStorage_sound_game_win; sound_kill_ball = SfxStorage_sound_kill_ball; sound_bang_robot = SfxStorage_sound_bang_robot; sound_bang_stone_ball = SfxStorage_sound_bang_stone_ball; sound_combo = SfxStorage_sound_combo; super(); InitSfxData(); } private function InitSfxData():void{ sfx_array = new Array(new SoundWrap((new music_menu() as Sound)), new SoundWrap((new sound_click() as Sound)), new SoundWrap((new sound_wall_bang() as Sound)), new SoundWrap((new sound_platform_bang() as Sound)), new SoundWrap((new sound_game_over() as Sound)), new SoundWrap((new sound_pop_big_bubble() as Sound)), new SoundWrap((new sound_pop_small_bubble0() as Sound)), new SoundWrap((new sound_pop_small_bubble1() as Sound)), new SoundWrap((new sound_level_win() as Sound)), new SoundWrap((new sound_level_galka() as Sound)), new SoundWrap((new sound_bonus_money() as Sound)), new SoundWrap((new sound_game_win() as Sound)), new SoundWrap((new sound_bonus() as Sound)), new SoundWrap((new sound_kill_ball() as Sound)), new SoundWrap((new music_game() as Sound)), new SoundWrap((new sound_bang_robot() as Sound)), new SoundWrap((new sound_bang_stone_ball() as Sound)), new SoundWrap((new sound_combo() as Sound))); } public function getSfxData():Array{ return (sfx_array); } } }//package
Section 277
//SfxStorage_music_game (SfxStorage_music_game) package { import mx.core.*; public class SfxStorage_music_game extends SoundAsset { } }//package
Section 278
//SfxStorage_music_menu (SfxStorage_music_menu) package { import mx.core.*; public class SfxStorage_music_menu extends SoundAsset { } }//package
Section 279
//SfxStorage_sound_bang_robot (SfxStorage_sound_bang_robot) package { import mx.core.*; public class SfxStorage_sound_bang_robot extends SoundAsset { } }//package
Section 280
//SfxStorage_sound_bang_stone_ball (SfxStorage_sound_bang_stone_ball) package { import mx.core.*; public class SfxStorage_sound_bang_stone_ball extends SoundAsset { } }//package
Section 281
//SfxStorage_sound_bonus (SfxStorage_sound_bonus) package { import mx.core.*; public class SfxStorage_sound_bonus extends SoundAsset { } }//package
Section 282
//SfxStorage_sound_bonus_money (SfxStorage_sound_bonus_money) package { import mx.core.*; public class SfxStorage_sound_bonus_money extends SoundAsset { } }//package
Section 283
//SfxStorage_sound_click (SfxStorage_sound_click) package { import mx.core.*; public class SfxStorage_sound_click extends SoundAsset { } }//package
Section 284
//SfxStorage_sound_combo (SfxStorage_sound_combo) package { import mx.core.*; public class SfxStorage_sound_combo extends SoundAsset { } }//package
Section 285
//SfxStorage_sound_game_over (SfxStorage_sound_game_over) package { import mx.core.*; public class SfxStorage_sound_game_over extends SoundAsset { } }//package
Section 286
//SfxStorage_sound_game_win (SfxStorage_sound_game_win) package { import mx.core.*; public class SfxStorage_sound_game_win extends SoundAsset { } }//package
Section 287
//SfxStorage_sound_kill_ball (SfxStorage_sound_kill_ball) package { import mx.core.*; public class SfxStorage_sound_kill_ball extends SoundAsset { } }//package
Section 288
//SfxStorage_sound_level_galka (SfxStorage_sound_level_galka) package { import mx.core.*; public class SfxStorage_sound_level_galka extends SoundAsset { } }//package
Section 289
//SfxStorage_sound_level_win (SfxStorage_sound_level_win) package { import mx.core.*; public class SfxStorage_sound_level_win extends SoundAsset { } }//package
Section 290
//SfxStorage_sound_platform_bang (SfxStorage_sound_platform_bang) package { import mx.core.*; public class SfxStorage_sound_platform_bang extends SoundAsset { } }//package
Section 291
//SfxStorage_sound_pop_big_bubble (SfxStorage_sound_pop_big_bubble) package { import mx.core.*; public class SfxStorage_sound_pop_big_bubble extends SoundAsset { } }//package
Section 292
//SfxStorage_sound_pop_small_bubble0 (SfxStorage_sound_pop_small_bubble0) package { import mx.core.*; public class SfxStorage_sound_pop_small_bubble0 extends SoundAsset { } }//package
Section 293
//SfxStorage_sound_pop_small_bubble1 (SfxStorage_sound_pop_small_bubble1) package { import mx.core.*; public class SfxStorage_sound_pop_small_bubble1 extends SoundAsset { } }//package
Section 294
//SfxStorage_sound_wall_bang (SfxStorage_sound_wall_bang) package { import mx.core.*; public class SfxStorage_sound_wall_bang extends SoundAsset { } }//package
Section 295
//stone_ball (stone_ball) package { import flash.display.*; public dynamic class stone_ball extends MovieClip { } }//package
Section 296
//TextureStorage (TextureStorage) package { public class TextureStorage { private var level_select_textures:Array; private var balls_textures:Array; private var game_move_path_bubble:Class; private var level_completed:Class; private var particles_textures:Array; private var game_minibubble:Class; private var particle01_star:Class; public static const BALL_DEEP_BLUE_INDEX:int = 4; public static const BONUS_SLOWLY_INDEX:int = 0; public static const BALL_MINI_INDEX:int = 0; public static const BALL_BLUE_INDEX:int = 1; public static const BONUS_SHORT_INDEX:int = 4; public static const BONUS_TRIPLE_INDEX:int = 7; public static const BONUS_HEAVY_INDEX:int = 2; public static const BALL_GREEN_INDEX:int = 3; public static const BONUS_STICKY_INDEX:int = 5; public static const BALL_MINI_MOVE_PATH_INDEX:int = 1; public static const BALL_ORANGE_INDEX:int = 5; public static const BALL_RED_INDEX:int = 6; public static const BALL_YELLOW_INDEX:int = 2; public static const BALL_PINK_INDEX:int = 0; public static const BONUS_LONG_INDEX:int = 1; public static const BALL_VIOLET_INDEX:int = 7; public static const BONUS_MONEY_INDEX:int = 6; public static const BONUS_LIFE_INDEX:int = 3; public static const BALL_STONE_INDEX:int = 9; public function TextureStorage(){ level_completed = TextureStorage_level_completed; particle01_star = TextureStorage_particle01_star; game_minibubble = TextureStorage_game_minibubble; game_move_path_bubble = TextureStorage_game_move_path_bubble; super(); InitLevelSelectTextures(); InitParticlesTextures(); InitBallsTextures(); } public function GetLevelSelectTextures():Array{ return (level_select_textures); } private function InitLevelSelectTextures():void{ level_select_textures = new Array([new level_completed()]); } private function InitParticlesTextures():void{ particles_textures = new Array([new particle01_star()], [new particle01_star()]); } public function GetParticlesTextures():Array{ return (particles_textures); } private function InitBallsTextures():void{ var _local1:int; var _local2:int; balls_textures = new Array([new game_minibubble()], [new game_move_path_bubble()]); _local1 = 0; while (_local1 < balls_textures.length) { _local2 = 0; while (_local2 < balls_textures[_local1].length) { balls_textures[_local1][_local2].smoothing = true; _local2++; }; _local1++; }; } public function GetBallsTextures():Array{ return (balls_textures); } } }//package
Section 297
//TextureStorage_game_minibubble (TextureStorage_game_minibubble) package { import mx.core.*; public class TextureStorage_game_minibubble extends BitmapAsset { } }//package
Section 298
//TextureStorage_game_move_path_bubble (TextureStorage_game_move_path_bubble) package { import mx.core.*; public class TextureStorage_game_move_path_bubble extends BitmapAsset { } }//package
Section 299
//TextureStorage_level_completed (TextureStorage_level_completed) package { import mx.core.*; public class TextureStorage_level_completed extends BitmapAsset { } }//package
Section 300
//TextureStorage_particle01_star (TextureStorage_particle01_star) package { import mx.core.*; public class TextureStorage_particle01_star extends BitmapAsset { } }//package

Library Items

Symbol 1 BitmapUsed by:2
Symbol 2 GraphicUses:1Used by:3
Symbol 3 Button {preloader_play_button} [preloader_play_button]Uses:2
Symbol 4 BitmapUsed by:5
Symbol 5 GraphicUses:4Used by:6
Symbol 6 MovieClip {preloader_progress_bar} [preloader_progress_bar]Uses:5
Symbol 7 BitmapUsed by:8
Symbol 8 GraphicUses:7Used by:9
Symbol 9 MovieClip {preloader_porgress_bar_mask} [preloader_porgress_bar_mask]Uses:8
Symbol 10 BitmapUsed by:11
Symbol 11 GraphicUses:10Used by:12
Symbol 12 MovieClip {loading_text_back} [loading_text_back]Uses:11
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 MovieClip {loader_back} [loader_back]Uses:14
Symbol 16 Font {neuropol_font} [neuropol_font]
Symbol 17 BitmapUsed by:18 20 22
Symbol 18 GraphicUses:17Used by:23
Symbol 19 BitmapUsed by:20 22
Symbol 20 GraphicUses:19 17Used by:23
Symbol 21 BitmapUsed by:22
Symbol 22 GraphicUses:21 19 17Used by:23
Symbol 23 Button {level_select_button_level} [level_select_button_level]Uses:18 20 22
Symbol 24 BitmapUsed by:25
Symbol 25 GraphicUses:24Used by:26
Symbol 26 Button {button_logo_keygames_select_level} [button_logo_keygames_select_level]Uses:25
Symbol 27 BitmapUsed by:28
Symbol 28 GraphicUses:27Used by:29
Symbol 29 MovieClip {select_level_back} [select_level_back]Uses:28
Symbol 30 BitmapUsed by:31 33 34
Symbol 31 GraphicUses:30Used by:35
Symbol 32 BitmapUsed by:33 34
Symbol 33 GraphicUses:32 30Used by:35
Symbol 34 GraphicUses:30 32Used by:35
Symbol 35 Button {select_level_button_back} [select_level_button_back]Uses:31 33 34
Symbol 36 BitmapUsed by:37
Symbol 37 GraphicUses:36Used by:38
Symbol 38 MovieClip {select_level_button_back_text} [select_level_button_back_text]Uses:37
Symbol 39 BitmapUsed by:40
Symbol 40 GraphicUses:39Used by:41
Symbol 41 MovieClip {game_level_title} [game_level_title]Uses:40
Symbol 42 BitmapUsed by:43 44 45
Symbol 43 GraphicUses:42Used by:46
Symbol 44 GraphicUses:42Used by:46
Symbol 45 GraphicUses:42Used by:46
Symbol 46 Button {game_button_pause} [game_button_pause]Uses:43 44 45
Symbol 47 BitmapUsed by:48 49 50
Symbol 48 GraphicUses:47Used by:51
Symbol 49 GraphicUses:47Used by:51
Symbol 50 GraphicUses:47Used by:51
Symbol 51 Button {game_button_sound_on} [game_button_sound_on]Uses:48 49 50
Symbol 52 BitmapUsed by:53
Symbol 53 GraphicUses:52Used by:56
Symbol 54 BitmapUsed by:55
Symbol 55 GraphicUses:54Used by:56
Symbol 56 Button {dialog_exit_button_cancel} [dialog_exit_button_cancel]Uses:53 55
Symbol 57 BitmapUsed by:58
Symbol 58 GraphicUses:57Used by:67
Symbol 59 BitmapUsed by:60
Symbol 60 GraphicUses:59Used by:67
Symbol 61 BitmapUsed by:62
Symbol 62 GraphicUses:61Used by:67
Symbol 63 BitmapUsed by:64
Symbol 64 GraphicUses:63Used by:67
Symbol 65 BitmapUsed by:66
Symbol 66 GraphicUses:65Used by:67
Symbol 67 MovieClip {game_back} [game_back]Uses:58 60 62 64 66
Symbol 68 BitmapUsed by:69
Symbol 69 GraphicUses:68Used by:70
Symbol 70 MovieClip {game_score_title} [game_score_title]Uses:69
Symbol 71 BitmapUsed by:72 73 74
Symbol 72 GraphicUses:71Used by:75
Symbol 73 GraphicUses:71Used by:75
Symbol 74 GraphicUses:71Used by:75
Symbol 75 Button {game_button_menu} [game_button_menu]Uses:72 73 74
Symbol 76 BitmapUsed by:77 78 79
Symbol 77 GraphicUses:76Used by:80
Symbol 78 GraphicUses:76Used by:80
Symbol 79 GraphicUses:76Used by:80
Symbol 80 Button {game_button_sound_off} [game_button_sound_off]Uses:77 78 79
Symbol 81 BitmapUsed by:82
Symbol 82 GraphicUses:81Used by:85
Symbol 83 BitmapUsed by:84
Symbol 84 GraphicUses:83Used by:85
Symbol 85 Button {dialog_exit_button_ok} [dialog_exit_button_ok]Uses:82 84
Symbol 86 BitmapUsed by:87
Symbol 87 GraphicUses:86Used by:88
Symbol 88 MovieClip {dialog_exit} [dialog_exit]Uses:87
Symbol 89 Sound {SfxStorage_sound_game_over} [SfxStorage_sound_game_over]
Symbol 90 Sound {SfxStorage_sound_bang_stone_ball} [SfxStorage_sound_bang_stone_ball]
Symbol 91 Sound {SfxStorage_sound_combo} [SfxStorage_sound_combo]
Symbol 92 Sound {SfxStorage_sound_pop_big_bubble} [PopBigBubble]
Symbol 93 Sound {SfxStorage_sound_level_galka} [SfxStorage_sound_level_galka]
Symbol 94 Sound {SfxStorage_sound_kill_ball} [SfxStorage_sound_kill_ball]
Symbol 95 Sound {SfxStorage_music_menu} [SfxStorage_music_menu]
Symbol 96 Sound {SfxStorage_sound_bonus_money} [SfxStorage_sound_bonus_money]
Symbol 97 Sound {SfxStorage_sound_click} [SfxStorage_sound_click]
Symbol 98 Sound {SfxStorage_sound_bonus} [SfxStorage_sound_bonus]
Symbol 99 Sound {SfxStorage_sound_bang_robot} [SfxStorage_sound_bang_robot]
Symbol 100 Sound {SfxStorage_sound_platform_bang} [SfxStorage_sound_platform_bang]
Symbol 101 Sound {SfxStorage_sound_game_win} [SfxStorage_sound_game_win]
Symbol 102 Sound {SfxStorage_sound_level_win} [SfxStorage_sound_level_win]
Symbol 103 Sound {SfxStorage_sound_pop_small_bubble1} [PopSmallBubble1]
Symbol 104 Sound {SfxStorage_music_game} [SfxStorage_music_game]
Symbol 105 Sound {SfxStorage_sound_wall_bang} [SfxStorage_sound_wall_bang]
Symbol 106 Sound {SfxStorage_sound_pop_small_bubble0} [PopSmallBubble]
Symbol 107 BitmapUsed by:108
Symbol 108 GraphicUses:107Used by:111
Symbol 109 BitmapUsed by:110
Symbol 110 GraphicUses:109Used by:111
Symbol 111 Button {mainmenu_button_play} [mainmenu_button_play]Uses:108 110
Symbol 112 BitmapUsed by:113
Symbol 113 GraphicUses:112Used by:114
Symbol 114 MovieClip {mainmenu_back} [mainmenu_back]Uses:113
Symbol 115 BitmapUsed by:116
Symbol 116 GraphicUses:115Used by:119
Symbol 117 BitmapUsed by:118
Symbol 118 GraphicUses:117Used by:119
Symbol 119 Button {mainmenu_button_moregames} [mainmenu_button_moregames]Uses:116 118
Symbol 120 BitmapUsed by:121
Symbol 121 GraphicUses:120Used by:122
Symbol 122 Button {button_logo_keygames} [button_logo_keygames]Uses:121
Symbol 123 BitmapUsed by:124
Symbol 124 GraphicUses:123Used by:139
Symbol 125 BitmapUsed by:126
Symbol 126 GraphicUses:125Used by:139
Symbol 127 BitmapUsed by:128
Symbol 128 GraphicUses:127Used by:139
Symbol 129 BitmapUsed by:130
Symbol 130 GraphicUses:129Used by:139
Symbol 131 BitmapUsed by:132 134 136 138
Symbol 132 GraphicUses:131Used by:139
Symbol 133 BitmapUsed by:134 136 138
Symbol 134 GraphicUses:133 131Used by:139
Symbol 135 BitmapUsed by:136 138
Symbol 136 GraphicUses:135 133 131Used by:139
Symbol 137 BitmapUsed by:138
Symbol 138 GraphicUses:137 135 133 131Used by:139
Symbol 139 MovieClip {game_bonus} [game_bonus]Uses:124 126 128 130 132 134 136 138
Symbol 140 BitmapUsed by:141
Symbol 141 GraphicUses:140Used by:152
Symbol 142 BitmapUsed by:143
Symbol 143 GraphicUses:142Used by:152
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:152
Symbol 146 BitmapUsed by:147 149
Symbol 147 GraphicUses:146Used by:152
Symbol 148 BitmapUsed by:149
Symbol 149 GraphicUses:148 146Used by:152
Symbol 150 BitmapUsed by:151
Symbol 151 GraphicUses:150Used by:152
Symbol 152 MovieClip {game_platform} [game_platform]Uses:141 143 145 147 149 151
Symbol 153 BitmapUsed by:154
Symbol 154 GraphicUses:153Used by:169
Symbol 155 BitmapUsed by:156
Symbol 156 GraphicUses:155Used by:169
Symbol 157 BitmapUsed by:158
Symbol 158 GraphicUses:157Used by:169
Symbol 159 BitmapUsed by:160
Symbol 160 GraphicUses:159Used by:169
Symbol 161 BitmapUsed by:162
Symbol 162 GraphicUses:161Used by:169
Symbol 163 BitmapUsed by:164
Symbol 164 GraphicUses:163Used by:169
Symbol 165 BitmapUsed by:166
Symbol 166 GraphicUses:165Used by:169
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:169
Symbol 169 MovieClip {game_balls} [game_balls]Uses:154 156 158 160 162 164 166 168
Symbol 170 BitmapUsed by:171
Symbol 171 GraphicUses:170Used by:210
Symbol 172 BitmapUsed by:173
Symbol 173 GraphicUses:172Used by:210
Symbol 174 BitmapUsed by:175
Symbol 175 GraphicUses:174Used by:210
Symbol 176 BitmapUsed by:177
Symbol 177 GraphicUses:176Used by:210
Symbol 178 BitmapUsed by:179
Symbol 179 GraphicUses:178Used by:210
Symbol 180 BitmapUsed by:181
Symbol 181 GraphicUses:180Used by:210
Symbol 182 BitmapUsed by:183
Symbol 183 GraphicUses:182Used by:210
Symbol 184 BitmapUsed by:185
Symbol 185 GraphicUses:184Used by:210
Symbol 186 BitmapUsed by:187
Symbol 187 GraphicUses:186Used by:210
Symbol 188 BitmapUsed by:189
Symbol 189 GraphicUses:188Used by:210
Symbol 190 BitmapUsed by:191
Symbol 191 GraphicUses:190Used by:210
Symbol 192 BitmapUsed by:193
Symbol 193 GraphicUses:192Used by:210
Symbol 194 BitmapUsed by:195
Symbol 195 GraphicUses:194Used by:210
Symbol 196 BitmapUsed by:197
Symbol 197 GraphicUses:196Used by:210
Symbol 198 BitmapUsed by:199
Symbol 199 GraphicUses:198Used by:210
Symbol 200 BitmapUsed by:201
Symbol 201 GraphicUses:200Used by:210
Symbol 202 BitmapUsed by:203
Symbol 203 GraphicUses:202Used by:210
Symbol 204 BitmapUsed by:205
Symbol 205 GraphicUses:204Used by:210
Symbol 206 BitmapUsed by:207
Symbol 207 GraphicUses:206Used by:210
Symbol 208 BitmapUsed by:209
Symbol 209 GraphicUses:208Used by:210
Symbol 210 MovieClip {game_ball_eyes} [game_ball_eyes]Uses:171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 201 203 205 207 209
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:219
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:219
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:219
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:219
Symbol 219 MovieClip {game_main_ball} [game_main_ball]Uses:212 214 216 218
Symbol 220 BitmapUsed by:221
Symbol 221 GraphicUses:220Used by:224
Symbol 222 BitmapUsed by:223
Symbol 223 GraphicUses:222Used by:224
Symbol 224 MovieClip {stone_ball} [stone_ball]Uses:221 223
Symbol 225 Font {screens.GameScreen_bar}
Symbol 226 Bitmap {TextureStorage_particle01_star}
Symbol 227 Bitmap {TextureStorage_game_minibubble}
Symbol 228 Bitmap {TextureStorage_game_move_path_bubble}
Symbol 229 Bitmap {TextureStorage_level_completed}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 3 as "preloader_play_button"
ExportAssets (56)Timeline Frame 1Symbol 6 as "preloader_progress_bar"
ExportAssets (56)Timeline Frame 1Symbol 9 as "preloader_porgress_bar_mask"
ExportAssets (56)Timeline Frame 1Symbol 12 as "loading_text_back"
ExportAssets (56)Timeline Frame 1Symbol 15 as "loader_back"
ExportAssets (56)Timeline Frame 2Symbol 16 as "neuropol_font"
ExportAssets (56)Timeline Frame 2Symbol 23 as "level_select_button_level"
ExportAssets (56)Timeline Frame 2Symbol 26 as "button_logo_keygames_select_level"
ExportAssets (56)Timeline Frame 2Symbol 29 as "select_level_back"
ExportAssets (56)Timeline Frame 2Symbol 35 as "select_level_button_back"
ExportAssets (56)Timeline Frame 2Symbol 38 as "select_level_button_back_text"
ExportAssets (56)Timeline Frame 2Symbol 41 as "game_level_title"
ExportAssets (56)Timeline Frame 2Symbol 46 as "game_button_pause"
ExportAssets (56)Timeline Frame 2Symbol 51 as "game_button_sound_on"
ExportAssets (56)Timeline Frame 2Symbol 56 as "dialog_exit_button_cancel"
ExportAssets (56)Timeline Frame 2Symbol 67 as "game_back"
ExportAssets (56)Timeline Frame 2Symbol 70 as "game_score_title"
ExportAssets (56)Timeline Frame 2Symbol 75 as "game_button_menu"
ExportAssets (56)Timeline Frame 2Symbol 80 as "game_button_sound_off"
ExportAssets (56)Timeline Frame 2Symbol 85 as "dialog_exit_button_ok"
ExportAssets (56)Timeline Frame 2Symbol 88 as "dialog_exit"
ExportAssets (56)Timeline Frame 2Symbol 89 as "SfxStorage_sound_game_over"
ExportAssets (56)Timeline Frame 2Symbol 90 as "SfxStorage_sound_bang_stone_ball"
ExportAssets (56)Timeline Frame 2Symbol 91 as "SfxStorage_sound_combo"
ExportAssets (56)Timeline Frame 2Symbol 92 as "PopBigBubble"
ExportAssets (56)Timeline Frame 2Symbol 93 as "SfxStorage_sound_level_galka"
ExportAssets (56)Timeline Frame 2Symbol 94 as "SfxStorage_sound_kill_ball"
ExportAssets (56)Timeline Frame 2Symbol 95 as "SfxStorage_music_menu"
ExportAssets (56)Timeline Frame 2Symbol 96 as "SfxStorage_sound_bonus_money"
ExportAssets (56)Timeline Frame 2Symbol 97 as "SfxStorage_sound_click"
ExportAssets (56)Timeline Frame 2Symbol 98 as "SfxStorage_sound_bonus"
ExportAssets (56)Timeline Frame 2Symbol 99 as "SfxStorage_sound_bang_robot"
ExportAssets (56)Timeline Frame 2Symbol 100 as "SfxStorage_sound_platform_bang"
ExportAssets (56)Timeline Frame 2Symbol 101 as "SfxStorage_sound_game_win"
ExportAssets (56)Timeline Frame 2Symbol 102 as "SfxStorage_sound_level_win"
ExportAssets (56)Timeline Frame 2Symbol 103 as "PopSmallBubble1"
ExportAssets (56)Timeline Frame 2Symbol 104 as "SfxStorage_music_game"
ExportAssets (56)Timeline Frame 2Symbol 105 as "SfxStorage_sound_wall_bang"
ExportAssets (56)Timeline Frame 2Symbol 106 as "PopSmallBubble"
ExportAssets (56)Timeline Frame 2Symbol 111 as "mainmenu_button_play"
ExportAssets (56)Timeline Frame 2Symbol 114 as "mainmenu_back"
ExportAssets (56)Timeline Frame 2Symbol 119 as "mainmenu_button_moregames"
ExportAssets (56)Timeline Frame 2Symbol 122 as "button_logo_keygames"
ExportAssets (56)Timeline Frame 2Symbol 139 as "game_bonus"
ExportAssets (56)Timeline Frame 2Symbol 152 as "game_platform"
ExportAssets (56)Timeline Frame 2Symbol 169 as "game_balls"
ExportAssets (56)Timeline Frame 2Symbol 210 as "game_ball_eyes"
ExportAssets (56)Timeline Frame 2Symbol 219 as "game_main_ball"
ExportAssets (56)Timeline Frame 2Symbol 224 as "stone_ball"
SerialNumber (41)Timeline Frame 1

Labels

"Preloader"Frame 1
"Main"Frame 2




http://swfchan.com/48/235859/info.shtml
Created: 4/7 -2020 17:35:37 Last modified: 5/7 -2020 17:30:35 Server time: 24/04 -2024 12:07:02