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

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

Perfect Hoopz.swf

This is the info page for
Flash #214935

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


Text
<p align="left"><font face="CreativeBlock" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">KING MODE NORMAL</font></p>

PRESENTS

0 %

0 / 3987 kB

PLAY

mb1.03

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

COMBOS

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

SWISH

2 ComBO

3 COMBO

4 COMBO

5 COMBO
PERFECT !

1 extra
LIFE !

SAFETY SHOT
EARNED !

SAFETY SHOT
DON't MISS

music

SFX

best score for
this level :

19,999

LEVEL PREVIEW

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.

HOW TO PLAY

THROW BALL

OK

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 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

PLAY THE MORE CHALLENGING
KING MODE

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.events.*; import fl.managers.*; import flash.text.*; 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.events.*; import flash.utils.*; import fl.managers.*; import flash.text.*; 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.events.*; import flash.utils.*; import flash.text.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; var _local5:int = focusableCandidates.length; var _local6:int = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } private function setFocusToNextObject(_arg1:FocusEvent):void{ if (!hasFocusableObjects()){ return; }; var _local2:InteractiveObject = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local3:TextField; var _local4:SimpleButton; var _local2:DisplayObjectContainer = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } private function tabChildrenChangeHandler(_arg1:Event):void{ if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; var _local2:DisplayObjectContainer = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } public function getFocus():InteractiveObject{ var _local1:InteractiveObject = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } public function set defaultButton(_arg1:Button):void{ var _local2:Button = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int = focusableCandidates.length; var _local3:int; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local4:InteractiveObject; var _local3:DisplayObject = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local5:int; var _local6:String; var _local7:String; var _local3 = ""; var _local4 = ""; var _local8 = "0000"; var _local9:DisplayObject = DisplayObject(_arg1); var _local10:DisplayObject = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; var _local2:DisplayObject = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); var _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; var _local4:int = getIndexOfFocusedObject(_local2); var _local5:Boolean; var _local6:int = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; var _local7:int = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ if (_arg1.isDefaultPrevented()){ return; }; var _local2:InteractiveObject = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local3:Button; var _local2:InteractiveObject = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ calculateCandidates = true; var _local2:InteractiveObject = InteractiveObject(_arg1.target); var _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } } }//package fl.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.utils.*; import flash.text.*; public class StyleManager { private var classToInstancesDict:Dictionary; private var globalStyles:Object; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToDefaultStylesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class = getClassDef(_arg1); var _local5:Object = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local5:String; var _local2:StyleManager = getInstance(); var _local3:Class = getClassDef(_arg1); var _local4:Object = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:Object = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local4:Object; var _local5:UIComponent; var _local3:Dictionary = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local3:Object; var _local2:Dictionary = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; var inst:StyleManager = getInstance(); var classDef:Class = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; if (inst.classToStylesDict[classDef] == null){ inst.classToStylesDict[classDef] = {}; }; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class = getClassDef(_arg1); var _local4:StyleManager = getInstance(); var _local5:Object = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.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
//BallLayer_33 (perfecthoopz_fla.BallLayer_33) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class BallLayer_33 extends MovieClip { public function BallLayer_33(){ addFrameScript(0, frame1); } function frame1(){ stop(); g.BallLayer = this; } } }//package perfecthoopz_fla
Section 105
//balllevel_171 (perfecthoopz_fla.balllevel_171) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class balllevel_171 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_171(){ 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 perfecthoopz_fla
Section 106
//bar_13 (perfecthoopz_fla.bar_13) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class bar_13 extends MovieClip { public function bar_13(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz_fla
Section 107
//checkmark_140 (perfecthoopz_fla.checkmark_140) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class checkmark_140 extends MovieClip { public function checkmark_140(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package perfecthoopz_fla
Section 108
//crossmark_119 (perfecthoopz_fla.crossmark_119) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class crossmark_119 extends MovieClip { public function crossmark_119(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package perfecthoopz_fla
Section 109
//defaultA_170 (perfecthoopz_fla.defaultA_170) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class defaultA_170 extends MovieClip { public var label_txt:TextField; public function defaultA_170(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 110
//defaultsplashqigames_103 (perfecthoopz_fla.defaultsplashqigames_103) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class defaultsplashqigames_103 extends MovieClip { public var splash_btn:SimpleButton; public function defaultsplashqigames_103(){ 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 perfecthoopz_fla
Section 111
//demoshade_176 (perfecthoopz_fla.demoshade_176) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class demoshade_176 extends MovieClip { public function demoshade_176(){ addFrameScript(20, frame21); } function frame21(){ stop(); } } }//package perfecthoopz_fla
Section 112
//eyes_12 (perfecthoopz_fla.eyes_12) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class eyes_12 extends MovieClip { public function eyes_12(){ addFrameScript(31, frame32); } function frame32(){ gotoAndPlay(1); } } }//package perfecthoopz_fla
Section 113
//failure_131 (perfecthoopz_fla.failure_131) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class failure_131 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_131(){ 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 perfecthoopz_fla
Section 114
//FreeScoreMochi_209 (perfecthoopz_fla.FreeScoreMochi_209) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import mochi.as3.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class FreeScoreMochi_209 extends MovieClip { public var submit_btn:SimpleButton; public var lbl:TextField; public var name_txt:TextField; public var Labels:Array; public function FreeScoreMochi_209(){ 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 perfecthoopz_fla
Section 115
//FreeScoreMouseBreaker_210 (perfecthoopz_fla.FreeScoreMouseBreaker_210) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class FreeScoreMouseBreaker_210 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_210(){ 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 perfecthoopz_fla
Section 116
//gamecontainer_109 (perfecthoopz_fla.gamecontainer_109) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class gamecontainer_109 extends MovieClip { public function gamecontainer_109(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz_fla
Section 117
//gamemenu_106 (perfecthoopz_fla.gamemenu_106) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class gamemenu_106 extends MovieClip { public var help_mc:MovieClip; public var gamecontainer:MovieClip; public function gamemenu_106(){ 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 perfecthoopz_fla
Section 118
//howtosimulation_196 (perfecthoopz_fla.howtosimulation_196) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class howtosimulation_196 extends MovieClip { public var mouse_mc:MovieClip; public var indicator_mc:MovieClip; public var ball_mc:MovieClip; public function howtosimulation_196(){ 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 perfecthoopz_fla
Section 119
//kingbonus_129 (perfecthoopz_fla.kingbonus_129) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class kingbonus_129 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_129(){ 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 perfecthoopz_fla
Section 120
//kingfailure_121 (perfecthoopz_fla.kingfailure_121) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class kingfailure_121 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_121(){ 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 perfecthoopz_fla
Section 121
//kinglives_114 (perfecthoopz_fla.kinglives_114) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class kinglives_114 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_114(){ 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 perfecthoopz_fla
Section 122
//KingScoreMochi_204 (perfecthoopz_fla.KingScoreMochi_204) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import mochi.as3.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class KingScoreMochi_204 extends MovieClip { public var submit_btn:SimpleButton; public var lbl:TextField; public var name_txt:TextField; public var Labels:Array; public function KingScoreMochi_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:[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 perfecthoopz_fla
Section 123
//KingScoreMouseBreaker_205 (perfecthoopz_fla.KingScoreMouseBreaker_205) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class KingScoreMouseBreaker_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 KingScoreMouseBreaker_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/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 perfecthoopz_fla
Section 124
//loading_211 (perfecthoopz_fla.loading_211) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class loading_211 extends MovieClip { public function loading_211(){ 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 perfecthoopz_fla
Section 125
//mb_intro_98 (perfecthoopz_fla.mb_intro_98) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class mb_intro_98 extends MovieClip { public var exp:MovieClip; public function mb_intro_98(){ addFrameScript(207, frame208); } function frame208(){ stop(); } } }//package perfecthoopz_fla
Section 126
//medal_139 (perfecthoopz_fla.medal_139) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class medal_139 extends MovieClip { public function medal_139(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz_fla
Section 127
//menu_177 (perfecthoopz_fla.menu_177) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class menu_177 extends MovieClip { public var iphone_btn:SimpleButton; public var free_btn:SimpleButton; public var ball_mc:MovieClip; public var help_btn:SimpleButton; public var facebook_btn:SimpleButton; public var crown_mc:MovieClip; public var hand_mc:MovieClip; public var more_btn:SimpleButton; public var king_btn:SimpleButton; public var sponsor_btn:SimpleButton; public var dev_btn:SimpleButton; public function menu_177(){ addFrameScript(0, frame1); } public function btnIPhone(_arg1:Object=null){ var e = _arg1; try { navigateToURL(url.IPHONE, "_blank"); } catch(err:Error) { }; } public function btnKing(_arg1:Object=null){ if (g.SplitNormal){ navigateToURL(url.PLAY_KING, "_blank"); ui.SoundControl.turnOff(); return; }; g.Sim.destroy(); Juke.Box.btnClick(); g.KingMode = true; 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 btnFB(_arg1:Object=null){ var e = _arg1; try { navigateToURL(url.FACEBOOK, "_blank"); } catch(err:Error) { }; } public function btnDev(_arg1:Object=null){ var e = _arg1; try { if (!g.DDL){ navigateToURL(url.DEV_MENU, "_blank"); }; } catch(err:Error) { }; } public function btnSponsor(_arg1:Object=null){ var e = _arg1; try { navigateToURL(url.SPONSOR_MENU, "_blank"); } catch(err:Error) { }; } public function btnFree(_arg1:Object=null){ if (g.SplitKing){ navigateToURL(url.PLAY_NORMAL, "_blank"); ui.SoundControl.turnOff(); return; }; g.Sim.destroy(); Juke.Box.btnClick(); g.KingMode = false; g.cGame = g.Games[0]; if (g.FirstHelp){ g.FromFirstHelp = true; ui.GameMenu.gotoHelp(); } else { ui.GameMenu.gotoSelection(); }; } function frame1(){ stop(); if (g.iPhone == 0){ iphone_btn.visible = (iphone_btn.enabled = false); } else { iphone_btn.visible = (iphone_btn.enabled = true); }; if (g.Facebook == 0){ facebook_btn.visible = (facebook_btn.enabled = false); } else { facebook_btn.visible = (facebook_btn.enabled = true); }; free_btn.tabEnabled = false; king_btn.tabEnabled = false; help_btn.tabEnabled = false; dev_btn.tabEnabled = false; more_btn.tabEnabled = false; sponsor_btn.tabEnabled = false; iphone_btn.tabEnabled = false; facebook_btn.tabEnabled = false; if (g.DDL){ dev_btn.enabled = false; }; if (g.SplitNormal){ free_btn.x = 80; king_btn.x = 340; }; if (g.SplitKing){ king_btn.x = 115; free_btn.x = 375; crown_mc.x = 150; ball_mc.x = 330; hand_mc.x = 358; }; free_btn.addEventListener("click", btnFree); king_btn.addEventListener("click", btnKing); help_btn.addEventListener("click", btnHelp); dev_btn.addEventListener("click", btnDev); sponsor_btn.addEventListener("click", btnSponsor); more_btn.addEventListener("click", btnMG); iphone_btn.addEventListener("click", btnIPhone); facebook_btn.addEventListener("click", btnFB); } public function btnMG(_arg1:Object=null){ var e = _arg1; try { if (g.MG == "dev"){ navigateToURL(url.MOREGAMES_DEV, "_blank"); } else { navigateToURL(url.MOREGAMES_SPONSOR, "_blank"); }; } catch(err:Error) { }; } public function btnHelp(_arg1:Event){ g.Sim.destroy(); Juke.Box.btnClick(); ui.GameMenu.gotoHelp(); } } }//package perfecthoopz_fla
Section 128
//menubackground_4 (perfecthoopz_fla.menubackground_4) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; 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 var mode_txt:TextField; public var crown_mc:MovieClip; public function menubackground_4(){ addFrameScript(0, frame1); } function frame1(){ stop(); mode_txt.antiAliasType = "advanced"; mode_txt.embedFonts = true; mode_txt.setTextFormat(fonts.Caption1); mode_txt.defaultTextFormat = fonts.Caption1; if (g.SplitNormal){ mode_txt.text = "NORMAL MODE"; crown_mc.visible = false; } else { if (g.SplitKing){ mode_txt.text = "KING MODE"; crown_mc.visible = true; } else { mode_txt.text = ""; crown_mc.visible = false; }; }; } } }//package perfecthoopz_fla
Section 129
//mouse_11 (perfecthoopz_fla.mouse_11) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class mouse_11 extends MovieClip { public function mouse_11(){ addFrameScript(35, frame36); } function frame36(){ gotoAndPlay(1); } } }//package perfecthoopz_fla
Section 130
//mouse_99 (perfecthoopz_fla.mouse_99) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class mouse_99 extends MovieClip { public function mouse_99(){ addFrameScript(6, frame7); } function frame7(){ gotoAndPlay(1); } } }//package perfecthoopz_fla
Section 131
//newbest_138 (perfecthoopz_fla.newbest_138) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class newbest_138 extends MovieClip { public var label_txt:TextField; public function newbest_138(){ 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 perfecthoopz_fla
Section 132
//playking_208 (perfecthoopz_fla.playking_208) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class playking_208 extends MovieClip { public var label_txt:TextField; public function playking_208(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label_txt.defaultTextFormat = fonts.Button1; } } }//package perfecthoopz_fla
Section 133
//shot_143 (perfecthoopz_fla.shot_143) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class shot_143 extends MovieClip { public function shot_143(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package perfecthoopz_fla
Section 134
//soundcontrol_151 (perfecthoopz_fla.soundcontrol_151) package perfecthoopz_fla { import fl.controls.*; import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class soundcontrol_151 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_151(){ 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 perfecthoopz_fla
Section 135
//splashqigames_102 (perfecthoopz_fla.splashqigames_102) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class splashqigames_102 extends MovieClip { public var default_mc:MovieClip; public function splashqigames_102(){ 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 perfecthoopz_fla
Section 136
//splashsponsor_96 (perfecthoopz_fla.splashsponsor_96) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class splashsponsor_96 extends MovieClip { public var splash_btn:SimpleButton; public function splashsponsor_96(){ 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 perfecthoopz_fla
Section 137
//success_135 (perfecthoopz_fla.success_135) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class success_135 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_135(){ 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.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); _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 perfecthoopz_fla
Section 138
//Symbol242_100 (perfecthoopz_fla.Symbol242_100) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class Symbol242_100 extends MovieClip { public function Symbol242_100(){ addFrameScript(0, frame1, 1, frame2, 18, frame19); } function frame1(){ } function frame2(){ Juke.Box.explosionMB(); } function frame19(){ stop(); } } }//package perfecthoopz_fla
Section 139
//text_117 (perfecthoopz_fla.text_117) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; 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(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 140
//text_123 (perfecthoopz_fla.text_123) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_123 extends MovieClip { public var label_txt:TextField; public function text_123(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 141
//text_125 (perfecthoopz_fla.text_125) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_125 extends MovieClip { public var label_txt:TextField; public function text_125(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 142
//text_127 (perfecthoopz_fla.text_127) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_127 extends MovieClip { public var label_txt:TextField; public function text_127(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 143
//text_133 (perfecthoopz_fla.text_133) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_133 extends MovieClip { public var label_txt:TextField; public function text_133(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 144
//text_137 (perfecthoopz_fla.text_137) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_137 extends MovieClip { public var label_txt:TextField; public function text_137(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 145
//text_146 (perfecthoopz_fla.text_146) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_146 extends MovieClip { public var label_txt:TextField; public function text_146(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 146
//text_148 (perfecthoopz_fla.text_148) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_148 extends MovieClip { public var label_txt:TextField; public function text_148(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 147
//text_174 (perfecthoopz_fla.text_174) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; 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(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 148
//text_180 (perfecthoopz_fla.text_180) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; 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(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 149
//text_182 (perfecthoopz_fla.text_182) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; 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(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 150
//text_184 (perfecthoopz_fla.text_184) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_184 extends MovieClip { public var label_txt:TextField; public function text_184(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label_txt.defaultTextFormat = fonts.Button1; if (g.SplitNormal){ label_txt.text = "PLAY"; }; if (g.SplitKing){ label_txt.text = "BACK TO NORMAL MODE"; }; } } }//package perfecthoopz_fla
Section 151
//text_185 (perfecthoopz_fla.text_185) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; 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(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label_txt.defaultTextFormat = fonts.Button1; if (g.SplitKing){ label_txt.text = "Play freely any unlocked level.\n(link will open a new window)"; }; } } }//package perfecthoopz_fla
Section 152
//text_187 (perfecthoopz_fla.text_187) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_187 extends MovieClip { public var label_txt:TextField; public function text_187(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); label_txt.defaultTextFormat = fonts.Button1; if (g.SplitNormal){ label_txt.text = "TRY KING MODE"; }; if (g.SplitKing){ label_txt.text = "PLAY"; }; } } }//package perfecthoopz_fla
Section 153
//text_188 (perfecthoopz_fla.text_188) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_188 extends MovieClip { public var label_txt:TextField; public function text_188(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); if (g.SplitNormal){ label_txt.text = "COMPLETE ALL LEVELS ONE AFTER THE OTHER WITHOUT FAILING.\n5 EXTRA LIVES. NO RESTART. no TRY AGAIN.\n(link will open a new window)"; }; } } }//package perfecthoopz_fla
Section 154
//text_19 (perfecthoopz_fla.text_19) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_19 extends MovieClip { public var label_txt:TextField; public function text_19(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 155
//text_195 (perfecthoopz_fla.text_195) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class text_195 extends MovieClip { public var label_txt:TextField; public function text_195(){ addFrameScript(0, frame1); } function frame1(){ label_txt.antiAliasType = "advanced"; label_txt.embedFonts = true; label_txt.setTextFormat(fonts.Button1); } } }//package perfecthoopz_fla
Section 156
//textnotice_150 (perfecthoopz_fla.textnotice_150) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class textnotice_150 extends MovieClip { public var notice_txt:TextField; public function textnotice_150(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8); } function frame6(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = 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 frame7(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } function frame8(){ notice_txt.antiAliasType = "advanced"; notice_txt.embedFonts = true; notice_txt.setTextFormat(fonts.Button1); notice_txt.defaultTextFormat = fonts.Button1; } } }//package perfecthoopz_fla
Section 157
//uiFailure_130 (perfecthoopz_fla.uiFailure_130) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiFailure_130 extends MovieClip { public var Action:String; public var panel:MovieClip; public function uiFailure_130(){ addFrameScript(0, frame1, 19, frame20, 44, frame45); } function frame20(){ stop(); } public function activate(){ visible = true; gotoAndPlay(2); panel.init(); } function frame1(){ stop(); ui.Failure = this; Action = "tryagain"; visible = false; } 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 perfecthoopz_fla
Section 158
//uiFreeScore_206 (perfecthoopz_fla.uiFreeScore_206) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiFreeScore_206 extends MovieClip { public var score_txt:TextField; public var back_btn:SimpleButton; public var playking_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_206(){ addFrameScript(0, frame1); } public function btnPlayKing(_arg1:Object=null){ navigateToURL(url.PLAY_KING); ui.SoundControl.turnOff(); } 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; if (g.SplitNormal){ playking_btn.enabled = true; playking_btn.visible = true; } else { playking_btn.enabled = false; playking_btn.visible = false; }; init(); back_btn.addEventListener("click", btnBack); playking_btn.addEventListener("click", btnPlayKing); } 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 perfecthoopz_fla
Section 159
//uiHelpIndicator_197 (perfecthoopz_fla.uiHelpIndicator_197) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiHelpIndicator_197 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_197(){ 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 perfecthoopz_fla
Section 160
//uiHowToPlay_193 (perfecthoopz_fla.uiHowToPlay_193) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; 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 perfecthoopz_fla
Section 161
//uiIndicator_30 (perfecthoopz_fla.uiIndicator_30) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiIndicator_30 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_30(){ 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 perfecthoopz_fla
Section 162
//uiKingBonus_128 (perfecthoopz_fla.uiKingBonus_128) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingBonus_128 extends MovieClip { public var panel:MovieClip; public function uiKingBonus_128(){ 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 perfecthoopz_fla
Section 163
//uiKingFailure_120 (perfecthoopz_fla.uiKingFailure_120) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingFailure_120 extends MovieClip { public var Action:String; public var panel:MovieClip; public function uiKingFailure_120(){ 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 perfecthoopz_fla
Section 164
//uiKingHelp_201 (perfecthoopz_fla.uiKingHelp_201) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingHelp_201 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_201(){ 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 perfecthoopz_fla
Section 165
//uiKingLives_113 (perfecthoopz_fla.uiKingLives_113) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingLives_113 extends MovieClip { public var Action:String; public var panel:MovieClip; public function uiKingLives_113(){ 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 perfecthoopz_fla
Section 166
//uiKingScore_202 (perfecthoopz_fla.uiKingScore_202) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiKingScore_202 extends MovieClip { public var tryagain_btn:SimpleButton; public var score_txt:TextField; public var back_btn:SimpleButton; public var ad_mc:AdMidRollB; public var caption_txt:TextField; public var mochi_mc:MovieClip; public var sponsor_mc:MovieClip; public var lbl:TextField; public var Labels:Array; public function uiKingScore_202(){ 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(); ad.MidRollB.destroy(); } 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; if (g.MidRollB == "none"){ ad_mc.visible = false; } else { ad_mc.visible = true; }; init(); tryagain_btn.addEventListener("click", btnTryAgain); back_btn.addEventListener("click", btnBack); } } }//package perfecthoopz_fla
Section 167
//uiLevelPreview_167 (perfecthoopz_fla.uiLevelPreview_167) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiLevelPreview_167 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_167(){ addFrameScript(0, frame1); } public function setLevel(_arg1:Number){ gotoAndStop((_arg1 + 1)); if (_arg1 > 0){ locked_mc.visible = Boolean(!(g.cGame.Levels[(_arg1 - 1)])); 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 perfecthoopz_fla
Section 168
//uiNotice_149 (perfecthoopz_fla.uiNotice_149) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiNotice_149 extends MovieClip { public var textnotice:MovieClip; public var index:Number; public var Notices:Array; public function uiNotice_149(){ 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 perfecthoopz_fla
Section 169
//uiSuccess_134 (perfecthoopz_fla.uiSuccess_134) package perfecthoopz_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; public dynamic class uiSuccess_134 extends MovieClip { public var Action:String; public var panel:MovieClip; public function uiSuccess_134(){ addFrameScript(0, frame1, 19, frame20, 44, frame45); } function frame20(){ stop(); } public function activate(){ visible = true; gotoAndPlay(2); panel.init(); } function frame1(){ stop(); ui.Success = this; Action = "next"; visible = false; } 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 perfecthoopz_fla
Section 170
//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 171
//AdBox (AdBox) package { import flash.display.*; public dynamic class AdBox extends MovieClip { } }//package
Section 172
//AdMidRollA (AdMidRollA) package { public class AdMidRollA extends AdUnit { public function AdMidRollA(){ addFrameScript(0, frame1); ad.MidRollA = this; trace(("AdMidRollA instance : " + g.MidRollA)); } function frame1(){ stop(); } public function serve(){ switch (g.MidRollA){ case "mochiads": case "mochiadsca": mochiMidRoll(g.MidRollCodeA); break; case "cpmstar": cpmMidRoll(g.MidRollCodeA); break; case "qigames": qiMidRoll(); break; }; } } }//package
Section 173
//AdMidRollB (AdMidRollB) package { public class AdMidRollB extends AdUnit { public function AdMidRollB(){ addFrameScript(0, frame1); ad.MidRollB = this; trace(("AdMidRollB instance : " + g.MidRollB)); serve(); } function frame1(){ stop(); } public function serve(){ switch (g.MidRollB){ case "mochiads": case "mochiadsca": mochiMidRoll(g.MidRollCodeB); break; case "cpmstar": cpmMidRoll(g.MidRollCodeB); break; case "qigames": qiMidRoll(); break; }; } } }//package
Section 174
//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 175
//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 176
//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; private var HOOP:Array; public var Completed:Boolean; public var startR:Number; private var R2D:Number; private var Balls: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 BaseForce:Number; public var MouseLoc:Point; public var Hoopzs:Number; public var Shooting:Boolean; public var Aiming:Boolean; private var D2R:Number; public var Swishes:Number; private var NextShotIn:Number; public var startP0:Point; public var AimForce:Number; public var Misses: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); _local5 = 5; _local4 = 0; _local3 = 0; while (_local3 < 5) { if (((HOOP[_local3]) || (MISS[_local3]))){ _local4++; }; _local3++; }; if (_local4 >= 5){ 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(); nextShot(); } public function fire(){ var _local1:Point; if (BaseForce < MinForce){ keySpace(); return; }; Aiming = false; Shooting = true; _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(){ Completed = false; Alive = true; Placing = true; PlaceValid = false; Aiming = false; Shooting = false; aimP0 = new Point(0, 0); ShotIndex = -1; BaseForce = 0; AimForce = 0; S1 = [false, false, false, false, false, false]; S2 = [false, false, false, false, false, false]; S3 = [false, false, false, false, false, false]; HOOP = [false, false, false, false, false, false]; MISS = [false, false, false, false, false, false]; FAIL = [false, false, false, false, false, false]; RIM = [false, false, false, false, false, false]; NextShotIn = -1; Balls = []; CompletionIn = -1; Time = 0; 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(); }; _local4 = 5; _local3 = 0; _local2 = 0; while (_local2 < _local4) { if (((HOOP[_local2]) || (MISS[_local2]))){ _local3++; }; _local2++; }; if (_local3 >= _local4){ Completed = true; CompletionIn = 30; }; switch (ui.LevelSelect.Index){ case 4: Balls[_arg1].body.SetAngularVelocity(15); break; }; } 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:Number; var _local5:BasketBall; if (!Completed){ Time++; ui.Header.showTime(Math.round((Time / 30))); }; MouseLoc = new Point(Interface.mouseX, Interface.mouseY); if (NextShotIn > 0){ NextShotIn--; if (NextShotIn == 0){ nextShot(); }; }; if (CompletionIn > 0){ CompletionIn--; if (CompletionIn == 0){ completion(); }; }; if (Placing){ placeBall(); }; if (Aiming){ aimControl(); }; for each (_local5 in Balls) { if (_local5.Alive){ if ((((((((_local5.x < 0)) || ((_local5.x > 640)))) || ((_local5.y < 0)))) || ((_local5.y > 500)))){ if (!HOOP[_local5.index]){ miss(_local5.index, true); }; }; }; if (((_local5.Alive) && (_local5.body))){ _local1 = _local5.body.m_linearVelocity.Length(); _local2 = (_local5.x - g.Net.x); _local3 = (_local5.y - g.Net.y); _local4 = ((_local2 * _local2) + (_local3 * _local3)); if ((((_local1 < 2)) && ((_local4 > 10000)))){ _local5.SlowFor++; if (_local5.SlowFor > 40){ if (!HOOP[_local5.index]){ miss(_local5.index); }; }; }; if (_local5.body.IsSleeping()){ if (!HOOP[_local5.index]){ miss(_local5.index); }; }; }; }; } public function tryAgain(_arg1:Object=null){ var _local2:BasketBall; for each (_local2 in Balls) { _local2.destroy(); }; reset(); nextShot(); } function frame1(){ stop(); } public function nextShot(_arg1:Boolean=false){ 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 evtNumKey(_arg1:Number=1){ } 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++; }; 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; }; } 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; trace("aiPlayer->destroy"); for each (_local2 in Balls) { _local2.destroy(); }; } } }//package
Section 177
//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 178
//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(){ index = 0; Alive = false; SlowFor = 0; } 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; 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); } } }//package
Section 179
//BasketL (BasketL) package { import flash.display.*; public class BasketL extends Basket { public var fx_support_1_105:MovieClip; } }//package
Section 180
//BasketR (BasketR) package { import flash.display.*; public class BasketR extends Basket { public var fx_support_1_205:MovieClip; } }//package
Section 181
//Beam (Beam) package { public class Beam extends Box { } }//package
Section 182
//BeamBoxA (BeamBoxA) package { public class BeamBoxA extends Box { } }//package
Section 183
//Board (Board) package { public class Board extends Box { public function Board(){ super(8, true, 0.15); } } }//package
Section 184
//bounceA (bounceA) package { import flash.media.*; public dynamic class bounceA extends Sound { } }//package
Section 185
//bounceB (bounceB) package { import flash.media.*; public dynamic class bounceB extends Sound { } }//package
Section 186
//bounceC (bounceC) package { import flash.media.*; public dynamic class bounceC extends Sound { } }//package
Section 187
//bounceD (bounceD) package { import flash.media.*; public dynamic class bounceD extends Sound { } }//package
Section 188
//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){ var _local4:b2Body; var _local5:b2BodyDef; var _local6:b2CircleDef; var _local7:Array; super(); if (!g.World){ return; }; FilterGroup = _arg1; if (name.indexOf("fx") != -1){ _local7 = name.split("_"); FailSpeed = Number(_local7[2]); BallSpin = Number(_local7[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 = 0; if (_arg3 > 0){ boxDef.restitution = _arg3; } else { boxDef.restitution = 0.75; }; boxDef.filter.groupIndex = FilterGroup; _local5 = new b2BodyDef(); if (_arg2){ _local5.position.x = ((parent.x + x) / 30); _local5.position.y = ((parent.y + y) / 30); } else { _local5.position.x = (x / 30); _local5.position.y = (y / 30); }; if (BallFX){ _local5.userData = BallFX; }; _local4 = g.World.CreateBody(_local5); _local4.CreateShape(boxDef); _local4.SetMassFromShapes(); } } }//package
Section 189
//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 190
//CasinoFunk01 (CasinoFunk01) package { import flash.media.*; public dynamic class CasinoFunk01 extends Sound { } }//package
Section 191
//CasinoFunk02 (CasinoFunk02) package { import flash.media.*; public dynamic class CasinoFunk02 extends Sound { } }//package
Section 192
//CasinoFunk03 (CasinoFunk03) package { import flash.media.*; public dynamic class CasinoFunk03 extends Sound { } }//package
Section 193
//CasinoFunk04 (CasinoFunk04) package { import flash.media.*; public dynamic class CasinoFunk04 extends Sound { } }//package
Section 194
//CasinoFunk05 (CasinoFunk05) package { import flash.media.*; public dynamic class CasinoFunk05 extends Sound { } }//package
Section 195
//CheckBox_disabledIcon (CheckBox_disabledIcon) package { import flash.display.*; public dynamic class CheckBox_disabledIcon extends MovieClip { } }//package
Section 196
//CheckBox_downIcon (CheckBox_downIcon) package { import flash.display.*; public dynamic class CheckBox_downIcon extends MovieClip { } }//package
Section 197
//CheckBox_overIcon (CheckBox_overIcon) package { import flash.display.*; public dynamic class CheckBox_overIcon extends MovieClip { } }//package
Section 198
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDisabledIcon extends MovieClip { } }//package
Section 199
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDownIcon extends MovieClip { } }//package
Section 200
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon) package { import flash.display.*; public dynamic class CheckBox_selectedOverIcon extends MovieClip { } }//package
Section 201
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon) package { import flash.display.*; public dynamic class CheckBox_selectedUpIcon extends MovieClip { } }//package
Section 202
//CheckBox_upIcon (CheckBox_upIcon) package { import flash.display.*; public dynamic class CheckBox_upIcon extends MovieClip { } }//package
Section 203
//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 204
//CreativeBlock (CreativeBlock) package { import flash.text.*; public dynamic class CreativeBlock extends Font { } }//package
Section 205
//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 = 150; }; }; } 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(18, (-45 * g.D2R)); break; case 1: _local2 = Point.polar(16, (-50 * g.D2R)); break; case 2: _local2 = Point.polar(16.5, (-45 * g.D2R)); break; case 3: _local2 = Point.polar(18, (-40 * g.D2R)); break; case 4: _local2 = Point.polar(18.2, (-40 * g.D2R)); break; case 5: _local2 = Point.polar(15.7, (-50 * g.D2R)); break; case 6: _local2 = Point.polar(16, (-55 * g.D2R)); break; case 7: _local2 = Point.polar(17, (-55 * g.D2R)); break; case 8: _local2 = Point.polar(17.5, (-45 * g.D2R)); break; case 9: _local2 = Point.polar(17.5, (-50 * g.D2R)); break; }; _local1.init(_local2); _local1.Alive = true; } } }//package
Section 206
//floorC (floorC) package { public class floorC extends Box { } }//package
Section 207
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 208
//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 Button1:TextFormat; } }//package
Section 209
//FWAd_AS3 (FWAd_AS3) package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; public class FWAd_AS3 extends Sprite { public var loadingBar_bar:Sprite; public var _FWAd:Object; public var loadingBar:Sprite; private var timeoutId:int;// = -1 public static const loadFrameworkTimeoutTime:int = 8; public static const ifLoadFrameworkErrorCanPlayGame:Boolean = true; public static const frameworDomain:String = "flashcfg.youyouwin.com"; public static const frameworkSWFPath:String = (("http://" + frameworDomain) + "/Framework2.swf"); public static const ifAdFailCanPlayGame:Boolean = true; public static const loadFrameworkTimes:int = 2; public static const ifAddCallBackErrorCanPlayGame:Boolean = false; public static var xx:int; public static var adType:String = AD_TYPE_LOADING; public static var hei:int; public static var loadFrameworkFailed:Boolean; public static var id:String; public static var lc_connName:String; public static var yy:int; public static var onClickStartBtn:Function; public static var loadFrameworkSuccess:Boolean; public static var frameworkLoader:Loader; public static var loadGameCompleted:Boolean; public static var AD_TYPE_CONTAINER:String = "container"; public static var AD_TYPE_LOADING:String = "loading"; public static var _root; public static var canNotShowAd:Boolean; public static var frameworkInitFinished:Boolean; public static var wid:int; public static var restLoadFrameworkTimes:int; public static var lc:LocalConnection; public static var lc_sendName:String; public function FWAd_AS3(_arg1:Object){ xx = _arg1.x; yy = _arg1.y; wid = _arg1.wid; hei = _arg1.hei; id = _arg1.id; adType = _arg1.adType; if (_arg1.onClickCloseBtn){ onClickStartBtn = _arg1.onClickCloseBtn; } else { onClickStartBtn = _arg1.onClickStartBtn; }; _FWAd = FWAd_AS3; this.addEventListener(Event.ADDED_TO_STAGE, added); } private function added(_arg1:Event):void{ var event = _arg1; this.removeEventListener(Event.ADDED_TO_STAGE, added); this.addEventListener(Event.REMOVED_FROM_STAGE, removed); Security.allowDomain(frameworDomain); Security.allowInsecureDomain(frameworDomain); try { fscommand("showMenu", "false"); } catch(e:Error) { }; _root = stage.getChildAt(0); _root.contextMenu = new ContextMenu(); _root.contextMenu.hideBuiltInItems(); try { fscommand("trapallkeys", "true"); } catch(e:Error) { }; loadGameCompleted = (_root.loaderInfo.bytesLoaded == _root.loaderInfo.bytesTotal); trace(("FWAd_AS3 loadGameCompleted=" + loadGameCompleted)); if (frameworkLoader){ frameworkInitFinished = true; checkLoadGameCompleteAndTryStart(); if (frameworkInitFinished){ lc.client = this; lc.send(lc_sendName, "that2this", "reset"); }; } else { frameworkLoader = new Loader(); frameworkLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadFrameworkComplete); frameworkLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadFrameworkError); restLoadFrameworkTimes = loadFrameworkTimes; loadFramework(); }; this.addChild(frameworkLoader); var loadingBar_hei:Number = 8; var loadingBar_x:Number = 10; var loadingBar_wid:Number = (wid - (2 * loadingBar_x)); loadingBar = new Sprite(); loadingBar.x = loadingBar_x; loadingBar.y = ((hei - loadingBar_hei) - 6); this.addChild(loadingBar); var loadingBar_bottom:Sprite = new Sprite(); loadingBar.addChild(loadingBar_bottom); loadingBar_bar = new Sprite(); loadingBar.addChild(loadingBar_bar); var loadingBar_line:Sprite = new Sprite(); loadingBar.addChild(loadingBar_line); var g:Graphics = loadingBar_bottom.graphics; g.clear(); g.beginFill(0x333333); g.drawRect(0, 0, loadingBar_wid, loadingBar_hei); g.endFill(); g = loadingBar_bar.graphics; g.clear(); g.beginGradientFill("linear", [0xFFFFFF, 16750950], [1, 1], [63, 0xFF], new Matrix(0.006, 0, 0, 1, 0, 0)); loadingBar_bar.rotation = 90; g.drawRect(0, -(loadingBar_wid), loadingBar_hei, loadingBar_wid); g.endFill(); g = loadingBar_line.graphics; g.clear(); g.lineStyle(1, 0x666666); g.drawRect(0, 0, loadingBar_wid, loadingBar_hei); g.endFill(); loadingBar_bar.width = 1; loadingBar_bar.scaleX = 1; switch (adType){ case AD_TYPE_LOADING: break; default: loadingBar.visible = false; break; }; if (loadGameCompleted){ loadingBar.visible = false; } else { _root.loaderInfo.addEventListener(ProgressEvent.PROGRESS, loadGameProgress); _root.loaderInfo.addEventListener(Event.COMPLETE, loadGameComplete); }; } public function that2this(... _args):void{ var result:*; var args = _args; switch (args[0]){ case "initFinished": frameworkInitFinished = true; lc.send(lc_sendName, "that2this", "confirmInitFinished", getFWAdValuesByNameArr(args.slice(1))); break; case "AsmMachine.run()": try { result = Runner.runStr16(this, args[2]); lc.send(lc_sendName, "that2this", "AsmMachine.run()", args[1], "success", result); } catch(e:Error) { lc.send(lc_sendName, "that2this", "AsmMachine.run()", args[1], "error", e.toString()); }; break; case "clickStartBtn": clickStartBtn(); break; case "canNotShowAd": case "noId": canNotShowAd = true; checkLoadGameCompleteAndTryStart(); break; }; } private function getFWAdValuesByNameArr(_arg1:Array):Object{ var _local3:String; var _local2:Object = new Object(); for each (_local3 in _arg1) { _local2[_local3] = FWAd_AS3[_local3]; }; return (_local2); } private function clickStartBtn():void{ if (onClickStartBtn != null){ onClickStartBtn(); onClickStartBtn = null; }; if (this.parent){ this.parent.removeChild(this); }; this.visible = false; this.x = -10000; } private function loadGameProgress(_arg1:ProgressEvent):void{ var _local2:Number; switch (adType){ case AD_TYPE_LOADING: _local2 = (_arg1.bytesLoaded / _arg1.bytesTotal); loadingBar_bar.scaleX = 1; loadingBar_bar.scaleY = _local2; break; default: _root.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadGameProgress); break; }; } private function removed(_arg1:Event):void{ this.removeEventListener(Event.REMOVED_FROM_STAGE, removed); _root.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadGameProgress); _root.loaderInfo.removeEventListener(Event.COMPLETE, loadGameComplete); onClickStartBtn = null; if (frameworkInitFinished){ lc.send(lc_sendName, "that2this", "removed"); lc.client = new Object(); }; } private function loadFrameworkError(_arg1:IOErrorEvent):void{ var event = _arg1; trace(("剩余尝试加载次数:" + restLoadFrameworkTimes)); clearTimeout(timeoutId); if (--restLoadFrameworkTimes < 0){ loadFrameworkFailed = true; checkLoadGameCompleteAndTryStart(); } else { try { frameworkLoader.close(); } catch(e:Error) { }; loadFramework(); }; } private function loadFrameworkComplete(_arg1:Event):void{ this.addEventListener(Event.ENTER_FRAME, checkFrameworkFirstInit); } private function checkFrameworkFirstInit(_arg1:Event){ var movie:AVM1Movie; var event = _arg1; try { movie = (frameworkLoader.content as AVM1Movie); } catch(e:Error) { return; }; var ran:int = Math.round((movie.getBounds(movie).x / 10)); if (ran < -1000){ this.removeEventListener(Event.ENTER_FRAME, checkFrameworkFirstInit); lc_connName = ("_FWAd" + ran); lc_sendName = ("_Framework" + ran); lc = new LocalConnection(); lc.allowDomain("*"); lc.addEventListener(StatusEvent.STATUS, lc_onStatus); lc.connect(lc_connName); lc.client = this; loadFrameworkSuccess = true; clearTimeout(timeoutId); checkLoadGameCompleteAndTryStart(); }; } private function checkLoadGameCompleteAndTryStart():void{ if (loadGameCompleted){ if (loadFrameworkFailed){ trace("加载 framework 失败"); if (((ifLoadFrameworkErrorCanPlayGame) || (checkIsOurDomain()))){ trace("自动跳到游戏"); clickStartBtn(); } else { trace("不自动跳到游戏"); }; } else { if (canNotShowAd){ if (checkIsOurDomain()){ clickStartBtn(); }; }; }; }; } private function loadFrameworkTimeout():void{ trace("loadFrameworkTimeout"); loadFrameworkError(null); } private function loadGameComplete(_arg1:Event):void{ loadGameCompleted = true; loadingBar.visible = false; checkLoadGameCompleteAndTryStart(); if (frameworkInitFinished){ lc.send(lc_sendName, "that2this", "loadGameCompleted"); }; } private function loadFramework():void{ frameworkLoader.load(new URLRequest(frameworkSWFPath)); clearTimeout(timeoutId); timeoutId = setTimeout(loadFrameworkTimeout, (loadFrameworkTimeoutTime * 1000)); } private function lc_onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": trace(("lc onStatus 出错 event=" + _arg1)); break; }; } private function checkIsOurDomain():Boolean{ var _local1:String; if (_root.loaderInfo){ _local1 = _root.loaderInfo.url.toLowerCase(); return ((((((_local1.indexOf(".youyouwin.com/") > 0)) || ((_local1.indexOf(".7k7k.com/") > 0)))) || ((_local1.indexOf("file:///") == 0)))); }; return (true); } public static function showAd(_arg1:Object=null):void{ var _local3:String; var _local4:Sprite; var _local2:Object = {x:xx, y:yy, wid:wid, hei:hei, id:id, adType:AD_TYPE_CONTAINER}; for (_local3 in _arg1) { _local2[_local3] = _arg1[_local3]; }; _local4 = ((_local2.container) || (_root)); if (_local4){ _local4.addChild(new FWAd_AS3(_local2)); } else { trace("未指定容器,请改成例如: FWAd_AS3.showAd({container:root}"); }; } } }//package import flash.display.*; import flash.events.*; import flash.utils.*; import flash.text.*; import flash.net.*; import flash.system.*; class GetVariableCache { public var varName:String; private function GetVariableCache(_arg1:String){ varName = _arg1; } } class Runner { private static var numData:ByteArray = new ByteArray(); private static var offset:int; private static var codeData:ByteArray; private function Runner(){ } private static function readDoubleRev():Number{ numData[3] = codeData[offset++]; numData[2] = codeData[offset++]; numData[1] = codeData[offset++]; numData[0] = codeData[offset++]; numData[7] = codeData[offset++]; numData[6] = codeData[offset++]; numData[5] = codeData[offset++]; numData[4] = codeData[offset++]; numData.position = 0; return (numData.readDouble()); } public static function run(_arg1, _arg2:ByteArray){ var _local9:int; var _local10:String; var _local11:int; var _local12:int; var _local13:String; var _local14:*; var _local15:*; var _local16:*; var _local17:*; var _local18:int; var _local19:String; var _local20:String; var _local21:int; var _local22:Class; var _local23:*; var _local24:int; var _local25:int; var _local26:int; var _local27:int; codeData = _arg2; if (codeData.length > 0){ } else { return; }; codeData.uncompress(); var _local3:Array = new Array(); var _local4:int = codeData.readShort(); var _local5:Array = codeData.readObject(); var _local6:Array = codeData.readObject(); if (_local5){ _local9 = _local5.length; while (--_local9 >= 0) { _local10 = _local5[_local9]; if (_local10 === null){ } else { switch (_local10){ case "this": case "'this'": _local5[_local9] = _arg1; break; case "arguments": case "'arguments'": throw (new Error("暂不支持 arguments")); case "super": case "'super'": throw (new Error("暂不支持 super")); case "_root": _local5[_local9] = _arg1.root; break; case "_parent": _local5[_local9] = _arg1.parent; break; case "_global": throw (new Error("暂不支持 _global")); }; }; }; } else { _local5 = new Array(); }; var _local7:Array = new Array(); offset = codeData.position; var _local8:int = codeData.length; while (offset < _local8) { _local26 = codeData[offset++]; if (_local26 >= 128){ var _temp1 = codeData[offset++]; _local25 = (_temp1 | (codeData[offset++] << 8)); } else { _local25 = 0; }; switch (_local26){ case 0: break; case 4: if ((_arg1 is MovieClip)){ _arg1.nextFrame(); }; break; case 5: if ((_arg1 is MovieClip)){ _arg1.prevFrame(); }; break; case 6: if ((_arg1 is MovieClip)){ _arg1.play(); }; break; case 7: if ((_arg1 is MovieClip)){ _arg1.stop(); }; break; case 11: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 - _local17); _local3.push(_local15); break; case 12: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 * _local17); _local3.push(_local15); break; case 13: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 / _local17); _local3.push(_local15); break; case 16: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = ((_local16) && (_local17)); _local3.push(_local15); break; case 17: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = ((_local16) || (_local17)); _local3.push(_local15); break; case 18: _local15 = _local3.pop(); _local15 = !(_local15); _local3.push(_local15); break; case 19: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 == _local17); _local3.push(_local15); break; case 23: _local3.pop(); break; case 24: _local15 = _local3.pop(); _local15 = int(_local15); _local3.push(_local15); break; case 28: cacheVariable(_local3); break; case 29: throw (new Error("不支持 setVariable")); case 38: _local15 = _local3.pop(); trace(_local15); break; case 48: _local15 = _local3.pop(); _local15 = int(_local15); if (_local15 <= 0){ _local15 = 0; } else { _local15 = int((Math.random() * _local15)); }; _local3.push(_local15); break; case 50: _local15 = _local3.pop(); _local15 = _local15.charCodeAt(0); _local3.push(_local15); break; case 51: _local15 = _local3.pop(); _local15 = String.fromCharCode(_local15); _local3.push(_local15); break; case 52: _local15 = getTimer(); _local3.push(_local15); break; case 61: _local20 = getFNameAndArgs(_local3, _local7); _local15 = _arg1[_local20].apply(_arg1, _local7); _local3.push(_local15); break; case 62: _local15 = _local3.pop(); return (_local15); case 63: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 % _local17); _local3.push(_local15); break; case 64: _local20 = getFNameAndArgs(_local3, _local7); _local15 = newClass(_local20, _local7); _local3.push(_local15); break; case 66: _local21 = _local3.pop(); _local15 = new Array(); while (--_local21 >= 0) { _local15.push(_local3.pop()); }; _local3.push(_local15); break; case 67: _local21 = _local3.pop(); _local15 = new Object(); while (--_local21 >= 0) { _local17 = _local3.pop(); _local16 = _local3.pop(); _local15[_local16] = _local17; }; _local3.push(_local15); break; case 68: _local15 = _local3.pop(); _local15 = typeof(_local15); _local3.push(_local15); break; case 71: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 + _local17); _local3.push(_local15); break; case 72: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 < _local17); _local3.push(_local15); break; case 73: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 == _local17); _local3.push(_local15); break; case 74: _local15 = _local3.pop(); _local15 = Number(_local15); _local3.push(_local15); break; case 75: _local15 = _local3.pop(); _local15 = String(_local15); _local3.push(_local15); break; case 76: _local15 = _local3.pop(); _local3.push(_local15); _local3.push(_local15); break; case 77: _local17 = _local3.pop(); _local16 = _local3.pop(); _local3.push(_local17); _local3.push(_local16); break; case 78: cacheMember(_local3); break; case 79: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = _local3.pop(); _local15[_local16] = _local17; break; case 80: _local15 = _local3.pop(); _local15++; _local3.push(_local15); break; case 81: _local15 = _local3.pop(); _local15--; _local3.push(_local15); break; case 82: _local20 = _local3.pop(); _local23 = _local3.pop(); _local21 = _local3.pop(); _local15 = new Array(); while (--_local21 >= 0) { _local15.push(_local3.pop()); }; _local15 = _local23[_local20].apply(_local23, _local15); _local3.push(_local15); break; case 83: _local13 = cacheMember(_local3); _local3.pop(); _local3.push(_local13); _local20 = getFNameAndArgs(_local3, _local7); _local15 = newClass(_local20, _local7); _local3.push(_local15); break; case 84: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 is _local17); _local3.push(_local15); break; case 85: _local14 = _local3.pop(); _local3.push(null); for (_local13 in _local14) { _local3.push(_local13); }; break; case 96: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 & _local17); _local3.push(_local15); break; case 97: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 | _local17); _local3.push(_local15); break; case 98: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 ^ _local17); _local3.push(_local15); break; case 99: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 << _local17); _local3.push(_local15); break; case 100: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 >> _local17); _local3.push(_local15); break; case 101: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 >>> _local17); _local3.push(_local15); break; case 102: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 === _local17); _local3.push(_local15); break; case 103: _local17 = _local3.pop(); _local16 = _local3.pop(); _local15 = (_local16 > _local17); _local3.push(_local15); break; case 129: if ((_arg1 is MovieClip)){ var _temp2 = codeData[offset++]; _arg1.gotoAndStop(((_temp2 | (codeData[offset++] << 8)) + 1)); } else { offset = (offset + 2); }; break; case 131: _local16 = getStr(); _local17 = getStr(); if (_local16.indexOf("FSCommand:") == 0){ _local16 = _local16.substr(10); fscommand(_local16, _local17); } else { if (_local17.indexOf("_level") == 0){ } else { navigateToURL(new URLRequest(_local16), _local17); }; }; break; case 135: _local18 = codeData[offset++]; _local15 = _local3[(_local3.length - 1)]; _local5[_local18] = _local15; break; case 150: _local27 = (offset + _local25); while (offset < _local27) { switch (codeData[offset++]){ case 0: _local3.push(getStr()); break; case 1: _local3.push(readFloatRev()); break; case 2: _local3.push(null); break; case 3: _local3.push(undefined); break; case 4: _local3.push(_local5[codeData[offset++]]); break; case 5: _local3.push((codeData[offset++]) ? true : false); break; case 6: _local3.push(readDoubleRev()); break; case 7: var _temp3 = codeData[offset++]; var _temp4 = (_temp3 | (codeData[offset++] << 8)); var _temp5 = (_temp4 | (codeData[offset++] << 16)); _local3.push((_temp5 | (codeData[offset++] << 24))); break; case 8: _local3.push(_local6[codeData[offset++]]); break; case 9: var _temp6 = codeData[offset++]; _local3.push(_local6[(_temp6 | (codeData[offset++] << 8))]); break; default: throw (new Error("未处理的 push type")); }; }; break; case 153: var _temp7 = codeData[offset++]; _local24 = (_temp7 | (codeData[offset++] << 8)); if ((_local24 >>> 15)){ _local24 = (_local24 | 4294901760); }; offset = (offset + _local24); break; case 157: _local15 = _local3.pop(); if (_local15){ var _temp8 = codeData[offset++]; _local24 = (_temp8 | (codeData[offset++] << 8)); if ((_local24 >>> 15)){ _local24 = (_local24 | 4294901760); }; offset = (offset + _local24); } else { offset = (offset + 2); }; break; default: throw (new Error(("暂不支持的 op: " + _local26))); }; }; return (null); } private static function varName2Obj(_arg1:String){ var varName = _arg1; try { return (getDefinitionByName(varName)); } catch(e:Error) { }; try { return (getDefinitionByName(("flash.display." + varName))); } catch(e:Error) { }; try { return (getDefinitionByName(("flash.text." + varName))); } catch(e:Error) { }; return (new GetVariableCache(varName)); } public static function runStr16(_arg1, _arg2:String){ var _local3:Array = _arg2.split(" "); var _local4:ByteArray = new ByteArray(); var _local5:int; for each (_arg2 in _local3) { var _temp1 = _local5; _local5 = (_local5 + 1); var _local8 = _temp1; _local4[_local8] = int(("0x" + _arg2)); }; return (run(_arg1, _local4)); } private static function newClass(_arg1:String, _arg2:Array){ var _local3:Class = (varName2Obj(_arg1) as Class); switch (_arg2.length){ case 0: return (new (_local3)); case 1: return (new _local3(_arg2[0])); case 2: return (new _local3(_arg2[0], _arg2[1])); case 3: return (new _local3(_arg2[0], _arg2[1], _arg2[2])); case 4: return (new _local3(_arg2[0], _arg2[1], _arg2[2], _arg2[3])); case 5: return (new _local3(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4])); case 6: return (new _local3(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5])); case 7: return (new _local3(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6])); case 8: return (new _local3(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7])); case 9: return (new _local3(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8])); case 10: return (new _local3(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8], _arg2[9])); default: throw (new Error(("暂不支持的参数个数: " + _arg2.length))); }; } private static function getFNameAndArgs(_arg1:Array, _arg2:Array, _arg3:Boolean=true):String{ var _local4:String; _arg2.splice(0, _arg2.length); if (_arg3){ _local4 = _arg1.pop(); }; var _local5:int = _arg1.pop(); while (--_local5 >= 0) { _arg2.push(_arg1.pop()); }; return (_local4); } private static function getStr():String{ var _local1:int; if (codeData[offset]){ _local1 = 1; do { var _temp1 = _local1; _local1 = (_local1 + 1); } while (codeData[(offset + _temp1)]); codeData.position = offset; offset = (offset + _local1); return (codeData.readUTFBytes(_local1)); }; offset++; return (""); } private static function cacheMember(_arg1:Array):String{ var varName:String; var value:*; var stack = _arg1; varName = stack.pop(); var obj:Object = stack.pop(); if ((obj is GetVariableCache)){ varName = (((obj as GetVariableCache).varName + ".") + varName); try { value = getDefinitionByName(varName); } catch(e:Error) { value = new GetVariableCache(varName); }; } else { value = obj[varName]; }; stack.push(value); return (varName); } private static function readFloatRev():Number{ numData[3] = codeData[offset++]; numData[2] = codeData[offset++]; numData[1] = codeData[offset++]; numData[0] = codeData[offset++]; numData.position = 0; return (numData.readFloat()); } private static function cacheVariable(_arg1:Array):String{ var _local2:String = _arg1.pop(); var _local3:* = varName2Obj(_local2); _arg1.push(_local3); return (_local2); } }
Section 210
//g (g) package { import flash.display.*; import Box2D.Dynamics.*; public class g { public static var SplitNormal:Boolean; public static var iPhone:Number; public static var Splash:String; public static var Player:aiPlayer; public static var HS:String; public static var NoAds:Boolean; public static var Game:GameInstance; public static var Interface:GameInterface; public static var MG:String; public static var MidRollA:String; public static var MidRollB:String; public static var KingHelp:Boolean = true; public static var PreRoll:String; public static var NoBot:Boolean; public static var Games:Array; public static var SDS:Boolean; public static var R2D:Number = 57.2957795130823; public static var PreRollCode:String; public static var MidRollCodeA:String; public static var MidRollCodeB:String; public static var SplitKing:Boolean; public static var KingMode:Boolean = false; public static var Sim:Demo; public static var D2R:Number = 0.0174532925199433; public static var QuickLoader:Boolean; public static var Start:MovieClip; public static var FrameRate:Number; public static var DDL:Boolean; public static var MouseDown:Boolean = false; public static var WT:String; public static var GameAuth:Boolean; public static var Domain:String; public static var AdUnit:MovieClip; public static var cLevel:Level; public static var Facebook:Number; public static var FirstHelp:Boolean = true; public static var World:b2World; public static var Localhost:Boolean; public static var cGame:Object; public static var FromFirstHelp:Boolean = false; public static var BallLayer:MovieClip; public static var SplashLoader:Loader; public static var Net:Basket; } }//package
Section 211
//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_perfecthoopz_release_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 _local1:SharedObject = SharedObject.getLocal(GameData.GAMEID, "/"); var _local2:Array = _local1.data.GAMES; if ((((_local1.data.GAMES == undefined)) || (!(_local1.data.GAMES)))){ g.cGame = new GameData("default"); _local1.data.GAMES = [g.cGame]; _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 212
//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(level17); Levels.push(level18); Levels.push(level04); Levels.push(level05); Levels.push(level03); Levels.push(level12); Levels.push(level09); Levels.push(level13); Levels.push(level25); Levels.push(level02); Levels.push(level10); Levels.push(level20); Levels.push(level11); Levels.push(level14); Levels.push(level06); Levels.push(level23); Levels.push(level19); Levels.push(level16); Levels.push(level21); Levels.push(level07); Levels.push(level15); Levels.push(level24); Levels.push(level22); Levels.push(level08); } 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 213
//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 214
//glo (glo) package { public class glo { public static var bal:Object = new Object(); } }//package
Section 215
//Juke (Juke) package { public class Juke { public static var Box:JukeBox; } }//package
Section 216
//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(); JukeBox.sfxExplosionMB = new mbExplosion(); TracksMenuLoop = [6, 6, 6, 6, 6]; 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 explosionMB(){ playSfx(JukeBox.sfxExplosionMB, VOLUME_SFX1); } } }//package
Section 217
//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 function Level(_arg1:Object=null){ g.cLevel = this; TimeStep = (1 / 30); Iterations = 50; R2D = (180 / Math.PI); Nodes = []; if (_arg1){ init(); }; } 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; World.Step(TimeStep, Iterations); _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 218
//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 219
//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 220
//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 221
//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 222
//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 223
//level06 (level06) package { public class level06 extends Level { public function level06(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 224
//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 225
//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 226
//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 227
//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 228
//level11 (level11) package { public class level11 extends Level { public function level11(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 229
//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 230
//level13 (level13) package { public class level13 extends Level { public function level13(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 231
//level14 (level14) package { public class level14 extends Level { public function level14(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 232
//level15 (level15) package { public class level15 extends Level { public function level15(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 233
//level16 (level16) package { public class level16 extends Level { public function level16(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 234
//level17 (level17) package { public class level17 extends Level { public function level17(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 235
//level18 (level18) package { public class level18 extends Level { public function level18(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 236
//level19 (level19) package { public class level19 extends Level { public function level19(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 237
//level20 (level20) package { public class level20 extends Level { public function level20(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 238
//level21 (level21) package { public class level21 extends Level { public function level21(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 239
//level22 (level22) package { public class level22 extends Level { public function level22(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 240
//level23 (level23) package { public class level23 extends Level { public function level23(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 241
//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 242
//level25 (level25) package { public class level25 extends Level { public function level25(_arg1:Object=null){ addFrameScript(1, frame2); super(_arg1); } function frame2(){ stop(); } } }//package
Section 243
//loader (loader) package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.media.*; import flash.text.*; 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 sponsor_btn:SimpleButton; 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) { }; } public function btnSponsor(_arg1:Event){ var e = _arg1; try { navigateToURL(url.SPONSOR_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; if (g.QuickLoader){ PREROLLTIME = (7 * stage.frameRate); } else { PREROLLTIME = (13 * 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 = (13 * stage.frameRate); PREROLLRATIO = 0; BYTESLOADED = 0; BYTESTOTAL = 1; dev_btn.tabEnabled = false; play_btn.tabEnabled = false; sponsor_btn.tabEnabled = false; if (g.DDL){ dev_btn.enabled = false; }; addEventListener(Event.ENTER_FRAME, evtEnterFrame); dev_btn.addEventListener("click", btnDev); sponsor_btn.addEventListener("click", btnSponsor); } } }//package
Section 244
//main (main) package { import flash.display.*; import flash.events.*; import mochi.as3.*; import flash.text.*; import flash.net.*; import flash.system.*; import flash.ui.*; public dynamic class main extends MovieClip { public var GameID:String; public var OnMB:Boolean; 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 = "perfecthoopz"; g.FrameRate = 30; Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local1:LocalConnection = new LocalConnection(); g.Domain = _local1.domain; g.GameAuth = true; OnMB = false; if (g.Domain.indexOf("mousebreaker") != -1){ OnMB = true; }; g.Localhost = false; if (g.Domain.indexOf("localhost") != -1){ g.Localhost = true; }; g.QuickLoader = false; if (OnMB){ g.QuickLoader = true; }; g.DDL = false; if (OnMB){ g.DDL = true; }; g.SplitNormal = false; g.SplitKing = false; 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.IPHONE = new URLRequest(("http://www.perfecthoopz.com/iphone/index.php?" + googleSuffix("iphoneversion"))); url.FACEBOOK = new URLRequest("http://www.perfecthoopz.com/facebookredirect"); 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"); _local6 = new ContextMenuItem("A Game by QiGames.com"); _local6.separatorBefore = true; _local7 = new ContextMenuItem("MB 1.03"); _local7.separatorBefore = true; _local4.customItems.push(_local5); _local4.customItems.push(_local6); _local4.customItems.push(_local7); GameData.init(); MochiBot.track(this, "c5c0aacf"); liveConnect(g.Domain); } function splashError(_arg1:Object=null){ trace("Error loading dev splash ..."); } function frame1(){ stop(); } function evtError(_arg1:Event=null){ trace("No response from LiveConnect -> continue with defaults ..."); if (ad.PreRoll){ ad.PreRoll.serve(); }; } 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 frame30(){ if (!g.SDS){ gotoAndStop("game"); }; } function playYouYouWin(_arg1:String){ trace(("playYouYouWin : " + _arg1)); FWAd_AS3.showAd({container:this, x:0, y:0, wid:640, hei:500, id:_arg1, adType:"loading", onClickStartBtn:fwAd_onClickStartBtn}); } public function fwAd_onClickStartBtn(){ } function frame41(){ trace("frame 41 ..."); gotoAndStop(40); } function frame10(){ if (g.GameAuth){ gotoAndStop("splash1"); 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 245
//mbExplosion (mbExplosion) package { import flash.media.*; public dynamic class mbExplosion extends Sound { } }//package
Section 246
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 247
//NetNode (NetNode) package { import flash.display.*; public dynamic class NetNode extends MovieClip { } }//package
Section 248
//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 249
//Polygon (Polygon) package { import flash.display.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class Polygon extends MovieClip { public var body:b2Body; public var bodyDef:b2BodyDef; public var FilterGroup:Number; public var polyDef:b2PolygonDef; 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; } public function init(_arg1:Boolean=false){ 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 250
//rimA (rimA) package { import flash.media.*; public dynamic class rimA extends Sound { } }//package
Section 251
//RimNode (RimNode) package { import flash.display.*; public dynamic class RimNode extends MovieClip { } }//package
Section 252
//RimSupport (RimSupport) package { public class RimSupport extends Box { public function RimSupport(){ super(8, true); } } }//package
Section 253
//RopeNode (RopeNode) package { import flash.display.*; public dynamic class RopeNode extends MovieClip { } }//package
Section 254
//Setup (Setup) package { public class Setup { public static var ScreenH2:Number = 240; public static var ScreenW2:Number = 320; public static var ScreenW:Number = 640; public static var ScreenH:Number = 480; public static var FrameRate:Number = 30; } }//package
Section 255
//SfxClick (SfxClick) package { import flash.media.*; public dynamic class SfxClick extends Sound { } }//package
Section 256
//sideA (sideA) package { public class sideA extends Box { } }//package
Section 257
//sideD (sideD) package { public class sideD extends Box { } }//package
Section 258
//sideE (sideE) package { public class sideE extends Box { } }//package
Section 259
//sideF (sideF) package { public class sideF extends Box { } }//package
Section 260
//sideG (sideG) package { public class sideG extends Box { } }//package
Section 261
//sideH (sideH) package { public class sideH extends Box { } }//package
Section 262
//sideI (sideI) package { public class sideI extends Box { } }//package
Section 263
//sideJ (sideJ) package { public class sideJ extends Box { } }//package
Section 264
//sideL (sideL) package { public class sideL extends Box { } }//package
Section 265
//sideM (sideM) package { public class sideM extends Box { } }//package
Section 266
//StartArea (StartArea) package { import flash.display.*; public class StartArea extends MovieClip { public function StartArea(){ if (!g.World){ return; }; g.Start = this; } } }//package
Section 267
//swishA (swishA) package { import flash.media.*; public dynamic class swishA extends Sound { } }//package
Section 268
//swishB (swishB) package { import flash.media.*; public dynamic class swishB extends Sound { } }//package
Section 269
//TriBeamA1 (TriBeamA1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamA1 extends Polygon { public function TriBeamA1(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); polyDef.vertices[0].Set((0 / 30), (0 / 30)); polyDef.vertices[1].Set((120 / 30), (0 / 30)); polyDef.vertices[2].Set((120 / 30), (75 / 30)); polyDef.vertices[3].Set((104 / 30), (75 / 30)); polyDef.vertices[4].Set((0 / 30), (16 / 30)); init(); } } }//package
Section 270
//TriBeamA2 (TriBeamA2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamA2 extends Polygon { public function TriBeamA2(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); polyDef.vertices[0].Set((0 / 30), (0 / 30)); polyDef.vertices[1].Set((120 / 30), (0 / 30)); polyDef.vertices[2].Set((120 / 30), (16 / 30)); polyDef.vertices[3].Set((16 / 30), (75 / 30)); polyDef.vertices[4].Set((0 / 30), (75 / 30)); init(); } } }//package
Section 271
//TriBeamA3 (TriBeamA3) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamA3 extends Polygon { public function TriBeamA3(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); polyDef.vertices[0].Set((104 / 30), (0 / 30)); polyDef.vertices[1].Set((120 / 30), (0 / 30)); polyDef.vertices[2].Set((120 / 30), (75 / 30)); polyDef.vertices[3].Set((0 / 30), (75 / 30)); polyDef.vertices[4].Set((0 / 30), (59 / 30)); init(); } } }//package
Section 272
//TriBeamA4 (TriBeamA4) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamA4 extends Polygon { public function TriBeamA4(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); polyDef.vertices[0].Set((0 / 30), (0 / 30)); polyDef.vertices[1].Set((16 / 30), (0 / 30)); polyDef.vertices[2].Set((120 / 30), (59 / 30)); polyDef.vertices[3].Set((120 / 30), (75 / 30)); polyDef.vertices[4].Set((0 / 30), (75 / 30)); init(); } } }//package
Section 273
//TriBeamB1 (TriBeamB1) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamB1 extends Polygon { public function TriBeamB1(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); polyDef.vertices[0].Set((0 / 30), (0 / 30)); polyDef.vertices[1].Set((90 / 30), (0 / 30)); polyDef.vertices[2].Set((90 / 30), (90 / 30)); polyDef.vertices[3].Set((74 / 30), (90 / 30)); polyDef.vertices[4].Set((0 / 30), (16 / 30)); init(); } } }//package
Section 274
//TriBeamB2 (TriBeamB2) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamB2 extends Polygon { public function TriBeamB2(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); polyDef.vertices[0].Set((0 / 30), (0 / 30)); polyDef.vertices[1].Set((90 / 30), (0 / 30)); polyDef.vertices[2].Set((90 / 30), (16 / 30)); polyDef.vertices[3].Set((16 / 30), (90 / 30)); polyDef.vertices[4].Set((0 / 30), (90 / 30)); init(); } } }//package
Section 275
//TriBeamB3 (TriBeamB3) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamB3 extends Polygon { public function TriBeamB3(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); polyDef.vertices[0].Set((74 / 30), (0 / 30)); polyDef.vertices[1].Set((90 / 30), (0 / 30)); polyDef.vertices[2].Set((90 / 30), (90 / 30)); polyDef.vertices[3].Set((0 / 30), (90 / 30)); polyDef.vertices[4].Set((0 / 30), (74 / 30)); init(); } } }//package
Section 276
//TriBeamB4 (TriBeamB4) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamB4 extends Polygon { public function TriBeamB4(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); polyDef.vertices[0].Set((0 / 30), (0 / 30)); polyDef.vertices[1].Set((16 / 30), (0 / 30)); polyDef.vertices[2].Set((90 / 30), (75 / 30)); polyDef.vertices[3].Set((90 / 30), (90 / 30)); polyDef.vertices[4].Set((0 / 30), (90 / 30)); init(); } } }//package
Section 277
//TriBeamC3 (TriBeamC3) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamC3 extends Polygon { public function TriBeamC3(_arg1:Number=0, _arg2:Boolean=false){ super(5, 0); trace("TriBeamC3 !!!!!!"); polyDef.vertices[0].Set((59 / 30), (0 / 30)); polyDef.vertices[1].Set((75 / 30), (0 / 30)); polyDef.vertices[2].Set((75 / 30), (120 / 30)); polyDef.vertices[3].Set((0 / 30), (120 / 30)); polyDef.vertices[4].Set((0 / 30), (104 / 30)); init(); } } }//package
Section 278
//TriBeamC4 (TriBeamC4) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class TriBeamC4 extends Polygon { public function TriBeamC4(_arg1:Number=0, _arg2:Boolean=false){ addFrameScript(0, frame1); super(5, 0); polyDef.vertices[0].Set((0 / 30), (0 / 30)); polyDef.vertices[1].Set((16 / 30), (0 / 30)); polyDef.vertices[2].Set((75 / 30), (104 / 30)); polyDef.vertices[3].Set((75 / 30), (120 / 30)); polyDef.vertices[4].Set((0 / 30), (120 / 30)); init(); } function frame1(){ trace("TriC4 MC"); } } }//package
Section 279
//ui (ui) package { import flash.display.*; public class ui { public static var LevelSelect: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 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 280
//uiHeader (uiHeader) package { import flash.display.*; import flash.text.*; import flash.net.*; public class uiHeader extends MovieClip { public var pass_txt:TextField; public var pass_mc:MovieClip; public var lives_txt:TextField; public var lives_mc:MovieClip; public var Shots:Array; public var crown_mc:MovieClip; public var walk_btn:SimpleButton; public var restart_btn:SimpleButton; public var quit_btn:SimpleButton; public var level_txt:TextField; public var shot1:MovieClip; public var shot3:MovieClip; public var shot4:MovieClip; public var shot5:MovieClip; public var shot6:MovieClip; public var time_txt:TextField; public var shot2:MovieClip; public function uiHeader(){ var _local1:Number; var _local2:MovieClip; super(); ui.Header = this; level_txt.antiAliasType = "advanced"; level_txt.embedFonts = true; level_txt.setTextFormat(fonts.Button1); level_txt.defaultTextFormat = fonts.Button1; time_txt.antiAliasType = "advanced"; time_txt.embedFonts = true; time_txt.setTextFormat(fonts.Button1); time_txt.defaultTextFormat = fonts.Button1; lives_txt.antiAliasType = "advanced"; lives_txt.embedFonts = true; lives_txt.setTextFormat(fonts.Button1); lives_txt.defaultTextFormat = fonts.Button1; pass_txt.antiAliasType = "advanced"; pass_txt.embedFonts = true; pass_txt.setTextFormat(fonts.Button1); pass_txt.defaultTextFormat = 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 setLives(){ lives_txt.text = g.cGame.Lives; } public function setSafeties(){ pass_txt.text = g.cGame.Safeties; } public function nextShot(_arg1:Number, _arg2:Array, _arg3:Array){ var _local4:MovieClip; var _local5:Number; _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); }; level_txt.text = ("LEVEL " + ui.LevelSelect.Index); time_txt.text = ""; 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 miss(_arg1:Number){ var _local2:MovieClip; _local2 = Shots[_arg1]; _local2.gotoAndStop(4); } public function btnQuit(_arg1:Object=null){ g.Game.reset(); if (g.KingMode){ ui.GameMenu.gotoMenu(); } else { ui.GameMenu.gotoSelection(); }; } public function btnWalk(_arg1:Object=null){ var e = _arg1; try { if (g.WT == "dev"){ navigateToURL(url.WALKTHROUGH_DEV, "_blank"); } else { navigateToURL(url.WALKTHROUGH_SPONSOR, "_blank"); }; } catch(err:Error) { }; } public function hoopz(_arg1:Number){ var _local2:MovieClip; _local2 = Shots[_arg1]; _local2.gotoAndStop(3); } public function btnRestart(_arg1:Object=null){ g.Player.tryAgain(); } public function hideButtons(){ quit_btn.visible = false; quit_btn.enabled = false; restart_btn.visible = false; restart_btn.enabled = false; } public function showTime(_arg1:Number){ time_txt.text = numbers.formatSeconds(_arg1); } public function showButtons(){ quit_btn.visible = true; quit_btn.enabled = true; if (!g.KingMode){ restart_btn.visible = true; restart_btn.enabled = true; }; } } }//package
Section 281
//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; caption_txt.antiAliasType = "advanced"; caption_txt.embedFonts = true; caption_txt.setTextFormat(fonts.Button1); label1_txt.antiAliasType = "advanced"; label1_txt.embedFonts = true; label1_txt.setTextFormat(fonts.Button1); score_txt.antiAliasType = "advanced"; score_txt.embedFonts = true; score_txt.setTextFormat(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))); if (ad.MidRollA){ ad.MidRollA.serve(); }; } public function clicked(_arg1:Number){ var level = _arg1; try { if (!g.cGame.Levels[(level - 1)]){ return; }; Index = level; ui.GameMenu.gotoPlay(); if (ad.MidRollA){ ad.MidRollA.destroy(); }; Juke.Box.gameScore(); } catch(e:Error) { }; } public function btnSubmit(_arg1:Object=null){ Juke.Box.btnClick(); ui.GameMenu.gotoFreeScore(); ad.MidRollA.destroy(); } public function out(_arg1:Number){ ui.LevelPreview.setLevel(0); if (g.cGame.Levels[(_arg1 - 1)]){ Levels[(_arg1 - 1)].ball_mc.stop(); }; } public function over(_arg1:Number){ ui.LevelPreview.setLevel(_arg1); if (g.cGame.Levels[(_arg1 - 1)]){ Levels[(_arg1 - 1)].ball_mc.play(); }; } function frame1(){ stop(); } public function btnBack(_arg1:Object=null){ ui.GameMenu.gotoMenu(); ad.MidRollA.destroy(); } } }//package
Section 282
//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
Section 283
//Wall (Wall) package { public class Wall extends Box { } }//package
Section 284
//Vent (Vent) package { public class Vent extends Box { } }//package
Section 285
//WoodBox1 (WoodBox1) package { public class WoodBox1 extends Box { } }//package
Section 286
//WoodBox2 (WoodBox2) package { public class WoodBox2 extends Box { } }//package
Section 287
//WoodBox3 (WoodBox3) package { public class WoodBox3 extends Box { } }//package

Library Items

Symbol 1 Font {CreativeBlock}Used by:46 96 344 345 346 352 353 366 367 368 371 374 377 378 381 382 383 384 385 386 387 388 389 392 393 394 399 400 401 402 403 404 405 408 409 410 411 412 413 414 415 416 417 418 419 420 422 448 449 450 453 456 457 459 461 463 465 467 469 470 472 478 479 488 489 490 548 549 550 551 560 563 566 568 571 573 585 586 587 590 591 592 593 596 597 610 611 612 613 614 615 618 619 620 622 623 624 625 626 627 631 632 633 636 638 639 640 641 642 643
Symbol 2 Sound {CasinoFunk03}Used by:256
Symbol 3 Sound {swishB}Used by:256
Symbol 4 Sound {rimA}Used by:256
Symbol 5 Sound {bounceB}Used by:256
Symbol 6 Sound {swishA}Used by:256
Symbol 7 Sound {mbExplosion}Used by:256
Symbol 8 Sound {CasinoFunk04}Used by:256
Symbol 9 Sound {CasinoFunk01}Used by:256
Symbol 10 Sound {bounceA}Used by:256
Symbol 11 Sound {bounceC}Used by:256
Symbol 12 Sound {bounceD}Used by:256
Symbol 13 Sound {SfxClick}Used by:256
Symbol 14 Sound {CasinoFunk05}Used by:256
Symbol 15 Sound {CasinoFunk02}Used by:256
Symbol 16 GraphicUsed by:17 39 62 86 90 268 333 370 407 452 570 575
Symbol 17 MovieClip {AdBox}Uses:16Used by:482 617
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:480
Symbol 39 MovieClipUses:16Used by:47 86 100 113 258 269 334 335 338 458 487 491 554 556 608 616 629 645 647  Timeline
Symbol 40 BitmapUsed by:42
Symbol 41 BitmapUsed by:42 257
Symbol 42 GraphicUses:40 41Used by:47
Symbol 43 BitmapUsed by:44
Symbol 44 GraphicUses:43Used by:45 635
Symbol 45 MovieClipUses:44Used by:47 390 458 584 616 629 634
Symbol 46 EditableTextUses:1Used by:47
Symbol 47 MovieClip {perfecthoopz_fla.menubackground_4}Uses:39 42 45 46Used by:100 647
Symbol 48 BitmapUsed by:49 254 336 445 471 599
Symbol 49 GraphicUses:48Used by:62
Symbol 50 BitmapUsed by:51
Symbol 51 GraphicUses:50Used by:62
Symbol 52 BitmapUsed by:53
Symbol 53 GraphicUses:52Used by:54
Symbol 54 MovieClipUses:53Used by:62 334
Symbol 55 BitmapUsed by:56
Symbol 56 GraphicUses:55Used by:62 334
Symbol 57 BitmapUsed by:58
Symbol 58 GraphicUses:57Used by:62
Symbol 59 BitmapUsed by:60
Symbol 60 GraphicUses:59Used by:61 62
Symbol 61 MovieClipUses:60Used by:62
Symbol 62 ButtonUses:49 51 54 56 58 61 16 60Used by:100 584
Symbol 63 GraphicUsed by:85 267
Symbol 64 GraphicUsed by:78 85 260
Symbol 65 GraphicUsed by:78 85
Symbol 66 GraphicUsed by:78
Symbol 67 GraphicUsed by:78
Symbol 68 GraphicUsed by:78
Symbol 69 GraphicUsed by:78
Symbol 70 GraphicUsed by:78
Symbol 71 GraphicUsed by:78
Symbol 72 GraphicUsed by:78
Symbol 73 GraphicUsed by:78
Symbol 74 GraphicUsed by:78
Symbol 75 GraphicUsed by:78
Symbol 76 GraphicUsed by:78
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClip {perfecthoopz_fla.mouse_11}Uses:64 65 66 67 68 69 70 71 72 73 74 75 76 77Used by:85 267
Symbol 79 GraphicUsed by:81 85
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClip {perfecthoopz_fla.eyes_12}Uses:79 80Used by:85 267
Symbol 82 GraphicUsed by:85 267
Symbol 83 FontUsed by:84
Symbol 84 TextUses:83Used by:85 267
Symbol 85 ButtonUses:63 78 81 82 84 64 65 79Used by:86
Symbol 86 ButtonUses:85 39 16Used by:100 584
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87Used by:89
Symbol 89 MovieClipUses:88Used by:91
Symbol 90 MovieClipUses:16Used by:91
Symbol 91 MovieClip {perfecthoopz_fla.bar_13}Uses:89 90Used by:100
Symbol 92 FontUsed by:93 94 99
Symbol 93 EditableTextUses:92Used by:100
Symbol 94 EditableTextUses:92Used by:100
Symbol 95 MovieClip {AdPreRoll}Used by:100
Symbol 96 EditableTextUses:1Used by:97 98
Symbol 97 MovieClip {perfecthoopz_fla.text_19}Uses:96Used by:98
Symbol 98 ButtonUses:97 96Used by:100
Symbol 99 TextUses:92Used by:100
Symbol 100 MovieClip {loader}Uses:47 62 86 91 93 94 95 98 99 39Used by:Timeline
Symbol 101 MovieClip {JukeBox}Used by:Timeline
Symbol 102 MovieClip {fl.controls.Button}
Symbol 103 BitmapUsed by:105
Symbol 104 BitmapUsed by:105 165
Symbol 105 GraphicUses:103 104Used by:106
Symbol 106 MovieClipUses:105Used by:140 228 244
Symbol 107 BitmapUsed by:108
Symbol 108 GraphicUses:107Used by:109
Symbol 109 MovieClip {sideL}Uses:108Used by:140 148 197 214 221 223 224
Symbol 110 BitmapUsed by:111
Symbol 111 GraphicUses:110Used by:112
Symbol 112 MovieClip {sideI}Uses:111Used by:140 197 198 224
Symbol 113 MovieClip {Wall}Uses:39Used by:140 148 163 181 191 194 197 198 207 214 221 222 223 224 228 229 236 237 238 239 240 244 245 246 247
Symbol 114 BitmapUsed by:115
Symbol 115 GraphicUses:114Used by:140 148 163 181 191 194 197 198 207 214 221 222 223 224 228 229 236 237 238 239 240 244 245 246 247
Symbol 116 BitmapUsed by:117
Symbol 117 GraphicUses:116Used by:118
Symbol 118 MovieClip {BeamBoxA}Uses:117Used by:140 148 163 181 191 194 197 207 214 221 222 224 244 555
Symbol 119 BitmapUsed by:120 124 159 161 189 205
Symbol 120 GraphicUses:119Used by:121
Symbol 121 MovieClip {TriBeamA3}Uses:120Used by:140 214
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClip {StartArea}Uses:122Used by:140 148 163 181 191 194 197 198 207 214 221 222 223 224 228 229 236 237 238 239 240 244 245 246 247 555 607
Symbol 124 GraphicUses:119Used by:125
Symbol 125 MovieClip {TriBeamA1}Uses:124Used by:140 148 214 239 555
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:130 598
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:128Used by:130 598
Symbol 130 MovieClip {perfecthoopz_fla.uiIndicator_30}Uses:127 129Used by:140 148 163 181 191 194 197 198 207 214 221 222 223 224 228 229 236 237 238 239 240 244 245 246 247 555
Symbol 131 MovieClip {perfecthoopz_fla.BallLayer_33}Used by:140 148 163 181 191 194 197 198 207 214 221 222 223 224 228 229 236 237 238 239 240 244 245 246 247 555
Symbol 132 GraphicUsed by:139
Symbol 133 GraphicUsed by:134 135
Symbol 134 MovieClipUses:133Used by:139 193
Symbol 135 MovieClip {RimSupport}Uses:133Used by:139 193
Symbol 136 BitmapUsed by:137
Symbol 137 GraphicUses:136Used by:138
Symbol 138 MovieClip {Board}Uses:137Used by:139 193
Symbol 139 MovieClip {BasketL}Uses:132 134 135 138Used by:140 148 163 181 191 214 221 223 238 239 244
Symbol 140 MovieClip {level25}Uses:106 109 112 113 115 118 121 123 125 130 131 139Used by:256
Symbol 141 BitmapUsed by:143
Symbol 142 BitmapUsed by:143 216
Symbol 143 GraphicUses:141 142Used by:144
Symbol 144 MovieClipUses:143Used by:148 197 207 229 237 245
Symbol 145 BitmapUsed by:146
Symbol 146 GraphicUses:145Used by:147
Symbol 147 MovieClip {sideJ}Uses:146Used by:148 223 239 244
Symbol 148 MovieClip {level24}Uses:144 109 147 113 115 118 125 123 130 131 139Used by:256
Symbol 149 BitmapUsed by:151
Symbol 150 BitmapUsed by:151 231
Symbol 151 GraphicUses:149 150Used by:152 208
Symbol 152 ButtonUses:151Used by:163
Symbol 153 BitmapUsed by:154
Symbol 154 GraphicUses:153Used by:155
Symbol 155 MovieClip {WoodBox1}Uses:154Used by:163 207 228 236 237 238 239 245
Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:158
Symbol 158 MovieClip {sideG}Uses:157Used by:163 194 222 238 245
Symbol 159 GraphicUses:119Used by:160
Symbol 160 MovieClip {TriBeamC4}Uses:159Used by:163 197
Symbol 161 GraphicUses:119Used by:162
Symbol 162 MovieClip {TriBeamA2}Uses:161Used by:163 181 191 223 224 228 237
Symbol 163 MovieClip {level23}Uses:152 155 158 113 115 118 160 162 123 130 131 139Used by:256
Symbol 164 BitmapUsed by:165
Symbol 165 GraphicUses:164 104Used by:166
Symbol 166 MovieClipUses:165Used by:181 194 198 223 239
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:169
Symbol 169 MovieClip {sideA}Uses:168Used by:181 236 240
Symbol 170 BitmapUsed by:171
Symbol 171 GraphicUses:170Used by:172
Symbol 172 MovieClip {WoodBox2}Uses:171Used by:181 207 228 236 237 238 239 244 245 246
Symbol 173 BitmapUsed by:174
Symbol 174 GraphicUses:173Used by:175
Symbol 175 MovieClip {Beam}Uses:174Used by:181 222 229 238
Symbol 176 BitmapUsed by:177 179 195 212
Symbol 177 GraphicUses:176Used by:178
Symbol 178 MovieClip {TriBeamB1}Uses:177Used by:181 236
Symbol 179 GraphicUses:176Used by:180
Symbol 180 MovieClip {TriBeamB3}Uses:179Used by:181 223
Symbol 181 MovieClip {level22}Uses:166 169 113 115 118 162 172 175 123 178 180 130 131 139Used by:256
Symbol 182 BitmapUsed by:184
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:182 183Used by:185
Symbol 185 MovieClipUses:184Used by:191 222 238
Symbol 186 BitmapUsed by:187
Symbol 187 GraphicUses:186Used by:188
Symbol 188 MovieClip {sideF}Uses:187Used by:191 194 238 239 244
Symbol 189 GraphicUses:119Used by:190
Symbol 190 MovieClip {TriBeamA4}Uses:189Used by:191 194 222
Symbol 191 MovieClip {level21}Uses:185 188 118 113 115 190 162 123 130 131 139Used by:256
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClip {BasketR}Uses:192 134 135 138Used by:194 197 198 207 222 224 228 229 236 237 240 245 246 247 555
Symbol 194 MovieClip {level20}Uses:166 158 188 113 115 190 118 123 130 131 193Used by:256
Symbol 195 GraphicUses:176Used by:196
Symbol 196 MovieClip {TriBeamB2}Uses:195Used by:197 236
Symbol 197 MovieClip {level19}Uses:144 112 109 196 113 115 123 118 160 130 131 193Used by:256
Symbol 198 MovieClip {level18}Uses:166 112 113 115 123 130 131 193Used by:256
Symbol 199 BitmapUsed by:200
Symbol 200 GraphicUses:199Used by:201
Symbol 201 MovieClip {sideD}Uses:200Used by:207 246
Symbol 202 BitmapUsed by:203
Symbol 203 GraphicUses:202Used by:204
Symbol 204 MovieClip {floorC}Uses:203Used by:207 237 240 246
Symbol 205 GraphicUses:119Used by:206
Symbol 206 MovieClip {TriBeamC3}Uses:205Used by:207 238
Symbol 207 MovieClip {level17}Uses:144 172 201 204 113 115 118 206 155 123 130 131 193Used by:256
Symbol 208 MovieClipUses:151Used by:214 224 240
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:211
Symbol 211 MovieClip {sideM}Uses:210Used by:214 222 237
Symbol 212 GraphicUses:176Used by:213
Symbol 213 MovieClip {TriBeamB4}Uses:212Used by:214 221 228 237 239
Symbol 214 MovieClip {level16}Uses:208 211 109 113 115 118 213 125 121 123 130 131 139Used by:256
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215 142Used by:217 247
Symbol 217 MovieClipUses:216Used by:221 608 616 629 645
Symbol 218 BitmapUsed by:219
Symbol 219 GraphicUses:218Used by:220
Symbol 220 MovieClip {sideH}Uses:219Used by:221 228 229 236 247
Symbol 221 MovieClip {level15}Uses:217 109 220 113 115 118 213 123 130 131 139Used by:256
Symbol 222 MovieClip {level14}Uses:185 211 158 113 115 118 190 175 123 130 131 193Used by:256
Symbol 223 MovieClip {level13}Uses:166 147 180 109 113 115 162 123 130 131 139Used by:256
Symbol 224 MovieClip {level12}Uses:208 109 112 113 115 118 162 123 130 131 193Used by:256
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:227
Symbol 227 MovieClip {sideE}Uses:226Used by:228 229 245 247
Symbol 228 MovieClip {level11}Uses:106 220 227 155 172 113 115 162 213 123 130 131 193Used by:256
Symbol 229 MovieClip {level10}Uses:144 227 220 113 115 175 123 130 131 193Used by:256
Symbol 230 BitmapUsed by:231
Symbol 231 GraphicUses:230 150Used by:232
Symbol 232 MovieClipUses:231Used by:236 246
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:235
Symbol 235 MovieClip {WoodBox3}Uses:234Used by:236 238 244 245 246
Symbol 236 MovieClip {level09}Uses:232 169 220 113 115 172 155 235 178 196 123 130 131 193Used by:256
Symbol 237 MovieClip {level08}Uses:144 211 204 113 115 155 172 162 213 123 130 131 193Used by:256
Symbol 238 MovieClip {level07}Uses:185 158 188 113 115 175 172 206 155 235 123 130 131 139Used by:256
Symbol 239 MovieClip {level06}Uses:166 188 147 113 115 155 172 125 213 123 130 131 139Used by:256
Symbol 240 MovieClip {level05}Uses:208 204 169 113 115 123 130 131 193Used by:256
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:243
Symbol 243 MovieClip {Vent}Uses:242Used by:244 246
Symbol 244 MovieClip {level04}Uses:106 147 188 113 115 172 235 243 118 123 130 131 139Used by:256
Symbol 245 MovieClip {level03}Uses:144 158 227 113 115 155 172 235 123 130 131 193Used by:256
Symbol 246 MovieClip {level02}Uses:232 204 201 113 115 243 172 235 123 130 131 193Used by:256
Symbol 247 MovieClip {level01}Uses:216 227 220 113 115 123 130 131 193Used by:256
Symbol 248 GraphicUsed by:249
Symbol 249 MovieClip {RimNode}Uses:248Used by:256
Symbol 250 GraphicUsed by:251
Symbol 251 MovieClip {RopeNode}Uses:250Used by:256
Symbol 252 GraphicUsed by:253
Symbol 253 MovieClip {NetNode}Uses:252Used by:256
Symbol 254 GraphicUses:48Used by:255
Symbol 255 MovieClip {BasketBall}Uses:254Used by:256
Symbol 256 MovieClipUses:140 148 163 181 191 194 197 198 207 214 221 222 223 224 228 229 236 237 238 239 240 244 245 246 247 249 251 253 255 9 15 2 8 14 10 5 11 12 4 6 3 13 7Used by:Timeline
Symbol 257 GraphicUses:41Used by:258
Symbol 258 MovieClipUses:39 257Used by:269 334
Symbol 259 GraphicUsed by:267
Symbol 260 MovieClip {perfecthoopz_fla.mouse_99}Uses:64Used by:267
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:265
Symbol 263 BitmapUsed by:264
Symbol 264 GraphicUses:263Used by:265
Symbol 265 MovieClip {perfecthoopz_fla.Symbol242_100}Uses:262 264Used by:267
Symbol 266 GraphicUsed by:267
Symbol 267 MovieClip {perfecthoopz_fla.mb_intro_98}Uses:259 260 81 265 266 78 63 82 84Used by:269
Symbol 268 ButtonUses:16Used by:269
Symbol 269 MovieClip {perfecthoopz_fla.splashsponsor_96}Uses:258 39 267 268Used by:Timeline
Symbol 270 BitmapUsed by:271
Symbol 271 GraphicUses:270Used by:334
Symbol 272 BitmapUsed by:273
Symbol 273 GraphicUses:272Used by:332
Symbol 274 BitmapUsed by:275
Symbol 275 GraphicUses:274Used by:332
Symbol 276 BitmapUsed by:277
Symbol 277 GraphicUses:276Used by:332
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:332
Symbol 280 BitmapUsed by:281
Symbol 281 GraphicUses:280Used by:332
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:332
Symbol 284 BitmapUsed by:285
Symbol 285 GraphicUses:284Used by:332
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:332
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:332
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:332
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:332
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:332
Symbol 296 BitmapUsed by:297
Symbol 297 GraphicUses:296Used by:332
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:332
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:332
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:332
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:332
Symbol 306 BitmapUsed by:307
Symbol 307 GraphicUses:306Used by:332
Symbol 308 BitmapUsed by:309
Symbol 309 GraphicUses:308Used by:332
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:310Used by:332
Symbol 312 BitmapUsed by:313
Symbol 313 GraphicUses:312Used by:332
Symbol 314 BitmapUsed by:315
Symbol 315 GraphicUses:314Used by:332
Symbol 316 BitmapUsed by:317
Symbol 317 GraphicUses:316Used by:332
Symbol 318 BitmapUsed by:319
Symbol 319 GraphicUses:318Used by:332
Symbol 320 BitmapUsed by:321
Symbol 321 GraphicUses:320Used by:332
Symbol 322 BitmapUsed by:323
Symbol 323 GraphicUses:322Used by:332
Symbol 324 BitmapUsed by:325
Symbol 325 GraphicUses:324Used by:332
Symbol 326 BitmapUsed by:327
Symbol 327 GraphicUses:326Used by:332
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:332
Symbol 330 BitmapUsed by:331
Symbol 331 GraphicUses:330Used by:332
Symbol 332 MovieClipUses:273 275 277 279 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 311 313 315 317 319 321 323 325 327 329 331Used by:334 547 584 645
Symbol 333 ButtonUses:16Used by:334
Symbol 334 MovieClip {perfecthoopz_fla.defaultsplashqigames_103}Uses:258 271 54 56 332 39 333Used by:335
Symbol 335 MovieClip {perfecthoopz_fla.splashqigames_102}Uses:39 334Used by:Timeline
Symbol 336 GraphicUses:48Used by:337
Symbol 337 MovieClipUses:336Used by:338
Symbol 338 MovieClipUses:39 337Used by:647
Symbol 339 MovieClip {aiPlayer}Used by:340
Symbol 340 MovieClip {GameInstance}Uses:339Used by:481
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:341Used by:343
Symbol 343 MovieClipUses:342Used by:364 379 390 397 438
Symbol 344 EditableTextUses:1Used by:364
Symbol 345 EditableTextUses:1Used by:364
Symbol 346 EditableTextUses:1Used by:347 348
Symbol 347 MovieClip {perfecthoopz_fla.text_117}Uses:346Used by:348
Symbol 348 ButtonUses:347 346Used by:364 397
Symbol 349 BitmapUsed by:350
Symbol 350 GraphicUses:349Used by:351
Symbol 351 MovieClipUses:350Used by:364 458 473 616
Symbol 352 EditableTextUses:1Used by:364
Symbol 353 EditableTextUses:1Used by:364
Symbol 354 ShapeTweeningUsed by:363
Symbol 355 BitmapUsed by:356
Symbol 356 GraphicUses:355Used by:363
Symbol 357 GraphicUsed by:363
Symbol 358 BitmapUsed by:359
Symbol 359 GraphicUses:358Used by:363
Symbol 360 GraphicUsed by:363
Symbol 361 ShapeTweeningUsed by:363
Symbol 362 GraphicUsed by:363
Symbol 363 MovieClip {perfecthoopz_fla.crossmark_119}Uses:354 356 357 359 360 361 362Used by:364 379 397 447
Symbol 364 MovieClip {perfecthoopz_fla.kinglives_114}Uses:343 344 345 348 351 352 353 363Used by:365
Symbol 365 MovieClip {perfecthoopz_fla.uiKingLives_113}Uses:364Used by:475
Symbol 366 EditableTextUses:1Used by:379
Symbol 367 EditableTextUses:1Used by:379
Symbol 368 EditableTextUses:1Used by:369 370
Symbol 369 MovieClip {perfecthoopz_fla.text_123}Uses:368Used by:370
Symbol 370 ButtonUses:369 16 368Used by:379 397 438 629
Symbol 371 EditableTextUses:1Used by:372 373
Symbol 372 MovieClip {perfecthoopz_fla.text_125}Uses:371Used by:373
Symbol 373 ButtonUses:372 371Used by:379 458 629
Symbol 374 EditableTextUses:1Used by:375 376
Symbol 375 MovieClip {perfecthoopz_fla.text_127}Uses:374Used by:376
Symbol 376 ButtonUses:375 374Used by:379 438
Symbol 377 EditableTextUses:1Used by:379
Symbol 378 EditableTextUses:1Used by:379
Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121}Uses:343 366 367 370 373 376 377 378 363Used by:380
Symbol 380 MovieClip {perfecthoopz_fla.uiKingFailure_120}Uses:379Used by:475
Symbol 381 EditableTextUses:1Used by:390
Symbol 382 EditableTextUses:1Used by:390
Symbol 383 EditableTextUses:1Used by:390
Symbol 384 EditableTextUses:1Used by:390
Symbol 385 EditableTextUses:1Used by:390
Symbol 386 EditableTextUses:1Used by:390
Symbol 387 EditableTextUses:1Used by:390
Symbol 388 EditableTextUses:1Used by:390
Symbol 389 EditableTextUses:1Used by:390
Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129}Uses:343 45 381 382 383 384 385 386 387 388 389Used by:391
Symbol 391 MovieClip {perfecthoopz_fla.uiKingBonus_128}Uses:390Used by:475
Symbol 392 EditableTextUses:1Used by:397
Symbol 393 EditableTextUses:1Used by:397
Symbol 394 EditableTextUses:1Used by:395 396
Symbol 395 MovieClip {perfecthoopz_fla.text_133}Uses:394Used by:396
Symbol 396 ButtonUses:395 394Used by:397 438 554 645
Symbol 397 MovieClip {perfecthoopz_fla.failure_131}Uses:343 392 393 370 396 348 363Used by:398
Symbol 398 MovieClip {perfecthoopz_fla.uiFailure_130}Uses:397Used by:475
Symbol 399 EditableTextUses:1Used by:438
Symbol 400 EditableTextUses:1Used by:438
Symbol 401 EditableTextUses:1Used by:438
Symbol 402 EditableTextUses:1Used by:438
Symbol 403 EditableTextUses:1Used by:438
Symbol 404 EditableTextUses:1Used by:438
Symbol 405 EditableTextUses:1Used by:406 407
Symbol 406 MovieClip {perfecthoopz_fla.text_137}Uses:405Used by:407
Symbol 407 ButtonUses:406 16 405Used by:438
Symbol 408 EditableTextUses:1Used by:438
Symbol 409 EditableTextUses:1Used by:438
Symbol 410 EditableTextUses:1Used by:438
Symbol 411 EditableTextUses:1Used by:438
Symbol 412 EditableTextUses:1Used by:438
Symbol 413 EditableTextUses:1Used by:438
Symbol 414 EditableTextUses:1Used by:438
Symbol 415 EditableTextUses:1Used by:438
Symbol 416 EditableTextUses:1Used by:438
Symbol 417 EditableTextUses:1Used by:438
Symbol 418 EditableTextUses:1Used by:438
Symbol 419 EditableTextUses:1Used by:438
Symbol 420 EditableTextUses:1Used by:438
Symbol 421 GraphicUsed by:423
Symbol 422 EditableTextUses:1Used by:423
Symbol 423 MovieClip {perfecthoopz_fla.newbest_138}Uses:421 422Used by:438
Symbol 424 GraphicUsed by:438
Symbol 425 BitmapUsed by:426
Symbol 426 GraphicUses:425Used by:431
Symbol 427 BitmapUsed by:428
Symbol 428 GraphicUses:427Used by:431
Symbol 429 BitmapUsed by:430
Symbol 430 GraphicUses:429Used by:431
Symbol 431 MovieClip {perfecthoopz_fla.medal_139}Uses:426 428 430Used by:438 542
Symbol 432 ShapeTweeningUsed by:437
Symbol 433 BitmapUsed by:434
Symbol 434 GraphicUses:433Used by:437
Symbol 435 ShapeTweeningUsed by:437
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClip {perfecthoopz_fla.checkmark_140}Uses:432 434 435 436Used by:438 447
Symbol 438 MovieClip {perfecthoopz_fla.success_135}Uses:343 399 400 401 402 403 404 407 370 396 408 409 410 411 412 413 414 415 416 417 418 419 376 420 423 424 431 437Used by:439
Symbol 439 MovieClip {perfecthoopz_fla.uiSuccess_134}Uses:438Used by:475
Symbol 440 BitmapUsed by:441
Symbol 441 GraphicUses:440Used by:458 554
Symbol 442 BitmapUsed by:443
Symbol 443 GraphicUses:442Used by:444
Symbol 444 MovieClipUses:443Used by:458 473 616
Symbol 445 GraphicUses:48Used by:446
Symbol 446 MovieClipUses:445Used by:447 616
Symbol 447 MovieClip {perfecthoopz_fla.shot_143}Uses:446 437 363Used by:458
Symbol 448 EditableTextUses:1Used by:458
Symbol 449 EditableTextUses:1Used by:458
Symbol 450 EditableTextUses:1Used by:451 452
Symbol 451 MovieClip {perfecthoopz_fla.text_146}Uses:450Used by:452
Symbol 452 ButtonUses:451 16 450Used by:458
Symbol 453 EditableTextUses:1Used by:454 455
Symbol 454 MovieClip {perfecthoopz_fla.text_148}Uses:453Used by:455
Symbol 455 ButtonUses:454 453Used by:458
Symbol 456 EditableTextUses:1Used by:458
Symbol 457 EditableTextUses:1Used by:458
Symbol 458 MovieClip {uiHeader}Uses:441 39 444 447 45 351 448 449 373 452 455 456 457Used by:475
Symbol 459 EditableTextUses:1Used by:473
Symbol 460 GraphicUsed by:473
Symbol 461 EditableTextUses:1Used by:473
Symbol 462 GraphicUsed by:473
Symbol 463 EditableTextUses:1Used by:473
Symbol 464 GraphicUsed by:473
Symbol 465 EditableTextUses:1Used by:473
Symbol 466 GraphicUsed by:473
Symbol 467 EditableTextUses:1Used by:473
Symbol 468 GraphicUsed by:473
Symbol 469 EditableTextUses:1Used by:473
Symbol 470 EditableTextUses:1Used by:473
Symbol 471 GraphicUses:48Used by:473
Symbol 472 EditableTextUses:1Used by:473
Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150}Uses:459 460 461 462 463 464 465 466 467 468 469 351 470 444 471 472Used by:474
Symbol 474 MovieClip {perfecthoopz_fla.uiNotice_149}Uses:473Used by:475
Symbol 475 MovieClip {GameInterface}Uses:365 380 391 398 439 458 474Used by:481
Symbol 476 BitmapUsed by:477
Symbol 477 GraphicUses:476Used by:480
Symbol 478 EditableTextUses:1Used by:480
Symbol 479 EditableTextUses:1Used by:480
Symbol 480 MovieClip {perfecthoopz_fla.soundcontrol_151}Uses:477 38 478 479Used by:481 554 584
Symbol 481 MovieClip {perfecthoopz_fla.gamecontainer_109}Uses:340 475 480Used by:647
Symbol 482 MovieClip {AdMidRollA}Uses:17Used by:554
Symbol 483 GraphicUsed by:487 491
Symbol 484 BitmapUsed by:485
Symbol 485 GraphicUses:484Used by:486
Symbol 486 MovieClipUses:485Used by:487 547
Symbol 487 MovieClipUses:39 483 486Used by:542
Symbol 488 EditableTextUses:1Used by:542
Symbol 489 EditableTextUses:1Used by:542
Symbol 490 EditableTextUses:1Used by:491
Symbol 491 MovieClip {perfecthoopz_fla.defaultA_170}Uses:39 483 490Used by:542
Symbol 492 BitmapUsed by:493
Symbol 493 GraphicUses:492Used by:542
Symbol 494 BitmapUsed by:495
Symbol 495 GraphicUses:494Used by:542
Symbol 496 BitmapUsed by:497
Symbol 497 GraphicUses:496Used by:542
Symbol 498 BitmapUsed by:499
Symbol 499 GraphicUses:498Used by:542
Symbol 500 BitmapUsed by:501
Symbol 501 GraphicUses:500Used by:542
Symbol 502 BitmapUsed by:503
Symbol 503 GraphicUses:502Used by:542
Symbol 504 BitmapUsed by:505
Symbol 505 GraphicUses:504Used by:542
Symbol 506 BitmapUsed by:507
Symbol 507 GraphicUses:506Used by:542
Symbol 508 BitmapUsed by:509
Symbol 509 GraphicUses:508Used by:542
Symbol 510 BitmapUsed by:511
Symbol 511 GraphicUses:510Used by:542
Symbol 512 BitmapUsed by:513
Symbol 513 GraphicUses:512Used by:542
Symbol 514 BitmapUsed by:515
Symbol 515 GraphicUses:514Used by:542
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:542
Symbol 518 BitmapUsed by:519
Symbol 519 GraphicUses:518Used by:542
Symbol 520 BitmapUsed by:521
Symbol 521 GraphicUses:520Used by:542
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:522Used by:542
Symbol 524 BitmapUsed by:525
Symbol 525 GraphicUses:524Used by:542
Symbol 526 BitmapUsed by:527
Symbol 527 GraphicUses:526Used by:542
Symbol 528 BitmapUsed by:529
Symbol 529 GraphicUses:528Used by:542
Symbol 530 BitmapUsed by:531
Symbol 531 GraphicUses:530Used by:542
Symbol 532 BitmapUsed by:533
Symbol 533 GraphicUses:532Used by:542
Symbol 534 BitmapUsed by:535
Symbol 535 GraphicUses:534Used by:542
Symbol 536 BitmapUsed by:537
Symbol 537 GraphicUses:536Used by:542
Symbol 538 BitmapUsed by:539
Symbol 539 GraphicUses:538Used by:542
Symbol 540 BitmapUsed by:541
Symbol 541 GraphicUses:540Used by:542
Symbol 542 MovieClip {perfecthoopz_fla.uiLevelPreview_167}Uses:431 487 488 489 491 493 495 497 499 501 503 505 507 509 511 513 515 517 519 521 523 525 527 529 531 533 535 537 539 541Used by:554
Symbol 543 FontUsed by:544
Symbol 544 EditableTextUses:543Used by:547
Symbol 545 GraphicUsed by:546
Symbol 546 ButtonUses:545Used by:547
Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}Uses:332 486 544 546Used by:554
Symbol 548 EditableTextUses:1Used by:554
Symbol 549 EditableTextUses:1Used by:554
Symbol 550 EditableTextUses:1Used by:554
Symbol 551 EditableTextUses:1Used by:552 553
Symbol 552 MovieClip {perfecthoopz_fla.text_174}Uses:551Used by:553
Symbol 553 ButtonUses:552 551Used by:554 621 628 637 644
Symbol 554 MovieClip {uiLevelSelect}Uses:39 441 482 542 547 548 549 396 550 553 480Used by:647
Symbol 555 MovieClip {Demo}Uses:118 125 123 130 131 193Used by:647
Symbol 556 MovieClip {perfecthoopz_fla.demoshade_176}Uses:39Used by:647
Symbol 557 BitmapUsed by:558
Symbol 558 GraphicUses:557Used by:559
Symbol 559 MovieClipUses:558Used by:584
Symbol 560 EditableTextUses:1Used by:561 562
Symbol 561 MovieClip {perfecthoopz_fla.text_180}Uses:560Used by:562
Symbol 562 ButtonUses:561 560Used by:584
Symbol 563 EditableTextUses:1Used by:564 565
Symbol 564 MovieClip {perfecthoopz_fla.text_182}Uses:563Used by:565
Symbol 565 ButtonUses:564 563Used by:584
Symbol 566 EditableTextUses:1Used by:567 570
Symbol 567 MovieClip {perfecthoopz_fla.text_184}Uses:566Used by:570
Symbol 568 EditableTextUses:1Used by:569 570
Symbol 569 MovieClip {perfecthoopz_fla.text_185}Uses:568Used by:570
Symbol 570 ButtonUses:567 569 16 566 568Used by:584
Symbol 571 EditableTextUses:1Used by:572 575
Symbol 572 MovieClip {perfecthoopz_fla.text_187}Uses:571Used by:575
Symbol 573 EditableTextUses:1Used by:574 575
Symbol 574 MovieClip {perfecthoopz_fla.text_188}Uses:573Used by:575
Symbol 575 ButtonUses:572 574 16 571 573Used by:584
Symbol 576 BitmapUsed by:577
Symbol 577 GraphicUses:576Used by:578 579
Symbol 578 MovieClipUses:577Used by:579
Symbol 579 ButtonUses:578 577Used by:584
Symbol 580 BitmapUsed by:581
Symbol 581 GraphicUses:580Used by:582 583
Symbol 582 MovieClipUses:581Used by:583
Symbol 583 ButtonUses:582 581Used by:584
Symbol 584 MovieClip {perfecthoopz_fla.menu_177}Uses:559 332 45 562 565 570 575 480 579 583 62 86Used by:647
Symbol 585 EditableTextUses:1Used by:608
Symbol 586 EditableTextUses:1Used by:608
Symbol 587 EditableTextUses:1Used by:588 589
Symbol 588 MovieClip {perfecthoopz_fla.text_195}Uses:587Used by:589
Symbol 589 ButtonUses:588 587Used by:608 616
Symbol 590 EditableTextUses:1Used by:608
Symbol 591 EditableTextUses:1Used by:608
Symbol 592 EditableTextUses:1Used by:608
Symbol 593 EditableTextUses:1Used by:608
Symbol 594 BitmapUsed by:595
Symbol 595 GraphicUses:594Used by:608
Symbol 596 EditableTextUses:1Used by:608
Symbol 597 EditableTextUses:1Used by:608
Symbol 598 MovieClip {perfecthoopz_fla.uiHelpIndicator_197}Uses:127 129Used by:607
Symbol 599 GraphicUses:48Used by:600
Symbol 600 MovieClipUses:599Used by:607
Symbol 601 BitmapUsed by:602
Symbol 602 GraphicUses:601Used by:603
Symbol 603 MovieClipUses:602Used by:607
Symbol 604 BitmapUsed by:605
Symbol 605 GraphicUses:604Used by:606
Symbol 606 MovieClipUses:605Used by:607
Symbol 607 MovieClip {perfecthoopz_fla.howtosimulation_196}Uses:123 598 600 603 606Used by:608
Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193}Uses:217 39 585 586 589 590 591 592 593 595 596 597 607Used by:647
Symbol 609 GraphicUsed by:616 629
Symbol 610 EditableTextUses:1Used by:616
Symbol 611 EditableTextUses:1Used by:616
Symbol 612 EditableTextUses:1Used by:616
Symbol 613 EditableTextUses:1Used by:616
Symbol 614 EditableTextUses:1Used by:616
Symbol 615 EditableTextUses:1Used by:616
Symbol 616 MovieClip {perfecthoopz_fla.uiKingHelp_201}Uses:217 39 609 45 610 589 611 612 613 614 615 351 444 446Used by:647
Symbol 617 MovieClip {AdMidRollB}Uses:17Used by:629
Symbol 618 EditableTextUses:1Used by:629
Symbol 619 EditableTextUses:1Used by:629
Symbol 620 EditableTextUses:1Used by:621
Symbol 621 MovieClip {perfecthoopz_fla.KingScoreMochi_204}Uses:553 620Used by:629
Symbol 622 EditableTextUses:1Used by:628
Symbol 623 EditableTextUses:1Used by:628
Symbol 624 EditableTextUses:1Used by:628
Symbol 625 EditableTextUses:1Used by:628
Symbol 626 EditableTextUses:1Used by:628
Symbol 627 EditableTextUses:1Used by:628
Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205}Uses:553 622 623 624 625 626 627Used by:629
Symbol 629 MovieClip {perfecthoopz_fla.uiKingScore_202}Uses:217 39 609 617 45 618 619 373 370 621 628Used by:647
Symbol 630 GraphicUsed by:645
Symbol 631 EditableTextUses:1Used by:645
Symbol 632 EditableTextUses:1Used by:645
Symbol 633 EditableTextUses:1Used by:634 635
Symbol 634 MovieClip {perfecthoopz_fla.playking_208}Uses:45 633Used by:635
Symbol 635 ButtonUses:634 44 633Used by:645
Symbol 636 EditableTextUses:1Used by:637
Symbol 637 MovieClip {perfecthoopz_fla.FreeScoreMochi_209}Uses:553 636Used by:645
Symbol 638 EditableTextUses:1Used by:644
Symbol 639 EditableTextUses:1Used by:644
Symbol 640 EditableTextUses:1Used by:644
Symbol 641 EditableTextUses:1Used by:644
Symbol 642 EditableTextUses:1Used by:644
Symbol 643 EditableTextUses:1Used by:644
Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210}Uses:553 638 639 640 641 642 643Used by:645
Symbol 645 MovieClip {perfecthoopz_fla.uiFreeScore_206}Uses:217 39 630 332 631 632 396 635 637 644Used by:647
Symbol 646 MovieClip {perfecthoopz_fla.loading_211}Used by:647
Symbol 647 MovieClip {perfecthoopz_fla.gamemenu_106}Uses:338 481 39 554 47 555 556 584 608 616 629 645 646Used by:Timeline

Instance Names

"crown_mc"Symbol 47 MovieClip {perfecthoopz_fla.menubackground_4} Frame 1Symbol 45 MovieClip
"mode_txt"Symbol 47 MovieClip {perfecthoopz_fla.menubackground_4} Frame 1Symbol 46 EditableText
"label_txt"Symbol 97 MovieClip {perfecthoopz_fla.text_19} Frame 1Symbol 96 EditableText
"dev_btn"Symbol 100 MovieClip {loader} Frame 1Symbol 62 Button
"sponsor_btn"Symbol 100 MovieClip {loader} Frame 1Symbol 86 Button
"bar_mc"Symbol 100 MovieClip {loader} Frame 1Symbol 91 MovieClip {perfecthoopz_fla.bar_13}
"pct_txt"Symbol 100 MovieClip {loader} Frame 1Symbol 93 EditableText
"kb_txt"Symbol 100 MovieClip {loader} Frame 1Symbol 94 EditableText
"play_btn"Symbol 100 MovieClip {loader} Frame 1Symbol 98 Button
"trail_mc"Symbol 130 MovieClip {perfecthoopz_fla.uiIndicator_30} Frame 1Symbol 127 MovieClip
"arrow1"Symbol 130 MovieClip {perfecthoopz_fla.uiIndicator_30} Frame 1Symbol 129 MovieClip
"arrow2"Symbol 130 MovieClip {perfecthoopz_fla.uiIndicator_30} Frame 1Symbol 129 MovieClip
"arrow3"Symbol 130 MovieClip {perfecthoopz_fla.uiIndicator_30} Frame 1Symbol 129 MovieClip
"Rim"Symbol 139 MovieClip {BasketL} Frame 1Symbol 134 MovieClip
"fx_support_1_105"Symbol 139 MovieClip {BasketL} Frame 1Symbol 135 MovieClip {RimSupport}
"fx_box01_6_10"Symbol 148 MovieClip {level24} Frame 2Symbol 118 MovieClip {BeamBoxA}
"Rim"Symbol 193 MovieClip {BasketR} Frame 1Symbol 134 MovieClip
"fx_support_1_205"Symbol 193 MovieClip {BasketR} Frame 1Symbol 135 MovieClip {RimSupport}
"fx_box01_6_10"Symbol 224 MovieClip {level12} Frame 2Symbol 118 MovieClip {BeamBoxA}
"fx_floor01_10_10"Symbol 229 MovieClip {level10} Frame 2Symbol 220 MovieClip {sideH}
"fx_floor02_10_10"Symbol 229 MovieClip {level10} Frame 2Symbol 220 MovieClip {sideH}
"fx_box01_2_10"Symbol 236 MovieClip {level09} Frame 2Symbol 155 MovieClip {WoodBox1}
"fx_floor01_8_105"Symbol 237 MovieClip {level08} Frame 2Symbol 204 MovieClip {floorC}
"fx_floor02_8_105"Symbol 237 MovieClip {level08} Frame 2Symbol 204 MovieClip {floorC}
"fx_floor02_15_10"Symbol 238 MovieClip {level07} Frame 2Symbol 158 MovieClip {sideG}
"fx_floor01_15_10"Symbol 238 MovieClip {level07} Frame 2Symbol 158 MovieClip {sideG}
"fx_floor01_15_10"Symbol 240 MovieClip {level05} Frame 2Symbol 204 MovieClip {floorC}
"fx_floor02_15_10"Symbol 240 MovieClip {level05} Frame 2Symbol 204 MovieClip {floorC}
"fx_floor01_15_10"Symbol 244 MovieClip {level04} Frame 2Symbol 147 MovieClip {sideJ}
"fx_floor02_15_10"Symbol 244 MovieClip {level04} Frame 2Symbol 147 MovieClip {sideJ}
"fx_floor01_15_0"Symbol 245 MovieClip {level03} Frame 2Symbol 158 MovieClip {sideG}
"fx_floor02_15_0"Symbol 245 MovieClip {level03} Frame 2Symbol 158 MovieClip {sideG}
"fx_floor03_15_0"Symbol 245 MovieClip {level03} Frame 2Symbol 158 MovieClip {sideG}
"fx_floor04_15_0"Symbol 245 MovieClip {level03} Frame 2Symbol 158 MovieClip {sideG}
"fx_floor05_15_0"Symbol 245 MovieClip {level03} Frame 2Symbol 158 MovieClip {sideG}
"fx_floor01_15_10"Symbol 246 MovieClip {level02} Frame 2Symbol 204 MovieClip {floorC}
"fx_floor02_15_10"Symbol 246 MovieClip {level02} Frame 2Symbol 204 MovieClip {floorC}
"fx_floor01_15_0"Symbol 247 MovieClip {level01} Frame 2Symbol 227 MovieClip {sideE}
"fx_floor02_15_0"Symbol 247 MovieClip {level01} Frame 2Symbol 227 MovieClip {sideE}
"fx_floor03_15_0"Symbol 247 MovieClip {level01} Frame 2Symbol 227 MovieClip {sideE}
"fx_floor04_15_0"Symbol 247 MovieClip {level01} Frame 2Symbol 227 MovieClip {sideE}
"fx_floor05_15_0"Symbol 247 MovieClip {level01} Frame 2Symbol 227 MovieClip {sideE}
"exp"Symbol 267 MovieClip {perfecthoopz_fla.mb_intro_98} Frame 45Symbol 265 MovieClip {perfecthoopz_fla.Symbol242_100}
"splash_btn"Symbol 269 MovieClip {perfecthoopz_fla.splashsponsor_96} Frame 1Symbol 268 Button
"splash_btn"Symbol 334 MovieClip {perfecthoopz_fla.defaultsplashqigames_103} Frame 1Symbol 333 Button
"default_mc"Symbol 335 MovieClip {perfecthoopz_fla.splashqigames_102} Frame 1Symbol 334 MovieClip {perfecthoopz_fla.defaultsplashqigames_103}
"label_txt"Symbol 347 MovieClip {perfecthoopz_fla.text_117} Frame 1Symbol 346 EditableText
"caption_txt"Symbol 364 MovieClip {perfecthoopz_fla.kinglives_114} Frame 1Symbol 344 EditableText
"label1_txt"Symbol 364 MovieClip {perfecthoopz_fla.kinglives_114} Frame 1Symbol 345 EditableText
"continue_btn"Symbol 364 MovieClip {perfecthoopz_fla.kinglives_114} Frame 1Symbol 348 Button
"lives_txt"Symbol 364 MovieClip {perfecthoopz_fla.kinglives_114} Frame 1Symbol 352 EditableText
"label2_txt"Symbol 364 MovieClip {perfecthoopz_fla.kinglives_114} Frame 1Symbol 353 EditableText
"panel"Symbol 365 MovieClip {perfecthoopz_fla.uiKingLives_113} Frame 1Symbol 364 MovieClip {perfecthoopz_fla.kinglives_114}
"label_txt"Symbol 369 MovieClip {perfecthoopz_fla.text_123} Frame 1Symbol 368 EditableText
"label_txt"Symbol 372 MovieClip {perfecthoopz_fla.text_125} Frame 1Symbol 371 EditableText
"label_txt"Symbol 375 MovieClip {perfecthoopz_fla.text_127} Frame 1Symbol 374 EditableText
"caption_txt"Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121} Frame 1Symbol 366 EditableText
"label1_txt"Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121} Frame 1Symbol 367 EditableText
"tryagain_btn"Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121} Frame 1Symbol 370 Button
"quit_btn"Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121} Frame 1Symbol 373 Button
"submit_btn"Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121} Frame 1Symbol 376 Button
"label2_txt"Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121} Frame 1Symbol 377 EditableText
"score_txt"Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121} Frame 1Symbol 378 EditableText
"panel"Symbol 380 MovieClip {perfecthoopz_fla.uiKingFailure_120} Frame 1Symbol 379 MovieClip {perfecthoopz_fla.kingfailure_121}
"caption_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 381 EditableText
"label1_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 382 EditableText
"label3_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 383 EditableText
"label2_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 384 EditableText
"qty1_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 385 EditableText
"qty2_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 386 EditableText
"score1_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 387 EditableText
"score2_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 388 EditableText
"score3_txt"Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129} Frame 1Symbol 389 EditableText
"panel"Symbol 391 MovieClip {perfecthoopz_fla.uiKingBonus_128} Frame 1Symbol 390 MovieClip {perfecthoopz_fla.kingbonus_129}
"label_txt"Symbol 395 MovieClip {perfecthoopz_fla.text_133} Frame 1Symbol 394 EditableText
"caption_txt"Symbol 397 MovieClip {perfecthoopz_fla.failure_131} Frame 1Symbol 392 EditableText
"label1_txt"Symbol 397 MovieClip {perfecthoopz_fla.failure_131} Frame 1Symbol 393 EditableText
"tryagain_btn"Symbol 397 MovieClip {perfecthoopz_fla.failure_131} Frame 1Symbol 370 Button
"back_btn"Symbol 397 MovieClip {perfecthoopz_fla.failure_131} Frame 1Symbol 396 Button
"continue_btn"Symbol 397 MovieClip {perfecthoopz_fla.failure_131} Frame 1Symbol 348 Button
"panel"Symbol 398 MovieClip {perfecthoopz_fla.uiFailure_130} Frame 1Symbol 397 MovieClip {perfecthoopz_fla.failure_131}
"label_txt"Symbol 406 MovieClip {perfecthoopz_fla.text_137} Frame 1Symbol 405 EditableText
"label_txt"Symbol 423 MovieClip {perfecthoopz_fla.newbest_138} Frame 1Symbol 422 EditableText
"caption_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 399 EditableText
"label1_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 400 EditableText
"label2_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 401 EditableText
"label4_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 402 EditableText
"label5_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 403 EditableText
"label6_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 404 EditableText
"next_btn"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 407 Button
"tryagain_btn"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 370 Button
"back_btn"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 396 Button
"qty1_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 408 EditableText
"qty2_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 409 EditableText
"qty4_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 410 EditableText
"score1_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 411 EditableText
"score2_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 412 EditableText
"score4_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 413 EditableText
"label3_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 414 EditableText
"qty3_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 415 EditableText
"score3_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 416 EditableText
"score5_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 417 EditableText
"score6_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 418 EditableText
"label7_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 419 EditableText
"submit_btn"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 376 Button
"score7_txt"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 420 EditableText
"newbest_mc"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 423 MovieClip {perfecthoopz_fla.newbest_138}
"medal_mc"Symbol 438 MovieClip {perfecthoopz_fla.success_135} Frame 1Symbol 431 MovieClip {perfecthoopz_fla.medal_139}
"panel"Symbol 439 MovieClip {perfecthoopz_fla.uiSuccess_134} Frame 1Symbol 438 MovieClip {perfecthoopz_fla.success_135}
"label_txt"Symbol 451 MovieClip {perfecthoopz_fla.text_146} Frame 1Symbol 450 EditableText
"label_txt"Symbol 454 MovieClip {perfecthoopz_fla.text_148} Frame 1Symbol 453 EditableText
"pass_mc"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 444 MovieClip
"shot1"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 447 MovieClip {perfecthoopz_fla.shot_143}
"shot2"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 447 MovieClip {perfecthoopz_fla.shot_143}
"shot3"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 447 MovieClip {perfecthoopz_fla.shot_143}
"shot4"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 447 MovieClip {perfecthoopz_fla.shot_143}
"shot5"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 447 MovieClip {perfecthoopz_fla.shot_143}
"crown_mc"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 45 MovieClip
"lives_mc"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 351 MovieClip
"shot6"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 447 MovieClip {perfecthoopz_fla.shot_143}
"level_txt"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 448 EditableText
"time_txt"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 449 EditableText
"quit_btn"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 373 Button
"restart_btn"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 452 Button
"walk_btn"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 455 Button
"lives_txt"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 456 EditableText
"pass_txt"Symbol 458 MovieClip {uiHeader} Frame 1Symbol 457 EditableText
"notice_txt"Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150} Frame 1Symbol 459 EditableText
"notice_txt"Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150} Frame 2Symbol 461 EditableText
"notice_txt"Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150} Frame 3Symbol 463 EditableText
"notice_txt"Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150} Frame 4Symbol 465 EditableText
"notice_txt"Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150} Frame 5Symbol 467 EditableText
"notice_txt"Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150} Frame 6Symbol 469 EditableText
"notice_txt"Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150} Frame 7Symbol 470 EditableText
"notice_txt"Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150} Frame 8Symbol 472 EditableText
"textnotice"Symbol 474 MovieClip {perfecthoopz_fla.uiNotice_149} Frame 1Symbol 473 MovieClip {perfecthoopz_fla.textnotice_150}
"music_chk"Symbol 480 MovieClip {perfecthoopz_fla.soundcontrol_151} Frame 1Symbol 38 MovieClip {fl.controls.CheckBox}
"label1_txt"Symbol 480 MovieClip {perfecthoopz_fla.soundcontrol_151} Frame 1Symbol 478 EditableText
"label2_txt"Symbol 480 MovieClip {perfecthoopz_fla.soundcontrol_151} Frame 1Symbol 479 EditableText
"sfx_chk"Symbol 480 MovieClip {perfecthoopz_fla.soundcontrol_151} Frame 1Symbol 38 MovieClip {fl.controls.CheckBox}
"label_txt"Symbol 491 MovieClip {perfecthoopz_fla.defaultA_170} Frame 1Symbol 490 EditableText
"medal_mc"Symbol 542 MovieClip {perfecthoopz_fla.uiLevelPreview_167} Frame 1Symbol 431 MovieClip {perfecthoopz_fla.medal_139}
"locked_mc"Symbol 542 MovieClip {perfecthoopz_fla.uiLevelPreview_167} Frame 1Symbol 487 MovieClip
"label_txt"Symbol 542 MovieClip {perfecthoopz_fla.uiLevelPreview_167} Frame 1Symbol 488 EditableText
"score_txt"Symbol 542 MovieClip {perfecthoopz_fla.uiLevelPreview_167} Frame 1Symbol 489 EditableText
"ball_mc"Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171} Frame 1Symbol 332 MovieClip
"lock_mc"Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171} Frame 1Symbol 486 MovieClip
"level_txt"Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171} Frame 1Symbol 544 EditableText
"ball_btn"Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171} Frame 1Symbol 546 Button
"label_txt"Symbol 552 MovieClip {perfecthoopz_fla.text_174} Frame 1Symbol 551 EditableText
"level06"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level07"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level08"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level09"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level10"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level01"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level02"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level03"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level04"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level05"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level16"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level17"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level18"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level19"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level20"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level11"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level12"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level13"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level14"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level15"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level26"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level27"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level28"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level29"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level30"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level21"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level22"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level23"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level24"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"level25"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 547 MovieClip {perfecthoopz_fla.balllevel_171}
"caption_txt"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 548 EditableText
"label1_txt"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 549 EditableText
"back_btn"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 396 Button
"score_txt"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 550 EditableText
"submit_btn"Symbol 554 MovieClip {uiLevelSelect} Frame 1Symbol 553 Button
"label_txt"Symbol 561 MovieClip {perfecthoopz_fla.text_180} Frame 1Symbol 560 EditableText
"label_txt"Symbol 564 MovieClip {perfecthoopz_fla.text_182} Frame 1Symbol 563 EditableText
"label_txt"Symbol 567 MovieClip {perfecthoopz_fla.text_184} Frame 1Symbol 566 EditableText
"label_txt"Symbol 569 MovieClip {perfecthoopz_fla.text_185} Frame 1Symbol 568 EditableText
"label_txt"Symbol 572 MovieClip {perfecthoopz_fla.text_187} Frame 1Symbol 571 EditableText
"label_txt"Symbol 574 MovieClip {perfecthoopz_fla.text_188} Frame 1Symbol 573 EditableText
"hand_mc"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 559 MovieClip
"ball_mc"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 332 MovieClip
"crown_mc"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 45 MovieClip
"help_btn"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 562 Button
"more_btn"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 565 Button
"free_btn"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 570 Button
"king_btn"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 575 Button
"iphone_btn"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 579 Button
"facebook_btn"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 583 Button
"dev_btn"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 62 Button
"sponsor_btn"Symbol 584 MovieClip {perfecthoopz_fla.menu_177} Frame 1Symbol 86 Button
"label_txt"Symbol 588 MovieClip {perfecthoopz_fla.text_195} Frame 1Symbol 587 EditableText
"trail_mc"Symbol 598 MovieClip {perfecthoopz_fla.uiHelpIndicator_197} Frame 1Symbol 127 MovieClip
"arrow1"Symbol 598 MovieClip {perfecthoopz_fla.uiHelpIndicator_197} Frame 1Symbol 129 MovieClip
"arrow2"Symbol 598 MovieClip {perfecthoopz_fla.uiHelpIndicator_197} Frame 1Symbol 129 MovieClip
"arrow3"Symbol 598 MovieClip {perfecthoopz_fla.uiHelpIndicator_197} Frame 1Symbol 129 MovieClip
"indicator_mc"Symbol 607 MovieClip {perfecthoopz_fla.howtosimulation_196} Frame 1Symbol 598 MovieClip {perfecthoopz_fla.uiHelpIndicator_197}
"ball_mc"Symbol 607 MovieClip {perfecthoopz_fla.howtosimulation_196} Frame 1Symbol 600 MovieClip
"mouse_mc"Symbol 607 MovieClip {perfecthoopz_fla.howtosimulation_196} Frame 1Symbol 603 MovieClip
"caption_txt"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 585 EditableText
"label1_txt"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 586 EditableText
"ok_btn"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 589 Button
"label2_txt"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 590 EditableText
"label3_txt"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 591 EditableText
"label4_txt"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 592 EditableText
"label5_txt"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 593 EditableText
"label6_txt"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 596 EditableText
"label7_txt"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 597 EditableText
"simulation_mc"Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193} Frame 1Symbol 607 MovieClip {perfecthoopz_fla.howtosimulation_196}
"caption_txt"Symbol 616 MovieClip {perfecthoopz_fla.uiKingHelp_201} Frame 1Symbol 610 EditableText
"ok_btn"Symbol 616 MovieClip {perfecthoopz_fla.uiKingHelp_201} Frame 1Symbol 589 Button
"label1_txt"Symbol 616 MovieClip {perfecthoopz_fla.uiKingHelp_201} Frame 1Symbol 611 EditableText
"label2_txt"Symbol 616 MovieClip {perfecthoopz_fla.uiKingHelp_201} Frame 1Symbol 612 EditableText
"label4_txt"Symbol 616 MovieClip {perfecthoopz_fla.uiKingHelp_201} Frame 1Symbol 613 EditableText
"label3_txt"Symbol 616 MovieClip {perfecthoopz_fla.uiKingHelp_201} Frame 1Symbol 614 EditableText
"label5_txt"Symbol 616 MovieClip {perfecthoopz_fla.uiKingHelp_201} Frame 1Symbol 615 EditableText
"submit_btn"Symbol 621 MovieClip {perfecthoopz_fla.KingScoreMochi_204} Frame 1Symbol 553 Button
"name_txt"Symbol 621 MovieClip {perfecthoopz_fla.KingScoreMochi_204} Frame 1Symbol 620 EditableText
"submit_btn"Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205} Frame 1Symbol 553 Button
"name_txt"Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205} Frame 1Symbol 622 EditableText
"caption_txt"Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205} Frame 10Symbol 623 EditableText
"caption_txt"Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205} Frame 70Symbol 624 EditableText
"info_txt"Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205} Frame 70Symbol 625 EditableText
"label5_txt"Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205} Frame 80Symbol 626 EditableText
"label6_txt"Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205} Frame 80Symbol 627 EditableText
"ad_mc"Symbol 629 MovieClip {perfecthoopz_fla.uiKingScore_202} Frame 1Symbol 617 MovieClip {AdMidRollB}
"caption_txt"Symbol 629 MovieClip {perfecthoopz_fla.uiKingScore_202} Frame 1Symbol 618 EditableText
"score_txt"Symbol 629 MovieClip {perfecthoopz_fla.uiKingScore_202} Frame 1Symbol 619 EditableText
"back_btn"Symbol 629 MovieClip {perfecthoopz_fla.uiKingScore_202} Frame 1Symbol 373 Button
"tryagain_btn"Symbol 629 MovieClip {perfecthoopz_fla.uiKingScore_202} Frame 1Symbol 370 Button
"mochi_mc"Symbol 629 MovieClip {perfecthoopz_fla.uiKingScore_202} Frame 1Symbol 621 MovieClip {perfecthoopz_fla.KingScoreMochi_204}
"sponsor_mc"Symbol 629 MovieClip {perfecthoopz_fla.uiKingScore_202} Frame 1Symbol 628 MovieClip {perfecthoopz_fla.KingScoreMouseBreaker_205}
"label_txt"Symbol 634 MovieClip {perfecthoopz_fla.playking_208} Frame 1Symbol 633 EditableText
"submit_btn"Symbol 637 MovieClip {perfecthoopz_fla.FreeScoreMochi_209} Frame 1Symbol 553 Button
"name_txt"Symbol 637 MovieClip {perfecthoopz_fla.FreeScoreMochi_209} Frame 1Symbol 636 EditableText
"submit_btn"Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210} Frame 1Symbol 553 Button
"name_txt"Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210} Frame 1Symbol 638 EditableText
"caption_txt"Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210} Frame 10Symbol 639 EditableText
"caption_txt"Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210} Frame 70Symbol 640 EditableText
"info_txt"Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210} Frame 70Symbol 641 EditableText
"label5_txt"Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210} Frame 80Symbol 642 EditableText
"label6_txt"Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210} Frame 80Symbol 643 EditableText
"caption_txt"Symbol 645 MovieClip {perfecthoopz_fla.uiFreeScore_206} Frame 1Symbol 631 EditableText
"score_txt"Symbol 645 MovieClip {perfecthoopz_fla.uiFreeScore_206} Frame 1Symbol 632 EditableText
"back_btn"Symbol 645 MovieClip {perfecthoopz_fla.uiFreeScore_206} Frame 1Symbol 396 Button
"playking_btn"Symbol 645 MovieClip {perfecthoopz_fla.uiFreeScore_206} Frame 1Symbol 635 Button
"mochi_mc"Symbol 645 MovieClip {perfecthoopz_fla.uiFreeScore_206} Frame 1Symbol 637 MovieClip {perfecthoopz_fla.FreeScoreMochi_209}
"sponsor_mc"Symbol 645 MovieClip {perfecthoopz_fla.uiFreeScore_206} Frame 1Symbol 644 MovieClip {perfecthoopz_fla.FreeScoreMouseBreaker_210}
"gamecontainer"Symbol 647 MovieClip {perfecthoopz_fla.gamemenu_106} Frame 1Symbol 481 MovieClip {perfecthoopz_fla.gamecontainer_109}
"help_mc"Symbol 647 MovieClip {perfecthoopz_fla.gamemenu_106} Frame 10Symbol 608 MovieClip {perfecthoopz_fla.uiHowToPlay_193}

Special Tags

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

Labels

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




http://swfchan.com/43/214935/info.shtml
Created: 14/11 -2018 00:44:45 Last modified: 14/11 -2018 00:44:45 Server time: 20/04 -2024 08:25:54