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

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

perfect-hoopz-2.swf

This is the info page for
Flash #114013

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


Text
0 %

0 / 3987 kB

beta 1.0

Failure

you need to make
3 hoopz to pass

CONTINUE

2

you HAVE 2 EXTRA LIVES LEFT

Failure

YOU HAVE NO MORE EXTRA LIVES

TRY AGAIN

Quit

SUBMIT SCORE

YOUR KING SCORE

65,095

KING GAME COMPLETED

EXTRA LIFES BONUS

TOTAL BONUS

SAFETY BALLS BONUS

30

30

99,999

99,999

99,999

Failure

you need to make
3 hoopz to pass

BACK

SUCESS !

HOOPZ

BIGGEST COMBO

TIME BONUS

LEVEL SCORE

PERSONAL BEST

NEXT LEVEL

3

1 x 2

0:34

9,999

9,999

9,999

SWISHES

0

9,999

19,999

9,999

TOTAL SCORE

9,999

NEW PERSONAL BEST

LEVEL 40

0:00

RESTART

Walkthrough

3

1

1

TIME OVER

SWISH

2 ComBO

3 COMBO

4 COMBO

5 COMBO
PERFECT !

1 extra
LIFE !

SAFETY SHOT
EARNED !

SAFETY SHOT
DON't MISS

6 COMBO
INCREDIBLE !

7 COMBO
AMAZING !

8 COMBO
NOT BAD !

9 COMBO
CRAZY !

10 COMBO
INSANE !

11 COMBO
NOT HUMAN !

12 COMBO
OUTSTANDING !

13 COMBO
HOOPZ GOD !

14 COMBO
STOP THAT !

15 COMBO
REALLY ?

16 COMBO
BORING ...

17 COMBO
cracking !

18 COMBO
astonishing !

19 COMBO
extraordinary !

20 COMBO
HALL OF FAME !

21 COMBO
superb !

22 COMBO
ALIEN !

23 COMBO
cracking !

24 COMBO
respectable !

25 COMBO
swell !

26 COMBO
Massive !

27 COMBO
immaculate !

28 COMBO
LeGENDARY !

music

SFX

best score for
this level :

19,999

CLICK ON A BALL
TO PREVIEW A LEVEL

30

SELECT A LEVEL

YOUR TOTAL SCORE

999,999

SUBMIT

HOW TO PLAY

MORE GAMES

NORMAL MODE

Play freely any unlocked level.

HOOPZ KING MODE

COMPLETE ALL LEVELS ONE AFTER THE OTHER WITHOUT FAILING.
5 EXTRA LIVES. NO RESTART. no TRY AGAIN.

TIME MODE

SHOOT AS MANY HOOPZ AS YOU CAN IN 30 SECONDS.
3 HOOPZ TO PASS.

CUSTOMIZE BALL

CUSTOMIZE YOUR BALL

OK

HOW TO PLAY

THROW BALL

1. PLACE YOUR BALL WITH THE MOUSE CURSOR

2. PRESS AND DRAG MOUSE TO SET
DIRECTION AND POWER

3. RELEASE MOUSE TO THROW

PRESS SPACEBAR TO CANCEL
direction and power (STEP 2)

spacebar

THE OBJECTIVE IS TO MAKE AT LEAST 3 HOOPZ TO PASS A LEVEL

HOOPZ KING MODE

The objective is to pass all levels one after the other WITHOUT FAILING.

IF YOU FAIL A LEVEL, YOU CAN USE
EXTRA LIVES TO CONTINUE

YOU NEED TO MAKE 3 HOOPZ TO PASS,
BUT IF YOU ONLY MAKE 2, YOU CAN TRY
ONE SAFETY BALL TO PASS THE LEVEL.

you EARN AN EXTRA LIFE
IF YOU MAKE 5 HOOPZ

you EARN A SAFETY BALL
IF YOU MAKE AT LEAST 4 HOOPZ

HOOPZ KING SCORE

84,245

YOUR NAME

YOUR NAME

SUBMITTING ...

Score submitted!

To view the scoreboards, please
use the links beneath the game.

ERROR!

YOUR SCORE WAS NOT SUBMITTED.
PLEASE TRY AGAIN.

YOUR SCORE

84,245

YOUR NAME

YOUR NAME

SUBMITTING ...

Score submitted!

To view the scoreboards, please
use the links beneath the game.

ERROR!

YOUR SCORE WAS NOT SUBMITTED.
PLEASE TRY AGAIN.

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.Shapes
Section 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.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 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.Shapes
Section 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.Shapes
Section 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.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 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 = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 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.Collision
Section 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.Collision
Section 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 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 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 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 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.Collision
Section 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.Collision
Section 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.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { import Box2D.Common.*; public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 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.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { import Box2D.Common.*; public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { import Box2D.Common.*; public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { import Box2D.Common.*; public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 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.Common
Section 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.Common
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Contacts
Section 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.Joints
Section 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.Joints
Section 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.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 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.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 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.Joints
Section 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.Joints
Section 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.Joints
Section 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 _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 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.Joints
Section 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.Joints
Section 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.Joints
Section 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.Joints
Section 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.Joints
Section 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.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function 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 GetPt():Point{ return (new Point((m_xf.position.x * 30), (m_xf.position.y * 30))); } 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.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:*; var _local4:*; var _local5:Number; var _local6:*; var _local7:b2FilterData; var _local8:b2Body; _local6 = _arg1.GetFilterData(); _local7 = _arg2.GetFilterData(); _local3 = _local6.groupIndex; _local4 = _local7.groupIndex; if ((((_local3 == 1)) || ((_local4 == 1)))){ if ((((_local3 == 3)) || ((_local4 == 3)))){ return (false); }; _local5 = -1; if ((_arg1.m_body.m_userData is BasketBall)){ _local8 = _arg1.m_body; _local5 = _local8.m_userData.index; }; if ((_arg2.m_body.m_userData is BasketBall)){ _local8 = _arg2.m_body; _local5 = _local8.m_userData.index; }; if ((((_local3 == 5)) || ((_local4 == 5)))){ g.Player.sensor1(_local5); return; }; if ((((_local3 == 6)) || ((_local4 == 6)))){ g.Player.sensor2(_local5); return; }; if ((((_local3 == 7)) || ((_local4 == 7)))){ g.Player.sensor3(_local5); return; }; return (true); }; if ((((((((_local3 == 2)) || ((_local4 == 2)))) || ((_local3 == 3)))) || ((_local4 == 3)))){ return (false); }; return (true); } } }//package Box2D.Dynamics
Section 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.Dynamics
Section 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_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; 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.Dynamics
Section 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.Dynamics
Section 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.Dynamics
Section 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.Dynamics
Section 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.Dynamics
Section 75
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var cpmstarLoader:Loader; private var contentspotid:String; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } private function addedHandler(_arg1:Event):void{ removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); var _local2 = "http://server.cpmstar.com/adviewas3.swf"; var _local3:DisplayObjectContainer = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } } }//package CPMStar
Section 76
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import fl.core.*; 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.controls
Section 77
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.core.*; 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.controls
Section 78
//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.controls
Section 79
//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.controls
Section 80
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import fl.core.*; import flash.text.*; import flash.events.*; import fl.managers.*; import fl.events.*; 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.controls
Section 81
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 82
//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.core
Section 83
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.text.*; import flash.events.*; import flash.utils.*; import fl.managers.*; import fl.events.*; 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.core
Section 84
//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.events
Section 85
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.controls.*; import flash.display.*; import fl.core.*; import flash.text.*; import flash.events.*; import flash.utils.*; 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.managers
Section 86
//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.managers
Section 87
//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.managers
Section 88
//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.managers
Section 89
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; 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.managers
Section 90
//gAnimation (gdk.game.gAnimation) package gdk.game { import gdk.game.*; class gAnimation { public var totaltime:Number; public var obj:Object; public var method:Function; public var time:Object; function gAnimation(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Function=null){ obj = _arg1; totaltime = _arg2; time = _arg3; method = _arg4; } } }//package gdk.game
Section 91
//gGame (gdk.game.gGame) package gdk.game { import flash.display.*; import flash.events.*; public class gGame extends Sprite { public var GamePaused:Boolean; public var GameAlive:Boolean; private var KEY4EVTUP:Array; private var ANIMATIONS:Array; private var EVT_TIMER:Number; private var EVT_QUEUE:Array; private var KEY4EVTDOWN:Array; private var KEY2TRACK:Array; public function gGame(){ EVT_TIMER = 0; EVT_QUEUE = []; ANIMATIONS = []; GameAlive = false; GamePaused = false; KEY2TRACK = []; KEY4EVTDOWN = []; KEY4EVTUP = []; stage.addEventListener(KeyboardEvent.KEY_DOWN, evtKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, evtKeyUp); addEventListener(Event.ENTER_FRAME, evtEnterFrame); } public function resumePlay(){ if (!GamePaused){ return; }; GamePaused = false; } public function cleanUp(_arg1:Object){ evt((10 * 24), cleanUp, this); } public function evtKeyUp(_arg1:KeyboardEvent){ var _local2:*; for (_local2 in KEY2TRACK) { if (KEY2TRACK[_local2].keycode == _arg1.keyCode){ KEY2TRACK[_local2].isdown = false; break; }; }; } public function evtEnterFrame(_arg1:Event){ var _local2:*; var _local3:Number; var _local4:Array; var _local5:gAnimation; if (!GameAlive){ return; }; if (GamePaused){ return; }; eventQueue(); if (ANIMATIONS.length > 0){ _local4 = []; for (_local2 in ANIMATIONS) { _local5 = ANIMATIONS[_local2]; _local5.time++; if (_local5.method == null){ _local5.obj.animate(_local5.time, _local5.totaltime); } else { _local5.method.call(_local5.obj, _local5.time, _local5.totaltime); }; if (_local5.time < _local5.totaltime){ _local4.push(_local5); }; }; ANIMATIONS = _local4; }; nextState(); } public function pausePlay(){ if (GamePaused){ return; }; GamePaused = true; } public function keyDownHandler(_arg1:uint, _arg2:Function, _arg3:Object, _arg4:Object=null){ KEY4EVTDOWN.push({keycode:_arg1, handler:_arg2, obj:_arg3, data:_arg4}); } public function keyUpHandler(_arg1:uint, _arg2:Function, _arg3:Object){ KEY4EVTUP.push({keycode:_arg1, handler:_arg2, obj:_arg3}); } public function animation(_arg1:Object, _arg2:Number, _arg3:Function=null){ ANIMATIONS.push(new gAnimation(_arg1, _arg2, 0, _arg3)); } public function trackKey(_arg1:uint){ KEY2TRACK.push({keycode:_arg1, isdown:false}); } public function isKeyDown(_arg1:uint):Boolean{ var _local2:Object; for each (_local2 in KEY2TRACK) { if ((((_local2.keycode == _arg1)) && (_local2.isdown))){ return (true); }; }; return (false); } protected function onDestroy(){ } public function ready(){ GameAlive = true; GamePaused = false; evt((10 * 24), cleanUp, this); } protected function nextState(){ } public function eventQueue(){ var _local1:gTimedEvent; var _local5:Number; var _local6:Array; EVT_TIMER++; var _local2:Number = 0; var _local3:Array = []; var _local4:Number = EVT_QUEUE.length; _local6 = []; _local5 = 0; while (_local5 < _local4) { _local1 = EVT_QUEUE[_local5]; if (!_local1.cancel){ if (EVT_TIMER >= _local1.t){ _local3.push(_local1); } else { _local6.push(_local1); }; }; _local5++; }; EVT_QUEUE = _local6; for (_local5 in _local3) { _local1 = _local3[_local5]; _local1.method.call(_local1.obj, _local1.data); }; } public function isOneKeyDown(_arg1:Array):Boolean{ var _local2:Object; var _local3:Number; for each (_local2 in KEY2TRACK) { for each (_local3 in _arg1) { if ((((_local2.keycode == _local3)) && (_local2.isdown))){ return (true); }; }; }; return (false); } public function evt(_arg1:Number, _arg2:Function, _arg3:Object=null, _arg4:Object=null){ var _local5:gTimedEvent = new gTimedEvent((EVT_TIMER + _arg1), _arg2, _arg3, _arg4, false); var _local6:Number = EVT_QUEUE.length; var _local7:* = 0; while (_local7 < _local6) { if (_local5.t < EVT_QUEUE[_local7].t){ EVT_QUEUE.splice(_local7, 0, _local5); return; }; _local7++; }; EVT_QUEUE.push(_local5); return (_local5); } public function destroy(){ GameAlive = false; EVT_QUEUE = []; KEY2TRACK = []; KEY4EVTDOWN = []; KEY4EVTUP = []; ANIMATIONS = []; onDestroy(); } public function evtKeyDown(_arg1:KeyboardEvent){ var _local2:*; for (_local2 in KEY2TRACK) { if (KEY2TRACK[_local2].keycode == _arg1.keyCode){ KEY2TRACK[_local2].isdown = true; break; }; }; for (_local2 in KEY4EVTDOWN) { if (KEY4EVTDOWN[_local2].keycode == _arg1.keyCode){ KEY4EVTDOWN[_local2].handler.call(KEY4EVTDOWN[_local2].obj, KEY4EVTDOWN[_local2].data); break; }; }; } } }//package gdk.game
Section 92
//gTimedEvent (gdk.game.gTimedEvent) package gdk.game { import gdk.game.*; class gTimedEvent { public var method:Function; public var t:Number; public var obj:Object; public var cancel:Boolean; public var data:Object; function gTimedEvent(_arg1:Number, _arg2:Function, _arg3:Object, _arg4:Object=null, _arg5:Boolean=false){ t = _arg1; method = _arg2; obj = _arg3; data = _arg4; cancel = _arg5; } } }//package gdk.game
Section 93
//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 (MochiServices.getVersion()); } 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{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, 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); }; 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{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, 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"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; 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 mc:MovieClip; 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 (!(clip is DisplayObject)){ trace("Warning: Object passed as container clip not a descendant of the DisplayObject type"); return (null); }; if (MovieClip(clip).stage == null){ trace("Warning: Container clip for ad is not attached to the stage"); return (null); }; 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; mc = 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; } else { trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal"); }; 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(); mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; 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{ trace("[MochiAds] Blocked URL"); }); if (!options.skip){ 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; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } 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{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }, progress_override:function (_arg1:Object):Number{ return (NaN); }, bar_offset:0}; 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; if (options.skip){ ad_timeout = 0; }; 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 + options.bar_offset); bar.y = (h - 20); }; var bar_w:Number = ((w - bar.x) - 10); 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(bar_w, 0); backing.lineTo(bar_w, 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(bar_w, 0); inside.lineTo(bar_w, 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(bar_w, 0); outline.lineTo(bar_w, 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 progress:Number = Math.min(1, options.progress_override(clip)); var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; if (!isNaN(progress)){ complete = (progress == 1); } else { 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{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local12: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; var _local7:Number = Math.min(1, options.progress_override(_local1)); if (_local7 == 1){ complete = true; }; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local8:Number = ((100 * _local6) / _local5); if (!isNaN(_local7)){ _local8 = (100 * _local7); }; var _local9:Number = ((100 * _local3) / chk.ad_msec); var _local10:Object = this._mochiad_bar._inside; var _local11:Number = Math.min(100, Math.min(((_local8) || (0)), _local9)); _local11 = Math.max(this.last_pcnt, _local11); this.last_pcnt = _local11; _local10.scaleX = (_local11 * 0.01); options.ad_progress(_local11); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local8}); if (_local8 >= 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local12 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local12 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local8 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (unloaded){ MochiAd.unload(_local1); } else { 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{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); 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.as3
Section 94
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; public static var _inventory:MochiInventory; public static function triggerEvent(_arg1:String, _arg2:Object):void{ MochiSocial.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.addEventListener(_arg1, _arg2); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _inventory = new MochiInventory(); }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 95
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function set value(_arg1:Number):void{ setValue(_arg1); } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function get value():Number{ return (Number(this.toString())); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 96
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3
Section 97
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function endPlay():void{ MochiServices.send("events_clearRoundID", null, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function trackEvent(_arg1:String, _arg2=null):void{ MochiServices.send("events_trackEvent", {tag:_arg1, value:_arg2}, null, null); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local4:Object; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startPlay(_arg1:String="gameplay"):void{ MochiServices.send("events_setRoundID", {tag:String(_arg1)}, null, null); } } }//package mochi.as3
Section 98
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _syncID:Number; private var _consumableProperties:Object; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(_arg1:Object):void{ if (!this[(_arg1.id + KEY_SALT)]){ this[(_arg1.id + KEY_SALT)] = 0; }; if (!this[_arg1.id]){ this[_arg1.id] = 0; }; this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count); this[_arg1.id] = (this[_arg1.id] + _arg1.count); if (_arg1.privateProperties.consumable){ if (!this[_arg1.privateProperties.tag]){ this[_arg1.privateProperties.tag] = 0; }; this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count)); }; } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[_arg1]){ return (MochiDigits(_consumableProperties[_arg1]).value); }; return (undefined); } private function loggedIn(_arg1:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[_arg1] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1)); } private function putConsumableBag(_arg1:MochiUserData):void{ _syncPending = false; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(_arg2 is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2}); return; }; if (_consumableProperties[_arg1]){ _local3 = MochiDigits(_consumableProperties[_arg1]); if (_local3.value == _arg2){ return; }; _local3.value = _arg2; } else { _names.push(_arg1); _consumableProperties[_arg1] = new MochiDigits(_arg2); }; _syncID++; } private function itemOwned(_arg1:Object):void{ _storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count}; } private function sync(_arg1:Event=null):void{ var _local3:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; var _local2:Object = {}; for (_local3 in _consumableProperties) { _local2[_local3] = MochiDigits(_consumableProperties[_local3]).value; }; MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return (_names[(_arg1 - 1)]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{ if (!_consumableProperties[_arg1]){ return (false); }; _names.splice(_names.indexOf(_arg1), 1); delete _consumableProperties[_arg1]; return (true); } private function getConsumableBag(_arg1:MochiUserData):void{ var _local2:String; var _local3:Number; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); return; }; _consumableProperties = {}; _names = new Array(); if (_arg1.data){ for (_local2 in _arg1.data) { _names.push(_local2); _consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]); }; }; for (_local2 in _storeSync) { _local3 = _storeSync[_local2].count; if (_consumableProperties[(_local2 + KEY_SALT)]){ _local3 = (_local3 - _consumableProperties[_local2]); }; if (_local3 == 0){ } else { newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(_arg1:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 99
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; var _local2:Object = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(_arg1) != _arg1){ trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated")); }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 100
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _queue:Array; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _nextCallbackID:Number; private static var _clip:MovieClip; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _loader:Loader; private static var _callbacks:Object; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(_arg1:Object):void{ var methodName:String; var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = _callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete _callbacks[cb]; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _queue.push({methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); }; if (_clip != null){ if (_callbacks != null){ _callbacks[_nextCallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _nextCallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.8 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } public static function warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_queue))){ while (_queue.length > 0) { _local2 = _queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _callbacks[_local2.callbackID]; }; delete _callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "sync": servicesSync.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function urlOptions(_arg1:Object):Object{ var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_clip.parent){ _clip.parent.removeChild(_clip); }; if (_arg1 != null){ if ((_arg1 is DisplayObjectContainer)){ _container = _arg1; }; }; if (_arg2){ if ((_container is DisplayObjectContainer)){ DisplayObjectContainer(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift()); }; }; } private static function loadLCBridge(_arg1:Object):void{ var loader:Loader; var clip = _arg1; loader = new Loader(); var mochiLCURL:String = (_servURL + _mochiLC); var req:URLRequest = new URLRequest(mochiLCURL); var complete:Function = function (_arg1:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; var _local3:String = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local3 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local3); _clip = new MovieClip(); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var _local4:URLRequest = new URLRequest(_local3); var _local5:URLVariables = new URLVariables(); _local5.listenLC = _listenChannelName; _local5.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local5.api_version = getVersion(); if (widget){ _local5.widget = true; }; _local4.data = _local5; _loader.load(_local4); _clip.addChild(_loader); _sendChannel = new LocalConnection(); _queue = []; _nextCallbackID = 0; _callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function updateCopy(_arg1:Object):void{ MochiServices.send("coins_updateCopy", _arg1, null, null); } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 101
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_SHOWN:String = "LoginShown"; public static const LOGIN_HIDE:String = "LoginHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _user_info:Object = null; public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function requestLogin():void{ MochiServices.send("coins_requestLogin"); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _user_info = _arg1; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 102
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ _syncContainer = {}; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ if (_syncContainer[_arg1] == _arg2){ return; }; var _local3:String = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } } }//package mochi.as3
Section 103
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var operation:String;// = null public var error:Event;// = null public var data;// = null public var _loader:URLLoader; public var key:String;// = null public function MochiUserData(_arg1:String="", _arg2:Function=null){ this.key = _arg1; this.callback = _arg2; } public function serialize(_arg1):ByteArray{ var _local2:ByteArray = new ByteArray(); _local2.objectEncoding = ObjectEncoding.AMF3; _local2.writeObject(_arg1); _local2.compress(); return (_local2); } public function errorHandler(_arg1:IOErrorEvent):void{ data = null; error = _arg1; if (callback != null){ performCallback(); } else { dispatchEvent(_arg1); }; close(); } public function putEvent(_arg1):void{ request("put", serialize(_arg1)); } public function deserialize(_arg1:ByteArray){ _arg1.objectEncoding = ObjectEncoding.AMF3; _arg1.uncompress(); return (_arg1.readObject()); } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString()))); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function performCallback():void{ try { callback(this); } catch(e:Error) { trace(("[MochiUserData] exception during callback: " + e)); }; } public function request(_arg1:String, _arg2:ByteArray):void{ var _operation = _arg1; var _data = _arg2; operation = _operation; var api_url:String = MochiSocial.getAPIURL(); var api_token:String = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); var args:URLVariables = new URLVariables(); args.op = _operation; args.key = key; var req:URLRequest = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); try { _loader.load(req); } catch(e:SecurityError) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString()))); }; } public function completeHandler(_arg1:Event):void{ var event = _arg1; try { if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; } catch(e:Error) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString()))); return; }; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public static function get(_arg1:String, _arg2:Function):void{ var _local3:MochiUserData = new MochiUserData(_arg1, _arg2); _local3.getEvent(); } public static function put(_arg1:String, _arg2, _arg3:Function):void{ var _local4:MochiUserData = new MochiUserData(_arg1, _arg3); _local4.putEvent(_arg2); } } }//package mochi.as3
Section 104
//ball_187 (perfecthoopz2_fla.ball_187) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class ball_187 extends MovieClip { public var ball_mc:MovieClip; public function ball_187(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz2_fla
Section 105
//BallLayer_24 (perfecthoopz2_fla.BallLayer_24) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class BallLayer_24 extends MovieClip { public function BallLayer_24(){ addFrameScript(0, frame1); } function frame1(){ stop(); g.BallLayer = this; } } }//package perfecthoopz2_fla
Section 106
//balllevel_163 (perfecthoopz2_fla.balllevel_163) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class balllevel_163 extends MovieClip { public var Level:Number; public var lock_mc:MovieClip; public var level_txt:TextField; public var ball_mc:MovieClip; public var ball_btn:SimpleButton; public function balllevel_163(){ addFrameScript(0, frame1); } public function setLevel(_arg1:Number, _arg2:Boolean){ Level = _arg1; level_txt.text = Level; lock_mc.visible = !(_arg2); } function frame1(){ stop(); ball_mc.stop(); level_txt.antiAliasType = "advanced"; level_txt.embedFonts = true; level_txt.setTextFormat(fonts.Button1); level_txt.defaultTextFormat = fonts.Button1; ball_btn.tabEnabled = false; ball_btn.addEventListener("click", btnBall); ball_btn.addEventListener("mouseOver", overBall); ball_btn.addEventListener("mouseOut", outBall); } public function outBall(_arg1:Object=null){ ui.LevelSelect.out(Level); } public function overBall(_arg1:Object=null){ ui.LevelSelect.over(Level); } public function btnBall(_arg1:Object=null){ ui.LevelSelect.clicked(Level); } } }//package perfecthoopz2_fla
Section 107
//balls_188 (perfecthoopz2_fla.balls_188) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class balls_188 extends MovieClip { public function balls_188(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz2_fla
Section 108
//bar_8 (perfecthoopz2_fla.bar_8) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class bar_8 extends MovieClip { public function bar_8(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz2_fla
Section 109
//checkmark_131 (perfecthoopz2_fla.checkmark_131) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class checkmark_131 extends MovieClip { public function checkmark_131(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package perfecthoopz2_fla
Section 110
//crossmark_109 (perfecthoopz2_fla.crossmark_109) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class crossmark_109 extends MovieClip { public function crossmark_109(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package perfecthoopz2_fla
Section 111
//defaultA_162 (perfecthoopz2_fla.defaultA_162) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class defaultA_162 extends MovieClip { public var label_txt:TextField; public function defaultA_162(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz2_fla
Section 112
//defaultsplashqigames_93 (perfecthoopz2_fla.defaultsplashqigames_93) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class defaultsplashqigames_93 extends MovieClip { public var splash_btn:SimpleButton; public function defaultsplashqigames_93(){ addFrameScript(0, frame1, 149, frame150); } public function btnSplash(_arg1:Object=null){ var e = _arg1; try { navigateToURL(url.DEV_SPLASH, "_blank"); } catch(err:Error) { }; } function frame1(){ splash_btn.addEventListener("click", btnSplash); splash_btn.tabEnabled = false; } function frame150(){ stop(); } } }//package perfecthoopz2_fla
Section 113
//demoshade_168 (perfecthoopz2_fla.demoshade_168) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class demoshade_168 extends MovieClip { public function demoshade_168(){ addFrameScript(20, frame21); } function frame21(){ stop(); } } }//package perfecthoopz2_fla
Section 114
//failure_122 (perfecthoopz2_fla.failure_122) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class failure_122 extends MovieClip { public var tryagain_btn:SimpleButton; public var continue_btn:SimpleButton; public var back_btn:SimpleButton; public var label1_txt:TextField; public var lbl:TextField; public var caption_txt:TextField; public var Labels:Array; public function failure_122(){ addFrameScript(0, frame1, 19, frame20); } public function btnTryAgain(_arg1:Object=null){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "tryagain"; _local2.play(); } public function btnBack(_arg1:Object=null){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "back"; _local2.play(); } function frame1(){ Labels = []; Labels.push(caption_txt); Labels.push(label1_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; continue_btn.tabEnabled = false; tryagain_btn.tabEnabled = false; back_btn.tabEnabled = false; tryagain_btn.addEventListener("click", btnTryAgain); back_btn.addEventListener("click", btnBack); continue_btn.addEventListener("click", btnContinue); } public function btnContinue(_arg1:Object=null){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "kingscore"; _local2.play(); } public function init(){ gotoAndPlay(1); if (g.KingMode){ continue_btn.visible = true; continue_btn.enabled = true; tryagain_btn.visible = false; tryagain_btn.enabled = false; back_btn.visible = false; back_btn.enabled = false; } else { continue_btn.visible = false; continue_btn.enabled = false; tryagain_btn.visible = true; tryagain_btn.enabled = true; back_btn.visible = true; back_btn.enabled = true; }; } function frame20(){ stop(); } } }//package perfecthoopz2_fla
Section 115
//FreeScoreMochi_204 (perfecthoopz2_fla.FreeScoreMochi_204) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import mochi.as3.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class FreeScoreMochi_204 extends MovieClip { public var submit_btn:SimpleButton; public var lbl:TextField; public var name_txt:TextField; public var Labels:Array; public function FreeScoreMochi_204(){ addFrameScript(0, frame1); } public function done(_arg1:Object=null){ } function frame1(){ Labels = []; Labels.push(name_txt); name_txt.maxChars = 25; for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; submit_btn.tabEnabled = false; submit_btn.addEventListener("click", btnSubmit); } public function btnSubmit(_arg1:Object=null){ var pscore:Number; var pname:String; var e = _arg1; Juke.Box.btnClick(); pscore = g.Player.totalScore(); pname = name_txt.text; var o:Object = {n:[8, 4, 0, 4, 9, 5, 13, 12, 9, 8, 5, 14, 7, 14, 7, 10], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:pscore, name:pname, onClose:done, onError:done}); } } }//package perfecthoopz2_fla
Section 116
//FreeScoreMouseBreaker_205 (perfecthoopz2_fla.FreeScoreMouseBreaker_205) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class FreeScoreMouseBreaker_205 extends MovieClip { public var caption_txt:TextField; public var Labels:Array; public var label5_txt:TextField; public var label6_txt:TextField; public var submit_btn:SimpleButton; public var lbl:TextField; public var info_txt:TextField; public var name_txt:TextField; public function FreeScoreMouseBreaker_205(){ addFrameScript(0, frame1, 9, frame10, 69, frame70, 79, frame80, 129, frame130); } function frame130(){ gotoAndStop(1); } function frame70(){ stop(); caption_txt.antiAliasType = "advanced"; caption_txt.embedFonts = true; caption_txt.setTextFormat(fonts.Button1); caption_txt.defaultTextFormat = fonts.Button1; info_txt.antiAliasType = "advanced"; info_txt.embedFonts = true; info_txt.setTextFormat(fonts.Button1); info_txt.defaultTextFormat = fonts.Button1; } function frame10(){ caption_txt.antiAliasType = "advanced"; caption_txt.embedFonts = true; caption_txt.setTextFormat(fonts.Button1); caption_txt.defaultTextFormat = fonts.Button1; } public function btnSubmit(_arg1:Object=null){ var pscore:Number; var pname:String; var uloader:URLLoader; var e = _arg1; Juke.Box.btnClick(); pscore = g.Player.totalScore(); pname = name_txt.text; var VARS:* = new URLVariables(); VARS.score = pscore; VARS.username = pname; var REQ:* = new URLRequest(("http://www.mousebreaker.com/games/perfecthoopz/highscores_perfecthoopz.php?" + int((Math.random() * 100000)))); REQ.data = VARS; REQ.method = "POST"; uloader = new URLLoader(); uloader.dataFormat = "variables"; uloader.addEventListener("complete", evtCompleted); uloader.addEventListener("securityError", evtError); uloader.addEventListener("ioError", evtError); try { gotoAndPlay(10); uloader.load(REQ); } catch(err:Error) { evtError(); }; } function frame80(){ label5_txt.antiAliasType = "advanced"; label5_txt.embedFonts = true; label5_txt.setTextFormat(fonts.Button1); label5_txt.defaultTextFormat = fonts.Button1; label6_txt.antiAliasType = "advanced"; label6_txt.embedFonts = true; label6_txt.setTextFormat(fonts.Button1); label6_txt.defaultTextFormat = fonts.Button1; } public function evtCompleted(_arg1:Object=null){ trace("evtCompleted"); gotoAndStop(70); } function frame1(){ stop(); Labels = []; Labels.push(name_txt); name_txt.maxChars = 25; for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; submit_btn.tabEnabled = false; Security.allowDomain("*"); Security.allowInsecureDomain("*"); submit_btn.addEventListener("click", btnSubmit); } public function evtError(_arg1:Object=null){ trace("evtError"); gotoAndPlay(80); } } }//package perfecthoopz2_fla
Section 117
//gamecontainer_99 (perfecthoopz2_fla.gamecontainer_99) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class gamecontainer_99 extends MovieClip { public function gamecontainer_99(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz2_fla
Section 118
//gamemenu_96 (perfecthoopz2_fla.gamemenu_96) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class gamemenu_96 extends MovieClip { public var help_mc:MovieClip; public var gamecontainer:MovieClip; public function gamemenu_96(){ addFrameScript(0, frame1, 1, frame2, 9, frame10, 19, frame20, 29, frame30, 39, frame40, 49, frame50, 59, frame60); } function frame50(){ stop(); ui.LevelSelect.init(); Juke.Box.seleScore(); } public function gotoMenu(){ gotoAndStop("menu"); } public function gotoFreeScore(){ gotoAndStop(40); } public function gotoHelp(){ gotoAndStop("help"); } function frame2(){ stop(); Mouse.show(); try { System.gc(); } catch(e:Error) { }; try { new LocalConnection().connect("foo"); new LocalConnection().connect("foo"); } catch(e) { }; Juke.Box.menuScore(); } public function restart(){ gotoAndPlay(59); } public function gotoSelection(){ gotoAndStop("selection"); } public function gotoLoadGame(){ gotoAndStop("load game"); } function frame1(){ ui.GameMenu = this; Mouse.show(); } function frame10(){ stop(); Mouse.show(); g.FirstHelp = false; help_mc.activate(backFromInstructions, this); } function frame60(){ stop(); } public function gotoNewGame(){ gotoAndStop("new game"); } function frame40(){ stop(); Mouse.show(); } function frame30(){ stop(); Mouse.show(); Juke.Box.seleScore(); } function frame20(){ stop(); Mouse.show(); } public function gotoPlay(){ gotoAndStop("play"); } public function gotoKingScore(){ gotoAndStop(30); } public function gotoKingHelp(){ gotoAndStop(20); } public function backFromInstructions(){ if (g.FromFirstHelp){ if (g.KingMode){ if (g.KingHelp){ g.KingHelp = false; ui.GameMenu.gotoKingHelp(); } else { ui.GameMenu.gotoPlay(); }; } else { ui.GameMenu.gotoSelection(); }; } else { gotoMenu(); }; } } }//package perfecthoopz2_fla
Section 119
//howtosimulation_194 (perfecthoopz2_fla.howtosimulation_194) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class howtosimulation_194 extends MovieClip { public var mouse_mc:MovieClip; public var indicator_mc:MovieClip; public var ball_mc:MovieClip; public function howtosimulation_194(){ addFrameScript(0, frame1); } function frame1(){ } public function nextState(){ if ((((currentFrame > 66)) && ((currentFrame < 109)))){ indicator_mc.visible = true; indicator_mc.update(ball_mc, mouse_mc); } else { indicator_mc.visible = false; }; } } }//package perfecthoopz2_fla
Section 120
//kingbonus_119 (perfecthoopz2_fla.kingbonus_119) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class kingbonus_119 extends MovieClip { public var score2_txt:TextField; public var score3_txt:TextField; public var caption_txt:TextField; public var Labels:Array; public var score1_txt:TextField; public var qty1_txt:TextField; public var qty2_txt:TextField; public var label1_txt:TextField; public var label2_txt:TextField; public var label3_txt:TextField; public var lbl:TextField; public function kingbonus_119(){ addFrameScript(0, frame1); } public function init(){ var _local1:*; var _local2:Number; _local2 = 0; qty1_txt.text = g.cGame.Lives; _local1 = (g.cGame.Lives * 5000); score1_txt.text = numbers.format(_local1); _local2 = (_local2 + _local1); qty2_txt.text = g.cGame.Safeties; _local1 = (g.cGame.Safeties * 2000); score2_txt.text = numbers.format(_local1); _local2 = (_local2 + _local1); score3_txt.text = numbers.format(_local2); g.cGame.KingBonus = _local2; } function frame1(){ stop(); Labels = []; Labels.push(caption_txt); Labels.push(label1_txt); Labels.push(label2_txt); Labels.push(label3_txt); Labels.push(qty1_txt); Labels.push(qty2_txt); Labels.push(score1_txt); Labels.push(score2_txt); Labels.push(score3_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; } } }//package perfecthoopz2_fla
Section 121
//kingfailure_111 (perfecthoopz2_fla.kingfailure_111) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class kingfailure_111 extends MovieClip { public var score_txt:TextField; public var caption_txt:TextField; public var Labels:Array; public var tryagain_btn:SimpleButton; public var quit_btn:SimpleButton; public var label1_txt:TextField; public var label2_txt:TextField; public var submit_btn:SimpleButton; public var lbl:TextField; public function kingfailure_111(){ addFrameScript(0, frame1, 19, frame20); } public function btnQuit(_arg1:Object=null){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "quit"; _local2.play(); } public function init(){ gotoAndPlay(1); score_txt.text = numbers.format(g.Player.totalScore()); } public function btnSubmit(_arg1:Object=null){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "kingscore"; _local2.play(); } public function btnTryAgain(_arg1:Object=null){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "tryagain"; _local2.play(); } function frame1(){ Labels = []; Labels.push(caption_txt); Labels.push(label1_txt); Labels.push(label2_txt); Labels.push(score_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; submit_btn.tabEnabled = false; tryagain_btn.tabEnabled = false; quit_btn.tabEnabled = false; tryagain_btn.addEventListener("click", btnTryAgain); quit_btn.addEventListener("click", btnQuit); submit_btn.addEventListener("click", btnSubmit); } function frame20(){ stop(); } } }//package perfecthoopz2_fla
Section 122
//kinglives_104 (perfecthoopz2_fla.kinglives_104) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class kinglives_104 extends MovieClip { public var continue_btn:SimpleButton; public var label2_txt:TextField; public var label1_txt:TextField; public var lbl:TextField; public var caption_txt:TextField; public var lives_txt:TextField; public var Labels:Array; public function kinglives_104(){ addFrameScript(0, frame1, 19, frame20); } public function btnContinue(_arg1:Object=null){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "continue"; _local2.play(); } function frame1(){ Labels = []; Labels.push(caption_txt); Labels.push(label1_txt); Labels.push(label2_txt); Labels.push(lives_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; continue_btn.tabEnabled = false; continue_btn.addEventListener("click", btnContinue); } public function init(){ gotoAndPlay(1); lives_txt.text = g.cGame.Lives; if (g.cGame.Lives > 1){ label2_txt.text = (("YOU HAVE " + g.cGame.Lives) + " EXTRA LIVES LEFT"); } else { if (g.cGame.Lives > 0){ label2_txt.text = (("YOU HAVE " + g.cGame.Lives) + " EXTRA LIFE LEFT"); } else { label2_txt.text = "NO MORE EXTRA LIVES.\n LAST CHANCE!"; }; }; } function frame20(){ stop(); } } }//package perfecthoopz2_fla
Section 123
//KingScoreMochi_201 (perfecthoopz2_fla.KingScoreMochi_201) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import mochi.as3.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class KingScoreMochi_201 extends MovieClip { public var submit_btn:SimpleButton; public var lbl:TextField; public var name_txt:TextField; public var Labels:Array; public function KingScoreMochi_201(){ addFrameScript(0, frame1); } public function done(_arg1:Object=null){ } function frame1(){ Labels = []; Labels.push(name_txt); name_txt.maxChars = 25; for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; submit_btn.tabEnabled = false; submit_btn.addEventListener("click", btnSubmit); } public function btnSubmit(_arg1:Object=null){ var pscore:Number; var pname:String; var e = _arg1; Juke.Box.btnClick(); pscore = g.Player.totalScore(); pname = name_txt.text; var o:Object = {n:[10, 2, 9, 12, 13, 5, 10, 7, 2, 9, 7, 6, 7, 9, 14, 6], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, ""); MochiScores.showLeaderboard({boardID:boardID, score:pscore, name:pname, onClose:done, onError:done}); } } }//package perfecthoopz2_fla
Section 124
//KingScoreMouseBreaker_202 (perfecthoopz2_fla.KingScoreMouseBreaker_202) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class KingScoreMouseBreaker_202 extends MovieClip { public var caption_txt:TextField; public var Labels:Array; public var label5_txt:TextField; public var label6_txt:TextField; public var submit_btn:SimpleButton; public var lbl:TextField; public var info_txt:TextField; public var name_txt:TextField; public function KingScoreMouseBreaker_202(){ addFrameScript(0, frame1, 9, frame10, 69, frame70, 79, frame80, 129, frame130); } function frame130(){ gotoAndStop(1); } function frame70(){ stop(); caption_txt.antiAliasType = "advanced"; caption_txt.embedFonts = true; caption_txt.setTextFormat(fonts.Button1); caption_txt.defaultTextFormat = fonts.Button1; info_txt.antiAliasType = "advanced"; info_txt.embedFonts = true; info_txt.setTextFormat(fonts.Button1); info_txt.defaultTextFormat = fonts.Button1; } function frame10(){ caption_txt.antiAliasType = "advanced"; caption_txt.embedFonts = true; caption_txt.setTextFormat(fonts.Button1); caption_txt.defaultTextFormat = fonts.Button1; } public function btnSubmit(_arg1:Object=null){ var pscore:Number; var pname:String; var uloader:URLLoader; var e = _arg1; Juke.Box.btnClick(); pscore = g.Player.totalScore(); pname = name_txt.text; var VARS:* = new URLVariables(); VARS.score = pscore; VARS.username = pname; var REQ:* = new URLRequest(("http://www.mousebreaker.com/games/perfecthoopzking/highscores_perfecthoopzking.php?" + int((Math.random() * 100000)))); REQ.data = VARS; REQ.method = "POST"; uloader = new URLLoader(); uloader.dataFormat = "variables"; uloader.addEventListener("complete", evtCompleted); uloader.addEventListener("securityError", evtError); uloader.addEventListener("ioError", evtError); try { gotoAndPlay(10); uloader.load(REQ); } catch(err:Error) { evtError(); }; } function frame80(){ label5_txt.antiAliasType = "advanced"; label5_txt.embedFonts = true; label5_txt.setTextFormat(fonts.Button1); label5_txt.defaultTextFormat = fonts.Button1; label6_txt.antiAliasType = "advanced"; label6_txt.embedFonts = true; label6_txt.setTextFormat(fonts.Button1); label6_txt.defaultTextFormat = fonts.Button1; } public function evtCompleted(_arg1:Object=null){ trace("evtCompleted"); gotoAndStop(70); } function frame1(){ stop(); Labels = []; Labels.push(name_txt); name_txt.maxChars = 25; for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; submit_btn.tabEnabled = false; Security.allowDomain("*"); Security.allowInsecureDomain("*"); submit_btn.addEventListener("click", btnSubmit); } public function evtError(_arg1:Object=null){ trace("evtError"); gotoAndPlay(80); } } }//package perfecthoopz2_fla
Section 125
//loading_206 (perfecthoopz2_fla.loading_206) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class loading_206 extends MovieClip { public function loading_206(){ addFrameScript(0, frame1, 1, frame2, 10, frame11, 12, frame13, 14, frame15); } function frame15(){ stop(); } function frame1(){ glo.bal.GameLoader = this; ui.Header.visible = false; } function frame2(){ g.Game.reset(); stage.frameRate = 30; } function frame11(){ g.Game.init(); } function frame13(){ g.Player.init(); g.Net.init(); g.Interface.init(); g.Game.ready(); ui.Header.visible = true; } } }//package perfecthoopz2_fla
Section 126
//medal_130 (perfecthoopz2_fla.medal_130) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class medal_130 extends MovieClip { public function medal_130(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz2_fla
Section 127
//menu_169 (perfecthoopz2_fla.menu_169) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class menu_169 extends MovieClip { public var free_btn:SimpleButton; public var custom_btn:SimpleButton; public var ball_mc:MovieClip; public var crown_mc:MovieClip; public var help_btn:SimpleButton; public var hand_mc:MovieClip; public var time_btn:SimpleButton; public var more_btn:SimpleButton; public var king_btn:SimpleButton; public var dev_btn:SimpleButton; public function menu_169(){ addFrameScript(0, frame1); } public function btnTime(_arg1:Object=null){ g.Sim.destroy(); Juke.Box.btnClick(); g.KingMode = false; g.TimeMode = true; g.cGame = g.Games[1]; if (g.FirstHelp){ g.FromFirstHelp = true; ui.GameMenu.gotoHelp(); } else { ui.GameMenu.gotoSelection(); }; } public function btnKing(_arg1:Object=null){ g.Sim.destroy(); Juke.Box.btnClick(); g.KingMode = true; g.TimeMode = false; ui.LevelSelect.Index = 1; g.cGame = new GameData("player1"); if (g.FirstHelp){ g.FromFirstHelp = true; ui.GameMenu.gotoHelp(); } else { if (g.KingHelp){ g.KingHelp = false; ui.GameMenu.gotoKingHelp(); } else { ui.GameMenu.gotoPlay(); }; }; } public function doneCustomize(){ gotoAndStop(1); } public function btnCustom(_arg1:Event){ Juke.Box.btnClick(); gotoAndStop(2); } public function btnFree(_arg1:Object=null){ g.Sim.destroy(); Juke.Box.btnClick(); g.KingMode = false; g.TimeMode = false; g.cGame = g.Games[0]; if (g.FirstHelp){ g.FromFirstHelp = true; ui.GameMenu.gotoHelp(); } else { ui.GameMenu.gotoSelection(); }; } function frame1(){ stop(); free_btn.tabEnabled = false; king_btn.tabEnabled = false; time_btn.tabEnabled = false; help_btn.tabEnabled = false; dev_btn.tabEnabled = false; more_btn.tabEnabled = false; free_btn.addEventListener("click", btnFree); king_btn.addEventListener("click", btnKing); time_btn.addEventListener("click", btnTime); help_btn.addEventListener("click", btnHelp); custom_btn.addEventListener("click", btnCustom); more_btn.addEventListener("click", btnMG); } public function btnMG(_arg1:Object=null){ } public function btnHelp(_arg1:Event){ g.Sim.destroy(); Juke.Box.btnClick(); ui.GameMenu.gotoHelp(); } } }//package perfecthoopz2_fla
Section 128
//menubackground_4 (perfecthoopz2_fla.menubackground_4) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class menubackground_4 extends MovieClip { public function menubackground_4(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz2_fla
Section 129
//newbest_129 (perfecthoopz2_fla.newbest_129) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class newbest_129 extends MovieClip { public var label_txt:TextField; public function newbest_129(){ addFrameScript(0, frame1); } function frame1(){ stop(); label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label_txt.defaultTextFormat = fonts.Button1; } } }//package perfecthoopz2_fla
Section 130
//shot_134 (perfecthoopz2_fla.shot_134) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class shot_134 extends MovieClip { public function shot_134(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz2_fla
Section 131
//soundcontrol_145 (perfecthoopz2_fla.soundcontrol_145) package perfecthoopz2_fla { import fl.controls.*; import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class soundcontrol_145 extends MovieClip { public var sfx_chk:CheckBox; public var label1_txt:TextField; public var label2_txt:TextField; public var music_chk:CheckBox; public function soundcontrol_145(){ addFrameScript(0, frame1); } function frame1(){ stop(); ui.SoundControl = this; label1_txt.antiAliasType = "advanced"; label1_txt.embedFonts = true; label1_txt.setTextFormat(fonts.Button1); label2_txt.antiAliasType = "advanced"; label2_txt.embedFonts = true; label2_txt.setTextFormat(fonts.Button1); music_chk.label = ""; music_chk.selected = Boolean(!(Juke.Box.MUTE_MUSIC)); sfx_chk.label = ""; sfx_chk.selected = Boolean(!(Juke.Box.MUTE_SFX)); music_chk.focusEnabled = false; sfx_chk.focusEnabled = false; music_chk.tabEnabled = false; sfx_chk.tabEnabled = false; music_chk.addEventListener("click", clickedMusic); sfx_chk.addEventListener("click", clickedSfx); } public function clickedMusic(_arg1:Object=null){ if (mouseY < -10){ music_chk.selected = !(music_chk.selected); }; if (music_chk.selected){ Juke.Box.musicOn(); } else { Juke.Box.musicOff(); }; } public function turnOff(){ Juke.Box.musicOff(); Juke.Box.sfxOff(); music_chk.selected = false; sfx_chk.selected = false; } public function clickedSfx(_arg1:Object=null){ if (mouseY < -10){ sfx_chk.selected = !(sfx_chk.selected); }; if (sfx_chk.selected){ Juke.Box.sfxOn(); } else { Juke.Box.sfxOff(); }; } } }//package perfecthoopz2_fla
Section 132
//splashqigames_92 (perfecthoopz2_fla.splashqigames_92) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class splashqigames_92 extends MovieClip { public var default_mc:MovieClip; public function splashqigames_92(){ addFrameScript(0, frame1, 149, frame150); } function frame1(){ if (g.SplashLoader){ addChild(g.SplashLoader); g.SplashLoader.x = ((640 - g.SplashLoader.width) * 0.5); g.SplashLoader.y = ((500 - g.SplashLoader.height) * 0.5); default_mc.visible = false; }; } function frame150(){ stop(); ui.Main.gotoAndStop("game"); } } }//package perfecthoopz2_fla
Section 133
//splashsponsor_89 (perfecthoopz2_fla.splashsponsor_89) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class splashsponsor_89 extends MovieClip { public var splash_btn:SimpleButton; public function splashsponsor_89(){ addFrameScript(0, frame1, 149, frame150); } public function btnSplash(_arg1:Object=null){ var e = _arg1; try { navigateToURL(url.SPONSOR_SPLASH, "_blank"); } catch(err:Error) { }; } function frame1(){ splash_btn.addEventListener("click", btnSplash); } function frame150(){ stop(); ui.Main.gotoAndStop("splash2"); } } }//package perfecthoopz2_fla
Section 134
//success_126 (perfecthoopz2_fla.success_126) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class success_126 extends MovieClip { public var back_btn:SimpleButton; public var score1_txt:TextField; public var score2_txt:TextField; public var score3_txt:TextField; public var score4_txt:TextField; public var score5_txt:TextField; public var score6_txt:TextField; public var score7_txt:TextField; public var caption_txt:TextField; public var Labels:Array; public var tryagain_btn:SimpleButton; public var next_btn:SimpleButton; public var newbest_mc:MovieClip; public var submit_btn:SimpleButton; public var lbl:TextField; public var medal_mc:MovieClip; public var qty1_txt:TextField; public var qty2_txt:TextField; public var label1_txt:TextField; public var qty4_txt:TextField; public var label3_txt:TextField; public var label4_txt:TextField; public var label5_txt:TextField; public var label6_txt:TextField; public var label7_txt:TextField; public var qty3_txt:TextField; public var label2_txt:TextField; public function success_126(){ addFrameScript(0, frame1, 19, frame20); } public function btnBack(_arg1:Event){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "back"; _local2.play(); } public function btnNext(_arg1:Event){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "next"; _local2.play(); } public function btnSubmit(_arg1:Event){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "submit"; _local2.play(); } public function init(){ var _local2:*; var _local3:*; var _local4:Number; var _local1:Number = 0; gotoAndPlay(1); _local2 = (g.Player.Hoopzs * 500); qty1_txt.text = g.Player.Hoopzs; score1_txt.text = numbers.format(_local2); _local1 = (_local1 + _local2); if (g.TimeMode){ label2_txt.text = "BIGGEST COMBO"; if (g.Player.BiggestCombo < 2){ g.Player.BiggestCombo = 0; }; qty2_txt.text = g.Player.BiggestCombo; _local2 = (g.Player.BiggestCombo * 1000); } else { label2_txt.text = "COMBOS"; if (g.Player.Combos5 > 0){ qty2_txt.text = "1 X 5"; _local2 = 5000; } else { if (g.Player.Combos4 > 0){ qty2_txt.text = "1 X 4"; _local2 = 3000; } else { if (g.Player.Combos3 > 0){ qty2_txt.text = "1 X 3"; _local2 = 1500; } else { if (g.Player.Combos2 > 0){ qty2_txt.text = (g.Player.Combos2 + " X 2"); _local2 = (g.Player.Combos2 * 500); } else { qty2_txt.text = "0"; _local2 = 0; }; }; }; }; }; score2_txt.text = numbers.format(_local2); _local1 = (_local1 + _local2); _local2 = (g.Player.Swishes * 750); qty3_txt.text = g.Player.Swishes; score3_txt.text = numbers.format(_local2); _local1 = (_local1 + _local2); if (g.TimeMode){ _local2 = 0; label4_txt.visible = false; qty4_txt.visible = false; score4_txt.visible = false; } else { label4_txt.visible = true; qty4_txt.visible = true; score4_txt.visible = true; _local3 = Math.round((g.Player.Time / 30)); _local4 = (30 - _local3); if (_local4 < 0){ _local4 = 0; }; _local2 = (Math.ceil(((_local4 * _local4) * 0.1)) * 50); qty4_txt.text = numbers.formatSeconds(_local3); score4_txt.text = numbers.format(_local2); }; _local1 = (_local1 + _local2); score5_txt.text = numbers.format(_local1); _local2 = g.cGame.Scores[(ui.LevelSelect.Index - 1)]; if (_local1 > _local2){ score6_txt.text = numbers.format(_local1); label6_txt.visible = false; score6_txt.visible = false; newbest_mc.visible = true; g.cGame.Scores[(ui.LevelSelect.Index - 1)] = _local1; GameData.save(); } else { label6_txt.text = "PERSONAL BEST"; score6_txt.text = numbers.format(_local2); label6_txt.visible = true; score6_txt.visible = true; newbest_mc.visible = false; }; submit_btn.visible = false; submit_btn.enabled = false; next_btn.visible = true; next_btn.enabled = true; label7_txt.visible = false; score7_txt.visible = false; if (g.KingMode){ tryagain_btn.visible = false; tryagain_btn.enabled = false; back_btn.visible = false; back_btn.enabled = false; label6_txt.text = "TOTAL SCORE"; label6_txt.visible = true; score6_txt.visible = true; newbest_mc.visible = false; score6_txt.text = numbers.format(g.Player.totalScore()); if (ui.LevelSelect.Index == 25){ submit_btn.visible = true; submit_btn.enabled = true; next_btn.visible = false; next_btn.enabled = false; }; } else { if (ui.LevelSelect.Index < 25){ tryagain_btn.visible = true; tryagain_btn.enabled = true; back_btn.visible = true; back_btn.enabled = true; } else { tryagain_btn.visible = true; tryagain_btn.enabled = true; submit_btn.visible = true; submit_btn.enabled = true; next_btn.visible = false; next_btn.enabled = false; label7_txt.visible = true; score7_txt.visible = true; score7_txt.text = numbers.format(g.Player.totalScore()); }; }; if (_local1 > 7000){ medal_mc.gotoAndStop(3); } else { if (_local1 > 4000){ medal_mc.gotoAndStop(2); } else { medal_mc.gotoAndStop(1); }; }; } public function btnTryAgain(_arg1:Event){ var _local2:MovieClip = MovieClip(parent); _local2.Action = "tryagain"; _local2.play(); } function frame1(){ Labels = []; Labels.push(caption_txt); Labels.push(label1_txt); Labels.push(label2_txt); Labels.push(label3_txt); Labels.push(label4_txt); Labels.push(label5_txt); Labels.push(label6_txt); Labels.push(label7_txt); Labels.push(qty1_txt); Labels.push(qty2_txt); Labels.push(qty3_txt); Labels.push(qty4_txt); Labels.push(score1_txt); Labels.push(score2_txt); Labels.push(score3_txt); Labels.push(score4_txt); Labels.push(score5_txt); Labels.push(score6_txt); Labels.push(score7_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; submit_btn.tabEnabled = false; next_btn.tabEnabled = false; tryagain_btn.tabEnabled = false; back_btn.tabEnabled = false; next_btn.addEventListener("click", btnNext); tryagain_btn.addEventListener("click", btnTryAgain); back_btn.addEventListener("click", btnBack); submit_btn.addEventListener("click", btnSubmit); } function frame20(){ stop(); } } }//package perfecthoopz2_fla
Section 135
//text_107 (perfecthoopz2_fla.text_107) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_107 extends MovieClip { public var label_txt:TextField; public function text_107(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 136
//text_113 (perfecthoopz2_fla.text_113) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_113 extends MovieClip { public var label_txt:TextField; public function text_113(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 137
//text_115 (perfecthoopz2_fla.text_115) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_115 extends MovieClip { public var label_txt:TextField; public function text_115(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 138
//text_117 (perfecthoopz2_fla.text_117) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_117 extends MovieClip { public var label_txt:TextField; public function text_117(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 139
//text_124 (perfecthoopz2_fla.text_124) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_124 extends MovieClip { public var label_txt:TextField; public function text_124(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 140
//text_128 (perfecthoopz2_fla.text_128) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_128 extends MovieClip { public var label_txt:TextField; public function text_128(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 141
//text_138 (perfecthoopz2_fla.text_138) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_138 extends MovieClip { public var label_txt:TextField; public function text_138(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 142
//text_14 (perfecthoopz2_fla.text_14) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_14 extends MovieClip { public function text_14(){ addFrameScript(0, frame1); } function frame1(){ } } }//package perfecthoopz2_fla
Section 143
//text_140 (perfecthoopz2_fla.text_140) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_140 extends MovieClip { public var label_txt:TextField; public function text_140(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 144
//text_166 (perfecthoopz2_fla.text_166) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_166 extends MovieClip { public var label_txt:TextField; public function text_166(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 145
//text_172 (perfecthoopz2_fla.text_172) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_172 extends MovieClip { public var label_txt:TextField; public function text_172(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 146
//text_174 (perfecthoopz2_fla.text_174) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_174 extends MovieClip { public var label_txt:TextField; public function text_174(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 147
//text_176 (perfecthoopz2_fla.text_176) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_176 extends MovieClip { public var label_txt:TextField; public function text_176(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 148
//text_177 (perfecthoopz2_fla.text_177) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_177 extends MovieClip { public var label_txt:TextField; public function text_177(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 149
//text_179 (perfecthoopz2_fla.text_179) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_179 extends MovieClip { public var label_txt:TextField; public function text_179(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 150
//text_180 (perfecthoopz2_fla.text_180) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_180 extends MovieClip { public var label_txt:TextField; public function text_180(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 151
//text_182 (perfecthoopz2_fla.text_182) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_182 extends MovieClip { public var label_txt:TextField; public function text_182(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 152
//text_183 (perfecthoopz2_fla.text_183) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_183 extends MovieClip { public var label_txt:TextField; public function text_183(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 153
//text_185 (perfecthoopz2_fla.text_185) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_185 extends MovieClip { public var label_txt:TextField; public function text_185(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 154
//text_192 (perfecthoopz2_fla.text_192) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_192 extends MovieClip { public var label_txt:TextField; public function text_192(){ addFrameScript(0, frame1); } function frame1(){ fonts.apply(label_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 155
//textnotice_142 (perfecthoopz2_fla.textnotice_142) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class textnotice_142 extends MovieClip { public var notice_txt:TextField; public function textnotice_142(){ addFrameScript(0, frame1); } function frame1(){ stop(); notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } } }//package perfecthoopz2_fla
Section 156
//textnotice_144 (perfecthoopz2_fla.textnotice_144) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class textnotice_144 extends MovieClip { public var notice_txt:TextField; public function textnotice_144(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 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, 34, frame35, 35, frame36, 36, frame37); } function frame30(){ fonts.apply(notice_txt, fonts.Button1); } function frame31(){ fonts.apply(notice_txt, fonts.Button1); } function frame32(){ fonts.apply(notice_txt, fonts.Button1); } function frame33(){ fonts.apply(notice_txt, fonts.Button1); } function frame34(){ fonts.apply(notice_txt, fonts.Button1); } function frame35(){ fonts.apply(notice_txt, fonts.Button1); } function frame36(){ fonts.apply(notice_txt, fonts.Button1); } function frame15(){ fonts.apply(notice_txt, fonts.Button1); } function frame17(){ fonts.apply(notice_txt, fonts.Button1); } function frame18(){ fonts.apply(notice_txt, fonts.Button1); } function frame19(){ fonts.apply(notice_txt, fonts.Button1); } function frame37(){ fonts.apply(notice_txt, fonts.Button1); } function frame16(){ fonts.apply(notice_txt, fonts.Button1); } function frame1(){ stop(); notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } function frame2(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } function frame3(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } function frame4(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } function frame5(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } function frame6(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } function frame7(){ fonts.apply(notice_txt, fonts.Button1); } function frame8(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } function frame21(){ fonts.apply(notice_txt, fonts.Button1); } function frame22(){ fonts.apply(notice_txt, fonts.Button1); } function frame23(){ fonts.apply(notice_txt, fonts.Button1); } function frame24(){ fonts.apply(notice_txt, fonts.Button1); } function frame25(){ fonts.apply(notice_txt, fonts.Button1); } function frame26(){ fonts.apply(notice_txt, fonts.Button1); } function frame27(){ fonts.apply(notice_txt, fonts.Button1); } function frame28(){ fonts.apply(notice_txt, fonts.Button1); } function frame29(){ fonts.apply(notice_txt, fonts.Button1); } function frame20(){ fonts.apply(notice_txt, fonts.Button1); } } }//package perfecthoopz2_fla
Section 157
//uiFailure_121 (perfecthoopz2_fla.uiFailure_121) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiFailure_121 extends MovieClip { public var Action:String; public var panel:MovieClip; public function uiFailure_121(){ addFrameScript(0, frame1, 1, frame2, 19, frame20, 44, frame45); } function frame20(){ stop(); } public function activate(){ visible = true; gotoAndPlay(2); } function frame1(){ stop(); ui.Failure = this; Action = "tryagain"; visible = false; } function frame2(){ panel.init(); } function frame45(){ switch (Action){ case "tryagain": g.Player.tryAgain(); break; case "back": g.Game.reset(); ui.GameMenu.gotoSelection(); break; case "kingscore": g.Game.reset(); ui.GameMenu.gotoKingScore(); break; }; } } }//package perfecthoopz2_fla
Section 158
//uiFreeScore_203 (perfecthoopz2_fla.uiFreeScore_203) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiFreeScore_203 extends MovieClip { public var score_txt:TextField; public var back_btn:SimpleButton; public var mochi_mc:MovieClip; public var caption_txt:TextField; public var sponsor_mc:MovieClip; public var lbl:TextField; public var Labels:Array; public function uiFreeScore_203(){ addFrameScript(0, frame1); } public function btnBack(_arg1:Object=null){ Juke.Box.btnClick(); ui.GameMenu.gotoSelection(); } function frame1(){ stop(); Labels = []; Labels.push(caption_txt); Labels.push(score_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; back_btn.tabEnabled = false; init(); back_btn.addEventListener("click", btnBack); } public function init(){ score_txt.text = numbers.format(g.Player.totalScore()); if (g.HS == "mochi"){ mochi_mc.visible = true; sponsor_mc.visible = false; } else { mochi_mc.visible = false; sponsor_mc.visible = true; sponsor_mc.gotoAndStop(1); }; } } }//package perfecthoopz2_fla
Section 159
//uiHelpIndicator_195 (perfecthoopz2_fla.uiHelpIndicator_195) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiHelpIndicator_195 extends MovieClip { public var arrow1:MovieClip; public var arrow2:MovieClip; public var arrow3:MovieClip; public var trail_mc:MovieClip; public var Arrows:Array; public var Index:Number; public var NextIn:Number; public function uiHelpIndicator_195(){ addFrameScript(0, frame1); } public function update(_arg1:MovieClip, _arg2:MovieClip){ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:Number; _local4 = (((_arg1.x + 20) - _arg2.x) - 20); _local5 = (((_arg1.y + 20) - _arg2.y) - 10); _local6 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); _local7 = (Math.atan2(_local5, _local4) * g.R2D); trail_mc.width = _local6; arrow1.x = (30 + (_local6 * 0.05)); arrow2.x = (30 + (_local6 * 0.2)); arrow3.x = (30 + (_local6 * 0.35)); arrow2.visible = Boolean((_local6 > 50)); arrow3.visible = Boolean((_local6 > 80)); NextIn--; if (NextIn < 0){ Index++; if (Index > 2){ Index = 0; }; _local3 = 0; while (_local3 < 2) { if (_local3 == Index){ Arrows[_local3].alpha = 1; } else { Arrows[_local3].alpha = 0.6; }; _local3++; }; NextIn = 10; }; rotation = _local7; } function frame1(){ stop(); visible = false; Index = 0; NextIn = 10; Arrows = [arrow1, arrow2, arrow3]; } } }//package perfecthoopz2_fla
Section 160
//uiHowToPlay_193 (perfecthoopz2_fla.uiHowToPlay_193) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiHowToPlay_193 extends MovieClip { public var ok_btn:SimpleButton; public var okObj:Object; public var simulation_mc:MovieClip; public var caption_txt:TextField; public var Labels:Array; public var label2_txt:TextField; public var label3_txt:TextField; public var label4_txt:TextField; public var label6_txt:TextField; public var label7_txt:TextField; public var label1_txt:TextField; public var lbl:TextField; public var label5_txt:TextField; public var okHdl:Function; public function uiHowToPlay_193(){ addFrameScript(0, frame1); } public function nextState(_arg1:Object=null){ simulation_mc.nextState(); } function frame1(){ stop(); Labels = []; Labels.push(caption_txt); Labels.push(label1_txt); Labels.push(label2_txt); Labels.push(label3_txt); Labels.push(label4_txt); Labels.push(label5_txt); Labels.push(label6_txt); Labels.push(label7_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; ok_btn.tabEnabled = false; ok_btn.addEventListener("click", btnOK); } public function btnOK(_arg1:Object=null){ removeEventListener("enterFrame", nextState); visible = false; okHdl.call(okObj); } public function activate(_arg1:Function, _arg2:Object){ trace("activate !"); visible = true; addEventListener("enterFrame", nextState); okHdl = _arg1; okObj = _arg2; } } }//package perfecthoopz2_fla
Section 161
//uiIndicator_21 (perfecthoopz2_fla.uiIndicator_21) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiIndicator_21 extends MovieClip { public var arrow1:MovieClip; public var arrow2:MovieClip; public var arrow3:MovieClip; public var trail_mc:MovieClip; public var Arrows:Array; public var Index:Number; public var NextIn:Number; public function uiIndicator_21(){ addFrameScript(0, frame1); } public function update(_arg1:MovieClip, _arg2:Number, _arg3:Number){ var _local4:Number; x = _arg1.x; y = _arg1.y; trail_mc.width = _arg2; arrow1.x = (30 + (_arg2 * 0.05)); arrow2.x = (30 + (_arg2 * 0.2)); arrow3.x = (30 + (_arg2 * 0.35)); arrow2.visible = Boolean((_arg2 > 50)); arrow3.visible = Boolean((_arg2 > 80)); NextIn--; if (NextIn < 0){ Index++; if (Index > 2){ Index = 0; }; _local4 = 0; while (_local4 < 2) { if (_local4 == Index){ Arrows[_local4].alpha = 1; } else { Arrows[_local4].alpha = 0.6; }; _local4++; }; NextIn = 10; }; rotation = _arg3; } function frame1(){ stop(); ui.Indicator = this; Index = 0; NextIn = 10; Arrows = [arrow1, arrow2, arrow3]; } } }//package perfecthoopz2_fla
Section 162
//uiKingBonus_118 (perfecthoopz2_fla.uiKingBonus_118) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingBonus_118 extends MovieClip { public var panel:MovieClip; public function uiKingBonus_118(){ addFrameScript(0, frame1, 189, frame190); } public function activate(){ visible = true; gotoAndPlay(2); panel.init(); } function frame190(){ ui.Success.activate(); } function frame1(){ stop(); ui.KingBonus = this; visible = false; } } }//package perfecthoopz2_fla
Section 163
//uiKingFailure_110 (perfecthoopz2_fla.uiKingFailure_110) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingFailure_110 extends MovieClip { public var Action:String; public var panel:MovieClip; public function uiKingFailure_110(){ addFrameScript(0, frame1, 19, frame20, 44, frame45); } function frame20(){ stop(); } public function activate(){ visible = true; gotoAndPlay(2); panel.init(); } function frame1(){ stop(); ui.KingFailure = this; Action = "tryagain"; visible = false; } function frame45(){ switch (Action){ case "tryagain": ui.LevelSelect.Index = 1; g.cGame = new GameData("player1"); ui.GameMenu.restart(); break; case "quit": g.Game.reset(); ui.GameMenu.gotoMenu(); break; case "kingscore": g.Game.reset(); ui.GameMenu.gotoKingScore(); break; }; } } }//package perfecthoopz2_fla
Section 164
//uiKingHelp_199 (perfecthoopz2_fla.uiKingHelp_199) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingHelp_199 extends MovieClip { public var label1_txt:TextField; public var label2_txt:TextField; public var label3_txt:TextField; public var label4_txt:TextField; public var label5_txt:TextField; public var lbl:TextField; public var caption_txt:TextField; public var ok_btn:SimpleButton; public var Labels:Array; public function uiKingHelp_199(){ addFrameScript(0, frame1); } public function init(){ } function frame1(){ stop(); Labels = []; Labels.push(caption_txt); Labels.push(label1_txt); Labels.push(label2_txt); Labels.push(label3_txt); Labels.push(label4_txt); Labels.push(label5_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; ok_btn.tabEnabled = false; init(); ok_btn.addEventListener("click", btnOK); } public function btnOK(_arg1:Object=null){ ui.GameMenu.gotoPlay(); } } }//package perfecthoopz2_fla
Section 165
//uiKingLives_103 (perfecthoopz2_fla.uiKingLives_103) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingLives_103 extends MovieClip { public var Action:String; public var panel:MovieClip; public function uiKingLives_103(){ addFrameScript(0, frame1, 19, frame20, 44, frame45); } function frame20(){ stop(); } public function activate(){ visible = true; gotoAndPlay(2); panel.init(); } function frame1(){ stop(); ui.KingLives = this; Action = "continue"; visible = false; } function frame45(){ g.Player.tryAgain(); } } }//package perfecthoopz2_fla
Section 166
//uiKingScore_200 (perfecthoopz2_fla.uiKingScore_200) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingScore_200 extends MovieClip { public var tryagain_btn:SimpleButton; public var score_txt:TextField; public var back_btn:SimpleButton; public var mochi_mc:MovieClip; public var caption_txt:TextField; public var sponsor_mc:MovieClip; public var lbl:TextField; public var Labels:Array; public function uiKingScore_200(){ addFrameScript(0, frame1); } public function btnTryAgain(_arg1:Object=null){ g.KingMode = true; ui.LevelSelect.Index = 1; g.cGame = new GameData("player1"); ui.GameMenu.gotoPlay(); } public function btnBack(_arg1:Object=null){ ui.GameMenu.gotoMenu(); } public function init(){ score_txt.text = numbers.format(g.Player.totalScore()); if (g.HS == "mochi"){ mochi_mc.visible = true; sponsor_mc.visible = false; } else { mochi_mc.visible = false; sponsor_mc.visible = true; sponsor_mc.gotoAndStop(1); }; } function frame1(){ stop(); Labels = []; Labels.push(caption_txt); Labels.push(score_txt); for each (lbl in Labels) { lbl.antiAliasType = "advanced"; lbl.embedFonts = true; lbl.setTextFormat(fonts.Button1); lbl.defaultTextFormat = fonts.Button1; }; tryagain_btn.tabEnabled = false; back_btn.tabEnabled = false; init(); tryagain_btn.addEventListener("click", btnTryAgain); back_btn.addEventListener("click", btnBack); } } }//package perfecthoopz2_fla
Section 167
//uiLevelPreview_159 (perfecthoopz2_fla.uiLevelPreview_159) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiLevelPreview_159 extends MovieClip { public var score_txt:TextField; public var label_txt:TextField; public var locked_mc:MovieClip; public var medal_mc:MovieClip; public function uiLevelPreview_159(){ addFrameScript(0, frame1); } public function setLevel(_arg1:Number){ gotoAndStop((_arg1 + 1)); if (_arg1 > 0){ locked_mc.visible = false; if (g.cGame.Scores[(_arg1 - 1)] > 0){ score_txt.text = numbers.format(g.cGame.Scores[(_arg1 - 1)]); label_txt.visible = true; score_txt.visible = true; medal_mc.visible = true; if (g.cGame.Scores[(_arg1 - 1)] > 7000){ medal_mc.gotoAndStop(3); } else { if (g.cGame.Scores[(_arg1 - 1)] > 4000){ medal_mc.gotoAndStop(2); } else { medal_mc.gotoAndStop(1); }; }; } else { label_txt.visible = false; score_txt.visible = false; medal_mc.visible = false; }; } else { label_txt.visible = false; score_txt.visible = false; medal_mc.visible = false; }; } function frame1(){ stop(); ui.LevelPreview = this; label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label_txt.defaultTextFormat = fonts.Button1; score_txt.antiAliasType = "advanced"; score_txt.embedFonts = true; score_txt.setTextFormat(fonts.Button1); score_txt.defaultTextFormat = fonts.Button1; medal_mc.visible = false; label_txt.visible = false; score_txt.visible = false; } } }//package perfecthoopz2_fla
Section 168
//uiNotice_143 (perfecthoopz2_fla.uiNotice_143) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiNotice_143 extends MovieClip { public var textnotice:MovieClip; public var index:Number; public var Notices:Array; public function uiNotice_143(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 64, frame65); } function frame1(){ ui.Notice = this; Notices = []; } function frame3(){ index = Notices.shift(); textnotice.gotoAndStop(index); } function frame2(){ stop(); } function frame65(){ if (Notices.length > 0){ gotoAndPlay(3); } else { gotoAndStop(2); }; } public function notice(_arg1:Number){ Notices.push(_arg1); if (currentFrame == 2){ play(); }; } } }//package perfecthoopz2_fla
Section 169
//uiSuccess_125 (perfecthoopz2_fla.uiSuccess_125) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiSuccess_125 extends MovieClip { public var Action:String; public var panel:MovieClip; public function uiSuccess_125(){ addFrameScript(0, frame1, 1, frame2, 19, frame20, 44, frame45); } function frame20(){ stop(); } public function activate(){ visible = true; gotoAndPlay(2); } function frame1(){ stop(); ui.Success = this; Action = "next"; visible = false; } function frame2(){ panel.init(); } function frame45(){ switch (Action){ case "next": g.Game.reset(); if (ui.LevelSelect.Index < 25){ ui.LevelSelect.Index++; }; ui.GameMenu.restart(); break; case "tryagain": g.Player.tryAgain(); break; case "back": g.Game.reset(); ui.GameMenu.gotoSelection(); break; case "submit": g.Game.reset(); if (g.KingMode){ ui.GameMenu.gotoKingScore(); } else { ui.GameMenu.gotoFreeScore(); }; break; }; } } }//package perfecthoopz2_fla
Section 170
//uiTimeOver_141 (perfecthoopz2_fla.uiTimeOver_141) package perfecthoopz2_fla { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiTimeOver_141 extends MovieClip { public var textnotice:MovieClip; public function uiTimeOver_141(){ addFrameScript(0, frame1, 1, frame2, 64, frame65); } public function activate(){ if (currentFrame == 2){ play(); }; } function frame1(){ ui.TimeOver = this; } function frame65(){ gotoAndStop(2); } function frame2(){ stop(); } } }//package perfecthoopz2_fla
Section 171
//ad (ad) package { import flash.display.*; public class ad { public static var PreRoll:MovieClip; public static var MidRollA:MovieClip; public static var MidRollB:MovieClip; } }//package
Section 172
//AdBox (AdBox) package { import flash.display.*; public dynamic class AdBox extends MovieClip { } }//package
Section 173
//AdPreRoll (AdPreRoll) package { public class AdPreRoll extends AdUnit { public function AdPreRoll(){ addFrameScript(0, frame1); ad.PreRoll = this; } function frame1(){ stop(); } public function serve(){ switch (g.PreRoll){ case "mochiads": mochiPreRoll(g.PreRollCode); break; case "mochiadsca": mochiMidRoll(g.PreRollCode); break; case "cpmstar": cpmPreRoll(g.PreRollCode); break; case "qigames": qiPreRoll(); break; }; } } }//package
Section 174
//AdUnit (AdUnit) package { import flash.display.*; import flash.events.*; import mochi.as3.*; import flash.net.*; import CPMStar.*; import flash.system.*; public class AdUnit extends MovieClip { public var adBox:MovieClip; public function AdUnit(){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); } public function cpmPreRoll(_arg1:String){ var ad:DisplayObject; var idcode = _arg1; trace("AdUnit->cpmStar PreRoll"); adBox = new AdBox(); addChild(adBox); try { ad = new AdLoader(idcode); adBox.addChild(ad); } catch(e:Error) { trace("AdUnit->cpmStar loading error ..."); }; } public function destroy(){ trace("AdUnit->destroy"); try { if (adBox){ if (adBox.parent == this){ removeChild(adBox); }; }; } catch(e:Error) { }; } public function mochiMidRoll(_arg1:String){ var idcode = _arg1; trace("AdUnit->mochiAds MidRoll"); adBox = new AdBox(); addChild(adBox); try { MochiAd.showClickAwayAd({clip:adBox, id:idcode}); } catch(e:Error) { trace("AdUnit->mochiAds loading error ..."); }; } public function customAdError(_arg1:Event){ trace("Error loading custom ad ..."); } public function cpmMidRoll(_arg1:String){ var ad:DisplayObject; var idcode = _arg1; trace("AdUnit->cpmStar MidRoll"); adBox = new AdBox(); addChild(adBox); try { ad = new AdLoader(idcode); adBox.addChild(ad); } catch(e:Error) { trace("AdUnit->cpmStar loading error ..."); }; } public function qiMidRoll(){ var adLoader:Loader; adBox = new AdBox(); addChild(adBox); trace("AdUnit->qiMidRoll"); try { adLoader = new Loader(); adLoader.contentLoaderInfo.addEventListener("ioError", customAdError); adLoader.load(new URLRequest("http://games.qigames.com/adview/perfecthoopz.swf")); adBox.addChild(adLoader); } catch(e:Error) { trace("AdUnit->customAd loading error ..."); }; } public function mochiPreRoll(_arg1:String){ var idcode = _arg1; trace("AdUnit->mochiAds PreRoll"); try { MochiAd.showPreGameAd({clip:root, id:idcode, res:"640x500"}); } catch(e:Error) { trace("AdUnit->mochiAds loading error ..."); }; } public function qiPreRoll(){ var adLoader:Loader; adBox = new AdBox(); addChild(adBox); trace("AdUnit->qiPreRoll"); try { adLoader = new Loader(); adLoader.contentLoaderInfo.addEventListener("ioError", customAdError); adLoader.load(new URLRequest("http://games.qigames.com/adview/perfecthoopz.swf")); adBox.addChild(adLoader); } catch(e:Error) { trace("AdUnit->customAd loading error ..."); }; } } }//package
Section 175
//aiPlayer (aiPlayer) package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.ui.*; public class aiPlayer extends MovieClip { public var startR2:Number; public var MaxForce:Number; public var Combos2:Number; public var Combos4:Number; public var Combos5:Number; public var Combos6:Number; private var Game:GameInstance; public var Combos3:Number; private var Interface:GameInterface; private var Ball:BasketBall; private var FAIL:Array; public var Completed:Boolean; public var BiggestCombo:Number; public var startR:Number; private var R2D:Number; private var Balls:Array; private var HOOP:Array; public var rDeg:Number; private var S2:Array; private var S3:Array; private var CompletionIn:Number; public var rRad:Number; private var S1:Array; public var PlaceValid:Boolean; public var TimeOver:Boolean; public var BaseForce:Number; public var MouseLoc:Point; public var Hoopzs:Number; public var Shooting:Boolean; public var TimeLeft:Number; public var Aiming:Boolean; private var D2R:Number; public var Swishes:Number; private var NextShotIn:Number; public var AimForce:Number; public var startP0:Point; public var Misses:Number; public var ShotsFired:Number; private var ShotIndex:Number; public var MinForce:Number; public var Placing:Boolean; public var aimP0:Point; public var Time:Number; private var MISS:Array; private var RIM:Array; public function aiPlayer(){ addFrameScript(0, frame1); g.Player = this; R2D = (180 / Math.PI); D2R = (1 / R2D); MinForce = 5; MaxForce = 60; } public function miss(_arg1:Number, _arg2:Boolean=false){ var _local3:*; var _local4:*; var _local5:Number; if (_arg1 == -1){ return; }; if (Completed){ return; }; if (HOOP[_arg1]){ return; }; if (MISS[_arg1]){ return; }; MISS[_arg1] = true; if (_arg2){ FAIL[_arg1] = true; }; Balls[_arg1].Alive = false; ui.Header.miss(_arg1); if (!g.TimeMode){ _local5 = 5; _local4 = 0; _local3 = 0; while (_local3 < 5) { if (((HOOP[_local3]) || (MISS[_local3]))){ _local4++; }; _local3++; }; if (_local4 >= 5){ Completed = true; CompletionIn = 30; }; } else { if (TimeOver){ _local4 = 0; _local3 = 0; while (_local3 < ShotsFired) { if (((HOOP[_local3]) || (MISS[_local3]))){ _local4++; }; _local3++; }; if (_local4 >= ShotsFired){ trace("Completed on miss"); Completed = true; CompletionIn = 30; }; }; }; } public function rim(_arg1:Number){ if (_arg1 == -1){ return; }; RIM[_arg1] = true; } public function init(){ Game = g.Game; Interface = g.Interface; startP0 = new Point(0, 0); startP0.x = g.Start.x; startP0.y = g.Start.y; startR = (g.Start.width * 0.5); startR2 = (startR * startR); Game.trackKey(Keyboard.SPACE); Game.keyDownHandler(Keyboard.SPACE, keySpace, this); reset(); g.Net.linesWhite(); nextShot(); } public function fire(){ var _local1:Point; if (TimeOver){ return; }; if (BaseForce < MinForce){ keySpace(); return; }; Aiming = false; Shooting = true; ShotsFired++; _local1 = Point.polar(AimForce, rRad); Ball.init(_local1); Ball.Alive = true; ui.Indicator.visible = false; NextShotIn = 30; } public function evtMouseDown(_arg1:Object=null){ if (((Placing) && (PlaceValid))){ Placing = false; Aiming = true; }; } public function reset(){ var _local1:Number; Completed = false; Alive = true; Placing = true; PlaceValid = false; Aiming = false; Shooting = false; TimeOver = false; aimP0 = new Point(0, 0); ShotIndex = -1; BaseForce = 0; AimForce = 0; ShotsFired = 0; BiggestCombo = 0; S1 = []; S2 = []; S3 = []; HOOP = []; MISS = []; FAIL = []; RIM = []; NextShotIn = -1; Balls = []; CompletionIn = -1; _local1 = 0; while (_local1 < 50) { S1.push(false); S2.push(false); S3.push(false); HOOP.push(false); MISS.push(false); FAIL.push(false); RIM.push(false); _local1++; }; Time = 0; TimeLeft = (30 * Setup.FrameRate); Hoopzs = 0; Misses = 0; Swishes = 0; Combos2 = 0; Combos3 = 0; Combos4 = 0; Combos5 = 0; Combos6 = 0; ui.Header.init(); ui.Header.showButtons(); } public function hoopz(_arg1:Number){ var _local2:*; var _local3:*; var _local4:Number; if (HOOP[_arg1]){ return; }; HOOP[_arg1] = true; Balls[_arg1].Alive = false; ui.Header.hoopz(_arg1); Juke.Box.swish(1); if (!RIM[_arg1]){ Swishes++; ui.Notice.notice(1); }; checkCombos(_arg1); if (Completed){ completion(); }; if (!g.TimeMode){ _local4 = 5; _local3 = 0; _local2 = 0; while (_local2 < _local4) { if (((HOOP[_local2]) || (MISS[_local2]))){ _local3++; }; _local2++; }; if (_local3 >= _local4){ Completed = true; CompletionIn = 30; }; } else { _local3 = 0; _local2 = 0; while (_local2 < HOOP.length) { if (HOOP[_local2]){ _local3++; }; _local2++; }; ui.Header.setTimeHoopz(_local3); if (TimeOver){ _local3 = 0; _local2 = 0; while (_local2 < ShotsFired) { if (((HOOP[_local2]) || (MISS[_local2]))){ _local3++; }; _local2++; }; if (_local3 >= ShotsFired){ trace("Completed on hoopz"); Completed = true; CompletionIn = 30; }; }; }; } public function aimControl(){ var _local1:*; var _local2:*; var _local3:Number; var _local4:*; var _local5:Number; var _local6:Point; var _local7:MovieClip; _local1 = (Ball.x - MouseLoc.x); _local2 = (Ball.y - MouseLoc.y); _local3 = ((_local1 * _local1) + (_local2 * _local2)); d = Math.sqrt(_local3); rRad = Math.atan2(_local2, _local1); rDeg = (rRad * R2D); BaseForce = (AimForce = (d * 0.4)); if (AimForce < MinForce){ AimForce = MinForce; }; if (AimForce > MaxForce){ AimForce = MaxForce; }; if (BaseForce >= MinForce){ ui.Indicator.visible = true; ui.Indicator.update(Ball, (AimForce * 2.5), rDeg); } else { ui.Indicator.visible = false; }; } public function nextState(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:Number; var _local7:BasketBall; if (!Completed){ Time++; if (g.TimeMode){ TimeLeft = ((30 * Setup.FrameRate) - Time); if (TimeLeft <= 0){ TimeLeft = 0; if (!TimeOver){ ui.TimeOver.activate(); _local6 = 0; _local5 = 0; while (_local5 < ShotsFired) { if (((HOOP[_local5]) || (MISS[_local5]))){ _local6++; }; _local5++; }; if (_local6 >= ShotsFired){ trace("Completed at timer exactly"); Completed = true; CompletionIn = 30; }; Juke.Box.buzzer(); }; TimeOver = true; Shooting = false; Placing = false; Aiming = false; ui.Indicator.visible = false; Ball.visible = Ball.Alive; }; ui.Header.showTime(Math.round((TimeLeft / Setup.FrameRate))); } else { ui.Header.showTime(Math.round((Time / Setup.FrameRate))); }; }; MouseLoc = new Point(Interface.mouseX, Interface.mouseY); if (NextShotIn > 0){ NextShotIn--; if (NextShotIn == 0){ nextShot(); }; }; if (CompletionIn > 0){ CompletionIn--; if (CompletionIn == 0){ if (g.TimeMode){ timeCompletion(); } else { completion(); }; }; }; if (Placing){ placeBall(); }; if (Aiming){ aimControl(); }; for each (_local7 in Balls) { if (_local7.Alive){ if ((((((_local7.x < -300)) || ((_local7.x > 1000)))) || ((_local7.y > 600)))){ if (!HOOP[_local7.index]){ miss(_local7.index, true); }; }; }; if (((_local7.Alive) && (_local7.body))){ _local1 = _local7.body.m_linearVelocity.Length(); _local2 = (_local7.x - g.Net.x); _local3 = (_local7.y - g.Net.y); _local4 = ((_local2 * _local2) + (_local3 * _local3)); if ((((_local1 < 2)) && ((_local4 > 10000)))){ _local7.SlowFor++; if (_local7.SlowFor > 40){ if (!HOOP[_local7.index]){ miss(_local7.index); }; }; }; if (_local7.body.IsSleeping()){ if (!HOOP[_local7.index]){ miss(_local7.index); }; }; }; }; } function frame1(){ stop(); } public function tryAgain(_arg1:Object=null){ var _local2:BasketBall; for each (_local2 in Balls) { _local2.destroy(); }; reset(); nextShot(); } public function timeCompletion(){ var _local1:Number; var _local2:Boolean; trace("time completion ..."); Completed = true; Hoopzs = 0; Misses = 0; _local1 = 0; while (_local1 < ShotsFired) { if (HOOP[_local1]){ Hoopzs++; }; if (MISS[_local1]){ Misses++; }; _local1++; }; if (Hoopzs > 2){ _local1 = ui.LevelSelect.Index; if (_local1 < 25){ g.cGame.Levels[_local1] = true; GameData.save(); }; if (ui.Success.currentFrame == 1){ ui.Success.activate(); }; if (ui.Failure.currentFrame != 1){ ui.Failure.gotoAndStop(1); }; } else { if (ui.Failure.currentFrame == 1){ ui.Failure.activate(); }; if (ui.Success.currentFrame != 1){ ui.Success.gotoAndStop(1); }; }; ui.Header.hideButtons(); } public function nextShot(_arg1:Boolean=false){ if (g.TimeMode){ if (TimeLeft <= 0){ return; }; } else { if ((((ShotIndex == 4)) && (!(_arg1)))){ return; }; if (ShotIndex == 5){ return; }; }; ShotIndex++; ui.Header.nextShot(ShotIndex, HOOP, MISS); Shooting = false; Placing = true; Ball = new BasketBall(); Balls.push(Ball); g.BallLayer.addChild(Ball); Ball.index = ShotIndex; } public function placeBall(){ var _local1:*; var _local2:*; var _local3:*; var _local4:Number; var _local5:Point; _local1 = (MouseLoc.x - startP0.x); _local2 = (MouseLoc.y - startP0.y); _local3 = ((_local1 * _local1) + (_local2 * _local2)); PlaceValid = (_local3 < startR2); Ball.x = MouseLoc.x; Ball.y = MouseLoc.y; if (PlaceValid){ Ball.alpha = 1; } else { Ball.alpha = 0.5; Ball.x = startP0.x; Ball.y = startP0.y; }; ui.Indicator.visible = false; } public function totalScore():Number{ var _local1:*; var _local2:Number; _local2 = 0; _local1 = 0; while (_local1 < 30) { _local2 = (_local2 + g.cGame.Scores[_local1]); _local1++; }; if (g.KingMode){ _local2 = (_local2 + g.cGame.KingBonus); }; return (_local2); } public function sensor1(_arg1:Number){ if (_arg1 == -1){ return; }; S1[_arg1] = true; } public function sensor2(_arg1:Number){ if (_arg1 == -1){ return; }; S2[_arg1] = true; if (((!(S1[_arg1])) || (FAIL[_arg1]))){ miss(_arg1, true); }; } public function evtMouseUp(_arg1:Object=null){ if (Aiming){ fire(); }; } public function sensor3(_arg1:Number){ if (_arg1 == -1){ Juke.Box.swish(1); return; }; S3[_arg1] = true; if (((((!(S1[_arg1])) || (!(S2[_arg1])))) || (FAIL[_arg1]))){ miss(_arg1, true); } else { hoopz(_arg1); }; } public function checkCombos(_arg1:Number){ var _local2:*; var _local3:Number; _local3 = 1; _local2 = (_arg1 - 1); while (_local2 >= 0) { if (HOOP[_local2]){ _local3++; } else { break; }; _local2--; }; _local2 = (_arg1 + 1); while (_local2 < 6) { if (HOOP[_local2]){ _local3++; } else { break; }; _local2++; }; if (_local3 > BiggestCombo){ BiggestCombo = _local3; }; switch (_local3){ case 2: Combos2++; if (Combos2 > 2){ Combos2 = 2; } else { ui.Notice.notice(2); }; break; case 3: Combos3++; ui.Notice.notice(3); break; case 4: Combos4++; ui.Notice.notice(4); break; case 5: Combos5++; ui.Notice.notice(5); if (g.KingMode){ ui.Notice.notice(6); g.cGame.Lives++; ui.Header.setLives(); }; break; case 6: ui.Notice.notice(15); break; case 7: ui.Notice.notice(16); break; case 8: ui.Notice.notice(17); break; case 9: ui.Notice.notice(18); break; case 10: ui.Notice.notice(19); break; case 11: ui.Notice.notice(20); break; case 12: ui.Notice.notice(21); break; case 13: ui.Notice.notice(22); break; case 14: ui.Notice.notice(23); break; case 15: ui.Notice.notice(24); break; case 16: ui.Notice.notice(25); break; case 17: ui.Notice.notice(26); break; case 18: ui.Notice.notice(27); break; case 19: ui.Notice.notice(28); break; case 20: ui.Notice.notice(29); break; case 21: ui.Notice.notice(30); break; case 22: ui.Notice.notice(31); break; case 23: ui.Notice.notice(32); break; case 24: ui.Notice.notice(33); break; case 25: ui.Notice.notice(34); break; case 26: ui.Notice.notice(35); break; case 27: ui.Notice.notice(36); break; case 28: ui.Notice.notice(37); break; }; } public function completion(){ var _local1:Number; var _local2:Boolean; trace("completion ..."); Completed = true; Hoopzs = 0; Misses = 0; _local1 = 0; while (_local1 < 6) { if (HOOP[_local1]){ Hoopzs++; }; if (MISS[_local1]){ Misses++; }; _local1++; }; if (((g.KingMode) && ((Hoopzs >= 4)))){ ui.Notice.notice(7); g.cGame.Safeties++; ui.Header.setSafeties(); }; _local2 = false; if (((((g.KingMode) && ((Hoopzs == 2)))) && ((Misses < 4)))){ if (g.cGame.Safeties > 0){ trace("Use safety ball !!"); ui.Notice.notice(8); g.cGame.Safeties--; ui.Header.setSafeties(); Completed = false; nextShot(true); if (ui.KingFailure.currentFrame != 1){ ui.KingFailure.gotoAndStop(1); }; if (ui.KingLives.currentFrame != 1){ ui.KingLives.gotoAndStop(1); }; return; }; }; if (Hoopzs > 2){ _local1 = ui.LevelSelect.Index; if (_local1 < 25){ g.cGame.Levels[_local1] = true; GameData.save(); }; if (((g.KingMode) && ((_local1 == 25)))){ if (ui.KingBonus.currentFrame == 1){ ui.KingBonus.activate(); }; } else { if (ui.Success.currentFrame == 1){ ui.Success.activate(); }; }; if (ui.Failure.currentFrame != 1){ ui.Failure.gotoAndStop(1); }; if (ui.KingFailure.currentFrame != 1){ ui.KingFailure.gotoAndStop(1); }; if (ui.KingLives.currentFrame != 1){ ui.KingLives.gotoAndStop(1); }; } else { if (g.KingMode){ if (g.cGame.Lives > 0){ g.cGame.Lives--; ui.Header.setLives(); if (ui.KingLives.currentFrame == 1){ ui.KingLives.activate(); }; } else { if (ui.KingFailure.currentFrame == 1){ ui.KingFailure.activate(); }; }; } else { if (ui.Failure.currentFrame == 1){ ui.Failure.activate(); }; }; if (ui.Success.currentFrame != 1){ ui.Success.gotoAndStop(1); }; }; ui.Header.hideButtons(); } public function keySpace(_arg1:Object=null){ if (Aiming){ Aiming = false; Placing = true; Ball.alpha = 0.5; Ball.x = startP0.x; Ball.y = startP0.y; }; } public function destroy(_arg1:Object=null){ var _local2:BasketBall; for each (_local2 in Balls) { _local2.destroy(); }; } } }//package
Section 176
//Basket (Basket) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Basket extends MovieClip { private var lRim:b2Body; private var rRim:b2Body; private var rPts:Array; private var body:b2Body; private var lPts:Array; private var R2D:Number; private var D2R:Number; private var LineColor:uint; public var Rim:MovieClip; public function Basket(){ g.Net = this; R2D = (180 / Math.PI); D2R = (1 / R2D); linesBlack(); } public function linesBlack(){ LineColor = 0; } public function destroy(){ if (body){ g.World.DestroyBody(body); }; body = null; } public function circleNodeAt(_arg1:Class, _arg2:Point, _arg3:Number, _arg4:Number):b2Body{ var _local5:b2CircleDef; var _local6:b2BodyDef; var _local7:b2Body; var _local8:MovieClip; _local8 = new (_arg1); _local8.x = _arg2.x; _local8.y = _arg2.y; g.cLevel.addChild(_local8); _local5 = new b2CircleDef(); _local5.radius = (_local8.width / 60); _local5.density = _arg3; _local5.friction = 0.5; _local5.restitution = 0.1; _local5.filter.groupIndex = _arg4; _local6 = new b2BodyDef(); _local6.position.x = (_local8.x / 30); _local6.position.y = (_local8.y / 30); _local6.userData = _local8; _local7 = g.World.CreateBody(_local6); _local7.CreateShape(_local5); _local7.SetMassFromShapes(); return (_local7); } public function init(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:Number; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:Point; var _local12:*; var _local13:*; var _local14:*; var _local15:Point; var _local16:*; var _local17:*; var _local18:Point; var _local19:*; var _local20:*; var _local21:*; var _local22:Point; var _local23:*; var _local24:*; var _local25:*; var _local26:*; var _local27:Point; var _local28:*; var _local29:*; var _local30:*; var _local31:*; var _local32:*; var _local33:b2Body; var _local34:*; var _local35:*; var _local36:*; var _local37:b2Body; var _local38:*; var _local39:*; var _local40:b2Body; var _local41:*; var _local42:*; var _local43:*; var _local44:b2Body; var _local45:*; var _local46:*; var _local47:b2Body; var _local48:*; var _local49:*; var _local50:*; var _local51:*; var _local52:b2Body; var _local53:*; var _local54:*; var _local55:*; var _local56:*; var _local57:b2Body; var _local58:*; var _local59:*; var _local60:*; var _local61:*; var _local62:b2Body; var _local63:*; var _local64:*; var _local65:*; var _local66:*; var _local67:b2Body; var _local68:*; var _local69:*; var _local70:*; var _local71:*; var _local72:b2Body; var _local73:b2CircleDef; var _local74:b2PolygonDef; var _local75:b2BodyDef; var _local76:b2Body; var _local77:MovieClip; lPts = []; rPts = []; _local1 = Rim.width; _local2 = (_local1 * 0.5); _local3 = (_local1 * 0.25); _local4 = _local1; _local6 = new Point(((x - _local2) + 0), (y + 0)); _local12 = new Point(((x - _local2) + (_local3 * 0.25)), (y + (_local4 * 0.3))); _local16 = new Point(((x - _local2) + (_local3 * 0.5)), (y + (_local4 * 0.5))); _local19 = new Point(((x - _local2) + (_local3 * 0.75)), (y + (_local4 * 0.75))); _local23 = new Point(((x - _local2) + (_local3 * 0.9)), (y + (_local4 * 1))); _local11 = new Point(((x + _local2) - 0), (y + 0)); _local15 = new Point(((x + _local2) - (_local3 * 0.25)), (y + (_local4 * 0.3))); _local18 = new Point(((x + _local2) - (_local3 * 0.5)), (y + (_local4 * 0.5))); _local22 = new Point(((x + _local2) - (_local3 * 0.75)), (y + (_local4 * 0.75))); _local27 = new Point(((x + _local2) - (_local3 * 0.9)), (y + (_local4 * 1))); _local5 = ((_local11.x - _local6.x) / 5); _local7 = new Point((_local6.x + (_local5 * 1)), _local6.y); _local8 = new Point((_local6.x + (_local5 * 2)), _local6.y); _local9 = new Point((_local6.x + (_local5 * 3)), _local6.y); _local10 = new Point((_local6.x + (_local5 * 4)), _local6.y); _local5 = ((_local15.x - _local12.x) / 3); _local13 = new Point((_local12.x + (_local5 * 1)), _local12.y); _local14 = new Point((_local12.x + (_local5 * 2)), _local12.y); _local5 = ((_local18.x - _local16.x) / 2); _local17 = new Point((_local16.x + (_local5 * 1)), _local16.y); _local5 = ((_local22.x - _local19.x) / 3); _local20 = new Point((_local19.x + (_local5 * 1)), _local19.y); _local21 = new Point((_local19.x + (_local5 * 2)), _local19.y); _local5 = ((_local27.x - _local23.x) / 4); _local24 = new Point((_local23.x + (_local5 * 1)), _local23.y); _local25 = new Point((_local23.x + (_local5 * 2)), _local23.y); _local26 = new Point((_local23.x + (_local5 * 3)), _local23.y); _local74 = new b2PolygonDef(); _local74.SetAsBox((10 / 60), (10 / 60)); _local74.density = 0; _local74.filter.groupIndex = 5; _local75 = new b2BodyDef(); _local75.position.x = (x / 30); _local75.position.y = (y / 30); _local76 = g.World.CreateBody(_local75); _local76.CreateShape(_local74); _local76.SetMassFromShapes(); _local74 = new b2PolygonDef(); _local74.SetAsBox((10 / 60), (10 / 60)); _local74.density = 0; _local74.filter.groupIndex = 6; _local75 = new b2BodyDef(); _local75.position.x = (x / 30); _local75.position.y = ((y + 20) / 30); _local76 = g.World.CreateBody(_local75); _local76.CreateShape(_local74); _local76.SetMassFromShapes(); _local74 = new b2PolygonDef(); _local74.SetAsBox((10 / 60), (10 / 60)); _local74.density = 0; _local74.filter.groupIndex = 7; _local75 = new b2BodyDef(); _local75.position.x = (x / 30); _local75.position.y = ((y + 40) / 30); _local76 = g.World.CreateBody(_local75); _local76.CreateShape(_local74); _local76.SetMassFromShapes(); _local28 = circleNodeAt(RimNode, _local6, 0, 4); _local33 = circleNodeAt(RimNode, _local11, 0, 4); lRim = _local28; rRim = _local33; _local48 = rope(_local6, _local12, 2); _local49 = rope(_local12, _local16, 2); _local50 = rope(_local16, _local19, 2); _local51 = rope(_local19, _local23, 2); lPts = [_local48, _local49, _local50, _local51]; _local52 = rope(_local11, _local15, 2); _local53 = rope(_local15, _local18, 2); _local54 = rope(_local18, _local22, 2); _local55 = rope(_local22, _local27, 2); rPts = [_local52, _local53, _local54, _local55]; _local56 = rope(_local23, _local24, 3); _local57 = rope(_local24, _local25, 3); _local58 = rope(_local25, _local26, 3); _local59 = rope(_local26, _local27, 3); joint(_local28, _local48, _local6); joint(_local48, _local49, _local12); joint(_local49, _local50, _local16); joint(_local50, _local51, _local19); joint(_local33, _local52, _local11); joint(_local52, _local53, _local15); joint(_local53, _local54, _local18); joint(_local54, _local55, _local22); joint(_local51, _local56, _local23); joint(_local56, _local57, _local24); joint(_local57, _local58, _local25); joint(_local58, _local59, _local26); joint(_local59, _local55, _local27); } public function joint(_arg1:b2Body, _arg2:b2Body, _arg3:Point):b2Body{ var _local4:b2RevoluteJointDef; var _local5:b2Vec2; _local4 = new b2RevoluteJointDef(); _local5 = new b2Vec2((_arg3.x / 30), (_arg3.y / 30)); _local4.Initialize(_arg1, _arg2, _local5); g.World.CreateJoint(_local4); } public function nextState(){ var _local1:Number; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:Point; var _local8:*; var _local9:*; var _local10:Array; graphics.clear(); graphics.lineStyle(1, LineColor); _local8 = new Array(); _local9 = new Array(); _local10 = new Array(); _local2 = lRim.GetPt(); _local3 = lPts[0].GetPt(); _local2.x = (_local2.x - x); _local2.y = (_local2.y - y); _local3.x = (_local3.x - x); _local3.y = (_local3.y - y); _local8.push(_local2); _local8.push(_local3); _local1 = 1; while (_local1 < 4) { _local2 = _local3; _local3 = lPts[_local1].GetPt(); _local3.x = (_local3.x - x); _local3.y = (_local3.y - y); _local8.push(_local3); _local1++; }; _local6 = rRim.GetPt(); _local7 = rPts[0].GetPt(); _local6.x = (_local6.x - x); _local6.y = (_local6.y - y); _local7.x = (_local7.x - x); _local7.y = (_local7.y - y); _local9.push(_local6); _local9.push(_local7); _local1 = 1; while (_local1 < 4) { _local6 = _local7; _local7 = rPts[_local1].GetPt(); rPts[_local1].GetPt().x = (_local7.x - x); _local7.y = (_local7.y - y); _local9.push(_local7); _local1++; }; _local1 = 0; while (_local1 < 5) { _local2 = _local8[_local1]; _local6 = _local9[_local1]; _local4 = new Point(((_local2.x + _local6.x) * 0.5), ((_local2.y + _local6.y) * 0.5)); _local10.push(_local4); _local1++; }; _local1 = 0; while (_local1 < 4) { _local2 = _local8[_local1]; _local3 = _local8[(_local1 + 1)]; _local4 = _local10[_local1]; _local5 = _local10[(_local1 + 1)]; _local6 = _local9[_local1]; _local7 = _local9[(_local1 + 1)]; graphics.moveTo(_local2.x, _local2.y); graphics.lineTo(_local5.x, _local5.y); graphics.lineTo(_local6.x, _local6.y); graphics.lineTo(_local7.x, _local7.y); graphics.lineTo(_local4.x, _local4.y); graphics.lineTo(_local3.x, _local3.y); graphics.lineTo(_local2.x, _local2.y); _local1++; }; } public function linesWhite(){ LineColor = 0xCCCCCC; } public function rope(_arg1:Point, _arg2:Point, _arg3:Number):b2Body{ var _local4:b2Body; var _local5:b2PolygonDef; var _local6:b2BodyDef; var _local7:b2RevoluteJointDef; var _local8:MovieClip; var _local9:*; var _local10:*; var _local11:b2Vec2; var _local12:*; var _local13:*; var _local14:Point; var _local15:*; var _local16:*; var _local17:*; var _local18:Number; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = Math.sqrt(((_local15 * _local15) + (_local16 * _local16))); _local18 = Math.atan2(_local16, _local15); rdeg = ((_local18 * 180) / Math.PI); _local14 = Point.interpolate(_arg1, _arg2, 0.5); _local11 = new b2Vec2((_local14.x / 30), (_local14.y / 30)); _local8 = new RopeNode(); _local8.x = _local14.x; _local8.y = _local14.y; _local8.width = (_local17 * 1.1); _local5 = new b2PolygonDef(); _local5.SetAsBox((_local8.width / 60), (_local8.height / 60)); _local5.density = 5; _local5.restitution = 0.1; _local5.filter.groupIndex = _arg3; _local8.rotation = rdeg; _local6 = new b2BodyDef(); _local6.position.x = (_local8.x / 30); _local6.position.y = (_local8.y / 30); _local6.angle = _local18; _local6.linearDamping = 0.4; _local6.angularDamping = 0.3; _local6.allowSleep = true; _local4 = g.World.CreateBody(_local6); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); return (_local4); } } }//package
Section 177
//BasketBall (BasketBall) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class BasketBall extends MovieClip { public var index:Number; public var SlowFor:Number; public var body:b2Body; public var Alive:Boolean; public function BasketBall(){ addFrameScript(0, frame1); index = 0; Alive = false; SlowFor = 0; gotoAndStop(g.BallIndex); } public function destroy(){ Alive = false; if (body){ g.World.DestroyBody(body); }; body = null; if (parent){ parent.removeChild(this); }; } public function init(_arg1:Point){ var _local2:b2BodyDef; var _local3:b2CircleDef; gotoAndStop(g.BallIndex); rotation = 0; _local3 = new b2CircleDef(); _local3.radius = (width / 60); _local3.density = 0.36; _local3.friction = 0.5; _local3.restitution = 0.75; _local3.filter.groupIndex = 1; _local2 = new b2BodyDef(); _local2.position.x = (x / 30); _local2.position.y = (y / 30); _local2.userData = this; _local2.linearDamping = 0.3; _local2.angularDamping = 0.05; body = g.World.CreateBody(_local2); body.CreateShape(_local3); body.SetMassFromShapes(); body.SetLinearVelocity(new b2Vec2(_arg1.x, _arg1.y)); body.SetAngularVelocity(3); } function frame1(){ stop(); } } }//package
Section 178
//BasketL (BasketL) package { import flash.display.*; public class BasketL extends Basket { public var fx_support_1_105:MovieClip; } }//package
Section 179
//BasketL2 (BasketL2) package { import flash.display.*; public class BasketL2 extends Basket { public var fx_support_1_105:MovieClip; } }//package
Section 180
//BasketPost (BasketPost) package { public class BasketPost extends Box { } }//package
Section 181
//BasketR (BasketR) package { import flash.display.*; public class BasketR extends Basket { public var fx_support_1_205:MovieClip; } }//package
Section 182
//BasketR2 (BasketR2) package { import flash.display.*; public class BasketR2 extends Basket { public var fx_support_1_205:MovieClip; } }//package
Section 183
//BeamBoxA (BeamBoxA) package { public class BeamBoxA extends Box { } }//package
Section 184
//Board (Board) package { public class Board extends Box { public function Board(){ super(8, true, 0.15); } } }//package
Section 185
//bounceA (bounceA) package { import flash.media.*; public dynamic class bounceA extends Sound { } }//package
Section 186
//bounceB (bounceB) package { import flash.media.*; public dynamic class bounceB extends Sound { } }//package
Section 187
//bounceC (bounceC) package { import flash.media.*; public dynamic class bounceC extends Sound { } }//package
Section 188
//bounceD (bounceD) package { import flash.media.*; public dynamic class bounceD extends Sound { } }//package
Section 189
//Box (Box) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Box extends MovieClip { public var BallFX:BoxFX; public var FilterGroup:Number; public var BallSpin:Number; public var FailSpeed:Number; public function Box(_arg1:Number=0, _arg2:Boolean=false, _arg3:Number=0, _arg4:Number=0){ var _local5:b2Body; var _local6:b2BodyDef; var _local7:b2CircleDef; var _local8:Array; super(); if (!g.World){ return; }; FilterGroup = _arg1; if (name.indexOf("fx") != -1){ _local8 = name.split("_"); FailSpeed = Number(_local8[2]); BallSpin = Number(_local8[3]); if (isNaN(FailSpeed)){ FailSpeed = 0; }; if (isNaN(BallSpin)){ BallSpin = 0; }; BallFX = new BoxFX(FailSpeed, BallSpin); FilterGroup = 10; }; boxDef = new b2PolygonDef(); boxDef.SetAsBox((width / 60), (height / 60)); boxDef.friction = 0.3; boxDef.density = _arg4; if (_arg4 > 0){ boxDef.userData = this; }; if (_arg3 > 0){ boxDef.restitution = _arg3; } else { boxDef.restitution = 0.75; }; boxDef.filter.groupIndex = FilterGroup; _local6 = new b2BodyDef(); if (_arg2){ _local6.position.x = ((parent.x + x) / 30); _local6.position.y = ((parent.y + y) / 30); } else { _local6.position.x = (x / 30); _local6.position.y = (y / 30); }; if (BallFX){ _local6.userData = BallFX; }; _local5 = g.World.CreateBody(_local6); _local5.CreateShape(boxDef); _local5.SetMassFromShapes(); } } }//package
Section 190
//BoxFX (BoxFX) package { public class BoxFX { public var BallSpin:Number; public var FailSpeed:Number; public function BoxFX(_arg1:Number, _arg2:Number){ FailSpeed = _arg1; BallSpin = _arg2; } } }//package
Section 191
//car_ctsA (car_ctsA) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class car_ctsA extends MovieClip { public function car_ctsA(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local3 = new Polygon(4); _local1.polyDef.vertices[0].Set((10 / 30), (31 / 30)); _local1.polyDef.vertices[1].Set((48 / 30), (24 / 30)); _local1.polyDef.vertices[2].Set((52 / 30), (92 / 30)); _local1.polyDef.vertices[3].Set((4 / 30), (87 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((48 / 30), (24 / 30)); _local2.polyDef.vertices[1].Set((104 / 30), (1 / 30)); _local2.polyDef.vertices[2].Set((194 / 30), (1 / 30)); _local2.polyDef.vertices[3].Set((253 / 30), (30 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((253 / 30), (30 / 30)); _local3.polyDef.vertices[1].Set((341 / 30), (46 / 30)); _local3.polyDef.vertices[2].Set((346 / 30), (88 / 30)); _local3.polyDef.vertices[3].Set((258 / 30), (92 / 30)); _local3.x = x; _local3.y = y; _local3.init(); } } }//package
Section 192
//car_ctsB (car_ctsB) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class car_ctsB extends MovieClip { public function car_ctsB(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local3 = new Polygon(4); _local1.polyDef.vertices[0].Set((303 / 30), (26 / 30)); _local1.polyDef.vertices[1].Set((339 / 30), (31 / 30)); _local1.polyDef.vertices[2].Set((347 / 30), (85 / 30)); _local1.polyDef.vertices[3].Set((297 / 30), (91 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((303 / 30), (26 / 30)); _local2.polyDef.vertices[1].Set((97 / 30), (30 / 30)); _local2.polyDef.vertices[2].Set((155 / 30), (1 / 30)); _local2.polyDef.vertices[3].Set((248 / 30), (1 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((97 / 30), (30 / 30)); _local3.polyDef.vertices[1].Set((82 / 30), (91 / 30)); _local3.polyDef.vertices[2].Set((0 / 30), (87 / 30)); _local3.polyDef.vertices[3].Set((6 / 30), (46 / 30)); _local3.x = x; _local3.y = y; _local3.init(); } } }//package
Section 193
//CasinoFunk01 (CasinoFunk01) package { import flash.media.*; public dynamic class CasinoFunk01 extends Sound { } }//package
Section 194
//CasinoFunk02 (CasinoFunk02) package { import flash.media.*; public dynamic class CasinoFunk02 extends Sound { } }//package
Section 195
//CasinoFunk03 (CasinoFunk03) package { import flash.media.*; public dynamic class CasinoFunk03 extends Sound { } }//package
Section 196
//CasinoFunk04 (CasinoFunk04) package { import flash.media.*; public dynamic class CasinoFunk04 extends Sound { } }//package
Section 197
//CasinoFunk05 (CasinoFunk05) package { import flash.media.*; public dynamic class CasinoFunk05 extends Sound { } }//package
Section 198
//CheckBox_disabledIcon (CheckBox_disabledIcon) package { import flash.display.*; public dynamic class CheckBox_disabledIcon extends MovieClip { } }//package
Section 199
//CheckBox_downIcon (CheckBox_downIcon) package { import flash.display.*; public dynamic class CheckBox_downIcon extends MovieClip { } }//package
Section 200
//CheckBox_overIcon (CheckBox_overIcon) package { import flash.display.*; public dynamic class CheckBox_overIcon extends MovieClip { } }//package
Section 201
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDisabledIcon extends MovieClip { } }//package
Section 202
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDownIcon extends MovieClip { } }//package
Section 203
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon) package { import flash.display.*; public dynamic class CheckBox_selectedOverIcon extends MovieClip { } }//package
Section 204
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon) package { import flash.display.*; public dynamic class CheckBox_selectedUpIcon extends MovieClip { } }//package
Section 205
//CheckBox_upIcon (CheckBox_upIcon) package { import flash.display.*; public dynamic class CheckBox_upIcon extends MovieClip { } }//package
Section 206
//ContactListener (ContactListener) package { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class ContactListener extends b2ContactListener { override public function Add(_arg1:b2ContactPoint):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:Number; var _local8:*; var _local9:b2FilterData; var _local10:b2Body; var _local11:BoxFX; var _local12:*; var _local13:Boolean; _local8 = _arg1.shape1.GetFilterData(); _local9 = _arg1.shape2.GetFilterData(); _local2 = _local8.groupIndex; _local3 = _local9.groupIndex; if ((((_local2 == 1)) || ((_local3 == 1)))){ _local4 = -1; if ((_arg1.shape1.m_body.m_userData is BasketBall)){ _local10 = _arg1.shape1.m_body; _local4 = _local10.m_userData.index; }; if ((_arg1.shape2.m_body.m_userData is BasketBall)){ _local10 = _arg1.shape2.m_body; _local4 = _local10.m_userData.index; }; if ((((_local2 == 4)) || ((_local3 == 4)))){ _local5 = _local10.m_linearVelocity.Length(); _local6 = (_local5 / 15); Juke.Box.rim(_local6); g.Player.rim(_local4); return; }; if ((((_local2 == 8)) || ((_local3 == 8)))){ g.Player.rim(_local4); }; _local5 = _local10.m_linearVelocity.Length(); if (((!((_local2 == 2))) && (!((_local3 == 2))))){ if (_local5 > 4){ _local6 = (_local5 / 20); Juke.Box.bounce(_local6); }; }; if ((((_local2 == 10)) || ((_local3 == 10)))){ if (_local2 == 10){ _local11 = BoxFX(_arg1.shape1.m_body.m_userData); }; if (_local3 == 10){ _local11 = BoxFX(_arg1.shape1.m_body.m_userData); }; if (_local11){ _local7 = _local11.BallSpin; _local12 = false; _local13 = false; if (_local7 > 200){ _local12 = true; _local7 = (_local7 - 200); } else { if (_local7 > 100){ _local13 = true; _local7 = (_local7 - 100); }; }; if ((((((((_local11.BallSpin > 0)) && ((_local5 < _local11.FailSpeed)))) || (_local12))) || (_local13))){ if ((((((_local10.m_angularVelocity >= 0)) || (_local13))) && (!(_local12)))){ if (_local10.m_angularVelocity < _local7){ _local10.SetAngularVelocity(_local7); }; } else { if (_local10.m_angularVelocity > -(_local7)){ _local10.SetAngularVelocity(-(_local7)); }; }; }; if (_local5 < _local11.FailSpeed){ g.Player.miss(_local4, true); }; }; }; }; } } }//package
Section 207
//CreativeBlock (CreativeBlock) package { import flash.text.*; public dynamic class CreativeBlock extends Font { } }//package
Section 208
//Demo (Demo) package { import flash.geom.*; public class Demo extends Level { private var ThrowIn:Number; private var Index:Number; private var ClockIn:Number; private var Balls:Array; public function Demo(_arg1:Object=null){ addFrameScript(1, frame2); trace("Demo !"); g.Sim = this; super(g.Game); g.Game.demo(this); ClockIn = 5; addEventListener("enterFrame", clock); ThrowIn = 45; Index = 0; Balls = []; } override public function destroy(){ trace("Demo->destroy"); super.destroy(); removeEventListener("enterFrame", clock); } function frame2(){ stop(); g.Net.init(); } public function clock(_arg1:Object=null){ if (ClockIn > 0){ ClockIn--; } else { g.Net.linesWhite(); nextState(); ThrowIn--; if (ThrowIn == 0){ shot(); ThrowIn = 170; }; }; } public function shot(){ var _local1:BasketBall; var _local2:Point; var _local3:Number; for each (_local1 in Balls) { _local1.destroy(); }; Balls = []; _local1 = new BasketBall(); _local1.x = -100; _local1.y = 350; Balls.push(_local1); g.BallLayer.addChild(_local1); _local1.index = -1; _local3 = Math.floor((Math.random() * 9.99)); switch (_local3){ case 0: _local2 = Point.polar(20, (-45 * g.D2R)); break; case 1: _local2 = Point.polar(20.5, (-50 * g.D2R)); break; case 2: _local2 = Point.polar(20.5, (-45 * g.D2R)); break; case 3: _local2 = Point.polar(20, (-40 * g.D2R)); break; case 4: _local2 = Point.polar(20.2, (-40 * g.D2R)); break; case 5: _local2 = Point.polar(22, (-50 * g.D2R)); break; case 6: _local2 = Point.polar(22, (-55 * g.D2R)); break; case 7: _local2 = Point.polar(21, (-55 * g.D2R)); break; case 8: _local2 = Point.polar(20, (-45 * g.D2R)); break; case 9: _local2 = Point.polar(20, (-50 * g.D2R)); break; }; _local1.init(_local2); _local1.Alive = true; } } }//package
Section 209
//DumpsterA1 (DumpsterA1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class DumpsterA1 extends Polygon { public function DumpsterA1(_arg1:Number=0, _arg2:Boolean=false){ super(4, 0); polyDef.vertices[0].Set((7 / 30), (38 / 30)); polyDef.vertices[1].Set((173 / 30), (0 / 30)); polyDef.vertices[2].Set((173 / 30), (190 / 30)); polyDef.vertices[3].Set((7 / 30), (190 / 30)); init(); } } }//package
Section 210
//Excavator60A (Excavator60A) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Excavator60A extends MovieClip { public function Excavator60A(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(5); _local3 = new Polygon(4); _local4 = new Polygon(3); _local5 = new Polygon(4); _local6 = new Polygon(4); _local7 = new Polygon(4); _local1.polyDef.vertices[0].Set((0 / 30), (187 / 30)); _local1.polyDef.vertices[1].Set((8 / 30), (175 / 30)); _local1.polyDef.vertices[2].Set((11 / 30), (150 / 30)); _local1.polyDef.vertices[3].Set((40 / 30), (216 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((11 / 30), (150 / 30)); _local2.polyDef.vertices[1].Set((95 / 30), (0 / 30)); _local2.polyDef.vertices[2].Set((104 / 30), (4 / 30)); _local2.polyDef.vertices[3].Set((104 / 30), (37 / 30)); _local2.polyDef.vertices[4].Set((26 / 30), (156 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((106 / 30), (13 / 30)); _local3.polyDef.vertices[1].Set((232 / 30), (84 / 30)); _local3.polyDef.vertices[2].Set((196 / 30), (97 / 30)); _local3.polyDef.vertices[3].Set((103 / 30), (36 / 30)); _local3.x = x; _local3.y = y; _local3.init(); _local4.polyDef.vertices[0].Set((232 / 30), (84 / 30)); _local4.polyDef.vertices[1].Set((191 / 30), (143 / 30)); _local4.polyDef.vertices[2].Set((196 / 30), (97 / 30)); _local4.x = x; _local4.y = y; _local4.init(); _local5.polyDef.vertices[0].Set((191 / 30), (143 / 30)); _local5.polyDef.vertices[1].Set((290 / 30), (143 / 30)); _local5.polyDef.vertices[2].Set((290 / 30), (201 / 30)); _local5.polyDef.vertices[3].Set((191 / 30), (201 / 30)); _local5.x = x; _local5.y = y; _local5.init(); _local6.polyDef.vertices[0].Set((113 / 30), (195 / 30)); _local6.polyDef.vertices[1].Set((121 / 30), (111 / 30)); _local6.polyDef.vertices[2].Set((187 / 30), (111 / 30)); _local6.polyDef.vertices[3].Set((187 / 30), (195 / 30)); _local6.x = x; _local6.y = y; _local6.init(); _local7.polyDef.vertices[0].Set((85 / 30), (260 / 30)); _local7.polyDef.vertices[1].Set((85 / 30), (205 / 30)); _local7.polyDef.vertices[2].Set((285 / 30), (205 / 30)); _local7.polyDef.vertices[3].Set((285 / 30), (260 / 30)); _local7.x = x; _local7.y = y; _local7.init(); } } }//package
Section 211
//Excavator60B (Excavator60B) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Excavator60B extends MovieClip { public function Excavator60B(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(5); _local3 = new Polygon(4); _local4 = new Polygon(3); _local5 = new Polygon(4); _local6 = new Polygon(4); _local7 = new Polygon(4); _local1.polyDef.vertices[0].Set((283 / 30), (152 / 30)); _local1.polyDef.vertices[1].Set((285 / 30), (177 / 30)); _local1.polyDef.vertices[2].Set((295 / 30), (187 / 30)); _local1.polyDef.vertices[3].Set((254 / 30), (217 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((283 / 30), (152 / 30)); _local2.polyDef.vertices[1].Set((266 / 30), (156 / 30)); _local2.polyDef.vertices[2].Set((190 / 30), (36 / 30)); _local2.polyDef.vertices[3].Set((187 / 30), (5 / 30)); _local2.polyDef.vertices[4].Set((196 / 30), (0 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((60 / 30), (85 / 30)); _local3.polyDef.vertices[1].Set((187 / 30), (13 / 30)); _local3.polyDef.vertices[2].Set((189 / 30), (36 / 30)); _local3.polyDef.vertices[3].Set((95 / 30), (95 / 30)); _local3.x = x; _local3.y = y; _local3.init(); _local4.polyDef.vertices[0].Set((60 / 30), (85 / 30)); _local4.polyDef.vertices[1].Set((95 / 30), (95 / 30)); _local4.polyDef.vertices[2].Set((103 / 30), (143 / 30)); _local4.x = x; _local4.y = y; _local4.init(); _local5.polyDef.vertices[0].Set((103 / 30), (143 / 30)); _local5.polyDef.vertices[1].Set((103 / 30), (202 / 30)); _local5.polyDef.vertices[2].Set((0 / 30), (202 / 30)); _local5.polyDef.vertices[3].Set((0 / 30), (143 / 30)); _local5.x = x; _local5.y = y; _local5.init(); _local6.polyDef.vertices[0].Set((173 / 30), (111 / 30)); _local6.polyDef.vertices[1].Set((180 / 30), (194 / 30)); _local6.polyDef.vertices[2].Set((106 / 30), (195 / 30)); _local6.polyDef.vertices[3].Set((109 / 30), (110 / 30)); _local6.x = x; _local6.y = y; _local6.init(); _local7.polyDef.vertices[0].Set((207 / 30), (204 / 30)); _local7.polyDef.vertices[1].Set((207 / 30), (263 / 30)); _local7.polyDef.vertices[2].Set((6 / 30), (263 / 30)); _local7.polyDef.vertices[3].Set((6 / 30), (204 / 30)); _local7.x = x; _local7.y = y; _local7.init(); } } }//package
Section 212
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 213
//fonts (fonts) package { import flash.text.*; public class fonts { public static var Button2:TextFormat; public static var Text1:TextFormat; public static var Text2:TextFormat; public static var Caption1:TextFormat; public static var Caption2:TextFormat; public static var Numbers:TextFormat; public static var Button1:TextFormat; public static function apply(_arg1:TextField, _arg2:TextFormat){ _arg1.antiAliasType = "advanced"; _arg1.embedFonts = true; _arg1.setTextFormat(_arg2); _arg1.defaultTextFormat = _arg2; } } }//package
Section 214
//g (g) package { import flash.display.*; import Box2D.Dynamics.*; public class g { public static var Player:aiPlayer; public static var Splash:String; public static var HS:String; public static var NoAds:Boolean; public static var Game:GameInstance; public static var Localhost:Boolean; public static var KingHelp:Boolean = true; public static var Interface:GameInterface; public static var MG:String; public static var KingMode:Boolean = false; public static var PreRoll:String; public static var NoBot:Boolean; public static var Games:Array; public static var R2D:Number = 57.2957795130823; public static var BallIndex:Number = 1; public static var PreRollCode:String; public static var TimeMode:Boolean = false; public static var D2R:Number = 0.0174532925199433; public static var Sim:Demo; public static var QuickLoader:Boolean; public static var Start:MovieClip; public static var FrameRate:Number; public static var TimeHelp:Boolean = true; public static var MouseDown:Boolean = false; public static var WT:String; public static var cLevel:Level; public static var AdUnit:MovieClip; public static var GameAuth:Boolean; public static var Domain:String; public static var FirstHelp:Boolean = true; public static var BallLayer:MovieClip; public static var cGame:Object; public static var FromFirstHelp:Boolean = false; public static var World:b2World; public static var SplashLoader:Loader; public static var Net:Basket; } }//package
Section 215
//GameData (GameData) package { import flash.net.*; public class GameData { public var Scores:Array; public var Lives:Number; public var KingBonus:Number; public var PlayerName:String; public var Levels:Array; public var Safeties:Number; public var LastModified:Date; public static var GAMEID:String = "qigames_perfecthoopz2_dev_00"; public function GameData(_arg1:String){ var _local2:Number; super(); PlayerName = _arg1; LastModified = new Date(); Levels = [true]; _local2 = 0; while (_local2 < 29) { Levels.push(false); _local2++; }; Scores = []; _local2 = 0; while (_local2 < 30) { Scores.push(0); _local2++; }; KingBonus = 0; Lives = 5; Safeties = 1; } public static function init(){ var _local3:*; var _local4:GameData; var _local1:SharedObject = SharedObject.getLocal(GameData.GAMEID, "/"); var _local2:Array = _local1.data.GAMES; if ((((_local1.data.GAMES == undefined)) || (!(_local1.data.GAMES)))){ trace("First time flash cookie"); _local3 = new GameData("normal"); _local4 = new GameData("time"); _local1.data.GAMES = [_local3, _local4]; _local1.flush(); }; g.Games = _local1.data.GAMES; g.cGame = g.Games[0]; } public static function orderGames(_arg1:Object, _arg2:Object):Number{ if (_arg1.LASTMODIFIED > _arg2.LASTMODIFIED){ return (-1); }; if (_arg1.LASTMODIFIED < _arg2.LASTMODIFIED){ return (1); }; return (0); } public static function save(){ var _local1:SharedObject = SharedObject.getLocal(GameData.GAMEID, "/"); _local1.data.GAMES = g.Games; _local1.flush(); } } }//package
Section 216
//GameInstance (GameInstance) package { import gdk.game.*; public class GameInstance extends gGame { public var cLevel:Level; public var cPlayer:aiPlayer; public var Levels:Array; public function GameInstance(){ g.Game = this; Levels = []; Levels.push(level01); Levels.push(level03); Levels.push(level08); Levels.push(level10); Levels.push(level18); Levels.push(level17); Levels.push(level13); Levels.push(level02); Levels.push(level06); Levels.push(level24); Levels.push(level09); Levels.push(level07); Levels.push(level15); Levels.push(level25); Levels.push(level11); Levels.push(level19); Levels.push(level20); Levels.push(level16); Levels.push(level05); Levels.push(level23); Levels.push(level12); Levels.push(level04); Levels.push(level22); Levels.push(level14); Levels.push(level21); } public function demo(_arg1:Level){ } override public function pausePlay(){ super.pausePlay(); } public function reset(){ destroy(); if (cLevel){ cLevel.destroy(); removeChild(cLevel); cLevel = null; }; } public function init(_arg1:Object=null){ var _local2:Class; cPlayer = g.Player; _local2 = Levels[(ui.LevelSelect.Index - 1)]; cLevel = new _local2(this); addChild(cLevel); } override public function resumePlay(){ super.resumePlay(); } override protected function nextState(){ cLevel.nextState(); cPlayer.nextState(); } } }//package
Section 217
//GameInterface (GameInterface) package { import flash.display.*; import flash.events.*; import flash.ui.*; public class GameInterface extends MovieClip { public var Player:aiPlayer; public var MouseDown:Boolean; private var Y1:Number; private var X0:Number; private var X1:Number; public var GameAlive:Boolean; public var cursor_mc:MovieClip; public var GamePaused:Boolean; public var MouseOutside:Boolean; public var menu_btn:SimpleButton; private var Y0:Number; public function GameInterface(){ addFrameScript(0, frame1); trace("GameInterface unique instance ..."); g.Interface = this; GameAlive = false; MouseOutside = false; GamePaused = false; MouseDown = false; addEventListener(Event.ENTER_FRAME, evtEnterFrame); stage.addEventListener(MouseEvent.MOUSE_DOWN, evtMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, evtMouseUp); stage.addEventListener(MouseEvent.MOUSE_MOVE, evtMouseMove); X0 = 0; Y0 = 0; X1 = Setup.ScreenW; Y1 = Setup.ScreenH; } public function evtMouseDown(_arg1:MouseEvent){ if (!GameAlive){ return; }; if (GamePaused){ return; }; MouseOutside = false; if ((((mouseX < X0)) || ((mouseX > X1)))){ MouseOutside = true; }; if ((((mouseY < Y0)) || ((mouseY > Y1)))){ MouseOutside = true; }; if (!MouseOutside){ Player.evtMouseDown(); MouseDown = (g.MouseDown = true); }; } public function resumePlay(){ if (!GamePaused){ return; }; GamePaused = false; cursor_mc.visible = true; showStuff(); } public function pausePlay(_arg1:Event=null){ if (GamePaused){ return; }; GamePaused = true; hideStuff(); cursor_mc.visible = false; Mouse.show(); } public function hideStuff(){ } public function init(){ trace("GameInterface->init"); GameAlive = true; GamePaused = false; MouseDown = false; Player = g.Player; showStuff(); } public function evtEnterFrame(_arg1:Event){ if (!GameAlive){ return; }; if (GamePaused){ return; }; } function btnMenu(_arg1:Event=null){ if (!GameAlive){ return; }; } function frame1(){ stop(); } public function showStuff(){ } public function evtMouseMove(_arg1:MouseEvent){ if (!MouseOutside){ MouseDown = (g.MouseDown = _arg1.buttonDown); }; } public function evtMouseUp(_arg1:MouseEvent){ if (!GameAlive){ return; }; MouseDown = (g.MouseDown = false); Player.evtMouseUp(); } } }//package
Section 218
//glo (glo) package { public class glo { public static var bal:Object = new Object(); } }//package
Section 219
//Juke (Juke) package { public class Juke { public static var Box:JukeBox; } }//package
Section 220
//JukeBox (JukeBox) package { import flash.display.*; import flash.media.*; public class JukeBox extends MovieClip { public var TrackMenuChannel:SoundChannel; public var TracksMenuLoop:Array; public var TrackGameChannel:SoundChannel; public var TrackSeleChannel:SoundChannel; public var TracksSele:Array; public var TrackGameIndex:Number; public var VOLUME_MUSIC:Number; public var TracksMenu:Array; public var TracksGame:Array; public var MusicChannel:SoundChannel; public var MUTE_SFX:Boolean; public var OPT_VOLUME_MUSIC:Number; public var TrackMenuIndex:Number; public var VOLUME_SELE:Number; public var TracksSeleLoop:Array; public var TrackSeleIndex:Number; public var MUTE_MUSIC:Boolean; public var OPT_VOLUME_SFX:Number; public var VOLUME_SFX1:Number; public var VOLUME_MENU:Number; public var VOLUME_GAME:Number; public var VOLUME_SFX2:Number; public var VOLUME_SFX3:Number; public var TracksGameLoop:Array; public static var sfxClick:Sound; public static var VolSfxWeapons:Number; public static var Bounces:Array; public static var sfxSwishA:Sound; public static var sfxSwishB:Sound; public static var sfxRimA:Sound; public static var VolSfxReload:Number; public static var sfxVictory:Sound; public static var sfxDefeat:Sound; public static var sfxExplosionMB:Sound; public static var VolSfxUI:Number; public static var Swishes:Array; public static var VolSfxVoices:Number; public static var sfxBounceA:Sound; public static var sfxBounceB:Sound; public static var sfxBounceC:Sound; public static var sfxBounceD:Sound; public static var Rims:Array; public static var sfxLoading:Sound; public static var VolSfxExplosions:Number; public function JukeBox(){ trace("JukeBox instance ..."); Juke.Box = this; MUTE_MUSIC = false; MUTE_SFX = false; VOLUME_SFX1 = 0.6; VOLUME_SFX2 = 0.6; VOLUME_SFX3 = 0.6; VOLUME_GAME = 0.1; VOLUME_MENU = 0.4; VOLUME_SELE = 0.4; JukeBox.VolSfxWeapons = 0.3; JukeBox.VolSfxReload = 1; JukeBox.VolSfxUI = 1; JukeBox.VolSfxVoices = 0.6; JukeBox.VolSfxExplosions = 0.6; OPT_VOLUME_MUSIC = 0.5; OPT_VOLUME_SFX = 0.5; } public function menuScore(){ var _local1:Sound; if (TrackMenuChannel){ return; }; stopMenuScore(); stopSeleScore(); stopGameScore(); _local1 = TracksMenu[TrackMenuIndex]; TrackMenuChannel = _local1.play(0, TracksMenuLoop[TrackMenuIndex]); if (MUTE_MUSIC){ setChannelVolume(TrackMenuChannel, 0); } else { setChannelVolume(TrackMenuChannel, VOLUME_MENU); }; TrackMenuChannel.addEventListener("soundComplete", nextTrackMenu); VOLUME_MUSIC = VOLUME_MENU; MusicChannel = TrackMenuChannel; } public function seleScore(){ var _local1:Sound; } public function bounce(_arg1:Number){ var _local2:Sound; var _local3:Number; if (MUTE_SFX){ return; }; _local3 = Math.floor((Math.random() * 3.99)); _local2 = JukeBox.Bounces[_local3]; setChannelVolume(_local2.play(), (1 * _arg1)); } public function musicOff(){ MUTE_MUSIC = true; if (MusicChannel){ setChannelVolume(MusicChannel, 0); }; } public function stopMenuScore(){ if (TrackMenuChannel){ TrackMenuChannel.stop(); TrackMenuChannel.removeEventListener("soundComplete", nextTrackMenu); }; TrackMenuChannel = null; } public function nextTrackSele(_arg1:Object=null){ var _local2:Sound; stopMenuScore(); stopSeleScore(); stopGameScore(); TrackSeleIndex++; if (TrackSeleIndex >= TracksSele.length){ TrackSeleIndex = 0; }; _local2 = TracksSele[TrackSeleIndex]; TrackSeleChannel = _local2.play(0, TracksSeleLoop[TrackSeleIndex]); if (MUTE_MUSIC){ setChannelVolume(TrackSeleChannel, 0); } else { setChannelVolume(TrackSeleChannel, VOLUME_SELE); }; TrackSeleChannel.addEventListener("soundComplete", nextTrackSele); VOLUME_MUSIC = VOLUME_SELE; MusicChannel = TrackSeleChannel; } public function rim(_arg1:Number){ var _local2:Sound; var _local3:Number; if (MUTE_SFX){ return; }; _local3 = 0; _local2 = JukeBox.Rims[_local3]; setChannelVolume(_local2.play(), (0.8 * _arg1)); } public function init(){ JukeBox.sfxBounceA = new bounceA(); JukeBox.sfxBounceB = new bounceB(); JukeBox.sfxBounceC = new bounceC(); JukeBox.sfxBounceD = new bounceD(); JukeBox.Bounces = [JukeBox.sfxBounceA, JukeBox.sfxBounceB, JukeBox.sfxBounceC, JukeBox.sfxBounceD]; JukeBox.sfxRimA = new rimA(); JukeBox.Rims = [JukeBox.sfxRimA]; JukeBox.sfxSwishA = new swishA(); JukeBox.sfxSwishB = new swishB(); JukeBox.Swishes = [JukeBox.sfxSwishA, JukeBox.sfxSwishB]; JukeBox.sfxClick = new SfxClick(); TracksMenuLoop = [6, 6, 2, 7, 7]; TracksMenu = []; TracksMenu.push(new CasinoFunk01()); TracksMenu.push(new CasinoFunk02()); TracksMenu.push(new CasinoFunk03()); TracksMenu.push(new CasinoFunk04()); TracksMenu.push(new CasinoFunk05()); TrackMenuIndex = 0; TracksSeleLoop = [10]; TracksSele = []; TrackSeleIndex = 0; TracksGameLoop = [3, 3, 3, 3]; TracksGame = []; TrackGameIndex = 0; TrackMenuChannel = null; TrackSeleChannel = null; TrackGameChannel = null; } public function victory(){ stopScore(); if (MUTE_SFX){ return; }; playSfx(JukeBox.sfxVictory, VOLUME_MENU); } public function btnClick(){ swish(1); } public function nextTrackMenu(_arg1:Object=null){ var _local2:Sound; stopMenuScore(); stopSeleScore(); stopGameScore(); TrackMenuIndex++; if (TrackMenuIndex >= TracksMenu.length){ TrackMenuIndex = 0; }; _local2 = TracksMenu[TrackMenuIndex]; TrackMenuChannel = _local2.play(0, TracksMenuLoop[TrackMenuIndex]); if (MUTE_MUSIC){ setChannelVolume(TrackMenuChannel, 0); } else { setChannelVolume(TrackMenuChannel, VOLUME_MENU); }; TrackMenuChannel.addEventListener("soundComplete", nextTrackMenu); VOLUME_MUSIC = VOLUME_MENU; MusicChannel = TrackMenuChannel; } public function swish(_arg1:Number){ var _local2:Sound; var _local3:Number; if (MUTE_SFX){ return; }; _local3 = Math.floor((Math.random() * 1.99)); _local2 = JukeBox.Swishes[_local3]; setChannelVolume(_local2.play(), (1.2 * _arg1)); } public function stopSeleScore(){ if (TrackSeleChannel){ TrackSeleChannel.stop(); TrackSeleChannel.removeEventListener("soundComplete", nextTrackSele); }; TrackSeleChannel = null; } public function sfxOff(){ MUTE_SFX = true; } public function nextTrackGame(_arg1:Object=null){ var _local2:Sound; stopMenuScore(); stopSeleScore(); stopGameScore(); TrackGameIndex++; if (TrackGameIndex >= TracksGame.length){ TrackGameIndex = 0; }; _local2 = TracksGame[TrackGameIndex]; TrackGameChannel = _local2.play(0, TracksGameLoop[TrackGameIndex]); if (MUTE_MUSIC){ setChannelVolume(TrackGameChannel, 0); } else { setChannelVolume(TrackGameChannel, VOLUME_GAME); }; TrackGameChannel.addEventListener("soundComplete", nextTrackGame); VOLUME_MUSIC = VOLUME_GAME; MusicChannel = TrackGameChannel; } public function setChannelVolume(_arg1:SoundChannel, _arg2:Number){ var _local3:SoundTransform = _arg1.soundTransform; _local3.volume = _arg2; _arg1.soundTransform = _local3; } public function defeat(){ stopScore(); if (MUTE_SFX){ return; }; playSfx(JukeBox.sfxDefeat, VOLUME_MENU); } public function sfxOn(){ MUTE_SFX = false; } public function gameScore(){ var _local1:Sound; } public function playSfx(_arg1:Sound, _arg2:Number){ if (MUTE_SFX){ return; }; setChannelVolume(_arg1.play(), ((_arg2 * OPT_VOLUME_SFX) * 2)); } public function toggle(){ playSfx(new sfxToggle(), VOLUME_SFX1); } public function stopGameScore(){ if (TrackGameChannel){ TrackGameChannel.stop(); TrackGameChannel.removeEventListener("soundComplete", nextTrackGame); }; TrackGameChannel = null; } public function musicOn(){ MUTE_MUSIC = false; if (MusicChannel){ setChannelVolume(MusicChannel, VOLUME_MUSIC); }; } public function buzzer(){ playSfx(new SfxBuzzer(), VOLUME_SFX1); } } }//package
Section 221
//LampPostA1 (LampPostA1) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class LampPostA1 extends MovieClip { public function LampPostA1(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(6); _local3 = new Polygon(4); _local4 = new Polygon(4); _local5 = new Polygon(4); _local6 = new Polygon(4); _local1.polyDef.vertices[0].Set((5 / 30), (25 / 30)); _local1.polyDef.vertices[1].Set((10 / 30), (25 / 30)); _local1.polyDef.vertices[2].Set((10 / 30), (345 / 30)); _local1.polyDef.vertices[3].Set((5 / 30), (345 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((10 / 30), (345 / 30)); _local2.polyDef.vertices[1].Set((15 / 30), (350 / 30)); _local2.polyDef.vertices[2].Set((15 / 30), (404 / 30)); _local2.polyDef.vertices[3].Set((0 / 30), (404 / 30)); _local2.polyDef.vertices[4].Set((0 / 30), (350 / 30)); _local2.polyDef.vertices[5].Set((5 / 30), (345 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((10 / 30), (40 / 30)); _local3.polyDef.vertices[1].Set((60 / 30), (10 / 30)); _local3.polyDef.vertices[2].Set((59 / 30), (14 / 30)); _local3.polyDef.vertices[3].Set((10 / 30), (50 / 30)); _local3.x = x; _local3.y = y; _local3.init(); _local4.polyDef.vertices[0].Set((60 / 30), (10 / 30)); _local4.polyDef.vertices[1].Set((90 / 30), (0 / 30)); _local4.polyDef.vertices[2].Set((87 / 30), (8 / 30)); _local4.polyDef.vertices[3].Set((59 / 30), (14 / 30)); _local4.x = x; _local4.y = y; _local4.init(); _local5.polyDef.vertices[0].Set((90 / 30), (0 / 30)); _local5.polyDef.vertices[1].Set((140 / 30), (0 / 30)); _local5.polyDef.vertices[2].Set((140 / 30), (8 / 30)); _local5.polyDef.vertices[3].Set((87 / 30), (8 / 30)); _local5.x = x; _local5.y = y; _local5.init(); _local6.polyDef.vertices[0].Set((140 / 30), (0 / 30)); _local6.polyDef.vertices[1].Set((190 / 30), (0 / 30)); _local6.polyDef.vertices[2].Set((190 / 30), (15 / 30)); _local6.polyDef.vertices[3].Set((140 / 30), (15 / 30)); _local6.x = x; _local6.y = y; _local6.init(); } } }//package
Section 222
//LampPostA2 (LampPostA2) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class LampPostA2 extends MovieClip { public function LampPostA2(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(6); _local3 = new Polygon(4); _local4 = new Polygon(4); _local5 = new Polygon(4); _local6 = new Polygon(4); _local1.polyDef.vertices[0].Set((177 / 30), (25 / 30)); _local1.polyDef.vertices[1].Set((184 / 30), (25 / 30)); _local1.polyDef.vertices[2].Set((184 / 30), (345 / 30)); _local1.polyDef.vertices[3].Set((177 / 30), (345 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((184 / 30), (345 / 30)); _local2.polyDef.vertices[1].Set((188 / 30), (350 / 30)); _local2.polyDef.vertices[2].Set((188 / 30), (404 / 30)); _local2.polyDef.vertices[3].Set((172 / 30), (404 / 30)); _local2.polyDef.vertices[4].Set((172 / 30), (350 / 30)); _local2.polyDef.vertices[5].Set((177 / 30), (345 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((177 / 30), (40 / 30)); _local3.polyDef.vertices[1].Set((177 / 30), (50 / 30)); _local3.polyDef.vertices[2].Set((130 / 30), (15 / 30)); _local3.polyDef.vertices[3].Set((130 / 30), (10 / 30)); _local3.x = x; _local3.y = y; _local3.init(); _local4.polyDef.vertices[0].Set((100 / 30), (0 / 30)); _local4.polyDef.vertices[1].Set((130 / 30), (10 / 30)); _local4.polyDef.vertices[2].Set((130 / 30), (15 / 30)); _local4.polyDef.vertices[3].Set((100 / 30), (8 / 30)); _local4.x = x; _local4.y = y; _local4.init(); _local5.polyDef.vertices[0].Set((50 / 30), (0 / 30)); _local5.polyDef.vertices[1].Set((100 / 30), (0 / 30)); _local5.polyDef.vertices[2].Set((100 / 30), (8 / 30)); _local5.polyDef.vertices[3].Set((50 / 30), (8 / 30)); _local5.x = x; _local5.y = y; _local5.init(); _local6.polyDef.vertices[0].Set((0 / 30), (0 / 30)); _local6.polyDef.vertices[1].Set((50 / 30), (0 / 30)); _local6.polyDef.vertices[2].Set((50 / 30), (15 / 30)); _local6.polyDef.vertices[3].Set((0 / 30), (15 / 30)); _local6.x = x; _local6.y = y; _local6.init(); } } }//package
Section 223
//LampPostB (LampPostB) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class LampPostB extends MovieClip { public function LampPostB(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(3); _local3 = new Polygon(3); _local4 = new Polygon(4); _local5 = new Polygon(4); _local1.polyDef.vertices[0].Set((48 / 30), (13 / 30)); _local1.polyDef.vertices[1].Set((55 / 30), (13 / 30)); _local1.polyDef.vertices[2].Set((55 / 30), (357 / 30)); _local1.polyDef.vertices[3].Set((48 / 30), (357 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((11 / 30), (2 / 30)); _local2.polyDef.vertices[1].Set((48 / 30), (18 / 30)); _local2.polyDef.vertices[2].Set((11 / 30), (6 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((55 / 30), (18 / 30)); _local3.polyDef.vertices[1].Set((92 / 30), (2 / 30)); _local3.polyDef.vertices[2].Set((92 / 30), (6 / 30)); _local3.x = x; _local3.y = y; _local3.init(); _local4.polyDef.vertices[0].Set((8 / 30), (0 / 30)); _local4.polyDef.vertices[1].Set((18 / 30), (25 / 30)); _local4.polyDef.vertices[2].Set((8 / 30), (39 / 30)); _local4.polyDef.vertices[3].Set((0 / 30), (25 / 30)); _local4.x = x; _local4.y = y; _local4.init(); _local5.polyDef.vertices[0].Set((94 / 30), (0 / 30)); _local5.polyDef.vertices[1].Set((104 / 30), (25 / 30)); _local5.polyDef.vertices[2].Set((94 / 30), (39 / 30)); _local5.polyDef.vertices[3].Set((85 / 30), (25 / 30)); _local5.x = x; _local5.y = y; _local5.init(); } } }//package
Section 224
//Level (Level) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Level extends MovieClip { public var World:b2World; public var worldAABB:b2AABB; public var gravity:b2Vec2; public var Nodes:Array; private var R2D:Number; public var Iterations:Number; public var TimeStep:Number; public var iObjects:Array; public function Level(_arg1:Object=null){ g.cLevel = this; TimeStep = (1 / 30); Iterations = 50; R2D = (180 / Math.PI); Nodes = []; iObjects = []; if (_arg1){ init(); }; } public function iObj(_arg1:MovieClip){ iObjects.push(_arg1); } public function destroy(){ var _local1:b2Body; var _local2:Array; trace("Level->destroy"); _local2 = []; _local1 = World.m_bodyList; while (_local1) { _local2.push(_local1); _local1 = _local1.m_next; }; for each (_local1 in _local2) { World.DestroyBody(_local1); }; } public function init(){ trace("Level->init ..."); worldAABB = new b2AABB(); worldAABB.lowerBound.Set(-100, -100); worldAABB.upperBound.Set(100, 100); gravity = new b2Vec2(0, 10); var _local1:Boolean; g.World = (World = new b2World(worldAABB, gravity, true)); var _local2:ContactListener = new ContactListener(); World.SetContactListener(_local2); } public function nextState(){ var _local1:b2Body; var _local2:Object; var _local3:MovieClip; World.Step(TimeStep, Iterations); for each (_local3 in iObjects) { _local3.nextState(); }; _local1 = World.m_bodyList; while (_local1) { if (!_local1.IsSleeping()){ _local2 = _local1.m_userData; if ((_local2 is Sprite)){ _local2.x = (_local1.GetPosition().x * 30); _local2.y = (_local1.GetPosition().y * 30); _local2.rotation = (_local1.GetAngle() * R2D); }; }; _local1 = _local1.m_next; }; if (g.Net){ g.Net.nextState(); }; } } }//package
Section 225
//level01 (level01) package { import flash.display.*; public class level01 extends Level { public var fx_floor05_15_0:MovieClip; public var fx_floor04_15_0:MovieClip; public var fx_floor03_15_0:MovieClip; public var fx_floor02_15_0:MovieClip; public var fx_floor01_15_0:MovieClip; public function level01(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 226
//level02 (level02) package { import flash.display.*; public class level02 extends Level { public var fx_floor01_15_10:MovieClip; public var fx_floor02_15_10:MovieClip; public function level02(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 227
//level03 (level03) package { import flash.display.*; public class level03 extends Level { public var fx_floor05_15_0:MovieClip; public var fx_floor04_15_0:MovieClip; public var fx_floor03_15_0:MovieClip; public var fx_floor02_15_0:MovieClip; public var fx_floor01_15_0:MovieClip; public function level03(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 228
//level04 (level04) package { import flash.display.*; public class level04 extends Level { public var fx_floor01_15_10:MovieClip; public var fx_floor02_15_10:MovieClip; public function level04(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 229
//level05 (level05) package { import flash.display.*; public class level05 extends Level { public var fx_floor01_15_10:MovieClip; public var fx_floor02_15_10:MovieClip; public function level05(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 230
//level06 (level06) package { public class level06 extends Level { public function level06(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 231
//level07 (level07) package { import flash.display.*; public class level07 extends Level { public var fx_floor01_15_10:MovieClip; public var fx_floor02_15_10:MovieClip; public function level07(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 232
//level08 (level08) package { import flash.display.*; public class level08 extends Level { public var fx_floor01_8_105:MovieClip; public var fx_floor02_8_105:MovieClip; public function level08(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 233
//level09 (level09) package { import flash.display.*; public class level09 extends Level { public var fx_box01_2_10:MovieClip; public function level09(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 234
//level10 (level10) package { import flash.display.*; public class level10 extends Level { public var fx_floor01_10_10:MovieClip; public var fx_floor02_10_10:MovieClip; public function level10(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 235
//level11 (level11) package { public class level11 extends Level { public function level11(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 236
//level12 (level12) package { import flash.display.*; public class level12 extends Level { public var fx_box01_6_10:MovieClip; public function level12(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 237
//level13 (level13) package { public class level13 extends Level { public function level13(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 238
//level14 (level14) package { public class level14 extends Level { public function level14(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 239
//level15 (level15) package { public class level15 extends Level { public function level15(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 240
//level16 (level16) package { public class level16 extends Level { public function level16(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 241
//level17 (level17) package { public class level17 extends Level { public function level17(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 242
//level18 (level18) package { public class level18 extends Level { public function level18(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 243
//level19 (level19) package { public class level19 extends Level { public function level19(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 244
//level20 (level20) package { public class level20 extends Level { public function level20(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 245
//level21 (level21) package { public class level21 extends Level { public function level21(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 246
//level22 (level22) package { public class level22 extends Level { public function level22(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 247
//level23 (level23) package { public class level23 extends Level { public function level23(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 248
//level24 (level24) package { import flash.display.*; public class level24 extends Level { public var fx_box01_6_10:MovieClip; public function level24(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 249
//level25 (level25) package { public class level25 extends Level { public function level25(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 250
//LiftA (LiftA) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class LiftA extends MovieClip { public function LiftA(){ var _local1:*; var _local2:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local1.polyDef.vertices[0].Set((190 / 30), (0 / 30)); _local1.polyDef.vertices[1].Set((190 / 30), (215 / 30)); _local1.polyDef.vertices[2].Set((175 / 30), (215 / 30)); _local1.polyDef.vertices[3].Set((175 / 30), (0 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((130 / 30), (43 / 30)); _local2.polyDef.vertices[1].Set((180 / 30), (214 / 30)); _local2.polyDef.vertices[2].Set((41 / 30), (214 / 30)); _local2.polyDef.vertices[3].Set((41 / 30), (43 / 30)); _local2.x = x; _local2.y = y; _local2.init(); } } }//package
Section 251
//LiftB (LiftB) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class LiftB extends MovieClip { public function LiftB(){ var _local1:*; var _local2:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local1.polyDef.vertices[0].Set((0 / 30), (0 / 30)); _local1.polyDef.vertices[1].Set((15 / 30), (0 / 30)); _local1.polyDef.vertices[2].Set((15 / 30), (214 / 30)); _local1.polyDef.vertices[3].Set((0 / 30), (214 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((59 / 30), (42 / 30)); _local2.polyDef.vertices[1].Set((149 / 30), (42 / 30)); _local2.polyDef.vertices[2].Set((149 / 30), (219 / 30)); _local2.polyDef.vertices[3].Set((8 / 30), (219 / 30)); _local2.x = x; _local2.y = y; _local2.init(); } } }//package
Section 252
//loader (loader) package { import flash.display.*; import flash.geom.*; import flash.text.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class loader extends MovieClip { public var BYTESRATIO:Number; public var bar_mc:MovieClip; public var kb_txt:TextField; public var PREROLLTIME:Number; public var play_btn:SimpleButton; public var pct_txt:TextField; public var BYTESLOADED:Number; public var BYTESTOTAL:Number; public var PREROLLTIMER:Number; public var PREROLLRATIO:Number; public var dev_btn:SimpleButton; public function loader(){ addFrameScript(0, frame1, 1, frame2, 14, frame15); } function frame15(){ stop(); ui.Main.gotoAndPlay("dummy"); } public function btnDev(_arg1:Object=null){ var e = _arg1; try { if (!g.DDL){ navigateToURL(url.DEV_LOADER, "_blank"); }; } catch(err:Error) { }; } function frame2(){ stop(); removeEventListener(Event.ENTER_FRAME, evtEnterFrame); pct_txt.visible = false; kb_txt.visible = false; bar_mc.visible = false; play_btn.y = 440; play_btn.addEventListener("click", btnPlay); } public function btnPlay(_arg1:Event){ ad.PreRoll.destroy(); gotoAndPlay(3); } public function evtEnterFrame(_arg1:Event):void{ var _local2:*; var _local3:Number; if (!loaderInfo){ trace("null"); return; }; BYTESLOADED = root.loaderInfo.bytesLoaded; BYTESTOTAL = root.loaderInfo.bytesTotal; PREROLLTIME = (2 * stage.frameRate); if (BYTESTOTAL > 0){ BYTESRATIO = (BYTESLOADED / BYTESTOTAL); } else { BYTESRATIO = 0; }; PREROLLTIMER++; PREROLLRATIO = (PREROLLTIMER / PREROLLTIME); var _local4:Number = Math.min(PREROLLRATIO, BYTESRATIO); if (_local4 < 1){ pct_txt.text = (Math.round((100 * _local4)) + "%"); if (BYTESRATIO > 0){ _local3 = Math.round((BYTESTOTAL / 0x0400)); _local2 = Math.round((_local3 * _local4)); kb_txt.text = (((_local2 + " / ") + _local3) + " kB"); } else { kb_txt.text = ""; }; bar_mc.gotoAndStop((1 + Math.round((100 * _local4)))); } else { pct_txt.text = "100%"; _local3 = Math.round((BYTESTOTAL / 0x0400)); kb_txt.text = (((_local3 + " / ") + _local3) + " kB"); bar_mc.gotoAndStop(101); gotoAndStop(2); }; } function frame1(){ ui.Main.stop(); stop(); PREROLLTIMER = 0; PREROLLTIME = (2 * stage.frameRate); PREROLLRATIO = 0; BYTESLOADED = 0; BYTESTOTAL = 1; dev_btn.tabEnabled = false; play_btn.tabEnabled = false; if (g.DDL){ dev_btn.enabled = false; }; addEventListener(Event.ENTER_FRAME, evtEnterFrame); dev_btn.addEventListener("click", btnDev); } } }//package
Section 253
//main (main) package { import flash.display.*; import flash.text.*; import flash.events.*; import mochi.as3.*; import flash.net.*; import flash.system.*; import flash.ui.*; public dynamic class main extends MovieClip { public var OnAG:Boolean; public var GameID:String; public function main(){ var _local2:*; var _local3:TextFormat; var _local4:ContextMenu; var _local5:ContextMenuItem; var _local6:ContextMenuItem; var _local7:ContextMenuItem; super(); addFrameScript(0, frame1, 1, frame2, 2, frame3, 9, frame10, 29, frame30, 39, frame40, 40, frame41); ui.Main = this; GameID = "perfecthoopz2"; g.FrameRate = 30; Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local1:LocalConnection = new LocalConnection(); g.Domain = _local1.domain; g.GameAuth = true; OnAG = false; if (g.Domain.indexOf(".addictinggames.com") != -1){ OnAG = true; }; g.Localhost = false; if (g.Domain.indexOf("localhost") != -1){ g.Localhost = true; }; g.QuickLoader = false; if (OnAG){ g.QuickLoader = true; }; g.NoAds = false; g.NoBot = false; url.DEV_LOADER = new URLRequest(("http://www.qigames.com/index.php?" + googleSuffix("loader"))); url.DEV_SPLASH = new URLRequest(("http://www.qigames.com/index.php?" + googleSuffix("splash"))); url.DEV_MENU = new URLRequest(("http://www.qigames.com/index.php?" + googleSuffix("menu"))); url.MOREGAMES_DEV = new URLRequest(("http://www.qigames.com/index.php?" + googleSuffix("moregames"))); url.FREESCORES_DEV = new URLRequest(("http://www.perfecthoopz.com/kings/index.php?" + googleSuffix("scores"))); url.KINGSCORES_DEV = new URLRequest(("http://www.perfecthoopz.com/scores/index.php?" + googleSuffix("scores"))); url.WALKTHROUGH_DEV = new URLRequest(("http://www.perfecthoopz.com/walkthrough/index.php" + googleSuffix("walkthrough"))); url.WALKTHROUGH_SPONSOR = new URLRequest("http://www.mousebreaker.com/games/perfecthoopz-walkthrough/playgame"); url.MOREGAMES_SPONSOR = new URLRequest("http://www.mousebreaker.com"); url.FREESCORES_SPONSOR = new URLRequest("http://www.mousebreaker.com"); url.KINGSCORES_SPONSOR = new URLRequest("http://www.mousebreaker.com"); url.SPONSOR_LOADER = new URLRequest("http://www.mousebreaker.com"); url.SPONSOR_SPLASH = new URLRequest("http://www.mousebreaker.com"); url.SPONSOR_MENU = new URLRequest("http://www.mousebreaker.com"); url.SPONSOR_SELECTION = new URLRequest("http://www.mousebreaker.com"); url.PLAY_NORMAL = new URLRequest("http://www.mousebreaker.com/games/perfecthoopz/playgame"); url.PLAY_KING = new URLRequest("http://www.mousebreaker.com/games/perfecthoopzking/playgame"); _local2 = new TextFormat("CreativeBlock"); _local2.bold = true; _local3 = new TextFormat("CreativeBlock"); _local3.bold = true; fonts.Text1 = _local2; fonts.Text2 = _local3; fonts.Button1 = _local3; fonts.Button2 = _local3; fonts.Caption1 = _local2; fonts.Caption2 = _local3; _local4 = new ContextMenu(); _local4.hideBuiltInItems(); contextMenu = _local4; _local5 = new ContextMenuItem("Perfect Hoopz 2"); _local6 = new ContextMenuItem("A Game by QiGames.com"); _local6.separatorBefore = true; _local7 = new ContextMenuItem("BETA 1.00"); _local7.separatorBefore = true; _local4.customItems.push(_local5); _local4.customItems.push(_local6); _local4.customItems.push(_local7); GameData.init(); } function splashError(_arg1:Object=null){ trace("Error loading dev splash ..."); } function frame41(){ trace("frame 41 ..."); gotoAndStop(40); } function frame1(){ stop(); } function frame3(){ stop(); } function evtCompleted(_arg1:Event=null){ var r:Number; var e = _arg1; try { if (flcLoader){ if (flcLoader.data){ g.PreRoll = flcLoader.data.preroll; g.MidRollA = flcLoader.data.midrollA; g.MidRollB = flcLoader.data.midrollB; g.PreRollCode = flcLoader.data.prerollcode; g.MidRollCodeA = flcLoader.data.midrollcodeA; g.MidRollCodeB = flcLoader.data.midrollcodeB; g.PreRollCode = g.PreRollCode.replace("plus", "+"); g.MidRollCodeA = g.MidRollCodeA.replace("plus", "+"); g.MidRollCodeB = g.MidRollCodeB.replace("plus", "+"); if (g.PreRoll == "youyouwin"){ playYouYouWin(g.PreRollCode); g.PreRoll = g.MidRollB; g.PreRollCode = g.MidRollCodeB; }; r = Number(flcLoader.data.hs); switch (r){ case 1: g.HS = "sponsor"; break; case 2: g.HS = "mochi"; break; default: g.HS = "sponsor"; break; }; r = Number(flcLoader.data.mg); switch (r){ case 1: g.MG = "sponsor"; break; case 2: g.MG = "dev"; break; default: g.MG = "sponsor"; break; }; r = Number(flcLoader.data.wt); switch (r){ case 1: g.WT = "sponsor"; break; case 2: g.WT = "dev"; break; default: g.WT = "sponsor"; break; }; r = Number(flcLoader.data.fb); g.Facebook = r; r = Number(flcLoader.data.ip); g.iPhone = r; trace("Response from LiveConnect ..."); trace(("PreRoll = " + g.PreRoll)); trace(("MidRollA = " + g.MidRollA)); trace(("MidRollB = " + g.MidRollB)); trace(("PreRollCode = " + g.PreRollCode)); trace(("MidRollCodeA = " + g.MidRollCodeA)); trace(("MidRollCodeB = " + g.MidRollCodeB)); trace(("HS = " + g.HS)); trace(("MG = " + g.MG)); trace(("WT = " + g.WT)); trace(("iPhone = " + g.iPhone)); trace(("Facebook = " + g.Facebook)); g.Splash = String(flcLoader.data.splash); g.SplashLoader = null; if (g.Splash != "default"){ trace(("Load dev splash : " + g.Splash)); try { g.SplashLoader = new Loader(); g.SplashLoader.contentLoaderInfo.addEventListener("ioError", splashError); g.SplashLoader.load(new URLRequest(("http://" + g.Splash))); } catch(e:Error) { trace("Error loading dev splash ..."); }; } else { trace(("Splash = " + g.Splash)); }; if (g.HS == "mochi"){ trace("Connect to MochiServices ..."); try { MochiServices.connect("d0ee21d950e9bad9", this); } catch(e:Error) { trace("Error connecting to MochiServices ..."); }; }; }; }; } catch(err:Error) { trace(("Catch error retrieving response from LiveConnect -> continue with defaults : " + err.message)); }; if (ad.PreRoll){ ad.PreRoll.serve(); }; } function frame40(){ stop(); stage.frameRate = 30; } public function googleSuffix(_arg1:String):String{ var _local2:String; _local2 = ("utm_source=" + g.Domain); _local2 = (_local2 + ("&utm_medium=" + "viralgame")); _local2 = (_local2 + ("&utm_campaign=" + GameID)); _local2 = (_local2 + ("&utm_content=" + _arg1)); return (_local2); } function frame2(){ stop(); } function evtError(_arg1:Event=null){ trace("No response from LiveConnect -> continue with defaults ..."); if (ad.PreRoll){ ad.PreRoll.serve(); }; } function frame30(){ if (!g.SDS){ gotoAndStop("game"); }; } function frame10(){ if (g.GameAuth){ gotoAndStop("game"); Juke.Box.init(); } else { gotoAndStop(2); }; } private function liveConnect(_arg1:String){ var domain = _arg1; trace(("main->liveConnect : domain = " + domain)); g.PreRoll = "cpmstar"; g.MidRollA = "mochiads"; g.MidRollB = "mochiads"; g.HS = "mochi"; g.MG = "sponsor"; g.WT = "sponsor"; g.SDS = true; g.Facebook = 0; g.iPhone = 0; g.PreRollCode = "2588Q67A13749"; g.MidRollCodeA = "d0ee21d950e9bad9"; g.MidRollCodeB = "d0ee21d950e9bad9"; if (OnMB){ g.MidRollA = "none"; g.MidRollB = "none"; g.HS = "sponsor"; g.SDS = false; }; domain = domain.toLowerCase(); trace("main->liveConnect : connect to flash.qigames.com"); var VARS:* = new URLVariables(); VARS.HOST = escape(domain); VARS.BUILD = escape("sponsor"); var REQ:* = new URLRequest("http://flash.qigames.com/game/perfecthoopz/gameplay.php"); REQ.data = VARS; REQ.method = "POST"; flcLoader = new URLLoader(); flcLoader.dataFormat = "variables"; flcLoader.addEventListener("complete", evtCompleted); flcLoader.addEventListener("securityError", evtError); flcLoader.addEventListener("ioError", evtError); try { flcLoader.load(REQ); } catch(err:Error) { evtError(); }; } } }//package
Section 254
//mcar_cruiserA (mcar_cruiserA) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class mcar_cruiserA extends MovingCar { public function mcar_cruiserA(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(5); _local2 = new Polygon(4); _local3 = new Polygon(3); _local1.vertex(2, 110); _local1.vertex(25, 50); _local1.vertex(64, 8); _local1.vertex(78, 3); _local1.vertex(63, 118); _local1.x = x; _local1.y = y; _local1.init(); _local2.vertex(78, 3); _local2.vertex(103, 1); _local2.vertex(222, 12); _local2.vertex(276, 44); _local2.x = x; _local2.y = y; _local2.init(); _local3.vertex(276, 44); _local3.vertex(354, 58); _local3.vertex(373, 88); _local3.x = x; _local3.y = y; _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 255
//mcar_cruiserB (mcar_cruiserB) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class mcar_cruiserB extends MovingCar { public function mcar_cruiserB(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(5); _local2 = new Polygon(4); _local3 = new Polygon(3); _local1.vertex(2, 110); _local1.vertex(25, 50); _local1.vertex(64, 8); _local1.vertex(78, 3); _local1.vertex(63, 118); _local1.x = x; _local1.y = y; _local1.mirrorX(376); _local1.init(); _local2.vertex(78, 3); _local2.vertex(103, 1); _local2.vertex(222, 12); _local2.vertex(276, 44); _local2.x = x; _local2.y = y; _local2.mirrorX(376); _local2.init(); _local3.vertex(276, 44); _local3.vertex(354, 58); _local3.vertex(373, 88); _local3.x = x; _local3.y = y; _local3.mirrorX(376); _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 256
//mcar_matrixA (mcar_matrixA) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class mcar_matrixA extends MovingCar { public function mcar_matrixA(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local3 = new Polygon(4); _local1.vertex(0, 118); _local1.vertex(13, 54); _local1.vertex(44, 22); _local1.vertex(50, 124); _local1.x = x; _local1.y = y; _local1.init(); _local2.vertex(44, 22); _local2.vertex(158, 16); _local2.vertex(191, 21); _local2.vertex(247, 53); _local2.x = x; _local2.y = y; _local2.init(); _local3.vertex(247, 53); _local3.vertex(321, 70); _local3.vertex(336, 92); _local3.vertex(339, 122); _local3.x = x; _local3.y = y; _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 257
//mcar_matrixB (mcar_matrixB) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class mcar_matrixB extends MovingCar { public function mcar_matrixB(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local3 = new Polygon(4); _local1.vertex(0, 118); _local1.vertex(13, 54); _local1.vertex(44, 22); _local1.vertex(50, 124); _local1.x = x; _local1.y = y; _local1.mirrorX(341); _local1.init(); _local2.vertex(44, 22); _local2.vertex(158, 16); _local2.vertex(191, 21); _local2.vertex(247, 53); _local2.x = x; _local2.y = y; _local2.mirrorX(341); _local2.init(); _local3.vertex(247, 53); _local3.vertex(321, 70); _local3.vertex(336, 92); _local3.vertex(339, 122); _local3.x = x; _local3.y = y; _local3.mirrorX(341); _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 258
//mcar_muranoA (mcar_muranoA) package { public class mcar_muranoA extends MovingCar { public function mcar_muranoA(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(3); _local3 = new Polygon(4); _local1.vertex(0, 115); _local1.vertex(8, 52); _local1.vertex(57, 7); _local1.vertex(59, 117); _local1.x = x; _local1.y = y; _local1.init(); _local2.vertex(57, 7); _local2.vertex(211, 7); _local2.vertex(294, 47); _local2.x = x; _local2.y = y; _local2.init(); _local3.vertex(294, 47); _local3.vertex(362, 60); _local3.vertex(385, 81); _local3.vertex(384, 122); _local3.x = x; _local3.y = y; _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 259
//mcar_muranoB (mcar_muranoB) package { public class mcar_muranoB extends MovingCar { public function mcar_muranoB(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(3); _local3 = new Polygon(4); _local1.vertex(0, 115); _local1.vertex(8, 52); _local1.vertex(57, 7); _local1.vertex(59, 117); _local1.x = x; _local1.y = y; _local1.mirrorX(389); _local1.init(); _local2.vertex(57, 7); _local2.vertex(211, 7); _local2.vertex(294, 47); _local2.x = x; _local2.y = y; _local2.mirrorX(389); _local2.init(); _local3.vertex(294, 47); _local3.vertex(362, 60); _local3.vertex(385, 81); _local3.vertex(384, 122); _local3.x = x; _local3.y = y; _local3.mirrorX(389); _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 260
//mcar_roverA (mcar_roverA) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class mcar_roverA extends MovingCar { public function mcar_roverA(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(3); _local3 = new Polygon(3); _local1.vertex(6, 117); _local1.vertex(7, 58); _local1.vertex(60, 6); _local1.vertex(60, 124); _local1.x = x; _local1.y = y; _local1.init(); _local2.vertex(60, 6); _local2.vertex(220, 5); _local2.vertex(281, 48); _local2.x = x; _local2.y = y; _local2.init(); _local3.vertex(281, 48); _local3.vertex(380, 60); _local3.vertex(390, 122); _local3.x = x; _local3.y = y; _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 261
//mcar_roverB (mcar_roverB) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class mcar_roverB extends MovingCar { public function mcar_roverB(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(3); _local3 = new Polygon(3); _local1.vertex(6, 117); _local1.vertex(7, 58); _local1.vertex(60, 6); _local1.vertex(60, 124); _local1.x = x; _local1.y = y; _local1.mirrorX(394); _local1.init(); _local2.vertex(60, 6); _local2.vertex(220, 5); _local2.vertex(281, 48); _local2.x = x; _local2.y = y; _local2.mirrorX(394); _local2.init(); _local3.vertex(281, 48); _local3.vertex(380, 60); _local3.vertex(390, 122); _local3.x = x; _local3.y = y; _local3.mirrorX(394); _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 262
//MovingCar (MovingCar) package { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class MovingCar extends MovieClip { public var Bodies:Array; public var Speed:Number; public function MovingCar(){ Bodies = []; TimeDown = 32; TimeUp = -1; TimeStop = -1; Speed = 0; Speed = 0; switch (ui.LevelSelect.Index){ case 20: Speed = -3; break; case 23: Speed = -3; break; case 25: Speed = 3; break; }; g.cLevel.iObj(this); } public function nextState(){ var _local1:b2Vec2; var _local2:b2Body; if (Speed == 0){ return; }; x = (x + Speed); if (Speed < 0){ if (x < -600){ x = 1300; }; } else { if (x > 1300){ x = -600; }; }; _local1 = new b2Vec2((x / 30), (y / 30)); for each (_local2 in Bodies) { _local2.SetXForm(_local1, 0); }; } } }//package
Section 263
//NetNode (NetNode) package { import flash.display.*; public dynamic class NetNode extends MovieClip { } }//package
Section 264
//numbers (numbers) package { public class numbers { public static function formatSeconds(_arg1:Number){ var _local2:String; var _local3:String; var _local4:String; var _local5:Number; _local2 = ""; _local5 = (_arg1 / 60); _local5 = Math.floor(_local5); _local3 = (_local5 + ":"); if (_local3.length == 2){ _local3 = ("0" + _local3); }; _local2 = (_local2 + _local3); _arg1 = (_arg1 - (_local5 * 60)); _local4 = String(_arg1); if (_local4.length == 1){ _local4 = ("0" + _local4); }; _local2 = (_local2 + _local4); return (_local2); } public static function format(_arg1:Number){ var _local2:String; var _local3:String; var _local4:String; var _local5:String; var _local6:Number; var _local7:Number; _local2 = ""; _local6 = (_arg1 / 1000000); _local6 = Math.floor(_local6); if (_local6 > 0){ _local3 = (_local6 + ","); if (_local3.length == 2){ _local3 = ("00" + _local3); }; if (_local3.length == 3){ _local3 = ("0" + _local3); }; _local2 = (_local2 + _local3); _arg1 = (_arg1 - (_local6 * 1000000)); }; _local7 = (_arg1 / 1000); _local7 = Math.floor(_local7); if ((((_local7 > 0)) || ((_local6 > 0)))){ _local4 = (_local7 + ","); if (_local2.length > 0){ if (_local4.length == 2){ _local4 = ("00" + _local4); }; if (_local4.length == 3){ _local4 = ("0" + _local4); }; }; _local2 = (_local2 + _local4); _arg1 = (_arg1 - (_local7 * 1000)); }; _local5 = String(Math.round(_arg1)); if (_local2.length > 0){ if (_local5.length == 1){ _local5 = ("00" + _local5); }; if (_local5.length == 2){ _local5 = ("0" + _local5); }; }; _local2 = (_local2 + _local5); return (_local2); } } }//package
Section 265
//Pallet (Pallet) package { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class Pallet extends MovieClip { public var Bodies:Array; public var TimeUp:Number; public var MoveTime:Number; public var Speed:Number; public var TimeStop:Number; public var TimeDown:Number; public var nSpeed:Number; public function Pallet(){ Bodies = []; TimeDown = 32; TimeUp = -1; TimeStop = -1; Speed = 0; nSpeed = 2; MoveTime = 40; switch (ui.LevelSelect.Index){ case 21: MoveTime = 60; break; }; g.cLevel.iObj(this); } public function goUp(){ Speed = -(nSpeed); TimeStop = MoveTime; } public function goDown(){ Speed = nSpeed; TimeStop = MoveTime; } public function nextState(){ var _local1:b2Vec2; var _local2:b2Body; TimeDown--; TimeUp--; TimeStop--; if (TimeDown == 0){ goDown(); }; if (TimeUp == 0){ goUp(); }; if (TimeStop == 0){ stopNow(); }; y = (y + Speed); _local1 = new b2Vec2((x / 30), (y / 30)); for each (_local2 in Bodies) { _local2.SetXForm(_local1, 0); }; } public function stopNow(){ Speed = 0; if (TimeDown < TimeUp){ TimeDown = 48; } else { TimeUp = 48; }; } } }//package
Section 266
//PalletA1 (PalletA1) package { public class PalletA1 extends Pallet { public function PalletA1(){ var _local1:*; var _local2:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local1.polyDef.vertices[0].Set((9 / 30), (0 / 30)); _local1.polyDef.vertices[1].Set((9 / 30), (106 / 30)); _local1.polyDef.vertices[2].Set((0 / 30), (106 / 30)); _local1.polyDef.vertices[3].Set((0 / 30), (0 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((9 / 30), (16 / 30)); _local2.polyDef.vertices[1].Set((110 / 30), (19 / 30)); _local2.polyDef.vertices[2].Set((110 / 30), (106 / 30)); _local2.polyDef.vertices[3].Set((9 / 30), (106 / 30)); _local2.x = x; _local2.y = y; _local2.init(); Bodies = [_local1.body, _local2.body]; } } }//package
Section 267
//PalletB1 (PalletB1) package { public class PalletB1 extends Pallet { public function PalletB1(){ var _local1:*; var _local2:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local1.polyDef.vertices[0].Set((9 / 30), (0 / 30)); _local1.polyDef.vertices[1].Set((9 / 30), (106 / 30)); _local1.polyDef.vertices[2].Set((0 / 30), (106 / 30)); _local1.polyDef.vertices[3].Set((0 / 30), (0 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((112 / 30), (97 / 30)); _local2.polyDef.vertices[1].Set((112 / 30), (108 / 30)); _local2.polyDef.vertices[2].Set((9 / 30), (108 / 30)); _local2.polyDef.vertices[3].Set((9 / 30), (97 / 30)); _local2.x = x; _local2.y = y; _local2.init(); Bodies = [_local1.body, _local2.body]; } } }//package
Section 268
//PalletC2 (PalletC2) package { public class PalletC2 extends Pallet { public function PalletC2(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local3 = new Polygon(5); _local1.polyDef.vertices[0].Set((103 / 30), (0 / 30)); _local1.polyDef.vertices[1].Set((111 / 30), (0 / 30)); _local1.polyDef.vertices[2].Set((111 / 30), (105 / 30)); _local1.polyDef.vertices[3].Set((103 / 30), (105 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((0 / 30), (98 / 30)); _local2.polyDef.vertices[1].Set((103 / 30), (98 / 30)); _local2.polyDef.vertices[2].Set((103 / 30), (108 / 30)); _local2.polyDef.vertices[3].Set((0 / 30), (108 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((83 / 30), (41 / 30)); _local3.polyDef.vertices[1].Set((95 / 30), (41 / 30)); _local3.polyDef.vertices[2].Set((95 / 30), (97 / 30)); _local3.polyDef.vertices[3].Set((5 / 30), (97 / 30)); _local3.polyDef.vertices[4].Set((5 / 30), (86 / 30)); _local3.x = x; _local3.y = y; _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 269
//PalletD2 (PalletD2) package { public class PalletD2 extends Pallet { public function PalletD2(){ var _local1:*; var _local2:*; var _local3:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local3 = new Polygon(5); _local1.polyDef.vertices[0].Set((103 / 30), (0 / 30)); _local1.polyDef.vertices[1].Set((111 / 30), (0 / 30)); _local1.polyDef.vertices[2].Set((111 / 30), (105 / 30)); _local1.polyDef.vertices[3].Set((103 / 30), (105 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((0 / 30), (98 / 30)); _local2.polyDef.vertices[1].Set((103 / 30), (98 / 30)); _local2.polyDef.vertices[2].Set((103 / 30), (108 / 30)); _local2.polyDef.vertices[3].Set((0 / 30), (108 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((93 / 30), (28 / 30)); _local3.polyDef.vertices[1].Set((93 / 30), (97 / 30)); _local3.polyDef.vertices[2].Set((24 / 30), (97 / 30)); _local3.polyDef.vertices[3].Set((24 / 30), (86 / 30)); _local3.polyDef.vertices[4].Set((81 / 30), (28 / 30)); _local3.x = x; _local3.y = y; _local3.init(); Bodies = [_local1.body, _local2.body, _local3.body]; } } }//package
Section 270
//Polygon (Polygon) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.geom.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Polygon extends MovieClip { public var polyDef:b2PolygonDef; public var body:b2Body; public var bodyDef:b2BodyDef; public var FilterGroup:Number; private var Vertices:Array; public function Polygon(_arg1:Number=0, _arg2:Number=0){ if (!g.World){ return; }; FilterGroup = _arg2; polyDef = new b2PolygonDef(); polyDef.vertexCount = _arg1; FilterGroup = _arg2; polyDef.filter.groupIndex = FilterGroup; polyDef.density = 0; polyDef.friction = 0.3; polyDef.restitution = 0.5; Vertices = []; } public function mirrorX(_arg1:Number){ var _local2:Array; var _local3:*; var _local4:Number; var _local5:Point; _local2 = []; _local4 = Vertices.length; _local3 = (_local4 - 1); while (_local3 >= 0) { _local5 = Vertices[_local3]; _local5.x = (_arg1 - _local5.x); _local2.push(_local5); _local3--; }; Vertices = _local2; } public function vertex(_arg1:Number, _arg2:Number){ Vertices.push(new Point(_arg1, _arg2)); } public function init(_arg1:Boolean=false){ var _local3:Number; var _local4:Point; var _local2:Number = Vertices.length; if (_local2 > 0){ _local3 = 0; while (_local3 < _local2) { _local4 = Vertices[_local3]; polyDef.vertices[_local3].Set((_local4.x / 30), (_local4.y / 30)); _local3++; }; }; bodyDef = new b2BodyDef(); if (_arg1){ bodyDef.position.x = ((parent.x + x) / 30); bodyDef.position.y = ((parent.y + y) / 30); } else { bodyDef.position.x = (x / 30); bodyDef.position.y = (y / 30); }; body = g.World.CreateBody(bodyDef); body.CreateShape(polyDef); body.SetMassFromShapes(); } } }//package
Section 271
//rimA (rimA) package { import flash.media.*; public dynamic class rimA extends Sound { } }//package
Section 272
//RimNode (RimNode) package { import flash.display.*; public dynamic class RimNode extends MovieClip { } }//package
Section 273
//RimSupport (RimSupport) package { public class RimSupport extends Box { public function RimSupport(){ super(8, true); } } }//package
Section 274
//RopeNode (RopeNode) package { import flash.display.*; public dynamic class RopeNode extends MovieClip { } }//package
Section 275
//Setup (Setup) package { public class Setup { public static var ScreenH2:Number = 250; public static var ScreenW2:Number = 350; public static var ScreenW:Number = 700; public static var ScreenH:Number = 500; public static var FrameRate:Number = 30; } }//package
Section 276
//SfxBuzzer (SfxBuzzer) package { import flash.media.*; public dynamic class SfxBuzzer extends Sound { } }//package
Section 277
//SfxClick (SfxClick) package { import flash.media.*; public dynamic class SfxClick extends Sound { } }//package
Section 278
//SignPostA (SignPostA) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class SignPostA extends MovieClip { public function SignPostA(){ var _local1:*; var _local2:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local1.polyDef.vertices[0].Set((59 / 30), (0 / 30)); _local1.polyDef.vertices[1].Set((68 / 30), (0 / 30)); _local1.polyDef.vertices[2].Set((68 / 30), (385 / 30)); _local1.polyDef.vertices[3].Set((59 / 30), (385 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((0 / 30), (20 / 30)); _local2.polyDef.vertices[1].Set((127 / 30), (20 / 30)); _local2.polyDef.vertices[2].Set((127 / 30), (38 / 30)); _local2.polyDef.vertices[3].Set((0 / 30), (38 / 30)); _local2.x = x; _local2.y = y; _local2.init(); } } }//package
Section 279
//SignPostB (SignPostB) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class SignPostB extends MovieClip { public function SignPostB(){ var _local1:*; var _local2:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local1.polyDef.vertices[0].Set((59 / 30), (0 / 30)); _local1.polyDef.vertices[1].Set((68 / 30), (0 / 30)); _local1.polyDef.vertices[2].Set((68 / 30), (385 / 30)); _local1.polyDef.vertices[3].Set((59 / 30), (385 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((0 / 30), (20 / 30)); _local2.polyDef.vertices[1].Set((127 / 30), (20 / 30)); _local2.polyDef.vertices[2].Set((127 / 30), (38 / 30)); _local2.polyDef.vertices[3].Set((0 / 30), (38 / 30)); _local2.x = x; _local2.y = y; _local2.init(); } } }//package
Section 280
//StartArea (StartArea) package { import flash.display.*; public class StartArea extends MovieClip { public function StartArea(){ if (!g.World){ return; }; g.Start = this; } } }//package
Section 281
//swishA (swishA) package { import flash.media.*; public dynamic class swishA extends Sound { } }//package
Section 282
//swishB (swishB) package { import flash.media.*; public dynamic class swishB extends Sound { } }//package
Section 283
//TelehandlerA (TelehandlerA) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TelehandlerA extends MovieClip { public function TelehandlerA(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:Polygon; super(); _local1 = new Polygon(4); _local2 = new Polygon(4); _local3 = new Polygon(4); _local4 = new Polygon(4); _local5 = new Polygon(3); _local1.polyDef.vertices[0].Set((363 / 30), (12 / 30)); _local1.polyDef.vertices[1].Set((363 / 30), (129 / 30)); _local1.polyDef.vertices[2].Set((293 / 30), (129 / 30)); _local1.polyDef.vertices[3].Set((293 / 30), (12 / 30)); _local1.x = x; _local1.y = y; _local1.init(); _local2.polyDef.vertices[0].Set((164 / 30), (26 / 30)); _local2.polyDef.vertices[1].Set((177 / 30), (0 / 30)); _local2.polyDef.vertices[2].Set((288 / 30), (47 / 30)); _local2.polyDef.vertices[3].Set((277 / 30), (80 / 30)); _local2.x = x; _local2.y = y; _local2.init(); _local3.polyDef.vertices[0].Set((0 / 30), (353 / 30)); _local3.polyDef.vertices[1].Set((151 / 30), (23 / 30)); _local3.polyDef.vertices[2].Set((208 / 30), (50 / 30)); _local3.polyDef.vertices[3].Set((55 / 30), (377 / 30)); _local3.x = x; _local3.y = y; _local3.init(); _local4.polyDef.vertices[0].Set((144 / 30), (360 / 30)); _local4.polyDef.vertices[1].Set((162 / 30), (152 / 30)); _local4.polyDef.vertices[2].Set((175 / 30), (152 / 30)); _local4.polyDef.vertices[3].Set((157 / 30), (360 / 30)); _local4.x = x; _local4.y = y; _local4.init(); _local5.polyDef.vertices[0].Set((292 / 30), (296 / 30)); _local5.polyDef.vertices[1].Set((297 / 30), (385 / 30)); _local5.polyDef.vertices[2].Set((170 / 30), (296 / 30)); _local5.x = x; _local5.y = y; _local5.init(); } } }//package
Section 284
//ui (ui) package { import flash.display.*; public class ui { public static var LevelSelect:MovieClip; public static var CustomizeBall:MovieClip; public static var LevelPreview:MovieClip; public static var KingLives:MovieClip; public static var GameMenu:MovieClip; public static var KingFailure:MovieClip; public static var Main:MovieClip; public static var TimeOver:MovieClip; public static var Success:MovieClip; public static var KingBonus:MovieClip; public static var Failure:MovieClip; public static var Header:MovieClip; public static var SoundControl:MovieClip; public static var Indicator:MovieClip; public static var Notice:MovieClip; } }//package
Section 285
//uiCustomizeBall (uiCustomizeBall) package { import flash.display.*; import flash.text.*; public class uiCustomizeBall extends MovieClip { public var Balls:Array; public var ball00:MovieClip; public var ball01:MovieClip; public var ball02:MovieClip; public var ball03:MovieClip; public var ball04:MovieClip; public var ball05:MovieClip; public var ball06:MovieClip; public var ball07:MovieClip; public var ball08:MovieClip; public var ball09:MovieClip; public var btn01:SimpleButton; public var ball10:MovieClip; public var ball11:MovieClip; public var ball12:MovieClip; public var ball13:MovieClip; public var ball14:MovieClip; public var ball15:MovieClip; public var ball17:MovieClip; public var ball18:MovieClip; public var ball19:MovieClip; public var btn06:SimpleButton; public var btn07:SimpleButton; public var ball16:MovieClip; public var btn09:SimpleButton; public var btn02:SimpleButton; public var btn03:SimpleButton; public var btn04:SimpleButton; public var btn05:SimpleButton; public var btn08:SimpleButton; public var ok_btn:SimpleButton; public var btn10:SimpleButton; public var btn11:SimpleButton; public var btn12:SimpleButton; public var btn14:SimpleButton; public var ball24:MovieClip; public var ball26:MovieClip; public var ball28:MovieClip; public var ball23:MovieClip; public var ball25:MovieClip; public var ball27:MovieClip; public var btn13:SimpleButton; public var btn15:SimpleButton; public var btn17:SimpleButton; public var btn18:SimpleButton; public var btn19:SimpleButton; public var ball29:MovieClip; public var ball21:MovieClip; public var caption_txt:TextField; public var btn16:SimpleButton; public var btn20:SimpleButton; public var btn21:SimpleButton; public var ball30:MovieClip; public var btn23:SimpleButton; public var btn24:SimpleButton; public var ball20:MovieClip; public var btn26:SimpleButton; public var ball22:MovieClip; public var btn28:SimpleButton; public var btn22:SimpleButton; public var btn25:SimpleButton; public var btn27:SimpleButton; public var btn29:SimpleButton; public var Index:Number; public var btn30:SimpleButton; public function uiCustomizeBall(){ var _local1:*; var _local2:Number; var _local3:MovieClip; super(); addFrameScript(0, frame1); ui.CustomizeBall = this; Index = g.BallIndex; ball00.ball_mc.gotoAndStop(Index); fonts.apply(caption_txt, fonts.Button1); Balls = []; Balls.push(ball01); Balls.push(ball02); Balls.push(ball03); Balls.push(ball04); Balls.push(ball05); Balls.push(ball06); Balls.push(ball07); Balls.push(ball08); Balls.push(ball09); Balls.push(ball10); Balls.push(ball11); Balls.push(ball12); Balls.push(ball13); Balls.push(ball14); Balls.push(ball15); Balls.push(ball16); Balls.push(ball17); Balls.push(ball18); Balls.push(ball19); Balls.push(ball20); Balls.push(ball21); Balls.push(ball22); Balls.push(ball23); Balls.push(ball24); Balls.push(ball25); Balls.push(ball26); Balls.push(ball27); Balls.push(ball28); Balls.push(ball29); Balls.push(ball30); btn01.addEventListener("click", ballBtn01); btn02.addEventListener("click", ballBtn02); btn03.addEventListener("click", ballBtn03); btn04.addEventListener("click", ballBtn04); btn05.addEventListener("click", ballBtn05); btn06.addEventListener("click", ballBtn06); btn07.addEventListener("click", ballBtn07); btn08.addEventListener("click", ballBtn08); btn09.addEventListener("click", ballBtn09); btn10.addEventListener("click", ballBtn10); btn11.addEventListener("click", ballBtn11); btn12.addEventListener("click", ballBtn12); btn13.addEventListener("click", ballBtn13); btn14.addEventListener("click", ballBtn14); btn15.addEventListener("click", ballBtn15); btn16.addEventListener("click", ballBtn16); btn17.addEventListener("click", ballBtn17); btn18.addEventListener("click", ballBtn18); btn19.addEventListener("click", ballBtn19); btn20.addEventListener("click", ballBtn20); btn21.addEventListener("click", ballBtn21); btn22.addEventListener("click", ballBtn22); btn23.addEventListener("click", ballBtn23); btn24.addEventListener("click", ballBtn24); btn25.addEventListener("click", ballBtn25); btn26.addEventListener("click", ballBtn26); btn27.addEventListener("click", ballBtn27); btn28.addEventListener("click", ballBtn28); btn29.addEventListener("click", ballBtn29); btn30.addEventListener("click", ballBtn30); _local1 = 0; while (_local1 < Balls.length) { Balls[_local1].ball_mc.gotoAndStop((_local1 + 1)); if (Index == (_local1 + 1)){ Balls[_local1].gotoAndStop(2); } else { Balls[_local1].gotoAndStop(1); }; _local1++; }; ok_btn.addEventListener("click", btnOK); ok_btn.tabEnabled = false; } public function init(){ } public function ballBtn30(_arg1:Object=null){ clicked(30); } public function clicked(_arg1:Number){ Juke.Box.btnClick(); Index = _arg1; g.BallIndex = _arg1; ball00.ball_mc.gotoAndStop(_arg1); _arg1 = 0; while (_arg1 < Balls.length) { Balls[_arg1].ball_mc.gotoAndStop((_arg1 + 1)); if (Index == (_arg1 + 1)){ Balls[_arg1].gotoAndStop(2); } else { Balls[_arg1].gotoAndStop(1); }; _arg1++; }; } public function btnOK(_arg1:Object=null){ Juke.Box.btnClick(); MovieClip(parent).doneCustomize(); } public function ballBtn07(_arg1:Object=null){ clicked(7); } public function ballBtn01(_arg1:Object=null){ clicked(1); } public function ballBtn03(_arg1:Object=null){ clicked(3); } public function ballBtn05(_arg1:Object=null){ clicked(5); } public function ballBtn08(_arg1:Object=null){ clicked(8); } public function ballBtn09(_arg1:Object=null){ clicked(9); } public function ballBtn02(_arg1:Object=null){ clicked(2); } public function ballBtn04(_arg1:Object=null){ clicked(4); } function frame1(){ stop(); } public function ballBtn06(_arg1:Object=null){ clicked(6); } public function ballBtn11(_arg1:Object=null){ clicked(11); } public function ballBtn13(_arg1:Object=null){ clicked(13); } public function ballBtn15(_arg1:Object=null){ clicked(15); } public function ballBtn17(_arg1:Object=null){ clicked(17); } public function ballBtn18(_arg1:Object=null){ clicked(18); } public function ballBtn10(_arg1:Object=null){ clicked(10); } public function ballBtn12(_arg1:Object=null){ clicked(12); } public function ballBtn14(_arg1:Object=null){ clicked(14); } public function ballBtn16(_arg1:Object=null){ clicked(16); } public function ballBtn20(_arg1:Object=null){ clicked(20); } public function ballBtn21(_arg1:Object=null){ clicked(21); } public function ballBtn19(_arg1:Object=null){ clicked(19); } public function ballBtn23(_arg1:Object=null){ clicked(23); } public function ballBtn24(_arg1:Object=null){ clicked(24); } public function ballBtn25(_arg1:Object=null){ clicked(25); } public function ballBtn26(_arg1:Object=null){ clicked(26); } public function ballBtn27(_arg1:Object=null){ clicked(27); } public function ballBtn28(_arg1:Object=null){ clicked(28); } public function ballBtn22(_arg1:Object=null){ clicked(22); } public function ballBtn29(_arg1:Object=null){ clicked(29); } } }//package
Section 286
//uiHeader (uiHeader) package { import flash.display.*; import flash.text.*; public class uiHeader extends MovieClip { public var shot3:MovieClip; public var pass_mc:MovieClip; public var time_txt:TextField; public var shot6:MovieClip; public var Shots:Array; public var crown_mc:MovieClip; public var levelcn_txt:TextField; public var level_txt:TextField; public var lives_txt:TextField; public var restart_btn:SimpleButton; public var pass_txt:TextField; public var lives_mc:MovieClip; public var timehoopz_txt:TextField; public var walk_btn:SimpleButton; public var clock_mc:MovieClip; public var quit_btn:SimpleButton; public var shot2:MovieClip; public var shot4:MovieClip; public var shot5:MovieClip; public var shot1:MovieClip; public function uiHeader(){ var _local1:Number; var _local2:MovieClip; super(); ui.Header = this; fonts.apply(level_txt, fonts.Button1); fonts.apply(time_txt, fonts.Button1); fonts.apply(lives_txt, fonts.Button1); fonts.apply(pass_txt, fonts.Button1); fonts.apply(timehoopz_txt, fonts.Button1); Shots = [shot1, shot2, shot3, shot4, shot5, shot6]; quit_btn.addEventListener("click", btnQuit); restart_btn.addEventListener("click", btnRestart); walk_btn.addEventListener("click", btnWalk); quit_btn.tabEnabled = false; restart_btn.tabEnabled = false; walk_btn.tabEnabled = false; } public function hideButtons(){ quit_btn.visible = false; quit_btn.enabled = false; restart_btn.visible = false; restart_btn.enabled = false; } public function miss(_arg1:Number){ var _local2:MovieClip; if (g.TimeMode){ return; }; _local2 = Shots[_arg1]; _local2.gotoAndStop(4); } public function nextShot(_arg1:Number, _arg2:Array, _arg3:Array){ var _local4:MovieClip; var _local5:Number; if (g.TimeMode){ return; }; _local5 = 0; while (_local5 < _arg1) { _local4 = Shots[_local5]; if (((!(_arg2[_local5])) && (!(_arg3[_local5])))){ _local4.gotoAndStop(1); }; _local5++; }; _local4 = Shots[_arg1]; _local4.gotoAndStop(2); } public function init(){ var _local1:MovieClip; for each (_local1 in Shots) { _local1.gotoAndStop(1); if (g.TimeMode){ _local1.visible = false; } else { _local1.visible = true; }; }; shot1.visible = true; shot1.gotoAndStop(2); timehoopz_txt.visible = g.TimeMode; timehoopz_txt.text = ""; level_txt.text = ("LEVEL " + ui.LevelSelect.Index); time_txt.text = ""; clock_mc.visible = g.TimeMode; if (g.KingMode){ restart_btn.visible = false; restart_btn.enabled = false; crown_mc.visible = true; lives_txt.text = g.cGame.Lives; lives_txt.visible = true; lives_mc.visible = true; pass_mc.visible = true; pass_txt.visible = true; pass_txt.text = g.cGame.Safeties; shot6.visible = true; } else { restart_btn.visible = true; restart_btn.enabled = true; crown_mc.visible = false; lives_txt.visible = false; lives_mc.visible = false; pass_mc.visible = false; pass_txt.visible = false; shot6.visible = false; }; } public function btnRestart(_arg1:Object=null){ g.Player.tryAgain(); } public function setTimeHoopz(_arg1:Number){ timehoopz_txt.text = _arg1; if (_arg1 == 1){ Shots[0].gotoAndStop(3); }; } public function showButtons(){ quit_btn.visible = true; quit_btn.enabled = true; if (!g.KingMode){ restart_btn.visible = true; restart_btn.enabled = true; }; } public function setLives(){ lives_txt.text = g.cGame.Lives; } public function btnQuit(_arg1:Object=null){ g.Game.reset(); if (g.KingMode){ ui.GameMenu.gotoMenu(); } else { ui.GameMenu.gotoSelection(); }; } public function hoopz(_arg1:Number){ var _local2:MovieClip; if (g.TimeMode){ return; }; _local2 = Shots[_arg1]; _local2.gotoAndStop(3); } public function btnWalk(_arg1:Object=null){ } public function showTime(_arg1:Number){ time_txt.text = numbers.formatSeconds(_arg1); } public function setSafeties(){ pass_txt.text = g.cGame.Safeties; } } }//package
Section 287
//uiLevelSelect (uiLevelSelect) package { import flash.display.*; import flash.text.*; public class uiLevelSelect extends MovieClip { public var back_btn:SimpleButton; public var level01:MovieClip; public var level03:MovieClip; public var level04:MovieClip; public var level05:MovieClip; public var level06:MovieClip; public var level07:MovieClip; public var level02:MovieClip; public var level08:MovieClip; public var Levels:Array; public var caption_txt:TextField; public var level09:MovieClip; public var level10:MovieClip; public var level11:MovieClip; public var level12:MovieClip; public var level13:MovieClip; public var level14:MovieClip; public var level15:MovieClip; public var level16:MovieClip; public var level17:MovieClip; public var level18:MovieClip; public var level19:MovieClip; public var Index:Number; public var submit_btn:SimpleButton; public var level20:MovieClip; public var score_txt:TextField; public var level22:MovieClip; public var level23:MovieClip; public var level25:MovieClip; public var level27:MovieClip; public var level29:MovieClip; public var level24:MovieClip; public var level26:MovieClip; public var level28:MovieClip; public var level21:MovieClip; public var level30:MovieClip; public var label1_txt:TextField; public function uiLevelSelect(){ var _local1:*; var _local2:Number; var _local3:MovieClip; super(); addFrameScript(0, frame1); ui.LevelSelect = this; Index = 1; fonts.apply(caption_txt, fonts.Button1); fonts.apply(label1_txt, fonts.Button1); fonts.apply(score_txt, fonts.Button1); Levels = []; Levels.push(level01); Levels.push(level02); Levels.push(level03); Levels.push(level04); Levels.push(level05); Levels.push(level06); Levels.push(level07); Levels.push(level08); Levels.push(level09); Levels.push(level10); Levels.push(level11); Levels.push(level12); Levels.push(level13); Levels.push(level14); Levels.push(level15); Levels.push(level16); Levels.push(level17); Levels.push(level18); Levels.push(level19); Levels.push(level20); Levels.push(level21); Levels.push(level22); Levels.push(level23); Levels.push(level24); Levels.push(level25); _local1 = 0; while (_local1 < Levels.length) { Levels[_local1].setLevel((_local1 + 1), g.cGame.Levels[_local1]); _local1++; }; _local2 = g.Player.totalScore(); score_txt.text = numbers.format(_local2); submit_btn.enabled = (submit_btn.visible = Boolean((_local2 > 0))); back_btn.addEventListener("click", btnBack); submit_btn.addEventListener("click", btnSubmit); back_btn.tabEnabled = false; submit_btn.tabEnabled = false; } public function init(){ var _local1:*; var _local2:Number; _local1 = 0; while (_local1 < Levels.length) { Levels[_local1].setLevel((_local1 + 1), g.cGame.Levels[_local1]); _local1++; }; _local2 = g.Player.totalScore(); score_txt.text = numbers.format(_local2); submit_btn.enabled = (submit_btn.visible = Boolean((_local2 > 0))); } public function clicked(_arg1:Number){ var level = _arg1; try { trace("all levels unlocked for beta"); Index = level; ui.GameMenu.gotoPlay(); Juke.Box.gameScore(); } catch(e:Error) { }; } public function btnSubmit(_arg1:Object=null){ Juke.Box.btnClick(); ui.GameMenu.gotoFreeScore(); } public function out(_arg1:Number){ ui.LevelPreview.setLevel(0); Levels[(_arg1 - 1)].ball_mc.stop(); } public function over(_arg1:Number){ ui.LevelPreview.setLevel(_arg1); Levels[(_arg1 - 1)].ball_mc.play(); } function frame1(){ stop(); } public function btnBack(_arg1:Object=null){ ui.GameMenu.gotoMenu(); } } }//package
Section 288
//url (url) package { import flash.net.*; public class url { public static var PLAY_KING:URLRequest; public static var FREESCORES_DEV:URLRequest; public static var FREESCORES_SPONSOR:URLRequest; public static var SPONSOR_SELECTION:URLRequest; public static var SPONSOR_MENU:URLRequest; public static var FACEBOOK:URLRequest; public static var SPONSOR_SPLASH:URLRequest; public static var PLAY_NORMAL:URLRequest; public static var DEV_LOADER:URLRequest; public static var IPHONE:URLRequest; public static var MOREGAMES_SPONSOR:URLRequest; public static var MOREGAMES_DEV:URLRequest; public static var KINGSCORES_DEV:URLRequest; public static var DEV_MENU:URLRequest; public static var WALKTHROUGH_DEV:URLRequest; public static var KINGSCORES_SPONSOR:URLRequest; public static var WALKTHROUGH_SPONSOR:URLRequest; public static var DEV_SPLASH:URLRequest; public static var SPONSOR_LOADER:URLRequest; } }//package

Library Items

Symbol 1 Font {CreativeBlock}Used by:356 357 358 364 365 378 379 380 383 386 389 390 396 397 398 399 400 401 402 403 404 407 408 409 414 415 416 417 418 419 420 423 424 425 426 427 428 429 430 431 432 433 434 435 437 466 467 468 471 474 475 476 478 481 483 485 487 489 491 492 494 496 498 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 526 527 535 536 538 596 597 598 599 608 611 614 616 619 621 624 626 629 637 638 643 644 645 646 647 648 651 652 665 666 667 668 669 670 672 673 674 676 677 678 679 680 681 685 686 687 689 690 691 692 693 694
Symbol 2 Sound {SfxClick}Used by:276
Symbol 3 Sound {CasinoFunk01}Used by:276
Symbol 4 Sound {CasinoFunk04}Used by:276
Symbol 5 Sound {rimA}Used by:276
Symbol 6 Sound {bounceD}Used by:276
Symbol 7 Sound {CasinoFunk03}Used by:276
Symbol 8 Sound {SfxBuzzer}Used by:276
Symbol 9 Sound {bounceC}Used by:276
Symbol 10 Sound {CasinoFunk02}Used by:276
Symbol 11 Sound {swishB}Used by:276
Symbol 12 Sound {bounceA}Used by:276
Symbol 13 Sound {CasinoFunk05}Used by:276
Symbol 14 Sound {bounceB}Used by:276
Symbol 15 Sound {swishA}Used by:276
Symbol 16 GraphicUsed by:17 41 59 63 280 345 382 422 470 618 623 628
Symbol 17 MovieClip {AdBox}Uses:16
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClipUses:18Used by:38
Symbol 20 MovieClip {fl.core.ComponentShim}Used by:38
Symbol 21 GraphicUsed by:22 31
Symbol 22 MovieClip {CheckBox_upIcon}Uses:21Used by:38
Symbol 23 GraphicUsed by:24 32
Symbol 24 MovieClip {CheckBox_overIcon}Uses:23Used by:38
Symbol 25 GraphicUsed by:26 33
Symbol 26 MovieClip {CheckBox_downIcon}Uses:25Used by:38
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClip {CheckBox_disabledIcon}Uses:27Used by:38
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClipUses:29Used by:31 32 33 35
Symbol 31 MovieClip {CheckBox_selectedUpIcon}Uses:21 30Used by:38
Symbol 32 MovieClip {CheckBox_selectedOverIcon}Uses:23 30Used by:38
Symbol 33 MovieClip {CheckBox_selectedDownIcon}Uses:25 30Used by:38
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {CheckBox_selectedDisabledIcon}Uses:34 30Used by:38
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClip {focusRectSkin}Uses:36Used by:38
Symbol 38 MovieClip {fl.controls.CheckBox}Uses:19 20 22 24 26 28 31 32 33 35 37Used by:528
Symbol 39 BitmapUsed by:40
Symbol 40 GraphicUses:39Used by:44 602
Symbol 41 MovieClipUses:16Used by:44 74 279 281 346 347 350 413 454 477 534 539 602 604 641 663 671 683 696 698  Timeline
Symbol 42 BitmapUsed by:43
Symbol 43 GraphicUses:42Used by:44
Symbol 44 MovieClip {perfecthoopz2_fla.menubackground_4}Uses:40 41 43Used by:74 698
Symbol 45 BitmapUsed by:46 216 348 460 493 654
Symbol 46 GraphicUses:45Used by:59
Symbol 47 BitmapUsed by:48
Symbol 48 GraphicUses:47Used by:59
Symbol 49 BitmapUsed by:50
Symbol 50 GraphicUses:49Used by:51
Symbol 51 MovieClipUses:50Used by:59 346
Symbol 52 BitmapUsed by:53
Symbol 53 GraphicUses:52Used by:59 346
Symbol 54 BitmapUsed by:55
Symbol 55 GraphicUses:54Used by:59
Symbol 56 BitmapUsed by:57
Symbol 57 GraphicUses:56Used by:58 59
Symbol 58 MovieClipUses:57Used by:59
Symbol 59 ButtonUses:46 48 51 53 55 58 16 57Used by:74 642
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:60Used by:62
Symbol 62 MovieClipUses:61Used by:64
Symbol 63 MovieClipUses:16Used by:64
Symbol 64 MovieClip {perfecthoopz2_fla.bar_8}Uses:62 63Used by:74
Symbol 65 FontUsed by:66 67 73
Symbol 66 EditableTextUses:65Used by:74
Symbol 67 EditableTextUses:65Used by:74
Symbol 68 MovieClip {AdPreRoll}Used by:74
Symbol 69 BitmapUsed by:70
Symbol 70 GraphicUses:69Used by:71 72
Symbol 71 MovieClip {perfecthoopz2_fla.text_14}Uses:70Used by:72
Symbol 72 ButtonUses:71 70Used by:74
Symbol 73 TextUses:65Used by:74
Symbol 74 MovieClip {loader}Uses:44 59 64 66 67 68 72 73 41Used by:Timeline
Symbol 75 MovieClip {JukeBox}Used by:Timeline
Symbol 76 MovieClip {fl.controls.Button}
Symbol 77 BitmapUsed by:78
Symbol 78 GraphicUses:77Used by:79
Symbol 79 MovieClipUses:78Used by:102 124 126 187 199
Symbol 80 BitmapUsed by:81 164
Symbol 81 GraphicUses:80Used by:82
Symbol 82 MovieClip {LampPostA1}Uses:81Used by:102 111 126 138 149 150 163 183 188 194 195 207 208
Symbol 83 BitmapUsed by:84
Symbol 84 GraphicUses:83Used by:85
Symbol 85 MovieClip {BasketPost}Uses:84Used by:102 124 142 150 151 159 179 187 188 199 202 209 603
Symbol 86 GraphicUsed by:87
Symbol 87 MovieClip {StartArea}Uses:86Used by:102 111 124 126 138 142 149 150 151 159 163 173 178 179 183 187 188 194 195 199 202 206 207 208 209 603 662
Symbol 88 GraphicUsed by:89
Symbol 89 MovieClipUses:88Used by:92 653
Symbol 90 GraphicUsed by:91
Symbol 91 MovieClipUses:90Used by:92 653
Symbol 92 MovieClip {perfecthoopz2_fla.uiIndicator_21}Uses:89 91Used by:102 111 124 126 138 142 149 150 151 159 163 173 178 179 183 187 188 194 195 199 202 206 207 208 209 603
Symbol 93 MovieClip {perfecthoopz2_fla.BallLayer_24}Used by:102 111 124 126 138 142 149 150 151 159 163 173 178 179 183 187 188 194 195 199 202 206 207 208 209 603
Symbol 94 GraphicUsed by:101 177
Symbol 95 GraphicUsed by:96 97
Symbol 96 MovieClipUses:95Used by:101 110 125 177
Symbol 97 MovieClip {RimSupport}Uses:95Used by:101 110 125 177
Symbol 98 BitmapUsed by:99
Symbol 99 GraphicUses:98Used by:100
Symbol 100 MovieClip {Board}Uses:99Used by:101 110 125 177
Symbol 101 MovieClip {BasketR}Uses:94 96 97 100Used by:102 124 142 150 173 179 187 194 195 199 206 209 603
Symbol 102 MovieClip {level25}Uses:79 82 85 87 92 93 101Used by:276
Symbol 103 BitmapUsed by:104
Symbol 104 GraphicUses:103Used by:105
Symbol 105 MovieClipUses:104Used by:111 150 179 183
Symbol 106 BitmapUsed by:107
Symbol 107 GraphicUses:106Used by:108
Symbol 108 MovieClip {SignPostA}Uses:107Used by:111 183 202
Symbol 109 GraphicUsed by:110 125
Symbol 110 MovieClip {BasketL}Uses:109 96 97 100Used by:111 138 149 151 159 163 183 188 202 207 208
Symbol 111 MovieClip {level24}Uses:105 82 108 87 92 93 110Used by:276
Symbol 112 BitmapUsed by:113 130
Symbol 113 GraphicUses:112Used by:114
Symbol 114 MovieClip {mcar_muranoB}Uses:113Used by:124 126
Symbol 115 BitmapUsed by:116 132
Symbol 116 GraphicUses:115Used by:117
Symbol 117 MovieClip {mcar_matrixB}Uses:116Used by:124 126
Symbol 118 BitmapUsed by:119 134
Symbol 119 GraphicUses:118Used by:120
Symbol 120 MovieClip {mcar_roverB}Uses:119Used by:124 126
Symbol 121 BitmapUsed by:122 136
Symbol 122 GraphicUses:121Used by:123
Symbol 123 MovieClip {mcar_cruiserB}Uses:122Used by:124 126
Symbol 124 MovieClip {level23}Uses:79 85 114 117 120 123 87 92 93 101Used by:276
Symbol 125 MovieClip {BasketL2}Uses:109 96 97 100Used by:126
Symbol 126 MovieClip {level22}Uses:79 82 123 114 120 117 87 92 93 125Used by:276
Symbol 127 BitmapUsed by:128
Symbol 128 GraphicUses:127Used by:129
Symbol 129 MovieClipUses:128Used by:138 159 163 206 207 208 663
Symbol 130 GraphicUses:112Used by:131
Symbol 131 MovieClip {mcar_muranoA}Uses:130Used by:138 150
Symbol 132 GraphicUses:115Used by:133
Symbol 133 MovieClip {mcar_matrixA}Uses:132Used by:138
Symbol 134 GraphicUses:118Used by:135
Symbol 135 MovieClip {mcar_roverA}Uses:134Used by:138
Symbol 136 GraphicUses:121Used by:137
Symbol 137 MovieClip {mcar_cruiserA}Uses:136Used by:138
Symbol 138 MovieClip {level21}Uses:129 82 131 133 135 137 87 92 93 110Used by:276
Symbol 139 BitmapUsed by:140
Symbol 140 GraphicUses:139Used by:141
Symbol 141 MovieClipUses:140Used by:142 151 194 195
Symbol 142 MovieClip {level20}Uses:141 85 87 92 93 101Used by:276
Symbol 143 BitmapUsed by:144
Symbol 144 GraphicUses:143Used by:145 209
Symbol 145 MovieClipUses:144Used by:149 173 178 188 202 671 683 696
Symbol 146 BitmapUsed by:147 200
Symbol 147 GraphicUses:146Used by:148
Symbol 148 MovieClip {car_ctsB}Uses:147Used by:149
Symbol 149 MovieClip {level19}Uses:145 82 148 87 92 93 110Used by:276
Symbol 150 MovieClip {level18}Uses:105 85 82 131 87 92 93 101Used by:276
Symbol 151 MovieClip {level17}Uses:141 85 87 92 93 110Used by:276
Symbol 152 BitmapUsed by:154
Symbol 153 BitmapUsed by:154 161 166
Symbol 154 GraphicUses:152 153Used by:155
Symbol 155 MovieClip {PalletD2}Uses:154Used by:159
Symbol 156 BitmapUsed by:157 168
Symbol 157 GraphicUses:156Used by:158
Symbol 158 MovieClip {LiftB}Uses:157Used by:159 163
Symbol 159 MovieClip {level16}Uses:129 85 155 158 87 92 93 110Used by:276
Symbol 160 BitmapUsed by:161
Symbol 161 GraphicUses:160 153Used by:162
Symbol 162 MovieClip {PalletC2}Uses:161Used by:163
Symbol 163 MovieClip {level15}Uses:129 82 162 158 87 92 93 110Used by:276
Symbol 164 GraphicUses:80Used by:165
Symbol 165 MovieClip {LampPostA2}Uses:164Used by:173 178 179 206
Symbol 166 GraphicUses:153Used by:167
Symbol 167 MovieClip {PalletB1}Uses:166Used by:173
Symbol 168 GraphicUses:156Used by:169
Symbol 169 MovieClip {LiftA}Uses:168Used by:173 178 179
Symbol 170 BitmapUsed by:171
Symbol 171 GraphicUses:170Used by:172
Symbol 172 MovieClip {BeamBoxA}Uses:171Used by:173 206
Symbol 173 MovieClip {level14}Uses:145 165 167 169 172 87 92 93 101Used by:276
Symbol 174 BitmapUsed by:175
Symbol 175 GraphicUses:174Used by:176
Symbol 176 MovieClip {PalletA1}Uses:175Used by:178 179
Symbol 177 MovieClip {BasketR2}Uses:94 96 97 100Used by:178
Symbol 178 MovieClip {level13}Uses:145 165 176 169 87 92 93 177Used by:276
Symbol 179 MovieClip {level12}Uses:105 165 85 176 169 87 92 93 101Used by:276
Symbol 180 BitmapUsed by:181
Symbol 181 GraphicUses:180Used by:182
Symbol 182 MovieClip {DumpsterA1}Uses:181Used by:183
Symbol 183 MovieClip {level11}Uses:105 82 108 182 87 92 93 110Used by:276
Symbol 184 BitmapUsed by:185 192
Symbol 185 GraphicUses:184Used by:186
Symbol 186 MovieClip {Excavator60B}Uses:185Used by:187 208
Symbol 187 MovieClip {level10}Uses:79 85 186 87 92 93 101Used by:276
Symbol 188 MovieClip {level09}Uses:145 82 85 87 92 93 110Used by:276
Symbol 189 BitmapUsed by:190
Symbol 190 GraphicUses:189Used by:191
Symbol 191 MovieClip {TelehandlerA}Uses:190Used by:194 195
Symbol 192 GraphicUses:184Used by:193
Symbol 193 MovieClip {Excavator60A}Uses:192Used by:194 207
Symbol 194 MovieClip {level08}Uses:141 82 191 87 92 93 101 193Used by:276
Symbol 195 MovieClip {level07}Uses:141 82 191 87 92 93 101Used by:276
Symbol 196 BitmapUsed by:197
Symbol 197 GraphicUses:196Used by:198
Symbol 198 MovieClip {LampPostB}Uses:197Used by:199
Symbol 199 MovieClip {level06}Uses:79 85 198 87 92 93 101Used by:276
Symbol 200 GraphicUses:146Used by:201
Symbol 201 MovieClip {car_ctsA}Uses:200Used by:202 206
Symbol 202 MovieClip {level05}Uses:145 108 85 201 87 92 93 110Used by:276
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:205
Symbol 205 MovieClip {SignPostB}Uses:204Used by:206
Symbol 206 MovieClip {level04}Uses:129 165 205 201 172 87 92 93 101Used by:276
Symbol 207 MovieClip {level03}Uses:129 193 82 87 92 93 110Used by:276
Symbol 208 MovieClip {level02}Uses:129 82 186 87 92 93 110Used by:276
Symbol 209 MovieClip {level01}Uses:144 85 87 92 93 101Used by:276
Symbol 210 GraphicUsed by:211
Symbol 211 MovieClip {RimNode}Uses:210Used by:276
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClip {RopeNode}Uses:212Used by:276
Symbol 214 GraphicUsed by:215
Symbol 215 MovieClip {NetNode}Uses:214Used by:276
Symbol 216 GraphicUses:45Used by:275 632
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:275 632
Symbol 219 BitmapUsed by:220
Symbol 220 GraphicUses:219Used by:275 632
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:275 632
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:275 632
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:275 632
Symbol 227 BitmapUsed by:228
Symbol 228 GraphicUses:227Used by:275 632
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:275 632
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231Used by:275 632
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:275 632
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:275 632
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:275 632
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:275 632
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:275 632
Symbol 243 BitmapUsed by:244
Symbol 244 GraphicUses:243Used by:275 632
Symbol 245 BitmapUsed by:246
Symbol 246 GraphicUses:245Used by:275 632
Symbol 247 BitmapUsed by:248
Symbol 248 GraphicUses:247Used by:275 632
Symbol 249 BitmapUsed by:250
Symbol 250 GraphicUses:249Used by:275 632
Symbol 251 BitmapUsed by:252
Symbol 252 GraphicUses:251Used by:275 632
Symbol 253 BitmapUsed by:254
Symbol 254 GraphicUses:253Used by:275 632
Symbol 255 BitmapUsed by:256
Symbol 256 GraphicUses:255Used by:275 632
Symbol 257 BitmapUsed by:258
Symbol 258 GraphicUses:257Used by:275 632
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:275 632
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:275 632
Symbol 263 BitmapUsed by:264
Symbol 264 GraphicUses:263Used by:275 632
Symbol 265 BitmapUsed by:266
Symbol 266 GraphicUses:265Used by:275 632
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:275 632
Symbol 269 BitmapUsed by:270
Symbol 270 GraphicUses:269Used by:275 632
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:275 632
Symbol 273 BitmapUsed by:274
Symbol 274 GraphicUses:273Used by:275 632
Symbol 275 MovieClip {BasketBall}Uses:216 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 248 250 252 254 256 258 260 262 264 266 268 270 272 274Used by:276
Symbol 276 MovieClipUses:102 111 124 126 138 142 149 150 151 159 163 173 178 179 183 187 188 194 195 199 202 206 207 208 209 211 213 215 275 3 10 7 4 13 12 14 9 6 5 15 11 2 8Used by:Timeline
Symbol 277 BitmapUsed by:278
Symbol 278 GraphicUses:277Used by:279
Symbol 279 MovieClipUses:41 278Used by:281 346
Symbol 280 ButtonUses:16Used by:281
Symbol 281 MovieClip {perfecthoopz2_fla.splashsponsor_89}Uses:279 41 280Used by:Timeline
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:346
Symbol 284 BitmapUsed by:285
Symbol 285 GraphicUses:284Used by:344
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:344
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:344
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:344
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:344
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:344
Symbol 296 BitmapUsed by:297
Symbol 297 GraphicUses:296Used by:344
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:344
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:344
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:344
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:344
Symbol 306 BitmapUsed by:307
Symbol 307 GraphicUses:306Used by:344
Symbol 308 BitmapUsed by:309
Symbol 309 GraphicUses:308Used by:344
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:310Used by:344
Symbol 312 BitmapUsed by:313
Symbol 313 GraphicUses:312Used by:344
Symbol 314 BitmapUsed by:315
Symbol 315 GraphicUses:314Used by:344
Symbol 316 BitmapUsed by:317
Symbol 317 GraphicUses:316Used by:344
Symbol 318 BitmapUsed by:319
Symbol 319 GraphicUses:318Used by:344
Symbol 320 BitmapUsed by:321
Symbol 321 GraphicUses:320Used by:344
Symbol 322 BitmapUsed by:323
Symbol 323 GraphicUses:322Used by:344
Symbol 324 BitmapUsed by:325
Symbol 325 GraphicUses:324Used by:344
Symbol 326 BitmapUsed by:327
Symbol 327 GraphicUses:326Used by:344
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:344
Symbol 330 BitmapUsed by:331
Symbol 331 GraphicUses:330Used by:344
Symbol 332 BitmapUsed by:333
Symbol 333 GraphicUses:332Used by:344
Symbol 334 BitmapUsed by:335
Symbol 335 GraphicUses:334Used by:344
Symbol 336 BitmapUsed by:337
Symbol 337 GraphicUses:336Used by:344
Symbol 338 BitmapUsed by:339
Symbol 339 GraphicUses:338Used by:344
Symbol 340 BitmapUsed by:341
Symbol 341 GraphicUses:340Used by:344
Symbol 342 BitmapUsed by:343
Symbol 343 GraphicUses:342Used by:344
Symbol 344 MovieClipUses: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 343Used by:346 595 642 696
Symbol 345 ButtonUses:16Used by:346
Symbol 346 MovieClip {perfecthoopz2_fla.defaultsplashqigames_93}Uses:279 283 51 53 344 41 345Used by:347
Symbol 347 MovieClip {perfecthoopz2_fla.splashqigames_92}Uses:41 346Used by:Timeline
Symbol 348 GraphicUses:45Used by:349
Symbol 349 MovieClipUses:348Used by:350
Symbol 350 MovieClipUses:41 349Used by:698
Symbol 351 MovieClip {aiPlayer}Used by:352
Symbol 352 MovieClip {GameInstance}Uses:351Used by:529
Symbol 353 BitmapUsed by:354
Symbol 354 GraphicUses:353Used by:355
Symbol 355 MovieClipUses:354Used by:376 391 405 412 453
Symbol 356 EditableTextUses:1Used by:376
Symbol 357 EditableTextUses:1Used by:376
Symbol 358 EditableTextUses:1Used by:359 360
Symbol 359 MovieClip {perfecthoopz2_fla.text_107}Uses:358Used by:360
Symbol 360 ButtonUses:359 358Used by:376 412
Symbol 361 BitmapUsed by:362
Symbol 362 GraphicUses:361Used by:363
Symbol 363 MovieClipUses:362Used by:376 477 521 671
Symbol 364 EditableTextUses:1Used by:376
Symbol 365 EditableTextUses:1Used by:376
Symbol 366 ShapeTweeningUsed by:375
Symbol 367 BitmapUsed by:368
Symbol 368 GraphicUses:367Used by:375
Symbol 369 GraphicUsed by:375
Symbol 370 BitmapUsed by:371
Symbol 371 GraphicUses:370Used by:375
Symbol 372 GraphicUsed by:375
Symbol 373 ShapeTweeningUsed by:375
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClip {perfecthoopz2_fla.crossmark_109}Uses:366 368 369 371 372 373 374Used by:376 391 412 462
Symbol 376 MovieClip {perfecthoopz2_fla.kinglives_104}Uses:355 356 357 360 363 364 365 375Used by:377
Symbol 377 MovieClip {perfecthoopz2_fla.uiKingLives_103}Uses:376Used by:523
Symbol 378 EditableTextUses:1Used by:391
Symbol 379 EditableTextUses:1Used by:391
Symbol 380 EditableTextUses:1Used by:381 382
Symbol 381 MovieClip {perfecthoopz2_fla.text_113}Uses:380Used by:382
Symbol 382 ButtonUses:381 16 380Used by:391 412 453 683
Symbol 383 EditableTextUses:1Used by:384 385
Symbol 384 MovieClip {perfecthoopz2_fla.text_115}Uses:383Used by:385
Symbol 385 ButtonUses:384 383Used by:391 477 683
Symbol 386 EditableTextUses:1Used by:387 388
Symbol 387 MovieClip {perfecthoopz2_fla.text_117}Uses:386Used by:388
Symbol 388 ButtonUses:387 386Used by:391 453
Symbol 389 EditableTextUses:1Used by:391
Symbol 390 EditableTextUses:1Used by:391
Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111}Uses:355 378 379 382 385 388 389 390 375Used by:392
Symbol 392 MovieClip {perfecthoopz2_fla.uiKingFailure_110}Uses:391Used by:523
Symbol 393 BitmapUsed by:394
Symbol 394 GraphicUses:393Used by:395
Symbol 395 MovieClipUses:394Used by:405 477 642 671 683
Symbol 396 EditableTextUses:1Used by:405
Symbol 397 EditableTextUses:1Used by:405
Symbol 398 EditableTextUses:1Used by:405
Symbol 399 EditableTextUses:1Used by:405
Symbol 400 EditableTextUses:1Used by:405
Symbol 401 EditableTextUses:1Used by:405
Symbol 402 EditableTextUses:1Used by:405
Symbol 403 EditableTextUses:1Used by:405
Symbol 404 EditableTextUses:1Used by:405
Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119}Uses:355 395 396 397 398 399 400 401 402 403 404Used by:406
Symbol 406 MovieClip {perfecthoopz2_fla.uiKingBonus_118}Uses:405Used by:523
Symbol 407 EditableTextUses:1Used by:412
Symbol 408 EditableTextUses:1Used by:412
Symbol 409 EditableTextUses:1Used by:410 411
Symbol 410 MovieClip {perfecthoopz2_fla.text_124}Uses:409Used by:411
Symbol 411 ButtonUses:410 409Used by:412 453 602 696
Symbol 412 MovieClip {perfecthoopz2_fla.failure_122}Uses:355 407 408 382 411 360 375Used by:413
Symbol 413 MovieClip {perfecthoopz2_fla.uiFailure_121}Uses:412 41Used by:523
Symbol 414 EditableTextUses:1Used by:453
Symbol 415 EditableTextUses:1Used by:453
Symbol 416 EditableTextUses:1Used by:453
Symbol 417 EditableTextUses:1Used by:453
Symbol 418 EditableTextUses:1Used by:453
Symbol 419 EditableTextUses:1Used by:453
Symbol 420 EditableTextUses:1Used by:421 422
Symbol 421 MovieClip {perfecthoopz2_fla.text_128}Uses:420Used by:422
Symbol 422 ButtonUses:421 16 420Used by:453
Symbol 423 EditableTextUses:1Used by:453
Symbol 424 EditableTextUses:1Used by:453
Symbol 425 EditableTextUses:1Used by:453
Symbol 426 EditableTextUses:1Used by:453
Symbol 427 EditableTextUses:1Used by:453
Symbol 428 EditableTextUses:1Used by:453
Symbol 429 EditableTextUses:1Used by:453
Symbol 430 EditableTextUses:1Used by:453
Symbol 431 EditableTextUses:1Used by:453
Symbol 432 EditableTextUses:1Used by:453
Symbol 433 EditableTextUses:1Used by:453
Symbol 434 EditableTextUses:1Used by:453
Symbol 435 EditableTextUses:1Used by:453
Symbol 436 GraphicUsed by:438
Symbol 437 EditableTextUses:1Used by:438
Symbol 438 MovieClip {perfecthoopz2_fla.newbest_129}Uses:436 437Used by:453
Symbol 439 GraphicUsed by:453
Symbol 440 BitmapUsed by:441
Symbol 441 GraphicUses:440Used by:446
Symbol 442 BitmapUsed by:443
Symbol 443 GraphicUses:442Used by:446
Symbol 444 BitmapUsed by:445
Symbol 445 GraphicUses:444Used by:446
Symbol 446 MovieClip {perfecthoopz2_fla.medal_130}Uses:441 443 445Used by:453 590
Symbol 447 ShapeTweeningUsed by:452
Symbol 448 BitmapUsed by:449
Symbol 449 GraphicUses:448Used by:452
Symbol 450 ShapeTweeningUsed by:452
Symbol 451 GraphicUsed by:452
Symbol 452 MovieClip {perfecthoopz2_fla.checkmark_131}Uses:447 449 450 451Used by:453 462
Symbol 453 MovieClip {perfecthoopz2_fla.success_126}Uses:355 414 415 416 417 418 419 422 382 411 423 424 425 426 427 428 429 430 431 432 433 434 388 435 438 439 446 452Used by:454
Symbol 454 MovieClip {perfecthoopz2_fla.uiSuccess_125}Uses:453 41Used by:523
Symbol 455 BitmapUsed by:456
Symbol 456 GraphicUses:455Used by:477 602
Symbol 457 BitmapUsed by:458
Symbol 458 GraphicUses:457Used by:459
Symbol 459 MovieClipUses:458Used by:477 521 671
Symbol 460 GraphicUses:45Used by:461
Symbol 461 MovieClipUses:460Used by:462 671
Symbol 462 MovieClip {perfecthoopz2_fla.shot_134}Uses:461 452 375Used by:477
Symbol 463 BitmapUsed by:464
Symbol 464 GraphicUses:463Used by:465 479
Symbol 465 MovieClipUses:464Used by:477 642
Symbol 466 EditableTextUses:1Used by:477
Symbol 467 EditableTextUses:1Used by:477
Symbol 468 EditableTextUses:1Used by:469 470
Symbol 469 MovieClip {perfecthoopz2_fla.text_138}Uses:468Used by:470
Symbol 470 ButtonUses:469 16 468Used by:477
Symbol 471 EditableTextUses:1Used by:472 473
Symbol 472 MovieClip {perfecthoopz2_fla.text_140}Uses:471Used by:473
Symbol 473 ButtonUses:472 471Used by:477
Symbol 474 EditableTextUses:1Used by:477
Symbol 475 EditableTextUses:1Used by:477
Symbol 476 EditableTextUses:1Used by:477
Symbol 477 MovieClip {uiHeader}Uses:456 41 459 462 465 395 363 466 467 385 470 473 474 475 476Used by:523
Symbol 478 EditableTextUses:1Used by:479
Symbol 479 MovieClip {perfecthoopz2_fla.textnotice_142}Uses:478 464Used by:480
Symbol 480 MovieClip {perfecthoopz2_fla.uiTimeOver_141}Uses:479Used by:523
Symbol 481 EditableTextUses:1Used by:521
Symbol 482 GraphicUsed by:521
Symbol 483 EditableTextUses:1Used by:521
Symbol 484 GraphicUsed by:521
Symbol 485 EditableTextUses:1Used by:521
Symbol 486 GraphicUsed by:521
Symbol 487 EditableTextUses:1Used by:521
Symbol 488 GraphicUsed by:521
Symbol 489 EditableTextUses:1Used by:521
Symbol 490 GraphicUsed by:521
Symbol 491 EditableTextUses:1Used by:521
Symbol 492 EditableTextUses:1Used by:521
Symbol 493 GraphicUses:45Used by:521
Symbol 494 EditableTextUses:1Used by:521
Symbol 495 GraphicUsed by:521
Symbol 496 EditableTextUses:1Used by:521
Symbol 497 GraphicUsed by:521
Symbol 498 EditableTextUses:1Used by:521
Symbol 499 GraphicUsed by:521
Symbol 500 EditableTextUses:1Used by:521
Symbol 501 EditableTextUses:1Used by:521
Symbol 502 EditableTextUses:1Used by:521
Symbol 503 EditableTextUses:1Used by:521
Symbol 504 EditableTextUses:1Used by:521
Symbol 505 EditableTextUses:1Used by:521
Symbol 506 EditableTextUses:1Used by:521
Symbol 507 EditableTextUses:1Used by:521
Symbol 508 EditableTextUses:1Used by:521
Symbol 509 EditableTextUses:1Used by:521
Symbol 510 EditableTextUses:1Used by:521
Symbol 511 EditableTextUses:1Used by:521
Symbol 512 EditableTextUses:1Used by:521
Symbol 513 EditableTextUses:1Used by:521
Symbol 514 EditableTextUses:1Used by:521
Symbol 515 EditableTextUses:1Used by:521
Symbol 516 EditableTextUses:1Used by:521
Symbol 517 EditableTextUses:1Used by:521
Symbol 518 EditableTextUses:1Used by:521
Symbol 519 EditableTextUses:1Used by:521
Symbol 520 EditableTextUses:1Used by:521
Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144}Uses:481 482 483 484 485 486 487 488 489 490 491 363 492 459 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520Used by:522
Symbol 522 MovieClip {perfecthoopz2_fla.uiNotice_143}Uses:521Used by:523
Symbol 523 MovieClip {GameInterface}Uses:377 392 406 413 454 477 480 522Used by:529
Symbol 524 BitmapUsed by:525
Symbol 525 GraphicUses:524Used by:528
Symbol 526 EditableTextUses:1Used by:528
Symbol 527 EditableTextUses:1Used by:528
Symbol 528 MovieClip {perfecthoopz2_fla.soundcontrol_145}Uses:525 38 526 527Used by:529 602 642
Symbol 529 MovieClip {perfecthoopz2_fla.gamecontainer_99}Uses:352 523 528Used by:698
Symbol 530 GraphicUsed by:534
Symbol 531 BitmapUsed by:532
Symbol 532 GraphicUses:531Used by:533
Symbol 533 MovieClipUses:532Used by:534 595
Symbol 534 MovieClipUses:41 530 533Used by:590
Symbol 535 EditableTextUses:1Used by:590
Symbol 536 EditableTextUses:1Used by:590
Symbol 537 GraphicUsed by:539
Symbol 538 EditableTextUses:1Used by:539
Symbol 539 MovieClip {perfecthoopz2_fla.defaultA_162}Uses:41 537 538Used by:590
Symbol 540 BitmapUsed by:541
Symbol 541 GraphicUses:540Used by:590
Symbol 542 BitmapUsed by:543
Symbol 543 GraphicUses:542Used by:590
Symbol 544 BitmapUsed by:545
Symbol 545 GraphicUses:544Used by:590
Symbol 546 BitmapUsed by:547
Symbol 547 GraphicUses:546Used by:590
Symbol 548 BitmapUsed by:549
Symbol 549 GraphicUses:548Used by:590
Symbol 550 BitmapUsed by:551
Symbol 551 GraphicUses:550Used by:590
Symbol 552 BitmapUsed by:553
Symbol 553 GraphicUses:552Used by:590
Symbol 554 BitmapUsed by:555
Symbol 555 GraphicUses:554Used by:590
Symbol 556 BitmapUsed by:557
Symbol 557 GraphicUses:556Used by:590
Symbol 558 BitmapUsed by:559
Symbol 559 GraphicUses:558Used by:590
Symbol 560 BitmapUsed by:561
Symbol 561 GraphicUses:560Used by:590
Symbol 562 BitmapUsed by:563
Symbol 563 GraphicUses:562Used by:590
Symbol 564 BitmapUsed by:565
Symbol 565 GraphicUses:564Used by:590
Symbol 566 BitmapUsed by:567
Symbol 567 GraphicUses:566Used by:590
Symbol 568 BitmapUsed by:569
Symbol 569 GraphicUses:568Used by:590
Symbol 570 BitmapUsed by:571
Symbol 571 GraphicUses:570Used by:590
Symbol 572 BitmapUsed by:573
Symbol 573 GraphicUses:572Used by:590
Symbol 574 BitmapUsed by:575
Symbol 575 GraphicUses:574Used by:590
Symbol 576 BitmapUsed by:577
Symbol 577 GraphicUses:576Used by:590
Symbol 578 BitmapUsed by:579
Symbol 579 GraphicUses:578Used by:590
Symbol 580 BitmapUsed by:581
Symbol 581 GraphicUses:580Used by:590
Symbol 582 BitmapUsed by:583
Symbol 583 GraphicUses:582Used by:590
Symbol 584 BitmapUsed by:585
Symbol 585 GraphicUses:584Used by:590
Symbol 586 BitmapUsed by:587
Symbol 587 GraphicUses:586Used by:590
Symbol 588 BitmapUsed by:589
Symbol 589 GraphicUses:588Used by:590
Symbol 590 MovieClip {perfecthoopz2_fla.uiLevelPreview_159}Uses:446 534 535 536 539 541 543 545 547 549 551 553 555 557 559 561 563 565 567 569 571 573 575 577 579 581 583 585 587 589Used by:602
Symbol 591 FontUsed by:592
Symbol 592 EditableTextUses:591Used by:595
Symbol 593 GraphicUsed by:594
Symbol 594 ButtonUses:593Used by:595
Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}Uses:344 533 592 594Used by:602
Symbol 596 EditableTextUses:1Used by:602
Symbol 597 EditableTextUses:1Used by:602
Symbol 598 EditableTextUses:1Used by:602
Symbol 599 EditableTextUses:1Used by:600 601
Symbol 600 MovieClip {perfecthoopz2_fla.text_166}Uses:599Used by:601
Symbol 601 ButtonUses:600 599Used by:602 675 682 688 695
Symbol 602 MovieClip {uiLevelSelect}Uses:40 41 456 590 595 596 597 411 598 601 528Used by:698
Symbol 603 MovieClip {Demo}Uses:85 87 92 93 101Used by:698
Symbol 604 MovieClip {perfecthoopz2_fla.demoshade_168}Uses:41Used by:698
Symbol 605 BitmapUsed by:606
Symbol 606 GraphicUses:605Used by:607
Symbol 607 MovieClipUses:606Used by:642
Symbol 608 EditableTextUses:1Used by:609 610
Symbol 609 MovieClip {perfecthoopz2_fla.text_172}Uses:608Used by:610
Symbol 610 ButtonUses:609 608Used by:642
Symbol 611 EditableTextUses:1Used by:612 613
Symbol 612 MovieClip {perfecthoopz2_fla.text_174}Uses:611Used by:613
Symbol 613 ButtonUses:612 611Used by:642
Symbol 614 EditableTextUses:1Used by:615 618
Symbol 615 MovieClip {perfecthoopz2_fla.text_176}Uses:614Used by:618
Symbol 616 EditableTextUses:1Used by:617 618
Symbol 617 MovieClip {perfecthoopz2_fla.text_177}Uses:616Used by:618
Symbol 618 ButtonUses:615 617 16 614 616Used by:642
Symbol 619 EditableTextUses:1Used by:620 623
Symbol 620 MovieClip {perfecthoopz2_fla.text_179}Uses:619Used by:623
Symbol 621 EditableTextUses:1Used by:622 623
Symbol 622 MovieClip {perfecthoopz2_fla.text_180}Uses:621Used by:623
Symbol 623 ButtonUses:620 622 16 619 621Used by:642
Symbol 624 EditableTextUses:1Used by:625 628
Symbol 625 MovieClip {perfecthoopz2_fla.text_182}Uses:624Used by:628
Symbol 626 EditableTextUses:1Used by:627 628
Symbol 627 MovieClip {perfecthoopz2_fla.text_183}Uses:626Used by:628
Symbol 628 ButtonUses:625 627 16 624 626Used by:642
Symbol 629 EditableTextUses:1Used by:630 631
Symbol 630 MovieClip {perfecthoopz2_fla.text_185}Uses:629Used by:631
Symbol 631 ButtonUses:630 629Used by:642
Symbol 632 MovieClip {perfecthoopz2_fla.balls_188}Uses:216 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 248 250 252 254 256 258 260 262 264 266 268 270 272 274Used by:633 634
Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}Uses:632Used by:641
Symbol 634 MovieClipUses:632Used by:641
Symbol 635 GraphicUsed by:636
Symbol 636 ButtonUses:635Used by:641
Symbol 637 EditableTextUses:1Used by:641
Symbol 638 EditableTextUses:1Used by:639 640
Symbol 639 MovieClip {perfecthoopz2_fla.text_192}Uses:638Used by:640
Symbol 640 ButtonUses:639 638Used by:641 663 671
Symbol 641 MovieClip {uiCustomizeBall}Uses:41 633 634 636 637 640Used by:642
Symbol 642 MovieClip {perfecthoopz2_fla.menu_169}Uses:607 344 465 395 610 613 618 623 528 628 631 59 641Used by:698
Symbol 643 EditableTextUses:1Used by:663
Symbol 644 EditableTextUses:1Used by:663
Symbol 645 EditableTextUses:1Used by:663
Symbol 646 EditableTextUses:1Used by:663
Symbol 647 EditableTextUses:1Used by:663
Symbol 648 EditableTextUses:1Used by:663
Symbol 649 BitmapUsed by:650
Symbol 650 GraphicUses:649Used by:663
Symbol 651 EditableTextUses:1Used by:663
Symbol 652 EditableTextUses:1Used by:663
Symbol 653 MovieClip {perfecthoopz2_fla.uiHelpIndicator_195}Uses:89 91Used by:662
Symbol 654 GraphicUses:45Used by:655
Symbol 655 MovieClipUses:654Used by:662
Symbol 656 BitmapUsed by:657
Symbol 657 GraphicUses:656Used by:658
Symbol 658 MovieClipUses:657Used by:662
Symbol 659 BitmapUsed by:660
Symbol 660 GraphicUses:659Used by:661
Symbol 661 MovieClipUses:660Used by:662
Symbol 662 MovieClip {perfecthoopz2_fla.howtosimulation_194}Uses:87 653 655 658 661Used by:663
Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193}Uses:129 41 643 644 640 645 646 647 648 650 651 652 662Used by:698
Symbol 664 GraphicUsed by:671 683
Symbol 665 EditableTextUses:1Used by:671
Symbol 666 EditableTextUses:1Used by:671
Symbol 667 EditableTextUses:1Used by:671
Symbol 668 EditableTextUses:1Used by:671
Symbol 669 EditableTextUses:1Used by:671
Symbol 670 EditableTextUses:1Used by:671
Symbol 671 MovieClip {perfecthoopz2_fla.uiKingHelp_199}Uses:145 41 664 395 665 640 666 667 668 669 670 363 459 461Used by:698
Symbol 672 EditableTextUses:1Used by:683
Symbol 673 EditableTextUses:1Used by:683
Symbol 674 EditableTextUses:1Used by:675
Symbol 675 MovieClip {perfecthoopz2_fla.KingScoreMochi_201}Uses:601 674Used by:683
Symbol 676 EditableTextUses:1Used by:682
Symbol 677 EditableTextUses:1Used by:682
Symbol 678 EditableTextUses:1Used by:682
Symbol 679 EditableTextUses:1Used by:682
Symbol 680 EditableTextUses:1Used by:682
Symbol 681 EditableTextUses:1Used by:682
Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202}Uses:601 676 677 678 679 680 681Used by:683
Symbol 683 MovieClip {perfecthoopz2_fla.uiKingScore_200}Uses:145 41 664 395 672 673 385 382 675 682Used by:698
Symbol 684 GraphicUsed by:696
Symbol 685 EditableTextUses:1Used by:696
Symbol 686 EditableTextUses:1Used by:696
Symbol 687 EditableTextUses:1Used by:688
Symbol 688 MovieClip {perfecthoopz2_fla.FreeScoreMochi_204}Uses:601 687Used by:696
Symbol 689 EditableTextUses:1Used by:695
Symbol 690 EditableTextUses:1Used by:695
Symbol 691 EditableTextUses:1Used by:695
Symbol 692 EditableTextUses:1Used by:695
Symbol 693 EditableTextUses:1Used by:695
Symbol 694 EditableTextUses:1Used by:695
Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205}Uses:601 689 690 691 692 693 694Used by:696
Symbol 696 MovieClip {perfecthoopz2_fla.uiFreeScore_203}Uses:145 41 684 344 685 686 411 688 695Used by:698
Symbol 697 MovieClip {perfecthoopz2_fla.loading_206}Used by:698
Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96}Uses:350 529 41 602 44 603 604 642 663 671 683 696 697Used by:Timeline

Instance Names

"dev_btn"Symbol 74 MovieClip {loader} Frame 1Symbol 59 Button
"bar_mc"Symbol 74 MovieClip {loader} Frame 1Symbol 64 MovieClip {perfecthoopz2_fla.bar_8}
"pct_txt"Symbol 74 MovieClip {loader} Frame 1Symbol 66 EditableText
"kb_txt"Symbol 74 MovieClip {loader} Frame 1Symbol 67 EditableText
"play_btn"Symbol 74 MovieClip {loader} Frame 1Symbol 72 Button
"trail_mc"Symbol 92 MovieClip {perfecthoopz2_fla.uiIndicator_21} Frame 1Symbol 89 MovieClip
"arrow1"Symbol 92 MovieClip {perfecthoopz2_fla.uiIndicator_21} Frame 1Symbol 91 MovieClip
"arrow2"Symbol 92 MovieClip {perfecthoopz2_fla.uiIndicator_21} Frame 1Symbol 91 MovieClip
"arrow3"Symbol 92 MovieClip {perfecthoopz2_fla.uiIndicator_21} Frame 1Symbol 91 MovieClip
"Rim"Symbol 101 MovieClip {BasketR} Frame 1Symbol 96 MovieClip
"fx_support_1_205"Symbol 101 MovieClip {BasketR} Frame 1Symbol 97 MovieClip {RimSupport}
"Rim"Symbol 110 MovieClip {BasketL} Frame 1Symbol 96 MovieClip
"fx_support_1_105"Symbol 110 MovieClip {BasketL} Frame 1Symbol 97 MovieClip {RimSupport}
"Rim"Symbol 125 MovieClip {BasketL2} Frame 1Symbol 96 MovieClip
"fx_support_1_105"Symbol 125 MovieClip {BasketL2} Frame 1Symbol 97 MovieClip {RimSupport}
"Rim"Symbol 177 MovieClip {BasketR2} Frame 1Symbol 96 MovieClip
"fx_support_1_205"Symbol 177 MovieClip {BasketR2} Frame 1Symbol 97 MovieClip {RimSupport}
"splash_btn"Symbol 281 MovieClip {perfecthoopz2_fla.splashsponsor_89} Frame 1Symbol 280 Button
"splash_btn"Symbol 346 MovieClip {perfecthoopz2_fla.defaultsplashqigames_93} Frame 1Symbol 345 Button
"default_mc"Symbol 347 MovieClip {perfecthoopz2_fla.splashqigames_92} Frame 1Symbol 346 MovieClip {perfecthoopz2_fla.defaultsplashqigames_93}
"label_txt"Symbol 359 MovieClip {perfecthoopz2_fla.text_107} Frame 1Symbol 358 EditableText
"caption_txt"Symbol 376 MovieClip {perfecthoopz2_fla.kinglives_104} Frame 1Symbol 356 EditableText
"label1_txt"Symbol 376 MovieClip {perfecthoopz2_fla.kinglives_104} Frame 1Symbol 357 EditableText
"continue_btn"Symbol 376 MovieClip {perfecthoopz2_fla.kinglives_104} Frame 1Symbol 360 Button
"lives_txt"Symbol 376 MovieClip {perfecthoopz2_fla.kinglives_104} Frame 1Symbol 364 EditableText
"label2_txt"Symbol 376 MovieClip {perfecthoopz2_fla.kinglives_104} Frame 1Symbol 365 EditableText
"panel"Symbol 377 MovieClip {perfecthoopz2_fla.uiKingLives_103} Frame 1Symbol 376 MovieClip {perfecthoopz2_fla.kinglives_104}
"label_txt"Symbol 381 MovieClip {perfecthoopz2_fla.text_113} Frame 1Symbol 380 EditableText
"label_txt"Symbol 384 MovieClip {perfecthoopz2_fla.text_115} Frame 1Symbol 383 EditableText
"label_txt"Symbol 387 MovieClip {perfecthoopz2_fla.text_117} Frame 1Symbol 386 EditableText
"caption_txt"Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111} Frame 1Symbol 378 EditableText
"label1_txt"Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111} Frame 1Symbol 379 EditableText
"tryagain_btn"Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111} Frame 1Symbol 382 Button
"quit_btn"Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111} Frame 1Symbol 385 Button
"submit_btn"Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111} Frame 1Symbol 388 Button
"label2_txt"Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111} Frame 1Symbol 389 EditableText
"score_txt"Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111} Frame 1Symbol 390 EditableText
"panel"Symbol 392 MovieClip {perfecthoopz2_fla.uiKingFailure_110} Frame 1Symbol 391 MovieClip {perfecthoopz2_fla.kingfailure_111}
"caption_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 396 EditableText
"label1_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 397 EditableText
"label3_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 398 EditableText
"label2_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 399 EditableText
"qty1_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 400 EditableText
"qty2_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 401 EditableText
"score1_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 402 EditableText
"score2_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 403 EditableText
"score3_txt"Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119} Frame 1Symbol 404 EditableText
"panel"Symbol 406 MovieClip {perfecthoopz2_fla.uiKingBonus_118} Frame 1Symbol 405 MovieClip {perfecthoopz2_fla.kingbonus_119}
"label_txt"Symbol 410 MovieClip {perfecthoopz2_fla.text_124} Frame 1Symbol 409 EditableText
"caption_txt"Symbol 412 MovieClip {perfecthoopz2_fla.failure_122} Frame 1Symbol 407 EditableText
"label1_txt"Symbol 412 MovieClip {perfecthoopz2_fla.failure_122} Frame 1Symbol 408 EditableText
"tryagain_btn"Symbol 412 MovieClip {perfecthoopz2_fla.failure_122} Frame 1Symbol 382 Button
"back_btn"Symbol 412 MovieClip {perfecthoopz2_fla.failure_122} Frame 1Symbol 411 Button
"continue_btn"Symbol 412 MovieClip {perfecthoopz2_fla.failure_122} Frame 1Symbol 360 Button
"panel"Symbol 413 MovieClip {perfecthoopz2_fla.uiFailure_121} Frame 1Symbol 412 MovieClip {perfecthoopz2_fla.failure_122}
"label_txt"Symbol 421 MovieClip {perfecthoopz2_fla.text_128} Frame 1Symbol 420 EditableText
"label_txt"Symbol 438 MovieClip {perfecthoopz2_fla.newbest_129} Frame 1Symbol 437 EditableText
"caption_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 414 EditableText
"label1_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 415 EditableText
"label2_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 416 EditableText
"label4_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 417 EditableText
"label5_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 418 EditableText
"label6_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 419 EditableText
"next_btn"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 422 Button
"tryagain_btn"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 382 Button
"back_btn"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 411 Button
"qty1_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 423 EditableText
"qty2_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 424 EditableText
"qty4_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 425 EditableText
"score1_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 426 EditableText
"score2_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 427 EditableText
"score4_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 428 EditableText
"label3_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 429 EditableText
"qty3_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 430 EditableText
"score3_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 431 EditableText
"score5_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 432 EditableText
"score6_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 433 EditableText
"label7_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 434 EditableText
"submit_btn"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 388 Button
"score7_txt"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 435 EditableText
"newbest_mc"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 438 MovieClip {perfecthoopz2_fla.newbest_129}
"medal_mc"Symbol 453 MovieClip {perfecthoopz2_fla.success_126} Frame 1Symbol 446 MovieClip {perfecthoopz2_fla.medal_130}
"panel"Symbol 454 MovieClip {perfecthoopz2_fla.uiSuccess_125} Frame 1Symbol 453 MovieClip {perfecthoopz2_fla.success_126}
"label_txt"Symbol 469 MovieClip {perfecthoopz2_fla.text_138} Frame 1Symbol 468 EditableText
"label_txt"Symbol 472 MovieClip {perfecthoopz2_fla.text_140} Frame 1Symbol 471 EditableText
"pass_mc"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 459 MovieClip
"shot1"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 462 MovieClip {perfecthoopz2_fla.shot_134}
"shot2"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 462 MovieClip {perfecthoopz2_fla.shot_134}
"shot3"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 462 MovieClip {perfecthoopz2_fla.shot_134}
"shot4"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 462 MovieClip {perfecthoopz2_fla.shot_134}
"shot5"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 462 MovieClip {perfecthoopz2_fla.shot_134}
"clock_mc"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 465 MovieClip
"crown_mc"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 395 MovieClip
"lives_mc"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 363 MovieClip
"shot6"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 462 MovieClip {perfecthoopz2_fla.shot_134}
"level_txt"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 466 EditableText
"time_txt"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 467 EditableText
"quit_btn"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 385 Button
"restart_btn"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 470 Button
"walk_btn"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 473 Button
"lives_txt"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 474 EditableText
"pass_txt"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 475 EditableText
"timehoopz_txt"Symbol 477 MovieClip {uiHeader} Frame 1Symbol 476 EditableText
"notice_txt"Symbol 479 MovieClip {perfecthoopz2_fla.textnotice_142} Frame 1Symbol 478 EditableText
"textnotice"Symbol 480 MovieClip {perfecthoopz2_fla.uiTimeOver_141} Frame 1Symbol 479 MovieClip {perfecthoopz2_fla.textnotice_142}
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 1Symbol 481 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 2Symbol 483 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 3Symbol 485 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 4Symbol 487 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 5Symbol 489 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 6Symbol 491 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 7Symbol 492 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 8Symbol 494 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 15Symbol 496 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 16Symbol 498 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 17Symbol 500 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 18Symbol 501 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 19Symbol 502 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 20Symbol 503 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 21Symbol 504 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 22Symbol 505 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 23Symbol 506 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 24Symbol 507 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 25Symbol 508 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 26Symbol 509 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 27Symbol 510 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 28Symbol 511 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 29Symbol 512 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 30Symbol 513 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 31Symbol 514 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 32Symbol 515 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 33Symbol 516 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 34Symbol 517 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 35Symbol 518 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 36Symbol 519 EditableText
"notice_txt"Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144} Frame 37Symbol 520 EditableText
"textnotice"Symbol 522 MovieClip {perfecthoopz2_fla.uiNotice_143} Frame 1Symbol 521 MovieClip {perfecthoopz2_fla.textnotice_144}
"music_chk"Symbol 528 MovieClip {perfecthoopz2_fla.soundcontrol_145} Frame 1Symbol 38 MovieClip {fl.controls.CheckBox}
"label1_txt"Symbol 528 MovieClip {perfecthoopz2_fla.soundcontrol_145} Frame 1Symbol 526 EditableText
"label2_txt"Symbol 528 MovieClip {perfecthoopz2_fla.soundcontrol_145} Frame 1Symbol 527 EditableText
"sfx_chk"Symbol 528 MovieClip {perfecthoopz2_fla.soundcontrol_145} Frame 1Symbol 38 MovieClip {fl.controls.CheckBox}
"label_txt"Symbol 539 MovieClip {perfecthoopz2_fla.defaultA_162} Frame 1Symbol 538 EditableText
"medal_mc"Symbol 590 MovieClip {perfecthoopz2_fla.uiLevelPreview_159} Frame 1Symbol 446 MovieClip {perfecthoopz2_fla.medal_130}
"locked_mc"Symbol 590 MovieClip {perfecthoopz2_fla.uiLevelPreview_159} Frame 1Symbol 534 MovieClip
"label_txt"Symbol 590 MovieClip {perfecthoopz2_fla.uiLevelPreview_159} Frame 1Symbol 535 EditableText
"score_txt"Symbol 590 MovieClip {perfecthoopz2_fla.uiLevelPreview_159} Frame 1Symbol 536 EditableText
"ball_mc"Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163} Frame 1Symbol 344 MovieClip
"lock_mc"Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163} Frame 1Symbol 533 MovieClip
"level_txt"Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163} Frame 1Symbol 592 EditableText
"ball_btn"Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163} Frame 1Symbol 594 Button
"label_txt"Symbol 600 MovieClip {perfecthoopz2_fla.text_166} Frame 1Symbol 599 EditableText
"level06"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level07"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level08"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level09"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level10"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level01"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level02"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level03"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level04"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level05"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level16"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level17"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level18"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level19"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level20"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level11"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level12"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level13"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level14"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level15"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level26"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level27"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level28"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level29"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level30"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level21"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level22"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level23"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level24"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"level25"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 595 MovieClip {perfecthoopz2_fla.balllevel_163}
"caption_txt"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 596 EditableText
"label1_txt"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 597 EditableText
"back_btn"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 411 Button
"score_txt"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 598 EditableText
"submit_btn"Symbol 602 MovieClip {uiLevelSelect} Frame 1Symbol 601 Button
"label_txt"Symbol 609 MovieClip {perfecthoopz2_fla.text_172} Frame 1Symbol 608 EditableText
"label_txt"Symbol 612 MovieClip {perfecthoopz2_fla.text_174} Frame 1Symbol 611 EditableText
"label_txt"Symbol 615 MovieClip {perfecthoopz2_fla.text_176} Frame 1Symbol 614 EditableText
"label_txt"Symbol 617 MovieClip {perfecthoopz2_fla.text_177} Frame 1Symbol 616 EditableText
"label_txt"Symbol 620 MovieClip {perfecthoopz2_fla.text_179} Frame 1Symbol 619 EditableText
"label_txt"Symbol 622 MovieClip {perfecthoopz2_fla.text_180} Frame 1Symbol 621 EditableText
"label_txt"Symbol 625 MovieClip {perfecthoopz2_fla.text_182} Frame 1Symbol 624 EditableText
"label_txt"Symbol 627 MovieClip {perfecthoopz2_fla.text_183} Frame 1Symbol 626 EditableText
"label_txt"Symbol 630 MovieClip {perfecthoopz2_fla.text_185} Frame 1Symbol 629 EditableText
"ball_mc"Symbol 633 MovieClip {perfecthoopz2_fla.ball_187} Frame 1Symbol 632 MovieClip {perfecthoopz2_fla.balls_188}
"ball_mc"Symbol 634 MovieClip Frame 1Symbol 632 MovieClip {perfecthoopz2_fla.balls_188}
"label_txt"Symbol 639 MovieClip {perfecthoopz2_fla.text_192} Frame 1Symbol 638 EditableText
"ball01"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball02"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball03"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball04"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball05"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball06"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball07"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball08"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball09"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball10"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball11"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball12"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball13"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball14"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball15"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball16"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball17"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball18"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball19"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball20"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball21"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball22"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball23"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball24"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball25"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball26"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball27"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball28"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball29"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball30"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 633 MovieClip {perfecthoopz2_fla.ball_187}
"ball00"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 634 MovieClip
"btn01"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn02"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn03"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn04"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn05"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn06"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn07"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn08"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn09"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn10"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn11"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn12"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn13"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn14"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn15"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn16"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn17"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn18"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn19"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn20"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn21"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn22"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn23"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn24"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn25"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn26"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn27"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn28"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn29"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"btn30"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 636 Button
"caption_txt"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 637 EditableText
"ok_btn"Symbol 641 MovieClip {uiCustomizeBall} Frame 1Symbol 640 Button
"hand_mc"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 607 MovieClip
"ball_mc"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 344 MovieClip
"crown_mc"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 395 MovieClip
"help_btn"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 610 Button
"more_btn"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 613 Button
"free_btn"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 618 Button
"king_btn"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 623 Button
"time_btn"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 628 Button
"custom_btn"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 631 Button
"dev_btn"Symbol 642 MovieClip {perfecthoopz2_fla.menu_169} Frame 1Symbol 59 Button
"trail_mc"Symbol 653 MovieClip {perfecthoopz2_fla.uiHelpIndicator_195} Frame 1Symbol 89 MovieClip
"arrow1"Symbol 653 MovieClip {perfecthoopz2_fla.uiHelpIndicator_195} Frame 1Symbol 91 MovieClip
"arrow2"Symbol 653 MovieClip {perfecthoopz2_fla.uiHelpIndicator_195} Frame 1Symbol 91 MovieClip
"arrow3"Symbol 653 MovieClip {perfecthoopz2_fla.uiHelpIndicator_195} Frame 1Symbol 91 MovieClip
"indicator_mc"Symbol 662 MovieClip {perfecthoopz2_fla.howtosimulation_194} Frame 1Symbol 653 MovieClip {perfecthoopz2_fla.uiHelpIndicator_195}
"ball_mc"Symbol 662 MovieClip {perfecthoopz2_fla.howtosimulation_194} Frame 1Symbol 655 MovieClip
"mouse_mc"Symbol 662 MovieClip {perfecthoopz2_fla.howtosimulation_194} Frame 1Symbol 658 MovieClip
"caption_txt"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 643 EditableText
"label1_txt"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 644 EditableText
"ok_btn"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 640 Button
"label2_txt"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 645 EditableText
"label3_txt"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 646 EditableText
"label4_txt"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 647 EditableText
"label5_txt"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 648 EditableText
"label6_txt"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 651 EditableText
"label7_txt"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 652 EditableText
"simulation_mc"Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193} Frame 1Symbol 662 MovieClip {perfecthoopz2_fla.howtosimulation_194}
"caption_txt"Symbol 671 MovieClip {perfecthoopz2_fla.uiKingHelp_199} Frame 1Symbol 665 EditableText
"ok_btn"Symbol 671 MovieClip {perfecthoopz2_fla.uiKingHelp_199} Frame 1Symbol 640 Button
"label1_txt"Symbol 671 MovieClip {perfecthoopz2_fla.uiKingHelp_199} Frame 1Symbol 666 EditableText
"label2_txt"Symbol 671 MovieClip {perfecthoopz2_fla.uiKingHelp_199} Frame 1Symbol 667 EditableText
"label4_txt"Symbol 671 MovieClip {perfecthoopz2_fla.uiKingHelp_199} Frame 1Symbol 668 EditableText
"label3_txt"Symbol 671 MovieClip {perfecthoopz2_fla.uiKingHelp_199} Frame 1Symbol 669 EditableText
"label5_txt"Symbol 671 MovieClip {perfecthoopz2_fla.uiKingHelp_199} Frame 1Symbol 670 EditableText
"submit_btn"Symbol 675 MovieClip {perfecthoopz2_fla.KingScoreMochi_201} Frame 1Symbol 601 Button
"name_txt"Symbol 675 MovieClip {perfecthoopz2_fla.KingScoreMochi_201} Frame 1Symbol 674 EditableText
"submit_btn"Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202} Frame 1Symbol 601 Button
"name_txt"Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202} Frame 1Symbol 676 EditableText
"caption_txt"Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202} Frame 10Symbol 677 EditableText
"caption_txt"Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202} Frame 70Symbol 678 EditableText
"info_txt"Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202} Frame 70Symbol 679 EditableText
"label5_txt"Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202} Frame 80Symbol 680 EditableText
"label6_txt"Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202} Frame 80Symbol 681 EditableText
"caption_txt"Symbol 683 MovieClip {perfecthoopz2_fla.uiKingScore_200} Frame 1Symbol 672 EditableText
"score_txt"Symbol 683 MovieClip {perfecthoopz2_fla.uiKingScore_200} Frame 1Symbol 673 EditableText
"back_btn"Symbol 683 MovieClip {perfecthoopz2_fla.uiKingScore_200} Frame 1Symbol 385 Button
"tryagain_btn"Symbol 683 MovieClip {perfecthoopz2_fla.uiKingScore_200} Frame 1Symbol 382 Button
"mochi_mc"Symbol 683 MovieClip {perfecthoopz2_fla.uiKingScore_200} Frame 1Symbol 675 MovieClip {perfecthoopz2_fla.KingScoreMochi_201}
"sponsor_mc"Symbol 683 MovieClip {perfecthoopz2_fla.uiKingScore_200} Frame 1Symbol 682 MovieClip {perfecthoopz2_fla.KingScoreMouseBreaker_202}
"submit_btn"Symbol 688 MovieClip {perfecthoopz2_fla.FreeScoreMochi_204} Frame 1Symbol 601 Button
"name_txt"Symbol 688 MovieClip {perfecthoopz2_fla.FreeScoreMochi_204} Frame 1Symbol 687 EditableText
"submit_btn"Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205} Frame 1Symbol 601 Button
"name_txt"Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205} Frame 1Symbol 689 EditableText
"caption_txt"Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205} Frame 10Symbol 690 EditableText
"caption_txt"Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205} Frame 70Symbol 691 EditableText
"info_txt"Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205} Frame 70Symbol 692 EditableText
"label5_txt"Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205} Frame 80Symbol 693 EditableText
"label6_txt"Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205} Frame 80Symbol 694 EditableText
"caption_txt"Symbol 696 MovieClip {perfecthoopz2_fla.uiFreeScore_203} Frame 1Symbol 685 EditableText
"score_txt"Symbol 696 MovieClip {perfecthoopz2_fla.uiFreeScore_203} Frame 1Symbol 686 EditableText
"back_btn"Symbol 696 MovieClip {perfecthoopz2_fla.uiFreeScore_203} Frame 1Symbol 411 Button
"mochi_mc"Symbol 696 MovieClip {perfecthoopz2_fla.uiFreeScore_203} Frame 1Symbol 688 MovieClip {perfecthoopz2_fla.FreeScoreMochi_204}
"sponsor_mc"Symbol 696 MovieClip {perfecthoopz2_fla.uiFreeScore_203} Frame 1Symbol 695 MovieClip {perfecthoopz2_fla.FreeScoreMouseBreaker_205}
"gamecontainer"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 1Symbol 529 MovieClip {perfecthoopz2_fla.gamecontainer_99}
"help_mc"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 10Symbol 663 MovieClip {perfecthoopz2_fla.uiHowToPlay_193}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata not present, AS3.

Labels

"dummy"Frame 10
"splash1"Frame 20
"splash2"Frame 30
"game"Frame 40
"intro"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 1
"menu"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 2
"help"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 10
"options"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 20
"new game"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 30
"load game"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 40
"selection"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 50
"play"Symbol 698 MovieClip {perfecthoopz2_fla.gamemenu_96} Frame 60




http://swfchan.com/23/114013/info.shtml
Created: 11/3 -2019 04:26:04 Last modified: 11/3 -2019 04:26:04 Server time: 05/05 -2024 14:57:54