STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 229595 |
/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2595 · P5190 |
This is the info page for Flash #118873 |
ver. II.01.K |
www.kongregate.com |
<p align="center"><font face="Tiny Box BlackBitA8" size="21" color="#ffffff" letterSpacing="0.000000" kerning="1">Loading...</font></p> |
<p align="left"><font face="Tiny Box BlackBitA8" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1">Difficulty:</font></p><p align="left"><font face="Tiny Box BlackBitA8" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1">Best Time:</font></p> |
Want to get your name and level on this list? Submit it! |
Want to get your name and level on this list? Submit it! |
ACED! |
<p align="left"><font face="Tiny Box BlackBitA8" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1">Best Time:</font></p><p align="left"><font face="Tiny Box BlackBitA8" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1">Total Aced:</font></p><p align="left"><font face="Tiny Box BlackBitA8" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1">Total Time:</font></p> |
Damijin Presents: |
Loaded Die Games |
Skip Intro |
Skip Intro |
Skip Intro |
Community Edition |
<p align="center"><font face="Franklin Gothic Medium" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">Want this game on your site?</font></p><p align="center"><font face="Franklin Gothic Medium" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">You can download it <font color="#0066ff"><a href="http://games.mochiads.com/c/g/pyro-ii/Pyro2.swf" target = "_blank">here</a></font>.</font></p> |
<p align="left"><font face="Arial Black" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1">TIP #1:</font></p> |
<p align="left"><font face="Arial" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">Click and drag the fireball to set its angle and power. </font></p><p align="left"></p><p align="left"><font face="Arial" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">Aim for the tops of torches, and release the mouse button to fire.</font></p> |
<p align="left"><font face="Arial" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">Wow... He's insanely good!</font></p> |
YOU MISSED! |
<p align="left"><font face="Tiny Box BlackBitA8" size="12" color="#ffffff" letterSpacing="5.000000" kerning="0">Secret level A! - Secret level A! - Secret level A! - Secret level A! -</font></p> |
ACED! |
<p align="left"><font face="Arial Rounded MT Bold" size="11" color="#000000" letterSpacing="0.000000" kerning="1">Embed</font></p> |
You Win! |
Congratulations on being a Pyromaniac! You burned your way through 50 of the best levels that our minds could come up with. If you're still craving more, there are 10 bonus levels that you can unlock and dozens of levels created by Pyro fans from around the world in the Player Levels section on the Main Menu. You can even create your own levels and share them with the world in the Level Editor. Thanks For Playing! -Damijin & Arkatufus- |
Programmed and Produced by Gregorius "Arkatufus" Soedharmo |
Designed and Distributed by Michael "Damijin" Gribbin |
Additional Level Designs by Darran Jamieson |
Complete Ace Guide by Mr. Rubix |
Bonus Levels by |
BlackBone Jindo Jugglinguy Laxaria RavingRabbid |
Hokage4354 JohnRulz Kyru Marh XEN0N |
As always, we praise and worship our supporters and beta testers! |
arcaneCoder DragonFlame997 hokage4354 Jindo Kyru Mastry MSTaylor Nadroj09 oceanix QueentakesRook Scotti sillypirate Sylicas valkyrie Winnitta |
chitown15 GwenWilliams ItBeNickYo Joshhh lightsun moomoomoomoo Nabb Natha PopUpPirate redshirtbear Sherri skillyb TheGhostGamer Ventero |
We would like to give special thanks to Dartle for his $40 donation to Pyro 1. People like him, and the rest of the folks on this list keep these games free. |
Donators are always the first to know about our upcoming beta tests and future projects. |
Thank you so much! |
Sponsored By |
+1 |
Retry |
Retry |
Retry |
Level Select |
Level Select |
Level Select |
Stop Preview |
Stop Preview |
Stop Preview |
ActionScript [AS3]
Section 1//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.ShapesSection 2//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.ShapesSection 3//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.ShapesSection 4//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.ShapesSection 5//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.ShapesSection 6//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.ShapesSection 7//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.ShapesSection 8//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.ShapesSection 9//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.CollisionSection 10//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.CollisionSection 11//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.CollisionSection 12//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 = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; 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.CollisionSection 13//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.CollisionSection 14//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.CollisionSection 15//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.CollisionSection 16//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.CollisionSection 17//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.CollisionSection 18//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.CollisionSection 19//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.CollisionSection 20//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.CollisionSection 21//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.CollisionSection 22//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.CollisionSection 23//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.CollisionSection 24//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.CollisionSection 25//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.CollisionSection 26//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.CollisionSection 27//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.CollisionSection 28//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.CollisionSection 29//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.CollisionSection 30//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.MathSection 31//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.MathSection 32//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.MathSection 33//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.MathSection 34//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public var scale:Number; 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); }; scale = 1; } 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.MathSection 35//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.CommonSection 36//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.CommonSection 37//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.ContactsSection 38//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.ContactsSection 39//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.ContactsSection 40//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.ContactsSection 41//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.ContactsSection 42//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.ContactsSection 43//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; 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.ContactsSection 44//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.ContactsSection 45//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.ContactsSection 46//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.ContactsSection 47//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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.ContactsSection 48//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 49//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 50//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 51//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.JointsSection 52//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.JointsSection 53//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 54//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.JointsSection 55//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.JointsSection 56//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 57//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.JointsSection 58//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 _local11: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); _local11 = (_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.JointsSection 59//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 60//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 61//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 62//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 63//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.JointsSection 64//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; import Box2D.Dynamics.Joints.*; 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_xf.scale = _arg1.scale; m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function 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 GetMass():Number{ return (m_mass); } 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 GetShapeList():b2Shape{ return (m_shapeList); } 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 GetTransform():Matrix{ var _local1:Number = m_xf.scale; return (new Matrix(1, 0, 0, 1, (m_xf.position.x * _local1), (m_xf.position.y * _local1))); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetNext():b2Body{ return (m_next); } 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.DynamicsSection 65//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var angularDamping:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var scale:Number; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angle:Number; public var linearDamping:Number; public var massData:b2MassData; public var fixedRotation:Boolean; 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.DynamicsSection 66//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.DynamicsSection 67//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.DynamicsSection 68//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.DynamicsSection 69//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; 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_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.DynamicsSection 70//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.display.*; import Box2D.Collision.*; 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.DynamicsSection 71//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.DynamicsSection 72//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; 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.DynamicsSection 73//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.DynamicsSection 74//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; 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.DynamicsSection 75//IHash (com.hurlant.crypto.hash.IHash) package com.hurlant.crypto.hash { import flash.utils.*; public interface IHash { function toString():String; function getHashSize():uint; function getInputSize():uint; function hash(_arg1:ByteArray):ByteArray; } }//package com.hurlant.crypto.hashSection 76//MD5 (com.hurlant.crypto.hash.MD5) package com.hurlant.crypto.hash { import flash.utils.*; public class MD5 implements IHash { public static const HASH_SIZE:int = 16; private function ff(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } private function cmn(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint):uint{ return ((rol((((_arg2 + _arg1) + _arg4) + _arg6), _arg5) + _arg3)); } private function hh(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public function getHashSize():uint{ return (HASH_SIZE); } public function hash(_arg1:ByteArray):ByteArray{ var _local2:uint = (_arg1.length * 8); var _local3:String = _arg1.endian; while ((_arg1.length % 4) != 0) { _arg1[_arg1.length] = 0; }; _arg1.position = 0; var _local4:Array = []; _arg1.endian = Endian.LITTLE_ENDIAN; var _local5:uint; while (_local5 < _arg1.length) { _local4.push(_arg1.readUnsignedInt()); _local5 = (_local5 + 4); }; var _local6:Array = core_md5(_local4, _local2); var _local7:ByteArray = new ByteArray(); _local7.endian = Endian.LITTLE_ENDIAN; _local5 = 0; while (_local5 < 4) { _local7.writeUnsignedInt(_local6[_local5]); _local5++; }; _arg1.length = (_local2 / 8); _arg1.endian = _local3; return (_local7); } private function gg(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public function toString():String{ return ("md5"); } public function getInputSize():uint{ return (64); } private function rol(_arg1:uint, _arg2:uint):uint{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } private function ii(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } private function core_md5(_arg1:Array, _arg2:uint):Array{ var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; var _local3:uint = 1732584193; var _local4:uint = 4023233417; var _local5:uint = 2562383102; var _local6:uint = 271733878; var _local7:uint; while (_local7 < _arg1.length) { _arg1[_local7] = ((_arg1[_local7]) || (0)); _arg1[(_local7 + 1)] = ((_arg1[(_local7 + 1)]) || (0)); _arg1[(_local7 + 2)] = ((_arg1[(_local7 + 2)]) || (0)); _arg1[(_local7 + 3)] = ((_arg1[(_local7 + 3)]) || (0)); _arg1[(_local7 + 4)] = ((_arg1[(_local7 + 4)]) || (0)); _arg1[(_local7 + 5)] = ((_arg1[(_local7 + 5)]) || (0)); _arg1[(_local7 + 6)] = ((_arg1[(_local7 + 6)]) || (0)); _arg1[(_local7 + 7)] = ((_arg1[(_local7 + 7)]) || (0)); _arg1[(_local7 + 8)] = ((_arg1[(_local7 + 8)]) || (0)); _arg1[(_local7 + 9)] = ((_arg1[(_local7 + 9)]) || (0)); _arg1[(_local7 + 10)] = ((_arg1[(_local7 + 10)]) || (0)); _arg1[(_local7 + 11)] = ((_arg1[(_local7 + 11)]) || (0)); _arg1[(_local7 + 12)] = ((_arg1[(_local7 + 12)]) || (0)); _arg1[(_local7 + 13)] = ((_arg1[(_local7 + 13)]) || (0)); _arg1[(_local7 + 14)] = ((_arg1[(_local7 + 14)]) || (0)); _arg1[(_local7 + 15)] = ((_arg1[(_local7 + 15)]) || (0)); _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, 3614090360); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, 3905402710); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, 3250441966); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, 4118548399); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, 2821735955); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, 4249261313); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, 2336552879); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, 4294925233); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, 2304563134); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, 4254626195); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, 2792965006); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, 4129170786); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, 3225465664); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, 3921069994); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, 3593408605); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, 3634488961); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, 3889429448); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, 3275163606); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, 4107603335); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, 2850285829); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, 4243563512); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, 2368359562); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, 4294588738); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, 2272392833); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, 4259657740); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, 2763975236); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, 4139469664); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, 3200236656); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, 3936430074); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, 3572445317); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, 3654602809); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, 3873151461); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, 3299628645); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, 4096336452); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, 2878612391); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, 4237533241); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, 2399980690); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, 4293915773); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, 2240044497); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, 4264355552); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, 2734768916); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, 4149444226); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, 3174756917); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, 3951481745); _local3 = (_local3 + _local8); _local4 = (_local4 + _local9); _local5 = (_local5 + _local10); _local6 = (_local6 + _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } } }//package com.hurlant.crypto.hashSection 77//ArrayUtil (com.hurlant.util.ArrayUtil) package com.hurlant.util { import flash.utils.*; public class ArrayUtil { public static function equals(_arg1:ByteArray, _arg2:ByteArray):Boolean{ if (_arg1.length != _arg2.length){ return (false); }; var _local3:int = _arg1.length; var _local4:int; while (_local4 < _local3) { if (_arg1[_local4] != _arg2[_local4]){ return (false); }; _local4++; }; return (true); } } }//package com.hurlant.utilSection 78//Base64 (com.hurlant.util.Base64) package com.hurlant.util { import flash.utils.*; public class Base64 { public static const version:String = "1.0.0"; private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; public function Base64(){ throw (new Error("Base64 class is static container only")); } public static function encode(_arg1:String):String{ var _local2:ByteArray = new ByteArray(); _local2.writeUTFBytes(_arg1); return (encodeByteArray(_local2)); } public static function encodeByteArray(_arg1:ByteArray):String{ var _local3:Array; var _local5:uint; var _local6:uint; var _local7:uint; var _local2 = ""; var _local4:Array = new Array(4); _arg1.position = 0; while (_arg1.bytesAvailable > 0) { _local3 = new Array(); _local5 = 0; while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) { _local3[_local5] = _arg1.readUnsignedByte(); _local5++; }; _local4[0] = ((_local3[0] & 252) >> 2); _local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4)); _local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6)); _local4[3] = (_local3[2] & 63); _local6 = _local3.length; while (_local6 < 3) { _local4[(_local6 + 1)] = 64; _local6++; }; _local7 = 0; while (_local7 < _local4.length) { _local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7])); _local7++; }; }; return (_local2); } public static function decode(_arg1:String):String{ var _local2:ByteArray = decodeToByteArray(_arg1); return (_local2.readUTFBytes(_local2.length)); } public static function decodeToByteArray(_arg1:String):ByteArray{ var _local6:uint; var _local7:uint; var _local2:ByteArray = new ByteArray(); var _local3:Array = new Array(4); var _local4:Array = new Array(3); var _local5:uint; while (_local5 < _arg1.length) { _local6 = 0; while ((((_local6 < 4)) && (((_local5 + _local6) < _arg1.length)))) { _local3[_local6] = BASE64_CHARS.indexOf(_arg1.charAt((_local5 + _local6))); _local6++; }; _local4[0] = ((_local3[0] << 2) + ((_local3[1] & 48) >> 4)); _local4[1] = (((_local3[1] & 15) << 4) + ((_local3[2] & 60) >> 2)); _local4[2] = (((_local3[2] & 3) << 6) + _local3[3]); _local7 = 0; while (_local7 < _local4.length) { if (_local3[(_local7 + 1)] == 64){ break; }; _local2.writeByte(_local4[_local7]); _local7++; }; _local5 = (_local5 + 4); }; _local2.position = 0; return (_local2); } } }//package com.hurlant.utilSection 79//ApiConnection (com.kongregate.ApiConnection) package com.kongregate { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class ApiConnection extends Loader { private var __type:String; public var userLevelData:Object; private var __loaded:Boolean; private var __url:String; public var userLevelAvailable:Boolean; private var __api:Object; public function ApiConnection(_arg1:Stage){ userLevelData = new Object(); super(); this.__loaded = false; this.__type = "kongregate"; Security.allowDomain("*"); var _local2:Object = LoaderInfo(_arg1.loaderInfo).parameters; this.__url = ((_local2.api_path)!=undefined) ? _local2.api_path : "http://www.kongregate.com/flash/API_AS3_Local.swf"; this.contentLoaderInfo.addEventListener(Event.COMPLETE, this.__loaderComplete); _arg1.addChild(this); } private function __loaderComplete(_arg1:Event):void{ this.__loaded = true; this.__api = _arg1.target.content; this.__api.sharedContent.addLoadListener("Level", onLoadLevel); this.__api.services.connect(); var _local2:* = new ApiConnectionEvent(ApiConnectionEvent.CONNECTED); this.dispatchEvent(_local2); } public function get scores():Object{ if (!this.loaded){ return (null); }; return (this.__api.scores); } public function get type():String{ return (this.__type); } public function get user():Object{ if (!this.loaded){ return (null); }; return (this.__api.user); } public function get loaded():Boolean{ return (this.__loaded); } public function get services():Object{ if (!this.loaded){ return (null); }; return (this.__api.services); } private function onLoadLevel(_arg1:Object):void{ userLevelData.id = _arg1.id; userLevelData.name = _arg1.name; userLevelData.permalink = _arg1.permalink; userLevelData.content = _arg1.content; userLevelData.label = _arg1.label; userLevelAvailable = true; var _local2:* = new ApiConnectionEvent(ApiConnectionEvent.USER_LEVEL); this.dispatchEvent(_local2); } public function connect():void{ var _local1:URLRequest; if (!this.connected){ _local1 = new URLRequest(this.__url); this.load(_local1); }; } public function get url():String{ return (this.__url); } public function get sharedContent():Object{ if (!this.loaded){ return (null); }; return (this.__api.sharedContent); } public function get connected():Boolean{ return (((this.__api)!=null) ? this.__api.isConnected() : false); } public function get stats():Object{ if (!this.loaded){ return (null); }; return (this.__api.stats); } } }//package com.kongregateSection 80//ApiConnectionEvent (com.kongregate.ApiConnectionEvent) package com.kongregate { import flash.events.*; public class ApiConnectionEvent extends Event { public static const USER_LEVEL:String = "user level"; public static const CONNECTED:String = "connected"; public function ApiConnectionEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return ((((((((("[ApiConnectionEvent type=\"" + this.type) + "\" bubbles=") + this.bubbles) + " cancelable=") + this.cancelable) + " eventPhase=") + this.eventPhase) + "]")); } override public function clone():Event{ return (new ApiConnectionEvent(this.type, this.bubbles, this.cancelable)); } } }//package com.kongregateSection 81//CircCursor (com.leveleditor.CircCursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class CircCursor extends Cursor { public var disabledIcon:MovieClip; public function CircCursor():void{ rect = new Rectangle(0, 0, 0, 0); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 82//CrateCursor (com.leveleditor.CrateCursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class CrateCursor extends Cursor { public var disabledIcon:MovieClip; public function CrateCursor():void{ rect = new Rectangle(0, 0, 20, 20); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 83//CrateEditor (com.leveleditor.CrateEditor) package com.leveleditor { public class CrateEditor extends EditableObject { public function CrateEditor(_arg1:int=0, _arg2:int=0):void{ x = _arg1; y = _arg2; } override protected function draw():void{ graphics.clear(); if (((!(_selected)) && (!(highlighted)))){ return; }; graphics.lineStyle(2, 3355647, 0.5); graphics.beginFill(0xFF, 0.1); graphics.drawRect((rect.x - 1), (rect.y - 1), (rect.width + 2), (rect.height + 2)); graphics.endFill(); } } }//package com.leveleditorSection 84//CTCursor (com.leveleditor.CTCursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class CTCursor extends Cursor { public var disabledIcon:MovieClip; public function CTCursor():void{ rect = new Rectangle(0, 0, 23, 37); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 85//CTEditor (com.leveleditor.CTEditor) package com.leveleditor { import flash.geom.*; public class CTEditor extends EditableObject { public function CTEditor(_arg1:int=0, _arg2:int=0):void{ x = _arg1; y = _arg2; rect = new Rectangle(0, 0, 23, 37); } override protected function draw():void{ graphics.clear(); if (((!(_selected)) && (!(highlighted)))){ return; }; graphics.lineStyle(2, 3355647, 0.5); graphics.beginFill(0xFF, 0.1); graphics.drawRect(rect.x, rect.y, rect.width, rect.height); graphics.endFill(); } } }//package com.leveleditorSection 86//Cursor (com.leveleditor.Cursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class Cursor extends Sprite { public var rect:Rectangle; public function Cursor():void{ } public function get disabled():Boolean{ return (false); } public function set disabled(_arg1:Boolean):void{ } } }//package com.leveleditorSection 87//DragNode (com.leveleditor.DragNode) package com.leveleditor { import flash.display.*; import flash.events.*; public class DragNode extends Sprite { private var isDown:Boolean;// = false private var state:String;// = "up" public var id:String; private var isOver:Boolean;// = false private var hitMask:Sprite; public function DragNode():void{ hitMask = new Sprite(); super(); hitMask.graphics.clear(); hitMask.graphics.beginFill(0xFF); hitMask.graphics.drawCircle(0, 0, 8); hitMask.graphics.endFill(); addChild(hitMask); hitMask.visible = false; hitMask.mouseEnabled = false; hitArea = hitMask; addEventListener(MouseEvent.ROLL_OVER, handleOver); addEventListener(MouseEvent.ROLL_OUT, handleOut); addEventListener(MouseEvent.MOUSE_DOWN, handleDown); addEventListener(MouseEvent.MOUSE_UP, handleUp); draw(); visible = false; } private function handleOver(_arg1:MouseEvent):void{ state = "over"; isOver = true; draw(); } private function draw():void{ graphics.clear(); switch (state){ case "up": graphics.lineStyle(); graphics.beginFill(0xFF00); graphics.drawRect(-4, -4, 8, 8); graphics.endFill(); break; case "over": graphics.lineStyle(); graphics.beginFill(0xFFFFFF); graphics.drawRect(-4, -4, 8, 8); graphics.endFill(); break; case "down": graphics.clear(); graphics.lineStyle(); graphics.beginFill(0xFFFFFF); graphics.drawRect(-4, -4, 8, 8); graphics.endFill(); graphics.lineStyle(1, 0xFFFFFF); graphics.drawRect(-5.5, -5.5, 11, 11); break; }; } private function handleOut(_arg1:MouseEvent):void{ state = "up"; isOver = false; draw(); } private function handleDown(_arg1:MouseEvent):void{ state = "down"; isDown = true; draw(); } private function handleUp(_arg1:MouseEvent):void{ isDown = false; if (isOver){ state = "over"; } else { state = "up"; }; } } }//package com.leveleditorSection 88//EditableCircle (com.leveleditor.EditableCircle) package com.leveleditor { import flash.geom.*; import flash.display.*; import flash.events.*; public class EditableCircle extends EditableObject { private var rad:int;// = 10 public function EditableCircle(_arg1:int=0, _arg2:int=0, _arg3:int=10):void{ rect.x = 0; rect.y = 0; rect.width = 0; rect.height = 0; overlay.x = (x = _arg1); overlay.y = (y = _arg2); var _local4:DragNode = new DragNode(); _local4.id = "TL"; _local4.x = _arg3; nodes.push(_local4); addChild(_local4); calcRect(); draw(); } public function get radius():Number{ return (rad); } override protected function draw():void{ calcRect(); if (((((x + nodes[0].x) > 380)) && ((nodes[0].x > 0)))){ nodes[0].x = (nodes[0].x * -1); }; if ((x + nodes[0].x) < 10){ nodes[0].x = (nodes[0].x * -1); }; graphics.clear(); if (((_selected) || (highlighted))){ graphics.lineStyle(2, 3355647, 0.5); graphics.beginFill(0xFF, 0.3); } else { graphics.lineStyle(); graphics.beginFill(0xFF, 0.01); }; graphics.drawCircle(0, 0, rad); graphics.endFill(); overlay.graphics.clear(); overlay.graphics.lineStyle(); overlay.graphics.beginFill(0xFF); overlay.graphics.drawCircle(0, 0, rad); overlay.graphics.endFill(); } override public function setData3(_arg1:int):void{ rad = _arg1; updateObject(); } override protected function updateObject():void{ if (rad < 10){ rad = 10; } else { if (rad > 190){ rad = 190; }; }; nodes[0].x = rad; if ((x + nodes[0].x) > 380){ nodes[0].x = -(rad); } else { nodes[0].x = rad; }; nodes[0].y = 0; overlay.x = x; overlay.y = y; draw(); } protected function calcRect():void{ var _local1:int = nodes[0].x; var _local2:int = nodes[0].y; if (gridMode){ _local1 = (int((_local1 / 10)) * 10); _local2 = (int((_local2 / 10)) * 10); }; var _local3:Point = new Point(_local1, _local2); rad = _local3.length; } override public function get info():Object{ infoObj.data1 = (int(x) - 10); infoObj.data2 = int(y); infoObj.data3 = int(rad); return (infoObj); } } }//package com.leveleditorSection 89//EditableObject (com.leveleditor.EditableObject) package com.leveleditor { import flash.geom.*; import flash.display.*; import flash.events.*; public class EditableObject extends Sprite { public var overlay:Sprite; protected var highlighted:Boolean; public var matId:int; public var rect:Rectangle; protected var updateFirst:Boolean; public var id:String; protected var isDown:Boolean; protected var nodes:Array; protected var _selected:Boolean; protected static const changeEvent = new EditorEvent(EditorEvent.CHANGE); protected static const selectEvent = new EditorEvent(EditorEvent.SELECT); public static var gridMode:Boolean = false; protected static var _highlightable:Boolean = true; protected static var dragObject:Object; protected static var suppressed:Boolean = false; protected static var dy:Number = 0; public static var boundWH:Point; protected static var isDragging:Boolean = false; protected static var dx:Number = 0; protected static var infoObj:Object = {data1:0, data2:0, data3:0, data4:0}; protected static var curSelected:EditableObject; public static var boundTL:Point; public function EditableObject():void{ overlay = new Sprite(); super(); if (!boundTL){ boundTL = new Point(10, 0); boundWH = new Point(380, 490); }; overlay = new Sprite(); overlay.mouseEnabled = false; overlay.mouseChildren = false; rect = new Rectangle(-10, -10, 20, 20); nodes = new Array(); _selected = false; addEventListener(MouseEvent.CLICK, handleClick); addEventListener(MouseEvent.MOUSE_DOWN, handleDown); addEventListener(MouseEvent.MOUSE_UP, handleUp); addEventListener(MouseEvent.ROLL_OUT, handleOut); addEventListener(MouseEvent.ROLL_OVER, handleOver); } protected function handleClick(_arg1:MouseEvent=null):void{ if (suppressed){ return; }; deselectAll(); selected = true; curSelected = this; var _local2:EditorEvent = new EditorEvent(EditorEvent.SELECT); _local2.obj = curSelected; dispatchEvent(_local2); } public function moveTo(_arg1:int, _arg2:int):void{ overlay.x = (x = _arg1); overlay.y = (y = _arg2); } protected function handleOut(_arg1:MouseEvent):void{ if (isDragging){ return; }; highlighted = false; draw(); } public function setData3(_arg1:int):void{ } protected function draw():void{ } public function setData1(_arg1:int):void{ _arg1 = (_arg1 + 10); if (_arg1 < 10){ _arg1 = 10; }; var _local2:int = (390 - rect.width); if (_arg1 > _local2){ _arg1 = _local2; }; overlay.x = (x = _arg1); } protected function delayedDraw(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, delayedDraw); draw(); } public function set material(_arg1:int):void{ matId = _arg1; dispatchEvent(new Event(Event.CHANGE, true, true)); } protected function hideNodes():void{ var _local1:int; while (_local1 < nodes.length) { nodes[_local1].visible = false; _local1++; }; } public function setData4(_arg1:int):void{ } protected function handleMove(_arg1:MouseEvent):void{ if (((((gridMode) && (isDown))) && (!((dragObject is DragNode))))){ if ((dragObject is LTEditor)){ x = (int(((parent.mouseX + dx) / 10)) * 10); y = (int(((parent.mouseY + dy) / 10)) * 10); } else { if ((dragObject is RTEditor)){ x = (int(((parent.mouseX + dx) / 10)) * 10); y = (int(((parent.mouseY + dy) / 10)) * 10); } else { if ((dragObject is CTEditor)){ x = (int(((parent.mouseX + dx) / 10)) * 10); y = (int(((parent.mouseY + dy) / 10)) * 10); } else { x = (int(((parent.mouseX + dx) / 10)) * 10); y = (int(((parent.mouseY + dy) / 10)) * 10); }; }; }; }; overlay.x = x; overlay.y = y; draw(); _arg1.updateAfterEvent(); var _local2:EditorEvent = new EditorEvent(EditorEvent.CHANGE); _local2.obj = curSelected; dispatchEvent(_local2); } protected function removeMoveHandler():void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleMove); dragObject.stopDrag(); isDragging = false; if ((dragObject is DragNode)){ dragObject.parent.isDown = false; } else { dragObject.isDown = false; }; updateObject(); draw(); overlay.x = x; overlay.y = y; highlighted = false; if ((this is SpawnerEditor)){ addEventListener(Event.ENTER_FRAME, delayedDraw); } else { draw(); }; showNodes(); dispatchEvent(new EditorEvent(EditorEvent.STOPDRAG)); } public function setData2(_arg1:int):void{ var _local2:int = (480 - rect.height); if (_arg1 > _local2){ _arg1 = _local2; }; y = _arg1; overlay.y = _arg1; } public function dispose():void{ if (overlay.parent){ overlay.parent.removeChild(overlay); }; if (parent){ parent.removeChild(this); }; } protected function handleUp(_arg1:MouseEvent):void{ isDown = false; if (((isDragging) && ((_arg1.target == dragObject)))){ stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleMove); updateObject(); isDragging = false; if ((this is SpawnerEditor)){ addEventListener(Event.ENTER_FRAME, delayedDraw); } else { draw(); }; _arg1.target.stopDrag(); dragObject = null; overlay.x = x; overlay.y = y; showNodes(); dispatchEvent(new EditorEvent(EditorEvent.STOPDRAG)); }; } protected function updateObject():void{ } protected function handleOver(_arg1:MouseEvent):void{ if (isDragging){ return; }; if (_highlightable){ highlighted = true; draw(); }; } public function get info():Object{ infoObj.data1 = (x - 10); infoObj.data2 = y; return (infoObj); } protected function showNodes():void{ var _local1:int; while (_local1 < nodes.length) { nodes[_local1].visible = true; _local1++; }; } public function set selected(_arg1:Boolean):void{ _selected = _arg1; overlay.visible = _arg1; curSelected = this; if (_arg1){ showNodes(); } else { hideNodes(); }; draw(); } protected function handleDown(_arg1:MouseEvent):void{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; if (suppressed){ return; }; if (isDragging){ return; }; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleMove); handleClick(); var _local2:DisplayObject = (_arg1.target as DisplayObject); var _local3:Point = _local2.parent.globalToLocal(boundTL); if ((_local2 is DragNode)){ _arg1.target.startDrag(false, new Rectangle(_local3.x, _local3.y, boundWH.x, boundWH.y)); } else { _local4 = rect.width; _local5 = rect.height; _local6 = (_local4 / 2); _local7 = (_local5 / 2); _local8 = rect.x; _local9 = rect.y; dx = (this.x - parent.mouseX); dy = (this.y - parent.mouseY); if ((((((_local2 is CTEditor)) || ((_local2 is RTEditor)))) || ((_local2 is LTEditor)))){ if (!gridMode){ _arg1.target.startDrag(false, new Rectangle(_local3.x, _local3.y, (boundWH.x - _local4), (boundWH.y - _local5))); }; } else { if ((_local2 is EditableRectangle)){ if (!gridMode){ _arg1.target.startDrag(false, new Rectangle(_local3.x, _local3.y, (boundWH.x - _local4), (boundWH.y - _local5))); }; } else { if (!gridMode){ _arg1.target.startDrag(false, new Rectangle((_local3.x + _local6), (_local3.y + _local7), (boundWH.x - _local4), (boundWH.y - _local5))); }; }; }; isDown = true; hideNodes(); }; isDragging = true; dragObject = _arg1.target; draw(); dispatchEvent(new EditorEvent(EditorEvent.STARTDRAG)); } public static function set highlightable(_arg1:Boolean):void{ _highlightable = _arg1; } public static function deselectAll():void{ if (curSelected){ curSelected.selected = false; curSelected = null; }; } public static function set suppressSelect(_arg1:Boolean):void{ suppressed = _arg1; } public static function stopDragging():void{ if (isDragging){ if ((dragObject is DragNode)){ dragObject.parent.removeMoveHandler(); } else { dragObject.removeMoveHandler(); }; dragObject = null; }; } public static function get selectedObject():EditableObject{ return (curSelected); } } }//package com.leveleditorSection 90//EditablePolygon (com.leveleditor.EditablePolygon) package com.leveleditor { import flash.geom.*; import flash.display.*; import flash.events.*; public class EditablePolygon extends EditableObject { private var screenHit:Sprite; public var mode:String;// = "edit" public function EditablePolygon():void{ screenHit = new Sprite(); super(); screenHit.graphics.beginFill(0xFF); screenHit.graphics.drawRect(10, 0, 380, 490); screenHit.graphics.endFill(); draw(); } protected function drawPoly():void{ graphics.clear(); if (((_selected) || (highlighted))){ graphics.lineStyle(0, 0xFF, 0.5); graphics.beginFill(0xFF, 0.3); } else { graphics.lineStyle(); graphics.beginFill(0xFF, 0.01); }; graphics.moveTo(nodes[0].x, nodes[0].y); var _local1 = 1; while (_local1 < nodes.length) { graphics.lineTo(nodes[_local1].x, nodes[_local1].y); _local1++; }; graphics.endFill(); overlay.graphics.clear(); overlay.graphics.lineStyle(); overlay.graphics.beginFill(0xFF); overlay.graphics.moveTo(nodes[0].x, nodes[0].y); _local1 = 1; while (_local1 < nodes.length) { overlay.graphics.lineTo(nodes[_local1].x, nodes[_local1].y); _local1++; }; overlay.graphics.endFill(); } public function addNode(_arg1:int, _arg2:int):void{ var _local3:DragNode; _local3 = new DragNode(); _local3.x = _arg1; _local3.y = _arg2; nodes.push(_local3); addChild(_local3); } override protected function draw():void{ if (mode == "edit"){ if (!nodes[0]){ return; }; drawPoly(); }; } override protected function updateObject():void{ var _local1:int; while (_local1 < nodes.length) { nodes[_local1].x = (nodes[_local1].x + x); nodes[_local1].y = (nodes[_local1].y + y); _local1++; }; x = (y = 0); drawPoly(); } protected function calcRect():void{ } } }//package com.leveleditorSection 91//EditableRectangle (com.leveleditor.EditableRectangle) package com.leveleditor { import flash.geom.*; import flash.display.*; import flash.events.*; public class EditableRectangle extends EditableObject { private var count:int; public function EditableRectangle(_arg1:int=0, _arg2:int=0, _arg3:int=20, _arg4:int=20):void{ var _local5:DragNode; super(); overlay.x = (x = (_arg1 - (_arg3 / 2))); overlay.y = (y = (_arg2 - (_arg4 / 2))); rect.x = x; rect.y = y; rect.width = _arg3; rect.height = _arg4; _local5 = new DragNode(); _local5.id = "TL"; _local5.x = 0; _local5.y = 0; nodes.push(_local5); addChild(_local5); _local5 = new DragNode(); _local5.x = _arg3; _local5.y = _arg4; _local5.id = "BR"; nodes.push(_local5); addChild(_local5); draw(); } override public function setData4(_arg1:int):void{ if (_arg1 < 5){ _arg1 = 5; }; var _local2:int = (490 - (y + rect.y)); if (_arg1 > _local2){ _arg1 = _local2; }; rect.height = _arg1; updateFirst = true; draw(); } override protected function draw():void{ calcRect(); overlay.x = x; overlay.y = y; graphics.clear(); if (((_selected) || (highlighted))){ graphics.lineStyle(2, 3355647, 0.5); graphics.beginFill(0xFF, 0.3); } else { graphics.lineStyle(); graphics.beginFill(0xFF, 0.01); }; graphics.drawRect(rect.x, rect.y, rect.width, rect.height); graphics.endFill(); overlay.graphics.clear(); overlay.graphics.lineStyle(); overlay.graphics.beginFill(0xFF); overlay.graphics.drawRect(rect.x, rect.y, rect.width, rect.height); overlay.graphics.endFill(); } override public function get info():Object{ infoObj.data1 = (int((x + rect.x)) - 10); infoObj.data2 = int((y + rect.y)); infoObj.data3 = int(rect.width); infoObj.data4 = int(rect.height); return (infoObj); } override public function setData2(_arg1:int):void{ var _local2:int = (490 - rect.height); if (_arg1 > _local2){ _arg1 = _local2; }; var _local3:Point = new Point(0, _arg1); var _local4:Point = globalToLocal(_local3); overlay.y = (y = (_local3.y + (rect.height / 2))); draw(); } override public function setData3(_arg1:int):void{ if (_arg1 < 5){ _arg1 = 5; }; var _local2:int = (390 - (x + rect.x)); if (_arg1 > _local2){ _arg1 = _local2; }; rect.width = _arg1; updateFirst = true; draw(); } override protected function updateObject():void{ x = (x + rect.x); y = (y + rect.y); nodes[0].x = 0; nodes[0].y = 0; nodes[1].x = rect.width; nodes[1].y = rect.height; rect.x = 0; rect.y = 0; } protected function calcRect():void{ var _local5:Point; var _local6:int; var _local1:Number = nodes[0].x; var _local2:Number = nodes[0].y; var _local3:Number = nodes[1].x; var _local4:Number = nodes[1].y; if (gridMode){ if (dragObject){ if (dragObject == nodes[0]){ _local5 = new Point(_local1, _local2); _local5 = this.localToGlobal(_local5); _local5.x = (int((_local5.x / 10)) * 10); _local5.y = (int((_local5.y / 10)) * 10); _local5 = this.globalToLocal(_local5); _local1 = _local5.x; _local2 = _local5.y; if (!isDragging){ nodes[0].x = _local1; nodes[0].y = _local2; dragObject = null; }; } else { if (dragObject == nodes[1]){ _local5 = new Point(_local3, _local4); _local5 = this.localToGlobal(_local5); _local5.x = (int((_local5.x / 10)) * 10); _local5.y = (int((_local5.y / 10)) * 10); _local5 = this.globalToLocal(_local5); _local3 = _local5.x; _local4 = _local5.y; if (!isDragging){ nodes[1].x = _local3; nodes[1].y = _local4; dragObject = null; }; }; }; }; }; if (_local3 < _local1){ _local6 = _local1; _local1 = _local3; _local3 = _local6; }; if (_local4 < _local2){ _local6 = _local2; _local2 = _local4; _local4 = _local6; }; rect.left = _local1; rect.right = _local3; rect.top = _local2; rect.bottom = _local4; } override public function setData1(_arg1:int):void{ _arg1 = (_arg1 + 10); if (_arg1 < 10){ _arg1 = 10; }; var _local2:int = (380 - rect.width); if (_arg1 > _local2){ _arg1 = _local2; }; overlay.x = (x = (_arg1 + (rect.width / 2))); draw(); } } }//package com.leveleditorSection 92//EditorDisplay (com.leveleditor.EditorDisplay) package com.leveleditor { import flash.geom.*; import flash.display.*; import flash.events.*; import flash.utils.*; import com.*; import flash.system.*; import flash.ui.*; public class EditorDisplay extends Sprite { public var metal:MovieClip; private var gridMode:Boolean;// = false public var gridBG:MovieClip; public var crates:Array; public var editorHitArea:DisplayScreenHit; public var objects:Array; public var isDragging:Boolean;// = false public var powerups:Array; private var mode:String;// = "Edit" public var gridIndex:int; public var _levelName:String;// = "Level Name..." public var torches:Array; public var supressDelete:Boolean;// = false public var needed:int;// = 1 private var csrMgr:CursorManager; public var brick:MovieClip; public var overlay:MovieClip; public var ballSpawner:SpawnerEditor; private var lastObject:EditableObject; public var lifes:int;// = 1 public var glass:MovieClip; public function EditorDisplay():void{ var _local2:BitmapData; objects = new Array(); torches = new Array(); crates = new Array(); powerups = new Array(); super(); gridIndex = this.getChildIndex(gridBG); gridBG.visible = false; var _local1:BitmapData = new BitmapData(400, 500, false, 0); var _local3:Sprite = new Sprite(); _local3.graphics.beginBitmapFill(new BrickBitmap(20, 20)); _local3.graphics.drawRect(0, 0, 400, 500); _local3.graphics.endFill(); _local2 = new BitmapData(400, 500, false, 0); _local2.draw(_local3); _local1.noise((Math.random() * int.MAX_VALUE), 0, 10, 7, true); _local2.draw(_local1, null, null, "add"); brick.overlay.graphics.beginBitmapFill(_local2); brick.overlay.graphics.drawRect(0, 0, 400, 500); brick.overlay.graphics.endFill(); brick.overlay.mouseEnabled = false; _local3.graphics.clear(); _local3.graphics.beginBitmapFill(new MetalBitmap(13, 16)); _local3.graphics.drawRect(0, 0, 400, 500); _local3.graphics.endFill(); _local2 = new BitmapData(400, 500, false, 0); _local2.draw(_local3); _local1.noise((Math.random() * int.MAX_VALUE), 0, 10, 7, true); _local2.draw(_local1, null, null, "add"); metal.overlay.graphics.beginBitmapFill(_local2); metal.overlay.graphics.drawRect(0, 0, 400, 500); metal.overlay.graphics.endFill(); metal.overlay.mouseEnabled = false; glass.overlay.graphics.beginFill(1060992); glass.overlay.graphics.drawRect(0, 0, 400, 500); glass.overlay.graphics.endFill(); glass.alpha = 0.5; glass.overlay.mouseEnabled = false; hitArea = editorHitArea; editorHitArea.visible = false; editorHitArea.mouseEnabled = false; csrMgr = CursorManager.instance; addEventListener(MouseEvent.ROLL_OVER, handleOver); addEventListener(MouseEvent.ROLL_OUT, handleOut); addEventListener(MouseEvent.CLICK, handleClick); addEventListener(MouseEvent.MOUSE_UP, handleUp); addEventListener(Event.ADDED_TO_STAGE, handleAdded); addEventListener(Event.REMOVED_FROM_STAGE, handleRemoved); csrMgr.addEventListener(Event.CHANGE, handleCursorChange); addEventListener(EditorEvent.STARTDRAG, handleStartDrag); addEventListener(EditorEvent.STOPDRAG, handleStopDrag); addEventListener(Event.CHANGE, handleMaterialChange); } protected function parseData(_arg1:ByteArray):void{ var len:int; var i:int; var type:int; var _x:int; var _y:int; var _w:int; var _h:int; var obj:EditableObject; var _r:int; var dat = _arg1; resetBoard(); try { dat.position = 0; levelName = dat.readUTF(); lifes = dat.readUnsignedByte(); needed = dat.readUnsignedByte(); ballSpawner.x = dat.readUnsignedShort(); ballSpawner.y = dat.readUnsignedShort(); len = dat.readUnsignedShort(); i = 0; while (i < len) { type = dat.readUnsignedByte(); if (type == 0){ _x = dat.readUnsignedShort(); _y = dat.readUnsignedShort(); _w = dat.readUnsignedShort(); _h = dat.readUnsignedShort(); obj = new EditableRectangle(_x, _y, _w, _h); obj.matId = dat.readUnsignedByte(); changeMaterial(obj); objects.push(obj); } else { if (type == 1){ _x = dat.readUnsignedShort(); _y = dat.readUnsignedShort(); _r = dat.readUnsignedShort(); obj = new EditableCircle(_x, _y, _r); obj.matId = dat.readUnsignedByte(); changeMaterial(obj); objects.push(obj); }; }; i = (i + 1); }; len = dat.readUnsignedShort(); i = 0; while (i < len) { _x = dat.readUnsignedShort(); _y = dat.readUnsignedShort(); obj = new CrateEditor(_x, _y); overlay.addChild(obj); crates.push(obj); i = (i + 1); }; len = dat.readUnsignedShort(); i = 0; while (i < len) { type = dat.readUnsignedByte(); _x = dat.readUnsignedShort(); _y = dat.readUnsignedShort(); if (type == 0){ obj = new LTEditor(_x, _y); } else { if (type == 1){ obj = new RTEditor(_x, _y); } else { obj = new CTEditor(_x, _y); }; }; overlay.addChild(obj); torches.push(obj); i = (i + 1); }; len = dat.readUnsignedShort(); i = 0; while (i < len) { type = dat.readUnsignedByte(); _x = dat.readUnsignedShort(); _y = dat.readUnsignedShort(); if (type == 0){ obj = new Pow1Editor(_x, _y); } else { if (type == 1){ obj = new Pow2Editor(_x, _y); } else { if (type == 2){ obj = new Pow3Editor(_x, _y); } else { obj = new Pow4Editor(_x, _y); }; }; }; overlay.addChild(obj); powerups.push(obj); i = (i + 1); }; } catch(e:Error) { }; dispatchEvent(new EditorEvent(EditorEvent.LOAD)); } protected function handleCursorChange(_arg1:Event):void{ var _local2:Rectangle = csrMgr.bounds; editorHitArea.width = (380 - _local2.width); editorHitArea.height = (490 - _local2.height); if (mode != csrMgr.mode){ mode = csrMgr.mode; EditableObject.deselectAll(); EditableObject.highlightable = (mode == "Edit"); EditableObject.suppressSelect = false; }; } public function set grid(_arg1:Boolean):void{ gridMode = _arg1; gridBG.visible = _arg1; EditableObject.gridMode = _arg1; } private function handleOut(_arg1:MouseEvent):void{ csrMgr.hide(); if (isDragging){ stopDragging(); }; } protected function handleRemoved(_arg1:Event):void{ stage.removeEventListener(KeyboardEvent.KEY_UP, handleKeyboard); } private function handleOver(_arg1:MouseEvent):void{ csrMgr.show(); } protected function handleStopDrag(_arg1:EditorEvent):void{ isDragging = false; } public function get data():ByteArray{ return (generateData()); } public function get levelName():String{ return (_levelName); } protected function handleAdded(_arg1:Event):void{ stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyboard); } protected function handleKeyboard(_arg1:KeyboardEvent):void{ var _local3:int; var _local4:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:Array; var _local2:EditableObject = EditableObject.selectedObject; if (!_local2){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: if (_arg1.shiftKey){ _local4 = -5; } else { _local4 = -1; }; break; case Keyboard.DOWN: if (_arg1.shiftKey){ _local4 = 5; } else { _local4 = 1; }; break; case Keyboard.LEFT: if (_arg1.shiftKey){ _local3 = -5; } else { _local3 = -1; }; break; case Keyboard.RIGHT: if (_arg1.shiftKey){ _local3 = 5; } else { _local3 = 1; }; break; case Keyboard.DELETE: case Keyboard.BACKSPACE: if ((((_local2 is SpawnerEditor)) || (supressDelete))){ return; }; if ((((((_local2 is LTEditor)) || ((_local2 is CTEditor)))) || ((_local2 is RTEditor)))){ _local11 = torches; } else { if ((_local2 is CrateEditor)){ _local11 = crates; } else { if ((((((((_local2 is Pow1Editor)) || ((_local2 is Pow2Editor)))) || ((_local2 is Pow3Editor)))) || ((_local2 is Pow4Editor)))){ _local11 = powerups; } else { _local11 = objects; _local2.overlay.parent.removeChild(_local2.overlay); }; }; }; overlay.removeChild(_local2); _local10 = _local11.indexOf(_local2); _local11.splice(_local10, 1); EditableObject.deselectAll(); return; default: return; }; var _local5:Rectangle = _local2.rect; if ((((((_local2 is LTEditor)) || ((_local2 is CTEditor)))) || ((_local2 is RTEditor)))){ _local6 = 10; } else { _local6 = (10 - (_local5.width / 2)); _local8 = (_local5.height / 2); }; _local7 = (380 - _local5.width); _local9 = (490 - _local5.height); _local3 = (_local3 + _local2.x); _local4 = (_local4 + _local2.y); _local3 = ((_local3 < _local6)) ? _local6 : ((_local3 > _local7)) ? _local7 : _local3; _local4 = ((_local4 < _local8)) ? _local8 : ((_local4 > _local9)) ? _local9 : _local4; _local2.moveTo(_local3, _local4); } protected function generateData():ByteArray{ var _local4:Rectangle; var _local1:ByteArray = new ByteArray(); _local1.writeUTF(levelName); _local1.writeByte(lifes); _local1.writeByte(needed); _local1.writeShort(ballSpawner.x); _local1.writeShort(ballSpawner.y); var _local2:int = objects.length; _local1.writeShort(_local2); var _local3:int; while (_local3 < _local2) { if ((objects[_local3] is EditableRectangle)){ _local4 = objects[_local3].rect; _local1.writeByte(0); _local1.writeShort((objects[_local3].x + (_local4.width / 2))); _local1.writeShort((objects[_local3].y + (_local4.height / 2))); _local1.writeShort(_local4.width); _local1.writeShort(_local4.height); } else { if ((objects[_local3] is EditableCircle)){ _local1.writeByte(1); _local1.writeShort(objects[_local3].x); _local1.writeShort(objects[_local3].y); _local1.writeShort(objects[_local3].radius); }; }; _local1.writeByte(objects[_local3].matId); _local3++; }; _local2 = crates.length; _local1.writeShort(_local2); _local3 = 0; while (_local3 < _local2) { _local1.writeShort(crates[_local3].x); _local1.writeShort(crates[_local3].y); _local3++; }; _local2 = torches.length; _local1.writeShort(_local2); _local3 = 0; while (_local3 < _local2) { if ((torches[_local3] is LTEditor)){ _local1.writeByte(0); } else { if ((torches[_local3] is RTEditor)){ _local1.writeByte(1); } else { _local1.writeByte(2); }; }; _local1.writeShort(torches[_local3].x); _local1.writeShort(torches[_local3].y); _local3++; }; _local2 = powerups.length; _local1.writeShort(_local2); _local3 = 0; while (_local3 < _local2) { if ((powerups[_local3] is Pow1Editor)){ _local1.writeByte(0); } else { if ((powerups[_local3] is Pow2Editor)){ _local1.writeByte(1); } else { if ((powerups[_local3] is Pow3Editor)){ _local1.writeByte(2); } else { _local1.writeByte(3); }; }; }; _local1.writeShort(powerups[_local3].x); _local1.writeShort(powerups[_local3].y); _local3++; }; _local1.position = 0; return (_local1); } protected function handleClick(_arg1:MouseEvent):void{ var _local2:EditableObject; if (mode == "Edit"){ if ((_arg1.target is EditorDisplay)){ EditableObject.deselectAll(); dispatchEvent(new EditorEvent(EditorEvent.DESELECT)); }; return; }; var _local3:int = mouseX; var _local4:int = mouseY; if (gridMode){ _local3 = ((int((_local3 / 10)) * 10) + 10); _local4 = ((int((_local4 / 10)) * 10) + 10); }; switch (mode){ case "LT": _local2 = new LTEditor(_local3, _local4); overlay.addChild(_local2); torches.push(_local2); break; case "RT": _local2 = new RTEditor(_local3, _local4); overlay.addChild(_local2); torches.push(_local2); break; case "CT": _local2 = new CTEditor(_local3, _local4); overlay.addChild(_local2); torches.push(_local2); break; case "Crate": _local2 = new CrateEditor(_local3, _local4); overlay.addChild(_local2); crates.push(_local2); break; case "Rect": _local2 = new EditableRectangle(_local3, _local4); changeMaterial(_local2); objects.push(_local2); break; case "Circ": _local2 = new EditableCircle(_local3, _local4); changeMaterial(_local2); objects.push(_local2); break; case "Poly": break; case "Pow1": _local2 = new Pow1Editor(_local3, _local4); overlay.addChild(_local2); powerups.push(_local2); break; case "Pow2": _local2 = new Pow2Editor(_local3, _local4); overlay.addChild(_local2); powerups.push(_local2); break; case "Pow3": _local2 = new Pow3Editor(_local3, _local4); overlay.addChild(_local2); powerups.push(_local2); break; case "Pow4": _local2 = new Pow4Editor(_local3, _local4); overlay.addChild(_local2); powerups.push(_local2); break; default: break; }; EditableObject.suppressSelect = true; } public function set data(_arg1:ByteArray):void{ parseData(_arg1); } protected function resetBoard():void{ ballSpawner.x = 200; ballSpawner.y = 50; if (((lastObject) && (lastObject.parent))){ lastObject.parent.removeChild(lastObject); }; var _local1:int = objects.length; var _local2:int; while (_local2 < _local1) { objects[_local2].dispose(); _local2++; }; objects.length = 0; _local1 = crates.length; _local2 = 0; while (_local2 < _local1) { overlay.removeChild(crates[_local2]); _local2++; }; crates.length = 0; _local1 = torches.length; _local2 = 0; while (_local2 < _local1) { overlay.removeChild(torches[_local2]); _local2++; }; torches.length = 0; _local1 = powerups.length; _local2 = 0; while (_local2 < _local1) { overlay.removeChild(powerups[_local2]); _local2++; }; powerups.length = 0; System.gc(); } public function set levelName(_arg1:String):void{ _levelName = _arg1; } protected function handleUp(_arg1:MouseEvent):void{ if (isDragging){ EditableObject.stopDragging(); }; } public function stopDragging():void{ isDragging = false; EditableObject.stopDragging(); } protected function handleStartDrag(_arg1:EditorEvent):void{ isDragging = true; } protected function changeMaterial(_arg1:EditableObject):void{ if (_arg1.overlay.parent){ _arg1.overlay.parent.removeChild(_arg1.overlay); }; switch (_arg1.matId){ case 0: brick._mask.addChild(_arg1.overlay); break; case 1: metal._mask.addChild(_arg1.overlay); break; case 2: glass._mask.addChild(_arg1.overlay); break; }; overlay.addChild(_arg1); } protected function handleMaterialChange(_arg1:Event):void{ var _local2:EditableObject = (_arg1.target as EditableObject); changeMaterial(_local2); } } }//package com.leveleditorSection 93//EditorEvent (com.leveleditor.EditorEvent) package com.leveleditor { import flash.events.*; public class EditorEvent extends Event { public var obj:EditableObject; public static const STOPDRAG:String = "EditorEvent.STOPDRAG"; public static const LOAD:String = "EditorEvent.LOAD"; public static const CHANGE:String = "EditorEvent.CHANGE"; public static const STARTDRAG:String = "EditorEvent.STARTDRAG"; public static const SELECT:String = "EditorEvent.SELECT"; public static const DESELECT:String = "EditorEvent.DESELECT"; public function EditorEvent(_arg1:String):void{ super(_arg1, true, true); } override public function toString():String{ return (formatToString("EditorEvent", "type", "bubbles", "cancelable", "eventPhase", "obj")); } override public function clone():Event{ return (new EditorEvent(type)); } } }//package com.leveleditorSection 94//EditorPanel (com.leveleditor.EditorPanel) package com.leveleditor { import fl.controls.*; import flash.display.*; import flash.events.*; import fl.data.*; import fl.events.*; import com.*; public class EditorPanel extends Sprite { public var __id5_:Label; public var j2; public var btn_edit:Button; public var btn_torchC:Button; public var btn_torchL:Button; public var btn_torchR:Button; public var btn_circ:Button; public var check_grid:CheckBox; public var btn_crate:Button; public var __id6_:Label; public var cb_Material:ComboBox; public var collObj2:DataProvider; public var __id7_:Label; public var __id10_:Label; public var label_opt3:Label; public var label_opt4:Label; public var txt_opt1:TextInput; public var txt_opt2:TextInput; public var txt_opt3:TextInput; public var txt_opt4:TextInput; public var btn_MainMenu:Button; private var selectedObj:EditableObject; public var __id8_:Label; public var check_longGuide:CheckBox; public var __id0_:Label; public var txt_life:TextInput; public var txt_torch:TextInput; public var btn_save:Button; public var __id9_:Label; public var __id1_:Label; private var _editor:EditorDisplay; public var btn_test:Button; private var selected:Button; public var __id2_:Label; public var collProp2:Object; private var csrMgr:CursorManager; public var __id3_:Label; public var itemObj2:SimpleCollectionItem; public var btn_pow1:Button; public var btn_pow2:Button; public var btn_pow3:Button; public var btn_pow4:Button; public var __id4_:Label; public var btn_rect:Button; public var btn_load:Button; public var collProps2:Array; public var i2:int; public var txt_name:TextInput; public function EditorPanel():void{ csrMgr = CursorManager.instance; super(); addEventListener(Event.ADDED_TO_STAGE, init); __setProp_txt_torch_EditPanel_Labels_0(); __setProp_txt_life_EditPanel_Labels_0(); __setProp___id0__EditPanel_Labels_0(); __setProp___id1__EditPanel_Labels_0(); __setProp___id2__EditPanel_Labels_0(); __setProp___id3__EditPanel_Labels_0(); __setProp___id4__EditPanel_Labels_0(); __setProp_txt_opt1_EditPanel_Labels_0(); __setProp_txt_opt2_EditPanel_Labels_0(); __setProp___id5__EditPanel_Labels_0(); __setProp___id6__EditPanel_Labels_0(); __setProp_txt_opt3_EditPanel_Labels_0(); __setProp_txt_opt4_EditPanel_Labels_0(); __setProp_label_opt3_EditPanel_Labels_0(); __setProp_label_opt4_EditPanel_Labels_0(); __setProp___id7__EditPanel_Labels_0(); __setProp___id8__EditPanel_Labels_0(); __setProp___id9__EditPanel_Labels_0(); __setProp___id10__EditPanel_Labels_0(); __setProp_txt_name_EditPanel_Labels_0(); __setProp_check_longGuide_EditPanel_Buttons_0(); __setProp_btn_torchL_EditPanel_Buttons_0(); __setProp_btn_torchC_EditPanel_Buttons_0(); __setProp_btn_torchR_EditPanel_Buttons_0(); __setProp_btn_crate_EditPanel_Buttons_0(); __setProp_btn_rect_EditPanel_Buttons_0(); __setProp_btn_circ_EditPanel_Buttons_0(); __setProp_btn_edit_EditPanel_Buttons_0(); __setProp_btn_pow1_EditPanel_Buttons_0(); __setProp_btn_pow2_EditPanel_Buttons_0(); __setProp_btn_pow3_EditPanel_Buttons_0(); __setProp_btn_pow4_EditPanel_Buttons_0(); __setProp_btn_test_EditPanel_Buttons_0(); __setProp_btn_load_EditPanel_Buttons_0(); __setProp_btn_save_EditPanel_Buttons_0(); __setProp_cb_Material_EditPanel_Buttons_0(); __setProp_btn_MainMenu_EditPanel_Buttons_0(); __setProp_check_grid_EditPanel_Buttons_0(); } protected function handleTxtOut(_arg1:Event):void{ _editor.supressDelete = false; updateInfo(); } function __setProp_label_opt4_EditPanel_Labels_0(){ try { label_opt4["componentInspectorSetting"] = true; } catch(e:Error) { }; label_opt4.autoSize = "right"; label_opt4.condenseWhite = false; label_opt4.enabled = true; label_opt4.htmlText = ""; label_opt4.selectable = false; label_opt4.text = "Height:"; label_opt4.visible = true; label_opt4.wordWrap = false; try { label_opt4["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_txt_opt2_EditPanel_Labels_0(){ try { txt_opt2["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_opt2.displayAsPassword = false; txt_opt2.editable = true; txt_opt2.enabled = true; txt_opt2.maxChars = 3; txt_opt2.restrict = "0123456789"; txt_opt2.text = ""; txt_opt2.visible = true; try { txt_opt2["componentInspectorSetting"] = false; } catch(e:Error) { }; } protected function init(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, init); txt_opt1.enabled = false; txt_opt1.addEventListener(ComponentEvent.ENTER, handleTxtEnter); txt_opt1.addEventListener(FocusEvent.FOCUS_OUT, handleTxtOut); txt_opt1.addEventListener(Event.CHANGE, handleChangeOpt1); txt_opt1.addEventListener(FocusEvent.FOCUS_IN, handleTxtIn); txt_opt2.enabled = false; txt_opt2.addEventListener(ComponentEvent.ENTER, handleTxtEnter); txt_opt2.addEventListener(FocusEvent.FOCUS_OUT, handleTxtOut); txt_opt2.addEventListener(Event.CHANGE, handleChangeOpt2); txt_opt2.addEventListener(FocusEvent.FOCUS_IN, handleTxtIn); txt_opt3.visible = false; txt_opt3.addEventListener(ComponentEvent.ENTER, handleTxtEnter); txt_opt3.addEventListener(FocusEvent.FOCUS_OUT, handleTxtOut); txt_opt3.addEventListener(Event.CHANGE, handleChangeOpt3); txt_opt3.addEventListener(FocusEvent.FOCUS_IN, handleTxtIn); txt_opt4.visible = false; txt_opt4.addEventListener(ComponentEvent.ENTER, handleTxtEnter); txt_opt4.addEventListener(FocusEvent.FOCUS_OUT, handleTxtOut); txt_opt4.addEventListener(Event.CHANGE, handleChangeOpt4); txt_opt4.addEventListener(FocusEvent.FOCUS_IN, handleTxtIn); label_opt3.visible = false; label_opt4.visible = false; cb_Material.visible = false; cb_Material.addEventListener(Event.CHANGE, handleComboChange); check_grid.addEventListener(Event.CHANGE, handleGridChange); btn_rect.toggle = true; btn_rect.setStyle("icon", Rect_Icon); btn_circ.toggle = true; btn_circ.setStyle("icon", Circ_Icon); btn_torchL.toggle = true; btn_torchL.setStyle("icon", LT_Icon); btn_torchC.toggle = true; btn_torchC.setStyle("icon", CT_Icon); btn_torchR.toggle = true; btn_torchR.setStyle("icon", RT_Icon); btn_crate.toggle = true; btn_crate.setStyle("icon", Crate_Icon); btn_edit.toggle = true; btn_edit.setStyle("icon", Edit_Icon); btn_pow1.toggle = true; btn_pow1.setStyle("icon", Pow1_Icon); btn_pow2.toggle = true; btn_pow2.setStyle("icon", Pow2_Icon); btn_pow3.toggle = true; btn_pow3.setStyle("icon", Pow3_Icon); btn_pow4.toggle = true; btn_pow4.setStyle("icon", Pow4_Icon); txt_name.addEventListener(Event.CHANGE, handleNameChange); txt_torch.addEventListener(Event.CHANGE, handleTorchChange); txt_life.addEventListener(Event.CHANGE, handleLifeChange); txt_name.addEventListener(FocusEvent.FOCUS_IN, handleTxtIn); txt_torch.addEventListener(FocusEvent.FOCUS_IN, handleTxtIn); txt_life.addEventListener(FocusEvent.FOCUS_IN, handleTxtIn); txt_name.addEventListener(FocusEvent.FOCUS_OUT, handleTxtOut); txt_torch.addEventListener(FocusEvent.FOCUS_OUT, handleTxtOut); txt_life.addEventListener(FocusEvent.FOCUS_OUT, handleTxtOut); txt_name.addEventListener(ComponentEvent.ENTER, handleTxtEnter); txt_torch.addEventListener(ComponentEvent.ENTER, handleTxtEnter); txt_life.addEventListener(ComponentEvent.ENTER, handleTxtEnter); addEventListener(MouseEvent.CLICK, handleClick); } private function handleLifeChange(_arg1:Event):void{ _editor.lifes = int(txt_life.text); } protected function updateInfo():void{ if (!selectedObj){ return; }; var _local1:Object = selectedObj.info; txt_opt1.text = _local1.data1.toString(); txt_opt2.text = _local1.data2.toString(); txt_opt3.text = _local1.data3.toString(); txt_opt4.text = _local1.data4.toString(); } function __setProp_btn_torchL_EditPanel_Buttons_0(){ try { btn_torchL["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_torchL.emphasized = false; btn_torchL.enabled = true; btn_torchL.label = ""; btn_torchL.labelPlacement = "right"; btn_torchL.selected = false; btn_torchL.toggle = false; btn_torchL.visible = true; try { btn_torchL["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id8__EditPanel_Labels_0(){ try { __id8_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id8_.autoSize = "left"; __id8_.condenseWhite = false; __id8_.enabled = true; __id8_.htmlText = ""; __id8_.selectable = false; __id8_.text = "Burnables"; __id8_.visible = true; __id8_.wordWrap = false; try { __id8_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_torchR_EditPanel_Buttons_0(){ try { btn_torchR["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_torchR.emphasized = false; btn_torchR.enabled = true; btn_torchR.label = ""; btn_torchR.labelPlacement = "right"; btn_torchR.selected = false; btn_torchR.toggle = false; btn_torchR.visible = true; try { btn_torchR["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id0__EditPanel_Labels_0(){ try { __id0_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id0_.autoSize = "center"; __id0_.condenseWhite = false; __id0_.enabled = true; __id0_.htmlText = ""; __id0_.selectable = false; __id0_.text = "Level Properties"; __id0_.visible = true; __id0_.wordWrap = false; try { __id0_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_test_EditPanel_Buttons_0(){ try { btn_test["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_test.emphasized = false; btn_test.enabled = true; btn_test.label = "Preview Level"; btn_test.labelPlacement = "right"; btn_test.selected = false; btn_test.toggle = false; btn_test.visible = true; try { btn_test["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_circ_EditPanel_Buttons_0(){ try { btn_circ["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_circ.emphasized = false; btn_circ.enabled = true; btn_circ.label = ""; btn_circ.labelPlacement = "right"; btn_circ.selected = false; btn_circ.toggle = false; btn_circ.visible = true; try { btn_circ["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function handleEditorLoad(_arg1:EditorEvent):void{ txt_name.text = _editor.levelName; txt_torch.text = _editor.needed.toString(); txt_life.text = _editor.lifes.toString(); } function __setProp_check_grid_EditPanel_Buttons_0(){ try { check_grid["componentInspectorSetting"] = true; } catch(e:Error) { }; check_grid.enabled = true; check_grid.label = "Grid"; check_grid.labelPlacement = "right"; check_grid.selected = false; check_grid.visible = true; try { check_grid["componentInspectorSetting"] = false; } catch(e:Error) { }; } protected function handleEditorChanged(_arg1:EditorEvent):void{ updateInfo(); } protected function handleClick(_arg1:MouseEvent):void{ var _local2:Button = (_arg1.target as Button); if (!_local2){ return; }; switch (_local2.name){ case "btn_test": dispatchEvent(new Event("TEST", true, true)); return; case "btn_save": dispatchEvent(new Event("SAVE", true, true)); return; case "btn_load": dispatchEvent(new Event("LOAD", true, true)); return; case "btn_MainMenu": dispatchEvent(new Event("MAIN MENU", true, true)); return; }; handleEditorClick(); if (selected == _local2){ if (!_local2.selected){ csrMgr.mode = "Edit"; btn_edit.selected = true; selected = btn_edit; }; return; }; if (selected){ selected.selected = false; }; selected = _local2; switch (_local2.name){ case "btn_torchL": csrMgr.mode = "LT"; break; case "btn_torchR": csrMgr.mode = "RT"; break; case "btn_torchC": csrMgr.mode = "CT"; break; case "btn_crate": csrMgr.mode = "Crate"; break; case "btn_rect": csrMgr.mode = "Rect"; break; case "btn_circ": csrMgr.mode = "Circ"; break; case "btn_poly": csrMgr.mode = "Poly"; break; case "btn_pow1": csrMgr.mode = "Pow1"; break; case "btn_pow2": csrMgr.mode = "Pow2"; break; case "btn_pow3": csrMgr.mode = "Pow3"; break; case "btn_pow4": csrMgr.mode = "Pow4"; break; default: csrMgr.mode = "Edit"; }; } private function handleNameChange(_arg1:Event):void{ _editor.levelName = txt_name.text; } function __setProp_btn_pow2_EditPanel_Buttons_0(){ try { btn_pow2["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_pow2.emphasized = false; btn_pow2.enabled = true; btn_pow2.label = ""; btn_pow2.labelPlacement = "right"; btn_pow2.selected = false; btn_pow2.toggle = false; btn_pow2.visible = true; try { btn_pow2["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_pow4_EditPanel_Buttons_0(){ try { btn_pow4["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_pow4.emphasized = false; btn_pow4.enabled = true; btn_pow4.label = ""; btn_pow4.labelPlacement = "right"; btn_pow4.selected = false; btn_pow4.toggle = false; btn_pow4.visible = true; try { btn_pow4["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_label_opt3_EditPanel_Labels_0(){ try { label_opt3["componentInspectorSetting"] = true; } catch(e:Error) { }; label_opt3.autoSize = "right"; label_opt3.condenseWhite = false; label_opt3.enabled = true; label_opt3.htmlText = ""; label_opt3.selectable = false; label_opt3.text = "Width:"; label_opt3.visible = true; label_opt3.wordWrap = false; try { label_opt3["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id10__EditPanel_Labels_0(){ try { __id10_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id10_.autoSize = "left"; __id10_.condenseWhite = false; __id10_.enabled = true; __id10_.htmlText = ""; __id10_.selectable = false; __id10_.text = "Edit Mode"; __id10_.visible = true; __id10_.wordWrap = false; try { __id10_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id1__EditPanel_Labels_0(){ try { __id1_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id1_.autoSize = "right"; __id1_.condenseWhite = false; __id1_.enabled = true; __id1_.htmlText = ""; __id1_.selectable = false; __id1_.text = "Torch required:"; __id1_.visible = true; __id1_.wordWrap = false; try { __id1_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_txt_opt3_EditPanel_Labels_0(){ try { txt_opt3["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_opt3.displayAsPassword = false; txt_opt3.editable = true; txt_opt3.enabled = true; txt_opt3.maxChars = 3; txt_opt3.restrict = "0123456789"; txt_opt3.text = ""; txt_opt3.visible = true; try { txt_opt3["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id3__EditPanel_Labels_0(){ try { __id3_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id3_.autoSize = "center"; __id3_.condenseWhite = false; __id3_.enabled = true; __id3_.htmlText = ""; __id3_.selectable = false; __id3_.text = "Shapes"; __id3_.visible = true; __id3_.wordWrap = false; try { __id3_["componentInspectorSetting"] = false; } catch(e:Error) { }; } protected function handleTxtIn(_arg1:Event):void{ _editor.supressDelete = true; } function __setProp___id5__EditPanel_Labels_0(){ try { __id5_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id5_.autoSize = "right"; __id5_.condenseWhite = false; __id5_.enabled = true; __id5_.htmlText = ""; __id5_.selectable = false; __id5_.text = "X:"; __id5_.visible = true; __id5_.wordWrap = false; try { __id5_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_rect_EditPanel_Buttons_0(){ try { btn_rect["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_rect.emphasized = false; btn_rect.enabled = true; btn_rect.label = ""; btn_rect.labelPlacement = "right"; btn_rect.selected = false; btn_rect.toggle = false; btn_rect.visible = true; try { btn_rect["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id7__EditPanel_Labels_0(){ try { __id7_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id7_.autoSize = "left"; __id7_.condenseWhite = false; __id7_.enabled = true; __id7_.htmlText = ""; __id7_.selectable = false; __id7_.text = "Solids"; __id7_.visible = true; __id7_.wordWrap = false; try { __id7_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_load_EditPanel_Buttons_0(){ try { btn_load["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_load.emphasized = false; btn_load.enabled = true; btn_load.label = "Load Level"; btn_load.labelPlacement = "right"; btn_load.selected = false; btn_load.toggle = false; btn_load.visible = true; try { btn_load["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id9__EditPanel_Labels_0(){ try { __id9_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id9_.autoSize = "left"; __id9_.condenseWhite = false; __id9_.enabled = true; __id9_.htmlText = ""; __id9_.selectable = false; __id9_.text = "Power Ups"; __id9_.visible = true; __id9_.wordWrap = false; try { __id9_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_crate_EditPanel_Buttons_0(){ try { btn_crate["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_crate.emphasized = false; btn_crate.enabled = true; btn_crate.label = ""; btn_crate.labelPlacement = "right"; btn_crate.selected = false; btn_crate.toggle = false; btn_crate.visible = true; try { btn_crate["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_cb_Material_EditPanel_Buttons_0(){ try { cb_Material["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj2 = new DataProvider(); collProps2 = [{label:"Brick", data:0}, {label:"Metal", data:1}, {label:"Glass", data:2}]; i2 = 0; while (i2 < collProps2.length) { itemObj2 = new SimpleCollectionItem(); collProp2 = collProps2[i2]; for (j2 in collProp2) { itemObj2[j2] = collProp2[j2]; }; collObj2.addItem(itemObj2); i2++; }; cb_Material.dataProvider = collObj2; cb_Material.editable = false; cb_Material.enabled = true; cb_Material.prompt = ""; cb_Material.restrict = ""; cb_Material.rowCount = 5; cb_Material.visible = true; try { cb_Material["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function set display(_arg1:EditorDisplay):void{ if (_editor){ _editor.removeEventListener(EditorEvent.SELECT, handleEditorClick); _editor.removeEventListener(EditorEvent.DESELECT, clearInfo); _editor.removeEventListener(EditorEvent.CHANGE, handleEditorChanged); _editor.removeEventListener(EditorEvent.LOAD, handleEditorLoad); }; _editor = _arg1; if (_editor){ _editor.addEventListener(EditorEvent.SELECT, handleEditorClick); _editor.addEventListener(EditorEvent.DESELECT, clearInfo); _editor.addEventListener(EditorEvent.CHANGE, handleEditorChanged); _editor.addEventListener(EditorEvent.LOAD, handleEditorLoad); }; } function __setProp_btn_save_EditPanel_Buttons_0(){ try { btn_save["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_save.emphasized = false; btn_save.enabled = true; btn_save.label = "Save Level"; btn_save.labelPlacement = "right"; btn_save.selected = false; btn_save.toggle = false; btn_save.visible = true; try { btn_save["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function handleTorchChange(_arg1:Event):void{ _editor.needed = int(txt_torch.text); } protected function handleTxtEnter(_arg1:ComponentEvent):void{ TextInput(_arg1.target).focusManager.setFocus(stage); } function __setProp_btn_torchC_EditPanel_Buttons_0(){ try { btn_torchC["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_torchC.emphasized = false; btn_torchC.enabled = true; btn_torchC.label = ""; btn_torchC.labelPlacement = "right"; btn_torchC.selected = false; btn_torchC.toggle = false; btn_torchC.visible = true; try { btn_torchC["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function handleComboChange(_arg1:Event):void{ if (selectedObj){ selectedObj.material = cb_Material.selectedItem.data; }; } private function clearInfo(_arg1:EditorEvent):void{ txt_opt1.text = ""; txt_opt2.text = ""; txt_opt1.enabled = false; txt_opt2.enabled = false; txt_opt3.visible = false; txt_opt4.visible = false; label_opt3.visible = false; label_opt4.visible = false; cb_Material.visible = false; txt_opt1.focusManager.setFocus(stage); } function __setProp_btn_edit_EditPanel_Buttons_0(){ try { btn_edit["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_edit.emphasized = false; btn_edit.enabled = true; btn_edit.label = ""; btn_edit.labelPlacement = "right"; btn_edit.selected = false; btn_edit.toggle = false; btn_edit.visible = true; try { btn_edit["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_txt_opt1_EditPanel_Labels_0(){ try { txt_opt1["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_opt1.displayAsPassword = false; txt_opt1.editable = true; txt_opt1.enabled = true; txt_opt1.maxChars = 3; txt_opt1.restrict = "0123456789"; txt_opt1.text = ""; txt_opt1.visible = true; try { txt_opt1["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_txt_torch_EditPanel_Labels_0(){ try { txt_torch["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_torch.displayAsPassword = false; txt_torch.editable = true; txt_torch.enabled = true; txt_torch.maxChars = 2; txt_torch.restrict = "0123456789"; txt_torch.text = "1"; txt_torch.visible = true; try { txt_torch["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function handleEditorChange(_arg1:EditorEvent):void{ updateInfo(); } function __setProp_txt_opt4_EditPanel_Labels_0(){ try { txt_opt4["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_opt4.displayAsPassword = false; txt_opt4.editable = true; txt_opt4.enabled = true; txt_opt4.maxChars = 3; txt_opt4.restrict = "0123456789"; txt_opt4.text = ""; txt_opt4.visible = true; try { txt_opt4["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_txt_life_EditPanel_Labels_0(){ try { txt_life["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_life.displayAsPassword = false; txt_life.editable = true; txt_life.enabled = true; txt_life.maxChars = 2; txt_life.restrict = "0123456789"; txt_life.text = "1"; txt_life.visible = true; try { txt_life["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function handleEditorClick(_arg1:EditorEvent=null):void{ if (_arg1){ selectedObj = _arg1.obj; } else { selectedObj = null; }; if ((selectedObj is EditableRectangle)){ txt_opt1.enabled = true; txt_opt2.enabled = true; label_opt3.visible = true; label_opt4.visible = true; label_opt3.text = "Width:"; txt_opt3.visible = true; txt_opt4.visible = true; cb_Material.visible = true; cb_Material.selectedIndex = selectedObj.matId; } else { if ((selectedObj is EditableCircle)){ txt_opt1.enabled = true; txt_opt2.enabled = true; label_opt3.visible = true; label_opt4.visible = false; label_opt3.text = "Radius:"; txt_opt3.visible = true; txt_opt4.visible = false; cb_Material.visible = true; cb_Material.selectedIndex = selectedObj.matId; } else { if ((selectedObj is EditablePolygon)){ txt_opt1.enabled = true; txt_opt2.enabled = true; txt_opt3.visible = false; txt_opt4.visible = false; label_opt3.visible = false; label_opt4.visible = false; cb_Material.visible = true; } else { if (selectedObj == null){ txt_opt1.text = ""; txt_opt2.text = ""; txt_opt1.enabled = false; txt_opt2.enabled = false; txt_opt3.visible = false; txt_opt4.visible = false; label_opt3.visible = false; label_opt4.visible = false; cb_Material.visible = false; } else { txt_opt1.enabled = true; txt_opt2.enabled = true; txt_opt3.visible = false; txt_opt4.visible = false; label_opt3.visible = false; label_opt4.visible = false; cb_Material.visible = false; }; }; }; }; updateInfo(); } function __setProp_txt_name_EditPanel_Labels_0(){ try { txt_name["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_name.displayAsPassword = false; txt_name.editable = true; txt_name.enabled = true; txt_name.maxChars = 250; txt_name.restrict = ""; txt_name.text = "Level Name..."; txt_name.visible = true; try { txt_name["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_MainMenu_EditPanel_Buttons_0(){ try { btn_MainMenu["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_MainMenu.emphasized = false; btn_MainMenu.enabled = true; btn_MainMenu.label = "Main Menu"; btn_MainMenu.labelPlacement = "right"; btn_MainMenu.selected = false; btn_MainMenu.toggle = false; btn_MainMenu.visible = true; try { btn_MainMenu["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_pow1_EditPanel_Buttons_0(){ try { btn_pow1["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_pow1.emphasized = false; btn_pow1.enabled = true; btn_pow1.label = ""; btn_pow1.labelPlacement = "right"; btn_pow1.selected = false; btn_pow1.toggle = false; btn_pow1.visible = true; try { btn_pow1["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function handleGridChange(_arg1:Event):void{ _editor.grid = check_grid.selected; } function __setProp_check_longGuide_EditPanel_Buttons_0(){ try { check_longGuide["componentInspectorSetting"] = true; } catch(e:Error) { }; check_longGuide.enabled = true; check_longGuide.label = "Long guide"; check_longGuide.labelPlacement = "right"; check_longGuide.selected = false; check_longGuide.visible = true; try { check_longGuide["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_pow3_EditPanel_Buttons_0(){ try { btn_pow3["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_pow3.emphasized = false; btn_pow3.enabled = true; btn_pow3.label = ""; btn_pow3.labelPlacement = "right"; btn_pow3.selected = false; btn_pow3.toggle = false; btn_pow3.visible = true; try { btn_pow3["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id2__EditPanel_Labels_0(){ try { __id2_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id2_.autoSize = "right"; __id2_.condenseWhite = false; __id2_.enabled = true; __id2_.htmlText = ""; __id2_.selectable = false; __id2_.text = "Starting balls:"; __id2_.visible = true; __id2_.wordWrap = false; try { __id2_["componentInspectorSetting"] = false; } catch(e:Error) { }; } protected function handleChangeOpt1(_arg1:Event):void{ if (txt_opt1.text == ""){ selectedObj.setData1(0); } else { selectedObj.setData1(int(txt_opt1.text)); }; } protected function handleChangeOpt2(_arg1:Event):void{ if (txt_opt2.text == ""){ selectedObj.setData2(0); } else { selectedObj.setData2(int(txt_opt2.text)); }; } protected function handleChangeOpt4(_arg1:Event):void{ if (txt_opt4.text == ""){ selectedObj.setData4(0); } else { selectedObj.setData4(int(txt_opt4.text)); }; } function __setProp___id4__EditPanel_Labels_0(){ try { __id4_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id4_.autoSize = "center"; __id4_.condenseWhite = false; __id4_.enabled = true; __id4_.htmlText = ""; __id4_.selectable = false; __id4_.text = "Shape Options"; __id4_.visible = true; __id4_.wordWrap = false; try { __id4_["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp___id6__EditPanel_Labels_0(){ try { __id6_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id6_.autoSize = "right"; __id6_.condenseWhite = false; __id6_.enabled = true; __id6_.htmlText = ""; __id6_.selectable = false; __id6_.text = "Y:"; __id6_.visible = true; __id6_.wordWrap = false; try { __id6_["componentInspectorSetting"] = false; } catch(e:Error) { }; } protected function handleChangeOpt3(_arg1:Event):void{ if (txt_opt3.text == ""){ selectedObj.setData3(0); } else { selectedObj.setData3(int(txt_opt3.text)); }; } } }//package com.leveleditorSection 95//LTCursor (com.leveleditor.LTCursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class LTCursor extends Cursor { public var disabledIcon:MovieClip; public function LTCursor():void{ rect = new Rectangle(0, 0, 23, 51); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 96//LTEditor (com.leveleditor.LTEditor) package com.leveleditor { import flash.geom.*; public class LTEditor extends EditableObject { public function LTEditor(_arg1:int=0, _arg2:int=0):void{ x = _arg1; y = _arg2; rect = new Rectangle(0, 0, 23, 51); } override protected function draw():void{ graphics.clear(); if (((!(_selected)) && (!(highlighted)))){ return; }; graphics.lineStyle(2, 3355647, 0.5); graphics.beginFill(0xFF, 0.1); graphics.drawRect(rect.x, rect.y, rect.width, rect.height); graphics.endFill(); } } }//package com.leveleditorSection 97//PolyCursor (com.leveleditor.PolyCursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class PolyCursor extends Cursor { public var disabledIcon:MovieClip; public function PolyCursor():void{ rect = new Rectangle(0, 0, 0, 0); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 98//Pow1Cursor (com.leveleditor.Pow1Cursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class Pow1Cursor extends Cursor { public var disabledIcon:MovieClip; public function Pow1Cursor():void{ rect = new Rectangle(-9, -9, 18, 18); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 99//Pow1Editor (com.leveleditor.Pow1Editor) package com.leveleditor { public class Pow1Editor extends EditableObject { public function Pow1Editor(_arg1:int=0, _arg2:int=0):void{ x = _arg1; y = _arg2; rect.x = (rect.y = -9); rect.width = (rect.height = 18); } override protected function draw():void{ graphics.clear(); if (((!(_selected)) && (!(highlighted)))){ return; }; graphics.lineStyle(2, 3355647, 0.75); graphics.beginFill(0xFF, 0.1); graphics.drawCircle(0, 0, 10); graphics.endFill(); } } }//package com.leveleditorSection 100//Pow2Cursor (com.leveleditor.Pow2Cursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class Pow2Cursor extends Cursor { public var disabledIcon:MovieClip; public function Pow2Cursor():void{ rect = new Rectangle(-9, -9, 18, 18); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 101//Pow2Editor (com.leveleditor.Pow2Editor) package com.leveleditor { public class Pow2Editor extends EditableObject { public function Pow2Editor(_arg1:int=0, _arg2:int=0):void{ x = _arg1; y = _arg2; rect.x = (rect.y = -9); rect.width = (rect.height = 18); } override protected function draw():void{ graphics.clear(); if (((!(_selected)) && (!(highlighted)))){ return; }; graphics.lineStyle(2, 3355647, 0.75); graphics.beginFill(0xFF, 0.1); graphics.drawCircle(0, 0, 10); graphics.endFill(); } } }//package com.leveleditorSection 102//Pow3Cursor (com.leveleditor.Pow3Cursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class Pow3Cursor extends Cursor { public var disabledIcon:MovieClip; public function Pow3Cursor():void{ rect = new Rectangle(-9, -9, 18, 18); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 103//Pow3Editor (com.leveleditor.Pow3Editor) package com.leveleditor { public class Pow3Editor extends EditableObject { public function Pow3Editor(_arg1:int=0, _arg2:int=0):void{ x = _arg1; y = _arg2; rect.x = (rect.y = -9); rect.width = (rect.height = 18); } override protected function draw():void{ graphics.clear(); if (((!(_selected)) && (!(highlighted)))){ return; }; graphics.lineStyle(2, 3355647, 0.75); graphics.beginFill(0xFF, 0.1); graphics.drawCircle(0, 0, 10); graphics.endFill(); } } }//package com.leveleditorSection 104//Pow4Cursor (com.leveleditor.Pow4Cursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class Pow4Cursor extends Cursor { public var disabledIcon:MovieClip; public function Pow4Cursor():void{ rect = new Rectangle(-9, -9, 18, 18); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 105//Pow4Editor (com.leveleditor.Pow4Editor) package com.leveleditor { public class Pow4Editor extends EditableObject { public function Pow4Editor(_arg1:int=0, _arg2:int=0):void{ x = _arg1; y = _arg2; rect.x = (rect.y = -9); rect.width = (rect.height = 18); } override protected function draw():void{ graphics.clear(); if (((!(_selected)) && (!(highlighted)))){ return; }; graphics.lineStyle(2, 3355647, 0.75); graphics.beginFill(0xFF, 0.1); graphics.drawCircle(0, 0, 10); graphics.endFill(); } } }//package com.leveleditorSection 106//RectCursor (com.leveleditor.RectCursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class RectCursor extends Cursor { public var disabledIcon:MovieClip; public function RectCursor():void{ rect = new Rectangle(0, 0, 0, 0); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 107//RTCursor (com.leveleditor.RTCursor) package com.leveleditor { import flash.geom.*; import flash.display.*; public class RTCursor extends Cursor { public var disabledIcon:MovieClip; public function RTCursor():void{ rect = new Rectangle(0, 0, 23, 51); } override public function set disabled(_arg1:Boolean):void{ disabledIcon.visible = _arg1; } override public function get disabled():Boolean{ return (disabledIcon.visible); } } }//package com.leveleditorSection 108//RTEditor (com.leveleditor.RTEditor) package com.leveleditor { import flash.geom.*; public class RTEditor extends EditableObject { public function RTEditor(_arg1:int=0, _arg2:int=0):void{ x = _arg1; y = _arg2; rect = new Rectangle(0, 0, 23, 51); } override protected function draw():void{ graphics.clear(); if (((!(_selected)) && (!(highlighted)))){ return; }; graphics.lineStyle(2, 3355647, 0.5); graphics.beginFill(0xFF, 0.1); graphics.drawRect(rect.x, rect.y, rect.width, rect.height); graphics.endFill(); } } }//package com.leveleditorSection 109//SpawnerEditor (com.leveleditor.SpawnerEditor) package com.leveleditor { import flash.geom.*; public class SpawnerEditor extends EditableObject { private var thisIndex:int;// = -1 public var spawnHitArea:ButtonHitArea; public var background:ButtonDisplay; public function SpawnerEditor():void{ hitArea = spawnHitArea; spawnHitArea.mouseEnabled = false; spawnHitArea.visible = false; mouseChildren = false; rect = new Rectangle(-25, -25, 25, 25); } override protected function draw():void{ spawnHitArea.visible = highlighted; if ((((thisIndex == -1)) && (parent))){ thisIndex = (EditorDisplay(parent).gridIndex + 1); }; if (thisIndex != -1){ parent.addChildAt(this, thisIndex); }; } } }//package com.leveleditorSection 110//KnuthShuffle (com.rng.KnuthShuffle) package com.rng { public class KnuthShuffle { private var origArr:Array; private var idxArr:Array; private var idx:int; public function KnuthShuffle(){ idx = -1; } private function populate(){ var _local1:int = origArr.length; var _local2:int; while (_local2 < _local1) { idxArr[_local2] = _local2; _local2++; }; } public function reshuffle(){ var _local2:int; var _local4:int; var _local1:int = (origArr.length - 1); var _local3:int = _local1; while (_local3 > 0) { _local2 = (Math.random() * (_local3 + 1)); _local4 = idxArr[_local3]; idxArr[_local3] = idxArr[_local2]; idxArr[_local2] = _local4; _local3--; }; } public function getNext():Object{ idx++; if (idx >= origArr.length){ reshuffle(); idx = 0; }; return (origArr[idxArr[idx]]); } public function initialize(_arg1:Array){ origArr = _arg1; idxArr = new Array(); populate(); reshuffle(); } } }//package com.rngSection 111//CursorManager (com.CursorManager) package com { import flash.geom.*; import flash.display.*; import flash.events.*; import com.leveleditor.*; import flash.ui.*; public class CursorManager extends Sprite { private const circ_Csr:Cursor; private const pow1_Csr:Cursor; private const rect_Csr:Cursor; private const crt_Csr:Cursor; private const CT_Csr:Cursor; private const RT_Csr:Cursor; private const LT_Csr:Cursor; private const poly_Csr:Cursor; private const pow2_Csr:Cursor; private const pow3_Csr:Cursor; private const pow4_Csr:Cursor; private var _mode:String; private var emptyRect:Rectangle; private var hidden:Boolean; private var _cursor:Cursor; private static var modeEvent:Event = new Event(Event.SELECT, true, true); private static var changeEvent:Event = new Event(Event.CHANGE, true, true); private static var _instance:CursorManager; public function CursorManager():void{ LT_Csr = new LTCursor(); RT_Csr = new RTCursor(); CT_Csr = new CTCursor(); crt_Csr = new CrateCursor(); rect_Csr = new RectCursor(); circ_Csr = new CircCursor(); poly_Csr = new PolyCursor(); pow1_Csr = new Pow1Cursor(); pow2_Csr = new Pow2Cursor(); pow3_Csr = new Pow3Cursor(); pow4_Csr = new Pow4Cursor(); emptyRect = new Rectangle(0, 0, 0, 0); super(); addEventListener(Event.ADDED_TO_STAGE, handleAdded); addEventListener(Event.REMOVED_FROM_STAGE, handleRemoved); mouseEnabled = false; mouseChildren = false; } public function set mode(_arg1:String):void{ _mode = _arg1; if (_cursor){ removeChild(_cursor); }; switch (_arg1){ case "LT": _cursor = LT_Csr; break; case "RT": _cursor = RT_Csr; break; case "CT": _cursor = CT_Csr; break; case "Crate": _cursor = crt_Csr; break; case "Rect": _cursor = rect_Csr; break; case "Circ": _cursor = circ_Csr; break; case "Poly": _cursor = poly_Csr; break; case "Pow1": _cursor = pow1_Csr; break; case "Pow2": _cursor = pow2_Csr; break; case "Pow3": _cursor = pow3_Csr; break; case "Pow4": _cursor = pow4_Csr; break; case "Edit": default: _cursor = null; Mouse.show(); }; if (_arg1 != "Edit"){ _cursor.x = mouseX; _cursor.y = mouseY; _cursor.disabled = hidden; addChild(_cursor); Mouse.hide(); }; dispatchEvent(changeEvent); } public function hide():void{ hidden = true; if (_cursor){ _cursor.disabled = hidden; }; } public function show():void{ hidden = false; if (_cursor){ _cursor.disabled = hidden; }; } public function get bounds():Rectangle{ if (_cursor){ return (_cursor.rect); }; return (emptyRect); } private function handleRemoved(_arg1:Event):void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleCursor); Mouse.show(); } private function handleAdded(_arg1:Event):void{ stage.addEventListener(MouseEvent.MOUSE_MOVE, handleCursor); if (_cursor){ Mouse.hide(); }; } public function get mode():String{ return (_mode); } private function handleCursor(_arg1:MouseEvent):void{ if (!_cursor){ return; }; _cursor.x = _arg1.stageX; _cursor.y = _arg1.stageY; _arg1.updateAfterEvent(); } public static function get instance():CursorManager{ if (!_instance){ _instance = new (CursorManager); }; return (_instance); } } }//package comSection 112//PyroCellRenderer (com.PyroCellRenderer) package com { import fl.controls.listClasses.*; import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.filters.*; public class PyroCellRenderer extends Sprite implements ICellRenderer { protected var _listData:ListData; protected var _data:Object; public var textField:TextField; protected var state:String;// = "up" protected var masker:Sprite; public var divider:MovieClip; public var acedIcon:MovieClip; protected var background:Bitmap; protected var _selected:Boolean;// = false protected static const downColor:int = 0xFF8800; protected static const disabledColor:int = 0x888888; protected static const upColor:int = 0; protected static const overGlowFilter:GlowFilter = new GlowFilter(0); protected static const upColorDark:int = 0xFFFFFF; protected static const downGlowFilter:GlowFilter = new GlowFilter(0xFF0000); protected static var upSkins:Array; protected static var textPadding:int = 5; protected static var disabledSkinsDark:Array; protected static var upSkinsDark:Array; protected static var disabledSkins:Array; protected static var downSkins:Array; public function PyroCellRenderer():void{ background = new Bitmap(); masker = new Sprite(); super(); if (!upSkins){ upSkins = [new Wood_00(0, 0), new Wood_01(0, 0), new Wood_02(0, 0), new Wood_03(0, 0), new Wood_04(0, 0)]; upSkinsDark = [new DarkWood_00(0, 0), new DarkWood_01(0, 0), new DarkWood_02(0, 0), new DarkWood_03(0, 0), new DarkWood_04(0, 0)]; downSkins = [new Burn_00(0, 0), new Burn_01(0, 0), new Burn_02(0, 0), new Burn_03(0, 0), new Burn_04(0, 0)]; disabledSkins = [new Dis_00(0, 0), new Dis_01(0, 0), new Dis_02(0, 0), new Dis_03(0, 0), new Dis_04(0, 0)]; disabledSkinsDark = [new DarkDis_00(0, 0), new DarkDis_01(0, 0), new DarkDis_02(0, 0), new DarkDis_03(0, 0), new DarkDis_04(0, 0)]; }; masker.graphics.clear(); masker.graphics.beginFill(0xFF); masker.graphics.drawRect(0, 0, 100, 20); masker.graphics.endFill(); addChildAt(masker, 0); background = new Bitmap(); addChildAt(background, 0); addEventListener(MouseEvent.ROLL_OVER, handleOver); addEventListener(MouseEvent.ROLL_OUT, handleUp); addEventListener(MouseEvent.MOUSE_DOWN, handleDown); addEventListener(MouseEvent.MOUSE_UP, handleUp); background.mask = masker; divider.y = 19; } public function drawNow():void{ drawLayout(); } protected function handleDown(_arg1:MouseEvent):void{ state = "down"; drawLayout(); } public function setSize(_arg1:Number, _arg2:Number):void{ masker.graphics.clear(); masker.graphics.beginFill(0xFF); masker.graphics.drawRect(0, 0, _arg1, _arg2); masker.graphics.endFill(); divider.width = _arg1; divider.y = (_arg2 - 1); acedIcon.height = (_arg2 - 4); acedIcon.scaleX = acedIcon.scaleY; textField.x = ((acedIcon.x + acedIcon.width) + textPadding); if (data){ drawLayout(); }; } public function get selected():Boolean{ return (_selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; textField.text = _listData.label; if (data){ drawLayout(); }; } public function set data(_arg1:Object):void{ _data = _arg1; drawLayout(); } protected function drawLayout():void{ if (textField.text.length > 0){ textField.visible = true; textField.width = Math.max(0, ((width - textField.x) - textPadding)); textField.height = (textField.textHeight + 4); textField.y = ((height - textField.height) >> 1); } else { textField.visible = false; }; if (_data.type == "aced"){ acedIcon.visible = true; } else { acedIcon.visible = false; }; textField.filters = []; if (_data.type == "disabled"){ if (data.isBonus == "yes"){ background.bitmapData = disabledSkinsDark[_data.bgIdx]; } else { background.bitmapData = disabledSkins[_data.bgIdx]; }; textField.textColor = disabledColor; } else { if (!selected){ switch (state){ case "up": if (data.isBonus == "yes"){ background.bitmapData = upSkinsDark[_data.bgIdx]; } else { background.bitmapData = upSkins[_data.bgIdx]; }; textField.textColor = upColor; break; case "over": background.bitmapData = downSkins[_data.bgIdx]; textField.textColor = downColor; textField.filters = [overGlowFilter]; break; case "down": background.bitmapData = downSkins[_data.bgIdx]; textField.textColor = downColor; textField.filters = [downGlowFilter]; break; }; } else { if (selected){ background.bitmapData = downSkins[data.bgIdx]; textField.textColor = downColor; textField.filters = [downGlowFilter]; }; }; }; } public function get listData():ListData{ return (_listData); } protected function handleUp(_arg1:MouseEvent):void{ state = "up"; drawLayout(); } public function get data():Object{ return (_data); } protected function handleOver(_arg1:MouseEvent):void{ state = "over"; drawLayout(); } public function setStyle(_arg1:String, _arg2:Object):void{ } public function set selected(_arg1:Boolean):void{ if (data.disabled){ _arg1 = false; }; if (_selected != _arg1){ _selected = _arg1; drawLayout(); }; } public function setMouseState(_arg1:String):void{ state = _arg1; drawLayout(); } } }//package comSection 113//CreditFlame (effects.CreditFlame) package effects { import flash.geom.*; import flash.display.*; import flash.filters.*; public class CreditFlame extends Bitmap { private const DEST:Point; private const MATRIX_3x5; private var cFilter:ConvolutionFilter; private var SPARKS:int; private var backBuffer:BitmapData; private var frontBuffer:BitmapData; private var screenBuffer:BitmapData; private var FLAME_HEIGHT:int; private var SOURCE:Rectangle; private var FLAME_WIDTH:int; private var palette:Array; public var running:Boolean; public function CreditFlame(_arg1:int, _arg2:int):void{ DEST = new Point(0, 0); MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.6, -1, false, false, 4278190335, 0); palette = new Array(); super(null, "auto", true); FLAME_WIDTH = _arg1; FLAME_HEIGHT = _arg2; SPARKS = (FLAME_WIDTH / 2); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); frontBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); bitmapData = screenBuffer; initpalette(); running = true; } public function update():void{ var _local1:uint; var _local2:uint; var _local3:uint; if (running){ _local1 = (FLAME_HEIGHT - 7); frontBuffer.lock(); _local2 = 0; while (_local2 < SPARKS) { _local3 = 0; while (_local3 < 6) { frontBuffer.setPixel(uint((Math.random() * FLAME_WIDTH)), (_local1 + _local3), (Math.random() * 25)); _local3++; }; _local2++; }; frontBuffer.unlock(); }; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, DEST, null, null, palette, null); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } public function dispose():void{ bitmapData = null; frontBuffer.dispose(); screenBuffer.dispose(); palette.length = 0; frontBuffer = null; screenBuffer = null; palette = null; cFilter = null; } private function initpalette():void{ var _local1:Sprite = new TransparentCreditFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 1)); _local3++; }; _local2.dispose(); } } }//package effectsSection 114//Fireball (effects.Fireball) package effects { import flash.geom.*; import flash.display.*; import flash.media.*; import flash.filters.*; public class Fireball extends Bitmap { private const FLAME_WIDTH:int = 400; private const PT_ZERO:Point; private const FLAME_HEIGHT:int = 500; private const SCREEN_RECT:Rectangle; private const MATRIX_3x5; private var cFilter:ConvolutionFilter; private var backBuffer:BitmapData; private var frontBuffer:BitmapData; private var screenBuffer:BitmapData; private var flareTfm:SoundTransform; private var targetVol:Number; private var flare:Sound; private var masker:BitmapData; private var offset:Number; private var SOURCE:Rectangle; private var spark:BitmapData; private var DEST:Point; private var torches:Array; private var noiseSeed:uint;// = 0 private var soundOn:Boolean; private var flareChannel:SoundChannel; private var palette:Array; public function Fireball():void{ MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); SCREEN_RECT = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); PT_ZERO = new Point(0, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.35, -2, true, false, 0xFF, 1); backBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); frontBuffer = backBuffer.clone(); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0); palette = new Array(); super(); initPalette(); var _local1:Sprite = new NoiseGenerator(); spark = new BitmapData(_local1.width, _local1.height, false, 0xFF); masker = new BitmapData(_local1.width, _local1.height, false); masker.draw(_local1); bitmapData = screenBuffer; SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); DEST = new Point(0, 0); offset = (spark.width / 2); torches = new Array(); flare = new Flare(); flareTfm = new SoundTransform(0, 0); flareChannel = flare.play(0, int.MAX_VALUE, flareTfm); targetVol = 0; soundOn = true; } public function scale(_arg1:Number){ var _local2:Matrix = new Matrix(_arg1, 0, 0, _arg1, 0, 0); var _local3:Sprite = new NoiseGenerator(); spark = new BitmapData((_local3.width * _arg1), (_local3.height * _arg1), false, 0xFF); masker = new BitmapData((_local3.width * _arg1), (_local3.height * _arg1), false); masker.draw(_local3, _local2); offset = (spark.width / 2); } public function update(_arg1:Matrix, _arg2:Number):void{ var _local6:Number; var _local7:Number; var _local8:Number; noiseSeed++; var _local3:Number = (_arg2 * 0.1); _local3 = (155 - (_local3 * 155)); if (_local3 < 0){ _local3 = 0; }; spark.noise(noiseSeed, _local3, 0x0100, BitmapDataChannel.BLUE, true); spark.draw(masker, null, null, BlendMode.ADD); _arg1.tx = (_arg1.tx - offset); _arg1.ty = (_arg1.ty - offset); frontBuffer.draw(spark, _arg1, null, BlendMode.MULTIPLY); SOURCE = frontBuffer.getColorBoundsRect(4294967295, 4278190335, false); SOURCE = frontBuffer.generateFilterRect(SOURCE, cFilter); DEST.x = SOURCE.x; DEST.y = SOURCE.y; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); SOURCE.inflate(6, 6); DEST.offset(-6, -6); var _local4:BitmapData = new BitmapData(SOURCE.width, SOURCE.height, false, 0); var _local5:Rectangle = SOURCE.clone(); _local5.x = 0; _local5.y = 0; _local4.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.copyPixels(_local4, _local5, DEST); _local4.dispose(); if (((soundOn) && (flareChannel))){ _local6 = (_arg2 - 7.5); _local7 = flareTfm.volume; _local8 = ((_arg1.tx - 200) * 0.0025); targetVol = (((_local6 * _local6) * 0.1) * ((_local6 < 0)) ? -1 : 1); if (targetVol > 1){ targetVol = 1; } else { if (targetVol < 0.05){ targetVol = 0.05; }; }; _local7 = (_local7 + ((targetVol - _local7) * 0.2)); flareTfm.volume = _local7; flareTfm.pan = _local8; flareChannel.soundTransform = flareTfm; }; } public function dispose():void{ if (flareChannel){ flareChannel.stop(); }; flareChannel = null; flare = null; flareTfm = null; spark.dispose(); masker.dispose(); screenBuffer.dispose(); palette.length = 0; spark = null; masker = null; screenBuffer = null; palette = null; } public function switchPalette(_arg1:Sprite):void{ var _local2:BitmapData = new BitmapData(0x0100, 10, false); _local2.draw(_arg1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = _local2.getPixel(_local3, 2); _local3++; }; _local2.dispose(); } private function initPalette():void{ var _local1:Sprite = new FlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, false); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = _local2.getPixel(_local3, 2); _local3++; }; _local2.dispose(); } public function stopSound():void{ soundOn = false; if (flareChannel){ flareChannel.stop(); }; } } }//package effectsSection 115//Flame (effects.Flame) package effects { import flash.geom.*; import flash.display.*; import flash.filters.*; public class Flame extends Bitmap { private const DEST:Point; private const MATRIX_3x5; private var cFilter:ConvolutionFilter; private var SPARKS:int; private var backBuffer:BitmapData; private var screenBuffer:BitmapData; private var FLAME_HEIGHT:int; private var SOURCE:Rectangle; private var disposed:Boolean;// = false private var FLAME_WIDTH:int; private var palette:Array; public function Flame(_arg1:int, _arg2:int){ DEST = new Point(0, 0); MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.56, -1, false, false, 4278190335, 0); palette = new Array(); super(null, "auto", true); FLAME_WIDTH = _arg1; FLAME_HEIGHT = _arg2; SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); backBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); bitmapData = screenBuffer; initpalette(); disposed = false; } public function update(_arg1:int){ var _local4:uint; if (disposed){ return; }; var _local2:uint = (FLAME_HEIGHT - 10); SPARKS = (_arg1 / 2); FLAME_WIDTH = _arg1; backBuffer.lock(); var _local3:uint; while (_local3 < SPARKS) { _local4 = 0; while (_local4 < 7) { backBuffer.setPixel(uint((Math.random() * FLAME_WIDTH)), (_local2 + _local4), (Math.random() * 25)); _local4++; }; _local3++; }; backBuffer.unlock(); backBuffer.applyFilter(backBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(backBuffer, SOURCE, DEST, null, null, palette, null); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } public function dispose():void{ cFilter = null; bitmapData = null; backBuffer.dispose(); screenBuffer.dispose(); disposed = true; } private function initpalette(){ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 1)); _local3++; }; _local2.dispose(); } } }//package effectsSection 116//MaskedFlame (effects.MaskedFlame) package effects { import flash.geom.*; import flash.display.*; import flash.events.*; import flash.filters.*; public class MaskedFlame extends Bitmap { const DEST:Point; const MATRIX_3x5; var noiseBmp:Bitmap; private var dir:Array; private var offset:Array; private var masker:BitmapData; var noise:Sprite; private var SOURCE:Rectangle; private var noiseSeed:uint; private var mtx:Matrix; private var tfm:ColorTransform; private var skipper:int;// = 0 private var cFilter:ConvolutionFilter; private var frontBuffer:BitmapData; private var screenBuffer:BitmapData; private var FLAME_HEIGHT:int; private var perlin:BitmapData; private var noiseGenerator:BitmapData; private var perlinSeed:uint; private var dead:Boolean;// = true private var burnoutTimer:int;// = 0 private var _burning:Boolean;// = false private var FLAME_WIDTH:int; private var palette:Array; public function MaskedFlame(_arg1:MovieClip, _arg2:int, _arg3:int){ DEST = new Point(0, 0); MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); offset = new Array(new Point(0, 0), new Point(0, 0), new Point(0, 0), new Point(0, 0), new Point(0, 0)); dir = new Array(new Point(rnd(), rnd()), new Point(rnd(), rnd()), new Point(rnd(), rnd()), new Point(rnd(), rnd()), new Point(rnd(), rnd())); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4, -2, false, false, 0xFF, 0); palette = new Array(); noiseSeed = (Math.random() * uint.MAX_VALUE); perlinSeed = (Math.random() * uint.MAX_VALUE); super(null, "always", true); FLAME_WIDTH = _arg2; FLAME_HEIGHT = _arg3; noiseGenerator = new BitmapData(_arg1.flameMask.width, _arg1.flameMask.height, false); masker = new BitmapData(_arg1.flameMask.width, _arg1.flameMask.height, false); perlin = new BitmapData(_arg1.flameMask.width, _arg1.flameMask.height, false); masker.draw(_arg1.flameMask); _arg1.flameMask.visible = false; mtx = new Matrix(1, 0, 0, 1, _arg1.flameMask.x, _arg1.flameMask.y); tfm = new ColorTransform(0.2, 0.2, 0.2); perlin.perlinNoise(5, 30, offset.length, perlinSeed, false, false, 7, true, offset); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); frontBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); bitmapData = perlin; bitmapData = screenBuffer; initPalette(); this.addEventListener(Event.ADDED_TO_STAGE, startFlame); this.addEventListener(Event.REMOVED_FROM_STAGE, stopFlame); _arg1.addChild(this); } private function dispose():void{ this.removeEventListener(Event.ENTER_FRAME, update); perlin.dispose(); noiseGenerator.dispose(); frontBuffer.dispose(); screenBuffer.dispose(); palette.length = 0; perlin = null; noiseGenerator = null; frontBuffer = null; screenBuffer = null; } public function switchPalette(_arg1:Sprite):void{ var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_arg1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 1)); _local3++; }; _local2.dispose(); } private function rnd():Number{ return ((Math.random() - 0.5)); } public function get burning():Boolean{ return (_burning); } private function initPalette(){ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 1)); _local3++; }; _local2.dispose(); } private function update(_arg1:Event):void{ var _local2:int; var _local3:int; if (dead){ return; }; if (burning){ noiseSeed++; _local2 = offset.length; _local3 = 0; while (_local3 < _local2) { offset[_local3] = offset[_local3].add(dir[_local3]); _local3++; }; perlin.perlinNoise(5, 30, offset.length, perlinSeed, false, false, 7, true, offset); noiseGenerator.noise(noiseSeed, 80, 0xFF, 7, true); noiseGenerator.draw(masker, null, null, BlendMode.ADD); noiseGenerator.draw(perlin, null, tfm, BlendMode.ADD); frontBuffer.draw(noiseGenerator, mtx, null, BlendMode.MULTIPLY); } else { burnoutTimer++; if (burnoutTimer > 200){ dead = true; }; }; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, DEST, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } private function stopFlame(_arg1:Event){ this.removeEventListener(Event.ADDED_TO_STAGE, startFlame); this.removeEventListener(Event.REMOVED_FROM_STAGE, stopFlame); if (parent){ parent.removeChild(this); }; dispose(); } public function set burning(_arg1:Boolean):void{ _burning = _arg1; if (_arg1){ dead = false; burnoutTimer = 0; }; } private function startFlame(_arg1:Event){ this.addEventListener(Event.ENTER_FRAME, update); } } }//package effectsSection 117//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import flash.geom.*; import fl.controls.*; import flash.display.*; import flash.events.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var contentHeight:Number;// = 0 protected var _horizontalScrollBar:ScrollBar; protected var _horizontalPageScrollSize:Number;// = 0 protected var _verticalPageScrollSize:Number;// = 0 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var defaultLineScrollSize:Number;// = 4 protected var vOffset:Number;// = 0 protected var contentScrollRect:Rectangle; protected var background:DisplayObject; protected var _verticalScrollBar:ScrollBar; protected var disabledOverlay:Shape; protected var vScrollBar:Boolean; protected var _horizontalScrollPolicy:String; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var availableHeight:Number; protected var _verticalScrollPolicy:String; protected var contentPadding:Number;// = 0 protected var _useBitmpScrolling:Boolean;// = false protected var availableWidth:Number; protected var hScrollBar:Boolean; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } protected function drawBackground():void{ var _local1:DisplayObject = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } protected function calculateAvailableSize():void{ var _local1:Number = ScrollBar.WIDTH; var _local2:Number = (contentPadding = Number(getStyleValue("contentPadding"))); var _local3:Number = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); var _local4:Number = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); var _local5:Number = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } protected function calculateContentWidth():void{ } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); var _local1:Graphics = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containersSection 118//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import fl.controls.*; import flash.events.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _listData:ListData; protected var _data:Object; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } override protected function drawLayout():void{ var _local3:Number; var _local1:Number = Number(getStyleValue("textPadding")); var _local2:Number = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } public function get data():Object{ return (_data); } public function set data(_arg1:Object):void{ _data = _arg1; } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function get selected():Boolean{ return (super.selected); } override protected function toggleSelected(_arg1:MouseEvent):void{ } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClassesSection 119//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function set x(_arg1:Number):void; function set y(_arg1:Number):void; function setSize(_arg1:Number, _arg2:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get listData():ListData; function get data():Object; function get selected():Boolean; function setMouseState(_arg1:String):void; } }//package fl.controls.listClassesSection 120//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get row():uint{ return (_row); } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClassesSection 121//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var pressTimer:Timer; protected var _autoRepeat:Boolean;// = false protected var _selected:Boolean;// = false protected var background:DisplayObject; private var unlockedMouseState:String; protected var mouseState:String; private var _mouseStateLocked:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } override public function get enabled():Boolean{ return (super.enabled); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function drawLayout():void{ background.width = width; background.height = height; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } protected function drawBackground():void{ var _local1:String = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); var _local2:DisplayObject = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public function get selected():Boolean{ return (_selected); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controlsSection 122//Button (fl.controls.Button) package fl.controls { import fl.core.*; import flash.display.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var _emphasized:Boolean;// = false protected var emphasizedBorder:DisplayObject; private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; var _local1:Object = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controlsSection 123//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controlsSection 124//CheckBox (fl.controls.CheckBox) package fl.controls { import flash.display.*; public class CheckBox extends LabelButton { private static var defaultStyles:Object = {icon:null, upIcon:"CheckBox_upIcon", downIcon:"CheckBox_downIcon", overIcon:"CheckBox_overIcon", disabledIcon:"CheckBox_disabledIcon", selectedDisabledIcon:"CheckBox_selectedDisabledIcon", focusRectSkin:null, focusRectPadding:null, selectedUpIcon:"CheckBox_selectedUpIcon", selectedDownIcon:"CheckBox_selectedDownIcon", selectedOverIcon:"CheckBox_selectedOverIcon", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public static var createAccessibilityImplementation:Function; override protected function drawBackground():void{ } override public function get toggle():Boolean{ return (true); } override protected function initializeAccessibility():void{ if (CheckBox.createAccessibilityImplementation != null){ CheckBox.createAccessibilityImplementation(this); }; } override public function set toggle(_arg1:Boolean):void{ throw (new Error("Warning: You cannot change a CheckBox's toggle.")); } override public function get autoRepeat():Boolean{ return (false); } override public function set autoRepeat(_arg1:Boolean):void{ } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = (background.x - _local2); uiFocusRect.y = (background.y - _local2); uiFocusRect.width = (background.width + (_local2 << 1)); uiFocusRect.height = (background.height + (_local2 << 1)); }; } override protected function configUI():void{ super.configUI(); super.toggle = true; var _local1:Shape = new Shape(); var _local2:Graphics = _local1.graphics; _local2.beginFill(0, 0); _local2.drawRect(0, 0, 100, 100); _local2.endFill(); background = (_local1 as DisplayObject); addChildAt(background, 0); } override protected function drawLayout():void{ super.drawLayout(); var _local1:Number = Number(getStyleValue("textPadding")); switch (_labelPlacement){ case ButtonLabelPlacement.RIGHT: icon.x = _local1; textField.x = (icon.x + (icon.width + _local1)); background.width = ((textField.x + textField.width) + _local1); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.LEFT: icon.x = ((width - icon.width) - _local1); textField.x = (((width - icon.width) - (_local1 * 2)) - textField.width); background.width = ((textField.width + icon.width) + (_local1 * 3)); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.TOP: case ButtonLabelPlacement.BOTTOM: background.width = (Math.max(textField.width, icon.width) + (_local1 * 2)); background.height = ((textField.height + icon.height) + (_local1 * 3)); break; }; background.x = Math.min((icon.x - _local1), (textField.x - _local1)); background.y = Math.min((icon.y - _local1), (textField.y - _local1)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controlsSection 125//ComboBox (fl.controls.ComboBox) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.geom.*; import flash.display.*; import flash.events.*; import fl.data.*; import fl.events.*; import fl.managers.*; import flash.text.*; import flash.ui.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var _dropdownWidth:Number; protected var inputField:TextInput; protected var highlightedCell:int;// = -1 protected var listOverIndex:uint; protected var editableValue:String; protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected var currentIndex:int; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function get imeMode():String{ return (inputField.imeMode); } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } protected function calculateAvailableHeight():Number{ var _local1:Number = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get dropdown():List{ return (list); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } public function get text():String{ return (inputField.text); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } public function get dropdownWidth():Number{ return (list.width); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } override protected function draw():void{ var _local1:* = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function get selectedItem():Object{ return (list.selectedItem); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get editable():Boolean{ return (_editable); } public function get labelField():String{ return (list.labelField); } protected function positionList():void{ var _local1:Point = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get prompt():String{ return (_prompt); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); var _local2:int = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); var _local3:uint = selectedIndex; var _local4:Number = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; var _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } protected function onListItemUp(_arg1:MouseEvent):void{ stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; var _local2:* = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function drawLayout():void{ var _local1:Number = (getStyleValue("buttonWidth") as Number); var _local2:Number = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } protected function setEmbedFonts():void{ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get restrict():String{ return (inputField.restrict); } protected function showPrompt():void{ inputField.text = _prompt; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function get textField():TextInput{ return (inputField); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function get length():int{ return (list.length); } protected function drawTextFormat():void{ var _local1:TextFormat = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } public function get labelFunction():Function{ return (list.labelFunction); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (list.selectedIndex); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controlsSection 126//Label (fl.controls.Label) package fl.controls { import fl.core.*; import fl.events.*; import flash.text.*; public class Label extends UIComponent { protected var _savedHTML:String; protected var _html:Boolean;// = false public var textField:TextField; protected var actualHeight:Number; protected var actualWidth:Number; protected var defaultLabel:String;// = "Label" private static var defaultStyles:Object = {textFormat:null, embedFonts:false}; public function Label(){ text = defaultLabel; actualWidth = _width; actualHeight = _height; } override public function setSize(_arg1:Number, _arg2:Number):void{ actualWidth = _arg1; actualHeight = _arg2; super.setSize(_arg1, _arg2); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } override public function get width():Number{ if (((!((textField.autoSize == TextFieldAutoSize.NONE))) && (!(wordWrap)))){ return (_width); }; return (actualWidth); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } protected function drawLayout():void{ var _local2:Number; var _local3:Number; var _local1:Boolean; textField.width = width; textField.height = height; if (textField.autoSize != TextFieldAutoSize.NONE){ _local2 = textField.width; _local3 = textField.height; _local1 = ((!((_width == _local2))) || (!((_height == _local3)))); _width = _local2; _height = _local3; switch (textField.autoSize){ case TextFieldAutoSize.CENTER: textField.x = ((actualWidth / 2) - (textField.width / 2)); break; case TextFieldAutoSize.LEFT: textField.x = 0; break; case TextFieldAutoSize.RIGHT: textField.x = -((textField.width - actualWidth)); break; }; } else { textField.width = actualWidth; textField.height = actualHeight; textField.x = 0; }; if (_local1){ dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, true)); }; } public function get autoSize():String{ return (textField.autoSize); } override public function set width(_arg1:Number):void{ actualWidth = _arg1; super.width = _arg1; } public function get selectable():Boolean{ return (textField.selectable); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE); }; } public function set text(_arg1:String):void{ if (_arg1 == text){ return; }; if (((componentInspectorSetting) && ((_arg1 == defaultLabel)))){ return; }; _html = false; textField.text = _arg1; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE); }; } override protected function configUI():void{ super.configUI(); textField = new TextField(); addChild(textField); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; textField.wordWrap = false; } public function set autoSize(_arg1:String):void{ textField.autoSize = _arg1; invalidate(InvalidationType.SIZE); } override public function get height():Number{ if (((!((textField.autoSize == TextFieldAutoSize.NONE))) && (wordWrap))){ return (_height); }; return (actualHeight); } public function set wordWrap(_arg1:Boolean):void{ textField.wordWrap = _arg1; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE); }; } public function set selectable(_arg1:Boolean):void{ textField.selectable = _arg1; } public function get text():String{ return (textField.text); } protected function drawTextFormat():void{ var _local2:Object; var _local1:TextFormat = (getStyleValue("textFormat") as TextFormat); if (_local1 == null){ _local2 = UIComponent.getStyleDefinition(); _local1 = (enabled) ? (_local2.defaultTextFormat as TextFormat) : (_local2.defaultDisabledTextFormat as TextFormat); }; textField.defaultTextFormat = _local1; textField.setTextFormat(_local1); if (((_html) && (!((_savedHTML == null))))){ htmlText = _savedHTML; }; } public function get wordWrap():Boolean{ return (textField.wordWrap); } public function set htmlText(_arg1:String):void{ if (_arg1 == htmlText){ return; }; if (((componentInspectorSetting) && ((_arg1 == "")))){ return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; if (textField.autoSize != TextFieldAutoSize.NONE){ invalidate(InvalidationType.SIZE); }; } public function get htmlText():String{ return (textField.htmlText); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controlsSection 127//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.events.*; import fl.managers.*; import flash.text.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _toggle:Boolean;// = false public var textField:TextField; protected var mode:String;// = "center" protected var _labelPlacement:String;// = "right" protected var oldMouseState:String; protected var _label:String;// = "Label" protected var icon:DisplayObject; private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override protected function drawLayout():void{ var _local7:Number; var _local8:Number; var _local1:Number = Number(getStyleValue("textPadding")); var _local2:String = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); var _local3:Number = (textField.textWidth + 4); var _local4:Number = (textField.textHeight + 4); var _local5:Number = ((icon)==null) ? 0 : (icon.width + _local1); var _local6:Number = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } public function get labelPlacement():String{ return (_labelPlacement); } public function get toggle():Boolean{ return (_toggle); } protected function setEmbedFont(){ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } protected function drawIcon():void{ var _local1:DisplayObject = icon; var _local2:String = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); var _local3:Object = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } protected function drawTextFormat():void{ var _local1:Object = UIComponent.getStyleDefinition(); var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public function get label():String{ return (_label); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controlsSection 128//List (fl.controls.List) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.geom.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.managers.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _iconField:String;// = "icon" protected var _labelField:String;// = "label" protected var _iconFunction:Function; protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _labelFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function get iconField():String{ return (_iconField); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ var _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } override public function scrollToIndex(_arg1:int):void{ drawNow(); var _local2:uint = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); var _local3:uint = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); var _local5 = -1; var _local6:int; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local5:int; var _local6:Array; var _local7:int; var _local8:int; var _local4:Boolean; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } public function get rowHeight():Number{ return (_rowHeight); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } public function get labelField():String{ return (_labelField); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number = Number(getStyleValue("contentPadding")); var _local3:Number = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } public function get labelFunction():Function{ return (_labelFunction); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } override protected function drawList():void{ var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); var _local1:Rectangle = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; var _local2:uint = Math.floor((_verticalScrollPosition / rowHeight)); var _local3:uint = Math.min(length, ((_local2 + rowCount) + 1)); var _local7:Dictionary = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; var _local8:Dictionary = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12.hasOwnProperty("setStyle")){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } public function get iconFunction():Function{ return (_iconFunction); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } protected function calculateAvailableHeight():Number{ var _local1:Number = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controlsSection 129//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" private var _minScrollPosition:Number;// = 0 private var _pageSize:Number;// = 10 private var _maxScrollPosition:Number;// = 0 protected var downArrow:BaseButton; private var _lineScrollSize:Number;// = 1 protected var upArrow:BaseButton; private var _scrollPosition:Number;// = 0 private var thumbScrollOffset:Number; protected var track:BaseButton; protected var thumb:LabelButton; protected var inDrag:Boolean;// = false private var _pageScrollSize:Number;// = 0 protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ setStyles(); focusEnabled = false; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } public function get minScrollPosition():Number{ return (_minScrollPosition); } protected function updateThumb():void{ var _local1:Number = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function get lineScrollSize():Number{ return (_lineScrollSize); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } public function set direction(_arg1:String):void{ if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); var _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function get direction():String{ return (_direction); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controlsSection 130//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controlsSection 131//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controlsSection 132//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.data.*; import fl.events.*; import fl.managers.*; import fl.containers.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _verticalScrollPosition:Number; protected var _selectedIndices:Array; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var availableCellRenderers:Array; protected var rendererStyles:Object; protected var list:Sprite; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var listHolder:Sprite; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ if (_arg1 == _verticalScrollPosition){ return; }; var _local3:Number = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); var _local3:int = (length - 1); var _local4:Number = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } override protected function draw():void{ super.draw(); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local5:uint; var _local2:int = _arg1.startIndex; var _local3:int = _arg1.endIndex; var _local4:String = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } public function get rowCount():uint{ return (0); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function get selectable():Boolean{ return (_selectable); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer = (_arg1.target as ICellRenderer); var _local3:String = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ if (!_enabled){ return; }; var _local2:ICellRenderer = (_arg1.currentTarget as ICellRenderer); var _local3:uint = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } public function removeAll():void{ _dataProvider.removeAll(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function scrollToIndex(_arg1:int):void{ } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } public function set selectedItem(_arg1:Object):void{ var _local2:int = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer = (_arg1.currentTarget as ICellRenderer); var _local3:uint = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } protected function updateRendererStyles():void{ var _local4:String; var _local1:Array = availableCellRenderers.concat(activeCellRenderers); var _local2:uint = _local1.length; var _local3:uint; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function clearSelection():void{ selectedIndex = -1; } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function set selectedItems(_arg1:Array):void{ var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; var _local2:Array = []; var _local3:uint; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ if (_arg1 == _horizontalScrollPosition){ return; }; var _local3:Number = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function get selectedItems():Array{ var _local1:Array = []; var _local2:uint; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function get length():uint{ return (_dataProvider.length); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local5:int; var _local6:uint; if (!_enabled){ return; }; var _local2:ICellRenderer = (_arg1.currentTarget as ICellRenderer); var _local3:uint = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; var _local4:int = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controlsSection 133//TextArea (fl.controls.TextArea) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.events.*; import fl.managers.*; import flash.text.*; import flash.system.*; import flash.ui.*; public class TextArea extends UIComponent implements IFocusManagerComponent { protected var _horizontalScrollBar:UIScrollBar; protected var _html:Boolean;// = false protected var background:DisplayObject; protected var _verticalScrollBar:UIScrollBar; protected var _savedHTML:String; protected var _horizontalScrollPolicy:String;// = "auto" protected var _editable:Boolean;// = true protected var textHasChanged:Boolean;// = false public var textField:TextField; protected var _wordWrap:Boolean;// = true protected var _verticalScrollPolicy:String;// = "auto" protected static const SCROLL_BAR_STYLES:Object = {downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {upSkin:"TextArea_upSkin", disabledSkin:"TextArea_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseChildren = enabled; invalidate(InvalidationType.STATE); } override protected function focusInHandler(_arg1:FocusEvent):void{ setIMEMode(true); if (_arg1.target == this){ stage.focus = textField; }; var _local2:IFocusManager = focusManager; if (_local2){ if (editable){ _local2.showFocusIndicator = true; }; _local2.defaultButtonEnabled = false; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); invalidate(InvalidationType.DATA); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } public function get imeMode():String{ return (IME.conversionMode); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } protected function handleWheel(_arg1:MouseEvent):void{ if (((!(enabled)) || (!(_verticalScrollBar.visible)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * _verticalScrollBar.lineScrollSize)); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, (_arg1.delta * _verticalScrollBar.lineScrollSize), _verticalScrollBar.scrollPosition)); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; invalidate(InvalidationType.DATA); } public function get textWidth():Number{ drawNow(); return (textField.textWidth); } override protected function focusOutHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager = focusManager; if (_local2){ _local2.defaultButtonEnabled = true; }; setSelection(0, 0); super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } protected function handleScroll(_arg1:ScrollEvent):void{ dispatchEvent(_arg1); } protected function drawLayout():void{ var _local1:Number = Number(getStyleValue("textPadding")); textField.x = (textField.y = _local1); background.width = width; background.height = height; var _local2:Number = height; var _local3:Boolean = needVScroll(); var _local4:Number = (width - (_local3) ? _verticalScrollBar.width : 0); var _local5:Boolean = needHScroll(); if (_local5){ _local2 = (_local2 - _horizontalScrollBar.height); }; setTextSize(_local4, _local2, _local1); if (((((_local5) && (!(_local3)))) && (needVScroll()))){ _local3 = true; _local4 = (_local4 - _verticalScrollBar.width); setTextSize(_local4, _local2, _local1); }; if (_local3){ _verticalScrollBar.visible = true; _verticalScrollBar.x = (width - _verticalScrollBar.width); _verticalScrollBar.height = _local2; _verticalScrollBar.visible = true; _verticalScrollBar.enabled = enabled; } else { _verticalScrollBar.visible = false; }; if (_local5){ _horizontalScrollBar.visible = true; _horizontalScrollBar.y = (height - _horizontalScrollBar.height); _horizontalScrollBar.width = _local4; _horizontalScrollBar.visible = true; _horizontalScrollBar.enabled = enabled; } else { _horizontalScrollBar.visible = false; }; updateScrollBars(); addEventListener(Event.ENTER_FRAME, delayedLayoutUpdate, false, 0, true); } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } protected function drawBackground():void{ var _local1:DisplayObject = background; var _local2:String = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background != null){ addChildAt(background, 0); }; if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function delayedLayoutUpdate(_arg1:Event):void{ if (textHasChanged){ textHasChanged = false; drawLayout(); return; }; removeEventListener(Event.ENTER_FRAME, delayedLayoutUpdate); } public function get verticalScrollPosition():Number{ return (textField.scrollV); } public function get text():String{ return (textField.text); } public function get verticalScrollBar():UIScrollBar{ return (_verticalScrollBar); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get textHeight():Number{ drawNow(); return (textField.textHeight); } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } public function get maxVerticalScrollPosition():int{ return (textField.maxScrollV); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } protected function setEmbedFont(){ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STATE)){ updateTextFieldType(); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFont(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA)){ drawLayout(); }; super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; invalidate(InvalidationType.STATE); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } protected function setTextSize(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number = (_arg1 - (_arg3 * 2)); var _local5:Number = (_arg2 - (_arg3 * 2)); if (_local4 != textField.width){ textField.width = _local4; }; if (_local5 != textField.height){ textField.height = _local5; }; } public function get horizontalScrollBar():UIScrollBar{ return (_horizontalScrollBar); } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); _verticalScrollBar = new UIScrollBar(); _verticalScrollBar.name = "V"; _verticalScrollBar.visible = false; _verticalScrollBar.focusEnabled = false; copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); addChild(_verticalScrollBar); _horizontalScrollBar = new UIScrollBar(); _horizontalScrollBar.name = "H"; _horizontalScrollBar.visible = false; _horizontalScrollBar.focusEnabled = false; _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); addChild(_horizontalScrollBar); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); _horizontalScrollBar.scrollTarget = textField; _verticalScrollBar.scrollTarget = textField; addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); textField.scrollV = _arg1; } public function get maxChars():int{ return (textField.maxChars); } public function set text(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ return; }; textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); textHasChanged = true; } protected function updateScrollBars(){ _horizontalScrollBar.update(); _verticalScrollBar.update(); _verticalScrollBar.enabled = enabled; _horizontalScrollBar.enabled = enabled; _horizontalScrollBar.drawNow(); _verticalScrollBar.drawNow(); } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function needHScroll():Boolean{ if (_horizontalScrollPolicy == ScrollPolicy.OFF){ return (false); }; if (_horizontalScrollPolicy == ScrollPolicy.ON){ return (true); }; return ((textField.maxScrollH > 0)); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function get horizontalScrollPosition():Number{ return (textField.scrollH); } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (_editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; textField.wordWrap = _wordWrap; textField.multiline = true; } public function appendText(_arg1:String):void{ textField.appendText(_arg1); invalidate(InvalidationType.DATA); } public function set wordWrap(_arg1:Boolean):void{ _wordWrap = _arg1; invalidate(InvalidationType.STATE); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } public function get length():Number{ return (textField.text.length); } protected function drawTextFormat():void{ var _local1:Object = UIComponent.getStyleDefinition(); var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } public function set htmlText(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ return; }; if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); textHasChanged = true; } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } public function get htmlText():String{ return (textField.htmlText); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get wordWrap():Boolean{ return (_wordWrap); } protected function needVScroll():Boolean{ if (_verticalScrollPolicy == ScrollPolicy.OFF){ return (false); }; if (_verticalScrollPolicy == ScrollPolicy.ON){ return (true); }; return ((textField.maxScrollV > 1)); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controlsSection 134//TextInput (fl.controls.TextInput) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.events.*; import fl.managers.*; import flash.text.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var background:DisplayObject; protected var _savedHTML:String; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } public function get imeMode():String{ return (_imeMode); } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } protected function setEmbedFont(){ var _local1:Object = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } protected function drawLayout():void{ var _local1:Number = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function get textWidth():Number{ return (textField.textWidth); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } override public function setFocus():void{ stage.focus = textField; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } protected function drawBackground():void{ var _local1:DisplayObject = background; var _local2:String = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } public function get text():String{ return (textField.text); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } public function get textHeight():Number{ return (textField.textHeight); } public function get restrict():String{ return (textField.restrict); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function get maxChars():int{ return (textField.maxChars); } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } protected function drawTextFormat():void{ var _local1:Object = UIComponent.getStyleDefinition(); var _local2:TextFormat = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); var _local3:TextFormat = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } public function get length():int{ return (textField.length); } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } override protected function focusInHandler(_arg1:FocusEvent):void{ if (_arg1.target == this){ stage.focus = textField; }; var _local2:IFocusManager = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get htmlText():String{ return (textField.htmlText); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controlsSection 135//UIScrollBar (fl.controls.UIScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; import flash.text.*; public class UIScrollBar extends ScrollBar { protected var inEdit:Boolean;// = false protected var inScroll:Boolean;// = false protected var _scrollTarget:TextField; private static var defaultStyles:Object = {}; protected function updateScrollTargetProperties():void{ var _local1:Boolean; var _local2:Number; if (_scrollTarget == null){ setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize); scrollPosition = 0; } else { _local1 = (direction == ScrollBarDirection.HORIZONTAL); _local2 = (_local1) ? _scrollTarget.width : 10; setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize); scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV; }; } override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ var _local5:Number = _arg3; var _local6:Number = ((_arg2)<0) ? 0 : _arg2; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5; } else { _local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5; }; }; super.setScrollProperties(_arg1, _local6, _local5, _arg4); } protected function handleTargetScroll(_arg1:Event):void{ if (inDrag){ return; }; if (!enabled){ return; }; inEdit = true; updateScrollTargetProperties(); scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV; inEdit = false; } override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ super.setScrollPosition(_arg1, _arg2); if (!_scrollTarget){ inScroll = false; return; }; updateTargetScroll(); } public function get scrollTargetName():String{ return (_scrollTarget.name); } override protected function draw():void{ if (isInvalid(InvalidationType.DATA)){ updateScrollTargetProperties(); }; super.draw(); } override public function set direction(_arg1:String):void{ if (isLivePreview){ return; }; super.direction = _arg1; updateScrollTargetProperties(); } protected function updateTargetScroll(_arg1:ScrollEvent=null):void{ if (inEdit){ return; }; if (direction == ScrollBarDirection.HORIZONTAL){ _scrollTarget.scrollH = scrollPosition; } else { _scrollTarget.scrollV = scrollPosition; }; } override public function set minScrollPosition(_arg1:Number):void{ super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1; } override public function set maxScrollPosition(_arg1:Number):void{ var _local2:Number = _arg1; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2; } else { _local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2; }; }; super.maxScrollPosition = _local2; } protected function handleTargetChange(_arg1:Event):void{ inEdit = true; setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true); updateScrollTargetProperties(); inEdit = false; } public function update():void{ inEdit = true; updateScrollTargetProperties(); inEdit = false; } public function set scrollTargetName(_arg1:String):void{ var target = _arg1; try { scrollTarget = (parent.getChildByName(target) as TextField); } catch(error:Error) { throw (new Error("ScrollTarget not found, or is not a TextField")); }; } public function set scrollTarget(_arg1:TextField):void{ if (_scrollTarget != null){ _scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false); _scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false); _scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false); removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false); }; _scrollTarget = _arg1; if (_scrollTarget != null){ _scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true); addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true); }; invalidate(InvalidationType.DATA); } public function get scrollTarget():TextField{ return (_scrollTarget); } override public function get direction():String{ return (super.direction); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controlsSection 136//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.coreSection 137//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.coreSection 138//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import flash.utils.*; import fl.events.*; import fl.managers.*; import flash.text.*; import flash.system.*; public class UIComponent extends Sprite { protected var _x:Number; protected var _enabled:Boolean;// = true protected var callLaterMethods:Dictionary; private var _mouseFocusEnabled:Boolean;// = true private var tempText:TextField; private var _focusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var invalidateFlag:Boolean;// = false protected var _oldIMEMode:String;// = null protected var _inspector:Boolean;// = false protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var invalidHash:Object; protected var sharedStyles:Object; protected var uiFocusRect:DisplayObject; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var _width:Number; protected var instanceStyles:Object; public var version:String;// = "3.0.0.16" protected var isFocused:Boolean;// = false protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } private function callLaterDispatcher(_arg1:Event):void{ var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; var _local2:Dictionary = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } protected function validate():void{ invalidHash = {}; } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } override public function get height():Number{ return (_height); } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } override public function get scaleY():Number{ return ((height / startHeight)); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function configUI():void{ isLivePreview = checkLivePreview(); var _local1:Number = rotation; rotation = 0; var _local2:Number = super.width; var _local3:Number = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } override public function get scaleX():Number{ return ((width / startWidth)); } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var skin = _arg1; var classDef:Object; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } override public function set visible(_arg1:Boolean):void{ if (super.visible == _arg1){ return; }; super.visible = _arg1; var _local2:String = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set y(_arg1:Number):void{ move(_x, _arg1); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local5:Object; var _local6:String; var _local2:Object = {}; var _local3:uint = _args.length; var _local4:uint; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.coreSection 139//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } public function removeItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); var _local2:Array = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); } else { if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; }; throw (new ((!NULL! + !NULL!) + " to Array or DataProvider.").TypeError(!NULL!)); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } public function sortOn(_arg1:Object, _arg2:Object=null){ dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); var _local3:Array = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function toArray():Array{ return (data.concat()); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function clone():DataProvider{ return (new DataProvider(data)); } public function sort(... _args){ dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); var _local2:Array = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); var _local3:Array = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local6:Object; var _local2:Array = getDataFromObject(_arg1); var _local3:uint = _local2.length; var _local4:uint = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); var _local5:uint; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ checkIndex(_arg2, (data.length - 1)); var _local3:Array = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.dataSection 140//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var data:String; public var label:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.dataSection 141//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.eventsSection 142//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _changeType:String; protected var _startIndex:uint; protected var _endIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get items():Array{ return (_items); } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get endIndex():uint{ return (_endIndex); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } } }//package fl.eventsSection 143//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.eventsSection 144//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _item:Object; protected var _index:int; protected var _rowIndex:int; protected var _columnIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get item():Object{ return (_item); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get columnIndex():int{ return (_columnIndex); } } }//package fl.eventsSection 145//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _direction:String; private var _position:Number; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } public function get position():Number{ return (_position); } public function get direction():String{ return (_direction); } public function get delta():Number{ return (_delta); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } } }//package fl.eventsSection 146//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; var _local5:int = focusableCandidates.length; var _local6:int = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } private function setFocusToNextObject(_arg1:FocusEvent):void{ if (!hasFocusableObjects()){ return; }; var _local2:InteractiveObject = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local3:TextField; var _local4:SimpleButton; var _local2:DisplayObjectContainer = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } private function tabChildrenChangeHandler(_arg1:Event):void{ if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } public function getFocus():InteractiveObject{ var _local1:InteractiveObject = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } public function set defaultButton(_arg1:Button):void{ var _local2:Button = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int = focusableCandidates.length; var _local3:int; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local4:InteractiveObject; var _local3:DisplayObject = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local5:int; var _local6:String; var _local7:String; var _local3 = ""; var _local4 = ""; var _local8 = "0000"; var _local9:DisplayObject = DisplayObject(_arg1); var _local10:DisplayObject = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; var _local2:DisplayObject = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); var _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; var _local4:int = getIndexOfFocusedObject(_local2); var _local5:Boolean; var _local6:int = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; var _local7:int = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ if (_arg1.isDefaultPrevented()){ return; }; var _local2:InteractiveObject = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local3:Button; var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ calculateCandidates = true; var _local2:InteractiveObject = InteractiveObject(_arg1.target); var _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } } }//package fl.managersSection 147//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function hideFocus():void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function setFocus(_arg1:InteractiveObject):void; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managersSection 148//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.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 fl.managersSection 149//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function get groupName():String; function get selected():Boolean; function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; } }//package fl.managersSection 150//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.utils.*; import flash.text.*; public class StyleManager { private var classToInstancesDict:Dictionary; private var globalStyles:Object; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToDefaultStylesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class = getClassDef(_arg1); var _local5:Object = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local5:String; var _local2:StyleManager = getInstance(); var _local3:Class = getClassDef(_arg1); var _local4:Object = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local4:Object; var _local5:UIComponent; var _local3:Dictionary = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local3:Object; var _local2:Dictionary = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; var inst:StyleManager = getInstance(); var classDef:Class = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; if (inst.classToStylesDict[classDef] == null){ inst.classToStylesDict[classDef] = {}; }; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:StyleManager = getInstance(); var _local5:Object = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managersSection 151//Block (game.Block) package game { import flash.display.*; public class Block extends Shape { public var type:int; public function Block(_arg1:int):void{ type = _arg1; } } }//package gameSection 152//BounceUpPowerUp (game.BounceUpPowerUp) package game { import flash.display.*; import com.leveleditor.*; public class BounceUpPowerUp extends PowerUpBase { public var powerUpHitArea:Pow2Editor; public function BounceUpPowerUp():void{ } override protected function applyEffect():void{ owner.bounceBonus(); } override protected function initPalette():void{ var _local1:Sprite = new TransparentGreenFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } override protected function hideHitArea():void{ } } }//package gameSection 153//Burnable (game.Burnable) package game { import screen.*; import flash.geom.*; import Box2D.Dynamics.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.filters.*; public class Burnable extends Sprite implements IFireEmitter { protected const PT_ZERO:Point; protected const MATRIX_3x5; protected const FLAME_HEIGHT:int = 35; protected const SCREEN_RECT:Rectangle; protected const FLAME_WIDTH:int = 20; protected var dissolveRandom:int; protected var disintegrateCounter:int; protected var SOURCE:Rectangle; public var neighbour:Array; protected var DEST:Point; protected var targetBitmap:BitmapData; public var dummy:MovieClip; protected var DISSOLVE_SOURCE:Rectangle; protected var noiseSeed:uint;// = 0 protected var mtx:Matrix; protected var burning:Boolean; protected var cFilter:ConvolutionFilter; public var burnTime:int; protected var fire:Bitmap; protected var display:Bitmap; protected var destroyed:Boolean;// = false protected var frontBuffer:BitmapData; protected var dissolveCounter:int; protected var screenBuffer:BitmapData; protected var alive:Boolean; public var blockBody:b2Body; protected var owner:GameLevelScreen; protected var origBitmap:BitmapData; protected var noiseMin:int; protected var spark:BitmapData; public var spreadTime:int; protected var dissolving:Boolean; protected var stopTime:int; protected var spread:Boolean;// = false protected var currentTime:int; protected var palette:Array; public var bound:Rectangle; protected static var burnCount:int; protected static var targetVol:Number; public static var depth:int; protected static var crackleTfm:SoundTransform; protected static var isPlaying:Boolean; protected static var crackle:Sound; protected static var crackleChannel:SoundChannel; public function Burnable():void{ MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); SCREEN_RECT = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); PT_ZERO = new Point(0, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.35, -2, true, false, 0xFF, 1); frontBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); palette = new Array(); DISSOLVE_SOURCE = new Rectangle(0, 0, 20, 20); super(); neighbour = new Array(); burning = false; alive = true; disintegrateCounter = -1; currentTime = 0; } public function drawSpark(_arg1:int=0):void{ var _local2:int; var _local3:int; var _local4:int; if (!burning){ return; }; if (alive){ noiseSeed++; spark.noise(noiseSeed, noiseMin, 0xFF, BitmapDataChannel.BLUE, true); frontBuffer.draw(spark, mtx, null, BlendMode.MULTIPLY); }; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); if (dissolveCounter > 0){ dissolveCounter--; dissolveRandom = origBitmap.pixelDissolve(targetBitmap, DISSOLVE_SOURCE, DEST, dissolveRandom, 30); } else { if (disintegrateCounter > 0){ disintegrateCounter--; dissolveRandom = origBitmap.pixelDissolve(origBitmap, DISSOLVE_SOURCE, DEST, dissolveRandom, 30, 0); } else { if (disintegrateCounter == 0){ removeChild(display); }; }; }; updateSound(); currentTime++; if ((((currentTime >= spreadTime)) && (!(spread)))){ spread = true; _local3 = neighbour.length; _local4 = (currentTime - spreadTime); _local2 = 0; while (_local2 < _local3) { neighbour[_local2].burn(_local4); _local2++; }; }; if ((((currentTime >= burnTime)) && (!(destroyed)))){ destroyed = true; blockBody.m_world.DestroyBody(blockBody); alive = false; dissolveRandom = (Math.random() * int.MAX_VALUE); disintegrateCounter = 50; }; if (currentTime > stopTime){ dispose(); }; } public function addNeighbour(_arg1:DisplayObjectContainer):void{ neighbour.push(_arg1); } public function init(_arg1:Class, _arg2:Class):void{ var _local3:DisplayObjectContainer = DisplayObjectContainer(owner); origBitmap = new _arg1(20, 20); targetBitmap = new _arg2(20, 20); display = new Bitmap(origBitmap); display.x = dummy.x; display.y = dummy.y; addChild(display); removeChild(dummy); dummy = null; _local3.addChild(fire); bound = this.getBounds(this.parent); bound.inflate(2, 2); stopTime = int.MAX_VALUE; } public function dispose(_arg1:Event=null):void{ var e = _arg1; try { owner.removeFire(this); } catch(e:Error) { }; this.visible = false; burnCount--; if (burnCount < 0){ burnCount = 0; }; if (burnCount < 13){ targetVol = (burnCount / 12); }; if (crackleChannel){ updateSound(); }; try { fire.parent.removeChild(fire); } catch(e:Error) { }; try { removeChild(display); } catch(e:Error) { }; display = null; frontBuffer.dispose(); screenBuffer.dispose(); spark.dispose(); origBitmap.dispose(); targetBitmap.dispose(); frontBuffer = null; screenBuffer = null; spark = null; origBitmap = null; targetBitmap = null; cFilter = null; palette.length = 0; try { parent.removeChild(this); } catch(e:Error) { }; owner.reportBurnStop(); } public function initSpark(_arg1:GameLevelScreen):void{ owner = _arg1; noiseSeed = (Math.random() * 50000); noiseMin = ((Math.random() * 10) + 160); dissolveRandom = (Math.random() * int.MAX_VALUE); dissolveCounter = 50; spark = new BitmapData(20, 20, false, 0); mtx = new Matrix(1, 0, 0, 1, 0, (FLAME_HEIGHT - 20)); fire = new Bitmap(screenBuffer); fire.x = (x - (width / 2)); fire.y = ((y - FLAME_HEIGHT) + (height / 2)); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); DEST = new Point(); initPalette(); if (!crackle){ crackle = new Crackle(); crackleTfm = new SoundTransform(0, 0); isPlaying = false; targetVol = 0; burnCount = 0; }; } protected function initPalette():void{ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } public function burn(_arg1:int=0):void{ if (!burning){ parent.addChildAt(fire, depth); burning = true; burnCount++; if (burnCount < 13){ targetVol = (burnCount / 12); }; spreadTime = (spreadTime + (Math.random() * 20)); stopTime = (burnTime + 48); owner.reportBurnStart(); }; } protected function updateSound():void{ var _local1:Number = crackleTfm.volume; _local1 = (_local1 + ((targetVol - _local1) * 0.05)); if (_local1 < 0.0001){ _local1 = 0; }; crackleTfm.volume = _local1; if (((_local1) && (!(isPlaying)))){ isPlaying = true; crackleChannel = crackle.play(0, int.MAX_VALUE, crackleTfm); } else { if (_local1){ if (crackleChannel){ crackleChannel.soundTransform = crackleTfm; }; } else { if (crackleChannel){ crackleChannel.stop(); }; isPlaying = false; }; }; } public static function stopSound():void{ if (crackleChannel){ crackleChannel.stop(); isPlaying = false; }; } } }//package gameSection 154//ContactListener (game.ContactListener) package game { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import flash.display.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; public class ContactListener extends b2ContactListener { private const NEG:uint; private var mParent:MovieClip; private static var thocks:Array; private static var glass:Array; private static var thunks:Array; private static var metals:Array; public function ContactListener(_arg1:DisplayObjectContainer):void{ NEG = (1 << 31); super(); mParent = (_arg1 as MovieClip); if (!thocks){ thocks = new Array(2); thocks[0] = new Thock_0(); thocks[1] = new Thock_1(); thunks = new Array(4); thunks[0] = new Thunk_0(); thunks[1] = new Thunk_1(); thunks[2] = new Thunk_2(); thunks[3] = new Thunk_3(); metals = new Array(4); metals[0] = new Metal1(); metals[1] = new Metal2(); metals[2] = new Metal3(); metals[3] = new Metal4(); glass = new Array(3); glass[0] = new Glass1(); glass[1] = new Glass2(); glass[2] = new Glass3(); }; } override public function Add(_arg1:b2ContactPoint):void{ var _local4:DisplayObject; var _local5:b2Body; var _local6:DisplayObject; var _local2:b2Shape = _arg1.shape1; var _local3:b2Shape = _arg1.shape2; if (_local2.m_isSensor){ _local4 = _local3.GetBody().m_userData; if ((_local4 is DummyBody)){ return; }; _local5 = _local2.GetBody(); _local6 = _local5.m_userData; if ((_local6 is TorchBase)){ TorchBase(_local6).touch(); _local5.m_world.DestroyBody(_local5); } else { if ((_local6 is PowerUpBase)){ PowerUpBase(_local6).touch(); _local5.m_world.DestroyBody(_local5); }; }; } else { if (_local3.m_isSensor){ _local6 = _local2.GetBody().m_userData; if ((_local6 is DummyBody)){ return; }; _local5 = _local3.GetBody(); _local4 = _local5.m_userData; if ((_local4 is TorchBase)){ TorchBase(_local4).touch(); _local5.m_world.DestroyBody(_local5); } else { if ((_local4 is PowerUpBase)){ PowerUpBase(_local4).touch(); _local5.m_world.DestroyBody(_local5); }; }; }; }; } override public function Result(_arg1:b2ContactResult):void{ var _local4:Number; var _local5:int; var _local2:DisplayObject = _arg1.shape2.GetBody().m_userData; if ((_local2 is DummyBody)){ return; }; var _local3:DisplayObject = _arg1.shape1.GetBody().m_userData; if ((_local3 is Crate)){ _local4 = _arg1.normalImpulse; Burnable(_local3).burn(); if (_local4 > 0.1){ _local5 = (((_local4 - 0.1) * 0.5) * 4); if (_local5 > 3){ _local5 = 3; }; thunks[_local5].play(); }; } else { if ((_local3 is Block)){ _local4 = _arg1.normalImpulse; if (_local4 > 0.1){ switch ((_local3 as Block).type){ case 0: _local5 = (_local4 - 0.1); if (_local5 > 1){ _local5 = 1; }; thocks[_local5].play(); break; case 1: _local5 = (((_local4 - 0.1) * 0.8) * 4); if (_local5 > 3){ _local5 = 3; }; metals[_local5].play(); break; case 2: _local5 = (((_local4 - 0.1) * 0.8) * 3); if (_local5 > 2){ _local5 = 2; }; glass[_local5].play(); break; }; }; }; }; } } }//package gameSection 155//HalfSizePowerUp (game.HalfSizePowerUp) package game { import flash.display.*; import com.leveleditor.*; public class HalfSizePowerUp extends PowerUpBase { public var powerUpHitArea:Pow4Editor; public function HalfSizePowerUp():void{ } override protected function applyEffect():void{ owner.halfSizeBonus(); } override protected function initPalette():void{ var _local1:Sprite = new TransparentBlueFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } override protected function hideHitArea():void{ } } }//package gameSection 156//IFireEmitter (game.IFireEmitter) package game { import screen.*; public interface IFireEmitter { function drawSpark(_arg1:int=0):void; function initSpark(_arg1:GameLevelScreen):void; } }//package gameSection 157//LongLinePowerUp (game.LongLinePowerUp) package game { import flash.display.*; import com.leveleditor.*; public class LongLinePowerUp extends PowerUpBase { public var powerUpHitArea:Pow3Editor; public function LongLinePowerUp():void{ } override protected function applyEffect():void{ owner.previewBonus(); } override protected function initPalette():void{ var _local1:Sprite = new TransparentRedFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } override protected function hideHitArea():void{ } } }//package gameSection 158//PlusOnePowerUp (game.PlusOnePowerUp) package game { import com.leveleditor.*; public class PlusOnePowerUp extends PowerUpBase { public var powerUpHitArea:Pow1Editor; public function PlusOnePowerUp():void{ } override protected function applyEffect():void{ owner.lifeBonus(); } override protected function hideHitArea():void{ } } }//package gameSection 159//PowerUpBase (game.PowerUpBase) package game { import screen.*; import flash.geom.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.filters.*; public class PowerUpBase extends Sprite implements IFireEmitter { protected const PT_ZERO:Point; protected const FLAME_HEIGHT:int = 35; protected const MATRIX_3x5; protected var cFilter:ConvolutionFilter; protected var frontBuffer:BitmapData; protected var screenBuffer:BitmapData; protected var alive:Boolean; protected var fire:Bitmap; protected var timer:Timer; protected var masker:BitmapData; protected var SOURCE:Rectangle; protected var spark:BitmapData; protected var DEST:Point; protected var noiseSeed:uint;// = 0 protected var mtx:Matrix; protected var owner:GameLevelScreen; protected var palette:Array; public static var depth:int; protected static var sounds:Array; public function PowerUpBase():void{ MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); PT_ZERO = new Point(0, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.35, -2, true, false, 0xFF, 1); palette = new Array(); super(); alive = true; if (!sounds){ sounds = new Array(4); sounds[0] = new Torch_0(); sounds[1] = new Torch_1(); sounds[2] = new Torch_2(); sounds[3] = new Torch_3(); }; } public function drawSpark(_arg1:int=0):void{ if (alive){ noiseSeed++; spark.noise(noiseSeed, 163, 0xFF, BitmapDataChannel.BLUE, true); spark.draw(masker, null, null, BlendMode.ADD); frontBuffer.draw(spark, mtx, null, BlendMode.MULTIPLY); }; frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } protected function hideHitArea():void{ } public function dispose(_arg1:TimerEvent=null):void{ owner.removeChild(fire); if (parent){ this.parent.removeChild(this); }; owner.removeFire(this); if (timer){ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, dispose); }; screenBuffer.dispose(); frontBuffer.dispose(); spark.dispose(); masker.dispose(); palette.length = 0; fire = null; screenBuffer = null; frontBuffer = null; spark = null; masker = null; palette = null; mtx = null; SOURCE = null; DEST = null; timer = null; } protected function initPalette():void{ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } protected function applyEffect():void{ } public function initSpark(_arg1:GameLevelScreen):void{ var _local2:DisplayObjectContainer; _local2 = DisplayObjectContainer(_arg1); owner = _arg1; hideHitArea(); noiseSeed = (Math.random() * uint.MAX_VALUE); var _local3:Sprite = new NoiseGenerator(); spark = new BitmapData(_local3.width, _local3.height, false, 0); masker = new BitmapData(_local3.width, _local3.height, false, 0); frontBuffer = new BitmapData(_local3.width, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(_local3.width, FLAME_HEIGHT, true, 0); masker.draw(_local3); mtx = new Matrix(1, 0, 0, 1, 0, (FLAME_HEIGHT - _local3.height)); fire = new Bitmap(screenBuffer); fire.x = (this.x - (_local3.width / 2)); fire.y = ((this.y - FLAME_HEIGHT) + (_local3.height / 2)); _local2.addChildAt(fire, depth); SOURCE = new Rectangle(0, 0, frontBuffer.width, frontBuffer.height); DEST = new Point(0, 0); initPalette(); } public function touch(_arg1:int=0):void{ if (!alive){ return; }; alive = false; applyEffect(); var _local2:int = (Math.random() * 4); sounds[_local2].play(); timer = new Timer(1500, 1); timer.addEventListener(TimerEvent.TIMER, dispose); timer.start(); } } }//package gameSection 160//SaveFile (game.SaveFile) package game { import flash.utils.*; import flash.net.*; import com.hurlant.util.*; import com.rng.*; import com.hurlant.crypto.hash.*; public class SaveFile { public var bonusUnlocked:int; public var so:SharedObject; public var gameWon:Boolean; public var levelData:Array; public var lastLevel:int; public var bonusArray:Array; public static const maxLevel:int = 50; public static const maxBonus:int = 10; private static var _instance:SaveFile; public function SaveFile(_arg1:Singleton):void{ so = SharedObject.getLocal("Pyro2"); if (!readSaveFile()){ createNewFile(); }; } private function createNewFile():void{ var _local1:int; var _local2:Object; lastLevel = 0; levelAced = 0; bonusUnlocked = 0; gameWon = false; levelData = new Array(maxLevel); bonusArray = new Array(maxBonus); _local1 = 0; while (_local1 < maxLevel) { _local2 = {aced:false, time:600000}; levelData[_local1] = _local2; _local1++; }; _local1 = 0; while (_local1 < maxBonus) { bonusArray[_local1] = {aced:false, time:600000}; _local1++; }; writeSaveFile(); } protected function sendKongStats():void{ var _local3:int; var _local1:Array = new Array(); var _local2:int = levelAced; _local1.push({name:"AcedLevels", value:_local2}); if (_local2 >= 50){ _local1.push({name:"PerfectAces", value:"1"}); }; if (_local2 >= 60){ _local1.push({name:"FlawlessAces", value:"1"}); }; if (gameWon){ _local1.push({name:"GameWon", value:"1"}); _local1.push({name:"TotalTime", value:totalTime}); }; _local1.push({name:"BonusLevelUnlocked", value:bonusUnlocked}); _local1.push({name:"LevelCompleted", value:levelCompleted}); if (Protection.debug){ _local3 = 0; while (_local3 < _local1.length) { _local3++; }; }; if (((_local1.length) && ((((((Protection.domain == "localhost")) && (Protection.debug))) || ((Protection.domain == "Kongregate")))))){ Protection.kongAPI.stats.submitArray(_local1); }; } public function get levelAced():int{ var _local2:int; var _local1:int; _local2 = 0; while (_local2 < maxLevel) { if (levelData[_local2].aced){ _local1++; }; _local2++; }; _local2 = 0; while (_local2 < maxBonus) { if (bonusArray[_local2].aced){ _local1++; }; _local2++; }; return (_local1); } public function flush():void{ writeSaveFile(); sendKongStats(); } public function get levelCompleted():int{ var _local2:int; var _local1:int = lastLevel; _local2 = 0; while (_local2 < maxBonus) { if (bonusArray[_local2].complete){ _local1++; }; _local2++; }; return (_local1); } public function mergeData(_arg1:XML):void{ var _local2:int = maxLevel; var _local3:Array = [0, 1, 2, 3, 4]; var _local4:KnuthShuffle = new KnuthShuffle(); _local4.initialize(_local3); var _local5:int; while (_local5 < maxLevel) { if (_local5 <= lastLevel){ if (levelData[_local5].aced){ _arg1.level[_local5].type = "aced"; } else { _arg1.level[_local5].type = "normal"; }; } else { _arg1.level[_local5].type = "disabled"; }; _arg1.level[_local5].bgIdx = _local4.getNext(); _arg1.level[_local5].isBonus = "no"; _local5++; }; _local5 = 0; while (_local5 < maxBonus) { if (_local5 < bonusUnlocked){ if (bonusArray[_local5].aced){ _arg1.level[(_local5 + _local2)].type = "aced"; } else { _arg1.level[(_local5 + _local2)].type = "normal"; }; } else { _arg1.level[(_local5 + _local2)].type = "disabled"; }; _arg1.level[(_local5 + _local2)].bgIdx = _local4.getNext(); _arg1.level[(_local5 + _local2)].isBonus = "yes"; _local5++; }; } public function set levelAced(_arg1:int):void{ } private function readSaveFile():Boolean{ var i:int; var aced:Boolean; var time:int; if (((!(so.data.gameData)) || (!(so.data.signature)))){ return (false); }; if (so.data.version != "001"){ return (false); }; var data:ByteArray = so.data.gameData; var hash:ByteArray = so.data.signature; var md5:MD5 = new MD5(); var rehash:ByteArray = md5.hash(data); if (!ArrayUtil.equals(hash, rehash)){ return (false); }; data.position = 0; lastLevel = data.readUnsignedShort(); levelAced = data.readUnsignedShort(); bonusUnlocked = data.readShort(); gameWon = data.readBoolean(); levelData = new Array(maxLevel); bonusArray = new Array(maxBonus); i = 0; while (i < maxLevel) { try { aced = data.readBoolean(); time = data.readInt(); levelData[i] = {aced:aced, time:time}; } catch(e:Error) { return (false); }; i = (i + 1); }; i = 0; while (i < maxBonus) { try { aced = data.readBoolean(); time = data.readInt(); bonusArray[i] = {aced:aced, time:time}; } catch(e:Error) { return (false); }; i = (i + 1); }; return (true); } public function get totalTime():int{ var _local2:int; var _local1:int; _local2 = 0; while (_local2 < maxLevel) { _local1 = (_local1 + levelData[_local2].time); _local2++; }; return ((_local1 / 1000)); } public function mergePlayerData(_arg1:XML):void{ var _local7:int; var _local8:Object; var _local2:Array = [0, 1, 2, 3, 4]; var _local3:KnuthShuffle = new KnuthShuffle(); var _local4:int = _arg1.level.length(); var _local5:Array = so.data.playerData; _local3.initialize(_local2); if (!_local5){ _local5 = new Array(); so.data.playerData = _local5; }; var _local6:int; while (_local6 < _local4) { _local7 = int(_arg1.level[_local6].id); if (!_local5[_local7]){ _local8 = new Object(); _local8.time = -1; _local8.aced = false; _local5[_local7] = _local8; }; if (_local5[_local7].aced){ _arg1.level[_local6].type = "aced"; } else { _arg1.level[_local6].type = "normal"; }; _arg1.level[_local6].bgIdx = _local3.getNext(); _arg1.level[_local6].isBonus = "no"; _local6++; }; so.flush(); } public function writeSaveFile():void{ var _local2:int; var _local1:ByteArray = new ByteArray(); _local1.writeShort(lastLevel); _local1.writeShort(levelAced); _local1.writeShort(bonusUnlocked); _local1.writeBoolean(gameWon); _local2 = 0; while (_local2 < maxLevel) { _local1.writeBoolean(levelData[_local2].aced); _local1.writeInt(levelData[_local2].time); _local2++; }; _local2 = 0; while (_local2 < maxBonus) { _local1.writeBoolean(bonusArray[_local2].aced); _local1.writeInt(bonusArray[_local2].time); _local2++; }; var _local3:MD5 = new MD5(); var _local4:ByteArray = _local3.hash(_local1); so.data.gameData = _local1; so.data.signature = _local4; so.data.version = "001"; so.flush(); } public static function get instance():SaveFile{ if (!_instance){ _instance = new SaveFile(new Singleton()); }; return (_instance); } } }//package game class Singleton { private function Singleton(){ } }Section 161//TorchBase (game.TorchBase) package game { import screen.*; import flash.geom.*; import flash.display.*; import flash.filters.*; public class TorchBase extends Sprite implements IFireEmitter { private const FLAME_WIDTH:int = 16; private const PT_ZERO:Point; private const FLAME_HEIGHT:int = 35; private const SCREEN_RECT:Rectangle; private const MATRIX_3x5; private var cFilter:ConvolutionFilter; private var frontBuffer:BitmapData; private var burning:Boolean; private var screenBuffer:BitmapData; private var fire:Bitmap; private var SOURCE:Rectangle; private var spark:BitmapData; private var DEST:Point; public var torchHitArea:TorchHitArea; private var mtx:Matrix; private var noiseSeed:uint;// = 0 private var owner:GameLevelScreen; private var palette:Array; protected static var sounds:Array; public function TorchBase(){ MATRIX_3x5 = new Array(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0); SCREEN_RECT = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); PT_ZERO = new Point(0, 0); cFilter = new ConvolutionFilter(3, 5, MATRIX_3x5, 4.35, -2, true, false, 0xFF, 1); frontBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, false, 0xFF); screenBuffer = new BitmapData(FLAME_WIDTH, FLAME_HEIGHT, true, 0); palette = new Array(); super(); burning = false; if (!sounds){ sounds = new Array(4); sounds[0] = new Torch_0(); sounds[1] = new Torch_1(); sounds[2] = new Torch_2(); sounds[3] = new Torch_3(); }; } public function drawSpark(_arg1:int=0):void{ if (!burning){ return; }; noiseSeed++; spark.noise(noiseSeed, 90, 0xFF, BitmapDataChannel.BLUE, true); frontBuffer.draw(spark, mtx, null, BlendMode.MULTIPLY); frontBuffer.applyFilter(frontBuffer, SOURCE, DEST, cFilter); screenBuffer.paletteMap(frontBuffer, SOURCE, PT_ZERO, null, null, palette); screenBuffer.threshold(screenBuffer, SOURCE, DEST, "==", 4278190080, 0, 4278190080, true); } private function initPalette():void{ var _local1:Sprite = new TransparentFlamePalette(); var _local2:BitmapData = new BitmapData(0x0100, 10, true, 0); _local2.draw(_local1); var _local3:uint; while (_local3 < 0x0100) { palette[_local3] = uint(_local2.getPixel32(_local3, 2)); _local3++; }; _local2.dispose(); } public function burn(_arg1:int=0):void{ touch(); } public function dispose():void{ owner.removeFire(this); removeChild(fire); fire = null; spark.dispose(); frontBuffer.dispose(); screenBuffer.dispose(); palette.length = 0; spark = null; frontBuffer = null; screenBuffer = null; palette = null; } public function initSpark(_arg1:GameLevelScreen):void{ owner = _arg1; noiseSeed = 0; spark = new BitmapData(FLAME_WIDTH, 8, false, 0); mtx = new Matrix(1, 0, 0, 1, 0, (FLAME_HEIGHT - 8)); fire = new Bitmap(screenBuffer); fire.x = (torchHitArea.x - (FLAME_WIDTH / 2)); fire.y = ((torchHitArea.y - FLAME_HEIGHT) + (torchHitArea.height / 2)); addChildAt(fire, 0); SOURCE = new Rectangle(0, 0, FLAME_WIDTH, FLAME_HEIGHT); DEST = new Point(); initPalette(); } public function touch():void{ if (burning){ return; }; burning = true; owner.score(); var _local1:int = (Math.random() * 4); sounds[_local1].play(); } } }//package gameSection 162//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin) package gs.plugins { import flash.display.*; import gs.*; public class AutoAlphaPlugin extends TweenPlugin { protected var _tweenVisible:Boolean; protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function AutoAlphaPlugin(){ this.propName = "autoAlpha"; this.overwriteProps = ["alpha", "visible"]; this.onComplete = onCompleteTween; } override public function killProps(_arg1:Object):void{ super.killProps(_arg1); _tweenVisible = !(Boolean(("visible" in _arg1))); } public function onCompleteTween():void{ if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(!((_arg2 == 0))); _tweenVisible = true; addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (((!((_target.visible == true))) && (_tweenVisible))){ _target.visible = true; }; } } }//package gs.pluginsSection 163//EndArrayPlugin (gs.plugins.EndArrayPlugin) package gs.plugins { import flash.display.*; import gs.*; import gs.utils.tween.*; public class EndArrayPlugin extends TweenPlugin { protected var _a:Array; protected var _info:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function EndArrayPlugin(){ _info = []; super(); this.propName = "endArray"; this.overwriteProps = ["endArray"]; } public function init(_arg1:Array, _arg2:Array):void{ _a = _arg1; var _local3:int = (_arg2.length - 1); while (_local3 > -1) { if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){ _info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3])); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (false); }; init((_arg1 as Array), _arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:ArrayTweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _a[_local3.index] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } } }//package gs.pluginsSection 164//FramePlugin (gs.plugins.FramePlugin) package gs.plugins { import flash.display.*; import gs.*; public class FramePlugin extends TweenPlugin { protected var _target:MovieClip; public var frame:int; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function FramePlugin(){ this.propName = "frame"; this.overwriteProps = ["frame"]; this.round = true; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; addTween(this, "frame", this.frame, _arg2, "frame"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } } }//package gs.pluginsSection 165//RemoveTintPlugin (gs.plugins.RemoveTintPlugin) package gs.plugins { public class RemoveTintPlugin extends TintPlugin { public static const VERSION:Number = 1.01; public static const API:Number = 1; public function RemoveTintPlugin(){ this.propName = "removeTint"; } } }//package gs.pluginsSection 166//TintPlugin (gs.plugins.TintPlugin) package gs.plugins { import flash.geom.*; import flash.display.*; import gs.*; import gs.utils.tween.*; public class TintPlugin extends TweenPlugin { protected var _target:DisplayObject; protected var _ct:ColorTransform; protected var _ignoreAlpha:Boolean; public static const VERSION:Number = 1.1; public static const API:Number = 1; protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"]; public function TintPlugin(){ this.propName = "tint"; this.overwriteProps = ["tint"]; } public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{ var _local3:int; var _local4:String; _target = _arg1; _ct = _target.transform.colorTransform; _local3 = (_props.length - 1); while (_local3 > -1) { _local4 = _props[_local3]; if (_ct[_local4] != _arg2[_local4]){ _tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg1 is DisplayObject)){ return (false); }; var _local4:ColorTransform = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:ColorTransform; updateTweens(_arg1); if (_ignoreAlpha){ _local2 = _target.transform.colorTransform; _ct.alphaMultiplier = _local2.alphaMultiplier; _ct.alphaOffset = _local2.alphaOffset; }; _target.transform.colorTransform = _ct; } } }//package gs.pluginsSection 167//TweenPlugin (gs.plugins.TweenPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class TweenPlugin { public var overwriteProps:Array; protected var _tweens:Array; public var propName:String; public var onComplete:Function; public var round:Boolean; protected var _changeFactor:Number;// = 0 public static const VERSION:Number = 1.03; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; super(); } protected function updateTweens(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _changeFactor = _arg1; } protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{ var _local6:Number; if (_arg4 != null){ _local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4); if (_local6 != 0){ _tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false); }; }; } public function killProps(_arg1:Object):void{ var _local2:int; _local2 = (this.overwriteProps.length - 1); while (_local2 > -1) { if ((this.overwriteProps[_local2] in _arg1)){ this.overwriteProps.splice(_local2, 1); }; _local2--; }; _local2 = (_tweens.length - 1); while (_local2 > -1) { if ((_tweens[_local2].name in _arg1)){ _tweens.splice(_local2, 1); }; _local2--; }; } public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName); return (true); } public function get changeFactor():Number{ return (_changeFactor); } public static function activate(_arg1:Array):Boolean{ var _local2:int; var _local3:Object; _local2 = (_arg1.length - 1); while (_local2 > -1) { _local3 = new (_arg1[_local2]); TweenLite.plugins[_local3.propName] = _arg1[_local2]; _local2--; }; return (true); } } }//package gs.pluginsSection 168//VisiblePlugin (gs.plugins.VisiblePlugin) package gs.plugins { import flash.display.*; import gs.*; public class VisiblePlugin extends TweenPlugin { protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; this.onComplete = onCompleteTween; } public function onCompleteTween():void{ if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(_arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ if (_target.visible != true){ _target.visible = true; }; } } }//package gs.pluginsSection 169//VolumePlugin (gs.plugins.VolumePlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.media.*; public class VolumePlugin extends TweenPlugin { protected var _target:Object; protected var _st:SoundTransform; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function VolumePlugin(){ this.propName = "volume"; this.overwriteProps = ["volume"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){ return (false); }; _target = _arg1; _st = _target.soundTransform; addTween(_st, "volume", _st.volume, _arg2, "volume"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } } }//package gs.pluginsSection 170//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo) package gs.utils.tween { public class ArrayTweenInfo { public var change:Number; public var start:Number; public var index:uint; public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } } }//package gs.utils.tweenSection 171//TweenInfo (gs.utils.tween.TweenInfo) package gs.utils.tween { public class TweenInfo { public var start:Number; public var name:String; public var change:Number; public var target:Object; public var property:String; public var isPlugin:Boolean; public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; } } }//package gs.utils.tweenSection 172//TweenLite (gs.TweenLite) package gs { import flash.display.*; import flash.events.*; import flash.utils.*; import gs.utils.tween.*; import gs.plugins.*; public class TweenLite { public var started:Boolean; public var delay:Number; protected var _hasUpdate:Boolean; protected var _hasPlugins:Boolean; public var initted:Boolean; public var active:Boolean; public var startTime:Number; public var target:Object; public var duration:Number; public var gc:Boolean; public var tweens:Array; public var vars:Object; public var ease:Function; public var exposedVars:Object; public var initTime:Number; public var combinedTimeScale:Number; public static const version:Number = 10.09; private static var _timer:Timer = new Timer(2000); public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var currentTime:uint; public static var masterList:Dictionary = new Dictionary(false); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1}; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var timingSprite:Sprite = new Sprite(); public static var overwriteManager:Object; private static var _tlInitted:Boolean; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ if (_arg1 == null){ return; }; if (!_tlInitted){ TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]); currentTime = getTimer(); timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; _timer.addEventListener("timer", killGarbage, false, 0, true); _timer.start(); _tlInitted = true; }; this.vars = _arg3; this.duration = ((_arg2) || (0.001)); this.delay = ((_arg3.delay) || (0)); this.combinedTimeScale = ((_arg3.timeScale) || (1)); this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0)))); this.target = _arg1; if (typeof(this.vars.ease) != "function"){ this.vars.ease = defaultEase; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; this.ease = this.vars.ease; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars; this.tweens = []; this.initTime = currentTime; this.startTime = (this.initTime + (this.delay * 1000)); var _local4:int = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if (((!((_arg1 in masterList))) || ((_local4 == 1)))){ masterList[_arg1] = [this]; } else { masterList[_arg1].push(this); }; if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){ initTweenVals(); if (this.active){ render((this.startTime + 1)); } else { render(this.startTime); }; if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){ this.target.visible = this.exposedVars.visible; }; }; } public function get enabled():Boolean{ return ((this.gc) ? false : true); } public function set enabled(_arg1:Boolean):void{ var _local2:Array; var _local3:Boolean; var _local4:int; if (_arg1){ if (!(this.target in masterList)){ masterList[this.target] = [this]; } else { _local2 = masterList[this.target]; _local4 = (_local2.length - 1); while (_local4 > -1) { if (_local2[_local4] == this){ _local3 = true; break; }; _local4--; }; if (!_local3){ _local2[_local2.length] = this; }; }; }; this.gc = (_arg1) ? false : true; if (this.gc){ this.active = false; } else { this.active = this.started; }; } public function clear():void{ this.tweens = []; this.vars = (this.exposedVars = {ease:this.vars.ease}); _hasUpdate = false; } public function render(_arg1:uint):void{ var _local3:Number; var _local4:TweenInfo; var _local5:int; var _local2:Number = ((_arg1 - this.startTime) * 0.001); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function activate():void{ this.started = (this.active = true); if (!this.initted){ initTweenVals(); }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; } public function initTweenVals():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:TweenInfo; if (((!((this.exposedVars.timeScale == undefined))) && ((this.target is TweenLite)))){ this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false); }; for (_local1 in this.exposedVars) { if ((_local1 in _reservedProps)){ } else { if ((_local1 in plugins)){ _local3 = new (plugins[_local1]); if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){ this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); } else { this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true); _hasPlugins = true; }; } else { this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); }; }; }; if (this.vars.runBackwards == true){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local4 = this.tweens[_local2]; this.tweens[_local2].start = (_local4.start + _local4.change); _local4.change = -(_local4.change); _local2--; }; }; if (this.vars.onUpdate != null){ _hasUpdate = true; }; if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){ overwriteManager.manageOverwrites(this, masterList[this.target]); }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function killVars(_arg1:Object):void{ if (overwriteManager.enabled){ overwriteManager.killVars(_arg1, this.exposedVars, this.tweens); }; } public function complete(_arg1:Boolean=false):void{ var _local2:int; if (!_arg1){ if (!this.initted){ initTweenVals(); }; this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale)); render(currentTime); return; }; if (_hasPlugins){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){ this.tweens[_local2].target.onComplete(); }; _local2--; }; }; if (this.vars.persist != true){ this.enabled = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public static function updateAll(_arg1:Event=null):void{ var _local4:Array; var _local5:int; var _local6:TweenLite; var _local2:uint = (currentTime = getTimer()); var _local3:Dictionary = masterList; for each (_local4 in _local3) { _local5 = (_local4.length - 1); while (_local5 > -1) { _local6 = _local4[_local5]; if (_local6.active){ _local6.render(_local2); } else { if (_local6.gc){ _local4.splice(_local5, 1); } else { if (_local2 >= _local6.startTime){ _local6.activate(); _local6.render(_local2); }; }; }; _local5--; }; }; } public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{ if (_arg1 != null){ if (_arg2){ _arg1.clear(); }; _arg1.enabled = false; }; } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:TweenLite; if (((!((_arg1 == null))) && ((_arg1 in masterList)))){ _local3 = masterList[_arg1]; _local4 = (_local3.length - 1); while (_local4 > -1) { _local5 = _local3[_local4]; if (((_arg2) && (!(_local5.gc)))){ _local5.complete(false); }; _local5.clear(); _local4--; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } protected static function killGarbage(_arg1:TimerEvent):void{ var _local3:Object; var _local2:Dictionary = masterList; for (_local3 in _local2) { if (_local2[_local3].length == 0){ delete _local2[_local3]; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0})); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gsSection 173//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return ("3.02 as3"); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; var sendHostProgress:Boolean; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (_local2); }; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var clip:Object; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; //unresolved jump }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{ }); loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){ complete = true; } else { if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local7:Number = ((100 * _local6) / _local5); var _local8:Number = ((100 * _local3) / chk.ad_msec); var _local9:Object = this._mochiad_bar._inside; var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi.as3Section 174//AcedScreen_70 (Pyro2_fla.AcedScreen_70) package Pyro2_fla { import flash.display.*; import flash.events.*; public dynamic class AcedScreen_70 extends MovieClip { public var unlockText:MovieClip; public var unlockBackground:MovieClip; public function AcedScreen_70(){ addFrameScript(0, frame1, 55, frame56); } function frame1(){ stop(); } function frame56(){ dispatchEvent(new Event(Event.COMPLETE)); } } }//package Pyro2_flaSection 175//AssetsHolder_20 (Pyro2_fla.AssetsHolder_20) package Pyro2_fla { import flash.display.*; public dynamic class AssetsHolder_20 extends MovieClip { public function AssetsHolder_20(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Pyro2_flaSection 176//DialogWindow_204 (Pyro2_fla.DialogWindow_204) package Pyro2_fla { import flash.display.*; import fl.controls.*; import flash.text.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.events.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; public dynamic class DialogWindow_204 extends MovieClip { public var txt_desc:Label; public var txt_title:Label; public var btn_close:SimpleButton; public var txt_dialog:TextArea; public var btn_copy:Button; public var btn_submit:Button; public var btn_OK:Button; public function DialogWindow_204(){ __setProp_txt_dialog_DialogWindow_Layer3_0(); __setProp_btn_OK_DialogWindow_Layer3_0(); __setProp_txt_desc_DialogWindow_Layer3_0(); __setProp_btn_copy_DialogWindow_Layer3_0(); __setProp_btn_submit_DialogWindow_Layer3_0(); } function __setProp_btn_submit_DialogWindow_Layer3_0(){ try { btn_submit["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_submit.emphasized = false; btn_submit.enabled = true; btn_submit.label = "Submit to Kongregate"; btn_submit.labelPlacement = "right"; btn_submit.selected = false; btn_submit.toggle = false; btn_submit.visible = true; try { btn_submit["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_txt_dialog_DialogWindow_Layer3_0(){ try { txt_dialog["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_dialog.condenseWhite = false; txt_dialog.editable = false; txt_dialog.enabled = true; txt_dialog.horizontalScrollPolicy = "auto"; txt_dialog.htmlText = ""; txt_dialog.maxChars = 0; txt_dialog.restrict = ""; txt_dialog.text = ""; txt_dialog.verticalScrollPolicy = "auto"; txt_dialog.visible = true; txt_dialog.wordWrap = true; try { txt_dialog["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_copy_DialogWindow_Layer3_0(){ try { btn_copy["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_copy.emphasized = false; btn_copy.enabled = true; btn_copy.label = "Copy"; btn_copy.labelPlacement = "right"; btn_copy.selected = false; btn_copy.toggle = false; btn_copy.visible = true; try { btn_copy["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_OK_DialogWindow_Layer3_0(){ try { btn_OK["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_OK.emphasized = false; btn_OK.enabled = true; btn_OK.label = "OK"; btn_OK.labelPlacement = "right"; btn_OK.selected = false; btn_OK.toggle = false; btn_OK.visible = true; try { btn_OK["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_txt_desc_DialogWindow_Layer3_0(){ try { txt_desc["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_desc.autoSize = "none"; txt_desc.condenseWhite = false; txt_desc.enabled = true; txt_desc.htmlText = ""; txt_desc.selectable = false; txt_desc.text = "Press 'Copy' and then paste the code into a forum, instant messenger, or e-mail to share your level with friends."; txt_desc.visible = true; txt_desc.wordWrap = true; try { txt_desc["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Pyro2_flaSection 177//GregLogo_Screen_52 (Pyro2_fla.GregLogo_Screen_52) package Pyro2_fla { import screen.*; import flash.display.*; public dynamic class GregLogo_Screen_52 extends MovieClip { public var anim_text:GregIntroTypeEffect; public function GregLogo_Screen_52(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); MovieClip(this.parent).play(); } } }//package Pyro2_flaSection 178//HUDPanel_193 (Pyro2_fla.HUDPanel_193) package Pyro2_fla { import flash.display.*; import fl.controls.*; import flash.text.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.events.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; public dynamic class HUDPanel_193 extends MovieClip { public var level:MovieClip; public var lifeText:Label; public var btn_Restart:Button; public var btn_Sponsor:Button; public var percentText:Label; public var tip:MovieClip; public var txt_levelName:Label; public var btn_StopPreview:Button; public var label_life:Label; public var btn_Suicide:Button; public var btn_Browse:Button; public var label_torch:Label; public var btn_Mute:Button; public function HUDPanel_193(){ __setProp_btn_StopPreview_HUDPanel_Labels_0(); __setProp_btn_Restart_HUDPanel_Labels_0(); __setProp_label_life_HUDPanel_Labels_0(); __setProp_label_torch_HUDPanel_Labels_0(); __setProp_txt_levelName_HUDPanel_Labels_0(); __setProp_btn_Mute_HUDPanel_Labels_0(); __setProp_btn_Suicide_HUDPanel_Labels_0(); __setProp_btn_Sponsor_HUDPanel_Labels_0(); __setProp_btn_Browse_HUDPanel_Labels_0(); } function __setProp_btn_Sponsor_HUDPanel_Labels_0(){ try { btn_Sponsor["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Sponsor.emphasized = false; btn_Sponsor.enabled = true; btn_Sponsor.label = "Play More Games!"; btn_Sponsor.labelPlacement = "right"; btn_Sponsor.selected = false; btn_Sponsor.toggle = false; btn_Sponsor.visible = true; try { btn_Sponsor["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Browse_HUDPanel_Labels_0(){ try { btn_Browse["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Browse.emphasized = false; btn_Browse.enabled = true; btn_Browse.label = "Browse Levels"; btn_Browse.labelPlacement = "right"; btn_Browse.selected = false; btn_Browse.toggle = false; btn_Browse.visible = true; try { btn_Browse["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_label_life_HUDPanel_Labels_0(){ try { label_life["componentInspectorSetting"] = true; } catch(e:Error) { }; label_life.autoSize = "none"; label_life.condenseWhite = false; label_life.enabled = true; label_life.htmlText = ""; label_life.selectable = false; label_life.text = "Lives:"; label_life.visible = true; label_life.wordWrap = false; try { label_life["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_txt_levelName_HUDPanel_Labels_0(){ try { txt_levelName["componentInspectorSetting"] = true; } catch(e:Error) { }; txt_levelName.autoSize = "center"; txt_levelName.condenseWhite = false; txt_levelName.enabled = true; txt_levelName.htmlText = ""; txt_levelName.selectable = false; txt_levelName.text = "Label"; txt_levelName.visible = true; txt_levelName.wordWrap = true; try { txt_levelName["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_StopPreview_HUDPanel_Labels_0(){ try { btn_StopPreview["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_StopPreview.emphasized = false; btn_StopPreview.enabled = true; btn_StopPreview.label = "Stop Preview"; btn_StopPreview.labelPlacement = "right"; btn_StopPreview.selected = false; btn_StopPreview.toggle = false; btn_StopPreview.visible = true; try { btn_StopPreview["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Suicide_HUDPanel_Labels_0(){ try { btn_Suicide["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Suicide.emphasized = false; btn_Suicide.enabled = true; btn_Suicide.label = "Suicide"; btn_Suicide.labelPlacement = "right"; btn_Suicide.selected = false; btn_Suicide.toggle = false; btn_Suicide.visible = true; try { btn_Suicide["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_label_torch_HUDPanel_Labels_0(){ try { label_torch["componentInspectorSetting"] = true; } catch(e:Error) { }; label_torch.autoSize = "none"; label_torch.condenseWhite = false; label_torch.enabled = true; label_torch.htmlText = ""; label_torch.selectable = false; label_torch.text = "Torch Needed:"; label_torch.visible = true; label_torch.wordWrap = false; try { label_torch["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Mute_HUDPanel_Labels_0(){ try { btn_Mute["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Mute.emphasized = false; btn_Mute.enabled = true; btn_Mute.label = "Mute"; btn_Mute.labelPlacement = "right"; btn_Mute.selected = false; btn_Mute.toggle = false; btn_Mute.visible = true; try { btn_Mute["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Restart_HUDPanel_Labels_0(){ try { btn_Restart["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Restart.emphasized = false; btn_Restart.enabled = true; btn_Restart.label = "Restart"; btn_Restart.labelPlacement = "right"; btn_Restart.selected = false; btn_Restart.toggle = false; btn_Restart.visible = true; try { btn_Restart["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Pyro2_flaSection 179//LooseScreen_57 (Pyro2_fla.LooseScreen_57) package Pyro2_fla { import flash.geom.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import flash.net.*; import flash.media.*; import flash.filters.*; import flash.system.*; import flash.ui.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class LooseScreen_57 extends MovieClip { public var btn_Retry:Button; public var btn_Browse:Button; public var btn_Sponsor:Button; public var btn_LevelSelect:Button; public function LooseScreen_57(){ __setProp_btn_Retry_LooseScreen_Layer3_0(); __setProp_btn_LevelSelect_LooseScreen_Layer3_0(); __setProp_btn_Sponsor_LooseScreen_Layer3_0(); __setProp_btn_Browse_LooseScreen_Layer3_0(); } function __setProp_btn_Browse_LooseScreen_Layer3_0(){ try { btn_Browse["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Browse.emphasized = false; btn_Browse.enabled = true; btn_Browse.label = "Browse Player Levels"; btn_Browse.labelPlacement = "right"; btn_Browse.selected = false; btn_Browse.toggle = false; btn_Browse.visible = true; try { btn_Browse["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_LevelSelect_LooseScreen_Layer3_0(){ try { btn_LevelSelect["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_LevelSelect.emphasized = false; btn_LevelSelect.enabled = true; btn_LevelSelect.label = "Level Select"; btn_LevelSelect.labelPlacement = "right"; btn_LevelSelect.selected = false; btn_LevelSelect.toggle = false; btn_LevelSelect.visible = true; try { btn_LevelSelect["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Sponsor_LooseScreen_Layer3_0(){ try { btn_Sponsor["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Sponsor.emphasized = false; btn_Sponsor.enabled = true; btn_Sponsor.label = "Play Something Else"; btn_Sponsor.labelPlacement = "right"; btn_Sponsor.selected = false; btn_Sponsor.toggle = false; btn_Sponsor.visible = true; try { btn_Sponsor["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Retry_LooseScreen_Layer3_0(){ try { btn_Retry["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Retry.emphasized = false; btn_Retry.enabled = true; btn_Retry.label = "Retry >"; btn_Retry.labelPlacement = "right"; btn_Retry.selected = false; btn_Retry.toggle = false; btn_Retry.visible = true; try { btn_Retry["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Pyro2_flaSection 180//Tip_194 (Pyro2_fla.Tip_194) package Pyro2_fla { import flash.display.*; import fl.controls.*; import flash.text.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.events.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; public dynamic class Tip_194 extends MovieClip { public var txt_Content:TextField; public var btn_Guide:Button; public var txt_Footer:TextField; public var txt_Head:TextField; public function Tip_194(){ __setProp_btn_Guide_Tip_Layer3_0(); } function __setProp_btn_Guide_Tip_Layer3_0(){ try { btn_Guide["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Guide.emphasized = false; btn_Guide.enabled = true; btn_Guide.label = "Ace Guide"; btn_Guide.labelPlacement = "right"; btn_Guide.selected = false; btn_Guide.toggle = false; btn_Guide.visible = true; try { btn_Guide["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Pyro2_flaSection 181//WinScroll_184 (Pyro2_fla.WinScroll_184) package Pyro2_fla { import flash.display.*; import fl.controls.*; import flash.text.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.events.*; import flash.external.*; import flash.filters.*; import flash.geom.*; import flash.media.*; import flash.net.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.system.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; public dynamic class WinScroll_184 extends MovieClip { public var btn_Back:Button; public function WinScroll_184(){ __setProp_btn_Back_WinScroll_Layer1_0(); } function __setProp_btn_Back_WinScroll_Layer1_0(){ try { btn_Back["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Back.emphasized = false; btn_Back.enabled = true; btn_Back.label = "< Back"; btn_Back.labelPlacement = "right"; btn_Back.selected = false; btn_Back.toggle = false; btn_Back.visible = true; try { btn_Back["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Pyro2_flaSection 182//AbstractScreen (screen.AbstractScreen) package screen { import flash.display.*; import game.*; import flash.events.*; import gs.*; import flash.utils.*; public class AbstractScreen extends MovieClip { public static const COMPLETE:String = "TransitionComplete"; protected static var fullTransition:Boolean = false; protected static var oldGameScreen:GameLevelScreen; public static var screens:ScreenList; public static var _parent:DisplayObjectContainer; protected static var currentScreen:AbstractScreen; protected static var saveGame:SaveFile; protected static var levelData:XML; protected static var currentLevelIndex:int; protected static var currentLevelData:ByteArray; protected static var targetScreen:AbstractScreen; public static var isTransitioning:Boolean = false; protected static var playerLevelData:XML; public function AbstractScreen(){ if (!screens){ screens = new ScreenList(); }; this.alpha = 0; if (!currentScreen){ currentScreen = this; }; } public function transitionTo(_arg1:AbstractScreen):void{ if (isTransitioning){ return; }; targetScreen = _arg1; isTransitioning = true; fullTransition = true; if (currentScreen){ currentScreen.fadeOut(); } else { targetScreen.fadeIn(); }; } public function fadeIn():void{ if (!parent){ _parent.addChild(this); }; TweenLite.to(this, 0.25, {alpha:1, onComplete:fadeInComplete}); isTransitioning = true; } public function fadeOut():void{ TweenLite.to(this, 0.25, {alpha:0, onComplete:fadeOutComplete}); isTransitioning = true; } public function loadUserLevel(_arg1:Event=null):void{ if (!Protection.kongAPI.userLevelAvailable){ return; }; Protection.kongAPI.userLevelAvailable = false; var _local2:String = Protection.kongAPI.userLevelData.content; LevelEditorScreen(screens.LevelEditor).loadExternalLevel(_local2); } protected function fadeInComplete():void{ if (fullTransition){ currentScreen = targetScreen; } else { currentScreen = this; }; fullTransition = false; isTransitioning = false; targetScreen = null; dispatchEvent(new Event(COMPLETE, true)); } protected function fadeOutComplete():void{ if (parent){ parent.removeChild(this); }; if (fullTransition){ targetScreen.fadeIn(); } else { isTransitioning = false; dispatchEvent(new Event(COMPLETE, true)); }; } } }//package screenSection 183//CreditsScreen (screen.CreditsScreen) package screen { import fl.controls.*; import flash.display.*; import flash.events.*; import effects.*; public class CreditsScreen extends AbstractScreen { public var btn_Back:Button; public var creditScroll:MovieClip; var scrollMax:int; var flame:CreditFlame; public function CreditsScreen():void{ if (!screens.Credits){ screens.Credits = this; } else { throw (new Error("There can only be one credits screen.")); }; btn_Back.addEventListener(MouseEvent.CLICK, handleBack); creditScroll.btn_Kong.addEventListener(MouseEvent.CLICK, sponsor); __setProp_btn_Back_CreditsScreen_Layer3_0(); } override public function fadeIn():void{ super.fadeIn(); flame = new CreditFlame(558, 50); flame.x = -4; flame.y = 458; flame.smoothing = false; scrollMax = (-(creditScroll.height) + 250); creditScroll.y = 500; addChild(flame); addEventListener(Event.ENTER_FRAME, updateScreen); } function __setProp_btn_Back_CreditsScreen_Layer3_0(){ try { btn_Back["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Back.emphasized = false; btn_Back.enabled = true; btn_Back.label = "< Back"; btn_Back.labelPlacement = "right"; btn_Back.selected = false; btn_Back.toggle = false; btn_Back.visible = true; try { btn_Back["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function sponsor(_arg1:Event):void{ Protection.toSponsor(); } override protected function fadeOutComplete():void{ super.fadeOutComplete(); removeEventListener(Event.ENTER_FRAME, updateScreen); if (flame){ flame.dispose(); }; flame = null; } private function handleBack(_arg1:Event):void{ flame.running = false; transitionTo(screens.MainMenu); } function updateScreen(_arg1:Event):void{ if (creditScroll.y > scrollMax){ creditScroll.y = (creditScroll.y + -1); }; flame.update(); } } }//package screenSection 184//DamijinIntroScreen (screen.DamijinIntroScreen) package screen { import flash.display.*; import flash.events.*; public class DamijinIntroScreen extends AbstractScreen { public var btn_Skip:SimpleButton; public function DamijinIntroScreen():void{ addFrameScript(0, frame1, 159, frame160); super(); if (!screens.DamijinIntro){ screens.DamijinIntro = this; } else { throw (new Error("There can only be one damijin intro screen.")); }; btn_Skip.addEventListener(MouseEvent.CLICK, handleIntroSkip); btn_Skip.visible = Protection.skipable; x = (width / 2); y = (height / 2); } private function handleIntroSkip(_arg1:Event):void{ stop(); if (Protection.kongAPI.userLevelAvailable){ loadUserLevel(); } else { transitionTo(screens.MainMenu); }; } override protected function fadeInComplete():void{ super.fadeInComplete(); play(); } function frame1(){ stop(); } private function handleIntroComplete():void{ transitionTo(screens.GregIntro); } function frame160(){ handleIntroComplete(); } } }//package screenSection 185//FlameLoaderScreen (screen.FlameLoaderScreen) package screen { import flash.display.*; import game.*; import flash.events.*; import flash.text.*; import flash.net.*; import effects.*; public class FlameLoaderScreen extends AbstractScreen { private var delay:int; private var percent:Number; public var flameContainer:MovieClip; private var loader:URLLoader; private var playerLoader:URLLoader; public var txt_status:TextField; public var logo:Kong_Logo_Pyro; private var status:String;// = "main" private var currWidth:Number;// = 3 private var targetWidth:Number;// = 3 private var flame:Flame; public var play_hitArea:MovieClip; public function FlameLoaderScreen():void{ loader = new URLLoader(); playerLoader = new URLLoader(); super(); if (!screens.FlameLoader){ screens.FlameLoader = this; } else { throw (new Error("There can only be one flame loader screen.")); }; flame = new Flame(305, 45); flameContainer.addChild(flame); flame.x = -3; addEventListener(Event.ENTER_FRAME, update); logo.addEventListener(MouseEvent.CLICK, sponsor); this.alpha = 1; play_hitArea.alpha = 0; play_hitArea.mouseEnabled = false; play_hitArea.buttonMode = true; txt_status.mouseEnabled = false; logo.buttonMode = true; logo.mouseChildren = false; } private function update(_arg1:Event):void{ var _local2:LoaderInfo = root.loaderInfo; percent = (_local2.bytesLoaded / _local2.bytesTotal); targetWidth = ((percent * 302) + 3); if (currWidth < targetWidth){ if (Protection.debug){ currWidth = targetWidth; } else { currWidth = (currWidth + 1); }; }; if ((((currWidth > 302)) && ((percent == 1)))){ if (status == "main"){ txt_status.text = "Loading Levels Data..."; status = "xml"; loader.addEventListener(Event.COMPLETE, levelDataComplete); if ((((Protection.domain == "Kongregate")) || ((Protection.debug == true)))){ loader.load(new URLRequest("Levels.xml")); } else { loader.load(new URLRequest("http://games.mochiads.com/c/g/pyro-ii/Levels.xml")); }; playerLoader.addEventListener(Event.COMPLETE, playerLevelDataComplete); if ((((Protection.domain == "Kongregate")) || ((Protection.debug == true)))){ playerLoader.load(new URLRequest("PlayerLevels.xml")); } else { playerLoader.load(new URLRequest("http://games.mochiads.com/c/g/pyro-ii/PlayerLevels.xml")); }; } else { if (status == "complete"){ status = "done"; txt_status.text = "Play! >"; play_hitArea.mouseEnabled = true; play_hitArea.addEventListener(MouseEvent.CLICK, handlePlay); }; }; }; flame.update(currWidth); } private function handlePlay(_arg1:MouseEvent):void{ play_hitArea.removeEventListener(MouseEvent.CLICK, handlePlay); (parent as MovieClip).play(); } private function playerLevelDataComplete(_arg1:Event):void{ playerLoader.removeEventListener(Event.COMPLETE, playerLevelDataComplete); playerLevelData = XML(playerLoader.data); playerLoader = null; saveGame = SaveFile.instance; saveGame.mergePlayerData(playerLevelData); if (status == "xml"){ status = "playerLevel"; } else { status = "complete"; }; } override protected function fadeOutComplete():void{ removeEventListener(Event.ENTER_FRAME, update); logo.removeEventListener(MouseEvent.CLICK, sponsor); flame.dispose(); flame = null; super.fadeOutComplete(); } private function sponsor(_arg1:MouseEvent):void{ if (_arg1.target == logo){ Protection.toSponsor(); }; } private function saveDataComplete(_arg1:Event):void{ } private function levelDataComplete(_arg1:Event):void{ loader.removeEventListener(Event.COMPLETE, levelDataComplete); levelData = XML(loader.data); loader = null; saveGame = SaveFile.instance; saveGame.mergeData(levelData); if (status == "xml"){ status = "playerLevel"; } else { status = "complete"; }; } } }//package screenSection 186//GameLevelScreen (screen.GameLevelScreen) package screen { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; import Box2D.Dynamics.*; import fl.controls.*; import flash.display.*; import game.*; import Box2D.Collision.*; import flash.events.*; import flash.utils.*; import com.leveleditor.*; import flash.text.*; import flash.media.*; import effects.*; import flash.system.*; public class GameLevelScreen extends AbstractScreen { protected const SCALE:int = 60; protected var isPulling:Boolean; protected var crateSpreadTime:Number;// = 30 protected var fireballBouncinessBonus:Number;// = 0.84 protected var torchLit:int; public var acedScreen:MovieClip; protected var maxPrevLineLength:int; protected var bonuses:Array; protected var instructionOn:Boolean; protected var fireballRadius:uint;// = 9 public var background:MovieClip; protected var winReport:Boolean; private var tipHead:TextField; protected var fireball:b2Body; protected var winAimTime:int; protected var fireballRadiusBonus:Number;// = 6 protected var m_world:b2World; protected var m_iterations:int;// = 10 protected var fireballStopDeathTime:int;// = 500 private var btn_Guide:Button; protected var soundOn:Boolean; protected var previewLineLengthBonus:uint;// = 25 protected var winFrameTime:int; private var tipContent:TextField; public var ballSpawner:SpawnerEditor; protected var waitingForCrates:Boolean; protected var winTimeStarted:Boolean; protected var fireballView:Fireball; protected var dragHandle:DragHandle; protected var previewBody:b2Body; protected var longLine:Boolean;// = false protected var isDragging:Boolean; protected var won:Boolean; protected var previewContainer:Sprite; protected var burningCrates:int; protected var crateBurnOutTime:Number;// = 300 public var looseScreen:MovieClip; protected var oldTime:int; protected var previewLine_LongLine:uint;// = 100 private var tip:MovieClip; private var footer:TextField; protected var oY:Number;// = 0 protected var m_timeStep:Number;// = 0.025 protected var alive:Boolean; protected var oX:Number;// = 0 protected var torchNeeded:int; protected var dragArea:Rectangle; protected var previewLineLength:uint;// = 15 protected var simulating:Boolean; protected var torchNum:int; protected var winTimer:Timer; protected var stopTime:int; protected var fireballDensity:Number;// = 1 protected var lifes:int; protected var fireballBounciness:Number;// = 0.7 protected var contactListener:ContactListener; public var shotTaken:int; protected var fires:Array; public var hud:MovieClip; public static const ACED:String = "aced"; protected static const KB_Q:int = 81; public static const QUIT:String = "quit"; public static const DEATH:String = "death"; protected static const KB_A:int = 65; protected static const KB_I:int = 73; protected static const KB_ESCAPE:int = 27; protected static const KB_R:int = 82; protected static const KB_S:int = 83; public static const RESET:String = "reset"; public static const WIN:String = "win"; public static const LOOSE:String = "gameOver"; protected static const TIPS:Array = ["Click and drag the fireball to set its angle and power.\n\nAim for the tops of torches, and release the mouse button to fire.", "Unlike bricks, crates can be lit on fire.\n\nCrates can also ignite other nearby crates and torches.", "Completing a level in only one shot is called an ace.\n\nAll 50 official levels of Pyro II can be aced.", "A bonus level is unlocked for every 5 official levels that are aced.", "Having trouble acing this level?\n\nThe complete ace guide by Mr. Rubix may help!"]; public function GameLevelScreen():void{ var _local5:BitmapData; super(); if (screens.GameLevel){ oldGameScreen = GameLevelScreen(screens.GameLevel); }; screens.GameLevel = this; var _local1:SoundTransform = SoundMixer.soundTransform; hud.label_life.text = "Lives:"; hud.label_torch.text = "Torch needed:"; hud.btn_Restart.label = "Restart"; hud.btn_Suicide.label = "Suicide"; hud.btn_Mute.label = ((_local1.volume == 1)) ? "Mute" : "Unmute"; hud.btn_StopPreview.label = "Stop Preview"; hud.btn_Sponsor.tabEnabled = false; tip = hud.tip; btn_Guide = hud.tip.btn_Guide; tipHead = hud.tip.txt_Head; tipContent = hud.tip.txt_Content; footer = hud.tip.txt_Footer; hud.removeChild(tip); var _local2:Font = new TinyBoxFont(); var _local3:TextFormat = new TextFormat(); _local3.font = _local2.fontName; _local3.color = 0xFFFFFF; _local3.size = 16; looseScreen.btn_Retry.setStyle("textFormat", _local3); looseScreen.btn_LevelSelect.setStyle("textFormat", _local3); _local3 = new TextFormat(); _local3.font = _local2.fontName; _local3.color = 0xFFFFFF; _local3.size = 12; looseScreen.btn_Sponsor.setStyle("textFormat", _local3); looseScreen.btn_Browse.setStyle("textFormat", _local3); looseScreen.btn_Retry.setStyle("embedFonts", true); looseScreen.btn_LevelSelect.setStyle("embedFonts", true); looseScreen.btn_Sponsor.setStyle("embedFonts", true); looseScreen.btn_Browse.setStyle("embedFonts", true); looseScreen.visible = false; acedScreen.stop(); acedScreen.visible = false; acedScreen.unlockBackground.visible = false; acedScreen.unlockText.visible = false; removeChild(acedScreen); previewContainer = new Sprite(); burningCrates = 0; soundOn = true; instructionOn = true; alive = true; waitingForCrates = false; winReport = false; winTimeStarted = false; maxPrevLineLength = previewLineLength; bonuses = new Array(); var _local4:BitmapData = new BitmapData(400, 500, false, 0); var _local6:Sprite = new Sprite(); _local6.graphics.beginBitmapFill(new BrickBitmap(20, 20)); _local6.graphics.drawRect(0, 0, 400, 500); _local6.graphics.endFill(); _local5 = new BitmapData(400, 500, false, 0); _local5.draw(_local6); _local4.noise((Math.random() * int.MAX_VALUE), 0, 10, 7, true); _local5.draw(_local4, null, null, "add"); background.brick.overlay.graphics.beginBitmapFill(_local5); background.brick.overlay.graphics.drawRect(0, 0, 400, 500); background.brick.overlay.graphics.endFill(); _local6.graphics.clear(); _local6.graphics.beginBitmapFill(new MetalBitmap(13, 16)); _local6.graphics.drawRect(0, 0, 400, 500); _local6.graphics.endFill(); _local5 = new BitmapData(400, 500, false, 0); _local5.draw(_local6); _local4.noise((Math.random() * int.MAX_VALUE), 0, 10, 7, true); _local5.draw(_local4, null, null, "add"); background.metal.overlay.graphics.beginBitmapFill(_local5); background.metal.overlay.graphics.drawRect(0, 0, 400, 500); background.metal.overlay.graphics.endFill(); _local4.dispose(); background.glass.overlay.graphics.beginFill(1060992); background.glass.overlay.graphics.drawRect(0, 0, 400, 500); background.glass.overlay.graphics.endFill(); background.glass.alpha = 0.5; } protected function handleSuicide(_arg1:MouseEvent):void{ if (waitingForCrates){ waitingForCrates = false; burningCrates = 0; }; if (lifes == 1){ waitingForCrates = false; burningCrates = 0; }; handleReset(); } public function get winTime():int{ var _local1:int = int((winFrameTime / 40)); _local1 = (_local1 + ((winFrameTime - (_local1 * 40)) / 40)); _local1 = int((_local1 * 1000)); return ((_local1 + winAimTime)); } public function handleReset(_arg1:String="death"):void{ var _local2:b2CircleShape; simulating = false; switch (_arg1){ case DEATH: if (won){ fireball.PutToSleep(); previewBody.PutToSleep(); alive = false; simulating = false; return; }; lifes--; if (lifes < 1){ lifes = 0; hud.lifeText.text = ("x" + lifes); alive = false; fireball.PutToSleep(); previewBody.PutToSleep(); if (burningCrates < 1){ fireballView.stopSound(); Burnable.stopSound(); looseScreen.visible = true; dispatchEvent(new Event(LOOSE, true, false)); } else { waitingForCrates = true; }; return; }; hud.lifeText.text = ("x" + lifes); oldTime = getTimer(); break; case WIN: if (fireball){ fireball.PutToSleep(); }; if (previewBody){ previewBody.PutToSleep(); }; if (fireballView){ fireballView.stopSound(); }; simulating = false; Burnable.stopSound(); if (!winReport){ winReport = true; dispatchEvent(new Event(WIN, true, false)); }; alive = false; return; case RESET: break; case QUIT: if (fireball){ fireball.PutToSleep(); }; if (previewBody){ previewBody.PutToSleep(); }; if (fireballView){ fireballView.stopSound(); }; simulating = false; Burnable.stopSound(); dispatchEvent(new Event(QUIT, true, false)); alive = false; return; }; maxPrevLineLength = previewLineLength; _local2 = b2CircleShape(fireball.m_shapeList); _local2.m_radius = (fireballRadius / SCALE); _local2.m_restitution = fireballBounciness; _local2 = b2CircleShape(previewBody.m_shapeList); _local2.m_radius = (fireballRadius / SCALE); _local2.m_restitution = fireballBounciness; fireballView.scale(1); fireballView.switchPalette(new FlamePalette()); var _local3:int = bonuses.length; var _local4:int; while (_local4 < _local3) { bonuses[_local4].call(this); _local4++; }; bonuses.length = 0; oX = ballSpawner.x; oY = ballSpawner.y; fireball.SetXForm(new b2Vec2((ballSpawner.x / SCALE), (ballSpawner.y / SCALE)), 0); fireball.SetLinearVelocity(new b2Vec2(0, 0)); fireball.SetAngularVelocity(0); fireball.PutToSleep(); previewBody.PutToSleep(); } public function init(_arg1:ByteArray, _arg2:String="", _arg3:Boolean=false, _arg4:Boolean=false):void{ longLine = _arg4; _arg1.position = 0; hud.txt_levelName.text = _arg1.readUTF(); if (_arg2 != ""){ hud.txt_levelName.text = _arg2; }; lifes = _arg1.readUnsignedByte(); torchNeeded = _arg1.readUnsignedByte(); ballSpawner.x = _arg1.readUnsignedShort(); ballSpawner.y = _arg1.readUnsignedShort(); ballSpawner.spawnHitArea.visible = false; hud.percentText.text = ("0/" + torchNeeded); hud.lifeText.text = ("x" + lifes); if (_arg3){ hud.btn_StopPreview.label = "Stop Preview"; looseScreen.btn_LevelSelect.label = "Stop Preview"; } else { hud.btn_StopPreview.label = "Level Select"; hud.btn_Browse.visible = false; looseScreen.btn_Browse.visible = false; }; fireballView = new Fireball(); isDragging = false; dragHandle = new DragHandle(); addChild(dragHandle); dragHandle.visible = false; simulating = false; torchNum = 0; torchLit = 0; var _local5:b2AABB = new b2AABB(); var _local6:b2Vec2 = new b2Vec2(0, 10); var _local7:Boolean; _local5.lowerBound.Set(-100, -100); _local5.upperBound.Set(100, 100); m_world = new b2World(_local5, _local6, _local7); var _local8:ContactListener = new ContactListener(this); m_world.SetContactListener(_local8); createObjects(_arg1); addChildAt(fireballView, 0); this.visible = true; winFrameTime = 0; winAimTime = 0; winTimeStarted = false; addEventListener(Event.ENTER_FRAME, Update, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, dispose); } public function dispose(_arg1:Event=null):void{ var _local2:b2Body; removeEventListener(Event.ENTER_FRAME, Update); removeEventListener(Event.REMOVED_FROM_STAGE, dispose); if (parent){ if (stage){ stage.removeEventListener(KeyboardEvent.KEY_UP, handleKeyboard); stage.removeEventListener(MouseEvent.MOUSE_UP, handleStopDrag); stage.removeEventListener(MouseEvent.MOUSE_DOWN, handleStartDrag); }; if (!_arg1){ parent.removeChild(this); }; btn_Guide.removeEventListener(MouseEvent.MOUSE_UP, handleGuide); hud.btn_Restart.removeEventListener(MouseEvent.MOUSE_UP, handleRestart); hud.btn_Suicide.removeEventListener(MouseEvent.MOUSE_UP, handleSuicide); hud.btn_Mute.removeEventListener(MouseEvent.MOUSE_UP, handleMute); hud.btn_StopPreview.removeEventListener(MouseEvent.MOUSE_UP, handleQuit); hud.btn_Sponsor.removeEventListener(MouseEvent.CLICK, sponsor); hud.btn_Browse.removeEventListener(MouseEvent.CLICK, browseLevel); looseScreen.btn_Retry.removeEventListener(MouseEvent.CLICK, handleRestart); looseScreen.btn_LevelSelect.removeEventListener(MouseEvent.CLICK, handleQuit); looseScreen.btn_Sponsor.removeEventListener(MouseEvent.CLICK, sponsor); looseScreen.btn_Browse.removeEventListener(MouseEvent.CLICK, browseLevel); }; if (fires){ while (fires.length) { fires[0].dispose(); }; }; if (m_world){ _local2 = m_world.GetBodyList(); m_world.DestroyBody(_local2); m_world = null; }; if (fireballView){ removeChild(fireballView); fireballView.dispose(); }; fireballView = null; previewContainer = null; fires = null; fireball = null; previewBody = null; contactListener = null; Burnable.stopSound(); System.gc(); } protected function handleKeyboard(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case KB_ESCAPE: if (!isPulling){ return; }; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleDrag); isPulling = false; dragHandle.visible = false; removeChild(previewContainer); break; case KB_I: break; case KB_S: handleSuicide(null); break; case KB_R: handleRestart(); break; case KB_Q: handleQuit(); break; case KB_A: if (!Protection.debug){ return; }; shotTaken = 1; won = true; if (!winTimer){ winTimer = new Timer(1000, 1); winTimer.addEventListener(TimerEvent.TIMER, handleWin); winTimer.start(); }; break; }; } public function set tipIndex(_arg1:int):void{ if (_arg1 > 4){ _arg1 = 4; }; if (_arg1 < 4){ btn_Guide.visible = false; footer.visible = false; }; tipHead.text = (("TIP #" + (_arg1 + 1)) + ":"); tipContent.text = TIPS[_arg1]; hud.addChild(tip); } public function previewBonus():void{ lifes++; hud.lifeText.text = ("x" + lifes); bonuses.push(applyPreviewBonus); } private function browseLevel(_arg1:MouseEvent):void{ if (Protection.domain == "Kongregate"){ Protection.kongAPI.sharedContent.browse("Level"); } else { Protection.toLevelSharing(); }; } public function applyBounceBonus():void{ var _local1:b2Shape; _local1 = fireball.m_shapeList; _local1.m_restitution = fireballBouncinessBonus; _local1 = previewBody.m_shapeList; _local1.m_restitution = fireballBouncinessBonus; fireballView.switchPalette(new GreenFlamePalette()); } private function sponsor(_arg1:MouseEvent):void{ Protection.toSponsor(); } override protected function fadeInComplete():void{ btn_Guide.addEventListener(MouseEvent.MOUSE_UP, handleGuide); hud.btn_Restart.addEventListener(MouseEvent.MOUSE_UP, handleRestart); hud.btn_Suicide.addEventListener(MouseEvent.MOUSE_UP, handleSuicide); hud.btn_Mute.addEventListener(MouseEvent.MOUSE_UP, handleMute); hud.btn_StopPreview.addEventListener(MouseEvent.MOUSE_UP, handleQuit); hud.btn_Sponsor.addEventListener(MouseEvent.CLICK, sponsor); hud.btn_Browse.addEventListener(MouseEvent.CLICK, browseLevel); looseScreen.btn_Retry.addEventListener(MouseEvent.CLICK, handleRestart); looseScreen.btn_LevelSelect.addEventListener(MouseEvent.CLICK, handleQuit); looseScreen.btn_Sponsor.addEventListener(MouseEvent.CLICK, sponsor); looseScreen.btn_Browse.addEventListener(MouseEvent.CLICK, browseLevel); stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyboard); stage.addEventListener(MouseEvent.MOUSE_UP, handleStopDrag); stage.addEventListener(MouseEvent.MOUSE_DOWN, handleStartDrag); if (oldGameScreen){ oldGameScreen.dispose(); oldGameScreen = null; }; super.fadeInComplete(); } protected function handleMute(_arg1:MouseEvent):void{ var _local2:SoundTransform = SoundMixer.soundTransform; _local2.volume = ((_local2.volume == 1)) ? 0 : 1; hud.btn_Mute.label = ((_local2.volume == 1)) ? "Mute" : "Unmute"; SoundMixer.soundTransform = _local2; } public function reportBurnStart():void{ burningCrates++; } protected function handleStartDrag(_arg1:MouseEvent):void{ if (((simulating) || (!(alive)))){ return; }; if (_arg1.stageX > 400){ return; }; if (!winTimeStarted){ winTimeStarted = true; oldTime = getTimer(); }; isPulling = true; dragHandle.gauge.scaleX = 0.01; dragHandle.x = ballSpawner.x; dragHandle.y = ballSpawner.y; var _local2:int = (mouseX - dragHandle.x); var _local3:int = (mouseY - dragHandle.y); dragHandle.rotation = Math.atan2(_local2, _local3); dragHandle.visible = true; previewContainer.graphics.clear(); addChild(previewContainer); stage.addEventListener(MouseEvent.MOUSE_MOVE, handleDrag); } public function bounceBonus():void{ lifes++; hud.lifeText.text = ("x" + lifes); bonuses.push(applyBounceBonus); } protected function createObjects(_arg1:ByteArray):void{ var _local2:b2Body; var _local3:b2BodyDef; var _local4:b2PolygonDef; var _local5:b2CircleDef; var _local6:DisplayObject; var _local7:Number; var _local8:Number; var _local9:TorchBase; var _local10:Rectangle; var _local11:Crate; var _local12:PowerUpBase; var _local21:Rectangle; var _local22:Rectangle; var _local25:Array; var _local26:Number; var _local27:Number; var _local29:int; var _local30:int; var _local31:int; var _local32:int; var _local33:int; var _local34:EditableObject; var _local35:int; var _local36:int; var _local13:Array = new Array(); var _local14:Array = new Array(); var _local15:Array = new Array(); fires = new Array(); _local3 = new b2BodyDef(); _local3.position.x = (ballSpawner.x / SCALE); _local3.position.y = (ballSpawner.y / SCALE); _local7 = (fireballRadius / SCALE); _local3.scale = SCALE; oX = ballSpawner.x; oY = ballSpawner.y; _local5 = new b2CircleDef(); _local5.radius = _local7; _local5.density = fireballDensity; _local5.friction = 0; _local5.restitution = fireballBounciness; _local3.isBullet = true; _local2 = m_world.CreateBody(_local3); _local5.filter.categoryBits = 2; _local5.filter.maskBits = 3; _local2.CreateShape(_local5); _local2.SetMassFromShapes(); _local2.PutToSleep(); fireball = _local2; _local3.userData = new DummyBody(); _local3.isBullet = true; _local2 = m_world.CreateBody(_local3); _local5.filter.categoryBits = 4; _local5.filter.maskBits = 5; _local2.CreateShape(_local5); _local2.SetMassFromShapes(); _local2.PutToSleep(); previewBody = _local2; createRectBox(200, -90, 400, 20); createRectBox(0, 220, 20, 600); createRectBox(400, 220, 20, 600); createRectBox(40, 500, 20, 20); createRectBox(80, 500, 20, 20); createRectBox(120, 500, 20, 20); createRectBox(160, 500, 20, 20); createRectBox(200, 500, 20, 20); createRectBox(240, 500, 20, 20); createRectBox(280, 500, 20, 20); createRectBox(320, 500, 20, 20); createRectBox(360, 500, 20, 20); var _local16:int = _arg1.readUnsignedShort(); var _local17:int; while (_local17 < _local16) { _local29 = _arg1.readUnsignedByte(); if (_local29 == 0){ _local30 = _arg1.readUnsignedShort(); _local31 = _arg1.readUnsignedShort(); _local32 = _arg1.readUnsignedShort(); _local33 = _arg1.readUnsignedShort(); _local34 = new EditableRectangle(_local30, _local31, _local32, _local33); _local34.matId = _arg1.readUnsignedByte(); switch (_local34.matId){ case 0: background.brick._mask.addChild(_local34.overlay); break; case 1: background.metal._mask.addChild(_local34.overlay); break; case 2: background.glass._mask.addChild(_local34.overlay); break; }; _local13.push(_local34); createRectBox(_local30, _local31, _local32, _local33, _local34.matId); } else { if (_local29 == 1){ _local30 = _arg1.readUnsignedShort(); _local31 = _arg1.readUnsignedShort(); _local35 = _arg1.readUnsignedShort(); _local34 = new EditableCircle(_local30, _local31, _local35); _local34.matId = _arg1.readUnsignedByte(); switch (_local34.matId){ case 0: background.brick._mask.addChild(_local34.overlay); break; case 1: background.metal._mask.addChild(_local34.overlay); break; case 2: background.glass._mask.addChild(_local34.overlay); break; }; _local13.push(_local34); _local3 = new b2BodyDef(); _local3.position.x = (_local30 / SCALE); _local3.position.y = (_local31 / SCALE); _local7 = (_local35 / SCALE); _local3.scale = SCALE; _local5 = new b2CircleDef(); _local5.radius = _local7; assignMat(_local34.matId, _local5, _local3); _local2 = m_world.CreateBody(_local3); _local5.filter.categoryBits = 1; _local5.filter.maskBits = 7; _local2.CreateShape(_local5); }; }; _local17++; }; removeChild(ballSpawner); var _local18:BitmapData = new BitmapData(400, 500, true, 0); _local18.draw(background); var _local19:Bitmap = new Bitmap(_local18); removeChild(background); addChildAt(_local19, 0); _local17 = 0; while (_local17 < _local16) { _local13[_local17].dispose(); _local17++; }; _local13.length = 0; var _local20:int = getChildIndex(looseScreen); _local16 = _arg1.readUnsignedShort(); _local17 = 0; while (_local17 < _local16) { _local30 = _arg1.readUnsignedShort(); _local31 = _arg1.readUnsignedShort(); _local6 = new Crate(); _local6.x = _local30; _local6.y = _local31; addChildAt(_local6, _local20); _local20++; fires.push(_local6); _local15.push(_local6); _local3 = new b2BodyDef(); _local3.position.x = (_local6.x / SCALE); _local3.position.y = (_local6.y / SCALE); _local7 = (_local6.width / (SCALE * 2)); _local8 = (_local6.height / (SCALE * 2)); _local3.scale = SCALE; _local4 = new b2PolygonDef(); _local4.SetAsBox(_local7, _local8); _local4.friction = 0; _local4.restitution = 0.6; _local4.isSensor = false; _local3.userData = _local6; _local2 = m_world.CreateBody(_local3); _local11 = Crate(_local6); _local11.blockBody = _local2; _local11.spreadTime = crateSpreadTime; _local11.burnTime = crateBurnOutTime; _local11.initSpark(this); _local11.init(CrateBitmap, CrateBurnBitmap); _local4.filter.categoryBits = 1; _local4.filter.maskBits = 7; _local2.CreateShape(_local4); _local2.SetMassFromShapes(); _local17++; }; _local16 = _arg1.readUnsignedShort(); _local17 = 0; while (_local17 < _local16) { _local29 = _arg1.readUnsignedByte(); _local30 = _arg1.readUnsignedShort(); _local31 = _arg1.readUnsignedShort(); if (_local29 == 0){ _local6 = new LTorch(); } else { if (_local29 == 1){ _local6 = new RTorch(); } else { _local6 = new Torch(); }; }; _local6.x = _local30; _local6.y = _local31; addChildAt(_local6, _local20); _local20++; _local9 = TorchBase(_local6); _local10 = _local9.torchHitArea.getBounds(this); fires.push(_local6); _local14.push(_local9); _local9.torchHitArea.visible = false; _local9.initSpark(this); torchNum++; _local3 = new b2BodyDef(); _local7 = (_local10.width / (SCALE * 2)); _local8 = (_local10.height / (SCALE * 2)); _local3.position.x = ((_local10.x / SCALE) + _local7); _local3.position.y = ((_local10.y / SCALE) + _local8); _local3.scale = SCALE; _local4 = new b2PolygonDef(); _local4.SetAsBox(_local7, _local8); _local4.isSensor = true; _local3.userData = _local6; _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local4); _local17++; }; _local16 = _arg1.readUnsignedShort(); _local17 = 0; while (_local17 < _local16) { _local29 = _arg1.readUnsignedByte(); _local30 = _arg1.readUnsignedShort(); _local31 = _arg1.readUnsignedShort(); if (_local29 == 0){ _local6 = new PlusOnePowerUp(); } else { if (_local29 == 1){ _local6 = new BounceUpPowerUp(); } else { if (_local29 == 2){ _local6 = new LongLinePowerUp(); } else { _local6 = new HalfSizePowerUp(); }; }; }; _local6.x = _local30; _local6.y = _local31; fires.push(_local6); _local3 = new b2BodyDef(); _local3.position.x = (_local6.x / SCALE); _local3.position.y = (_local6.y / SCALE); _local7 = (18 / (SCALE * 2)); _local3.scale = SCALE; _local5 = new b2CircleDef(); _local5.radius = _local7; _local5.isSensor = true; _local3.userData = _local6; _local2 = m_world.CreateBody(_local3); _local2.CreateShape(_local5); _local2.SetMassFromShapes(); _local12 = PowerUpBase(_local6); PowerUpBase.depth = _local20; _local12.initSpark(this); _local20++; _local17++; }; Burnable.depth = _local20; var _local23:int = _local14.length; var _local24:int = _local15.length; var _local28:Point = new Point(); _local17 = 0; while (_local17 < _local24) { _local11 = _local15[_local17]; _local21 = _local11.bound; _local36 = 0; while (_local36 < _local23) { _local9 = _local14[_local36]; _local22 = _local9.torchHitArea.getBounds(this); if (_local21.intersects(_local22)){ _local11.addNeighbour(_local9); }; _local36++; }; _local26 = _local11.x; _local27 = _local11.y; _local36 = 0; while (_local36 < _local24) { if (_local15[_local36] == _local11){ } else { _local22 = _local15[_local36].bound; if (_local21.intersects(_local22)){ _local11.addNeighbour(_local15[_local36]); }; }; _local36++; }; _local17++; }; _local15.length = 0; _local14.length = 0; _local15 = null; _local14 = null; } protected function handleDrag(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:Point; var _local7:int; var _local8:b2Vec2; if (isPulling){ _local2 = (mouseX - dragHandle.x); _local3 = (mouseY - dragHandle.y); _local4 = Math.atan2(_local3, _local2); _local5 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); _local5 = Math.min(69.6, _local5); _local5 = Math.max(0.1, _local5); _local5 = (_local5 / 69.6); dragHandle.rotation = (_local4 * (180 / Math.PI)); dragHandle.gauge.scaleX = _local5; _local5 = (_local5 * 13); _local6 = Point.polar(_local5, _local4); previewBody.SetXForm(new b2Vec2((ballSpawner.x / SCALE), (ballSpawner.y / SCALE)), 0); previewBody.SetAngularVelocity(0); previewBody.SetLinearVelocity(new b2Vec2(_local6.x, _local6.y)); previewBody.WakeUp(); fireball.PutToSleep(); previewContainer.graphics.clear(); previewContainer.graphics.lineStyle(1, 0xFFFFFF); previewContainer.graphics.moveTo(ballSpawner.x, ballSpawner.y); if (longLine){ maxPrevLineLength = previewLine_LongLine; }; _local7 = 0; while (_local7 < maxPrevLineLength) { m_world.Step(m_timeStep, m_iterations); _local8 = previewBody.GetPosition(); previewContainer.graphics.lineTo((_local8.x * SCALE), (_local8.y * SCALE)); if ((_local8.y * SCALE) > 600){ break; }; _local7++; }; previewBody.PutToSleep(); }; } public function playAced(_arg1:int):void{ acedScreen.addEventListener(Event.COMPLETE, handleAceComplete); acedScreen.visible = true; addChild(acedScreen); if (_arg1 > 0){ acedScreen.unlockText.text.text = (((((((("Secret level " + _arg1) + "! - Secret level ") + _arg1) + "! - Secret level ") + _arg1) + "! - Secret level ") + _arg1) + "! -"); acedScreen.unlockBackground.visible = true; acedScreen.unlockText.visible = true; }; acedScreen.play(); } protected function handleQuit(_arg1:Event=null):void{ waitingForCrates = false; burningCrates = 0; handleReset(QUIT); } protected function handleStopDrag(_arg1:MouseEvent):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; var _local6:Point; if (isPulling){ stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleDrag); winAimTime = (winAimTime + (getTimer() - oldTime)); isPulling = false; shotTaken++; dragHandle.visible = false; _local2 = (mouseX - dragHandle.x); _local3 = (mouseY - dragHandle.y); _local4 = Math.atan2(_local3, _local2); _local5 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); _local5 = Math.min(69.6, _local5); _local5 = Math.max(0.1, _local5); _local5 = ((_local5 / 69.6) * 13); _local6 = Point.polar(_local5, _local4); removeChild(previewContainer); fireball.WakeUp(); fireball.SetLinearVelocity(new b2Vec2(_local6.x, _local6.y)); simulating = true; }; } protected function createRectBox(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int=0):void{ var _local6:b2Body; var _local7:b2BodyDef; var _local8:b2PolygonDef; var _local9:Number; var _local10:Number; _local7 = new b2BodyDef(); _local7.position.x = (_arg1 / SCALE); _local7.position.y = (_arg2 / SCALE); _local9 = (_arg3 / (SCALE * 2)); _local10 = (_arg4 / (SCALE * 2)); _local7.scale = SCALE; _local8 = new b2PolygonDef(); _local8.SetAsBox(_local9, _local10); assignMat(_arg5, _local8, _local7); _local6 = m_world.CreateBody(_local7); _local8.filter.categoryBits = 1; _local8.filter.maskBits = 7; _local6.CreateShape(_local8); } public function lifeBonus():void{ lifes++; hud.lifeText.text = ("x" + lifes); } public function halfSizeBonus():void{ lifes++; hud.lifeText.text = ("x" + lifes); bonuses.push(applyHalfSizeBonus); } private function handleGuide(_arg1:MouseEvent):void{ Protection.toGuide(); } protected function handleWin(_arg1:TimerEvent):void{ if (winTimer){ winTimer.removeEventListener(TimerEvent.TIMER, handleWin); winTimer.stop(); winTimer = null; }; handleReset(WIN); } public function score():void{ torchLit = (((torchLit >> 2) + 1) << 2); hud.percentText.text = (((torchLit >> 2) + "/") + torchNeeded); } protected function handleAceComplete(_arg1:Event):void{ acedScreen.removeEventListener(Event.COMPLETE, handleAceComplete); dispatchEvent(new Event(ACED, true, false)); } public function reportBurnStop():void{ burningCrates--; } protected function handleRestart(_arg1:Event=null):void{ dispatchEvent(new Event(RESET, true, false)); } protected function applyPreviewBonus():void{ maxPrevLineLength = previewLineLengthBonus; fireballView.switchPalette(new RedFlamePalette()); } public function applyHalfSizeBonus():void{ var _local1:b2CircleShape = b2CircleShape(fireball.m_shapeList); _local1.m_radius = (fireballRadiusBonus / SCALE); _local1 = b2CircleShape(previewBody.m_shapeList); _local1.m_radius = (fireballRadiusBonus / SCALE); fireballView.scale((fireballRadiusBonus / fireballRadius)); fireballView.switchPalette(new BlueFlamePalette()); } protected function Update(_arg1:Event):void{ if (simulating){ previewBody.PutToSleep(); m_world.Step(m_timeStep, m_iterations); if (!won){ winFrameTime++; }; }; var _local2:Matrix = fireball.GetTransform(); var _local3:Number = _local2.tx; var _local4:Number = _local2.ty; var _local5:Number = (_local3 - oX); var _local6:Number = (_local4 - oY); oX = _local3; oY = _local4; var _local7:Number = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); fireballView.update(_local2, _local7); var _local8:int = fires.length; var _local9:int = getTimer(); var _local10:int = (_local8 - 1); while (_local10 > -1) { fires[_local10].drawSpark(_local9); _local10--; }; if (((!(_local7)) && (simulating))){ stopTime++; if (stopTime > fireballStopDeathTime){ handleReset(); return; }; } else { stopTime = 0; }; if ((((((((((oY < -500)) || ((oY > 600)))) || ((oX < -100)))) || ((oX > 500)))) && (alive))){ handleReset(); return; }; if (((((!(alive)) && (waitingForCrates))) && ((burningCrates < 1)))){ handleReset(); return; }; if ((torchLit >> 2) >= torchNeeded){ won = true; if (!winTimer){ winTimer = new Timer(1000, 1); winTimer.addEventListener(TimerEvent.TIMER, handleWin); winTimer.start(); }; }; } protected function assignMat(_arg1:int, _arg2:b2ShapeDef, _arg3:b2BodyDef):void{ switch (_arg1){ case 0: _arg2.friction = 0.25; _arg2.restitution = 0.7; break; case 1: _arg2.friction = 0.15; _arg2.restitution = 0.8; break; case 2: _arg2.friction = 0.5; _arg2.restitution = 0.75; break; }; _arg3.userData = new Block(_arg1); } public function removeFire(_arg1:IFireEmitter):void{ var _local2:int; _local2 = fires.indexOf(_arg1); fires.splice(_local2, 1); } } }//package screenSection 187//GameLevelSnapshot (screen.GameLevelSnapshot) package screen { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; import Box2D.Dynamics.*; import flash.display.*; import game.*; import Box2D.Collision.*; import flash.events.*; import flash.utils.*; import com.leveleditor.*; import flash.media.*; import effects.*; import flash.system.*; public class GameLevelSnapshot extends Sprite { public var ballSpawner:PlayerSnap; public var background:MovieClip; public function GameLevelSnapshot():void{ var _local2:BitmapData; super(); var _local1:BitmapData = new BitmapData(400, 500, false, 0); var _local3:Sprite = new Sprite(); _local3.graphics.beginBitmapFill(new BrickBitmap(20, 20)); _local3.graphics.drawRect(0, 0, 400, 500); _local3.graphics.endFill(); _local2 = new BitmapData(400, 500, false, 0); _local2.draw(_local3); _local1.noise((Math.random() * int.MAX_VALUE), 0, 10, 7, true); _local2.draw(_local1, null, null, "add"); background.brick.overlay.graphics.beginBitmapFill(_local2); background.brick.overlay.graphics.drawRect(0, 0, 400, 500); background.brick.overlay.graphics.endFill(); _local3.graphics.clear(); _local3.graphics.beginBitmapFill(new MetalBitmap(13, 16)); _local3.graphics.drawRect(0, 0, 400, 500); _local3.graphics.endFill(); _local2 = new BitmapData(400, 500, false, 0); _local2.draw(_local3); _local1.noise((Math.random() * int.MAX_VALUE), 0, 10, 7, true); _local2.draw(_local1, null, null, "add"); background.metal.overlay.graphics.beginBitmapFill(_local2); background.metal.overlay.graphics.drawRect(0, 0, 400, 500); background.metal.overlay.graphics.endFill(); _local1.dispose(); _local2.dispose(); background.glass.overlay.graphics.beginFill(1060992); background.glass.overlay.graphics.drawRect(0, 0, 400, 500); background.glass.overlay.graphics.endFill(); background.glass.alpha = 0.5; } public function draw(_arg1:ByteArray):void{ _arg1.position = 0; _arg1.readUTF(); _arg1.readUnsignedByte(); _arg1.readUnsignedByte(); ballSpawner.x = _arg1.readUnsignedShort(); ballSpawner.y = _arg1.readUnsignedShort(); createObjects(_arg1); } protected function createObjects(_arg1:ByteArray):void{ var _local2:DisplayObject; var _local3:Number; var _local4:Number; var _local5:TorchBase; var _local6:Rectangle; var _local7:Crate; var _local8:PowerUpBase; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:int; var _local17:EditableObject; var _local18:int; var _local9:Array = new Array(); var _local10:int = _arg1.readUnsignedShort(); var _local11:int; while (_local11 < _local10) { _local12 = _arg1.readUnsignedByte(); if (_local12 == 0){ _local13 = _arg1.readUnsignedShort(); _local14 = _arg1.readUnsignedShort(); _local15 = _arg1.readUnsignedShort(); _local16 = _arg1.readUnsignedShort(); _local17 = new EditableRectangle(_local13, _local14, _local15, _local16); _local17.matId = _arg1.readUnsignedByte(); switch (_local17.matId){ case 0: background.brick._mask.addChild(_local17.overlay); break; case 1: background.metal._mask.addChild(_local17.overlay); break; case 2: background.glass._mask.addChild(_local17.overlay); break; }; _local9.push(_local17); } else { if (_local12 == 1){ _local13 = _arg1.readUnsignedShort(); _local14 = _arg1.readUnsignedShort(); _local18 = _arg1.readUnsignedShort(); _local17 = new EditableCircle(_local13, _local14, _local18); _local17.matId = _arg1.readUnsignedByte(); switch (_local17.matId){ case 0: background.brick._mask.addChild(_local17.overlay); break; case 1: background.metal._mask.addChild(_local17.overlay); break; case 2: background.glass._mask.addChild(_local17.overlay); break; }; _local9.push(_local17); }; }; _local11++; }; _local10 = _arg1.readUnsignedShort(); _local11 = 0; while (_local11 < _local10) { _local13 = _arg1.readUnsignedShort(); _local14 = _arg1.readUnsignedShort(); _local2 = new Crate(); _local2.x = _local13; _local2.y = _local14; addChild(_local2); _local11++; }; _local10 = _arg1.readUnsignedShort(); _local11 = 0; while (_local11 < _local10) { _local12 = _arg1.readUnsignedByte(); _local13 = _arg1.readUnsignedShort(); _local14 = _arg1.readUnsignedShort(); if (_local12 == 0){ _local2 = new LTorch(); } else { if (_local12 == 1){ _local2 = new RTorch(); } else { _local2 = new Torch(); }; }; _local2.x = _local13; _local2.y = _local14; addChild(_local2); _local5 = TorchBase(_local2); _local5.torchHitArea.visible = false; _local11++; }; _local10 = _arg1.readUnsignedShort(); _local11 = 0; while (_local11 < _local10) { _local12 = _arg1.readUnsignedByte(); _local13 = _arg1.readUnsignedShort(); _local14 = _arg1.readUnsignedShort(); if (_local12 == 0){ _local2 = new PlusOneSnap(); } else { if (_local12 == 1){ _local2 = new BounceSnap(); } else { if (_local12 == 2){ _local2 = new LongLineSnap(); } else { _local2 = new HalfSizeSnap(); }; }; }; _local2.x = _local13; _local2.y = _local14; addChild(_local2); _local11++; }; } } }//package screenSection 188//GregIntroScreen (screen.GregIntroScreen) package screen { import flash.display.*; import flash.events.*; import flash.media.*; public class GregIntroScreen extends AbstractScreen { public var btn_Skip:SimpleButton; var humm:Sound; var hummTfm:SoundTransform; var turnOff:Sound; public var anim_text:MovieClip; var hummChan:SoundChannel; public function GregIntroScreen():void{ humm = new Humm(); turnOff = new MonitorOff(); hummTfm = new SoundTransform(0); addFrameScript(0, frame1, 4, frame5, 24, frame25); super(); if (!screens.GregIntro){ screens.GregIntro = this; } else { throw (new Error("There can only be one greg intro screen.")); }; btn_Skip.addEventListener(MouseEvent.CLICK, handleIntroSkip); btn_Skip.visible = Protection.skipable; x = (width / 2); y = (height / 2); } override public function fadeIn():void{ super.fadeIn(); hummTfm.volume = 0; hummChan = humm.play(0, int.MAX_VALUE, hummTfm); addEventListener(Event.ENTER_FRAME, handleFadeIn); } override protected function fadeOutComplete():void{ super.fadeOutComplete(); stop(); if (anim_text){ anim_text.anim_text.stop(); anim_text.anim_text.stopIntro(); }; if (hummChan){ hummChan.stop(); }; } function frame1(){ stop(); } function frame5(){ addEventListener(Event.ENTER_FRAME, handleFadeOut); } override protected function fadeInComplete():void{ super.fadeInComplete(); anim_text.anim_text.play(); } private function handleIntroSkip(_arg1:Event):void{ stop(); if (Protection.kongAPI.userLevelAvailable){ loadUserLevel(); } else { transitionTo(screens.MainMenu); }; } private function handleFadeIn(_arg1:Event):void{ if (!hummChan){ return; }; var _local2:Number = hummTfm.volume; _local2 = (_local2 + 0.1); if (_local2 >= 1){ _local2 = 1; removeEventListener(Event.ENTER_FRAME, handleFadeIn); }; hummTfm.volume = _local2; hummChan.soundTransform = hummTfm; } private function handleFadeOut(_arg1:Event):void{ if (!hummChan){ return; }; var _local2:Number = hummTfm.volume; _local2 = (_local2 - 0.1); if (_local2 <= 0){ hummChan.stop(); removeEventListener(Event.ENTER_FRAME, handleFadeOut); return; }; hummTfm.volume = _local2; hummChan.soundTransform = hummTfm; } public function stopSound():void{ hummChan.stop(); } function frame25(){ stop(); handleIntroComplete(); } private function handleIntroComplete():void{ if (Protection.kongAPI.userLevelAvailable){ loadUserLevel(); } else { transitionTo(screens.MainMenu); }; } } }//package screenSection 189//GregIntroTypeEffect (screen.GregIntroTypeEffect) package screen { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.media.*; public class GregIntroTypeEffect extends MovieClip { private var spaceSound:Array; private var minType:int;// = 40 private var keyType:String;// = "normal" private var maxType:int;// = 80 private var timer:Timer; private var typeSound:Array; public function GregIntroTypeEffect():void{ typeSound = new Array(3); spaceSound = new Array(3); timer = new Timer(randomTime(), 1); super(); addFrameScript(0, frame1, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29, 29, frame30, 30, frame31, 31, frame32, 32, frame33, 33, frame34, 41, frame42, 42, frame43, 43, frame44, 44, frame45, 53, frame54, 54, frame55, 55, frame56, 56, frame57, 57, frame58, 58, frame59, 59, frame60, 60, frame61, 61, frame62, 62, frame63, 63, frame64, 64, frame65, 65, frame66, 66, frame67, 82, frame83, 83, frame84, 84, frame85, 85, frame86, 86, frame87, 87, frame88, 88, frame89, 89, frame90, 90, frame91, 91, frame92, 92, frame93, 93, frame94, 94, frame95, 95, frame96, 96, frame97, 97, frame98, 98, frame99, 99, frame100, 100, frame101, 101, frame102, 102, frame103, 103, frame104, 104, frame105, 105, frame106, 169, frame170); typeSound[0] = new Keyboard_Click_0(); typeSound[1] = new Keyboard_Click_1(); typeSound[2] = new Keyboard_Click_2(); spaceSound[0] = new Keyboard_Spacebar_0(); spaceSound[1] = new Keyboard_Spacebar_1(); spaceSound[2] = new Keyboard_Spacebar_2(); timer.addEventListener(TimerEvent.TIMER, handleTimer); } function frame63(){ playsound(); delay(); } function delay():void{ timer.delay = randomTime(); timer.start(); } function frame66(){ playsound(); delay(); } function frame67(){ play(); } function stopIntro():void{ stop(); if (timer){ timer.stop(); timer = null; }; typeSound.length = 0; spaceSound.length = 0; } function frame31(){ playsound(); delay(); } function frame32(){ playsound(); delay(); } function frame33(){ playsound(); delay(); } function frame34(){ playsound(); play(); } function frame98(){ playsound(); delay(); } function frame106(){ play(); } function frame30(){ keyType = "normal"; playsound(); delay(); } function frame100(){ playsound(); delay(); } function frame83(){ stop(); keyType = "normal"; playsound(); delay(); } function frame85(){ playsound(); delay(); } function frame42(){ stop(); playsound(); delay(); } function frame43(){ playsound(); delay(); } function frame44(){ playsound(); delay(); } function frame45(){ playsound(); play(); } function randomTime():int{ return (((Math.random() * (maxType - minType)) + minType)); } function frame86(){ playsound(); delay(); } function frame88(){ playsound(); delay(); } function frame89(){ playsound(); delay(); } function frame84(){ playsound(); delay(); } function frame87(){ playsound(); delay(); } function frame170(){ stop(); MovieClip(this.parent).play(); } function frame90(){ playsound(); delay(); } function frame92(){ playsound(); delay(); } function frame93(){ playsound(); delay(); } function frame94(){ playsound(); delay(); } function frame95(){ playsound(); delay(); } function frame96(){ playsound(); delay(); } function frame97(){ playsound(); delay(); } function frame54(){ stop(); playsound(); delay(); } function frame55(){ playsound(); delay(); } function frame56(){ playsound(); delay(); } function frame13(){ stop(); keyType = "normal"; playsound(); delay(); } function frame14(){ playsound(); delay(); } function frame15(){ playsound(); delay(); } function frame17(){ keyType = "space"; playsound(); delay(); } function frame18(){ keyType = "normal"; playsound(); delay(); } function frame19(){ playsound(); delay(); } function frame57(){ playsound(); delay(); } function frame58(){ playsound(); delay(); } function frame16(){ playsound(); delay(); } function playsound():void{ var _local1:int = (Math.random() * 3); if (keyType == "normal"){ typeSound[_local1].play(0, 0); } else { if (keyType == "space"){ spaceSound[_local1].play(0, 0); }; }; } function frame99(){ playsound(); delay(); } function frame91(){ playsound(); delay(); } function frame59(){ playsound(); delay(); } function frame1(){ stop(); } function frame101(){ playsound(); delay(); } function frame102(){ playsound(); delay(); } function frame60(){ playsound(); delay(); } function frame61(){ playsound(); delay(); } function frame62(){ playsound(); delay(); } function frame20(){ playsound(); delay(); } function frame21(){ keyType = "space"; playsound(); delay(); } function frame22(){ keyType = "normal"; playsound(); delay(); } function frame23(){ playsound(); delay(); } function frame24(){ playsound(); delay(); } function frame25(){ playsound(); delay(); } function frame26(){ playsound(); delay(); } function frame27(){ playsound(); delay(); } function frame28(){ playsound(); delay(); } function frame29(){ keyType = "space"; playsound(); delay(); } function frame103(){ playsound(); delay(); } function frame104(){ playsound(); delay(); } function frame105(){ playsound(); delay(); } function frame64(){ playsound(); delay(); } function frame65(){ playsound(); delay(); } function handleTimer(_arg1:TimerEvent):void{ this.nextFrame(); } } }//package screenSection 190//LevelEditorScreen (screen.LevelEditorScreen) package screen { import flash.geom.*; import flash.display.*; import game.*; import flash.events.*; import flash.utils.*; import com.leveleditor.*; import com.*; import flash.text.*; import theme.*; import com.hurlant.util.*; import flash.media.*; import flash.system.*; public class LevelEditorScreen extends AbstractScreen { private var snapshot:Bitmap; public var dialog:MovieClip; private var winSound:Sound; private var snapshotData:BitmapData; private var reset:Boolean; public var editPanel:EditorPanel; private var loadingExternal:Boolean;// = false public var editor:EditorDisplay; public function LevelEditorScreen():void{ snapshot = new Bitmap(); super(); if (!screens.LevelEditor){ screens.LevelEditor = this; } else { throw (new Error("There can only be one level editor screen.")); }; var _local1:TextFormat = new TextFormat(); _local1.font = "_sans"; _local1.color = 0xFFFFFF; _local1.size = 13; _local1.bold = true; dialog.txt_title.setStyle("textFormat", _local1); _local1 = new TextFormat(); _local1.font = "_sans"; _local1.color = 0xFFFFFF; _local1.size = 13; dialog.txt_desc.setStyle("textFormat", _local1); dialog.visible = false; addChild(CursorManager.instance); editPanel.display = editor; addEventListener("SAVE", showSaveDialog); addEventListener("LOAD", showLoadDialog); addEventListener("TEST", handlePreview); addEventListener("MAIN MENU", handleMainMenu); dialog.btn_OK.addEventListener(MouseEvent.CLICK, closeDialog); dialog.btn_close.addEventListener(MouseEvent.CLICK, closeDialog); winSound = new Win(); } private function handleMainMenu(_arg1:Event):void{ transitionTo(screens.MainMenu); } private function showSaveDialog(_arg1:Event):void{ var _local2:ByteArray = editor.data; dialog.txt_title.text = "Save Level"; dialog.txt_dialog.text = Base64.encodeByteArray(_local2); dialog.txt_dialog.editable = false; dialog.txt_desc.text = "Press 'Copy' and then paste the code into a forum, instant messenger, or e-mail to share your level with friends."; dialog.btn_copy.label = "Copy"; dialog.btn_copy.addEventListener(MouseEvent.CLICK, copyText); dialog.btn_OK.label = "OK"; dialog.btn_submit.addEventListener(MouseEvent.CLICK, submitLevel); if ((((((Protection.domain == "localhost")) && (Protection.debug))) || ((Protection.domain == "Kongregate")))){ dialog.btn_submit.label = "Submit to Kongregate"; } else { dialog.btn_submit.label = "Share Your Level!"; }; dialog.visible = true; } protected function startPreview():void{ var _local1:GameLevelScreen = new GameLevelScreen(); _local1.addEventListener(GameLevelScreen.WIN, handleWin); _local1.addEventListener(GameLevelScreen.QUIT, stopPreview); _local1.addEventListener(GameLevelScreen.RESET, handleReset); cursorManager = false; _parent.addChild(_local1); _local1.init(editor.data, "", true, editPanel.check_longGuide.selected); transitionTo(_local1); } private function handleReset(_arg1:Event):void{ reset = true; stopPreview(); startPreview(); } private function copyText(_arg1:MouseEvent):void{ System.setClipboard(dialog.txt_dialog.text); } private function submitLevel(_arg1:MouseEvent):void{ if (Protection.domain != "Kongregate"){ Protection.toLevelSharing(); return; }; var _local2:GameLevelSnapshot = new GameLevelSnapshot(); _local2.draw(editor.data); var _local3:Matrix = new Matrix(); _local3.scale((150 / 400), (190 / 500)); snapshotData = new BitmapData(150, 190); snapshotData.draw(_local2, _local3); snapshot.bitmapData = snapshotData; Protection.kongAPI.sharedContent.save("Level", Base64.encodeByteArray(editor.data), handleLevelSaved, snapshot, editPanel.txt_name.text); } private function handleWin(_arg1:Event):void{ reset = true; winSound.play(0, 0); stopPreview(); startPreview(); } private function handlePreview(_arg1:Event):void{ startPreview(); } private function closeDialog(_arg1:MouseEvent):void{ dialog.btn_copy.removeEventListener(MouseEvent.CLICK, copyText); dialog.btn_copy.removeEventListener(MouseEvent.CLICK, loadLevel); dialog.visible = false; } private function browseLevel(_arg1:MouseEvent):void{ if (Protection.domain == "Kongregate"){ Protection.kongAPI.sharedContent.browse("Level"); } else { Protection.toLevelSharing(); }; } private function showLoadDialog(_arg1:Event):void{ dialog.txt_title.text = "Load Level"; dialog.txt_dialog.text = ""; dialog.txt_dialog.editable = true; dialog.txt_desc.text = "Copy a map code from a forum, instant messenger, or e-mail, and then paste it into this box (Ctrl-V)."; dialog.btn_copy.label = "Load"; dialog.btn_copy.addEventListener(MouseEvent.CLICK, loadLevel); dialog.btn_OK.label = "Cancel"; dialog.btn_submit.addEventListener(MouseEvent.CLICK, browseLevel); dialog.btn_submit.label = "Browse Levels at Kongregate!"; dialog.visible = true; } protected function stopPreview(_arg1:Event=null):void{ var _local2:GameLevelScreen = GameLevelScreen(screens.GameLevel); _local2.removeEventListener(GameLevelScreen.WIN, handleWin); _local2.removeEventListener(GameLevelScreen.QUIT, stopPreview); _local2.removeEventListener(GameLevelScreen.RESET, handleReset); cursorManager = true; if (reset){ reset = false; } else { transitionTo(this); }; } public function set cursorManager(_arg1:Boolean):void{ var val = _arg1; if (val){ addChild(CursorManager.instance); } else { try { removeChild(CursorManager.instance); } catch(err:Error) { }; }; } function handleLevelSaved(_arg1:Object){ if (snapshotData){ snapshotData.dispose(); }; dialog.btn_copy.removeEventListener(MouseEvent.CLICK, copyText); dialog.btn_copy.removeEventListener(MouseEvent.CLICK, loadLevel); dialog.visible = false; } public function loadExternalLevel(_arg1:String):void{ if ((currentScreen is GameLevelScreen)){ LevelSelectorScreen(screens.LevelSelector).stopLevel(); } else { if (screens.GameLevel){ GameLevelScreen(screens.GameLevel).dispose(); }; }; var _local2:ByteArray = Base64.decodeToByteArray(_arg1); editor.data = _local2; var _local3:GameLevelScreen = new GameLevelScreen(); _local3.addEventListener(GameLevelScreen.WIN, handleReset); _local3.addEventListener(GameLevelScreen.QUIT, stopPreview); _local3.addEventListener(GameLevelScreen.RESET, handleReset); cursorManager = false; _parent.addChild(_local3); _local3.init(editor.data, "", true, editPanel.check_longGuide.selected); loadingExternal = false; startPreview(); } private function loadLevel(_arg1:MouseEvent):void{ dialog.btn_copy.removeEventListener(MouseEvent.CLICK, loadLevel); var _local2:ByteArray = Base64.decodeToByteArray(dialog.txt_dialog.text); editor.data = _local2; dialog.visible = false; } } }//package screenSection 191//LevelSelectorScreen (screen.LevelSelectorScreen) package screen { import flash.geom.*; import fl.controls.*; import flash.display.*; import game.*; import flash.events.*; import fl.data.*; import com.*; import flash.text.*; import com.hurlant.util.*; import flash.media.*; public class LevelSelectorScreen extends AbstractScreen { public var aced:MovieClip; protected var buttonArray:Array; public var levelList:List; protected var snd_click:Sound; public var time:TextField; protected var previewPane:Bitmap; protected var winSound:Sound; public var btn_Sponsor:Button; public var btn_MainMenu:Button; public var btn_Play:Button; protected var snd_playClick:Sound; protected var snd_over:Sound; protected var snd_playOut:Sound; public var btn_Guide:Button; protected var snd_playOver:Sound; public function LevelSelectorScreen():void{ snd_over = new Thunk_0(); snd_click = new Thunk_2(); snd_playOver = new Play_Over(); snd_playOut = new Play_Out(); snd_playClick = new Play_Click(); super(); if (!screens.LevelSelector){ screens.LevelSelector = this; } else { throw (new Error("There can only be one level selector screen.")); }; buttonArray = new Array(); previewPane = new Bitmap(); previewPane.x = 370; previewPane.y = 15; addChildAt(previewPane, (numChildren - 2)); aced.visible = false; var _local1:Font = new TinyBoxFont(); var _local2:TextFormat = new TextFormat(); _local2.font = _local1.fontName; _local2.color = 0xFFFFFF; _local2.size = 16; btn_Play.setStyle("textFormat", _local2); btn_MainMenu.setStyle("textFormat", _local2); _local2 = new TextFormat(); _local2.font = _local1.fontName; _local2.color = 0xFFFFFF; _local2.size = 12; btn_Guide.setStyle("textFormat", _local2); btn_Sponsor.setStyle("textFormat", _local2); btn_Play.setStyle("embedFonts", true); btn_MainMenu.setStyle("embedFonts", true); btn_Guide.setStyle("embedFonts", true); btn_Sponsor.setStyle("embedFonts", true); levelList.rowHeight = 24; levelList.setStyle("contentPadding", 4); levelList.setStyle("cellRenderer", PyroCellRenderer); btn_Play.addEventListener(MouseEvent.CLICK, handleClick); btn_MainMenu.addEventListener(MouseEvent.CLICK, handleClick); btn_Guide.addEventListener(MouseEvent.CLICK, handleClick); btn_Sponsor.addEventListener(MouseEvent.CLICK, handleClick); levelList.dataProvider = new DataProvider(levelData); levelList.selectedIndex = saveGame.lastLevel; if (levelList.selectedIndex >= SaveFile.maxLevel){ levelList.selectedIndex--; }; levelList.addEventListener(Event.CHANGE, handleLevelSelect); winSound = new Win(); __setProp_btn_Play_LevelSelectorScreen_Layer3_0(); __setProp_btn_MainMenu_LevelSelectorScreen_Layer3_0(); __setProp_btn_Sponsor_LevelSelectorScreen_Layer3_0(); __setProp_btn_Guide_LevelSelectorScreen_Layer3_0(); } private function handleClick(_arg1:Event):void{ switch (_arg1.target.name){ case "btn_Play": currentLevelIndex = levelList.selectedIndex; currentLevelData = Base64.decodeToByteArray(levelList.selectedItem.data); startLevel(); break; case "btn_MainMenu": transitionTo(screens.MainMenu); break; case "btn_Sponsor": Protection.toSponsor(); break; case "btn_Guide": Protection.toGuide(); break; }; } protected function convertTotalTime(_arg1:int):String{ var _local2:int = (_arg1 / 60); var _local3:int = (_arg1 - (_local2 * 60)); var _local4:String = ((_local3 < 10)) ? ("0" + _local3) : _local3.toString(); var _local5:String = ((_local2 < 10)) ? ("0" + _local2) : _local2.toString(); return (((_local5 + ":") + _local4)); } private function drawPreview():void{ if (currentLevelIndex < SaveFile.maxLevel){ aced.visible = saveGame.levelData[currentLevelIndex].aced; } else { aced.visible = saveGame.bonusArray[(currentLevelIndex - SaveFile.maxLevel)].aced; }; if (currentLevelIndex < SaveFile.maxLevel){ time.text = ("Best Time: " + convertTime(saveGame.levelData[currentLevelIndex].time)); } else { time.text = ("Best Time: " + convertTime(saveGame.levelData[(currentLevelIndex - SaveFile.maxLevel)].time)); }; var _local1:int = saveGame.levelAced; if (_local1 > 0){ time.appendText(("\nTotal Aced: " + _local1)); }; if (saveGame.gameWon){ time.appendText(("\nTotal time: " + convertTotalTime(saveGame.totalTime))); }; var _local2:GameLevelSnapshot = new GameLevelSnapshot(); _local2.draw(currentLevelData); var _local3:Matrix = new Matrix(); _local3.scale((150 / 400), (190 / 500)); var _local4:BitmapData = new BitmapData(150, 190); _local4.draw(_local2, _local3); if (previewPane.bitmapData){ previewPane.bitmapData.dispose(); }; previewPane.bitmapData = _local4; } function __setProp_btn_Sponsor_LevelSelectorScreen_Layer3_0(){ try { btn_Sponsor["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Sponsor.emphasized = false; btn_Sponsor.enabled = true; btn_Sponsor.label = "Play More Games!"; btn_Sponsor.labelPlacement = "right"; btn_Sponsor.selected = false; btn_Sponsor.toggle = false; btn_Sponsor.visible = true; try { btn_Sponsor["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function startLevel():void{ var _local1:GameLevelScreen = new GameLevelScreen(); _local1.addEventListener(GameLevelScreen.WIN, handleWin); _local1.addEventListener(GameLevelScreen.RESET, handleReset); _local1.addEventListener(GameLevelScreen.QUIT, handleQuit); _parent.addChild(_local1); _local1.init(currentLevelData, levelList.selectedItem.label); if (currentLevelIndex < SaveFile.maxLevel){ _local1.tipIndex = currentLevelIndex; }; transitionTo(_local1); } private function handleReset(_arg1:Event=null):void{ if (isTransitioning){ return; }; stopLevel(); startLevel(); } private function handleLevelSelect(_arg1:Event=null):void{ if (levelList.selectedItem.type == "disabled"){ levelList.selectedIndex = currentLevelIndex; return; }; currentLevelIndex = levelList.selectedIndex; currentLevelData = Base64.decodeToByteArray(levelList.selectedItem.data); levelList.scrollToSelected(); drawPreview(); } override public function fadeIn():void{ super.fadeIn(); handleLevelSelect(); } function __setProp_btn_MainMenu_LevelSelectorScreen_Layer3_0(){ try { btn_MainMenu["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_MainMenu.emphasized = false; btn_MainMenu.enabled = true; btn_MainMenu.label = "Main Menu"; btn_MainMenu.labelPlacement = "right"; btn_MainMenu.selected = false; btn_MainMenu.toggle = false; btn_MainMenu.visible = true; try { btn_MainMenu["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function stopLevel():void{ var _local1:GameLevelScreen = GameLevelScreen(screens.GameLevel); _local1.removeEventListener(GameLevelScreen.ACED, handleAceComplete); _local1.removeEventListener(GameLevelScreen.WIN, handleWin); _local1.removeEventListener(GameLevelScreen.RESET, handleReset); _local1.removeEventListener(GameLevelScreen.QUIT, handleQuit); } private function handleWin(_arg1:Event):void{ var _local5:Boolean; var _local7:int; var _local8:int; var _local2:GameLevelScreen = GameLevelScreen(screens.GameLevel); var _local3:Boolean = ((_local2.shotTaken == 1)) ? true : false; var _local4:int = currentLevelIndex; var _local6:int = (SaveFile.maxLevel - 1); if (_local4 < SaveFile.maxLevel){ _local5 = ((_local3) && (!(saveGame.levelData[_local4].aced))); } else { _local5 = ((_local3) && (!(saveGame.bonusArray[(_local4 - SaveFile.maxLevel)].aced))); }; if (_local5){ _local7 = (SaveFile.instance.levelAced + 1); if ((_local7 % 5) == 0){ _local6 = (_local6 + (_local7 / 5)); if (_local6 < (SaveFile.maxLevel + SaveFile.maxBonus)){ saveGame.bonusUnlocked++; levelData.level[_local6].type = "normal"; levelList.getItemAt(_local6).type = "normal"; }; }; }; if (_local4 < SaveFile.maxLevel){ if (_local3){ saveGame.levelData[_local4].aced = true; }; if (_local2.winTime < saveGame.levelData[_local4].time){ saveGame.levelData[_local4].time = _local2.winTime; }; if (saveGame.levelData[_local4].aced){ levelData.level[_local4].type = "aced"; levelList.getItemAt(_local4).type = "aced"; } else { levelData.level[_local4].type = "normal"; levelList.getItemAt(_local4).type = "normal"; }; levelList.invalidateItemAt(_local4); if (_local4 == saveGame.lastLevel){ saveGame.lastLevel++; if (saveGame.lastLevel < SaveFile.maxLevel){ levelData.level[saveGame.lastLevel].type = "normal"; levelList.getItemAt(saveGame.lastLevel).type = "normal"; }; }; } else { _local8 = (_local4 - SaveFile.maxLevel); if (_local3){ saveGame.bonusArray[_local8].aced = true; }; if (_local2.winTime < saveGame.bonusArray[_local8].time){ saveGame.bonusArray[_local8].time = _local2.winTime; }; if (saveGame.bonusArray[_local8].aced){ levelData.level[_local4].type = "aced"; levelList.getItemAt(_local4).type = "aced"; } else { levelData.level[_local4].type = "normal"; levelList.getItemAt(_local4).type = "normal"; }; levelList.invalidateItemAt(_local4); }; saveGame.flush(); winSound.play(0, 0); if (_local3){ _local2.addEventListener(GameLevelScreen.ACED, handleAceComplete); _local2.playAced(((_local6 - SaveFile.maxLevel) + 1)); } else { nextLevel(); }; } protected function convertTime(_arg1:int):String{ if (_arg1 >= 600000){ return ("--:--:---"); }; var _local2:int = (_arg1 / 1000); var _local3:int = (_local2 / 60); var _local4:int = (_arg1 - (_local2 * 1000)); _local2 = (_local2 - (_local3 * 60)); var _local5:String = ((_local4 < 100)) ? ((_local4 < 10)) ? ("00" + _local4) : ("0" + _local4) : _local4.toString(); var _local6:String = ((_local2 < 10)) ? ("0" + _local2) : _local2.toString(); var _local7:String = ((_local3 < 10)) ? ("0" + _local3) : _local3.toString(); return (((((_local7 + ":") + _local6) + ":") + _local5)); } private function nextLevel():void{ if (currentLevelIndex < SaveFile.maxLevel){ currentLevelIndex++; if (currentLevelIndex == SaveFile.maxLevel){ if (!saveGame.gameWon){ saveGame.gameWon = true; saveGame.flush(); stopLevel(); transitionTo(screens.Win); } else { handleQuit(); }; } else { levelList.selectedIndex = currentLevelIndex; levelList.scrollToSelected(); currentLevelData = Base64.decodeToByteArray(levelList.selectedItem.data); stopLevel(); startLevel(); }; } else { handleQuit(); }; } private function handleAceComplete(_arg1:Event):void{ nextLevel(); } private function handleQuit(_arg1:Event=null):void{ stopLevel(); transitionTo(screens.LevelSelector); } function __setProp_btn_Play_LevelSelectorScreen_Layer3_0(){ try { btn_Play["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Play.emphasized = false; btn_Play.enabled = true; btn_Play.label = "Play >"; btn_Play.labelPlacement = "right"; btn_Play.selected = false; btn_Play.toggle = false; btn_Play.visible = true; try { btn_Play["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Guide_LevelSelectorScreen_Layer3_0(){ try { btn_Guide["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Guide.emphasized = false; btn_Guide.enabled = true; btn_Guide.label = "Ace Guide"; btn_Guide.labelPlacement = "right"; btn_Guide.selected = false; btn_Guide.toggle = false; btn_Guide.visible = true; try { btn_Guide["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package screenSection 192//MainMenuScreen (screen.MainMenuScreen) package screen { import fl.controls.*; import flash.display.*; import game.*; import flash.events.*; import flash.text.*; import flash.net.*; import flash.media.*; import effects.*; public class MainMenuScreen extends AbstractScreen { const MAXLEVEL:int = 40; private var mainClickSound:Sound; public var maskedFlameII:MovieClip; public var btn_Instruction:Button; public var maskedBall2_L:MovieClip; public var maskedBall4_L:MovieClip; public var maskedBall2_R:MovieClip; private var mainAmbientSoundTransform:SoundTransform; public var maskedBall4_R:MovieClip; public var btn_Sponsor:MovieClip; private var titleFlameII:MaskedFlame; private var ball4_L:MaskedFlame; private var ball2_R:MaskedFlame; public var btn_Credits:Button; private var mainAmbientSound:Sound; private var titleFlame:MaskedFlame; private var gameData:SaveFile; public var btn_NewGame:Button; private var ball2_L:MaskedFlame; public var btn_Editor:Button; public var btn_PlayerLevels:Button; public var maskedBall1_L:MovieClip; private var ball4_R:MaskedFlame; public var maskedBall3_L:MovieClip; public var maskedBall5_L:MovieClip; public var maskedBall1_R:MovieClip; public var maskedBall3_R:MovieClip; public var maskedBall5_R:MovieClip; private var ball1_L:MaskedFlame; private var ball3_L:MaskedFlame; private var ball5_L:MaskedFlame; private var mainAmbientChannel:SoundChannel; private var ball3_R:MaskedFlame; public var maskedFlame:MovieClip; private var ball5_R:MaskedFlame; private var ball1_R:MaskedFlame; public function MainMenuScreen():void{ mainClickSound = new Play_Over(); mainAmbientSound = new Crackle(); mainAmbientSoundTransform = new SoundTransform(0.1, 0); super(); if (!screens.MainMenu){ screens.MainMenu = this; } else { throw (new Error("There can only be one main menu screen.")); }; if (!gameData){ gameData = SaveFile.instance; gameData.flush(); }; btn_Sponsor.mouseChildren = false; btn_Sponsor.buttonMode = true; initButtons(); if ((((((Protection.domain == "localhost")) && (Protection.debug))) || ((Protection.domain == "Kongregate")))){ Protection.kongAPI.addEventListener("user level", loadUserLevel); }; __setProp_btn_NewGame_MainMenuScreen_Layer1_0(); __setProp_btn_Editor_MainMenuScreen_Layer1_0(); __setProp_btn_Instruction_MainMenuScreen_Layer1_0(); __setProp_btn_Credits_MainMenuScreen_Layer1_0(); __setProp_btn_PlayerLevels_MainMenuScreen_Layer1_0(); } function __setProp_btn_NewGame_MainMenuScreen_Layer1_0(){ try { btn_NewGame["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_NewGame.emphasized = false; btn_NewGame.enabled = true; btn_NewGame.label = "Play >"; btn_NewGame.labelPlacement = "right"; btn_NewGame.selected = false; btn_NewGame.toggle = false; btn_NewGame.visible = true; try { btn_NewGame["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function handleOut(_arg1:MouseEvent):void{ if (!ball1_L){ return; }; switch (_arg1.target.name){ case "btn_NewGame": ball1_L.burning = false; ball1_R.burning = false; break; case "btn_PlayerLevels": ball2_L.burning = false; ball2_R.burning = false; break; case "btn_Editor": ball3_L.burning = false; ball3_R.burning = false; break; case "btn_Instruction": ball4_L.burning = false; ball4_R.burning = false; break; case "btn_Credits": ball5_L.burning = false; ball5_R.burning = false; break; }; } override protected function fadeOutComplete():void{ super.fadeOutComplete(); titleFlame = null; titleFlameII = null; ball1_L = null; ball1_R = null; ball2_L = null; ball2_R = null; ball3_L = null; ball3_R = null; ball4_L = null; ball4_R = null; ball5_L = null; ball5_R = null; } private function handleOver(_arg1:MouseEvent):void{ if (!ball1_L){ return; }; mainClickSound.play(); switch (_arg1.target.name){ case "btn_NewGame": ball1_L.burning = true; ball1_R.burning = true; break; case "btn_PlayerLevels": ball2_L.burning = true; ball2_R.burning = true; break; case "btn_Editor": ball3_L.burning = true; ball3_R.burning = true; break; case "btn_Instruction": ball4_L.burning = true; ball4_R.burning = true; break; case "btn_Credits": ball5_L.burning = true; ball5_R.burning = true; break; }; } override public function fadeIn():void{ super.fadeIn(); titleFlame = new MaskedFlame(maskedFlame, 250, 115); titleFlame.burning = true; titleFlameII = new MaskedFlame(maskedFlameII, 85, 129); titleFlameII.switchPalette(new TransparentBlueFlamePalette()); titleFlameII.burning = true; ball1_L = new MaskedFlame(maskedBall1_L, 23, 43); ball1_R = new MaskedFlame(maskedBall1_R, 23, 43); ball2_L = new MaskedFlame(maskedBall2_L, 23, 43); ball2_R = new MaskedFlame(maskedBall2_R, 23, 43); ball3_L = new MaskedFlame(maskedBall3_L, 23, 43); ball3_R = new MaskedFlame(maskedBall3_R, 23, 43); ball4_L = new MaskedFlame(maskedBall4_L, 23, 43); ball4_R = new MaskedFlame(maskedBall4_R, 23, 43); ball5_L = new MaskedFlame(maskedBall5_L, 23, 43); ball5_R = new MaskedFlame(maskedBall5_R, 23, 43); mainAmbientChannel = mainAmbientSound.play(0, int.MAX_VALUE, mainAmbientSoundTransform); } private function handleClick(_arg1:MouseEvent):void{ mainClickSound.play(); switch (_arg1.target.name){ case "btn_Instruction": Protection.toInstruction(); break; case "btn_NewGame": if (mainAmbientChannel){ mainAmbientChannel.stop(); }; transitionTo(screens.LevelSelector); break; case "btn_PlayerLevels": if (mainAmbientChannel){ mainAmbientChannel.stop(); }; transitionTo(screens.PlayerLevelSelector); break; case "btn_Credits": if (mainAmbientChannel){ mainAmbientChannel.stop(); }; transitionTo(screens.Credits); break; case "btn_Editor": if (mainAmbientChannel){ mainAmbientChannel.stop(); }; transitionTo(screens.LevelEditor); break; case "btn_Sponsor": Protection.toSponsor(); break; }; } private function initButtons():void{ var _local1:Font = new TinyBoxFont(); var _local2:TextFormat = new TextFormat(); _local2.font = _local1.fontName; _local2.color = 0xFFFFFF; _local2.size = 16; btn_Instruction.setStyle("textFormat", _local2); btn_NewGame.setStyle("textFormat", _local2); btn_PlayerLevels.setStyle("textFormat", _local2); btn_Credits.setStyle("textFormat", _local2); btn_Editor.setStyle("textFormat", _local2); btn_Instruction.setStyle("embedFonts", true); btn_NewGame.setStyle("embedFonts", true); btn_PlayerLevels.setStyle("embedFonts", true); btn_Credits.setStyle("embedFonts", true); btn_Editor.setStyle("embedFonts", true); btn_Instruction.addEventListener(MouseEvent.CLICK, handleClick); btn_NewGame.addEventListener(MouseEvent.CLICK, handleClick); btn_PlayerLevels.addEventListener(MouseEvent.CLICK, handleClick); btn_Credits.addEventListener(MouseEvent.CLICK, handleClick); btn_Editor.addEventListener(MouseEvent.CLICK, handleClick); btn_Instruction.addEventListener(MouseEvent.ROLL_OVER, handleOver); btn_NewGame.addEventListener(MouseEvent.ROLL_OVER, handleOver); btn_PlayerLevels.addEventListener(MouseEvent.ROLL_OVER, handleOver); btn_Credits.addEventListener(MouseEvent.ROLL_OVER, handleOver); btn_Editor.addEventListener(MouseEvent.ROLL_OVER, handleOver); btn_Instruction.addEventListener(MouseEvent.ROLL_OUT, handleOut); btn_NewGame.addEventListener(MouseEvent.ROLL_OUT, handleOut); btn_PlayerLevels.addEventListener(MouseEvent.ROLL_OUT, handleOut); btn_Credits.addEventListener(MouseEvent.ROLL_OUT, handleOut); btn_Editor.addEventListener(MouseEvent.ROLL_OUT, handleOut); btn_PlayerLevels.enabled = false; btn_Sponsor.addEventListener(MouseEvent.CLICK, handleClick); btn_Sponsor.visible = Protection.sponsorVisible; } function __setProp_btn_Editor_MainMenuScreen_Layer1_0(){ try { btn_Editor["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Editor.emphasized = false; btn_Editor.enabled = true; btn_Editor.label = "Level Editor"; btn_Editor.labelPlacement = "right"; btn_Editor.selected = false; btn_Editor.toggle = false; btn_Editor.visible = true; try { btn_Editor["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Credits_MainMenuScreen_Layer1_0(){ try { btn_Credits["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Credits.emphasized = false; btn_Credits.enabled = true; btn_Credits.label = "Credits"; btn_Credits.labelPlacement = "right"; btn_Credits.selected = false; btn_Credits.toggle = false; btn_Credits.visible = true; try { btn_Credits["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_Instruction_MainMenuScreen_Layer1_0(){ try { btn_Instruction["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Instruction.emphasized = false; btn_Instruction.enabled = true; btn_Instruction.label = "Instructions"; btn_Instruction.labelPlacement = "right"; btn_Instruction.selected = false; btn_Instruction.toggle = false; btn_Instruction.visible = true; try { btn_Instruction["componentInspectorSetting"] = false; } catch(e:Error) { }; } function handleMute(_arg1:KeyboardEvent){ var _local2:SoundTransform; if (_arg1.keyCode == 77){ _local2 = SoundMixer.soundTransform; if (_local2.volume == 1){ _local2.volume = 0; SoundMixer.soundTransform = _local2; } else { _local2.volume = 1; SoundMixer.soundTransform = _local2; }; }; } function __setProp_btn_PlayerLevels_MainMenuScreen_Layer1_0(){ try { btn_PlayerLevels["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_PlayerLevels.emphasized = false; btn_PlayerLevels.enabled = true; btn_PlayerLevels.label = "Player Levels >"; btn_PlayerLevels.labelPlacement = "right"; btn_PlayerLevels.selected = false; btn_PlayerLevels.toggle = false; btn_PlayerLevels.visible = true; try { btn_PlayerLevels["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package screenSection 193//PlayerLevelSelectorScreen (screen.PlayerLevelSelectorScreen) package screen { import flash.geom.*; import fl.controls.*; import flash.display.*; import game.*; import flash.events.*; import fl.data.*; import com.*; import flash.text.*; import com.hurlant.util.*; import flash.media.*; public class PlayerLevelSelectorScreen extends AbstractScreen { public var aced:MovieClip; public var btn_SubmitInfo:SimpleButton; public var time:TextField; protected var previewPane:Bitmap; public var levelList:List; protected var winSound:Sound; public var btn_Sponsor:SimpleButton; public var btn_MainMenu:Button; public var btn_Play:Button; protected var snd_playClick:Sound; protected var snd_over:Sound; protected var snd_playOut:Sound; public var btn_Browse:Button; protected var snd_click:Sound; protected var snd_playOver:Sound; public function PlayerLevelSelectorScreen():void{ snd_over = new Thunk_0(); snd_click = new Thunk_2(); snd_playOver = new Play_Over(); snd_playOut = new Play_Out(); snd_playClick = new Play_Click(); super(); if (!screens.PlayerLevelSelector){ screens.PlayerLevelSelector = this; } else { throw (new Error("There can only be one player level selector screen.")); }; previewPane = new Bitmap(); previewPane.x = 370; previewPane.y = 15; addChildAt(previewPane, (numChildren - 2)); aced.visible = false; var _local1:Font = new TinyBoxFont(); var _local2:TextFormat = new TextFormat(); _local2.font = _local1.fontName; _local2.color = 0xFFFFFF; _local2.size = 16; btn_Play.setStyle("textFormat", _local2); btn_MainMenu.setStyle("textFormat", _local2); btn_Browse.setStyle("textFormat", _local2); btn_Play.setStyle("embedFonts", true); btn_MainMenu.setStyle("embedFonts", true); btn_Browse.setStyle("embedFonts", true); levelList.rowHeight = 24; levelList.setStyle("contentPadding", 4); levelList.setStyle("cellRenderer", PyroCellRenderer); btn_Play.addEventListener(MouseEvent.CLICK, handleClick); btn_MainMenu.addEventListener(MouseEvent.CLICK, handleClick); btn_Browse.addEventListener(MouseEvent.CLICK, handleClick); btn_SubmitInfo.addEventListener(MouseEvent.CLICK, handleClick); btn_Sponsor.addEventListener(MouseEvent.CLICK, handleClick); btn_Sponsor.visible = Protection.sponsorVisible; levelList.dataProvider = new DataProvider(playerLevelData); levelList.selectedIndex = 0; currentLevelIndex = 0; currentLevelData = Base64.decodeToByteArray(levelList.getItemAt(0).data); drawPreview(); levelList.addEventListener(Event.CHANGE, handleLevelSelect); winSound = new Win(); __setProp_btn_Play_PlayerLevelSelectorScreen_Layer3_0(); __setProp_btn_MainMenu_PlayerLevelSelectorScreen_Layer3_0(); __setProp_btn_Browse_PlayerLevelSelectorScreen_Layer3_0(); } private function handleClick(_arg1:Event):void{ switch (_arg1.target.name){ case "btn_Play": currentLevelIndex = levelList.selectedIndex; currentLevelData = Base64.decodeToByteArray(levelList.selectedItem.data); startLevel(); break; case "btn_MainMenu": transitionTo(screens.MainMenu); break; case "btn_Sponsor": Protection.toSponsor(); break; case "btn_Browse": if (Protection.domain == "Kongregate"){ Protection.kongAPI.sharedContent.browse("Level"); } else { Protection.toLevelSharing(); }; break; case "btn_SubmitInfo": Protection.toLevelSharing(); break; }; } private function drawPreview():void{ var idx:int; var data:Object; var txt:String; var preview:GameLevelSnapshot; var mtx:Matrix; var bmp:BitmapData; idx = levelList.selectedItem.id; data = saveGame.so.data.playerData[idx]; aced.visible = data.aced; txt = (("Difficulty: " + playerLevelData.level.(id == idx).difficulty.toString()) + "\n"); txt = (txt + ("Best Time: " + convertTime(data.time))); time.text = txt; preview = new GameLevelSnapshot(); preview.draw(currentLevelData); mtx = new Matrix(); mtx.scale((150 / 400), (190 / 500)); bmp = new BitmapData(150, 190); bmp.draw(preview, mtx); if (previewPane.bitmapData){ previewPane.bitmapData.dispose(); }; previewPane.bitmapData = bmp; } private function handleReset(_arg1:Event=null):void{ if (isTransitioning){ return; }; stopLevel(); startLevel(); } function __setProp_btn_Browse_PlayerLevelSelectorScreen_Layer3_0(){ try { btn_Browse["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Browse.emphasized = false; btn_Browse.enabled = true; btn_Browse.label = "Kong Levels"; btn_Browse.labelPlacement = "right"; btn_Browse.selected = false; btn_Browse.toggle = false; btn_Browse.visible = true; try { btn_Browse["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btn_MainMenu_PlayerLevelSelectorScreen_Layer3_0(){ try { btn_MainMenu["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_MainMenu.emphasized = false; btn_MainMenu.enabled = true; btn_MainMenu.label = "Main Menu"; btn_MainMenu.labelPlacement = "right"; btn_MainMenu.selected = false; btn_MainMenu.toggle = false; btn_MainMenu.visible = true; try { btn_MainMenu["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function handleLevelSelect(_arg1:Event=null):void{ currentLevelIndex = levelList.selectedIndex; currentLevelData = Base64.decodeToByteArray(levelList.selectedItem.data); levelList.scrollToSelected(); drawPreview(); } override public function fadeIn():void{ super.fadeIn(); handleLevelSelect(); } public function stopLevel():void{ var _local1:GameLevelScreen = GameLevelScreen(screens.GameLevel); _local1.removeEventListener(GameLevelScreen.ACED, handleAceComplete); _local1.removeEventListener(GameLevelScreen.WIN, handleWin); _local1.removeEventListener(GameLevelScreen.RESET, handleReset); _local1.removeEventListener(GameLevelScreen.QUIT, handleQuit); } private function handleWin(_arg1:Event):void{ var _local2:GameLevelScreen = GameLevelScreen(screens.GameLevel); var _local3:Boolean = ((_local2.shotTaken == 1)) ? true : false; var _local4:int = currentLevelIndex; var _local5:int = levelList.getItemAt(_local4).id; var _local6:Object = saveGame.so.data.playerData[_local5]; if (_local3){ _local6.aced = true; }; if (_local2.winTime < _local6.time){ _local6.time = _local2.winTime; }; if (_local6.aced){ playerLevelData.level[_local4].type = "aced"; levelList.getItemAt(_local4).type = "aced"; } else { playerLevelData.level[_local4].type = "normal"; levelList.getItemAt(_local4).type = "normal"; }; saveGame.flush(); winSound.play(0, 0); if (_local3){ _local2.addEventListener(GameLevelScreen.ACED, handleAceComplete); _local2.playAced(-1); } else { nextLevel(); }; } protected function convertTime(_arg1:int):String{ if ((((_arg1 >= 600000)) || ((_arg1 <= 0)))){ return ("--:--:---"); }; var _local2:int = (_arg1 / 1000); var _local3:int = (_local2 / 60); var _local4:int = (_arg1 - (_local2 * 1000)); _local2 = (_local2 - (_local3 * 60)); var _local5:String = ((_local4 < 100)) ? ((_local4 < 10)) ? ("00" + _local4) : ("0" + _local4) : _local4.toString(); var _local6:String = ((_local2 < 10)) ? ("0" + _local2) : _local2.toString(); var _local7:String = ((_local3 < 10)) ? ("0" + _local3) : _local3.toString(); return (((((_local7 + ":") + _local6) + ":") + _local5)); } private function nextLevel():void{ currentLevelIndex++; levelList.selectedIndex = currentLevelIndex; levelList.scrollToSelected(); currentLevelData = Base64.decodeToByteArray(levelList.selectedItem.data); stopLevel(); startLevel(); } private function handleAceComplete(_arg1:Event):void{ nextLevel(); } private function startLevel():void{ var _local1:GameLevelScreen = new GameLevelScreen(); _local1.addEventListener(GameLevelScreen.WIN, handleWin); _local1.addEventListener(GameLevelScreen.RESET, handleReset); _local1.addEventListener(GameLevelScreen.QUIT, handleQuit); _parent.addChild(_local1); _local1.init(currentLevelData, levelList.selectedItem.label); transitionTo(_local1); } function __setProp_btn_Play_PlayerLevelSelectorScreen_Layer3_0(){ try { btn_Play["componentInspectorSetting"] = true; } catch(e:Error) { }; btn_Play.emphasized = false; btn_Play.enabled = true; btn_Play.label = "Play >"; btn_Play.labelPlacement = "right"; btn_Play.selected = false; btn_Play.toggle = false; btn_Play.visible = true; try { btn_Play["componentInspectorSetting"] = false; } catch(e:Error) { }; } private function handleQuit(_arg1:Event=null):void{ stopLevel(); transitionTo(screens.PlayerLevelSelector); } } }//package screenSection 194//ScreenList (screen.ScreenList) package screen { public class ScreenList { public var PlayerLevelSelector:AbstractScreen; public var LevelSelector:AbstractScreen; public var FlameLoader:AbstractScreen; public var Instruction:AbstractScreen; public var LevelEditor:AbstractScreen; public var GameLevel:AbstractScreen; public var Win:AbstractScreen; public var DamijinIntro:AbstractScreen; public var MainMenu:AbstractScreen; public var Credits:AbstractScreen; public var GregIntro:AbstractScreen; } }//package screenSection 195//WinScreen (screen.WinScreen) package screen { import flash.display.*; import flash.events.*; import effects.*; public class WinScreen extends AbstractScreen { var flame:CreditFlame; var scrollMax:int; public var creditScroll:MovieClip; public function WinScreen():void{ if (!screens.Win){ screens.Win = this; } else { throw (new Error("There can only be one credits screen.")); }; creditScroll.btn_Back.addEventListener(MouseEvent.CLICK, handleBack); } override public function fadeIn():void{ super.fadeIn(); flame = new CreditFlame(558, 50); flame.x = -4; flame.y = 458; flame.smoothing = false; scrollMax = (-(creditScroll.height) + 250); creditScroll.y = 500; addChild(flame); addEventListener(Event.ENTER_FRAME, updateScreen); } function updateScreen(_arg1:Event):void{ if (creditScroll.y > scrollMax){ creditScroll.y = (creditScroll.y + -1); }; flame.update(); } override protected function fadeOutComplete():void{ super.fadeOutComplete(); removeEventListener(Event.ENTER_FRAME, updateScreen); if (flame){ flame.dispose(); }; flame = null; } private function handleBack(_arg1:Event):void{ flame.running = false; transitionTo(screens.MainMenu); } } }//package screenSection 196//Darkroom (theme.Darkroom) package theme { import fl.controls.*; import fl.managers.*; import flash.text.*; public class Darkroom { public static function apply():void{ var _local1:TextFormat = new TextFormat(); _local1.font = "_sans"; _local1.color = 0xFFFFFF; _local1.size = 11; StyleManager.setComponentStyle(Label, "textFormat", _local1); StyleManager.setComponentStyle(CheckBox, "textFormat", _local1); StyleManager.setComponentStyle(Button, "textFormat", _local1); StyleManager.setComponentStyle(Button, "disabledSkin", Button_disabledSkin); StyleManager.setComponentStyle(Button, "downSkin", Button_downSkin); StyleManager.setComponentStyle(Button, "overSkin", Button_overSkin); StyleManager.setComponentStyle(Button, "upSkin", Button_upSkin); StyleManager.setComponentStyle(Button, "selectedDisabledSkin", Button_disabledSkin); StyleManager.setComponentStyle(Button, "selectedDownSkin", Button_upSkin); StyleManager.setComponentStyle(Button, "selectedOverSkin", Button_downSkin); StyleManager.setComponentStyle(Button, "selectedUpSkin", Button_downSkin); StyleManager.setComponentStyle(Button, "focusRectSkin", null); } } }//package themeSection 197//BlueFlamePalette (BlueFlamePalette) package { import flash.display.*; public dynamic class BlueFlamePalette extends Sprite { } }//packageSection 198//BounceSnap (BounceSnap) package { import flash.display.*; public dynamic class BounceSnap extends Sprite { } }//packageSection 199//BounceUpZone (BounceUpZone) package { import game.*; public dynamic class BounceUpZone extends BounceUpPowerUp { } }//packageSection 200//BrickBitmap (BrickBitmap) package { import flash.display.*; public dynamic class BrickBitmap extends BitmapData { public function BrickBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 201//Burn_00 (Burn_00) package { import flash.display.*; public dynamic class Burn_00 extends BitmapData { public function Burn_00(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 202//Burn_01 (Burn_01) package { import flash.display.*; public dynamic class Burn_01 extends BitmapData { public function Burn_01(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 203//Burn_02 (Burn_02) package { import flash.display.*; public dynamic class Burn_02 extends BitmapData { public function Burn_02(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 204//Burn_03 (Burn_03) package { import flash.display.*; public dynamic class Burn_03 extends BitmapData { public function Burn_03(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 205//Burn_04 (Burn_04) package { import flash.display.*; public dynamic class Burn_04 extends BitmapData { public function Burn_04(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 206//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { } }//packageSection 207//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { } }//packageSection 208//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { } }//packageSection 209//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { } }//packageSection 210//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { } }//packageSection 211//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { } }//packageSection 212//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { } }//packageSection 213//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { } }//packageSection 214//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { } }//packageSection 215//ButtonDisplay (ButtonDisplay) package { import flash.display.*; public dynamic class ButtonDisplay extends Sprite { } }//packageSection 216//ButtonHitArea (ButtonHitArea) package { import flash.display.*; public dynamic class ButtonHitArea extends Sprite { } }//packageSection 217//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//packageSection 218//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//packageSection 219//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//packageSection 220//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//packageSection 221//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//packageSection 222//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//packageSection 223//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//packageSection 224//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//packageSection 225//CheckBox_disabledIcon (CheckBox_disabledIcon) package { import flash.display.*; public dynamic class CheckBox_disabledIcon extends MovieClip { } }//packageSection 226//CheckBox_downIcon (CheckBox_downIcon) package { import flash.display.*; public dynamic class CheckBox_downIcon extends MovieClip { } }//packageSection 227//CheckBox_overIcon (CheckBox_overIcon) package { import flash.display.*; public dynamic class CheckBox_overIcon extends MovieClip { } }//packageSection 228//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDisabledIcon extends MovieClip { } }//packageSection 229//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDownIcon extends MovieClip { } }//packageSection 230//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon) package { import flash.display.*; public dynamic class CheckBox_selectedOverIcon extends MovieClip { } }//packageSection 231//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon) package { import flash.display.*; public dynamic class CheckBox_selectedUpIcon extends MovieClip { } }//packageSection 232//CheckBox_upIcon (CheckBox_upIcon) package { import flash.display.*; public dynamic class CheckBox_upIcon extends MovieClip { } }//packageSection 233//Circ_Icon (Circ_Icon) package { import flash.display.*; public dynamic class Circ_Icon extends Sprite { } }//packageSection 234//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//packageSection 235//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//packageSection 236//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//packageSection 237//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//packageSection 238//Crackle (Crackle) package { import flash.media.*; public dynamic class Crackle extends Sound { } }//packageSection 239//Crate (Crate) package { import game.*; public dynamic class Crate extends Burnable { } }//packageSection 240//Crate_Icon (Crate_Icon) package { import flash.display.*; public dynamic class Crate_Icon extends Sprite { } }//packageSection 241//CrateBitmap (CrateBitmap) package { import flash.display.*; public dynamic class CrateBitmap extends BitmapData { public function CrateBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 242//CrateBurnBitmap (CrateBurnBitmap) package { import flash.display.*; public dynamic class CrateBurnBitmap extends BitmapData { public function CrateBurnBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 243//CT_Icon (CT_Icon) package { import flash.display.*; public dynamic class CT_Icon extends Sprite { } }//packageSection 244//DarkDis_00 (DarkDis_00) package { import flash.display.*; public dynamic class DarkDis_00 extends BitmapData { public function DarkDis_00(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 245//DarkDis_01 (DarkDis_01) package { import flash.display.*; public dynamic class DarkDis_01 extends BitmapData { public function DarkDis_01(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 246//DarkDis_02 (DarkDis_02) package { import flash.display.*; public dynamic class DarkDis_02 extends BitmapData { public function DarkDis_02(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 247//DarkDis_03 (DarkDis_03) package { import flash.display.*; public dynamic class DarkDis_03 extends BitmapData { public function DarkDis_03(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 248//DarkDis_04 (DarkDis_04) package { import flash.display.*; public dynamic class DarkDis_04 extends BitmapData { public function DarkDis_04(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 249//DarkWood_00 (DarkWood_00) package { import flash.display.*; public dynamic class DarkWood_00 extends BitmapData { public function DarkWood_00(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 250//DarkWood_01 (DarkWood_01) package { import flash.display.*; public dynamic class DarkWood_01 extends BitmapData { public function DarkWood_01(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 251//DarkWood_02 (DarkWood_02) package { import flash.display.*; public dynamic class DarkWood_02 extends BitmapData { public function DarkWood_02(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 252//DarkWood_03 (DarkWood_03) package { import flash.display.*; public dynamic class DarkWood_03 extends BitmapData { public function DarkWood_03(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 253//DarkWood_04 (DarkWood_04) package { import flash.display.*; public dynamic class DarkWood_04 extends BitmapData { public function DarkWood_04(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 254//Dis_00 (Dis_00) package { import flash.display.*; public dynamic class Dis_00 extends BitmapData { public function Dis_00(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 255//Dis_01 (Dis_01) package { import flash.display.*; public dynamic class Dis_01 extends BitmapData { public function Dis_01(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 256//Dis_02 (Dis_02) package { import flash.display.*; public dynamic class Dis_02 extends BitmapData { public function Dis_02(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 257//Dis_03 (Dis_03) package { import flash.display.*; public dynamic class Dis_03 extends BitmapData { public function Dis_03(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 258//Dis_04 (Dis_04) package { import flash.display.*; public dynamic class Dis_04 extends BitmapData { public function Dis_04(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 259//DisplayScreenHit (DisplayScreenHit) package { import flash.display.*; public dynamic class DisplayScreenHit extends Sprite { } }//packageSection 260//DragHandle (DragHandle) package { import flash.display.*; public dynamic class DragHandle extends Sprite { public var gauge:MovieClip; } }//packageSection 261//DummyBody (DummyBody) package { import flash.display.*; public dynamic class DummyBody extends Sprite { } }//packageSection 262//Edit_Icon (Edit_Icon) package { import flash.display.*; public dynamic class Edit_Icon extends Sprite { } }//packageSection 263//FlamePalette (FlamePalette) package { import flash.display.*; public dynamic class FlamePalette extends Sprite { } }//packageSection 264//Flare (Flare) package { import flash.media.*; public dynamic class Flare extends Sound { } }//packageSection 265//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//packageSection 266//Glass1 (Glass1) package { import flash.media.*; public dynamic class Glass1 extends Sound { } }//packageSection 267//Glass2 (Glass2) package { import flash.media.*; public dynamic class Glass2 extends Sound { } }//packageSection 268//Glass3 (Glass3) package { import flash.media.*; public dynamic class Glass3 extends Sound { } }//packageSection 269//GreenFlamePalette (GreenFlamePalette) package { import flash.display.*; public dynamic class GreenFlamePalette extends Sprite { } }//packageSection 270//HalfSizeSnap (HalfSizeSnap) package { import flash.display.*; public dynamic class HalfSizeSnap extends Sprite { } }//packageSection 271//HalfSizeZone (HalfSizeZone) package { import game.*; public dynamic class HalfSizeZone extends HalfSizePowerUp { } }//packageSection 272//Humm (Humm) package { import flash.media.*; public dynamic class Humm extends Sound { } }//packageSection 273//Keyboard_Click_0 (Keyboard_Click_0) package { import flash.media.*; public dynamic class Keyboard_Click_0 extends Sound { } }//packageSection 274//Keyboard_Click_1 (Keyboard_Click_1) package { import flash.media.*; public dynamic class Keyboard_Click_1 extends Sound { } }//packageSection 275//Keyboard_Click_2 (Keyboard_Click_2) package { import flash.media.*; public dynamic class Keyboard_Click_2 extends Sound { } }//packageSection 276//Keyboard_Spacebar_0 (Keyboard_Spacebar_0) package { import flash.media.*; public dynamic class Keyboard_Spacebar_0 extends Sound { } }//packageSection 277//Keyboard_Spacebar_1 (Keyboard_Spacebar_1) package { import flash.media.*; public dynamic class Keyboard_Spacebar_1 extends Sound { } }//packageSection 278//Keyboard_Spacebar_2 (Keyboard_Spacebar_2) package { import flash.media.*; public dynamic class Keyboard_Spacebar_2 extends Sound { } }//packageSection 279//Kong_Logo (Kong_Logo) package { import flash.display.*; public dynamic class Kong_Logo extends MovieClip { public function Kong_Logo(){ addFrameScript(128, frame129); } function frame129(){ stop(); } } }//packageSection 280//Kong_Logo_Pyro (Kong_Logo_Pyro) package { import flash.display.*; public dynamic class Kong_Logo_Pyro extends MovieClip { public var logo:Kong_Logo; public function Kong_Logo_Pyro(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//packageSection 281//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//packageSection 282//LongLineSnap (LongLineSnap) package { import flash.display.*; public dynamic class LongLineSnap extends Sprite { } }//packageSection 283//LongLineZone (LongLineZone) package { import game.*; public dynamic class LongLineZone extends LongLinePowerUp { } }//packageSection 284//LT_Icon (LT_Icon) package { import flash.display.*; public dynamic class LT_Icon extends Sprite { } }//packageSection 285//LTorch (LTorch) package { import game.*; public dynamic class LTorch extends TorchBase { } }//packageSection 286//Metal1 (Metal1) package { import flash.media.*; public dynamic class Metal1 extends Sound { } }//packageSection 287//Metal2 (Metal2) package { import flash.media.*; public dynamic class Metal2 extends Sound { } }//packageSection 288//Metal3 (Metal3) package { import flash.media.*; public dynamic class Metal3 extends Sound { } }//packageSection 289//Metal4 (Metal4) package { import flash.media.*; public dynamic class Metal4 extends Sound { } }//packageSection 290//MetalBitmap (MetalBitmap) package { import flash.display.*; public dynamic class MetalBitmap extends BitmapData { public function MetalBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 291//MonitorOff (MonitorOff) package { import flash.media.*; public dynamic class MonitorOff extends Sound { } }//packageSection 292//NoiseGenerator (NoiseGenerator) package { import flash.display.*; public dynamic class NoiseGenerator extends Sprite { } }//packageSection 293//Play_Click (Play_Click) package { import flash.media.*; public dynamic class Play_Click extends Sound { } }//packageSection 294//Play_Out (Play_Out) package { import flash.media.*; public dynamic class Play_Out extends Sound { } }//packageSection 295//Play_Over (Play_Over) package { import flash.media.*; public dynamic class Play_Over extends Sound { } }//packageSection 296//PlayerSnap (PlayerSnap) package { import flash.display.*; public dynamic class PlayerSnap extends Sprite { } }//packageSection 297//PlusOneSnap (PlusOneSnap) package { import flash.display.*; public dynamic class PlusOneSnap extends Sprite { } }//packageSection 298//PlusOneZone (PlusOneZone) package { import game.*; public dynamic class PlusOneZone extends PlusOnePowerUp { } }//packageSection 299//Poly_Icon (Poly_Icon) package { import flash.display.*; public dynamic class Poly_Icon extends Sprite { } }//packageSection 300//Pow1_Icon (Pow1_Icon) package { import flash.display.*; public dynamic class Pow1_Icon extends MovieClip { } }//packageSection 301//Pow2_Icon (Pow2_Icon) package { import flash.display.*; public dynamic class Pow2_Icon extends MovieClip { } }//packageSection 302//Pow3_Icon (Pow3_Icon) package { import flash.display.*; public dynamic class Pow3_Icon extends MovieClip { } }//packageSection 303//Pow4_Icon (Pow4_Icon) package { import flash.display.*; public dynamic class Pow4_Icon extends MovieClip { } }//packageSection 304//Protection (Protection) package { import flash.net.*; import com.kongregate.*; public class Protection { private static const instructionURL:String = "http://www.kongregate.com/forums/3/topics/50004/?gamereferral=pyro2"; public static const URL:Object = {Kongregate:"http://www.kongregate.com/?gamereferral=pyro2", Mike:"http://www.kongregate.com/accounts/damijin?gamereferral=pyro2", Greg:"http://www.kongregate.com/?gamereferral=pyro2", BubbleBox:"http://www.kongregate.com/?gamereferral=pyro2", Andkon:"http://www.kongregate.com/?gamereferral=pyro2", Addicting:"http://www.kongregate.com/?gamereferral=pyro2", Armor:"http://www.kongregate.com/?gamereferral=pyro2", BigFish:"http://www.kongregate.com/?gamereferral=pyro2", CrazyMonkey:"http://www.kongregate.com/?gamereferral=pyro2", unknown:"http://www.kongregate.com/?gamereferral=pyro2", localhost:"http://www.kongregate.com/?gamereferral=pyro2"}; private static const levelSharingURL:String = "http://www.kongregate.com/forums/3/topics/52949/?gamereferral=pyro2"; private static const guideURL:String = "http://www.kongregate.com/forums/3/topics/52948/?gamereferral=pyro2"; public static const debug:Boolean = false; private static var _domain:String = ""; private static var _url:String = "http://www.kongregate.com/?gamereferral=pyro2"; public static var kongAPI:ApiConnection; public function Protection():void{ } public static function get domain():String{ if (_domain == ""){ _domain = domainCheck(); _url = URL[_domain]; }; return (_domain); } public static function get showMochi():Boolean{ switch (domain){ case "Kongregate": return (false); }; return (true); } public static function toGuide():void{ navigateToURL(new URLRequest(guideURL), "_blank"); } public static function toInstruction():void{ navigateToURL(new URLRequest(instructionURL), "_blank"); } public static function get skipable():Boolean{ return (true); } public static function toLevelSharing():void{ navigateToURL(new URLRequest(levelSharingURL), "_blank"); } public static function toSponsor():void{ navigateToURL(new URLRequest(url), "_blank"); } private static function domainCheck():String{ var _local1:String = new LocalConnection().domain.toLowerCase(); if (_local1 == "localhost"){ return ("localhost"); }; var _local2:String = _local1.substr(-14); if (_local2 == "kongregate.com"){ return ("Kongregate"); }; _local2 = _local1.substr(-19); if (_local2 == "kongregatestage.com"){ return ("Kongregate"); }; _local2 = _local1.substr(-19); if (_local2 == "kongregatetrunk.com"){ return ("Kongregate"); }; _local2 = _local1.substr(-14); if (_local2 == "armorgames.com"){ return ("Armor"); }; _local2 = _local1.substr(-15); if (_local2 == "samplerinfo.com"){ return ("Greg"); }; _local2 = _local1.substr(-18); if (_local2 == "addictinggames.com"){ return ("Addicting"); }; _local2 = _local1.substr(-20); if (_local2 == "crazymonkeygames.com"){ return ("CrazyMonkey"); }; _local2 = _local1.substr(-13); if (_local2 == "bubblebox.com"){ return ("BubbleBox"); }; _local2 = _local1.substr(-10); if (_local2 == "andkon.com"){ return ("Andkon"); }; switch (_local1){ case "games.bigfishgames.com": case "bigfishgames.com": case "bigfishgames.de": case "bigfishgames.fr": case "bigfishgames.es": case "bigfishgames.mx": case "bigfishgames.jp": return ("BigFish"); }; return ("unknown"); } public static function get url():String{ if (_domain == ""){ _domain = domainCheck(); _url = URL[_domain]; }; return (_url); } public static function get sponsorVisible():Boolean{ return (true); } } }//packageSection 305//Pyro2 (Pyro2) package { import screen.*; import flash.display.*; import flash.events.*; import flash.utils.*; import mochi.as3.*; import theme.*; import com.kongregate.*; import flash.system.*; import flash.ui.*; public class Pyro2 extends MovieClip { public var mochiClip:MovieClip; public var loader:FlameLoaderScreen; private var connectTimer:Timer; public var _mochiads_game_id:String;// = "4675da57e1f418a9" public function Pyro2():void{ connectTimer = new Timer(5000); super(); addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); Security.allowDomain("*"); addEventListener(Event.ENTER_FRAME, connectToKong); } private function connectToKong(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, connectToKong); Protection.kongAPI = new ApiConnection(stage); if ((((((Protection.domain == "localhost")) && (Protection.debug))) || ((Protection.domain == "Kongregate")))){ }; connectTimer.addEventListener(TimerEvent.TIMER, checkConnection); Protection.kongAPI.connect(); } function frame2(){ stop(); } function frame4(){ stop(); if (Protection.debug){ if (Protection.kongAPI.userLevelAvailable){ loader.loadUserLevel(); } else { loader.transitionTo(AbstractScreen.screens.MainMenu); }; } else { loader.transitionTo(AbstractScreen.screens.DamijinIntro); }; } function frame1(){ init(); } private function checkConnection(_arg1:TimerEvent):void{ if (((!(Protection.kongAPI.connected)) && ((Protection.domain == "Kongregate")))){ Protection.kongAPI.connect(); } else { connectTimer.stop(); connectTimer.removeEventListener(TimerEvent.TIMER, checkConnection); connectTimer = null; }; } function init():void{ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; var _local1:ContextMenu = new ContextMenu(); _local1.hideBuiltInItems(); this.contextMenu = _local1; if (((Protection.showMochi) && (!(Protection.debug)))){ MochiAd.showPreGameAd({id:_mochiads_game_id, res:"550x500", clip:mochiClip, no_bg:true, ad_finished:mochiFinished}); stop(); }; } function mochiFinished():void{ play(); } function frame3(){ initScreens(); } private function initScreens():void{ var _local1:AbstractScreen; Darkroom.apply(); AbstractScreen._parent = this; _local1 = new DamijinIntroScreen(); _local1 = new GregIntroScreen(); _local1 = new MainMenuScreen(); _local1 = new LevelSelectorScreen(); _local1 = new PlayerLevelSelectorScreen(); _local1 = new LevelEditorScreen(); _local1 = new CreditsScreen(); _local1 = new WinScreen(); } } }//packageSection 306//Rect_Icon (Rect_Icon) package { import flash.display.*; public dynamic class Rect_Icon extends Sprite { } }//packageSection 307//RedFlamePalette (RedFlamePalette) package { import flash.display.*; public dynamic class RedFlamePalette extends Sprite { } }//packageSection 308//RT_Icon (RT_Icon) package { import flash.display.*; public dynamic class RT_Icon extends Sprite { } }//packageSection 309//RTorch (RTorch) package { import game.*; public dynamic class RTorch extends TorchBase { } }//packageSection 310//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//packageSection 311//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//packageSection 312//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//packageSection 313//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//packageSection 314//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//packageSection 315//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//packageSection 316//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//packageSection 317//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//packageSection 318//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//packageSection 319//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//packageSection 320//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//packageSection 321//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//packageSection 322//ScrollTrack_disabledSkin (ScrollTrack_disabledSkin) package { import flash.display.*; public dynamic class ScrollTrack_disabledSkin extends MovieClip { } }//packageSection 323//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//packageSection 324//TextArea_disabledSkin (TextArea_disabledSkin) package { import flash.display.*; public dynamic class TextArea_disabledSkin extends MovieClip { } }//packageSection 325//TextArea_upSkin (TextArea_upSkin) package { import flash.display.*; public dynamic class TextArea_upSkin extends MovieClip { } }//packageSection 326//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//packageSection 327//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//packageSection 328//TextMask (TextMask) package { import flash.display.*; public dynamic class TextMask extends Sprite { } }//packageSection 329//Thock_0 (Thock_0) package { import flash.media.*; public dynamic class Thock_0 extends Sound { } }//packageSection 330//Thock_1 (Thock_1) package { import flash.media.*; public dynamic class Thock_1 extends Sound { } }//packageSection 331//Thunk_0 (Thunk_0) package { import flash.media.*; public dynamic class Thunk_0 extends Sound { } }//packageSection 332//Thunk_1 (Thunk_1) package { import flash.media.*; public dynamic class Thunk_1 extends Sound { } }//packageSection 333//Thunk_2 (Thunk_2) package { import flash.media.*; public dynamic class Thunk_2 extends Sound { } }//packageSection 334//Thunk_3 (Thunk_3) package { import flash.media.*; public dynamic class Thunk_3 extends Sound { } }//packageSection 335//TinyBoxFont (TinyBoxFont) package { import flash.text.*; public dynamic class TinyBoxFont extends Font { } }//packageSection 336//TitleFlamePalette (TitleFlamePalette) package { import flash.display.*; public dynamic class TitleFlamePalette extends Sprite { } }//packageSection 337//TitleTextMaskII (TitleTextMaskII) package { import flash.display.*; public dynamic class TitleTextMaskII extends Sprite { } }//packageSection 338//Torch (Torch) package { import game.*; public dynamic class Torch extends TorchBase { } }//packageSection 339//Torch_0 (Torch_0) package { import flash.media.*; public dynamic class Torch_0 extends Sound { } }//packageSection 340//Torch_1 (Torch_1) package { import flash.media.*; public dynamic class Torch_1 extends Sound { } }//packageSection 341//Torch_2 (Torch_2) package { import flash.media.*; public dynamic class Torch_2 extends Sound { } }//packageSection 342//Torch_3 (Torch_3) package { import flash.media.*; public dynamic class Torch_3 extends Sound { } }//packageSection 343//TorchHitArea (TorchHitArea) package { import flash.display.*; public dynamic class TorchHitArea extends Sprite { } }//packageSection 344//TransparentBlueFlamePalette (TransparentBlueFlamePalette) package { import flash.display.*; public dynamic class TransparentBlueFlamePalette extends Sprite { } }//packageSection 345//TransparentCreditFlamePalette (TransparentCreditFlamePalette) package { import flash.display.*; public dynamic class TransparentCreditFlamePalette extends Sprite { } }//packageSection 346//TransparentFlamePalette (TransparentFlamePalette) package { import flash.display.*; public dynamic class TransparentFlamePalette extends Sprite { } }//packageSection 347//TransparentGreenFlamePalette (TransparentGreenFlamePalette) package { import flash.display.*; public dynamic class TransparentGreenFlamePalette extends Sprite { } }//packageSection 348//TransparentRedFlamePalette (TransparentRedFlamePalette) package { import flash.display.*; public dynamic class TransparentRedFlamePalette extends Sprite { } }//packageSection 349//Win (Win) package { import flash.media.*; public dynamic class Win extends Sound { } }//packageSection 350//Wood_00 (Wood_00) package { import flash.display.*; public dynamic class Wood_00 extends BitmapData { public function Wood_00(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 351//Wood_01 (Wood_01) package { import flash.display.*; public dynamic class Wood_01 extends BitmapData { public function Wood_01(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 352//Wood_02 (Wood_02) package { import flash.display.*; public dynamic class Wood_02 extends BitmapData { public function Wood_02(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 353//Wood_03 (Wood_03) package { import flash.display.*; public dynamic class Wood_03 extends BitmapData { public function Wood_03(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//packageSection 354//Wood_04 (Wood_04) package { import flash.display.*; public dynamic class Wood_04 extends BitmapData { public function Wood_04(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Library Items
Symbol 1 Graphic | Used by:Timeline | |
Symbol 2 MovieClip | Used by:Timeline | |
Symbol 3 Font | Used by:4 | |
Symbol 4 EditableText | Uses:3 | Used by:Timeline |
Symbol 5 MovieClip {fl.core.ComponentShim} | Used by:103 104 119 138 161 187 188 193 201 202 | |
Symbol 6 Graphic | Used by:44 | |
Symbol 7 Graphic | Used by:35 | |
Symbol 8 Graphic | Used by:34 | |
Symbol 9 Graphic | Used by:10 | |
Symbol 10 MovieClip | Uses:9 | Used by:27 34 |
Symbol 11 Graphic | Used by:12 | |
Symbol 12 MovieClip | Uses:11 | Used by:26 34 |
Symbol 13 Graphic | Used by:14 | |
Symbol 14 MovieClip | Uses:13 | Used by:21 26 27 34 |
Symbol 15 Graphic | Used by:16 | |
Symbol 16 MovieClip | Uses:15 | Used by:21 26 27 34 |
Symbol 17 Graphic | Used by:18 | |
Symbol 18 MovieClip | Uses:17 | Used by:21 26 27 34 |
Symbol 19 Graphic | Used by:20 | |
Symbol 20 MovieClip | Uses:19 | Used by:21 26 27 34 |
Symbol 21 MovieClip | Uses:14 16 18 20 | Used by:34 |
Symbol 22 Graphic | Used by:23 | |
Symbol 23 MovieClip | Uses:22 | Used by:34 |
Symbol 24 Graphic | Used by:27 | |
Symbol 25 Graphic | Used by:27 | |
Symbol 26 MovieClip | Uses:12 14 16 18 20 | Used by:27 |
Symbol 27 MovieClip | Uses:24 10 25 26 14 16 18 20 | Used by:34 |
Symbol 28 Graphic | Used by:29 | |
Symbol 29 MovieClip | Uses:28 | Used by:34 |
Symbol 30 Font | Used by:32 | |
Symbol 31 Font | Used by:32 | |
Symbol 32 Text | Uses:30 31 | Used by:33 |
Symbol 33 MovieClip | Uses:32 | Used by:34 |
Symbol 34 MovieClip {Kong_Logo} | Uses:8 10 12 21 23 14 16 18 20 27 29 33 | Used by:35 |
Symbol 35 MovieClip {Kong_Logo_Pyro} | Uses:7 34 | Used by:44 |
Symbol 36 Font {TinyBoxFont} | Used by:37 206 222 366 380 384 582 584 586 590 592 594 597 598 599 | |
Symbol 37 EditableText | Uses:36 | Used by:44 |
Symbol 38 Graphic | Used by:44 | |
Symbol 39 MovieClip | Used by:44 | |
Symbol 40 Graphic | Used by:41 | |
Symbol 41 MovieClip {TransparentFlamePalette} | Uses:40 | Used by:44 635 |
Symbol 42 Graphic | Used by:43 | |
Symbol 43 MovieClip | Uses:42 | Used by:44 |
Symbol 44 MovieClip {screen.FlameLoaderScreen} | Uses:6 35 37 38 39 41 43 | Used by:Timeline |
Symbol 45 Bitmap {Wood_04} | ||
Symbol 46 Bitmap {Wood_03} | ||
Symbol 47 Bitmap {Wood_02} | ||
Symbol 48 Bitmap {Wood_01} | ||
Symbol 49 Bitmap {Wood_00} | ||
Symbol 50 Bitmap {Dis_04} | ||
Symbol 51 Bitmap {Dis_03} | ||
Symbol 52 Bitmap {Dis_02} | ||
Symbol 53 Bitmap {Dis_01} | ||
Symbol 54 Bitmap {Dis_00} | ||
Symbol 55 Bitmap {DarkWood_04} | ||
Symbol 56 Bitmap {DarkWood_03} | ||
Symbol 57 Bitmap {DarkWood_02} | ||
Symbol 58 Bitmap {DarkWood_01} | ||
Symbol 59 Bitmap {DarkWood_00} | ||
Symbol 60 Bitmap {DarkDis_04} | ||
Symbol 61 Bitmap {DarkDis_03} | ||
Symbol 62 Bitmap {DarkDis_02} | ||
Symbol 63 Bitmap {DarkDis_01} | ||
Symbol 64 Bitmap {DarkDis_00} | ||
Symbol 65 Bitmap {Burn_04} | ||
Symbol 66 Bitmap {Burn_03} | ||
Symbol 67 Bitmap {Burn_02} | ||
Symbol 68 Bitmap {Burn_01} | ||
Symbol 69 Bitmap {Burn_00} | ||
Symbol 70 Graphic | Used by:71 | |
Symbol 71 MovieClip {DisplayScreenHit} | Uses:70 | Used by:87 635 |
Symbol 72 Graphic | Used by:73 | |
Symbol 73 MovieClip | Uses:72 | Used by:87 |
Symbol 74 Bitmap | Used by:75 | |
Symbol 75 Graphic | Uses:74 | Used by:76 635 |
Symbol 76 MovieClip {ButtonDisplay} | Uses:75 | Used by:79 |
Symbol 77 Graphic | Used by:78 | |
Symbol 78 MovieClip {ButtonHitArea} | Uses:77 | Used by:79 635 |
Symbol 79 MovieClip {com.leveleditor.SpawnerEditor} | Uses:76 78 | Used by:87 391 635 |
Symbol 80 Graphic | Used by:81 | |
Symbol 81 MovieClip | Uses:80 | Used by:82 635 |
Symbol 82 MovieClip | Uses:81 | Used by:85 |
Symbol 83 Graphic | Used by:84 198 232 391 415 435 487 497 601 635 | |
Symbol 84 MovieClip | Uses:83 | Used by:85 86 87 |
Symbol 85 MovieClip | Uses:82 84 | Used by:87 372 |
Symbol 86 MovieClip | Uses:84 | Used by:87 372 |
Symbol 87 MovieClip {com.leveleditor.EditorDisplay} | Uses:71 73 79 85 86 84 | Used by:204 635 |
Symbol 88 Bitmap | Used by:89 | |
Symbol 89 Graphic | Uses:88 | Used by:90 |
Symbol 90 MovieClip | Uses:89 | Used by:194 379 |
Symbol 91 Graphic | Used by:92 | |
Symbol 92 MovieClip | Uses:91 | Used by:194 203 221 223 379 |
Symbol 93 Graphic | Used by:94 | |
Symbol 94 MovieClip | Uses:93 | Used by:194 203 379 |
Symbol 95 Graphic | Used by:96 | |
Symbol 96 MovieClip | Uses:95 | Used by:103 104 119 138 188 193 201 202 635 |
Symbol 97 Graphic | Used by:98 199 | |
Symbol 98 MovieClip {TextInput_disabledSkin} | Uses:97 | Used by:103 635 |
Symbol 99 Graphic | Used by:100 200 | |
Symbol 100 MovieClip {TextInput_upSkin} | Uses:99 | Used by:103 635 |
Symbol 101 Graphic | Used by:102 | |
Symbol 102 MovieClip {focusRectSkin} | Uses:101 | Used by:103 119 138 187 188 193 201 202 635 |
Symbol 103 MovieClip {fl.controls.TextInput} | Uses:96 5 98 100 102 | Used by:193 194 635 |
Symbol 104 MovieClip {fl.controls.Label} | Uses:96 5 | Used by:194 203 379 635 |
Symbol 105 Graphic | Used by:106 | |
Symbol 106 MovieClip {CheckBox_upIcon} | Uses:105 | Used by:119 635 |
Symbol 107 Graphic | Used by:108 | |
Symbol 108 MovieClip {CheckBox_overIcon} | Uses:107 | Used by:119 635 |
Symbol 109 Graphic | Used by:110 111 | |
Symbol 110 MovieClip {CheckBox_downIcon} | Uses:109 | Used by:119 635 |
Symbol 111 MovieClip {CheckBox_disabledIcon} | Uses:109 | Used by:119 635 |
Symbol 112 Graphic | Used by:113 114 | |
Symbol 113 MovieClip {CheckBox_selectedUpIcon} | Uses:112 | Used by:119 635 |
Symbol 114 MovieClip {CheckBox_selectedOverIcon} | Uses:112 | Used by:119 635 |
Symbol 115 Graphic | Used by:116 | |
Symbol 116 MovieClip {CheckBox_selectedDownIcon} | Uses:115 | Used by:119 635 |
Symbol 117 Graphic | Used by:118 | |
Symbol 118 MovieClip {CheckBox_selectedDisabledIcon} | Uses:117 | Used by:119 635 |
Symbol 119 MovieClip {fl.controls.CheckBox} | Uses:96 5 106 108 110 111 113 114 116 118 102 | Used by:194 635 |
Symbol 120 Graphic | Used by:121 | |
Symbol 121 MovieClip {Button_disabledSkin} | Uses:120 | Used by:138 635 |
Symbol 122 Graphic | Used by:123 | |
Symbol 123 MovieClip {Button_downSkin} | Uses:122 | Used by:138 635 |
Symbol 124 Graphic | Used by:125 | |
Symbol 125 MovieClip {Button_emphasizedSkin} | Uses:124 | Used by:138 635 |
Symbol 126 Graphic | Used by:127 | |
Symbol 127 MovieClip {Button_overSkin} | Uses:126 | Used by:138 635 |
Symbol 128 Graphic | Used by:129 | |
Symbol 129 MovieClip {Button_selectedDisabledSkin} | Uses:128 | Used by:138 635 |
Symbol 130 Graphic | Used by:131 | |
Symbol 131 MovieClip {Button_selectedDownSkin} | Uses:130 | Used by:138 635 |
Symbol 132 Graphic | Used by:133 | |
Symbol 133 MovieClip {Button_selectedOverSkin} | Uses:132 | Used by:138 635 |
Symbol 134 Graphic | Used by:135 | |
Symbol 135 MovieClip {Button_selectedUpSkin} | Uses:134 | Used by:138 635 |
Symbol 136 Graphic | Used by:137 | |
Symbol 137 MovieClip {Button_upSkin} | Uses:136 | Used by:138 635 |
Symbol 138 MovieClip {fl.controls.Button} | Uses:96 5 121 123 125 127 129 131 133 135 137 102 | Used by:194 203 221 223 371 378 379 381 414 435 635 |
Symbol 139 Graphic | Used by:140 | |
Symbol 140 MovieClip {ComboBox_upSkin} | Uses:139 | Used by:193 635 |
Symbol 141 Graphic | Used by:142 | |
Symbol 142 MovieClip {ComboBox_disabledSkin} | Uses:141 | Used by:193 635 |
Symbol 143 Graphic | Used by:144 | |
Symbol 144 MovieClip {List_skin} | Uses:143 | Used by:188 635 |
Symbol 145 Graphic | Used by:146 | |
Symbol 146 MovieClip {CellRenderer_upSkin} | Uses:145 | Used by:161 635 |
Symbol 147 Graphic | Used by:148 | |
Symbol 148 MovieClip {CellRenderer_disabledSkin} | Uses:147 | Used by:161 635 |
Symbol 149 Graphic | Used by:150 | |
Symbol 150 MovieClip {CellRenderer_downSkin} | Uses:149 | Used by:161 635 |
Symbol 151 Graphic | Used by:152 | |
Symbol 152 MovieClip {CellRenderer_overSkin} | Uses:151 | Used by:161 635 |
Symbol 153 Graphic | Used by:154 | |
Symbol 154 MovieClip {CellRenderer_selectedDisabledSkin} | Uses:153 | Used by:161 635 |
Symbol 155 Graphic | Used by:156 | |
Symbol 156 MovieClip {CellRenderer_selectedDownSkin} | Uses:155 | Used by:161 635 |
Symbol 157 Graphic | Used by:158 | |
Symbol 158 MovieClip {CellRenderer_selectedOverSkin} | Uses:157 | Used by:161 635 |
Symbol 159 Graphic | Used by:160 | |
Symbol 160 MovieClip {CellRenderer_selectedUpSkin} | Uses:159 | Used by:161 635 |
Symbol 161 MovieClip {fl.controls.listClasses.CellRenderer} | Uses:146 5 148 150 152 154 156 158 160 | Used by:188 635 |
Symbol 162 Graphic | Used by:163 | |
Symbol 163 MovieClip {ScrollTrack_skin} | Uses:162 | Used by:187 201 635 |
Symbol 164 Graphic | Used by:167 175 176 | |
Symbol 165 Graphic | Used by:166 169 173 180 635 | |
Symbol 166 MovieClip | Uses:165 | Used by:167 175 176 635 |
Symbol 167 MovieClip {ScrollArrowUp_downSkin} | Uses:164 166 | Used by:187 201 635 |
Symbol 168 Graphic | Used by:169 | |
Symbol 169 MovieClip {ScrollArrowDown_downSkin} | Uses:168 165 | Used by:187 201 635 |
Symbol 170 Graphic | Used by:171 174 | |
Symbol 171 MovieClip {ScrollThumb_downSkin} | Uses:170 | Used by:187 201 635 |
Symbol 172 Graphic | Used by:173 | |
Symbol 173 MovieClip {ScrollArrowDown_overSkin} | Uses:172 165 | Used by:187 201 635 |
Symbol 174 MovieClip {ScrollThumb_overSkin} | Uses:170 | Used by:187 201 635 |
Symbol 175 MovieClip {ScrollArrowUp_overSkin} | Uses:164 166 | Used by:187 201 635 |
Symbol 176 MovieClip {ScrollArrowUp_upSkin} | Uses:164 166 | Used by:187 201 635 |
Symbol 177 Graphic | Used by:178 | |
Symbol 178 MovieClip {ScrollThumb_upSkin} | Uses:177 | Used by:187 201 635 |
Symbol 179 Graphic | Used by:180 | |
Symbol 180 MovieClip {ScrollArrowDown_upSkin} | Uses:179 165 | Used by:187 201 635 |
Symbol 181 Graphic | Used by:182 | |
Symbol 182 MovieClip {ScrollArrowDown_disabledSkin} | Uses:181 | Used by:187 201 635 |
Symbol 183 Graphic | Used by:184 | |
Symbol 184 MovieClip {ScrollArrowUp_disabledSkin} | Uses:183 | Used by:187 201 635 |
Symbol 185 Graphic | Used by:186 | |
Symbol 186 MovieClip {ScrollBar_thumbIcon} | Uses:185 | Used by:187 201 635 |
Symbol 187 MovieClip {fl.controls.ScrollBar} | Uses:163 5 102 167 169 171 173 174 175 176 178 180 182 184 186 | Used by:188 635 |
Symbol 188 MovieClip {fl.controls.List} | Uses:96 5 144 161 102 187 | Used by:193 221 223 635 |
Symbol 189 Graphic | Used by:190 | |
Symbol 190 MovieClip {ComboBox_overSkin} | Uses:189 | Used by:193 635 |
Symbol 191 Graphic | Used by:192 | |
Symbol 192 MovieClip {ComboBox_downSkin} | Uses:191 | Used by:193 635 |
Symbol 193 MovieClip {fl.controls.ComboBox} | Uses:96 5 102 140 142 103 188 190 192 | Used by:194 635 |
Symbol 194 MovieClip {com.leveleditor.EditorPanel} | Uses:90 92 94 103 104 119 138 193 | Used by:204 635 |
Symbol 195 Graphic | Used by:203 381 | |
Symbol 196 Graphic | Used by:198 | |
Symbol 197 Graphic | Used by:198 | |
Symbol 198 Button | Uses:196 197 83 | Used by:203 635 |
Symbol 199 MovieClip {TextArea_disabledSkin} | Uses:97 | Used by:202 635 |
Symbol 200 MovieClip {TextArea_upSkin} | Uses:99 | Used by:202 635 |
Symbol 201 MovieClip {fl.controls.UIScrollBar} | Uses:96 5 102 163 167 169 171 173 174 175 176 178 180 182 184 186 | Used by:202 |
Symbol 202 MovieClip {fl.controls.TextArea} | Uses:96 5 199 200 102 201 | Used by:203 635 |
Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} | Uses:195 94 92 198 202 138 104 | Used by:204 |
Symbol 204 MovieClip {screen.LevelEditorScreen} | Uses:87 194 203 | |
Symbol 205 Graphic | Used by:221 223 | |
Symbol 206 EditableText | Uses:36 | Used by:221 |
Symbol 207 Font | Used by:208 209 376 377 420 421 422 423 424 427 430 431 432 433 | |
Symbol 208 Text | Uses:207 | Used by:211 |
Symbol 209 Text | Uses:207 | Used by:211 |
Symbol 210 Graphic | Used by:211 | |
Symbol 211 Button | Uses:208 209 210 | Used by:221 635 |
Symbol 212 Graphic | Used by:213 | |
Symbol 213 MovieClip | Uses:212 | Used by:215 |
Symbol 214 Graphic | Used by:215 | |
Symbol 215 Button | Uses:213 214 | Used by:221 361 |
Symbol 216 Graphic | Used by:220 | |
Symbol 217 Font | Used by:218 388 411 | |
Symbol 218 Text | Uses:217 | Used by:220 |
Symbol 219 Graphic | Used by:220 | |
Symbol 220 MovieClip | Uses:216 218 219 | Used by:221 223 635 |
Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} | Uses:205 206 138 92 211 215 188 220 | |
Symbol 222 EditableText | Uses:36 | Used by:223 |
Symbol 223 MovieClip {screen.LevelSelectorScreen} | Uses:205 222 138 92 188 220 | |
Symbol 224 Graphic | Used by:356 | |
Symbol 225 Font | Used by:226 227 | |
Symbol 226 Text | Uses:225 | Used by:356 |
Symbol 227 Text | Uses:225 | Used by:356 |
Symbol 228 Font | Used by:229 230 231 370 474 | |
Symbol 229 Text | Uses:228 | Used by:232 |
Symbol 230 Text | Uses:228 | Used by:232 |
Symbol 231 Text | Uses:228 | Used by:232 |
Symbol 232 Button | Uses:229 230 231 83 | Used by:356 472 635 |
Symbol 233 Sound | Used by:356 635 | |
Symbol 234 Bitmap | Used by:235 | |
Symbol 235 Graphic | Uses:234 | Used by:356 |
Symbol 236 Bitmap | Used by:237 | |
Symbol 237 Graphic | Uses:236 | Used by:356 |
Symbol 238 Bitmap | Used by:239 | |
Symbol 239 Graphic | Uses:238 | Used by:356 |
Symbol 240 Bitmap | Used by:241 | |
Symbol 241 Graphic | Uses:240 | Used by:356 |
Symbol 242 Bitmap | Used by:243 | |
Symbol 243 Graphic | Uses:242 | Used by:356 |
Symbol 244 Bitmap | Used by:245 | |
Symbol 245 Graphic | Uses:244 | Used by:356 |
Symbol 246 Bitmap | Used by:247 | |
Symbol 247 Graphic | Uses:246 | Used by:356 |
Symbol 248 Bitmap | Used by:249 | |
Symbol 249 Graphic | Uses:248 | Used by:356 |
Symbol 250 Bitmap | Used by:251 | |
Symbol 251 Graphic | Uses:250 | Used by:356 |
Symbol 252 Bitmap | Used by:253 | |
Symbol 253 Graphic | Uses:252 | Used by:356 |
Symbol 254 Bitmap | Used by:255 | |
Symbol 255 Graphic | Uses:254 | Used by:356 |
Symbol 256 Bitmap | Used by:257 | |
Symbol 257 Graphic | Uses:256 | Used by:356 |
Symbol 258 Bitmap | Used by:259 | |
Symbol 259 Graphic | Uses:258 | Used by:356 |
Symbol 260 Bitmap | Used by:261 | |
Symbol 261 Graphic | Uses:260 | Used by:356 |
Symbol 262 Bitmap | Used by:263 | |
Symbol 263 Graphic | Uses:262 | Used by:356 |
Symbol 264 Bitmap | Used by:265 | |
Symbol 265 Graphic | Uses:264 | Used by:356 |
Symbol 266 Bitmap | Used by:267 | |
Symbol 267 Graphic | Uses:266 | Used by:356 |
Symbol 268 Bitmap | Used by:269 | |
Symbol 269 Graphic | Uses:268 | Used by:356 |
Symbol 270 Bitmap | Used by:271 | |
Symbol 271 Graphic | Uses:270 | Used by:356 |
Symbol 272 Bitmap | Used by:273 | |
Symbol 273 Graphic | Uses:272 | Used by:356 |
Symbol 274 Bitmap | Used by:275 | |
Symbol 275 Graphic | Uses:274 | Used by:356 |
Symbol 276 Bitmap | Used by:277 | |
Symbol 277 Graphic | Uses:276 | Used by:356 |
Symbol 278 Bitmap | Used by:279 | |
Symbol 279 Graphic | Uses:278 | Used by:356 |
Symbol 280 Bitmap | Used by:281 | |
Symbol 281 Graphic | Uses:280 | Used by:356 |
Symbol 282 Bitmap | Used by:283 | |
Symbol 283 Graphic | Uses:282 | Used by:356 |
Symbol 284 Bitmap | Used by:285 | |
Symbol 285 Graphic | Uses:284 | Used by:356 |
Symbol 286 Bitmap | Used by:287 | |
Symbol 287 Graphic | Uses:286 | Used by:356 |
Symbol 288 Bitmap | Used by:289 | |
Symbol 289 Graphic | Uses:288 | Used by:356 |
Symbol 290 Bitmap | Used by:291 | |
Symbol 291 Graphic | Uses:290 | Used by:356 |
Symbol 292 Bitmap | Used by:293 | |
Symbol 293 Graphic | Uses:292 | Used by:356 |
Symbol 294 Bitmap | Used by:295 | |
Symbol 295 Graphic | Uses:294 | Used by:356 |
Symbol 296 Bitmap | Used by:297 | |
Symbol 297 Graphic | Uses:296 | Used by:356 |
Symbol 298 Bitmap | Used by:299 | |
Symbol 299 Graphic | Uses:298 | Used by:356 |
Symbol 300 Bitmap | Used by:301 | |
Symbol 301 Graphic | Uses:300 | Used by:356 |
Symbol 302 Bitmap | Used by:303 | |
Symbol 303 Graphic | Uses:302 | Used by:356 |
Symbol 304 Bitmap | Used by:305 | |
Symbol 305 Graphic | Uses:304 | Used by:356 |
Symbol 306 Bitmap | Used by:307 | |
Symbol 307 Graphic | Uses:306 | Used by:356 |
Symbol 308 Bitmap | Used by:309 | |
Symbol 309 Graphic | Uses:308 | Used by:356 |
Symbol 310 Bitmap | Used by:311 | |
Symbol 311 Graphic | Uses:310 | Used by:356 |
Symbol 312 Bitmap | Used by:313 | |
Symbol 313 Graphic | Uses:312 | Used by:356 |
Symbol 314 Bitmap | Used by:315 | |
Symbol 315 Graphic | Uses:314 | Used by:356 |
Symbol 316 Bitmap | Used by:317 | |
Symbol 317 Graphic | Uses:316 | Used by:356 |
Symbol 318 Bitmap | Used by:319 | |
Symbol 319 Graphic | Uses:318 | Used by:356 |
Symbol 320 Bitmap | Used by:321 | |
Symbol 321 Graphic | Uses:320 | Used by:356 |
Symbol 322 Bitmap | Used by:323 | |
Symbol 323 Graphic | Uses:322 | Used by:356 |
Symbol 324 Bitmap | Used by:325 | |
Symbol 325 Graphic | Uses:324 | Used by:356 |
Symbol 326 Bitmap | Used by:327 | |
Symbol 327 Graphic | Uses:326 | Used by:356 |
Symbol 328 Bitmap | Used by:329 | |
Symbol 329 Graphic | Uses:328 | Used by:356 |
Symbol 330 Bitmap | Used by:331 | |
Symbol 331 Graphic | Uses:330 | Used by:356 |
Symbol 332 Bitmap | Used by:333 | |
Symbol 333 Graphic | Uses:332 | Used by:356 |
Symbol 334 Bitmap | Used by:335 | |
Symbol 335 Graphic | Uses:334 | Used by:356 |
Symbol 336 Bitmap | Used by:337 | |
Symbol 337 Graphic | Uses:336 | Used by:356 |
Symbol 338 Bitmap | Used by:339 | |
Symbol 339 Graphic | Uses:338 | Used by:356 |
Symbol 340 Bitmap | Used by:341 | |
Symbol 341 Graphic | Uses:340 | Used by:356 |
Symbol 342 Bitmap | Used by:343 | |
Symbol 343 Graphic | Uses:342 | Used by:356 |
Symbol 344 Bitmap | Used by:345 | |
Symbol 345 Graphic | Uses:344 | Used by:356 |
Symbol 346 Bitmap | Used by:347 | |
Symbol 347 Graphic | Uses:346 | Used by:356 |
Symbol 348 Bitmap | Used by:349 | |
Symbol 349 Graphic | Uses:348 | Used by:356 |
Symbol 350 Bitmap | Used by:351 | |
Symbol 351 Graphic | Uses:350 | Used by:356 |
Symbol 352 Bitmap | Used by:353 | |
Symbol 353 Graphic | Uses:352 | Used by:356 |
Symbol 354 Bitmap | Used by:355 | |
Symbol 355 Graphic | Uses:354 | Used by:356 |
Symbol 356 MovieClip {screen.DamijinIntroScreen} | Uses:224 226 227 232 233 235 237 239 241 243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 341 343 345 347 349 351 353 355 | |
Symbol 357 Graphic | Used by:358 | |
Symbol 358 MovieClip {TextMask} | Uses:357 | Used by:360 635 |
Symbol 359 Graphic | Used by:360 | |
Symbol 360 MovieClip | Uses:358 359 | Used by:371 |
Symbol 361 MovieClip | Uses:215 | Used by:371 |
Symbol 362 Graphic | Used by:363 | |
Symbol 363 MovieClip {TitleTextMaskII} | Uses:362 | Used by:365 |
Symbol 364 Graphic | Used by:365 | |
Symbol 365 MovieClip | Uses:363 364 | Used by:371 635 |
Symbol 366 Text | Uses:36 | Used by:371 |
Symbol 367 Graphic | Used by:368 | |
Symbol 368 MovieClip {NoiseGenerator} | Uses:367 | Used by:369 635 |
Symbol 369 MovieClip | Uses:368 | Used by:371 635 |
Symbol 370 EditableText | Uses:228 | Used by:371 |
Symbol 371 MovieClip {screen.MainMenuScreen} | Uses:360 361 138 365 366 369 370 | |
Symbol 372 MovieClip | Uses:85 86 | Used by:391 440 |
Symbol 373 Graphic | Used by:378 | |
Symbol 374 Font | Used by:375 | |
Symbol 375 EditableText | Uses:374 | Used by:378 |
Symbol 376 EditableText | Uses:207 412 | Used by:378 |
Symbol 377 EditableText | Uses:207 412 | Used by:378 |
Symbol 378 MovieClip {Pyro2_fla.Tip_194} | Uses:373 375 376 377 138 | Used by:379 |
Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} | Uses:90 94 92 138 104 378 | Used by:391 |
Symbol 380 Text | Uses:36 | Used by:381 |
Symbol 381 MovieClip {Pyro2_fla.LooseScreen_57} | Uses:195 380 138 | Used by:391 635 |
Symbol 382 Graphic | Used by:383 | |
Symbol 383 MovieClip | Uses:382 | Used by:390 635 |
Symbol 384 EditableText | Uses:36 | Used by:385 |
Symbol 385 MovieClip | Uses:384 | Used by:390 635 |
Symbol 386 Graphic | Used by:387 | |
Symbol 387 MovieClip | Uses:386 | Used by:390 635 |
Symbol 388 Text | Uses:217 | Used by:390 635 |
Symbol 389 Sound | Used by:390 635 | |
Symbol 390 MovieClip {Pyro2_fla.AcedScreen_70} | Uses:383 385 387 388 389 | Used by:391 635 |
Symbol 391 MovieClip {screen.GameLevelScreen} | Uses:79 372 379 381 83 390 | |
Symbol 392 Graphic | Used by:393 | |
Symbol 393 MovieClip | Uses:392 | Used by:398 |
Symbol 394 Font | Used by:395 | |
Symbol 395 EditableText | Uses:394 | Used by:398 |
Symbol 396 Graphic | Used by:397 | |
Symbol 397 MovieClip | Uses:396 | Used by:398 |
Symbol 398 MovieClip {com.PyroCellRenderer} | Uses:393 395 397 | |
Symbol 399 Bitmap | Used by:400 | |
Symbol 400 Graphic | Uses:399 | Used by:401 |
Symbol 401 MovieClip {HalfSizeSnap} | Uses:400 | |
Symbol 402 Bitmap | Used by:403 | |
Symbol 403 Graphic | Uses:402 | Used by:404 |
Symbol 404 MovieClip {BounceSnap} | Uses:403 | |
Symbol 405 Bitmap | Used by:406 | |
Symbol 406 Graphic | Uses:405 | Used by:407 |
Symbol 407 MovieClip {PlusOneSnap} | Uses:406 | |
Symbol 408 Bitmap | Used by:409 | |
Symbol 409 Graphic | Uses:408 | Used by:410 |
Symbol 410 MovieClip {LongLineSnap} | Uses:409 | |
Symbol 411 Text | Uses:217 | Used by:414 |
Symbol 412 Font | Used by:376 377 413 420 421 422 423 425 426 428 429 | |
Symbol 413 Text | Uses:412 | Used by:414 |
Symbol 414 MovieClip {Pyro2_fla.WinScroll_184} | Uses:411 413 138 | Used by:415 |
Symbol 415 MovieClip {screen.WinScreen} | Uses:83 414 | |
Symbol 416 Graphic | Used by:434 | |
Symbol 417 Bitmap | Used by:418 | |
Symbol 418 Graphic | Uses:417 | Used by:419 |
Symbol 419 Button | Uses:418 | Used by:434 |
Symbol 420 Text | Uses:207 412 | Used by:434 |
Symbol 421 Text | Uses:207 412 | Used by:434 |
Symbol 422 Text | Uses:207 412 | Used by:434 |
Symbol 423 Text | Uses:207 412 | Used by:434 |
Symbol 424 Text | Uses:207 | Used by:434 |
Symbol 425 Text | Uses:412 | Used by:434 |
Symbol 426 Text | Uses:412 | Used by:434 |
Symbol 427 Text | Uses:207 | Used by:434 |
Symbol 428 Text | Uses:412 | Used by:434 |
Symbol 429 Text | Uses:412 | Used by:434 |
Symbol 430 Text | Uses:207 | Used by:434 |
Symbol 431 Text | Uses:207 | Used by:434 |
Symbol 432 Text | Uses:207 | Used by:434 |
Symbol 433 Text | Uses:207 | Used by:434 |
Symbol 434 MovieClip | Uses:416 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 | Used by:435 |
Symbol 435 MovieClip {screen.CreditsScreen} | Uses:83 434 138 | |
Symbol 436 Bitmap | Used by:437 | |
Symbol 437 Graphic | Uses:436 | Used by:438 |
Symbol 438 MovieClip {PlayerSnap} | Uses:437 | Used by:440 |
Symbol 439 Graphic | Used by:440 468 472 | |
Symbol 440 MovieClip {screen.GameLevelSnapshot} | Uses:439 438 372 | Used by:635 |
Symbol 441 Graphic | Used by:442 | |
Symbol 442 MovieClip | Uses:441 | Used by:468 |
Symbol 443 Graphic | Used by:467 | |
Symbol 444 Graphic | Used by:467 | |
Symbol 445 Graphic | Used by:467 | |
Symbol 446 Graphic | Used by:467 | |
Symbol 447 Graphic | Used by:467 | |
Symbol 448 Graphic | Used by:467 | |
Symbol 449 Graphic | Used by:467 | |
Symbol 450 Graphic | Used by:467 | |
Symbol 451 Graphic | Used by:467 | |
Symbol 452 Graphic | Used by:467 | |
Symbol 453 Graphic | Used by:467 | |
Symbol 454 Graphic | Used by:467 | |
Symbol 455 Graphic | Used by:467 | |
Symbol 456 Graphic | Used by:467 | |
Symbol 457 Graphic | Used by:467 | |
Symbol 458 Graphic | Used by:467 | |
Symbol 459 Graphic | Used by:467 | |
Symbol 460 Graphic | Used by:467 | |
Symbol 461 Graphic | Used by:467 | |
Symbol 462 Graphic | Used by:467 | |
Symbol 463 Graphic | Used by:467 | |
Symbol 464 Graphic | Used by:467 | |
Symbol 465 Graphic | Used by:467 | |
Symbol 466 Graphic | Used by:467 | |
Symbol 467 MovieClip {screen.GregIntroTypeEffect} | Uses:443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 | Used by:468 635 |
Symbol 468 MovieClip {Pyro2_fla.GregLogo_Screen_52} | Uses:439 442 467 | Used by:472 |
Symbol 469 Graphic | Used by:470 | |
Symbol 470 MovieClip | Uses:469 | Used by:472 |
Symbol 471 Sound {MonitorOff} | Used by:472 635 | |
Symbol 472 MovieClip {screen.GregIntroScreen} | Uses:439 468 232 470 471 | Used by:635 |
Symbol 473 Graphic | Used by:475 | |
Symbol 474 Text | Uses:228 | Used by:475 |
Symbol 475 MovieClip {com.leveleditor.Pow1Editor} | Uses:473 474 | Used by:485 |
Symbol 476 Graphic | Used by:477 | |
Symbol 477 MovieClip {com.leveleditor.Pow3Editor} | Uses:476 | Used by:484 |
Symbol 478 Graphic | Used by:479 | |
Symbol 479 MovieClip {com.leveleditor.Pow4Editor} | Uses:478 | Used by:483 |
Symbol 480 Graphic | Used by:481 | |
Symbol 481 MovieClip {com.leveleditor.Pow2Editor} | Uses:480 | Used by:482 |
Symbol 482 MovieClip {BounceUpZone} | Uses:481 | Used by:635 |
Symbol 483 MovieClip {HalfSizeZone} | Uses:479 | Used by:635 |
Symbol 484 MovieClip {LongLineZone} | Uses:477 | Used by:635 |
Symbol 485 MovieClip {PlusOneZone} | Uses:475 | Used by:635 |
Symbol 486 Graphic | Used by:488 | |
Symbol 487 MovieClip {TorchHitArea} | Uses:83 | Used by:488 490 492 635 |
Symbol 488 MovieClip {LTorch} | Uses:486 487 | Used by:635 |
Symbol 489 Graphic | Used by:490 | |
Symbol 490 MovieClip {RTorch} | Uses:489 487 | Used by:635 |
Symbol 491 Graphic | Used by:492 | |
Symbol 492 MovieClip {Torch} | Uses:491 487 | Used by:635 |
Symbol 493 Bitmap {CrateBitmap} | Used by:494 538 559 574 635 | |
Symbol 494 MovieClip | Uses:493 | Used by:495 635 |
Symbol 495 MovieClip {Crate} | Uses:494 | Used by:635 |
Symbol 496 Bitmap {CrateBurnBitmap} | Used by:635 | |
Symbol 497 MovieClip | Uses:83 | Used by:500 635 |
Symbol 498 Graphic | Used by:500 | |
Symbol 499 Graphic | Used by:500 | |
Symbol 500 MovieClip {DragHandle} | Uses:497 498 499 | Used by:635 |
Symbol 501 MovieClip {DummyBody} | Used by:635 | |
Symbol 502 Bitmap {BrickBitmap} | Used by:604 635 | |
Symbol 503 Bitmap {MetalBitmap} | Used by:635 | |
Symbol 504 Graphic | Used by:505 | |
Symbol 505 MovieClip {BlueFlamePalette} | Uses:504 | Used by:635 |
Symbol 506 Graphic | Used by:507 | |
Symbol 507 MovieClip {FlamePalette} | Uses:506 | Used by:635 |
Symbol 508 Graphic | Used by:509 | |
Symbol 509 MovieClip {GreenFlamePalette} | Uses:508 | Used by:635 |
Symbol 510 Graphic | Used by:511 | |
Symbol 511 MovieClip {RedFlamePalette} | Uses:510 | Used by:635 |
Symbol 512 Graphic | Used by:513 | |
Symbol 513 MovieClip {TransparentBlueFlamePalette} | Uses:512 | Used by:635 |
Symbol 514 Graphic | Used by:515 | |
Symbol 515 MovieClip {TransparentGreenFlamePalette} | Uses:514 | Used by:635 |
Symbol 516 Graphic | Used by:517 | |
Symbol 517 MovieClip {TransparentRedFlamePalette} | Uses:516 | Used by:635 |
Symbol 518 Graphic | Used by:519 | |
Symbol 519 MovieClip {TitleFlamePalette} | Uses:518 | Used by:635 |
Symbol 520 Graphic | Used by:521 | |
Symbol 521 MovieClip {TransparentCreditFlamePalette} | Uses:520 | Used by:635 |
Symbol 522 Graphic | Used by:523 | |
Symbol 523 MovieClip | Uses:522 | Used by:635 |
Symbol 524 Graphic | Used by:525 | |
Symbol 525 MovieClip {ScrollTrack_disabledSkin} | Uses:524 | Used by:635 |
Symbol 526 Graphic | Used by:635 | |
Symbol 527 Graphic | Used by:530 | |
Symbol 528 Graphic | Used by:529 | |
Symbol 529 MovieClip | Uses:528 | Used by:530 532 534 536 538 540 542 544 546 548 550 |
Symbol 530 MovieClip {com.leveleditor.Pow1Cursor} | Uses:527 529 | Used by:635 |
Symbol 531 Graphic | Used by:532 | |
Symbol 532 MovieClip {com.leveleditor.Pow2Cursor} | Uses:531 529 | Used by:635 |
Symbol 533 Graphic | Used by:534 | |
Symbol 534 MovieClip {com.leveleditor.Pow3Cursor} | Uses:533 529 | Used by:635 |
Symbol 535 Graphic | Used by:536 | |
Symbol 536 MovieClip {com.leveleditor.Pow4Cursor} | Uses:535 529 | Used by:635 |
Symbol 537 Graphic | Used by:538 | |
Symbol 538 MovieClip {com.leveleditor.CrateCursor} | Uses:493 537 529 | Used by:635 |
Symbol 539 Graphic | Used by:540 | |
Symbol 540 MovieClip {com.leveleditor.LTCursor} | Uses:539 529 | Used by:635 |
Symbol 541 Graphic | Used by:542 | |
Symbol 542 MovieClip {com.leveleditor.RTCursor} | Uses:541 529 | Used by:635 |
Symbol 543 Graphic | Used by:544 | |
Symbol 544 MovieClip {com.leveleditor.CTCursor} | Uses:543 529 | Used by:635 |
Symbol 545 Graphic | Used by:546 | |
Symbol 546 MovieClip {com.leveleditor.CircCursor} | Uses:545 529 | Used by:635 |
Symbol 547 Graphic | Used by:548 | |
Symbol 548 MovieClip {com.leveleditor.RectCursor} | Uses:547 529 | Used by:635 |
Symbol 549 Graphic | Used by:550 | |
Symbol 550 MovieClip {com.leveleditor.PolyCursor} | Uses:549 529 | Used by:635 |
Symbol 551 Graphic | Used by:552 | |
Symbol 552 MovieClip {Pow2_Icon} | Uses:551 | Used by:635 |
Symbol 553 Graphic | Used by:554 | |
Symbol 554 MovieClip {Pow4_Icon} | Uses:553 | Used by:635 |
Symbol 555 Graphic | Used by:556 | |
Symbol 556 MovieClip {Pow3_Icon} | Uses:555 | Used by:635 |
Symbol 557 Graphic | Used by:558 | |
Symbol 558 MovieClip {Pow1_Icon} | Uses:557 | Used by:635 |
Symbol 559 MovieClip {Crate_Icon} | Uses:493 | Used by:635 |
Symbol 560 Graphic | Used by:561 | |
Symbol 561 MovieClip {Rect_Icon} | Uses:560 | Used by:635 |
Symbol 562 Graphic | Used by:563 | |
Symbol 563 MovieClip {Circ_Icon} | Uses:562 | Used by:635 |
Symbol 564 Graphic | Used by:565 | |
Symbol 565 MovieClip {Poly_Icon} | Uses:564 | Used by:635 |
Symbol 566 Graphic | Used by:567 | |
Symbol 567 MovieClip {LT_Icon} | Uses:566 | Used by:635 |
Symbol 568 Graphic | Used by:569 | |
Symbol 569 MovieClip {RT_Icon} | Uses:568 | Used by:635 |
Symbol 570 Graphic | Used by:571 | |
Symbol 571 MovieClip {Edit_Icon} | Uses:570 | Used by:635 |
Symbol 572 Graphic | Used by:573 | |
Symbol 573 MovieClip {CT_Icon} | Uses:572 | Used by:635 |
Symbol 574 MovieClip {com.leveleditor.CrateEditor} | Uses:493 | Used by:635 |
Symbol 575 Graphic | Used by:576 | |
Symbol 576 MovieClip {com.leveleditor.LTEditor} | Uses:575 | Used by:635 |
Symbol 577 Graphic | Used by:578 | |
Symbol 578 MovieClip {com.leveleditor.RTEditor} | Uses:577 | Used by:635 |
Symbol 579 Graphic | Used by:580 | |
Symbol 580 MovieClip {com.leveleditor.CTEditor} | Uses:579 | Used by:635 |
Symbol 581 Graphic | Used by:588 | |
Symbol 582 Text | Uses:36 | Used by:588 |
Symbol 583 Graphic | Used by:588 | |
Symbol 584 Text | Uses:36 | Used by:588 |
Symbol 585 Graphic | Used by:588 | |
Symbol 586 Text | Uses:36 | Used by:588 |
Symbol 587 Graphic | Used by:588 | |
Symbol 588 Button | Uses:581 582 583 584 585 586 587 | Used by:635 |
Symbol 589 Graphic | Used by:596 600 | |
Symbol 590 Text | Uses:36 | Used by:596 |
Symbol 591 Graphic | Used by:596 600 | |
Symbol 592 Text | Uses:36 | Used by:596 |
Symbol 593 Graphic | Used by:596 600 | |
Symbol 594 Text | Uses:36 | Used by:596 |
Symbol 595 Graphic | Used by:596 600 | |
Symbol 596 Button | Uses:589 590 591 592 593 594 595 | Used by:635 |
Symbol 597 Text | Uses:36 | Used by:600 |
Symbol 598 Text | Uses:36 | Used by:600 |
Symbol 599 Text | Uses:36 | Used by:600 |
Symbol 600 Button | Uses:589 597 591 598 593 599 595 | Used by:635 |
Symbol 601 MovieClip | Uses:83 | Used by:635 |
Symbol 602 Graphic | Used by:603 | |
Symbol 603 MovieClip | Uses:602 | Used by:635 |
Symbol 604 MovieClip | Uses:502 | Used by:635 |
Symbol 605 Sound {Crackle} | Used by:635 | |
Symbol 606 Sound {Flare} | Used by:635 | |
Symbol 607 Sound {Thock_0} | Used by:635 | |
Symbol 608 Sound {Thock_1} | Used by:635 | |
Symbol 609 Sound {Thunk_0} | Used by:635 | |
Symbol 610 Sound {Thunk_1} | Used by:635 | |
Symbol 611 Sound {Thunk_2} | Used by:635 | |
Symbol 612 Sound {Thunk_3} | Used by:635 | |
Symbol 613 Sound {Torch_0} | Used by:635 | |
Symbol 614 Sound {Torch_1} | Used by:635 | |
Symbol 615 Sound {Torch_2} | Used by:635 | |
Symbol 616 Sound {Torch_3} | Used by:635 | |
Symbol 617 Sound {Win} | Used by:635 | |
Symbol 618 Sound {Metal1} | Used by:635 | |
Symbol 619 Sound {Metal2} | Used by:635 | |
Symbol 620 Sound {Metal3} | Used by:635 | |
Symbol 621 Sound {Metal4} | Used by:635 | |
Symbol 622 Sound {Glass1} | Used by:635 | |
Symbol 623 Sound {Glass2} | Used by:635 | |
Symbol 624 Sound {Glass3} | Used by:635 | |
Symbol 625 Sound {Keyboard_Click_0} | Used by:635 | |
Symbol 626 Sound {Keyboard_Click_1} | Used by:635 | |
Symbol 627 Sound {Keyboard_Click_2} | Used by:635 | |
Symbol 628 Sound {Keyboard_Spacebar_0} | Used by:635 | |
Symbol 629 Sound {Keyboard_Spacebar_1} | Used by:635 | |
Symbol 630 Sound {Keyboard_Spacebar_2} | Used by:635 | |
Symbol 631 Sound {Humm} | Used by:635 | |
Symbol 632 Sound {Play_Click} | Used by:635 | |
Symbol 633 Sound {Play_Out} | Used by:635 | |
Symbol 634 Sound {Play_Over} | Used by:635 | |
Symbol 635 MovieClip {Pyro2_fla.AssetsHolder_20} | Uses:83 482 483 484 485 488 490 492 495 496 368 494 500 501 502 358 503 493 41 505 507 509 511 513 515 517 519 521 365 472 381 390 103 104 119 138 188 193 202 467 487 78 106 108 110 111 113 114 116 118 523 102 96 98 100 121 123 125 127 129 131 133 135 137 140 142 190 192 144 146 148 150 152 154 156 158 160 525 163 167 169 171 173 174 175 176 178 180 182 184 186 166 165 526 199 200 161 187 530 532 534 536 538 540 542 544 546 548 550 552 554 556 558 559 561 563 565 567 569 571 573 574 576 578 580 79 71 87 194 211 198 75 81 232 588 596 600 369 601 388 220 497 603 604 383 385 387 440 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 471 233 389 | Used by:Timeline |
Instance Names
"mochiClip" | Frame 1 | Symbol 2 MovieClip |
"loader" | Frame 2 | Symbol 44 MovieClip {screen.FlameLoaderScreen} |
"logo" | Symbol 35 MovieClip {Kong_Logo_Pyro} Frame 1 | Symbol 34 MovieClip {Kong_Logo} |
"logo" | Symbol 44 MovieClip {screen.FlameLoaderScreen} Frame 1 | Symbol 35 MovieClip {Kong_Logo_Pyro} |
"txt_status" | Symbol 44 MovieClip {screen.FlameLoaderScreen} Frame 1 | Symbol 37 EditableText |
"flameContainer" | Symbol 44 MovieClip {screen.FlameLoaderScreen} Frame 1 | Symbol 39 MovieClip |
"play_hitArea" | Symbol 44 MovieClip {screen.FlameLoaderScreen} Frame 1 | Symbol 43 MovieClip |
"background" | Symbol 79 MovieClip {com.leveleditor.SpawnerEditor} Frame 1 | Symbol 76 MovieClip {ButtonDisplay} |
"spawnHitArea" | Symbol 79 MovieClip {com.leveleditor.SpawnerEditor} Frame 1 | Symbol 78 MovieClip {ButtonHitArea} |
"_mask" | Symbol 85 MovieClip Frame 1 | Symbol 82 MovieClip |
"overlay" | Symbol 85 MovieClip Frame 1 | Symbol 84 MovieClip |
"_mask" | Symbol 86 MovieClip Frame 1 | Symbol 84 MovieClip |
"overlay" | Symbol 86 MovieClip Frame 1 | Symbol 84 MovieClip |
"editorHitArea" | Symbol 87 MovieClip {com.leveleditor.EditorDisplay} Frame 1 | Symbol 71 MovieClip {DisplayScreenHit} |
"gridBG" | Symbol 87 MovieClip {com.leveleditor.EditorDisplay} Frame 1 | Symbol 73 MovieClip |
"ballSpawner" | Symbol 87 MovieClip {com.leveleditor.EditorDisplay} Frame 1 | Symbol 79 MovieClip {com.leveleditor.SpawnerEditor} |
"brick" | Symbol 87 MovieClip {com.leveleditor.EditorDisplay} Frame 1 | Symbol 85 MovieClip |
"metal" | Symbol 87 MovieClip {com.leveleditor.EditorDisplay} Frame 1 | Symbol 86 MovieClip |
"glass" | Symbol 87 MovieClip {com.leveleditor.EditorDisplay} Frame 1 | Symbol 86 MovieClip |
"overlay" | Symbol 87 MovieClip {com.leveleditor.EditorDisplay} Frame 1 | Symbol 84 MovieClip |
"txt_torch" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 103 MovieClip {fl.controls.TextInput} |
"txt_life" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 103 MovieClip {fl.controls.TextInput} |
"__id0_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id1_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id2_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id3_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id4_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"txt_opt1" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 103 MovieClip {fl.controls.TextInput} |
"txt_opt2" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 103 MovieClip {fl.controls.TextInput} |
"__id5_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id6_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"txt_opt3" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 103 MovieClip {fl.controls.TextInput} |
"txt_opt4" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 103 MovieClip {fl.controls.TextInput} |
"label_opt3" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"label_opt4" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id7_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id8_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id9_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"__id10_" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"txt_name" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 103 MovieClip {fl.controls.TextInput} |
"check_longGuide" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 119 MovieClip {fl.controls.CheckBox} |
"btn_torchL" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_torchC" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_torchR" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_crate" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_rect" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_circ" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_edit" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_pow1" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_pow2" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_pow3" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_pow4" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_test" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_load" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_save" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"cb_Material" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 193 MovieClip {fl.controls.ComboBox} |
"btn_MainMenu" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"check_grid" | Symbol 194 MovieClip {com.leveleditor.EditorPanel} Frame 1 | Symbol 119 MovieClip {fl.controls.CheckBox} |
"btn_close" | Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} Frame 1 | Symbol 198 Button |
"txt_dialog" | Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} Frame 1 | Symbol 202 MovieClip {fl.controls.TextArea} |
"btn_OK" | Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"txt_title" | Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"txt_desc" | Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"btn_copy" | Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_submit" | Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"editor" | Symbol 204 MovieClip {screen.LevelEditorScreen} Frame 1 | Symbol 87 MovieClip {com.leveleditor.EditorDisplay} |
"editPanel" | Symbol 204 MovieClip {screen.LevelEditorScreen} Frame 1 | Symbol 194 MovieClip {com.leveleditor.EditorPanel} |
"dialog" | Symbol 204 MovieClip {screen.LevelEditorScreen} Frame 1 | Symbol 203 MovieClip {Pyro2_fla.DialogWindow_204} |
"time" | Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} Frame 1 | Symbol 206 EditableText |
"btn_Play" | Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_MainMenu" | Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Browse" | Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_SubmitInfo" | Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} Frame 1 | Symbol 211 Button |
"btn_Sponsor" | Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} Frame 1 | Symbol 215 Button |
"levelList" | Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} Frame 1 | Symbol 188 MovieClip {fl.controls.List} |
"aced" | Symbol 221 MovieClip {screen.PlayerLevelSelectorScreen} Frame 1 | Symbol 220 MovieClip |
"time" | Symbol 223 MovieClip {screen.LevelSelectorScreen} Frame 1 | Symbol 222 EditableText |
"btn_Play" | Symbol 223 MovieClip {screen.LevelSelectorScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_MainMenu" | Symbol 223 MovieClip {screen.LevelSelectorScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Sponsor" | Symbol 223 MovieClip {screen.LevelSelectorScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Guide" | Symbol 223 MovieClip {screen.LevelSelectorScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"levelList" | Symbol 223 MovieClip {screen.LevelSelectorScreen} Frame 1 | Symbol 188 MovieClip {fl.controls.List} |
"aced" | Symbol 223 MovieClip {screen.LevelSelectorScreen} Frame 1 | Symbol 220 MovieClip |
"btn_Skip" | Symbol 356 MovieClip {screen.DamijinIntroScreen} Frame 1 | Symbol 232 Button |
"flameMask" | Symbol 360 MovieClip Frame 1 | Symbol 358 MovieClip {TextMask} |
"agButton_btn" | Symbol 361 MovieClip Frame 1 | Symbol 215 Button |
"flameMask" | Symbol 365 MovieClip Frame 1 | Symbol 363 MovieClip {TitleTextMaskII} |
"flameMask" | Symbol 369 MovieClip Frame 1 | Symbol 368 MovieClip {NoiseGenerator} |
"maskedFlame" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 360 MovieClip |
"btn_Sponsor" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 361 MovieClip |
"btn_NewGame" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Editor" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Instruction" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Credits" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"maskedFlameII" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 365 MovieClip |
"btn_PlayerLevels" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"maskedBall1_L" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall2_L" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall3_L" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall4_L" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall5_L" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall1_R" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall2_R" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall3_R" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall4_R" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"maskedBall5_R" | Symbol 371 MovieClip {screen.MainMenuScreen} Frame 1 | Symbol 369 MovieClip |
"brick" | Symbol 372 MovieClip Frame 1 | Symbol 85 MovieClip |
"metal" | Symbol 372 MovieClip Frame 1 | Symbol 86 MovieClip |
"glass" | Symbol 372 MovieClip Frame 1 | Symbol 86 MovieClip |
"txt_Head" | Symbol 378 MovieClip {Pyro2_fla.Tip_194} Frame 1 | Symbol 375 EditableText |
"txt_Content" | Symbol 378 MovieClip {Pyro2_fla.Tip_194} Frame 1 | Symbol 376 EditableText |
"txt_Footer" | Symbol 378 MovieClip {Pyro2_fla.Tip_194} Frame 1 | Symbol 377 EditableText |
"btn_Guide" | Symbol 378 MovieClip {Pyro2_fla.Tip_194} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"level" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 92 MovieClip |
"btn_StopPreview" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Restart" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"label_life" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"label_torch" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"lifeText" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"percentText" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"txt_levelName" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 104 MovieClip {fl.controls.Label} |
"btn_Mute" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Suicide" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Sponsor" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Browse" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"tip" | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} Frame 1 | Symbol 378 MovieClip {Pyro2_fla.Tip_194} |
"btn_Retry" | Symbol 381 MovieClip {Pyro2_fla.LooseScreen_57} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_LevelSelect" | Symbol 381 MovieClip {Pyro2_fla.LooseScreen_57} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Sponsor" | Symbol 381 MovieClip {Pyro2_fla.LooseScreen_57} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"btn_Browse" | Symbol 381 MovieClip {Pyro2_fla.LooseScreen_57} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"text" | Symbol 385 MovieClip Frame 1 | Symbol 384 EditableText |
"unlockBackground" | Symbol 390 MovieClip {Pyro2_fla.AcedScreen_70} Frame 1 | Symbol 383 MovieClip |
"unlockText" | Symbol 390 MovieClip {Pyro2_fla.AcedScreen_70} Frame 1 | Symbol 385 MovieClip |
"ballSpawner" | Symbol 391 MovieClip {screen.GameLevelScreen} Frame 1 | Symbol 79 MovieClip {com.leveleditor.SpawnerEditor} |
"background" | Symbol 391 MovieClip {screen.GameLevelScreen} Frame 1 | Symbol 372 MovieClip |
"hud" | Symbol 391 MovieClip {screen.GameLevelScreen} Frame 1 | Symbol 379 MovieClip {Pyro2_fla.HUDPanel_193} |
"looseScreen" | Symbol 391 MovieClip {screen.GameLevelScreen} Frame 1 | Symbol 381 MovieClip {Pyro2_fla.LooseScreen_57} |
"acedScreen" | Symbol 391 MovieClip {screen.GameLevelScreen} Frame 1 | Symbol 390 MovieClip {Pyro2_fla.AcedScreen_70} |
"acedIcon" | Symbol 398 MovieClip {com.PyroCellRenderer} Frame 1 | Symbol 393 MovieClip |
"textField" | Symbol 398 MovieClip {com.PyroCellRenderer} Frame 1 | Symbol 395 EditableText |
"divider" | Symbol 398 MovieClip {com.PyroCellRenderer} Frame 1 | Symbol 397 MovieClip |
"btn_Back" | Symbol 414 MovieClip {Pyro2_fla.WinScroll_184} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"creditScroll" | Symbol 415 MovieClip {screen.WinScreen} Frame 1 | Symbol 414 MovieClip {Pyro2_fla.WinScroll_184} |
"btn_Kong" | Symbol 434 MovieClip Frame 1 | Symbol 419 Button |
"creditScroll" | Symbol 435 MovieClip {screen.CreditsScreen} Frame 1 | Symbol 434 MovieClip |
"btn_Back" | Symbol 435 MovieClip {screen.CreditsScreen} Frame 1 | Symbol 138 MovieClip {fl.controls.Button} |
"ballSpawner" | Symbol 440 MovieClip {screen.GameLevelSnapshot} Frame 1 | Symbol 438 MovieClip {PlayerSnap} |
"background" | Symbol 440 MovieClip {screen.GameLevelSnapshot} Frame 1 | Symbol 372 MovieClip |
"anim_text" | Symbol 468 MovieClip {Pyro2_fla.GregLogo_Screen_52} Frame 1 | Symbol 467 MovieClip {screen.GregIntroTypeEffect} |
"anim_text" | Symbol 472 MovieClip {screen.GregIntroScreen} Frame 1 | Symbol 468 MovieClip {Pyro2_fla.GregLogo_Screen_52} |
"btn_Skip" | Symbol 472 MovieClip {screen.GregIntroScreen} Frame 1 | Symbol 232 Button |
"powerUpHitArea" | Symbol 482 MovieClip {BounceUpZone} Frame 1 | Symbol 481 MovieClip {com.leveleditor.Pow2Editor} |
"powerUpHitArea" | Symbol 483 MovieClip {HalfSizeZone} Frame 1 | Symbol 479 MovieClip {com.leveleditor.Pow4Editor} |
"powerUpHitArea" | Symbol 484 MovieClip {LongLineZone} Frame 1 | Symbol 477 MovieClip {com.leveleditor.Pow3Editor} |
"powerUpHitArea" | Symbol 485 MovieClip {PlusOneZone} Frame 1 | Symbol 475 MovieClip {com.leveleditor.Pow1Editor} |
"torchHitArea" | Symbol 488 MovieClip {LTorch} Frame 1 | Symbol 487 MovieClip {TorchHitArea} |
"torchHitArea" | Symbol 490 MovieClip {RTorch} Frame 1 | Symbol 487 MovieClip {TorchHitArea} |
"torchHitArea" | Symbol 492 MovieClip {Torch} Frame 1 | Symbol 487 MovieClip {TorchHitArea} |
"dummy" | Symbol 495 MovieClip {Crate} Frame 1 | Symbol 494 MovieClip |
"gauge" | Symbol 500 MovieClip {DragHandle} Frame 1 | Symbol 497 MovieClip |
"disabledIcon" | Symbol 530 MovieClip {com.leveleditor.Pow1Cursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 532 MovieClip {com.leveleditor.Pow2Cursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 534 MovieClip {com.leveleditor.Pow3Cursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 536 MovieClip {com.leveleditor.Pow4Cursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 538 MovieClip {com.leveleditor.CrateCursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 540 MovieClip {com.leveleditor.LTCursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 542 MovieClip {com.leveleditor.RTCursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 544 MovieClip {com.leveleditor.CTCursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 546 MovieClip {com.leveleditor.CircCursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 548 MovieClip {com.leveleditor.RectCursor} Frame 1 | Symbol 529 MovieClip |
"disabledIcon" | Symbol 550 MovieClip {com.leveleditor.PolyCursor} Frame 1 | Symbol 529 MovieClip |
Special Tags
FileAttributes (69) | Timeline Frame 1 | Access local files only, Metadata not present, AS3. |
|