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

<div style="position:absolute;top:-99px;left:-99px;"><img src="https://tools.swfchan.com/stathit.asp?noj=FRM81571314-6DC&rnd=81571314" width="1" height="1"></div>

Brain Test.swf

This is the info page for
Flash #68528

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


Text
Draw Correct Direction to Match Shapes.

None

Left

Down

Up

Right

<p align="left"><font face="Kristen ITC" size="36" color="#ff9900" letterSpacing="0.000000" kerning="1"><b>100 %</b></font></p>

Play

Play

Next

Next

Quit

Quit

678

678

778

767

Test Results

Brain Test Score

Total Brain Score

Correct Answers

Total Questions

+ 2 Secs

- 2 Secs

+

x

-

/

?

Oops, we can't find that user!

<p align="left"></p>

<p align="center"><font face="Tahoma" size="21" color="#b70000" letterSpacing="0.000000" kerning="1"><b>Loading...</b></font></p>

Delete

Delete

Name :

<p align="left"><font face="Tahoma" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Player</font></p>

<p align="center"><font face="Tahoma" size="16" color="#333333" letterSpacing="0.000000" kerning="1"><b>No Game Found</b></font></p>

Save - 1

<p align="center"><font face="Tahoma" size="16" color="#333333" letterSpacing="0.000000" kerning="1"><b>No Game Found</b></font></p>

Save - 3

<p align="center"><font face="Tahoma" size="16" color="#333333" letterSpacing="0.000000" kerning="1"><b>No Game Found</b></font></p>

Save - 2

Choose  Save Slot :

OK

OK

Cancel

Cancel

High Scores

High Scores

Credits

Credits

More Games

More Games

Practice

Practice

<p align="center"><font face="Tahoma" size="23" color="#ff0000" letterSpacing="0.000000" kerning="0"><a href="http://www.shah-soft.com" target = "_blank"><b>Shah-Soft.com</b></a></font></p>

Brain Test

Hint: Drag Mouse
and Draw
this Shape

Draw your
Answer Here!

Solve Math Problems by
drawing answers on the book.

Erase

<p align="center"><font face="Tahoma" size="23" color="#ff0000" letterSpacing="0.000000" kerning="0"><a href="http://www.shah-soft.com" target = "_blank"><b>Shah-Soft.com</b></a></font></p>

YES

YES

NO

NO

Quit

Quit

<p align="center"><font face="Tahoma" size="16" color="#ff0000" letterSpacing="0.000000" kerning="1"><b>0</b></font></p>

Wrong:

<p align="center"><font face="Tahoma" size="16" color="#009900" letterSpacing="0.000000" kerning="1"><b>0</b></font></p>

Correct:

<p align="center"><font face="Tahoma" size="16" color="#000099" letterSpacing="0.000000" kerning="1"><b>0</b></font></p>

Question No:

OFF

OFF

ON

ON

Music
Sound

60

Draw missing Character to
Complete the words.

Erase

Hint: Drag this
sign into
the box

Drop your
Answer Here!

Pick correct Math sign which completes the
equation and Drop it in the Box.

Hint: Click the
box with
highlight

Follow Directions to find the
matching shape.

Level :

0

Total Score :

You have unlocked a new game!

Grade :

Your Brain Score is :

Test Completed

Player Rank

Player Rank

0

Submit Score

Submit Score

Main Menu

Main Menu

0

Advertisement

< Back

< Back

Words 101

Words 101

Analyze 101

Analyze 101

Think 101

Think 101

Math 102

Math 102

Math 101

Math 101

<p align="center"><font face="Tahoma" size="26" color="#ff0000" letterSpacing="0.000000" kerning="0"><a href="http://www.shah-soft.com" target = "_blank"><b>Shah-Soft.com</b></a></font></p>

<p align="center"><font face="Tahoma" size="23" color="#ff3300" letterSpacing="1.000000" kerning="0"><a href="http://www.flashgamelicense.com/view_game.php?game_id=2548" target = "_blank"><b>Add this game to your site NOW!</b></a></font></p>

Game Design & Programming : Saadat Shah
Graphics : Babar Shah, Junaid Miran
Sound/Music : SoundSnap.com , ADG3
Powered By : MouseGesture, Box2D

Brain Test

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.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_radius:Number; public var m_localPosition:b2Vec2; public function b2CircleShape(_arg1:b2ShapeDef){ var _local2:b2CircleDef; m_localPosition = new b2Vec2(); super(_arg1); _local2 = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local6:b2Mat22; 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; _local6 = _arg1.R; _local7 = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); _local8 = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); _local9 = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); _local11 = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; _local12 = (_arg4.p2.x - _arg4.p1.x); _local13 = (_arg4.p2.y - _arg4.p1.y); _local14 = ((_local9 * _local12) + (_local10 * _local13)); _local15 = ((_local12 * _local12) + (_local13 * _local13)); _local16 = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; _local17 = -((_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); } 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 ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = _arg2.R; _local5 = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local6 = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; _local7 = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); _local8 = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((Math.min(_local5, _local7) - m_radius), (Math.min(_local6, _local8) - m_radius)); _arg1.upperBound.Set((Math.max(_local5, _local7) + m_radius), (Math.max(_local6, _local8) + m_radius)); } public function GetRadius():Number{ return (m_radius); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number; var _local3:Number; _local2 = (m_localPosition.x - _arg1.x); _local3 = (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; var _local4:Number; var _local5:Number; _local3 = _arg2.R; _local4 = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_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; var _local4:Number; var _local5:Number; _local3 = _arg1.R; _local4 = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); _local5 = (_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
//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(){ mass = 0; center = new b2Vec2(0, 0); I = 0; super(); } } }//package Box2D.Collision.Shapes
Section 4
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertexCount:int; public var vertices:Array; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ var _local1:int; vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; _local1 = 0; 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 5
//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_vertices:Array; private var s_supportVec:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_coreVertices:Array; public var m_centroid:b2Vec2; 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 _local2:b2PolygonDef; var _local3:int; var _local4:int; var _local5: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; _local2 = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; _local4 = _local3; _local5 = _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++; }; } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ 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 _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:Number; var _local21:Number; _local6 = 0; _local7 = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; _local12 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local13 = ((_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; _local14 = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); _local15 = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local18 = -1; _local19 = 0; while (_local19 < m_vertexCount) { _local8 = (m_vertices[_local19].x - _local12); _local9 = (m_vertices[_local19].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 _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; 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; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = (1 / 3); _local9 = 0; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[(_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 Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:int; var _local8:Number; var _local9:int; var _local10:b2Vec2; var _local11:Number; _local4 = _arg1.R; _local5 = ((_arg2 * _local4.col1.x) + (_arg3 * _local4.col1.y)); _local6 = ((_arg2 * _local4.col2.x) + (_arg3 * _local4.col2.y)); _local7 = 0; _local8 = ((m_coreVertices[0].x * _local5) + (m_coreVertices[0].y * _local6)); _local9 = 1; while (_local9 < m_vertexCount) { _local11 = ((m_coreVertices[_local9].x * _local5) + (m_coreVertices[_local9].y * _local6)); if (_local11 > _local8){ _local7 = _local9; _local8 = _local11; }; _local9++; }; _local4 = _arg1.R; _local10 = m_coreVertices[_local7]; s_supportVec.x = (_arg1.position.x + ((_local4.col1.x * _local10.x) + (_local4.col2.x * _local10.y))); s_supportVec.y = (_arg1.position.y + ((_local4.col1.y * _local10.x) + (_local4.col2.y * _local10.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB; var _local5:b2AABB; _local4 = s_sweptAABB1; _local5 = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(Math.min(_local4.lowerBound.x, _local5.lowerBound.x), Math.min(_local4.lowerBound.y, _local5.lowerBound.y)); _arg1.upperBound.Set(Math.max(_local4.upperBound.x, _local5.upperBound.x), Math.max(_local4.upperBound.y, _local5.upperBound.y)); } public function GetVertices():Array{ return (m_vertices); } 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 UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:int; var _local3:Number; var _local4:Number; m_sweepRadius = 0; _local2 = 0; while (_local2 < m_vertexCount) { _local3 = (m_coreVertices[_local2].x - _arg1.x); _local4 = (m_coreVertices[_local2].y - _arg1.y); _local3 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); m_sweepRadius = Math.max(m_sweepRadius, _local3); _local2++; }; } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22; var _local6:b2Mat22; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local5 = 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(); _local6 = _local5; _local4 = m_obb.extents; _local7 = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); _local8 = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; _local9 = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); _local10 = (_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 TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; var _local9:Number; _local3 = _arg1.R; _local4 = (_arg2.x - _arg1.position.x); _local5 = (_arg2.y - _arg1.position.y); _local6 = ((_local4 * _local3.col1.x) + (_local5 * _local3.col1.y)); _local7 = ((_local4 * _local3.col2.x) + (_local5 * _local3.col2.y)); _local8 = 0; while (_local8 < m_vertexCount) { _local4 = (_local6 - m_vertices[_local8].x); _local5 = (_local7 - m_vertices[_local8].y); _local9 = ((m_normals[_local8].x * _local4) + (m_normals[_local8].y * _local5)); if (_local9 > 0){ return (false); }; _local8++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; 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(); _local4 = 0; _local5 = 0; _local6 = 0; _local7 = (1 / 3); _local8 = 0; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[(_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 _local5:Array; var _local6:Number; 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; _local5 = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; _local6 = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[(_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)); _local13 = Math.min(_local13, _local21); _local14 = Math.min(_local14, _local22); _local15 = Math.max(_local15, _local21); _local16 = Math.max(_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 6
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_userData; public var m_density:Number; public var m_proxyId:uint; public var m_friction:Number; public var m_isSensor:Boolean; public var m_groupIndex:int; public var m_categoryBits:uint; public var m_restitution:Number; public var m_body:b2Body; public var m_maskBits:uint; 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_categoryBits = _arg1.categoryBits; m_maskBits = _arg1.maskBits; m_groupIndex = _arg1.groupIndex; m_isSensor = _arg1.isSensor; } 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 TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function IsSensor():Boolean{ return (m_isSensor); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ var _local4:b2AABB; if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; _local4 = 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 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; var _local4:Boolean; _local3 = s_proxyAABB; ComputeAABB(_local3, _arg2); _local4 = _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 function ResetProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB; var _local4:Boolean; if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); }; _local3 = s_resetAABB; ComputeAABB(_local3, _arg2); _local4 = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } 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 7
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var groupIndex:int; public var categoryBits:int; public var density:Number; public var type:int; public var restitution:Number; public var maskBits:int; public var userData;// = null public var friction:Number; public var isSensor:Boolean; public function b2ShapeDef(){ userData = null; super(); type = b2Shape.e_unknownShape; userData = null; friction = 0.2; restitution = 0; density = 0; categoryBits = 1; maskBits = 0xFFFF; groupIndex = 0; isSensor = false; } } }//package Box2D.Collision.Shapes
Section 8
//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; var _local2:Number; var _local3:Boolean; _local1 = (upperBound.x - lowerBound.x); _local2 = (upperBound.y - lowerBound.y); _local3 = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 9
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var proxyId:uint; public var stabbingCount:uint; public var value:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = value; _local3 = proxyId; _local4 = 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 10
//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 11
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_bounds:Array; 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 _local4:Number; 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++; }; _local4 = (_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[(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 _local4:Array; var _local5:Array; var _local6:uint; var _local7:uint; var _local8:Array; var _local9:Array; var _local10:int; var _local11:int; var _local12:b2Proxy; _local4 = new Array(); _local5 = new Array(); ComputeBounds(_local4, _local5, _arg1); _local8 = [_local6]; _local9 = [_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); _local10 = 0; _local11 = 0; 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{ if ((((_arg1 == b2Pair.b2_nullProxy)) || ((m_proxyPool[_arg1].IsValid() == false)))){ return (null); }; return (m_proxyPool[_arg1]); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { m_proxyPool[_local1].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 _local8:uint; var _local9:uint; var _local10:uint; var _local11:int; var _local12:int; var _local13:b2Proxy; _local8 = BinarySearch(_arg5, _arg6, _arg3); _local9 = BinarySearch(_arg5, _arg6, _arg4); _local10 = _local8; while (_local10 < _local9) { if (_arg5[_local10].IsLower()){ IncrementOverlapCount(_arg5[_local10].proxyId); }; _local10++; }; if (_local8 > 0){ _local11 = (_local8 - 1); _local12 = _arg5[_local11].stabbingCount; while (_local12) { if (_arg5[_local11].IsLower()){ _local13 = m_proxyPool[_arg5[_local11].proxyId]; if (_local8 <= _local13.upperBounds[_arg7]){ IncrementOverlapCount(_arg5[_local11].proxyId); _local12--; }; }; _local11--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; if (_local4[_arg1.lowerBounds[_local3]].value > _local4[_arg2.upperBounds[_local3]].value){ return (false); }; if (_local4[_arg1.upperBounds[_local3]].value < _local4[_arg2.lowerBounds[_local3]].value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = _arg3.lowerBound.x; _local5 = _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); _local6 = _arg3.upperBound.x; _local7 = _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 _local5:uint; var _local6:uint; var _local7:Array; var _local8:Array; var _local9:int; var _local10:int; 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:int; var _local22:b2Proxy; _local5 = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; _local6 = (2 * m_proxyCount); _local7 = new Array(); _local8 = new Array(); ComputeBounds(_local7, _local8, _arg1); _local9 = 0; 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[(_local13 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local21 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[(_local21 + _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[(_local12 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local21 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[(_local21 + _local17)]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local11[_local12].value = _local7[_local9]; _local11[_local12].proxyId = _local5; _local11[_local13].value = _local8[_local9]; _local11[_local13].proxyId = _local5; _local11[_local12].stabbingCount = ((_local12 == 0)) ? 0 : _local11[(_local12 - 1)].stabbingCount; _local11[_local13].stabbingCount = _local11[(_local13 - 1)].stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local11[_local3].stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local22 = m_proxyPool[_local11[_local3].proxyId]; if (_local11[_local3].IsLower()){ _local22.lowerBounds[_local9] = _local3; } else { _local22.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; _local10 = 0; 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:b2Proxy; var _local3:int; var _local4:int; var _local5:int; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:Array; var _local12:int; var _local13:int; var _local14:b2Bound; var _local15:b2Bound; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; _local2 = m_proxyPool[_arg1]; _local3 = (2 * m_proxyCount); _local4 = 0; while (_local4 < 2) { _local6 = m_bounds[_local4]; _local7 = _local2.lowerBounds[_local4]; _local8 = _local2.upperBounds[_local4]; _local9 = _local6[_local7].value; _local10 = _local6[_local8].value; _local11 = new Array(); _local13 = ((_local8 - _local7) - 1); _local12 = 0; while (_local12 < _local13) { _local11[_local12] = new b2Bound(); _local14 = _local11[_local12]; _local15 = _local6[((_local7 + 1) + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = _local11.length; _local16 = _local7; _local12 = 0; while (_local12 < _local13) { _local15 = _local11[_local12]; _local14 = _local6[(_local16 + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local11 = new Array(); _local13 = ((_local3 - _local8) - 1); _local12 = 0; while (_local12 < _local13) { _local11[_local12] = new b2Bound(); _local14 = _local11[_local12]; _local15 = _local6[((_local8 + 1) + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = _local11.length; _local16 = (_local8 - 1); _local12 = 0; while (_local12 < _local13) { _local15 = _local11[_local12]; _local14 = _local6[(_local16 + _local12)]; _local14.value = _local15.value; _local14.proxyId = _local15.proxyId; _local14.stabbingCount = _local15.stabbingCount; _local12++; }; _local13 = (_local3 - 2); _local17 = _local7; while (_local17 < _local13) { _local19 = m_proxyPool[_local6[_local17].proxyId]; if (_local6[_local17].IsLower()){ _local19.lowerBounds[_local4] = _local17; } else { _local19.upperBounds[_local4] = _local17; }; _local17++; }; _local13 = (_local8 - 1); _local18 = _local7; while (_local18 < _local13) { _local6[_local18].stabbingCount--; _local18++; }; Query([0], [0], _local9, _local10, _local6, (_local3 - 2), _local4); _local4++; }; _local5 = 0; while (_local5 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local5]); _local5++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local2.userData = null; _local2.overlapCount = b2_invalid; _local2.lowerBounds[0] = b2_invalid; _local2.lowerBounds[1] = b2_invalid; _local2.upperBounds[0] = b2_invalid; _local2.upperBounds[1] = b2_invalid; _local2.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local3:int; var _local4:Array; _local3 = 0; while (_local3 < 2) { _local4 = m_bounds[_local3]; if (_arg1.lowerValues[_local3] > _local4[_arg2.upperBounds[_local3]].value){ return (false); }; if (_arg1.upperValues[_local3] < _local4[_arg2.lowerBounds[_local3]].value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local5:int; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; _local5 = 0; 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; _local2 = 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:uint; var _local4:uint; var _local5:b2Bound; var _local6:b2Bound; var _local7:b2Bound; var _local8:uint; var _local9:b2Proxy; var _local10:uint; var _local11:b2Proxy; var _local12:b2BoundValues; var _local13:b2BoundValues; var _local14:Array; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:int; var _local20:int; var _local21:uint; var _local22:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; _local10 = (2 * m_proxyCount); _local11 = m_proxyPool[_arg1]; _local12 = new b2BoundValues(); ComputeBounds(_local12.lowerValues, _local12.upperValues, _arg2); _local13 = new b2BoundValues(); _local3 = 0; while (_local3 < 2) { _local13.lowerValues[_local3] = m_bounds[_local3][_local11.lowerBounds[_local3]].value; _local13.upperValues[_local3] = m_bounds[_local3][_local11.upperBounds[_local3]].value; _local3++; }; _local3 = 0; while (_local3 < 2) { _local14 = m_bounds[_local3]; _local15 = _local11.lowerBounds[_local3]; _local16 = _local11.upperBounds[_local3]; _local17 = _local12.lowerValues[_local3]; _local18 = _local12.upperValues[_local3]; _local19 = (_local17 - _local14[_local15].value); _local20 = (_local18 - _local14[_local16].value); _local14[_local15].value = _local17; _local14[_local16].value = _local18; if (_local19 < 0){ _local4 = _local15; while ((((_local4 > 0)) && ((_local17 < _local14[(_local4 - 1)].value)))) { _local5 = _local14[_local4]; _local6 = _local14[(_local4 - 1)]; _local21 = _local6.proxyId; _local22 = m_proxyPool[_local6.proxyId]; _local6.stabbingCount++; if (_local6.IsUpper() == true){ if (TestOverlap(_local12, _local22)){ m_pairManager.AddBufferedPair(_arg1, _local21); }; var _local23 = _local22.upperBounds; var _local24 = _local3; var _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount++; } else { _local23 = _local22.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount--; }; _local23 = _local11.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.Swap(_local6); _local4--; }; }; if (_local20 > 0){ _local4 = _local16; while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local18)))) { _local5 = _local14[_local4]; _local7 = _local14[(_local4 + 1)]; _local8 = _local7.proxyId; _local9 = m_proxyPool[_local8]; _local7.stabbingCount++; if (_local7.IsLower() == true){ if (TestOverlap(_local12, _local9)){ m_pairManager.AddBufferedPair(_arg1, _local8); }; _local23 = _local9.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount++; } else { _local23 = _local9.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount--; }; _local23 = _local11.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.Swap(_local7); _local4++; }; }; if (_local19 > 0){ _local4 = _local15; while ((((_local4 < (_local10 - 1))) && ((_local14[(_local4 + 1)].value <= _local17)))) { _local5 = _local14[_local4]; _local7 = _local14[(_local4 + 1)]; _local8 = _local7.proxyId; _local9 = m_proxyPool[_local8]; _local7.stabbingCount--; if (_local7.IsUpper()){ if (TestOverlap(_local13, _local9)){ m_pairManager.RemoveBufferedPair(_arg1, _local8); }; _local23 = _local9.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount--; } else { _local23 = _local9.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.stabbingCount++; }; _local23 = _local11.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.Swap(_local7); _local4++; }; }; if (_local20 < 0){ _local4 = _local16; while ((((_local4 > 0)) && ((_local18 < _local14[(_local4 - 1)].value)))) { _local5 = _local14[_local4]; _local6 = _local14[(_local4 - 1)]; _local21 = _local6.proxyId; _local22 = m_proxyPool[_local21]; _local6.stabbingCount--; if (_local6.IsLower() == true){ if (TestOverlap(_local13, _local22)){ m_pairManager.RemoveBufferedPair(_arg1, _local21); }; _local23 = _local22.lowerBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount--; } else { _local23 = _local22.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] + 1); _local23[_local24] = _local25; _local5.stabbingCount++; }; _local23 = _local11.upperBounds; _local24 = _local3; _local25 = (_local23[_local24] - 1); _local23[_local24] = _local25; _local5.Swap(_local6); _local4--; }; }; _local3++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local4:int; var _local5:int; var _local6:int; _local4 = 0; _local5 = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); if (_arg1[_local6].value > _arg3){ _local5 = (_local6 - 1); } else { if (_arg1[_local6].value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 12
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 13
//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; public static const b2_oldPoint:uint = 4; public static const b2_newPoint:uint = 2; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:int; var _local13:Number; var _local14:int; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local6 = _arg2.R; _local7 = _arg1.m_normals[_arg3]; _local8 = ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y)); _local9 = ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y)); _local6 = _arg5.R; _local10 = ((_local6.col1.x * _local8) + (_local6.col1.y * _local9)); _local11 = ((_local6.col2.x * _local8) + (_local6.col2.y * _local9)); _local12 = 0; _local13 = Number.MAX_VALUE; _local14 = 0; while (_local14 < _arg4.m_vertexCount) { _local7 = _arg4.m_vertices[_local14]; _local20 = ((_local7.x * _local10) + (_local7.y * _local11)); if (_local20 < _local13){ _local13 = _local20; _local12 = _local14; }; _local14++; }; _local7 = _arg1.m_vertices[_arg3]; _local6 = _arg2.R; _local15 = (_arg2.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local16 = (_arg2.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local7 = _arg4.m_vertices[_local12]; _local6 = _arg5.R; _local17 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local18 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local17 = (_local17 - _local15); _local18 = (_local18 - _local16); _local19 = ((_local17 * _local8) + (_local18 * _local9)); return (_local19); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = _arg2.lowerBound; _local4 = _arg1.upperBound; _local5 = (_local3.x - _local4.x); _local6 = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; _local7 = (_local3.x - _local4.x); _local8 = (_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 _local7:b2Mat22; var _local8:b2Vec2; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:int; var _local13:Number; var _local14:int; var _local15:ClipVertex; var _local16:int; var _local17:int; var _local18:Number; _local7 = _arg3.R; _local8 = _arg2.m_normals[_arg4]; _local9 = ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y)); _local10 = ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y)); _local7 = _arg6.R; _local11 = ((_local7.col1.x * _local9) + (_local7.col1.y * _local10)); _local10 = ((_local7.col2.x * _local9) + (_local7.col2.y * _local10)); _local9 = _local11; _local12 = 0; _local13 = Number.MAX_VALUE; _local14 = 0; while (_local14 < _arg5.m_vertexCount) { _local8 = _arg5.m_normals[_local14]; _local18 = ((_local9 * _local8.x) + (_local10 * _local8.y)); if (_local18 < _local13){ _local13 = _local18; _local12 = _local14; }; _local14++; }; _local16 = _local12; _local17 = (((_local16 + 1) < _arg5.m_vertexCount)) ? (_local16 + 1) : 0; _local15 = _arg1[0]; _local8 = _arg5.m_vertices[_local16]; _local7 = _arg6.R; _local15.v.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local15.v.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local15.id.features.referenceFace = _arg4; _local15.id.features.incidentEdge = _local16; _local15.id.features.incidentVertex = 0; _local15 = _arg1[1]; _local8 = _arg5.m_vertices[_local17]; _local7 = _arg6.R; _local15.v.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local15.v.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local15.id.features.referenceFace = _arg4; _local15.id.features.incidentEdge = _local17; _local15.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:int; var _local7:Array; var _local8:Number; var _local9:int; var _local10:Array; var _local11:Number; var _local12:b2PolygonShape; var _local13:b2PolygonShape; var _local14:b2XForm; var _local15:b2XForm; var _local16:int; var _local17:uint; var _local18:Number; var _local19:Number; var _local20:Array; var _local21:int; var _local22:Array; var _local23:b2Vec2; var _local24:b2Vec2; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:b2Vec2; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Array; var _local32:Array; var _local33:int; var _local34:int; var _local35:int; var _local36:Number; var _local37:b2ManifoldPoint; _arg1.pointCount = 0; _local6 = 0; _local7 = [_local6]; _local8 = FindMaxSeparation(_local7, _arg2, _arg3, _arg4, _arg5); _local6 = _local7[0]; if (_local8 > 0){ return; }; _local9 = 0; _local10 = [_local9]; _local11 = FindMaxSeparation(_local10, _arg4, _arg5, _arg2, _arg3); _local9 = _local10[0]; if (_local11 > 0){ return; }; _local14 = new b2XForm(); _local15 = new b2XForm(); _local18 = 0.98; _local19 = 0.001; if (_local11 > ((_local18 * _local8) + _local19)){ _local12 = _arg4; _local13 = _arg2; _local14.Set(_arg5); _local15.Set(_arg3); _local16 = _local9; _local17 = 1; } else { _local12 = _arg2; _local13 = _arg4; _local14.Set(_arg3); _local15.Set(_arg5); _local16 = _local6; _local17 = 0; }; _local20 = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local20, _local12, _local14, _local16, _local13, _local15); _local21 = _local12.m_vertexCount; _local22 = _local12.m_vertices; _local23 = _local22[_local16].Copy(); _local24 = (((_local16 + 1) < _local21)) ? _local22[(_local16 + 1)].Copy() : _local22[0].Copy(); _local25 = b2Math.SubtractVV(_local24, _local23); _local26 = b2Math.b2MulMV(_local14.R, b2Math.SubtractVV(_local24, _local23)); _local26.Normalize(); _local27 = b2Math.b2CrossVF(_local26, 1); _local23 = b2Math.b2MulX(_local14, _local23); _local24 = b2Math.b2MulX(_local14, _local24); _local28 = b2Math.b2Dot(_local27, _local23); _local29 = -(b2Math.b2Dot(_local26, _local23)); _local30 = b2Math.b2Dot(_local26, _local24); _local31 = [new ClipVertex(), new ClipVertex()]; _local32 = [new ClipVertex(), new ClipVertex()]; _local33 = ClipSegmentToLine(_local31, _local20, _local26.Negative(), _local29); if (_local33 < 2){ return; }; _local33 = ClipSegmentToLine(_local32, _local31, _local26, _local30); if (_local33 < 2){ return; }; _arg1.normal = (_local17) ? _local27.Negative() : _local27.Copy(); _local34 = 0; _local35 = 0; while (_local35 < b2Settings.b2_maxManifoldPoints) { _local36 = (b2Math.b2Dot(_local27, _local32[_local35].v) - _local28); if (_local36 <= 0){ _local37 = _arg1.points[_local34]; _local37.separation = _local36; _local37.localPoint1 = b2Math.b2MulXT(_arg3, _local32[_local35].v); _local37.localPoint2 = b2Math.b2MulXT(_arg5, _local32[_local35].v); _local37.id.key = _local32[_local35].id.key; _local37.id.features.flip = _local17; _local34++; }; _local35++; }; _arg1.pointCount = _local34; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:int; var _local14:Number; var _local15:int; var _local16:Number; var _local17:int; var _local18:Number; var _local19:int; var _local20:Number; var _local21:int; var _local22:Number; var _local23:int; var _local24:Number; _local6 = _arg2.m_vertexCount; _local8 = _arg5.R; _local7 = _arg4.m_centroid; _local9 = (_arg5.position.x + ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y))); _local10 = (_arg5.position.y + ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y))); _local8 = _arg3.R; _local7 = _arg2.m_centroid; _local9 = (_local9 - (_arg3.position.x + ((_local8.col1.x * _local7.x) + (_local8.col2.x * _local7.y)))); _local10 = (_local10 - (_arg3.position.y + ((_local8.col1.y * _local7.x) + (_local8.col2.y * _local7.y)))); _local11 = ((_local9 * _arg3.R.col1.x) + (_local10 * _arg3.R.col1.y)); _local12 = ((_local9 * _arg3.R.col2.x) + (_local10 * _arg3.R.col2.y)); _local13 = 0; _local14 = -(Number.MAX_VALUE); _local15 = 0; while (_local15 < _local6) { _local24 = ((_arg2.m_normals[_local15].x * _local11) + (_arg2.m_normals[_local15].y * _local12)); if (_local24 > _local14){ _local14 = _local24; _local13 = _local15; }; _local15++; }; _local16 = EdgeSeparation(_arg2, _arg3, _local13, _arg4, _arg5); if (_local16 > 0){ return (_local16); }; _local17 = (((_local13 - 1) >= 0)) ? (_local13 - 1) : (_local6 - 1); _local18 = EdgeSeparation(_arg2, _arg3, _local17, _arg4, _arg5); if (_local18 > 0){ return (_local18); }; _local19 = (((_local13 + 1) < _local6)) ? (_local13 + 1) : 0; _local20 = EdgeSeparation(_arg2, _arg3, _local19, _arg4, _arg5); if (_local20 > 0){ return (_local20); }; if ((((_local18 > _local16)) && ((_local18 > _local20)))){ _local23 = -1; _local21 = _local17; _local22 = _local18; } else { if (_local20 > _local16){ _local23 = 1; _local21 = _local19; _local22 = _local20; } else { _arg1[0] = _local13; return (_local16); }; }; while (true) { if (_local23 == -1){ _local13 = (((_local21 - 1) >= 0)) ? (_local21 - 1) : (_local6 - 1); } else { _local13 = (((_local21 + 1) < _local6)) ? (_local21 + 1) : 0; }; _local16 = EdgeSeparation(_arg2, _arg3, _local13, _arg4, _arg5); if (_local16 > 0){ return (_local16); }; if (_local16 > _local22){ _local21 = _local13; _local22 = _local16; } else { break; }; }; _arg1[0] = _local21; return (_local22); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:int; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; _local5 = 0; _local6 = _arg2[0].v; _local7 = _arg2[1].v; _local8 = (b2Math.b2Dot(_arg3, _local6) - _arg4); _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); if (_local8 <= 0){ var _temp1 = _local5; _local5 = (_local5 + 1); var _local12 = _temp1; _arg1[_local12] = _arg2[0]; }; if (_local9 <= 0){ var _temp2 = _local5; _local5 = (_local5 + 1); _local12 = _temp2; _arg1[_local12] = _arg2[1]; }; if ((_local8 * _local9) < 0){ _local10 = (_local8 / (_local8 - _local9)); _local11 = _arg1[_local5].v; _local11.x = (_local6.x + (_local10 * (_local7.x - _local6.x))); _local11.y = (_local6.y + (_local10 * (_local7.y - _local6.y))); if (_local8 > 0){ _arg1[_local5].id = _arg2[0].id; } else { _arg1[_local5].id = _arg2[1].id; }; _local5++; }; return (_local5); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; 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:b2ManifoldPoint; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; _local8 = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local10 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local11 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local12 = (_local10 - _local8); _local13 = (_local11 - _local9); _local14 = ((_local12 * _local12) + (_local13 * _local13)); _local15 = (_arg2.m_radius + _arg4.m_radius); if (_local14 > (_local15 * _local15)){ return; }; if (_local14 < Number.MIN_VALUE){ _local16 = -(_local15); _arg1.normal.Set(0, 1); } else { _local22 = Math.sqrt(_local14); _local16 = (_local22 - _local15); _local23 = (1 / _local22); _arg1.normal.x = (_local23 * _local12); _arg1.normal.y = (_local23 * _local13); }; _arg1.pointCount = 1; _local17 = _arg1.points[0]; _local17.id.key = 0; _local17.separation = _local16; _local8 = (_local8 + (_arg2.m_radius * _arg1.normal.x)); _local9 = (_local9 + (_arg2.m_radius * _arg1.normal.y)); _local10 = (_local10 - (_arg4.m_radius * _arg1.normal.x)); _local11 = (_local11 - (_arg4.m_radius * _arg1.normal.y)); _local18 = (0.5 * (_local8 + _local10)); _local19 = (0.5 * (_local9 + _local11)); _local20 = (_local18 - _arg3.position.x); _local21 = (_local19 - _arg3.position.y); _local17.localPoint1.x = ((_local20 * _arg3.R.col1.x) + (_local21 * _arg3.R.col1.y)); _local17.localPoint1.y = ((_local20 * _arg3.R.col2.x) + (_local21 * _arg3.R.col2.y)); _local20 = (_local18 - _arg5.position.x); _local21 = (_local19 - _arg5.position.y); _local17.localPoint2.x = ((_local20 * _arg5.R.col1.x) + (_local21 * _arg5.R.col1.y)); _local17.localPoint2.y = ((_local20 * _arg5.R.col2.x) + (_local21 * _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 _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:Number; var _local20:Number; var _local21:int; var _local22:int; var _local23:int; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; _local13 = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); _local14 = (_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; _local15 = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local16 = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local18 = 0; _local19 = -(Number.MAX_VALUE); _local20 = _arg4.m_radius; _local21 = 0; while (_local21 < _arg2.m_vertexCount) { _local7 = (_local15 - _arg2.m_vertices[_local21].x); _local8 = (_local16 - _arg2.m_vertices[_local21].y); _local30 = ((_arg2.m_normals[_local21].x * _local7) + (_arg2.m_normals[_local21].y * _local8)); if (_local30 > _local20){ return; }; if (_local30 > _local19){ _local19 = _local30; _local18 = _local21; }; _local21++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _arg2.m_normals[_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.referenceFace = b2_nullFeature; _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; }; _local22 = _local18; _local23 = (((_local22 + 1) < _arg2.m_vertexCount)) ? (_local22 + 1) : 0; _local24 = (_arg2.m_vertices[_local23].x - _arg2.m_vertices[_local22].x); _local25 = (_arg2.m_vertices[_local23].y - _arg2.m_vertices[_local22].y); _local26 = Math.sqrt(((_local24 * _local24) + (_local25 * _local25))); _local24 = (_local24 / _local26); _local25 = (_local25 / _local26); if (_local26 < Number.MIN_VALUE){ _local7 = (_local15 - _arg2.m_vertices[_local22].x); _local8 = (_local16 - _arg2.m_vertices[_local22].y); _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)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local22; _local6.id.features.referenceFace = b2_nullFeature; _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 = (_local17 - _local20); return; }; _local7 = (_local15 - _arg2.m_vertices[_local22].x); _local8 = (_local16 - _arg2.m_vertices[_local22].y); _local27 = ((_local7 * _local24) + (_local8 * _local25)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceFace = b2_nullFeature; _local6.id.features.flip = 0; if (_local27 <= 0){ _local28 = _arg2.m_vertices[_local22].x; _local29 = _arg2.m_vertices[_local22].y; _local6.id.features.incidentVertex = _local22; } else { if (_local27 >= _local26){ _local28 = _arg2.m_vertices[_local23].x; _local29 = _arg2.m_vertices[_local23].y; _local6.id.features.incidentVertex = _local23; } else { _local28 = ((_local24 * _local27) + _arg2.m_vertices[_local22].x); _local29 = ((_local25 * _local27) + _arg2.m_vertices[_local22].y); _local6.id.features.incidentEdge = _local22; }; }; _local7 = (_local15 - _local28); _local8 = (_local16 - _local29); _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); } } }//package Box2D.Collision
Section 14
//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; _local1 = new b2ContactID(); _local1.key = key; return (_local1); } public function get key():uint{ return (_key); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceFace = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } } }//package Box2D.Collision
Section 15
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var normalForce:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var tangentForce:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public function b2ContactPoint(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 16
//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 _local4:Number; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local4 = (100 * Number.MIN_VALUE); _local5 = 0; while (_local5 < _arg3) { _local6 = Math.abs((_arg1.x - _arg2[_local5].x)); _local7 = Math.abs((_arg1.y - _arg2[_local5].y)); _local8 = Math.max(Math.abs(_arg1.x), Math.abs(_arg2[_local5].x)); _local9 = Math.max(Math.abs(_arg1.y), Math.abs(_arg2[_local5].y)); if ((((_local6 < (_local4 * (_local8 + 1)))) && ((_local7 < (_local4 * (_local9 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:Array; var _local8:Array; var _local9:Array; var _local10:int; var _local11:Number; var _local12:int; var _local13:int; var _local14:Number; var _local15:Number; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; _local7 = s_p1s; _local8 = s_p2s; _local9 = s_points; _local10 = 0; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); _local11 = 0; _local12 = 20; _local13 = 0; while (_local13 < _local12) { _local14 = (_arg2.x - _arg1.x); _local15 = (_arg2.y - _arg1.y); _local16 = _arg3.Support(_arg4, _local14, _local15); _local17 = _arg5.Support(_arg6, -(_local14), -(_local15)); _local11 = ((_local14 * _local14) + (_local15 * _local15)); _local18 = (_local17.x - _local16.x); _local19 = (_local17.y - _local16.y); _local20 = ((_local14 * _local18) + (_local15 * _local19)); if ((_local11 - ((_local14 * _local18) + (_local15 * _local19))) <= (0.01 * _local11)){ if (_local10 == 0){ _arg1.SetV(_local16); _arg2.SetV(_local17); }; g_GJK_Iterations = _local13; return (Math.sqrt(_local11)); }; switch (_local10){ case 0: _local7[0].SetV(_local16); _local8[0].SetV(_local17); _local9[0].Set(_local18, _local19); _arg1.SetV(_local7[0]); _arg2.SetV(_local8[0]); _local10++; break; case 1: _local7[1].SetV(_local16); _local8[1].SetV(_local17); _local9[1].x = _local18; _local9[1].y = _local19; _local10 = ProcessTwo(_arg1, _arg2, _local7, _local8, _local9); break; case 2: _local7[2].SetV(_local16); _local8[2].SetV(_local17); _local9[2].x = _local18; _local9[2].y = _local19; _local10 = ProcessThree(_arg1, _arg2, _local7, _local8, _local9); break; }; if (_local10 == 3){ g_GJK_Iterations = _local13; return (0); }; _local21 = -(Number.MAX_VALUE); _local22 = 0; while (_local22 < _local10) { _local21 = b2Math.b2Max(_local21, ((_local9[_local22].x * _local9[_local22].x) + (_local9[_local22].y * _local9[_local22].y))); _local22++; }; if ((((_local10 == 3)) || ((_local11 <= ((100 * Number.MIN_VALUE) * _local21))))){ g_GJK_Iterations = _local13; _local14 = (_arg2.x - _arg1.x); _local15 = (_arg2.y - _arg1.y); _local11 = ((_local14 * _local14) + (_local15 * _local15)); return (Math.sqrt(_local11)); }; _local13++; }; g_GJK_Iterations = _local12; return (Math.sqrt(_local11)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; 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; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; _local9 = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local10 = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; _local11 = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local12 = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = ((_local13 * _local13) + (_local14 * _local14)); _local16 = (_arg3.m_radius - b2Settings.b2_toiSlop); _local17 = (_arg5.m_radius - b2Settings.b2_toiSlop); _local18 = (_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: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; 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 _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; _local6 = _arg5[0].x; _local7 = _arg5[0].y; _local8 = _arg5[1].x; _local9 = _arg5[1].y; _local10 = _arg5[2].x; _local11 = _arg5[2].y; _local12 = (_local8 - _local6); _local13 = (_local9 - _local7); _local14 = (_local10 - _local6); _local15 = (_local11 - _local7); _local16 = (_local10 - _local8); _local17 = (_local11 - _local9); _local18 = -(((_local6 * _local12) + (_local7 * _local13))); _local19 = ((_local8 * _local12) + (_local9 * _local13)); _local20 = -(((_local6 * _local14) + (_local7 * _local15))); _local21 = ((_local10 * _local14) + (_local11 * _local15)); _local22 = -(((_local8 * _local16) + (_local9 * _local17))); _local23 = ((_local10 * _local16) + (_local11 * _local17)); if ((((_local21 <= 0)) && ((_local23 <= 0)))){ _arg1.SetV(_arg3[2]); _arg2.SetV(_arg4[2]); _arg3[0].SetV(_arg3[2]); _arg4[0].SetV(_arg4[2]); _arg5[0].SetV(_arg5[2]); return (1); }; _local24 = ((_local12 * _local15) - (_local13 * _local14)); _local25 = (_local24 * ((_local6 * _local9) - (_local7 * _local8))); _local27 = (_local24 * ((_local8 * _local11) - (_local9 * _local10))); if ((((((_local27 <= 0)) && ((_local22 >= 0)))) && ((_local23 >= 0)))){ _local26 = (_local22 / (_local22 + _local23)); _arg1.x = (_arg3[1].x + (_local26 * (_arg3[2].x - _arg3[1].x))); _arg1.y = (_arg3[1].y + (_local26 * (_arg3[2].y - _arg3[1].y))); _arg2.x = (_arg4[1].x + (_local26 * (_arg4[2].x - _arg4[1].x))); _arg2.y = (_arg4[1].y + (_local26 * (_arg4[2].y - _arg4[1].y))); _arg3[0].SetV(_arg3[2]); _arg4[0].SetV(_arg4[2]); _arg5[0].SetV(_arg5[2]); return (2); }; _local28 = (_local24 * ((_local10 * _local7) - (_local11 * _local6))); if ((((((_local28 <= 0)) && ((_local20 >= 0)))) && ((_local21 >= 0)))){ _local26 = (_local20 / (_local20 + _local21)); _arg1.x = (_arg3[0].x + (_local26 * (_arg3[2].x - _arg3[0].x))); _arg1.y = (_arg3[0].y + (_local26 * (_arg3[2].y - _arg3[0].y))); _arg2.x = (_arg4[0].x + (_local26 * (_arg4[2].x - _arg4[0].x))); _arg2.y = (_arg4[0].y + (_local26 * (_arg4[2].y - _arg4[0].y))); _arg3[1].SetV(_arg3[2]); _arg4[1].SetV(_arg4[2]); _arg5[1].SetV(_arg5[2]); return (2); }; _local29 = ((_local27 + _local28) + _local25); _local29 = (1 / _local29); _local30 = (_local27 * _local29); _local31 = (_local28 * _local29); _local32 = ((1 - _local30) - _local31); _arg1.x = (((_local30 * _arg3[0].x) + (_local31 * _arg3[1].x)) + (_local32 * _arg3[2].x)); _arg1.y = (((_local30 * _arg3[0].y) + (_local31 * _arg3[1].y)) + (_local32 * _arg3[2].y)); _arg2.x = (((_local30 * _arg4[0].x) + (_local31 * _arg4[1].x)) + (_local32 * _arg4[2].x)); _arg2.y = (((_local30 * _arg4[0].y) + (_local31 * _arg4[1].y)) + (_local32 * _arg4[2].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 _local9:b2Point; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local9 = 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))); _local10 = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); _local11 = (_arg5.GetRadius() - 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; var _local8:int; _local7 = _arg3.GetType(); _local8 = _arg5.GetType(); 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 _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local6 = -(_arg5[1].x); _local7 = -(_arg5[1].y); _local8 = (_arg5[0].x - _arg5[1].x); _local9 = (_arg5[0].y - _arg5[1].y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = ((_local6 * _local8) + (_local7 * _local9)); if ((((_local11 <= 0)) || ((_local10 < Number.MIN_VALUE)))){ _arg1.SetV(_arg3[1]); _arg2.SetV(_arg4[1]); _arg3[0].SetV(_arg3[1]); _arg4[0].SetV(_arg4[1]); _arg5[0].SetV(_arg5[1]); return (1); }; _local11 = (_local11 / _local10); _arg1.x = (_arg3[1].x + (_local11 * (_arg3[0].x - _arg3[1].x))); _arg1.y = (_arg3[1].y + (_local11 * (_arg3[0].y - _arg3[1].y))); _arg2.x = (_arg4[1].x + (_local11 * (_arg4[0].x - _arg4[1].x))); _arg2.y = (_arg4[1].y + (_local11 * (_arg4[0].y - _arg4[1].y))); return (2); } } }//package Box2D.Collision
Section 17
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var points:Array; public var pointCount:int;// = 0 public var normal:b2Vec2; public function b2Manifold(){ var _local1:int; pointCount = 0; super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ var _local2:int; pointCount = _arg1.pointCount; _local2 = 0; 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; _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 18
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var normalForce:Number; public var separation:Number; public var id:b2ContactID; public var localPoint2:b2Vec2; public var localPoint1:b2Vec2; public var tangentForce:Number; 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; normalForce = _arg1.normalForce; tangentForce = _arg1.tangentForce; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalForce = 0; tangentForce = 0; id.key = 0; } } }//package Box2D.Collision
Section 19
//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 20
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var userData;// = null public var proxyId1:uint; 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 b2Pair(){ userData = null; super(); } 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 21
//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 22
//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_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_hashTable:Array; 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[(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:uint; _local4 = m_hashTable[_arg3]; while (((!((_local4 == b2Pair.b2_nullPair))) && ((Equals(m_pairs[_local4], _arg1, _arg2) == false)))) { _local4 = m_pairs[_local4].next; }; if (_local4 == b2Pair.b2_nullPair){ return (null); }; return (m_pairs[_local4]); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:int; var _local2:int; var _local3:Array; var _local4:b2Pair; var _local5:b2Proxy; var _local6:b2Proxy; _local2 = 0; _local3 = m_broadPhase.m_proxyPool; _local1 = 0; while (_local1 < m_pairBufferCount) { _local4 = Find(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2); _local4.ClearBuffered(); _local5 = _local3[_local4.proxyId1]; _local6 = _local3[_local4.proxyId2]; if (_local4.IsRemoved()){ if (_local4.IsFinal() == true){ m_callback.PairRemoved(_local5.userData, _local6.userData, _local4.userData); }; m_pairBuffer[_local2].proxyId1 = _local4.proxyId1; m_pairBuffer[_local2].proxyId2 = _local4.proxyId2; _local2++; } else { if (_local4.IsFinal() == false){ _local4.userData = m_callback.PairAdded(_local5.userData, _local6.userData); _local4.SetFinal(); }; }; _local1++; }; _local1 = 0; while (_local1 < _local2) { RemovePair(m_pairBuffer[_local1].proxyId1, m_pairBuffer[_local1].proxyId2); _local1++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2Pair; _local3 = Find(_arg1, _arg2); if (_local3 == null){ return; }; if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1; m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2; m_pairBufferCount++; }; _local3.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:uint; var _local4:uint; var _local5:b2Pair; var _local6:uint; var _local7:uint; var _local8:b2Pair; var _local9:*; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = m_hashTable[_local3]; _local5 = null; while (_local4 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local4], _arg1, _arg2)){ _local7 = _local4; if (_local5){ _local5.next = m_pairs[_local4].next; } else { m_hashTable[_local3] = m_pairs[_local4].next; }; _local8 = m_pairs[_local7]; _local9 = _local8.userData; _local8.next = m_freePair; _local8.proxyId1 = b2Pair.b2_nullProxy; _local8.proxyId2 = b2Pair.b2_nullProxy; _local8.userData = null; _local8.status = 0; m_freePair = _local7; m_pairCount--; return (_local9); } else { _local5 = m_pairs[_local4]; _local4 = _local5.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:b2Pair; _local3 = AddPair(_arg1, _arg2); if (_local3.IsBuffered() == false){ _local3.SetBuffered(); m_pairBuffer[m_pairBufferCount].proxyId1 = _local3.proxyId1; m_pairBuffer[m_pairBufferCount].proxyId2 = _local3.proxyId2; m_pairBufferCount++; }; _local3.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local3:uint; var _local4:b2Pair; var _local5:uint; var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; _local3 = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; _local5 = 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; _local3 = (((_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 23
//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 24
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var lowerBounds:Array; public var upperBounds:Array; public var userData;// = null public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; userData = null; 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 25
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; 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 _local5:b2Vec2; 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; var _local18:Number; _local5 = _arg3.p1; _local6 = (_arg3.p2.x - _local5.x); _local7 = (_arg3.p2.y - _local5.y); _local8 = (p2.x - p1.x); _local9 = (p2.y - p1.y); _local10 = _local9; _local11 = -(_local8); _local12 = (100 * Number.MIN_VALUE); _local13 = -(((_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 26
//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 _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:b2Vec2; var _local16:b2Vec2; var _local17:int; var _local18:int; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:b2XForm; var _local25:b2XForm; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; _local5 = _arg1.GetSweepRadius(); _local6 = _arg3.GetSweepRadius(); _local7 = _arg2.t0; _local8 = (_arg2.c.x - _arg2.c0.x); _local9 = (_arg2.c.y - _arg2.c0.y); _local10 = (_arg4.c.x - _arg4.c0.x); _local11 = (_arg4.c.y - _arg4.c0.y); _local12 = (_arg2.a - _arg2.a0); _local13 = (_arg4.a - _arg4.a0); _local14 = 0; _local15 = s_p1; _local16 = s_p2; _local17 = 20; _local18 = 0; _local19 = 0; _local20 = 0; _local21 = 0; _local22 = 0; while (true) { _local23 = (((1 - _local14) * _local7) + _local14); _local24 = s_xf1; _local25 = s_xf2; _arg2.GetXForm(_local24, _local23); _arg4.GetXForm(_local25, _local23); _local21 = b2Distance.Distance(_local15, _local16, _arg1, _local24, _arg3, _local25); if (_local18 == 0){ if (_local21 > (2 * b2Settings.b2_toiSlop)){ _local22 = (1.5 * b2Settings.b2_toiSlop); } else { _local22 = Math.max((0.05 * b2Settings.b2_toiSlop), (_local21 - (0.5 * b2Settings.b2_toiSlop))); }; }; if (((((_local21 - _local22) < (0.05 * b2Settings.b2_toiSlop))) || ((_local18 == _local17)))){ break; }; _local19 = (_local16.x - _local15.x); _local20 = (_local16.y - _local15.y); _local26 = Math.sqrt(((_local19 * _local19) + (_local20 * _local20))); _local19 = (_local19 / _local26); _local20 = (_local20 / _local26); _local27 = ((((_local19 * (_local8 - _local10)) + (_local20 * (_local9 - _local11))) + (Math.abs(_local12) * _local5)) + (Math.abs(_local13) * _local6)); if (Math.abs(_local27) < Number.MIN_VALUE){ _local14 = 1; break; }; _local28 = ((_local21 - _local22) / _local27); _local29 = (_local14 + _local28); if ((((_local29 < 0)) || ((1 < _local29)))){ _local14 = 1; break; }; if (_local29 < ((1 + (100 * Number.MIN_VALUE)) * _local14)){ break; }; _local14 = _local29; _local18++; }; return (_local14); } } }//package Box2D.Collision
Section 27
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var v:b2Vec2; public var id:b2ContactID; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 28
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceFace:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceFace():int{ return (_referenceFace); } 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 referenceFace(_arg1:int):void{ _referenceFace = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceFace & 0xFF)); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 29
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } 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 _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = 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; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_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 30
//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; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = 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; _local3 = 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; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = 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; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = 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; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = 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; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_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; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = 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; _local3 = 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; _local3 = 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 31
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var c:b2Vec2; public var a:Number; public var c0:b2Vec2; public var a0:Number; 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 _local3:b2Mat22; 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); }; _local3 = _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 32
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } 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 SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } 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 CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ x = Math.abs(x); y = Math.abs(y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = 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 function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 33
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; 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 34
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _g:uint;// = 0 private var _b:uint;// = 0 private var _r:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = 0; _g = 0; _b = 0; super(); _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 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 b(_arg1:Number):void{ _b = 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 35
//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 36
//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; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var 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; m_manifold.points[0].normalForce = 0; m_manifold.points[0].tangentForce = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Mat22; var _local6:b2Vec2; _local2 = m_shape1.m_body; _local3 = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local2.m_xf, (m_shape2 as b2CircleShape), _local3.m_xf); if (m_manifold.pointCount > 0){ m_manifoldCount = 1; if (m0.pointCount == 0){ m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip | b2Collision.b2_newPoint); } else { m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip & ~(b2Collision.b2_newPoint)); }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = _local2.m_xf.R; _local6 = m0.points[0].localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local4.separation = m0.points[0].separation; _local4.normalForce = m0.points[0].normalForce; _local4.tangentForce = m0.points[0].tangentForce; _local4.id.key = m0.points[0].id.key; _arg1.Remove(_local4); }; }; } 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 37
//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 GetShape1():b2Shape{ return (m_shape1); } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetNext():b2Contact{ return (m_next); } public function GetManifolds():Array{ return (null); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function Update(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; Evaluate(_arg1); _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); if (((((((_local2.IsStatic()) || (_local2.IsBullet()))) || (_local3.IsStatic()))) || (_local3.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 _local1:int; var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); _local1 = 0; 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{ var _local3:int; var _local4:int; var _local5:*; if (_arg1.GetManifoldCount() > 0){ _arg1.GetShape1().GetBody().WakeUp(); _arg1.GetShape2().GetBody().WakeUp(); }; _local3 = _arg1.GetShape1().GetType(); _local4 = _arg1.GetShape2().GetType(); _local5 = s_registers[_local3][_local4].destroyFcn; _local5(_arg1, _arg2); } public static function AddType(_arg1, _arg2, _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 _local4:int; var _local5:int; var _local6:*; var _local7:b2Contact; var _local8:int; var _local9:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; _local4 = _arg1.m_type; _local5 = _arg2.m_type; _local6 = s_registers[_local4][_local5].createFcn; if (_local6){ if (s_registers[_local4][_local5].primary){ return (_local6(_arg1, _arg2, _arg3)); }; _local7 = _local6(_arg2, _arg1, _arg3); _local8 = 0; while (_local8 < _local7.GetManifoldCount()) { _local9 = _local7.GetManifolds()[_local8]; _local7.GetManifolds()[_local8].normal = _local9.normal.Negative(); _local8++; }; return (_local7); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 38
//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 restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var normal:b2Vec2; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ var _local1:int; normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); _local1 = 0; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var tangentForce:Number; public var normalForce:Number; public var positionImpulse:Number; public var separation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var tangentMass:Number; public var normalMass:Number; public var velocityBias:Number; public var equalizedMass:Number; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var next:b2ContactEdge; public var other:b2Body; public var contact:b2Contact; public var prev:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn; public var destroyFcn; } }//package Box2D.Dynamics.Contacts
Section 42
//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:int; var _local6:b2Vec2; var _local7:b2Mat22; var _local8:int; var _local9:b2Contact; 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; _local5 = 0; while (_local5 < _arg3) { m_constraintCount = (m_constraintCount + _arg2[_local5].GetManifoldCount()); _local5++; }; _local5 = 0; while (_local5 < m_constraintCount) { m_constraints[_local5] = new b2ContactConstraint(); _local5++; }; _local8 = 0; _local5 = 0; while (_local5 < _arg3) { _local9 = _arg2[_local5]; _local10 = _local9.m_shape1.m_body; _local11 = _local9.m_shape2.m_body; _local12 = _local9.GetManifoldCount(); _local13 = _local9.GetManifolds(); _local14 = _local9.m_friction; _local15 = _local9.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[_local8]; _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.normalForce = _local28.normalForce; _local29.tangentForce = _local28.tangentForce; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local7 = _local10.m_xf.R; _local32 = (_local29.localAnchor1.x - _local10.GetLocalCenter().x); _local33 = (_local29.localAnchor1.y - _local10.GetLocalCenter().y); _local30 = ((_local7.col1.x * _local32) + (_local7.col2.x * _local33)); _local33 = ((_local7.col1.y * _local32) + (_local7.col2.y * _local33)); _local32 = _local30; _local7 = _local11.m_xf.R; _local34 = (_local29.localAnchor2.x - _local11.GetLocalCenter().x); _local35 = (_local29.localAnchor2.y - _local11.GetLocalCenter().y); _local30 = ((_local7.col1.x * _local34) + (_local7.col2.x * _local35)); _local35 = ((_local7.col1.y * _local34) + (_local7.col2.y * _local35)); _local34 = _local30; _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++; }; _local8++; _local22++; }; _local5++; }; } public function InitVelocityConstraints():void{ var _local1:b2Vec2; var _local2:b2Vec2; var _local3:b2Mat22; var _local4:int; var _local5:b2ContactConstraint; var _local6:b2Body; var _local7:b2Body; 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:int; var _local19:b2ContactConstraintPoint; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraintPoint; _local4 = 0; while (_local4 < m_constraintCount) { _local5 = m_constraints[_local4]; _local6 = _local5.body1; _local7 = _local5.body2; _local8 = _local6.m_invMass; _local9 = _local6.m_invI; _local10 = _local7.m_invMass; _local11 = _local7.m_invI; _local12 = _local5.normal.x; _local13 = _local5.normal.y; _local14 = _local13; _local15 = -(_local12); if (b2World.s_enableWarmStarting){ _local18 = _local5.pointCount; _local17 = 0; while (_local17 < _local18) { _local19 = _local5.points[_local17]; _local20 = (m_step.dt * ((_local19.normalForce * _local12) + (_local19.tangentForce * _local14))); _local21 = (m_step.dt * ((_local19.normalForce * _local13) + (_local19.tangentForce * _local15))); _local3 = _local6.m_xf.R; _local1 = _local6.GetLocalCenter(); _local22 = (_local19.localAnchor1.x - _local1.x); _local23 = (_local19.localAnchor1.y - _local1.y); _local16 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local16; _local3 = _local7.m_xf.R; _local1 = _local7.GetLocalCenter(); _local24 = (_local19.localAnchor2.x - _local1.x); _local25 = (_local19.localAnchor2.y - _local1.y); _local16 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local16; _local6.m_angularVelocity = (_local6.m_angularVelocity - (_local9 * ((_local22 * _local21) - (_local23 * _local20)))); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x - (_local8 * _local20)); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y - (_local8 * _local21)); _local7.m_angularVelocity = (_local7.m_angularVelocity + (_local11 * ((_local24 * _local21) - (_local25 * _local20)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x + (_local10 * _local20)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y + (_local10 * _local21)); _local17++; }; } else { _local18 = _local5.pointCount; _local17 = 0; while (_local17 < _local18) { _local26 = _local5.points[_local17]; _local26.normalForce = 0; _local26.tangentForce = 0; _local17++; }; }; _local4++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local2:Number; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:int; 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; _local2 = 0; _local5 = 0; 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.GetLocalCenter(); _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.GetLocalCenter(); _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:b2Mat22; var _local14:b2Vec2; var _local15:int; var _local16:b2ContactConstraint; var _local17:b2Body; var _local18:b2Body; var _local19:Number; var _local20:b2Vec2; var _local21:Number; var _local22:b2Vec2; 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:int; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; _local15 = 0; while (_local15 < m_constraintCount) { _local16 = m_constraints[_local15]; _local17 = _local16.body1; _local18 = _local16.body2; _local19 = _local17.m_angularVelocity; _local20 = _local17.m_linearVelocity; _local21 = _local18.m_angularVelocity; _local22 = _local18.m_linearVelocity; _local23 = _local17.m_invMass; _local24 = _local17.m_invI; _local25 = _local18.m_invMass; _local26 = _local18.m_invI; _local27 = _local16.normal.x; _local28 = _local16.normal.y; _local29 = _local28; _local30 = -(_local27); _local32 = _local16.pointCount; _local1 = 0; while (_local1 < _local32) { _local2 = _local16.points[_local1]; _local13 = _local17.m_xf.R; _local14 = _local17.GetLocalCenter(); _local3 = (_local2.localAnchor1.x - _local14.x); _local4 = (_local2.localAnchor1.y - _local14.y); _local31 = ((_local13.col1.x * _local3) + (_local13.col2.x * _local4)); _local4 = ((_local13.col1.y * _local3) + (_local13.col2.y * _local4)); _local3 = _local31; _local13 = _local18.m_xf.R; _local14 = _local18.GetLocalCenter(); _local5 = (_local2.localAnchor2.x - _local14.x); _local6 = (_local2.localAnchor2.y - _local14.y); _local31 = ((_local13.col1.x * _local5) + (_local13.col2.x * _local6)); _local6 = ((_local13.col1.y * _local5) + (_local13.col2.y * _local6)); _local5 = _local31; _local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4)); _local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3)); _local33 = ((_local7 * _local27) + (_local8 * _local28)); _local9 = ((-(m_step.inv_dt) * _local2.normalMass) * (_local33 - _local2.velocityBias)); _local34 = b2Math.b2Max((_local2.normalForce + _local9), 0); _local9 = (_local34 - _local2.normalForce); _local11 = ((m_step.dt * _local9) * _local27); _local12 = ((m_step.dt * _local9) * _local28); _local20.x = (_local20.x - (_local23 * _local11)); _local20.y = (_local20.y - (_local23 * _local12)); _local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11)))); _local22.x = (_local22.x + (_local25 * _local11)); _local22.y = (_local22.y + (_local25 * _local12)); _local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11)))); _local2.normalForce = _local34; _local7 = (((_local22.x + (-(_local21) * _local6)) - _local20.x) - (-(_local19) * _local4)); _local8 = (((_local22.y + (_local21 * _local5)) - _local20.y) - (_local19 * _local3)); _local35 = ((_local7 * _local29) + (_local8 * _local30)); _local9 = ((m_step.inv_dt * _local2.tangentMass) * -(_local35)); _local36 = (_local16.friction * _local2.normalForce); _local34 = b2Math.b2Clamp((_local2.tangentForce + _local9), -(_local36), _local36); _local9 = (_local34 - _local2.tangentForce); _local11 = ((m_step.dt * _local9) * _local29); _local12 = ((m_step.dt * _local9) * _local30); _local20.x = (_local20.x - (_local23 * _local11)); _local20.y = (_local20.y - (_local23 * _local12)); _local19 = (_local19 - (_local24 * ((_local3 * _local12) - (_local4 * _local11)))); _local22.x = (_local22.x + (_local25 * _local11)); _local22.y = (_local22.y + (_local25 * _local12)); _local21 = (_local21 + (_local26 * ((_local5 * _local12) - (_local6 * _local11)))); _local2.tangentForce = _local34; _local1++; }; _local17.m_angularVelocity = _local19; _local18.m_angularVelocity = _local21; _local15++; }; } public function FinalizeVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; _local1 = 0; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local3.points[_local4].normalForce = _local2.points[_local4].normalForce; _local3.points[_local4].tangentForce = _local2.points[_local4].tangentForce; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 43
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function GetManifolds():Array{ return (null); } override public function Evaluate(_arg1:b2ContactListener):void{ } } }//package Box2D.Dynamics.Contacts
Section 44
//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; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var 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; m_manifold.points[0].normalForce = 0; m_manifold.points[0].tangentForce = 0; } override public function GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Mat22; var _local6:b2Vec2; _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local2.m_xf, (m_shape2 as b2CircleShape), _local3.m_xf); if (m_manifold.pointCount > 0){ m_manifoldCount = 1; if (m0.pointCount == 0){ m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip | b2Collision.b2_newPoint); } else { m_manifold.points[0].id.features.flip = (m_manifold.points[0].id.features.flip & ~(b2Collision.b2_newPoint)); }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = _local2.m_xf.R; _local6 = m0.points[0].localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y))); _local4.separation = m0.points[0].separation; _local4.normalForce = m0.points[0].normalForce; _local4.tangentForce = m0.points[0].tangentForce; _local4.id = m0.points[0].id; _arg1.Remove(_local4); }; }; } 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 45
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static var 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 GetManifolds():Array{ return (m_manifolds); } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:int; var _local6:Array; var _local7:b2ManifoldPoint; var _local8:Boolean; var _local9:uint; var _local10:int; var _local11:b2ManifoldPoint; var _local12:b2ContactID; var _local13:b2ManifoldPoint; var _local14:b2Mat22; var _local15:b2Vec2; _local2 = m_shape1.GetBody(); _local3 = m_shape2.GetBody(); m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local2.m_xf, (m_shape2 as b2PolygonShape), _local3.m_xf); _local6 = [false, false]; if (m_manifold.pointCount > 0){ _local5 = 0; while (_local5 < m_manifold.pointCount) { _local7 = m_manifold.points[_local5]; _local7.normalForce = 0; _local7.tangentForce = 0; _local8 = false; _local9 = _local7.id.key; _local10 = 0; while (_local10 < m0.pointCount) { if (_local6[_local10] == true){ } else { _local11 = m0.points[_local10]; _local12 = _local11.id; _local12.features.flip = (_local12.features.flip & ~(b2Collision.b2_newPoint)); if (_local12.key == _local9){ _local6[_local10] = true; _local7.normalForce = _local11.normalForce; _local7.tangentForce = _local11.tangentForce; _local8 = true; break; }; }; _local10++; }; if (_local8 == false){ _local7.id.features.flip = (_local7.id.features.flip | b2Collision.b2_newPoint); }; _local5++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (((_arg1) && ((m0.pointCount > 0)))){ _local4 = s_evalCP; _local4.shape1 = m_shape1; _local4.shape2 = m_shape2; _local4.normal.SetV(m0.normal); _local5 = 0; while (_local5 < m0.pointCount) { if (_local6[_local5]){ } else { _local13 = m0.points[_local5]; _local14 = _local2.m_xf.R; _local15 = _local13.localPoint1; _local4.position.x = (_local2.m_xf.position.x + ((_local14.col1.x * _local15.x) + (_local14.col2.x * _local15.y))); _local4.position.y = (_local2.m_xf.position.y + ((_local14.col1.y * _local15.x) + (_local14.col2.y * _local15.y))); _local4.separation = _local13.separation; _local4.normalForce = _local13.normalForce; _local4.tangentForce = _local13.tangentForce; _local4.id.key = _local13.id.key; _arg1.Remove(_local4); }; _local5++; }; }; } 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 46
//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_localAnchor2:b2Vec2; public var m_force:Number; public var m_localAnchor1:b2Vec2; public var m_u:b2Vec2; public var m_length:Number; public var m_mass: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_force = 0; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body; var _local4:b2Body; 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:Number; _local3 = m_body1; _local4 = m_body2; _local2 = _local3.m_xf.R; _local5 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local3.GetLocalCenter().y); _local7 = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; _local8 = (m_localAnchor2.x - _local4.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local4.GetLocalCenter().y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; _local10 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); _local11 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); _local12 = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); _local13 = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); _local14 = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); _local15 = ((-(_arg1.inv_dt) * m_mass) * _local14); m_force = (m_force + _local15); _local16 = ((_arg1.dt * _local15) * m_u.x); _local17 = ((_arg1.dt * _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)))); } 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 _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local4.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local5.GetLocalCenter().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); m_u.y = ((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y); _local10 = 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(); }; _local11 = ((_local6 * m_u.y) - (_local7 * m_u.x)); _local12 = ((_local8 * m_u.y) - (_local9 * m_u.x)); m_mass = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / m_mass); if (b2World.s_enableWarmStarting){ _local13 = ((_arg1.dt * m_force) * m_u.x); _local14 = ((_arg1.dt * m_force) * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local13)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local14)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local14) - (_local7 * _local13)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local13)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local14)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local14) - (_local9 * _local13)))); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; var _local2:b2Body; var _local3:b2Body; 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; _local2 = m_body1; _local3 = m_body2; _local1 = _local2.m_xf.R; _local4 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local5 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local6 = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; _local7 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local8 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; _local9 = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); _local10 = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); _local11 = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); _local12 = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local13 = (-(m_mass) * _local12); m_u.Set(_local9, _local10); _local14 = (_local13 * m_u.x); _local15 = (_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)); } } }//package Box2D.Dynamics.Joints
Section 47
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var length:Number; public var localAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ var _local5:Number; var _local6:Number; body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); _local5 = (_arg4.x - _arg3.x); _local6 = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); } } }//package Box2D.Dynamics.Joints
Section 48
//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_force:Number; public var m_mass:Number; public var m_prismatic1:b2PrismaticJoint; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_ground2:b2Body; public var m_constant:Number; public var m_revolute1:b2RevoluteJoint; public var m_revolute2:b2RevoluteJoint; 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_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local2:Number; var _local3:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); 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 (_arg1.joint1.m_type == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local2 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local2 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_arg1.joint2.m_type == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local3 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local3 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local2 + (m_ratio * _local3)); 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 GetReactionForce():b2Vec2{ var _local1:b2Vec2; _local1 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local1 = 0; _local2 = m_body1; _local3 = 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(); }; _local6 = (m_constant - (_local4 + (m_ratio * _local5))); _local7 = (-(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)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; 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 _local14:Number; var _local15:Number; _local2 = m_ground1; _local3 = m_ground2; _local4 = m_body1; _local5 = m_body2; _local14 = 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.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local4.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local5.GetLocalCenter().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 (b2World.s_enableWarmStarting){ _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; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = m_body2.m_xf.R; _local2 = (m_localAnchor1.x - m_body2.GetLocalCenter().x); _local3 = (m_localAnchor1.y - m_body2.GetLocalCenter().y); _local4 = ((_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); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = m_body1; _local3 = m_body2; _local4 = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local5 = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); _local6 = (_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 49
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint2:b2Joint; public var joint1:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 50
//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 angular2:Number; public var angular1: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 51
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_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 GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetType():int{ return (m_type); } public function GetBody2():b2Body{ return (m_body2); } public function GetNext():b2Joint{ return (m_next); } 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 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; _local3 = null; 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 52
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var collideConnected:Boolean; public var body1:b2Body; public var body2:b2Body; public var userData; public var type:int; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 53
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var joint:b2Joint; public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; } }//package Box2D.Dynamics.Joints
Section 54
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { public var m_beta:Number; public var m_mass:b2Mat22; public var m_force:b2Vec2; public var m_target:b2Vec2; public var m_localAnchor:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K:b2Mat22; public var m_gamma:Number; public var m_C:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local2:Number; var _local3:Number; var _local4:b2Mat22; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_force = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); _local2 = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); _local4 = 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_force.SetZero(); _local5 = m_body2.m_mass; _local6 = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); _local7 = (((2 * _local5) * _arg1.dampingRatio) * _local6); _local8 = ((_local5 * _local6) * _local6); m_gamma = (1 / (_local7 + (_arg1.timeStep * _local8))); m_beta = ((_arg1.timeStep * _local8) / (_local7 + (_arg1.timeStep * _local8))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function GetReactionForce():b2Vec2{ return (m_force); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.GetLocalCenter().x); _local5 = (m_localAnchor.y - _local2.GetLocalCenter().y); _local6 = ((_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); _local9 = (_arg1.dt * m_force.x); _local10 = (_arg1.dt * m_force.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 GetReactionTorque():Number{ return (0); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; 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; _local2 = m_body2; _local3 = _local2.m_xf.R; _local6 = (m_localAnchor.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor.y - _local2.GetLocalCenter().y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; _local8 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); _local9 = (_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_force.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_force.y)); _local10 = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); _local11 = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); _local12 = m_force.x; _local13 = m_force.y; m_force.x = (m_force.x + _local10); m_force.y = (m_force.y + _local11); _local14 = m_force.Length(); if (_local14 > m_maxForce){ m_force.Multiply((m_maxForce / _local14)); }; _local10 = (m_force.x - _local12); _local11 = (m_force.y - _local13); _local15 = (_arg1.dt * _local10); _local16 = (_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 55
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var frequencyHz:Number; public var dampingRatio:Number; public var maxForce:Number; public var target:b2Vec2; public var timeStep: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 56
//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_refAngle:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_torque:Number; public var m_enableLimit:Boolean; public var m_motorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_maxMotorForce:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_angularMass:Number; public var m_limitState:int; public var m_linearMass:Number; public var m_upperTranslation: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 GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function GetJointTranslation():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Vec2; var _local6:Number; var _local7:Number; var _local8:b2Vec2; var _local9:Number; _local1 = m_body1; _local2 = m_body2; _local4 = _local1.GetWorldPoint(m_localAnchor1); _local5 = _local2.GetWorldPoint(m_localAnchor2); _local6 = (_local5.x - _local4.x); _local7 = (_local5.y - _local4.y); _local8 = _local1.GetWorldVector(m_localXAxis1); _local9 = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.m_xf.R; _local2 = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); _local3 = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); _local4 = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); _local5 = (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 _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9: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 _local21:Number; 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; _local3 = m_body1; _local4 = m_body2; _local5 = _local3.m_invMass; _local6 = _local4.m_invMass; _local7 = _local3.m_invI; _local8 = _local4.m_invI; _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local12 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x); _local14 = (m_localAnchor2.y - _local4.GetLocalCenter().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; _local21 = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); _local22 = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); _local23 = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local24 = (-(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)); _local25 = b2Math.b2Abs(_local23); _local26 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local27 = (-(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(); _local28 = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local12 = (m_localAnchor1.y - _local3.GetLocalCenter().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.GetLocalCenter().x); _local14 = (m_localAnchor2.y - _local4.GetLocalCenter().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 GetJointSpeed():Number{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; 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:b2Vec2; var _local16:b2Vec2; var _local17:b2Vec2; var _local18:Number; var _local19:Number; var _local20:Number; _local1 = m_body1; _local2 = m_body2; _local3 = _local1.m_xf.R; _local4 = (m_localAnchor1.x - _local1.GetLocalCenter().x); _local5 = (m_localAnchor1.y - _local1.GetLocalCenter().y); _local6 = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; _local7 = (m_localAnchor2.x - _local2.GetLocalCenter().x); _local8 = (m_localAnchor2.y - _local2.GetLocalCenter().y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; _local9 = (_local1.m_sweep.c.x + _local4); _local10 = (_local1.m_sweep.c.y + _local5); _local11 = (_local2.m_sweep.c.x + _local7); _local12 = (_local2.m_sweep.c.y + _local8); _local13 = (_local11 - _local9); _local14 = (_local12 - _local10); _local15 = _local1.GetWorldVector(m_localXAxis1); _local16 = _local1.m_linearVelocity; _local17 = _local2.m_linearVelocity; _local18 = _local1.m_angularVelocity; _local19 = _local2.m_angularVelocity; _local20 = (((_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); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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: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; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _local3.m_invI; _local4 = _local2.m_xf.R; _local14 = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); _local15 = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); _local16 = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); _local17 = ((_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 (b2World.s_enableWarmStarting){ _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 SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; 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:Number; var _local18:Number; var _local19:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_invMass; _local5 = _local3.m_invMass; _local6 = _local2.m_invI; _local7 = _local3.m_invI; _local9 = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local10 = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); _local11 = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); _local12 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local13 = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); _local14 = (_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)); }; } } }//package Box2D.Dynamics.Joints
Section 57
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var localAxis1:b2Vec2; public var referenceAngle:Number; public var maxMotorForce:Number; public var motorSpeed:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; 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 58
//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_ground:b2Body; public var m_maxLength2:Number; public var m_limitForce1:Number; public var m_maxLength1:Number; public var m_limitState1:int; public var m_limitState2:int; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_limitPositionImpulse1:Number; public var m_constant: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_positionImpulse:Number; public var m_limitMass2:Number; public var m_limitMass1:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_u2:b2Vec2; public var m_limitForce2:Number; 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; _local1 = 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; _local1 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Body; var _local2:b2Body; var _local3:b2Mat22; 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:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; _local1 = m_body1; _local2 = m_body2; _local4 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local5 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local6 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local7 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local23 = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local1.GetLocalCenter().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.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local2.GetLocalCenter().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.GetLocalCenter().x); _local9 = (m_localAnchor1.y - _local1.GetLocalCenter().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.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local2.GetLocalCenter().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 _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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: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; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; _local10 = (_local2.m_sweep.c.x + _local5); _local11 = (_local2.m_sweep.c.y + _local6); _local12 = (_local3.m_sweep.c.x + _local8); _local13 = (_local3.m_sweep.c.y + _local9); _local14 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local15 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local16 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local17 = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); _local18 = m_u1.Length(); _local19 = 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(); }; _local20 = ((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; }; _local21 = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); _local22 = ((_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 (b2World.s_enableWarmStarting){ _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); } public function GetLength2():Number{ var _local1:b2Vec2; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body2.GetWorldPoint(m_localAnchor2); _local2 = (m_ground.m_xf.position.x + m_groundAnchor2.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor2.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local5 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local6 = (m_localAnchor1.y - _local2.GetLocalCenter().y); _local7 = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().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; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = m_body1.GetWorldPoint(m_localAnchor1); _local2 = (m_ground.m_xf.position.x + m_groundAnchor1.x); _local3 = (m_ground.m_xf.position.y + m_groundAnchor1.y); _local4 = (_local1.x - _local2); _local5 = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2; _local1 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 59
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength2:Number; public var length1:Number; public var length2:Number; public var maxLength1:Number; public var ratio:Number; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; 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{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); _local8 = (_arg5.x - _arg3.x); _local9 = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local10 = (_arg6.x - _arg4.x); _local11 = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; _local12 = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 60
//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_motorForce:Number; public var m_pivotMass:b2Mat22; 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_motorSpeed:Number; public var m_limitPositionImpulse:Number; public var m_maxMotorTorque:Number; public var m_upperAngle:Number; public var m_lowerAngle: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 GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } 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 _local3:b2Body; var _local4:b2Body; var _local5:Number; var _local6:b2Mat22; 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; 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; _local3 = m_body1; _local4 = m_body2; _local5 = 0; _local6 = _local3.m_xf.R; _local7 = (m_localAnchor1.x - _local3.GetLocalCenter().x); _local8 = (m_localAnchor1.y - _local3.GetLocalCenter().y); _local9 = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; _local10 = (m_localAnchor2.x - _local4.GetLocalCenter().x); _local11 = (m_localAnchor2.y - _local4.GetLocalCenter().y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; _local12 = (_local3.m_sweep.c.x + _local7); _local13 = (_local3.m_sweep.c.y + _local8); _local14 = (_local4.m_sweep.c.x + _local10); _local15 = (_local4.m_sweep.c.y + _local11); _local16 = (_local14 - _local12); _local17 = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local18 = _local3.m_invMass; _local19 = _local4.m_invMass; _local20 = _local3.m_invI; _local21 = _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)); _local22 = tImpulse.x; _local23 = 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(); _local24 = 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 GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } 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)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local10 = _local2.m_invMass; _local11 = _local3.m_invMass; _local12 = _local2.m_invI; _local13 = _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 (b2World.s_enableWarmStarting){ _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 GetMotorTorque():Number{ return (m_motorForce); } 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); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; 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:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; _local6 = (m_localAnchor1.x - _local2.GetLocalCenter().x); _local7 = (m_localAnchor1.y - _local2.GetLocalCenter().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; _local8 = (m_localAnchor2.x - _local3.GetLocalCenter().x); _local9 = (m_localAnchor2.y - _local3.GetLocalCenter().y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; _local11 = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); _local12 = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); _local13 = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); _local14 = (-(_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); _local15 = (_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)); }; } } }//package Box2D.Dynamics.Joints
Section 61
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var referenceAngle:Number; public var upperAngle:Number; public var lowerAngle:Number; public var motorSpeed:Number; public var maxMotorTorque:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; 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 62
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_xf:b2XForm; public var m_next:b2Body; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_sweep:b2Sweep; public var m_mass:Number; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_linearVelocity:b2Vec2; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:uint; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; 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:uint, _arg3:b2World){ var _local4:b2Mat22; var _local5:b2Vec2; 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_type = _arg2; m_world = _arg3; 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); _local4 = m_xf.R; _local5 = 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_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_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; if (m_type == e_dynamicType){ m_mass = _arg1.massData.mass; }; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if (((((m_flags & b2Body.e_fixedRotationFlag) == 0)) && ((m_type == e_dynamicType)))){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } 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 SynchronizeTransform():void{ var _local1:b2Mat22; var _local2:b2Vec2; m_xf.R.Set(m_sweep.a); _local1 = m_xf.R; _local2 = 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 GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; var _local2:Number; var _local3:Number; var _local4:b2MassData; var _local5:b2Mat22; var _local6:b2Vec2; if (m_world.m_lock == true){ return; }; if (m_type == e_staticType){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; _local2 = 0; _local3 = 0; _local4 = 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); } else { m_invMass = 0; m_invI = 0; }; 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); _local5 = m_xf.R; _local6 = 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; }; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local4:b2Mat22; var _local5:b2Vec2; var _local6:Boolean; 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); _local4 = m_xf.R; _local5 = 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); _local6 = false; _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 _local1:b2XForm; var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; var _local5:Boolean; _local1 = s_xf1; _local1.R.Set(m_sweep.a0); _local2 = _local1.R; _local3 = 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))); _local5 = true; _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 GetContactList():b2ContactEdge{ return (m_contactList); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local4:b2Shape; if (m_world.m_lock == true){ return; }; if (m_type == e_staticType){ return; }; m_mass = 0; 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); _local2 = m_xf.R; _local3 = m_sweep.localCenter; m_sweep.c.x = ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y)); m_sweep.c.y = ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.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); _local4 = m_shapeList; while (_local4) { _local4.UpdateSweepRadius(m_sweep.localCenter); _local4 = _local4.m_next; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge; _local2 = 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{ var _local2:b2Shape; var _local3:Boolean; if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); _local2 = m_shapeList; _local3 = false; while (_local2 != null) { if (_local2 == _arg1){ _local2 = _arg1.m_next; _local3 = true; break; }; _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 GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulX(m_xf, _arg1)); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 63
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var angularDamping:Number; public var fixedRotation:Boolean; public var angle:Number; 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 64
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 65
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:Boolean; if ((((_arg1.m_groupIndex == _arg2.m_groupIndex)) && (!((_arg1.m_groupIndex == 0))))){ return ((_arg1.m_groupIndex > 0)); }; _local3 = ((!(((_arg1.m_maskBits & _arg2.m_categoryBits) == 0))) && (!(((_arg1.m_categoryBits & _arg2.m_maskBits) == 0)))); return (_local3); } } }//package Box2D.Dynamics
Section 66
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2Contact; _local3 = (_arg1 as b2Shape); _local4 = (_arg2 as b2Shape); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); 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); }; _local7 = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.GetShape1(); _local4 = _local7.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); _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); } override public function PairRemoved(_arg1, _arg2, _arg3):void{ var _local4:b2Contact; if (_arg3 == null){ return; }; _local4 = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local2:b2Shape; var _local3:b2Shape; var _local4:int; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactPoint; var _local8:b2Body; var _local9:Array; var _local10:int; var _local11:b2Manifold; var _local12:int; var _local13:b2ManifoldPoint; var _local14:b2Mat22; var _local15:b2Vec2; var _local16:b2Vec2; _local2 = _arg1.GetShape1(); _local3 = _arg1.GetShape2(); _local4 = _arg1.GetManifoldCount(); if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = new b2ContactPoint(); _local7.shape1 = _arg1.GetShape1(); _local7.shape2 = _arg1.GetShape2(); _local8 = _local7.shape1.GetBody(); _local9 = _arg1.GetManifolds(); _local10 = 0; while (_local10 < _local4) { _local11 = _local9[_local10]; _local7.normal.SetV(_local11.normal); _local12 = 0; while (_local12 < _local11.pointCount) { _local13 = _local11.points[_local12]; _local14 = _local8.GetXForm().R; _local15 = _local8.GetXForm().position; _local16 = _local13.localPoint1; _local7.position.x = (_local15.x + ((_local14.col1.x * _local16.x) + (_local14.col2.x * _local16.y))); _local7.position.y = (_local15.y + ((_local14.col1.y * _local16.x) + (_local14.col2.y * _local16.y))); _local7.separation = _local13.separation; _local7.normalForce = _local13.normalForce; _local7.tangentForce = _local13.tangentForce; _local7.id = _local13.id; m_world.m_contactListener.Remove(_local7); _local12++; }; _local10++; }; }; 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; }; _local5 = _local2.GetBody(); _local6 = _local3.GetBody(); 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--; } public function Collide():void{ var _local1:b2Contact; var _local2:b2Body; var _local3:b2Body; var _local4:b2ContactPoint; var _local5:b2Body; var _local6:int; var _local7:Array; var _local8:int; var _local9:b2Manifold; var _local10:int; var _local11:b2ManifoldPoint; var _local12:b2Mat22; var _local13:b2Vec2; var _local14:b2Vec2; _local1 = m_world.m_contactList; while (_local1) { _local2 = _local1.GetShape1().GetBody(); _local3 = _local1.GetShape2().GetBody(); if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); if ((((_local1.IsSolid() == false)) && (m_world.m_contactListener))){ _local4 = new b2ContactPoint(); _local4.shape1 = _local1.GetShape1(); _local4.shape2 = _local1.GetShape2(); _local4.normalForce = 0; _local4.tangentForce = 0; _local5 = _local4.shape1.GetBody(); _local6 = _local1.GetManifoldCount(); _local7 = _local1.GetManifolds(); _local8 = 0; while (_local8 < _local6) { _local9 = _local7[_local8]; _local4.normal.SetV(_local9.normal); _local10 = 0; while (_local10 < _local9.pointCount) { _local11 = _local9.points[_local10]; _local12 = _local5.GetXForm().R; _local13 = _local5.GetXForm().position; _local14 = _local11.localPoint1; _local4.position.x = (_local13.x + ((_local12.col1.x * _local14.x) + (_local12.col2.x * _local14.y))); _local4.position.y = (_local13.y + ((_local12.col1.y * _local14.x) + (_local12.col2.y * _local14.y))); _local4.separation = _local11.separation; if ((_local11.id.features.flip & b2Collision.b2_newPoint)){ _local11.id.features.flip = (_local11.id.features.flip & ~(b2Collision.b2_newPoint)); _local4.id = _local11.id; m_world.m_contactListener.Add(_local4); } else { _local4.id = _local11.id; m_world.m_contactListener.Persist(_local4); }; _local10++; }; _local8++; }; }; }; _local1 = _local1.GetNext(); }; } } }//package Box2D.Dynamics
Section 68
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Contacts.*; import flash.display.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_lineThickness:Number;// = 1 public var m_drawFlags:uint; public var m_sprite:Sprite; public var m_drawScale:Number;// = 1 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_drawScale = 1; m_lineThickness = 1; m_alpha = 1; m_fillAlpha = 1; m_xformScale = 1; super(); m_drawFlags = 0; } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; 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); _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 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)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } 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 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 GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ var _local4:int; m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); _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)); } } }//package Box2D.Dynamics
Section 69
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeJoint(_arg1:b2Joint):void{ } public function SayGoodbyeShape(_arg1:b2Shape):void{ } } }//package Box2D.Dynamics
Section 70
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Island { public var m_joints:Array; public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies: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_reportCP:b2ContactPoint = new b2ContactPoint(); 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 _local4:int; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactPoint; 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; }; _local4 = 0; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCP; _local7.shape1 = _local5.GetShape1(); _local7.shape2 = _local5.GetShape2(); _local8 = _local7.shape1.GetBody(); _local9 = _local5.GetManifoldCount(); _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]; _local2 = _local8.GetXForm().R; _local3 = _local14.localPoint1; _local7.position.x = (_local8.GetXForm().position.x + ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local7.position.y = (_local8.GetXForm().position.y + ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); _local7.separation = _local14.separation; _local7.normalForce = _local15.normalForce; _local7.tangentForce = _local15.tangentForce; if ((_local14.id.features.flip & b2Collision.b2_newPoint)){ _local14.id.features.flip = (_local14.id.features.flip & ~(b2Collision.b2_newPoint)); _local7.id.key = _local14.id.key; m_listener.Add(_local7); } else { _local7.id.key = _local14.id.key; m_listener.Persist(_local7); }; _local13++; }; _local11++; }; _local4++; }; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2ContactSolver; var _local8:int; var _local9:Boolean; var _local10:Boolean; var _local11:Boolean; var _local12:Number; var _local13:Number; var _local14: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++; }; _local7 = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local7.InitVelocityConstraints(); _local5 = 0; while (_local5 < m_jointCount) { m_joints[_local5].InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local7.SolveVelocityConstraints(); _local8 = 0; while (_local8 < m_jointCount) { m_joints[_local8].SolveVelocityConstraints(_arg1); _local8++; }; _local5++; }; _local7.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) { m_joints[_local5].InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local9 = _local7.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local10 = true; _local5 = 0; while (_local5 < m_jointCount) { _local11 = m_joints[_local5].SolvePositionConstraints(); _local10 = ((_local10) && (_local11)); _local5++; }; if (((_local9) && (_local10))){ break; }; m_positionIterationCount++; }; }; Report(_local7.m_constraints); if (_arg4){ _local12 = Number.MAX_VALUE; _local13 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local14 = (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; _local12 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local14)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local13)))){ _local6.m_sleepTime = 0; _local12 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local12 = b2Math.b2Min(_local12, _local6.m_sleepTime); }; }; _local5++; }; if (_local12 >= 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 AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local3:b2ContactSolver; var _local4:Number; var _local5:b2Body; var _local6:Boolean; _local3 = 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++; }; _local4 = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 71
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var dt:Number; public var maxIterations:int; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 72
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2World { public var m_contactList:b2Contact; public var m_blockAllocator; public var m_boundaryListener:b2BoundaryListener; public var m_allowSleep:Boolean; public var m_contactListener:b2ContactListener; 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 s_enablePositionCorrection:int = 1; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); private static var s_xf:b2XForm = new b2XForm(); public static var s_enableWarmStarting:int = 1; public static var s_enableTOI:int = 1; public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ var _local4:b2BodyDef; 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_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); _local4 = new b2BodyDef(); m_groundBody = CreateStaticBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2XForm; var _local5:b2XForm; var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; _local2 = _arg1.GetBody1(); _local3 = _arg1.GetBody2(); _local4 = _local2.GetXForm(); _local5 = _local3.GetXForm(); _local6 = _local4.position; _local7 = _local5.position; _local8 = _arg1.GetAnchor1(); _local9 = _arg1.GetAnchor2(); _local10 = s_jointColor; switch (_arg1.GetType()){ 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 SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function DrawDebugData():void{ var _local1:uint; var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Color; var _local11:b2XForm; var _local12:b2AABB; var _local13:b2AABB; var _local14:Array; 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(); _local1 = m_debugDraw.GetFlags(); _local7 = new b2Vec2(); _local8 = new b2Vec2(); _local9 = new b2Vec2(); _local10 = new b2Color(0, 0, 0); _local12 = new b2AABB(); _local13 = new b2AABB(); _local14 = [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.GetXForm(); _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.GetNext(); }; _local3 = _local3.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.GetNext(); }; }; 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.GetXForm(); _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.GetType() != 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.GetNext(); }; _local3 = _local3.GetNext(); }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.GetXForm().R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.GetNext(); }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local2:b2JointEdge; var _local3:b2Shape; var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; _local2 = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; _local3 = _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 DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local5:b2Color; 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; _local5 = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.GetLocalPosition()); _local8 = _local6.GetRadius(); _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 Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Island; var _local4:b2Contact; var _local5:b2Joint; var _local6:int; var _local7:Array; var _local8:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; _local3 = 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; }; _local4 = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; _local5 = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; _local6 = m_bodyCount; _local7 = new Array(_local6); _local8 = 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.GetManifoldCount() == 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, (s_enablePositionCorrection > 0), m_allowSleep); m_positionIterationCount = Math.max(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.GetNext(); }; m_broadPhase.Commit(); } public function GetGroundBody():b2Body{ return (m_groundBody); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array; var _local5:int; var _local6:int; _local4 = new Array(_arg3); _local5 = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); _local6 = 0; while (_local6 < _local5) { _arg2[_local6] = (_local4[_local6] as b2Shape); _local6++; }; return (_local5); } 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 _local8:b2Island; var _local9:int; var _local10:Array; 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; _local8 = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); _local9 = m_bodyCount; _local10 = 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.GetShape1(); _local4 = _local11.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); 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 = Math.min((((1 - _local18) * _local19) + _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.GetShape1(); _local4 = _local12.GetShape2(); _local5 = _local3.GetBody(); _local6 = _local4.GetBody(); _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.GetManifoldCount() == 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.GetManifoldCount() == 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 CreateDynamicBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, b2Body.e_dynamicType, 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 CreateJoint(_arg1:b2JointDef):b2Joint{ var _local2:b2Joint; var _local3:b2Body; var _local4:b2Shape; _local2 = 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.ResetProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local2:Boolean; var _local3:b2Body; var _local4:b2Body; var _local5:b2Body; var _local6:b2Shape; _local2 = _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; }; _local3 = _arg1.m_body1; _local4 = _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.ResetProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function CreateStaticBody(_arg1:b2BodyDef):b2Body{ var _local2:b2Body; if (m_lock == true){ return (null); }; _local2 = new b2Body(_arg1, b2Body.e_staticType, 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 Step(_arg1:Number, _arg2:int):void{ var _local3:b2TimeStep; m_lock = true; _local3 = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((s_enableTOI) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_lock = false; } } }//package Box2D.Dynamics
Section 73
//Cross_47 (BrainTest_fla.Cross_47) package BrainTest_fla { import flash.display.*; public dynamic class Cross_47 extends MovieClip { public function Cross_47(){ addFrameScript(15, frame16); } function frame16(){ stop(); } } }//package BrainTest_fla
Section 74
//Cross2_48 (BrainTest_fla.Cross2_48) package BrainTest_fla { import flash.display.*; public dynamic class Cross2_48 extends MovieClip { public function Cross2_48(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package BrainTest_fla
Section 75
//drawMc_144 (BrainTest_fla.drawMc_144) package BrainTest_fla { import flash.display.*; public dynamic class drawMc_144 extends MovieClip { public var Cursor:MovieClip; public var drawText:MovieClip; public var Zone:MovieClip; } }//package BrainTest_fla
Section 76
//drawMc2_233 (BrainTest_fla.drawMc2_233) package BrainTest_fla { import flash.display.*; public dynamic class drawMc2_233 extends MovieClip { public var DropBox:MovieClip; public var drawText:MovieClip; public var Zone:MovieClip; public function drawMc2_233(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package BrainTest_fla
Section 77
//drawMcMeez_259 (BrainTest_fla.drawMcMeez_259) package BrainTest_fla { import flash.display.*; public dynamic class drawMcMeez_259 extends MovieClip { public var topXY:MovieClip; public var centerXY:MovieClip; public var rightXY:MovieClip; public var leftXY:MovieClip; public var Cursor:MovieClip; public var bottomXY:MovieClip; public var Zone:MovieClip; } }//package BrainTest_fla
Section 78
//HintDirLevel_244 (BrainTest_fla.HintDirLevel_244) package BrainTest_fla { import flash.display.*; public dynamic class HintDirLevel_244 extends MovieClip { public var HintMc:MovieClip; } }//package BrainTest_fla
Section 79
//HintMath1Level_175 (BrainTest_fla.HintMath1Level_175) package BrainTest_fla { import flash.display.*; public dynamic class HintMath1Level_175 extends MovieClip { public var Hint0:MovieClip; public var Hint1:MovieClip; public var Hint2:MovieClip; public var Hint4:MovieClip; public var Hint7:MovieClip; public var Hint8:MovieClip; public var Hint5:MovieClip; public var Hint6:MovieClip; public var Hint3:MovieClip; public var Hint9:MovieClip; } }//package BrainTest_fla
Section 80
//HintMath2Level_238 (BrainTest_fla.HintMath2Level_238) package BrainTest_fla { import flash.display.*; public dynamic class HintMath2Level_238 extends MovieClip { public var Hint1:BoxPlus; public var Hint2:BoxMinus; public var Hint4:BoxDiv; public var Hint3:BoxMPly; } }//package BrainTest_fla
Section 81
//HintMeezLevel_245 (BrainTest_fla.HintMeezLevel_245) package BrainTest_fla { import flash.display.*; public dynamic class HintMeezLevel_245 extends MovieClip { public var Hint1:MovieClip; public var Hint2:MovieClip; public var Hint4:MovieClip; public var Hint5:MovieClip; public var Hint3:MovieClip; } }//package BrainTest_fla
Section 82
//HintWordLevel_231 (BrainTest_fla.HintWordLevel_231) package BrainTest_fla { import flash.display.*; public dynamic class HintWordLevel_231 extends MovieClip { public var Hint10:MovieClip; public var Hint12:MovieClip; public var Hint15:MovieClip; public var Hint17:MovieClip; public var Hint11:MovieClip; public var Hint19:MovieClip; public var Hint14:MovieClip; public var Hint20:MovieClip; public var Hint24:MovieClip; public var Hint13:MovieClip; public var Hint21:MovieClip; public var Hint22:MovieClip; public var Hint25:MovieClip; public var Hint26:MovieClip; public var Hint18:MovieClip; public var Hint16:MovieClip; public var Hint2:MovieClip; public var Hint4:MovieClip; public var Hint7:MovieClip; public var Hint8:MovieClip; public var Hint5:MovieClip; public var Hint6:MovieClip; public var Hint3:MovieClip; public var Hint23:MovieClip; public var Hint9:MovieClip; public var Hint1:MovieClip; } }//package BrainTest_fla
Section 83
//importWindow_66 (BrainTest_fla.importWindow_66) package BrainTest_fla { import flash.display.*; import flash.events.*; import flash.text.*; public dynamic class importWindow_66 extends MovieClip { public var nameField:TextField; public var invalidUserMessage:MovieClip; public var closeButton:SimpleButton; public var goButton:SimpleButton; public var getYourOwnButton:SimpleButton; public var modalBlocker:MovieClip; public function importWindow_66(){ addFrameScript(0, frame1); } function frame1(){ modalBlocker.addEventListener(MouseEvent.CLICK, function (){ }); modalBlocker.useHandCursor = false; } } }//package BrainTest_fla
Section 84
//innerLoadingBar_11 (BrainTest_fla.innerLoadingBar_11) package BrainTest_fla { import flash.display.*; public dynamic class innerLoadingBar_11 extends MovieClip { public var LoadPencil:MovieClip; } }//package BrainTest_fla
Section 85
//InsideScoreWin_38 (BrainTest_fla.InsideScoreWin_38) package BrainTest_fla { import flash.display.*; public dynamic class InsideScoreWin_38 extends MovieClip { public var nextButton:SimpleButton; public var quitButton:SimpleButton; public var scoreNos:MovieClip; } }//package BrainTest_fla
Section 86
//invalidUserMessage_71 (BrainTest_fla.invalidUserMessage_71) package BrainTest_fla { import flash.display.*; public dynamic class invalidUserMessage_71 extends MovieClip { public function invalidUserMessage_71(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package BrainTest_fla
Section 87
//LastAnswer_230 (BrainTest_fla.LastAnswer_230) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class LastAnswer_230 extends MovieClip { public var Q1:TextField; public var Q2:TextField; public var Q5:TextField; public var Q4:TextField; public var Q3:TextField; } }//package BrainTest_fla
Section 88
//LastAnswer1_143 (BrainTest_fla.LastAnswer1_143) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class LastAnswer1_143 extends MovieClip { public var Q1:TextField; public var Q2:TextField; public var Q5:TextField; public var Q4:TextField; public var Q3:TextField; } }//package BrainTest_fla
Section 89
//loadingBar_9 (BrainTest_fla.loadingBar_9) package BrainTest_fla { import flash.display.*; public dynamic class loadingBar_9 extends MovieClip { public var theMask:MovieClip; } }//package BrainTest_fla
Section 90
//loadingLogo_17 (BrainTest_fla.loadingLogo_17) package BrainTest_fla { import flash.display.*; public dynamic class loadingLogo_17 extends MovieClip { public function loadingLogo_17(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package BrainTest_fla
Section 91
//loadingPct_8 (BrainTest_fla.loadingPct_8) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class loadingPct_8 extends MovieClip { public var txtPercent:TextField; } }//package BrainTest_fla
Section 92
//LoadingText_72 (BrainTest_fla.LoadingText_72) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class LoadingText_72 extends MovieClip { public var txt:TextField; } }//package BrainTest_fla
Section 93
//MainTimeline (BrainTest_fla.MainTimeline) package BrainTest_fla { import flash.display.*; import flash.events.*; import caurina.transitions.*; import flash.filters.*; import flash.geom.*; import flash.utils.*; import flash.media.*; import mochi.*; import caurina.transitions.properties.*; import flash.text.*; import CPMStar.*; import flash.net.*; import flash.ui.*; import loader.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; import meez.*; public dynamic class MainTimeline extends MovieClip { public var bdOff1:MovieClip; public var bdOff2:MovieClip; public var pencilSound:PencilLoop; public var loaded:Number; public var CPMStarContentSpotID2:String; public var eraseSound:SoundErase; public var wrong2Sound:SoundWrong2; public var isSound:Boolean; public var ad:DisplayObject; public var scr:uint; public var playerScore:uint; public var playerRankButton:SimpleButton; public var ok1Sound:SoundOk1; public var guyButton:MovieClip; public var quitButton:SimpleButton; public var noButton:SimpleButton; public var so:SharedObject; public var practiceButton:SimpleButton; public var myContextMenu:ContextMenu; public var leveltxt:MovieClip; public var ad2:DisplayObject; public var creditsButton:SimpleButton; public var playerSlot:uint; public var tm:Timer; public var saved:Boolean; public var eraser:SimpleButton; public var bdOn1:MovieClip; public var sponsorMini:SimpleButton; public var hintLevel1:MovieClip; public var hintLevel2:MovieClip; public var hintLevel3:MovieClip; public var hintLevel4:MovieClip; public var bdOn2:MovieClip; public var Math1Button:SimpleButton; public var HintMc:MovieClip; public var hintLevel5:MovieClip; public var waitSound:SoundWait; public var isPractice:Boolean; public var adBox:MovieClip; public var ThinkButton:SimpleButton; public var timeAdd:TimeBonus; public var newPlayer:Boolean; public var CPMStarContentSpotID:String; public var initDone:Boolean; public var hitTestBox:MovieClip; public var fs:MovieClip; public var gamesCount:uint; public var tf:TextFormat; public var musicTransform:SoundTransform; public var ok2Sound:SoundOk2; public var levelComplete:uint; public var musicOn:SimpleButton; public var scoreText:TextField; public var moreButton:SimpleButton; public var sponsorButton:SimpleButton; public var falseText:TextField; public var yesButton:SimpleButton; public var pLevel:MovieClip; public var WordButton:SimpleButton; public var musicOff:SimpleButton; public var musicChannel:SoundChannel; public var playerLevel:uint; public var endSound:SoundEnd; public var isMusic:Boolean; public var allowQuit:Boolean; public var mScreen:MovieClip; public var brainScore:uint; public var qText:TextField; public var playerName:String; public var soundOn:SimpleButton; public var importButton:SimpleButton; public var Button:MovieClip; public var bgMusic1:Music1; public var wrong1Sound:SoundWrong1; public var selectButton:uint; public var mouseSound:SoundMouse; public var pickSound:SoundPick; public var dropSound:SoundDrop; public var menuButton:SimpleButton; public var tickSound:SoundTick; public var levels:Array; public var milkmanButton:MovieClip; public var meezLoadingScreen:LoaderScreen; public var bgMusic2:Music2; public var newGameButton:SimpleButton; public var AnalyzeButton:SimpleButton; public var time2Quit:Boolean; public var playButton:SimpleButton; public var timeText:TextField; public var unlockMsg:MovieClip; public var practiceMode:Array; public var mcScreen:MovieClip; public var timeRemove:TimeRemove; public var ssButton:SimpleButton; public var totalScore:MovieClip; public var saveWindow:SaveWindow; public var gameScore:uint; public var startSound:SoundStart; public var levelUp:Array; public var Math2Button:SimpleButton; public var soundOff:SimpleButton; public var BackMenuButton:SimpleButton; public var status:MovieClip; public var scrButton:SimpleButton; public var importWindow:MovieClip; public function MainTimeline(){ addFrameScript(0, frame1, 14, frame15, 29, frame30, 44, frame45, 54, frame55, 60, frame61, 66, frame67, 71, frame72, 76, frame77, 81, frame82, 89, frame90, 96, frame97); } public function onMore(_arg1:MouseEvent){ var request:URLRequest; var e = _arg1; request = new URLRequest("http://www.minijuegos.com"); try { navigateToURL(request, "_blank"); } catch(e:Error) { }; } public function onClickSave(_arg1:MouseEvent){ var _local2:MovieClip; _local2 = (_arg1.currentTarget as MovieClip); if (_local2.name == "btn1"){ if (((!((selectButton == 0))) && (!((selectButton == 1))))){ clearSelect(); }; selectButton = 1; if ((((so.data.name1 == "")) || ((so.data.name1 == undefined)))){ saveWindow.prompt.visible = true; saveWindow.save1.visible = false; saveWindow.prompt.x = (saveWindow.save1.x + 5); saveWindow.prompt.y = saveWindow.save1.y; saveWindow.prompt.txt.setSelection(0, saveWindow.prompt.txt.length); stage.focus = saveWindow.prompt.txt; } else { saveWindow.delButton.y = (saveWindow.save1.y - 28); saveWindow.delButton.visible = true; }; } else { if (_local2.name == "btn2"){ if (((!((selectButton == 0))) && (!((selectButton == 2))))){ clearSelect(); }; selectButton = 2; if ((((so.data.name2 == "")) || ((so.data.name2 == undefined)))){ saveWindow.prompt.visible = true; saveWindow.save2.visible = false; saveWindow.prompt.x = (saveWindow.save2.x + 5); saveWindow.prompt.y = saveWindow.save2.y; saveWindow.prompt.txt.setSelection(0, saveWindow.prompt.txt.length); stage.focus = saveWindow.prompt.txt; } else { saveWindow.delButton.y = (saveWindow.save2.y - 28); saveWindow.delButton.visible = true; }; } else { if (_local2.name == "btn3"){ if (((!((selectButton == 0))) && (!((selectButton == 3))))){ clearSelect(); }; selectButton = 3; if ((((so.data.name3 == "")) || ((so.data.name3 == undefined)))){ saveWindow.prompt.visible = true; saveWindow.save3.visible = false; saveWindow.prompt.x = (saveWindow.save3.x + 5); saveWindow.prompt.y = saveWindow.save3.y; saveWindow.prompt.txt.setSelection(0, saveWindow.prompt.txt.length); stage.focus = saveWindow.prompt.txt; } else { saveWindow.delButton.y = (saveWindow.save3.y - 28); saveWindow.delButton.visible = true; }; }; }; }; } public function onNo(_arg1:MouseEvent){ yesButton.visible = false; noButton.visible = false; } public function onSubmitScore(_arg1:Event){ var e = _arg1; MochiScores.showLeaderboard({boardID:"433f3c8f1328c9db", score:gameScore, onDisplay:function (){ mScreen.x = 0; }, onClose:function (){ mScreen.x = 700; }}); ssButton.visible = false; menuButton.x = (menuButton.x - 60); } public function onHideComplete(){ removeEventListener(Event.ENTER_FRAME, onUpdateLoaded); playButton.visible = true; } public function onLevel1(_arg1:MouseEvent){ isPractice = true; if (musicChannel){ musicChannel.stop(); musicChannel = null; }; if (isMusic){ musicChannel = bgMusic2.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; }; gotoAndStop("Level1"); } public function onMusicOn(_arg1:MouseEvent){ if (!isMusic){ isMusic = true; musicChannel = bgMusic2.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; bdOn1.visible = true; bdOff1.visible = false; }; } public function onMusicOff(_arg1:MouseEvent){ if (isMusic){ isMusic = false; if (musicChannel){ musicChannel.stop(); musicChannel = null; }; bdOn1.visible = false; bdOff1.visible = true; }; } public function onSponsor(_arg1:MouseEvent){ var request:URLRequest; var e = _arg1; request = new URLRequest("http://www.minijuegos.com"); try { navigateToURL(request, "_blank"); } catch(e:Error) { }; } public function timerHandler(_arg1:TimerEvent){ var e = _arg1; if (scr < (playerScore + gameScore)){ scr = (scr + 3); if (scr > (playerScore + gameScore)){ scr = (playerScore + gameScore); }; fs.finalScore.text = String((scr - playerScore)); totalScore.txt.text = String(scr); pLevel.bar.x = (-(pLevel.bar.width) + (pLevel.bar.width * (scr / levelUp[(playerLevel - 1)]))); if (scr > levelUp[(playerLevel - 1)]){ playerLevel++; leveltxt.txt.text = playerLevel.toString(); playIt(startSound); if (playerLevel <= 4){ Tweener.addTween(unlockMsg, {x:65, y:296, visible:true}); Tweener.addTween(unlockMsg, {x:45, y:292, transition:"easeInBounce", time:1}); Tweener.addTween(unlockMsg, {x:57, y:294, delay:1, transition:"easeInBounce", time:1}); }; }; } else { tm.stop(); tm.removeEventListener(TimerEvent.TIMER, timerHandler); if (gameScore >= (1000 * gamesCount)){ fs.finalGrade.text = "A"; } else { if (gameScore >= (800 * gamesCount)){ fs.finalGrade.text = "B"; } else { if (gameScore >= (600 * gamesCount)){ fs.finalGrade.text = "C"; } else { if (gameScore >= (200 * gamesCount)){ fs.finalGrade.text = "D"; } else { fs.finalGrade.text = "F"; }; }; }; }; playerScore = (playerScore + gameScore); try { if (selectButton == 1){ so.data.level1 = playerLevel; so.data.score1 = playerScore; so.data.p11 = practiceMode[0]; so.data.p12 = practiceMode[1]; so.data.p13 = practiceMode[2]; so.data.p14 = practiceMode[3]; so.data.p15 = practiceMode[4]; } else { if (selectButton == 2){ so.data.level2 = playerLevel; so.data.score2 = playerScore; so.data.p21 = practiceMode[0]; so.data.p22 = practiceMode[1]; so.data.p23 = practiceMode[2]; so.data.p24 = practiceMode[3]; so.data.p25 = practiceMode[4]; } else { if (selectButton == 3){ so.data.level3 = playerLevel; so.data.score3 = playerScore; so.data.p31 = practiceMode[0]; so.data.p32 = practiceMode[1]; so.data.p33 = practiceMode[2]; so.data.p34 = practiceMode[3]; so.data.p35 = practiceMode[4]; }; }; }; so.flush(); } catch(e:Error) { }; }; } public function onPractice(_arg1:MouseEvent){ gotoAndStop("Practice"); } function frame15(){ stop(); importWindow.visible = false; guyButton.addEventListener("mouseOver", onRollOverGlow); guyButton.addEventListener("mouseOut", onRollOutGlow); milkmanButton.addEventListener("mouseOut", onRollOutGlow); milkmanButton.addEventListener("mouseOver", onRollOverGlow); guyButton.addEventListener(MouseEvent.CLICK, onReleaseGuy); milkmanButton.addEventListener(MouseEvent.CLICK, onReleaseMilkman); importButton.addEventListener(MouseEvent.CLICK, onImportRelease); this.importWindow.closeButton.addEventListener(MouseEvent.CLICK, onCloseRelease); this.importWindow.getYourOwnButton.addEventListener(MouseEvent.CLICK, onGetRelease); this.importWindow.goButton.addEventListener(MouseEvent.CLICK, onGoButtonPress); } function frame1(){ stop(); playButton.visible = false; CPMStarContentSpotID = "203QE8304CE0"; ad = new AdLoader(CPMStarContentSpotID); adBox.addChild(ad); myContextMenu = new ContextMenu(); myContextMenu.hideBuiltInItems(); this.contextMenu = myContextMenu; playButton.addEventListener(MouseEvent.CLICK, onStart); MochiBot.track(this, "59ee32f2"); MochiServices.connect("9c0a4cc3e4677999", this); loaded = Math.round(((this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal) * 100)); if (loaded >= 100){ this.meezLoadingScreen.showLoader(); playButton.visible = true; }; this.meezLoadingScreen.addListener(this); this.meezLoadingScreen.showLoader(); this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onUpdateLoaded); } public function onSoundOn(_arg1:MouseEvent){ if (!isSound){ isSound = true; bdOn2.visible = true; bdOff2.visible = false; }; } public function onCloseRelease(_arg1:MouseEvent){ importWindow.visible = false; } public function onClickDel(_arg1:MouseEvent){ var e = _arg1; try { if (selectButton == 1){ so.data.name1 = ""; so.data.level1 = 1; so.data.score1 = 0; so.flush(); saveWindow.save1.text = "No Game Found"; saveWindow.save1.setTextFormat(tf); clearSelect(); } else { if (selectButton == 2){ so.data.name2 = ""; so.data.level2 = 1; so.data.score2 = 0; so.flush(); saveWindow.save2.text = "No Game Found"; saveWindow.save2.setTextFormat(tf); clearSelect(); } else { if (selectButton == 3){ so.data.name3 = ""; so.data.level3 = 1; so.data.score3 = 0; so.flush(); saveWindow.save3.text = "No Game Found"; saveWindow.save3.setTextFormat(tf); clearSelect(); }; }; }; } catch(error:Error) { }; } public function onYes(_arg1:MouseEvent){ if (allowQuit){ time2Quit = true; } else { yesButton.visible = false; noButton.visible = false; }; } public function onGoButtonPress(_arg1:MouseEvent){ } function frame45(){ initDone = false; allowQuit = true; time2Quit = false; isPractice = false; Load(); stop(); newGameButton.addEventListener(MouseEvent.CLICK, onNewGameRelease); practiceButton.addEventListener(MouseEvent.CLICK, onPractice); scrButton.addEventListener(MouseEvent.CLICK, onScores); moreButton.addEventListener(MouseEvent.CLICK, onMore); creditsButton.addEventListener(MouseEvent.CLICK, onCredits); sponsorButton.addEventListener(MouseEvent.CLICK, onMore); tf = new TextFormat(); tf.bold = true; saveWindow.save1.setTextFormat(tf); saveWindow.btn1.buttonMode = true; saveWindow.btn1.addEventListener(MouseEvent.MOUSE_OVER, onOverSave); saveWindow.btn1.addEventListener(MouseEvent.MOUSE_OUT, onOutSave); saveWindow.btn1.addEventListener(MouseEvent.CLICK, onClickSave); saveWindow.save2.setTextFormat(tf); saveWindow.btn2.buttonMode = true; saveWindow.btn2.addEventListener(MouseEvent.MOUSE_OVER, onOverSave); saveWindow.btn2.addEventListener(MouseEvent.MOUSE_OUT, onOutSave); saveWindow.btn2.addEventListener(MouseEvent.CLICK, onClickSave); saveWindow.save3.setTextFormat(tf); saveWindow.btn3.buttonMode = true; saveWindow.btn3.addEventListener(MouseEvent.MOUSE_OVER, onOverSave); saveWindow.btn3.addEventListener(MouseEvent.MOUSE_OUT, onOutSave); saveWindow.btn3.addEventListener(MouseEvent.CLICK, onClickSave); saveWindow.delButton.addEventListener(MouseEvent.CLICK, onClickDel); saveWindow.okButton.addEventListener(MouseEvent.CLICK, onClickOk); saveWindow.cancelButton.addEventListener(MouseEvent.CLICK, onClickCancel); saveWindow.delButton.visible = false; saveWindow.prompt.visible = false; } public function onClickOk(_arg1:MouseEvent){ var e = _arg1; if (selectButton == 0){ return; }; try { playerSlot = selectButton; if (selectButton == 1){ playerLevel = so.data.level1; playerScore = so.data.score1; if (saveWindow.prompt.visible == true){ so.data.p11 = 1; so.data.p12 = 1; so.data.p13 = 1; so.data.p14 = 1; so.data.p15 = 1; practiceMode = new Array(1, 1, 1, 1, 1); so.data.name1 = saveWindow.prompt.txt.text; } else { practiceMode = new Array(so.data.p11, so.data.p12, so.data.p13, so.data.p14, so.data.p15); }; playerName = so.data.name1; } else { if (selectButton == 2){ playerLevel = so.data.level2; playerScore = so.data.score2; if (saveWindow.prompt.visible == true){ so.data.p21 = 1; so.data.p22 = 1; so.data.p23 = 1; so.data.p24 = 1; so.data.p25 = 1; practiceMode = new Array(1, 1, 1, 1, 1); so.data.name2 = saveWindow.prompt.txt.text; } else { practiceMode = new Array(so.data.p21, so.data.p22, so.data.p23, so.data.p24, so.data.p25); }; playerName = so.data.name2; } else { if (selectButton == 3){ playerLevel = so.data.level3; playerScore = so.data.score3; if (saveWindow.prompt.visible == true){ so.data.p31 = 1; so.data.p32 = 1; so.data.p33 = 1; so.data.p34 = 1; so.data.p35 = 1; practiceMode = new Array(1, 1, 1, 1, 1); so.data.name3 = saveWindow.prompt.txt.text; } else { practiceMode = new Array(so.data.p31, so.data.p32, so.data.p33, so.data.p34, so.data.p35); }; playerName = so.data.name3; }; }; }; if (saveWindow.prompt.visible == true){ so.flush(); }; } catch(e:Error) { }; theRealNew(); } public function onClickCancel(_arg1:MouseEvent){ clearSelect(); saved = false; Tweener.addTween(saveWindow, {y:415, time:0.5}); } function frame30(){ pencilSound = new PencilLoop(); tickSound = new SoundTick(); startSound = new SoundStart(); endSound = new SoundEnd(); eraseSound = new SoundErase(); waitSound = new SoundWait(); wrong1Sound = new SoundWrong1(); wrong2Sound = new SoundWrong2(); ok1Sound = new SoundOk1(); ok2Sound = new SoundOk2(); pickSound = new SoundPick(); dropSound = new SoundDrop(); mouseSound = new SoundMouse(); saved = false; playerSlot = 0; playerLevel = 1; playerScore = 0; gamesCount = 2; selectButton = 0; bgMusic1 = new Music1(); bgMusic2 = new Music2(); isMusic = true; isSound = true; musicTransform = new SoundTransform(0.25); if (isMusic){ musicChannel = bgMusic1.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; }; gotoAndStop("mainMenu"); } public function onScores(_arg1:MouseEvent){ var e = _arg1; MochiScores.showLeaderboard({boardID:"433f3c8f1328c9db", onDisplay:function (){ mcScreen.x = 0; }, onClose:function (){ var _local1:*; mcScreen.x = 700; }, onError:function (){ var _local1:*; mcScreen.x = 700; }}); } function frame61(){ if (!initDone){ initGame(); }; } public function onSoundOff(_arg1:MouseEvent){ if (isSound){ isSound = false; bdOn2.visible = false; bdOff2.visible = true; }; } function frame55(){ if (!initDone){ initGame(); }; sponsorMini.addEventListener(MouseEvent.CLICK, onSponsor); } function frame67(){ if (!initDone){ initGame(); }; stop(); } public function onGetRelease(_arg1:MouseEvent){ } public function onReleaseGuy(_arg1:MouseEvent){ gotoAndStop("loadAvatars"); } public function Load(){ try { so = SharedObject.getLocal("ShahSoft-BrainTest"); if (so.size == 0){ so.data.name1 = ""; so.data.level1 = 1; so.data.score1 = 0; so.data.name2 = ""; so.data.level2 = 1; so.data.score2 = 0; so.data.name3 = ""; so.data.level3 = 1; so.data.score3 = 0; so.flush(); } else { if (((!((so.data.name1 == undefined))) && (!((so.data.name1 == ""))))){ saveWindow.save1.text = ((so.data.name1 + " - Score: ") + so.data.score1); }; if (((!((so.data.name2 == undefined))) && (!((so.data.name2 == ""))))){ saveWindow.save2.text = ((so.data.name2 + " - Score: ") + so.data.score2); }; if (((!((so.data.name3 == undefined))) && (!((so.data.name3 == ""))))){ saveWindow.save3.text = ((so.data.name3 + " - Score: ") + so.data.score3); }; }; } catch(error:Error) { return; }; } public function onReleaseMilkman(_arg1:MouseEvent){ gotoAndStop("loadAvatars"); } function frame77(){ if (!initDone){ initGame(); }; stop(); } public function onImportRelease(_arg1:MouseEvent){ importWindow.visible = true; stage.focus = importWindow.nameField; } public function onQuit(_arg1:MouseEvent){ if (allowQuit){ yesButton.visible = true; noButton.visible = true; }; } function frame90(){ CPMStarContentSpotID2 = "204QA9F99FEE"; ad2 = new AdLoader(CPMStarContentSpotID2); adBox.addChild(ad2); BackMenuButton.addEventListener(MouseEvent.CLICK, onBack); Math1Button.addEventListener(MouseEvent.CLICK, onLevel1); WordButton.addEventListener(MouseEvent.CLICK, onLevel2); Math2Button.addEventListener(MouseEvent.CLICK, onLevel3); ThinkButton.addEventListener(MouseEvent.CLICK, onLevel4); AnalyzeButton.addEventListener(MouseEvent.CLICK, onLevel5); gameScore = 0; } function frame82(){ levelUp = new Array(500, 5000, 20000, 50000, 200000, 1000000, 99999999); tm = new Timer(1); scr = playerScore; newPlayer = true; FilterShortcuts.init(); ssButton.visible = true; if (isMusic){ if (musicChannel){ musicChannel.stop(); }; musicChannel = bgMusic1.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; }; tm.addEventListener(TimerEvent.TIMER, timerHandler); fs.finalScore.text = String(scr); leveltxt.txt.text = playerLevel.toString(); unlockMsg.visible = false; tm.start(); menuButton.addEventListener(MouseEvent.CLICK, onMenuButtonRelease); ssButton.addEventListener(MouseEvent.CLICK, onSubmitScore); playerRankButton.addEventListener(MouseEvent.CLICK, onPlayerRank); } public function initGame(){ initDone = true; yesButton.visible = false; noButton.visible = false; musicOn.addEventListener(MouseEvent.CLICK, onMusicOn); musicOff.addEventListener(MouseEvent.CLICK, onMusicOff); soundOn.addEventListener(MouseEvent.CLICK, onSoundOn); soundOff.addEventListener(MouseEvent.CLICK, onSoundOff); quitButton.addEventListener(MouseEvent.CLICK, onQuit); yesButton.addEventListener(MouseEvent.CLICK, onYes); noButton.addEventListener(MouseEvent.CLICK, onNo); if (isMusic){ bdOn1.visible = true; bdOff1.visible = false; } else { bdOn1.visible = false; bdOff1.visible = true; }; if (isSound){ bdOn2.visible = true; bdOff2.visible = false; } else { bdOn2.visible = false; bdOff2.visible = true; }; } public function onRollOutGlow(_arg1:MouseEvent){ _arg1.target.filters = []; } public function onBack(_arg1:MouseEvent){ removeChild(adBox); gotoAndStop("mainMenu"); } public function onOverSave(_arg1:MouseEvent){ var _local2:MovieClip; _local2 = (_arg1.currentTarget as MovieClip); if (_local2.name == "btn1"){ if (selectButton != 1){ playIt(mouseSound); }; saveWindow.hide1.visible = false; } else { if (_local2.name == "btn2"){ if (selectButton != 2){ playIt(mouseSound); }; saveWindow.hide2.visible = false; } else { if (_local2.name == "btn3"){ if (selectButton != 3){ playIt(mouseSound); }; saveWindow.hide3.visible = false; }; }; }; } public function onMenuButtonRelease(_arg1:Event){ gotoAndStop("mainMenu"); } public function theRealNew(){ var _local1:Array; var _local2:uint; var _local3:int; _local1 = new Array("Level3", "Level5"); _local2 = 2; if (playerLevel == 2){ _local1.push("Level1"); _local2 = 3; } else { if (playerLevel == 3){ _local1.push("Level1", "Level4"); _local2 = 4; } else { if (playerLevel == 4){ _local1.push("Level1", "Level4", "Level2"); _local2 = 5; }; }; }; gamesCount = _local2; gameScore = 0; if (musicChannel){ musicChannel.stop(); musicChannel = null; }; if (isMusic){ musicChannel = bgMusic2.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; }; levels = new Array("GameOver"); _local3 = 1; while (_local3 < _local2) { levels[_local3] = _local1.splice(Math.floor((Math.random() * _local1.length)), 1); _local3++; }; levels[_local2] = _local1[0]; gameScore = 0; gotoAndStop(levels.pop()); } public function onOutSave(_arg1:MouseEvent){ var _local2:MovieClip; _local2 = (_arg1.currentTarget as MovieClip); if ((((_local2.name == "btn1")) && (!((selectButton == 1))))){ saveWindow.hide1.visible = true; } else { if ((((_local2.name == "btn2")) && (!((selectButton == 2))))){ saveWindow.hide2.visible = true; } else { if ((((_local2.name == "btn3")) && (!((selectButton == 3))))){ saveWindow.hide3.visible = true; }; }; }; } function frame97(){ menuButton.addEventListener(MouseEvent.CLICK, onBackClick); } public function playIt(_arg1:Sound){ if (isSound){ _arg1.play(); }; } function frame72(){ if (!initDone){ initGame(); }; stop(); } public function onRollOverGlow(_arg1:MouseEvent){ _arg1.target.filters = [new GlowFilter()]; } public function nextGame(){ if (levels.length > 1){ levelComplete++; }; timeText.text = "60"; gotoAndStop(levels.pop()); } public function onUpdateLoaded(_arg1:Event){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:Number; _local2 = (this.loaderInfo.url.indexOf("://") + 3); _local3 = this.loaderInfo.url.indexOf("/", _local2); _local4 = this.loaderInfo.url.substring(_local2, _local3); _local5 = (_local4.lastIndexOf(".") - 1); _local6 = (_local4.lastIndexOf(".", _local5) + 1); _local4 = _local4.substring(_local6, _local4.length); if (((((!((_local4 == "newgrounds.com"))) && (!((_local4 == "shah-soft.com"))))) && (!((_local4 == "minijuegos.com"))))){ }; _local7 = Math.round(((this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal) * 100)); if (this.meezLoadingScreen){ this.meezLoadingScreen.setPercent(_local7); }; if (_local7 >= 100){ if (this.meezLoadingScreen){ this.meezLoadingScreen.hideLoader(); }; }; } public function onNewGameRelease(_arg1:MouseEvent){ var e = _arg1; if (((!(saved)) || ((playerSlot == 0)))){ Tweener.addTween(saveWindow, {y:15, time:1, onStart:function (){ this.scaleX = 0.9; this.scaleY = 0.9; }}); Tweener.addTween(saveWindow, {x:130, scaleX:1, scaleY:1, transition:"easeInSine", time:0.5, delay:0.5}); saved = true; } else { theRealNew(); }; } public function onCredits(_arg1:MouseEvent){ gotoAndStop("Credits"); } public function clearSelect(){ saveWindow.delButton.visible = false; saveWindow.prompt.visible = false; saveWindow.save1.visible = true; saveWindow.save2.visible = true; saveWindow.save3.visible = true; if (selectButton == 1){ saveWindow.hide1.visible = true; } else { if (selectButton == 2){ saveWindow.hide2.visible = true; } else { saveWindow.hide3.visible = true; }; }; selectButton = 0; } public function onBackClick(_arg1:MouseEvent){ gotoAndStop("mainMenu"); } public function onStart(_arg1:MouseEvent){ gotoAndStop("loadAvatars"); removeChild(adBox); } public function invalidPlayer(_arg1, _arg2){ importWindow.invalidUserMessage.gotoAndPlay("show"); } public function onLevel2(_arg1:MouseEvent){ isPractice = true; if (musicChannel){ musicChannel.stop(); musicChannel = null; }; if (isMusic){ musicChannel = bgMusic2.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; }; gotoAndStop("Level2"); } public function onLevel3(_arg1:MouseEvent){ isPractice = true; if (musicChannel){ musicChannel.stop(); musicChannel = null; }; if (isMusic){ musicChannel = bgMusic2.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; }; gotoAndStop("Level3"); } public function onPlayerRank(_arg1:Event){ var e = _arg1; if (newPlayer){ MochiScores.showLeaderboard({boardID:"4d07cb8fbb556dc3", score:playerScore, name:playerName, onDisplay:function (){ mScreen.x = 0; }, onClose:function (){ mScreen.x = 700; }}); newPlayer = false; } else { MochiScores.showLeaderboard({boardID:"4d07cb8fbb556dc3", onDisplay:function (){ mScreen.x = 0; }, onClose:function (){ mScreen.x = 700; }}); }; } public function validPlayer(_arg1){ gotoAndStop("loadAvatars"); } public function onLevel4(_arg1:MouseEvent){ isPractice = true; if (musicChannel){ musicChannel.stop(); musicChannel = null; }; if (isMusic){ musicChannel = bgMusic2.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; }; gotoAndStop("Level4"); } public function onLevel5(_arg1:MouseEvent){ isPractice = true; if (musicChannel){ musicChannel.stop(); musicChannel = null; }; if (isMusic){ musicChannel = bgMusic2.play(0, int.MAX_VALUE); musicChannel.soundTransform = musicTransform; }; gotoAndStop("Level5"); } } }//package BrainTest_fla
Section 94
//MeezButton_240 (BrainTest_fla.MeezButton_240) package BrainTest_fla { import flash.display.*; public dynamic class MeezButton_240 extends MovieClip { public function MeezButton_240(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package BrainTest_fla
Section 95
//NamePrompt_88 (BrainTest_fla.NamePrompt_88) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class NamePrompt_88 extends MovieClip { public var txt:TextField; } }//package BrainTest_fla
Section 96
//PlayerLevel_264 (BrainTest_fla.PlayerLevel_264) package BrainTest_fla { import flash.display.*; public dynamic class PlayerLevel_264 extends MovieClip { public var bar:MovieClip; } }//package BrainTest_fla
Section 97
//ScoreNos_42 (BrainTest_fla.ScoreNos_42) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class ScoreNos_42 extends MovieClip { public var testScore:TextField; public var brainScore:TextField; public var qAns:TextField; public var qAsked:TextField; } }//package BrainTest_fla
Section 98
//ScoreNos2_261 (BrainTest_fla.ScoreNos2_261) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class ScoreNos2_261 extends MovieClip { public var finalGrade:TextField; public var finalScore:TextField; } }//package BrainTest_fla
Section 99
//ScoreNos3_270 (BrainTest_fla.ScoreNos3_270) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class ScoreNos3_270 extends MovieClip { public var txt:TextField; } }//package BrainTest_fla
Section 100
//ScoreNos4_267 (BrainTest_fla.ScoreNos4_267) package BrainTest_fla { import flash.display.*; import flash.text.*; public dynamic class ScoreNos4_267 extends MovieClip { public var txt:TextField; } }//package BrainTest_fla
Section 101
//SoundsLoader_45 (BrainTest_fla.SoundsLoader_45) package BrainTest_fla { import flash.display.*; public dynamic class SoundsLoader_45 extends MovieClip { public function SoundsLoader_45(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package BrainTest_fla
Section 102
//Tick_50 (BrainTest_fla.Tick_50) package BrainTest_fla { import flash.display.*; public dynamic class Tick_50 extends MovieClip { public function Tick_50(){ addFrameScript(10, frame11); } function frame11(){ stop(); } } }//package BrainTest_fla
Section 103
//TitleAnim_77 (BrainTest_fla.TitleAnim_77) package BrainTest_fla { import flash.display.*; public dynamic class TitleAnim_77 extends MovieClip { public function TitleAnim_77(){ addFrameScript(14, frame15); } function frame15(){ stop(); } } }//package BrainTest_fla
Section 104
//FilterShortcuts (caurina.transitions.properties.FilterShortcuts) package caurina.transitions.properties { import flash.display.*; import caurina.transitions.*; import flash.filters.*; import flash.geom.*; public class FilterShortcuts { public static function init():void{ Tweener.registerSpecialPropertySplitter("_filter", _filter_splitter); Tweener.registerSpecialProperty("_Bevel_angle", _filter_property_get, _filter_property_set, [BevelFilter, "angle"]); Tweener.registerSpecialProperty("_Bevel_blurX", _filter_property_get, _filter_property_set, [BevelFilter, "blurX"]); Tweener.registerSpecialProperty("_Bevel_blurY", _filter_property_get, _filter_property_set, [BevelFilter, "blurY"]); Tweener.registerSpecialProperty("_Bevel_distance", _filter_property_get, _filter_property_set, [BevelFilter, "distance"]); Tweener.registerSpecialProperty("_Bevel_highlightAlpha", _filter_property_get, _filter_property_set, [BevelFilter, "highlightAlpha"]); Tweener.registerSpecialPropertySplitter("_Bevel_highlightColor", _generic_color_splitter, ["_Bevel_highlightColor_r", "_Bevel_highlightColor_g", "_Bevel_highlightColor_b"]); Tweener.registerSpecialProperty("_Bevel_highlightColor_r", _filter_property_get, _filter_property_set, [BevelFilter, "highlightColor", "color", "r"]); Tweener.registerSpecialProperty("_Bevel_highlightColor_g", _filter_property_get, _filter_property_set, [BevelFilter, "highlightColor", "color", "g"]); Tweener.registerSpecialProperty("_Bevel_highlightColor_b", _filter_property_get, _filter_property_set, [BevelFilter, "highlightColor", "color", "b"]); Tweener.registerSpecialProperty("_Bevel_knockout", _filter_property_get, _filter_property_set, [BevelFilter, "knockout"]); Tweener.registerSpecialProperty("_Bevel_quality", _filter_property_get, _filter_property_set, [BevelFilter, "quality"]); Tweener.registerSpecialProperty("_Bevel_shadowAlpha", _filter_property_get, _filter_property_set, [BevelFilter, "shadowAlpha"]); Tweener.registerSpecialPropertySplitter("_Bevel_shadowColor", _generic_color_splitter, ["_Bevel_shadowColor_r", "_Bevel_shadowColor_g", "_Bevel_shadowColor_b"]); Tweener.registerSpecialProperty("_Bevel_shadowColor_r", _filter_property_get, _filter_property_set, [BevelFilter, "shadowColor", "color", "r"]); Tweener.registerSpecialProperty("_Bevel_shadowColor_g", _filter_property_get, _filter_property_set, [BevelFilter, "shadowColor", "color", "g"]); Tweener.registerSpecialProperty("_Bevel_shadowColor_b", _filter_property_get, _filter_property_set, [BevelFilter, "shadowColor", "color", "b"]); Tweener.registerSpecialProperty("_Bevel_strength", _filter_property_get, _filter_property_set, [BevelFilter, "strength"]); Tweener.registerSpecialProperty("_Bevel_type", _filter_property_get, _filter_property_set, [BevelFilter, "type"]); Tweener.registerSpecialProperty("_Blur_blurX", _filter_property_get, _filter_property_set, [BlurFilter, "blurX"]); Tweener.registerSpecialProperty("_Blur_blurY", _filter_property_get, _filter_property_set, [BlurFilter, "blurY"]); Tweener.registerSpecialProperty("_Blur_quality", _filter_property_get, _filter_property_set, [BlurFilter, "quality"]); Tweener.registerSpecialPropertySplitter("_ColorMatrix_matrix", _generic_matrix_splitter, [[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], ["_ColorMatrix_matrix_rr", "_ColorMatrix_matrix_rg", "_ColorMatrix_matrix_rb", "_ColorMatrix_matrix_ra", "_ColorMatrix_matrix_ro", "_ColorMatrix_matrix_gr", "_ColorMatrix_matrix_gg", "_ColorMatrix_matrix_gb", "_ColorMatrix_matrix_ga", "_ColorMatrix_matrix_go", "_ColorMatrix_matrix_br", "_ColorMatrix_matrix_bg", "_ColorMatrix_matrix_bb", "_ColorMatrix_matrix_ba", "_ColorMatrix_matrix_bo", "_ColorMatrix_matrix_ar", "_ColorMatrix_matrix_ag", "_ColorMatrix_matrix_ab", "_ColorMatrix_matrix_aa", "_ColorMatrix_matrix_ao"]]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_rr", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 0]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_rg", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 1]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_rb", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 2]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_ra", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 3]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_ro", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 4]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_gr", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 5]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_gg", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 6]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_gb", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 7]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_ga", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 8]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_go", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 9]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_br", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 10]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_bg", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 11]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_bb", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 12]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_ba", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 13]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_bo", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 14]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_ar", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 15]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_ag", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 16]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_ab", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 17]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_aa", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 18]); Tweener.registerSpecialProperty("_ColorMatrix_matrix_ao", _filter_property_get, _filter_property_set, [ColorMatrixFilter, "matrix", "matrix", 19]); Tweener.registerSpecialProperty("_Convolution_alpha", _filter_property_get, _filter_property_set, [ConvolutionFilter, "alpha"]); Tweener.registerSpecialProperty("_Convolution_bias", _filter_property_get, _filter_property_set, [ConvolutionFilter, "bias"]); Tweener.registerSpecialProperty("_Convolution_clamp", _filter_property_get, _filter_property_set, [ConvolutionFilter, "clamp"]); Tweener.registerSpecialPropertySplitter("_Convolution_color", _generic_color_splitter, ["_Convolution_color_r", "_Convolution_color_g", "_Convolution_color_b"]); Tweener.registerSpecialProperty("_Convolution_color_r", _filter_property_get, _filter_property_set, [ConvolutionFilter, "color", "color", "r"]); Tweener.registerSpecialProperty("_Convolution_color_g", _filter_property_get, _filter_property_set, [ConvolutionFilter, "color", "color", "g"]); Tweener.registerSpecialProperty("_Convolution_color_b", _filter_property_get, _filter_property_set, [ConvolutionFilter, "color", "color", "b"]); Tweener.registerSpecialProperty("_Convolution_divisor", _filter_property_get, _filter_property_set, [ConvolutionFilter, "divisor"]); Tweener.registerSpecialProperty("_Convolution_matrixX", _filter_property_get, _filter_property_set, [ConvolutionFilter, "matrixX"]); Tweener.registerSpecialProperty("_Convolution_matrixY", _filter_property_get, _filter_property_set, [ConvolutionFilter, "matrixY"]); Tweener.registerSpecialProperty("_Convolution_preserveAlpha", _filter_property_get, _filter_property_set, [ConvolutionFilter, "preserveAlpha"]); Tweener.registerSpecialProperty("_DisplacementMap_alpha", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "alpha"]); Tweener.registerSpecialPropertySplitter("_DisplacementMap_color", _generic_color_splitter, ["_DisplacementMap_color_r", "_DisplacementMap_color_r", "_DisplacementMap_color_r"]); Tweener.registerSpecialProperty("_DisplacementMap_color_r", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "color", "color", "r"]); Tweener.registerSpecialProperty("_DisplacementMap_color_g", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "color", "color", "g"]); Tweener.registerSpecialProperty("_DisplacementMap_color_b", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "color", "color", "b"]); Tweener.registerSpecialProperty("_DisplacementMap_componentX", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "componentX"]); Tweener.registerSpecialProperty("_DisplacementMap_componentY", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "componentY"]); Tweener.registerSpecialProperty("_DisplacementMap_mapBitmap", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "mapBitmap"]); Tweener.registerSpecialProperty("_DisplacementMap_mapPoint", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "mapPoint"]); Tweener.registerSpecialProperty("_DisplacementMap_mode", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "mode"]); Tweener.registerSpecialProperty("_DisplacementMap_scaleX", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "scaleX"]); Tweener.registerSpecialProperty("_DisplacementMap_scaleY", _filter_property_get, _filter_property_set, [DisplacementMapFilter, "scaleY"]); Tweener.registerSpecialProperty("_DropShadow_alpha", _filter_property_get, _filter_property_set, [DropShadowFilter, "alpha"]); Tweener.registerSpecialProperty("_DropShadow_angle", _filter_property_get, _filter_property_set, [DropShadowFilter, "angle"]); Tweener.registerSpecialProperty("_DropShadow_blurX", _filter_property_get, _filter_property_set, [DropShadowFilter, "blurX"]); Tweener.registerSpecialProperty("_DropShadow_blurY", _filter_property_get, _filter_property_set, [DropShadowFilter, "blurY"]); Tweener.registerSpecialPropertySplitter("_DropShadow_color", _generic_color_splitter, ["_DropShadow_color_r", "_DropShadow_color_g", "_DropShadow_color_b"]); Tweener.registerSpecialProperty("_DropShadow_color_r", _filter_property_get, _filter_property_set, [DropShadowFilter, "color", "color", "r"]); Tweener.registerSpecialProperty("_DropShadow_color_g", _filter_property_get, _filter_property_set, [DropShadowFilter, "color", "color", "g"]); Tweener.registerSpecialProperty("_DropShadow_color_b", _filter_property_get, _filter_property_set, [DropShadowFilter, "color", "color", "b"]); Tweener.registerSpecialProperty("_DropShadow_distance", _filter_property_get, _filter_property_set, [DropShadowFilter, "distance"]); Tweener.registerSpecialProperty("_DropShadow_hideObject", _filter_property_get, _filter_property_set, [DropShadowFilter, "hideObject"]); Tweener.registerSpecialProperty("_DropShadow_inner", _filter_property_get, _filter_property_set, [DropShadowFilter, "inner"]); Tweener.registerSpecialProperty("_DropShadow_knockout", _filter_property_get, _filter_property_set, [DropShadowFilter, "knockout"]); Tweener.registerSpecialProperty("_DropShadow_quality", _filter_property_get, _filter_property_set, [DropShadowFilter, "quality"]); Tweener.registerSpecialProperty("_DropShadow_strength", _filter_property_get, _filter_property_set, [DropShadowFilter, "strength"]); Tweener.registerSpecialProperty("_Glow_alpha", _filter_property_get, _filter_property_set, [GlowFilter, "alpha"]); Tweener.registerSpecialProperty("_Glow_blurX", _filter_property_get, _filter_property_set, [GlowFilter, "blurX"]); Tweener.registerSpecialProperty("_Glow_blurY", _filter_property_get, _filter_property_set, [GlowFilter, "blurY"]); Tweener.registerSpecialPropertySplitter("_Glow_color", _generic_color_splitter, ["_Glow_color_r", "_Glow_color_g", "_Glow_color_b"]); Tweener.registerSpecialProperty("_Glow_color_r", _filter_property_get, _filter_property_set, [GlowFilter, "color", "color", "r"]); Tweener.registerSpecialProperty("_Glow_color_g", _filter_property_get, _filter_property_set, [GlowFilter, "color", "color", "g"]); Tweener.registerSpecialProperty("_Glow_color_b", _filter_property_get, _filter_property_set, [GlowFilter, "color", "color", "b"]); Tweener.registerSpecialProperty("_Glow_inner", _filter_property_get, _filter_property_set, [GlowFilter, "inner"]); Tweener.registerSpecialProperty("_Glow_knockout", _filter_property_get, _filter_property_set, [GlowFilter, "knockout"]); Tweener.registerSpecialProperty("_Glow_quality", _filter_property_get, _filter_property_set, [GlowFilter, "quality"]); Tweener.registerSpecialProperty("_Glow_strength", _filter_property_get, _filter_property_set, [GlowFilter, "strength"]); Tweener.registerSpecialProperty("_GradientBevel_angle", _filter_property_get, _filter_property_set, [GradientBevelFilter, "angle"]); Tweener.registerSpecialProperty("_GradientBevel_blurX", _filter_property_get, _filter_property_set, [GradientBevelFilter, "blurX"]); Tweener.registerSpecialProperty("_GradientBevel_blurY", _filter_property_get, _filter_property_set, [GradientBevelFilter, "blurY"]); Tweener.registerSpecialProperty("_GradientBevel_distance", _filter_property_get, _filter_property_set, [GradientBevelFilter, "distance"]); Tweener.registerSpecialProperty("_GradientBevel_quality", _filter_property_get, _filter_property_set, [GradientBevelFilter, "quality"]); Tweener.registerSpecialProperty("_GradientBevel_strength", _filter_property_get, _filter_property_set, [GradientBevelFilter, "strength"]); Tweener.registerSpecialProperty("_GradientBevel_type", _filter_property_get, _filter_property_set, [GradientBevelFilter, "type"]); Tweener.registerSpecialProperty("_GradientGlow_angle", _filter_property_get, _filter_property_set, [GradientGlowFilter, "angle"]); Tweener.registerSpecialProperty("_GradientGlow_blurX", _filter_property_get, _filter_property_set, [GradientGlowFilter, "blurX"]); Tweener.registerSpecialProperty("_GradientGlow_blurY", _filter_property_get, _filter_property_set, [GradientGlowFilter, "blurY"]); Tweener.registerSpecialProperty("_GradientGlow_distance", _filter_property_get, _filter_property_set, [GradientGlowFilter, "distance"]); Tweener.registerSpecialProperty("_GradientGlow_knockout", _filter_property_get, _filter_property_set, [GradientGlowFilter, "knockout"]); Tweener.registerSpecialProperty("_GradientGlow_quality", _filter_property_get, _filter_property_set, [GradientGlowFilter, "quality"]); Tweener.registerSpecialProperty("_GradientGlow_strength", _filter_property_get, _filter_property_set, [GradientGlowFilter, "strength"]); Tweener.registerSpecialProperty("_GradientGlow_type", _filter_property_get, _filter_property_set, [GradientGlowFilter, "type"]); } public static function _filter_property_get(_arg1:Object, _arg2:Array, _arg3:Object=null):Number{ var _local4:Array; var _local5:Number; var _local6:Object; var _local7:String; var _local8:String; var _local9:Object; var _local10:String; _local4 = _arg1.filters; _local6 = _arg2[0]; _local7 = _arg2[1]; _local8 = _arg2[2]; _local5 = 0; while (_local5 < _local4.length) { if ((_local4[_local5] is Class(_local6))){ if (_local8 == "color"){ _local10 = _arg2[3]; if (_local10 == "r"){ return (AuxFunctions.numberToR(_local4[_local5][_local7])); }; if (_local10 == "g"){ return (AuxFunctions.numberToG(_local4[_local5][_local7])); }; if (_local10 == "b"){ return (AuxFunctions.numberToB(_local4[_local5][_local7])); }; } else { if (_local8 == "matrix"){ return (_local4[_local5][_local7][_arg2[3]]); }; return (_local4[_local5][_local7]); }; }; _local5++; }; switch (_local6){ case BevelFilter: _local9 = {angle:NaN, blurX:0, blurY:0, distance:0, highlightAlpha:1, highlightColor:NaN, knockout:null, quality:NaN, shadowAlpha:1, shadowColor:NaN, strength:2, type:null}; break; case BlurFilter: _local9 = {blurX:0, blurY:0, quality:NaN}; break; case ColorMatrixFilter: _local9 = {matrix:[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]}; break; case ConvolutionFilter: _local9 = {alpha:0, bias:0, clamp:null, color:NaN, divisor:1, matrix:[1], matrixX:1, matrixY:1, preserveAlpha:null}; break; case DisplacementMapFilter: _local9 = {alpha:0, color:NaN, componentX:null, componentY:null, mapBitmap:null, mapPoint:null, mode:null, scaleX:0, scaleY:0}; break; case DropShadowFilter: _local9 = {distance:0, angle:NaN, color:NaN, alpha:1, blurX:0, blurY:0, strength:1, quality:NaN, inner:null, knockout:null, hideObject:null}; break; case GlowFilter: _local9 = {alpha:1, blurX:0, blurY:0, color:NaN, inner:null, knockout:null, quality:NaN, strength:2}; break; case GradientBevelFilter: _local9 = {alphas:null, angle:NaN, blurX:0, blurY:0, colors:null, distance:0, knockout:null, quality:NaN, ratios:NaN, strength:1, type:null}; break; case GradientGlowFilter: _local9 = {alphas:null, angle:NaN, blurX:0, blurY:0, colors:null, distance:0, knockout:null, quality:NaN, ratios:NaN, strength:1, type:null}; break; }; if (_local8 == "color"){ return (NaN); }; if (_local8 == "matrix"){ return (_local9[_local7][_arg2[3]]); }; return (_local9[_local7]); } public static function _filter_property_set(_arg1:Object, _arg2:Number, _arg3:Array, _arg4:Object=null):void{ var _local5:Array; var _local6:Number; var _local7:Object; var _local8:String; var _local9:String; var _local10:BitmapFilter; var _local11:String; var _local12:Array; _local5 = _arg1.filters; _local7 = _arg3[0]; _local8 = _arg3[1]; _local9 = _arg3[2]; _local6 = 0; while (_local6 < _local5.length) { if ((_local5[_local6] is Class(_local7))){ if (_local9 == "color"){ _local11 = _arg3[3]; if (_local11 == "r"){ _local5[_local6][_local8] = ((_local5[_local6][_local8] & 0xFFFF) | (_arg2 << 16)); }; if (_local11 == "g"){ _local5[_local6][_local8] = ((_local5[_local6][_local8] & 0xFF00FF) | (_arg2 << 8)); }; if (_local11 == "b"){ _local5[_local6][_local8] = ((_local5[_local6][_local8] & 0xFFFF00) | _arg2); }; } else { if (_local9 == "matrix"){ _local12 = _local5[_local6][_local8]; _local12[_arg3[3]] = _arg2; _local5[_local6][_local8] = _local12; } else { _local5[_local6][_local8] = _arg2; }; }; _arg1.filters = _local5; return; }; _local6++; }; if (_local5 == null){ _local5 = new Array(); }; switch (_local7){ case BevelFilter: _local10 = new BevelFilter(0, 45, 0xFFFFFF, 1, 0, 1, 0, 0); break; case BlurFilter: _local10 = new BlurFilter(0, 0); break; case ColorMatrixFilter: _local10 = new ColorMatrixFilter([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]); break; case ConvolutionFilter: _local10 = new ConvolutionFilter(1, 1, [1], 1, 0, true, true, 0, 0); break; case DisplacementMapFilter: _local10 = new DisplacementMapFilter(new BitmapData(10, 10), new Point(0, 0), 0, 1, 0, 0); break; case DropShadowFilter: _local10 = new DropShadowFilter(0, 45, 0, 1, 0, 0); break; case GlowFilter: _local10 = new GlowFilter(0xFF0000, 1, 0, 0); break; case GradientBevelFilter: _local10 = new GradientBevelFilter(0, 45, [0xFFFFFF, 0], [1, 1], [32, 223], 0, 0); break; case GradientGlowFilter: _local10 = new GradientGlowFilter(0, 45, [0xFFFFFF, 0], [1, 1], [32, 223], 0, 0); break; }; _local5.push(_local10); _arg1.filters = _local5; _filter_property_set(_arg1, _arg2, _arg3); } public static function _generic_color_splitter(_arg1:Number, _arg2:Array):Array{ var _local3:Array; _local3 = new Array(); _local3.push({name:_arg2[0], value:AuxFunctions.numberToR(_arg1)}); _local3.push({name:_arg2[1], value:AuxFunctions.numberToG(_arg1)}); _local3.push({name:_arg2[2], value:AuxFunctions.numberToB(_arg1)}); return (_local3); } public static function _generic_matrix_splitter(_arg1:Array, _arg2:Array):Array{ var _local3:Array; var _local4:Number; if (_arg1 == null){ _arg1 = _arg2[0].concat(); }; _local3 = new Array(); _local4 = 0; while (_local4 < _arg1.length) { _local3.push({name:_arg2[1][_local4], value:_arg1[_local4]}); _local4++; }; return (_local3); } public static function _filter_splitter(_arg1:BitmapFilter, _arg2:Array, _arg3:Object=null):Array{ var _local4:Array; _local4 = new Array(); if ((_arg1 is BevelFilter)){ _local4.push({name:"_Bevel_angle", value:BevelFilter(_arg1).angle}); _local4.push({name:"_Bevel_blurX", value:BevelFilter(_arg1).blurX}); _local4.push({name:"_Bevel_blurY", value:BevelFilter(_arg1).blurY}); _local4.push({name:"_Bevel_distance", value:BevelFilter(_arg1).distance}); _local4.push({name:"_Bevel_highlightAlpha", value:BevelFilter(_arg1).highlightAlpha}); _local4.push({name:"_Bevel_highlightColor", value:BevelFilter(_arg1).highlightColor}); _local4.push({name:"_Bevel_knockout", value:BevelFilter(_arg1).knockout}); _local4.push({name:"_Bevel_quality", value:BevelFilter(_arg1).quality}); _local4.push({name:"_Bevel_shadowAlpha", value:BevelFilter(_arg1).shadowAlpha}); _local4.push({name:"_Bevel_shadowColor", value:BevelFilter(_arg1).shadowColor}); _local4.push({name:"_Bevel_strength", value:BevelFilter(_arg1).strength}); _local4.push({name:"_Bevel_type", value:BevelFilter(_arg1).type}); } else { if ((_arg1 is BlurFilter)){ _local4.push({name:"_Blur_blurX", value:BlurFilter(_arg1).blurX}); _local4.push({name:"_Blur_blurY", value:BlurFilter(_arg1).blurY}); _local4.push({name:"_Blur_quality", value:BlurFilter(_arg1).quality}); } else { if ((_arg1 is ColorMatrixFilter)){ _local4.push({name:"_ColorMatrix_matrix", value:ColorMatrixFilter(_arg1).matrix}); } else { if ((_arg1 is ConvolutionFilter)){ _local4.push({name:"_Convolution_alpha", value:ConvolutionFilter(_arg1).alpha}); _local4.push({name:"_Convolution_bias", value:ConvolutionFilter(_arg1).bias}); _local4.push({name:"_Convolution_clamp", value:ConvolutionFilter(_arg1).clamp}); _local4.push({name:"_Convolution_color", value:ConvolutionFilter(_arg1).color}); _local4.push({name:"_Convolution_divisor", value:ConvolutionFilter(_arg1).divisor}); _local4.push({name:"_Convolution_matrixX", value:ConvolutionFilter(_arg1).matrixX}); _local4.push({name:"_Convolution_matrixY", value:ConvolutionFilter(_arg1).matrixY}); _local4.push({name:"_Convolution_preserveAlpha", value:ConvolutionFilter(_arg1).preserveAlpha}); } else { if ((_arg1 is DisplacementMapFilter)){ _local4.push({name:"_DisplacementMap_alpha", value:DisplacementMapFilter(_arg1).alpha}); _local4.push({name:"_DisplacementMap_color", value:DisplacementMapFilter(_arg1).color}); _local4.push({name:"_DisplacementMap_componentX", value:DisplacementMapFilter(_arg1).componentX}); _local4.push({name:"_DisplacementMap_componentY", value:DisplacementMapFilter(_arg1).componentY}); _local4.push({name:"_DisplacementMap_mapBitmap", value:DisplacementMapFilter(_arg1).mapBitmap}); _local4.push({name:"_DisplacementMap_mapPoint", value:DisplacementMapFilter(_arg1).mapPoint}); _local4.push({name:"_DisplacementMap_mode", value:DisplacementMapFilter(_arg1).mode}); _local4.push({name:"_DisplacementMap_scaleX", value:DisplacementMapFilter(_arg1).scaleX}); _local4.push({name:"_DisplacementMap_scaleY", value:DisplacementMapFilter(_arg1).scaleY}); } else { if ((_arg1 is DropShadowFilter)){ _local4.push({name:"_DropShadow_alpha", value:DropShadowFilter(_arg1).alpha}); _local4.push({name:"_DropShadow_angle", value:DropShadowFilter(_arg1).angle}); _local4.push({name:"_DropShadow_blurX", value:DropShadowFilter(_arg1).blurX}); _local4.push({name:"_DropShadow_blurY", value:DropShadowFilter(_arg1).blurY}); _local4.push({name:"_DropShadow_color", value:DropShadowFilter(_arg1).color}); _local4.push({name:"_DropShadow_distance", value:DropShadowFilter(_arg1).distance}); _local4.push({name:"_DropShadow_hideObject", value:DropShadowFilter(_arg1).hideObject}); _local4.push({name:"_DropShadow_inner", value:DropShadowFilter(_arg1).inner}); _local4.push({name:"_DropShadow_knockout", value:DropShadowFilter(_arg1).knockout}); _local4.push({name:"_DropShadow_quality", value:DropShadowFilter(_arg1).quality}); _local4.push({name:"_DropShadow_strength", value:DropShadowFilter(_arg1).strength}); } else { if ((_arg1 is GlowFilter)){ _local4.push({name:"_Glow_alpha", value:GlowFilter(_arg1).alpha}); _local4.push({name:"_Glow_blurX", value:GlowFilter(_arg1).blurX}); _local4.push({name:"_Glow_blurY", value:GlowFilter(_arg1).blurY}); _local4.push({name:"_Glow_color", value:GlowFilter(_arg1).color}); _local4.push({name:"_Glow_inner", value:GlowFilter(_arg1).inner}); _local4.push({name:"_Glow_knockout", value:GlowFilter(_arg1).knockout}); _local4.push({name:"_Glow_quality", value:GlowFilter(_arg1).quality}); _local4.push({name:"_Glow_strength", value:GlowFilter(_arg1).strength}); } else { if ((_arg1 is GradientBevelFilter)){ _local4.push({name:"_GradientBevel_angle", value:GradientBevelFilter(_arg1).strength}); _local4.push({name:"_GradientBevel_blurX", value:GradientBevelFilter(_arg1).blurX}); _local4.push({name:"_GradientBevel_blurY", value:GradientBevelFilter(_arg1).blurY}); _local4.push({name:"_GradientBevel_distance", value:GradientBevelFilter(_arg1).distance}); _local4.push({name:"_GradientBevel_quality", value:GradientBevelFilter(_arg1).quality}); _local4.push({name:"_GradientBevel_strength", value:GradientBevelFilter(_arg1).strength}); _local4.push({name:"_GradientBevel_type", value:GradientBevelFilter(_arg1).type}); } else { if ((_arg1 is GradientGlowFilter)){ _local4.push({name:"_GradientGlow_angle", value:GradientGlowFilter(_arg1).strength}); _local4.push({name:"_GradientGlow_blurX", value:GradientGlowFilter(_arg1).blurX}); _local4.push({name:"_GradientGlow_blurY", value:GradientGlowFilter(_arg1).blurY}); _local4.push({name:"_GradientGlow_distance", value:GradientGlowFilter(_arg1).distance}); _local4.push({name:"_GradientGlow_knockout", value:GradientGlowFilter(_arg1).knockout}); _local4.push({name:"_GradientGlow_quality", value:GradientGlowFilter(_arg1).quality}); _local4.push({name:"_GradientGlow_strength", value:GradientGlowFilter(_arg1).strength}); _local4.push({name:"_GradientGlow_type", value:GradientGlowFilter(_arg1).type}); //unresolved jump }; }; }; }; }; }; }; }; }; return (_local4); } } }//package caurina.transitions.properties
Section 105
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function concatObjects(... _args):Object{ var _local2:Object; var _local3:Object; var _local4:int; var _local5:String; _local2 = {}; _local4 = 0; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function isInArray(_arg1:String, _arg2:Array):Boolean{ var _local3:uint; var _local4:uint; _local3 = _arg2.length; _local4 = 0; while (_local4 < _local3) { if (_arg2[_local4] == _arg1){ return (true); }; _local4++; }; return (false); } public static function getObjectLength(_arg1:Object):uint{ var _local2:uint; var _local3:String; _local2 = 0; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } } }//package caurina.transitions
Section 106
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; _local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2)); }; _arg1 = (_arg1 - 2); _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; _local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; --_arg1; return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number; var _local7:Number; var _local8:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; _local6 = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; _local8 = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } } }//package caurina.transitions
Section 107
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var originalValueComplete:Object; public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var hasModifier:Boolean; public var valueComplete:Number; public var extra:Object; public var valueStart:Number; public var modifierFunction:Function; public var arrayIndex:Number; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){ valueStart = _arg1; valueComplete = _arg2; originalValueComplete = _arg3; arrayIndex = _arg4; extra = _arg5; isSpecialProperty = _arg6; hasModifier = Boolean(_arg7); modifierFunction = _arg7; modifierParameters = _arg8; } public function toString():String{ var _local1:String; _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("arrayIndex:" + String(arrayIndex))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("extra:" + String(extra))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("hasModifier:" + String(hasModifier))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj; _local1 = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 108
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var preProcess:Function; public var setValue:Function; public var getValue:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; preProcess = _arg4; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("preProcess:" + String(preProcess))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 109
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 110
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; parameters = _arg2; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 111
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _currentTimeFrame:Number; private static var _specialPropertySplitterList:Object; private static var _engineExists:Boolean = false; private static var _specialPropertyModifierList:Object; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ var _local4:SpecialPropertyModifier; if (!_inited){ init(); }; _local4 = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ var _local6:SpecialProperty; if (!_inited){ init(); }; _local6 = new SpecialProperty(_arg2, _arg3, _arg4, _arg5); _specialPropertyList[_arg1] = _local6; } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Array; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Function; var _local9:TweenListObj; var _local10:Number; var _local11:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local4 = _arg1.concat(); } else { _local4 = [_arg1]; }; _local5 = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local6 = (isNaN(_local5.time)) ? 0 : _local5.time; _local7 = (isNaN(_local5.delay)) ? 0 : _local5.delay; if (typeof(_local5.transition) == "string"){ _local11 = _local5.transition.toLowerCase(); _local8 = _transitionList[_local11]; } else { _local8 = _local5.transition; }; if (!Boolean(_local8)){ _local8 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local4.length) { if (_local5.useFrames == true){ _local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams); } else { _local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams); }; _local9.properties = null; _local9.onStart = _local5.onStart; _local9.onUpdate = _local5.onUpdate; _local9.onComplete = _local5.onComplete; _local9.onOverwrite = _local5.onOverwrite; _local9.onStartParams = _local5.onStartParams; _local9.onUpdateParams = _local5.onUpdateParams; _local9.onCompleteParams = _local5.onCompleteParams; _local9.onOverwriteParams = _local5.onOverwriteParams; _local9.onStartScope = _local5.onStartScope; _local9.onUpdateScope = _local5.onUpdateScope; _local9.onCompleteScope = _local5.onCompleteScope; _local9.onOverwriteScope = _local5.onOverwriteScope; _local9.onErrorScope = _local5.onErrorScope; _local9.isCaller = true; _local9.count = _local5.count; _local9.waitFrames = _local5.waitFrames; _tweenList.push(_local9); if ((((_local6 == 0)) && ((_local7 == 0)))){ _local10 = (_tweenList.length - 1); updateTweenByIndex(_local10); removeTweenByIndex(_local10); }; _local3++; }; return (true); } public static function pauseAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local3:TweenListObj; var _local4:TweenListObj; var _local5:uint; var _local6:String; var _local7:Boolean; _local3 = _tweenList[_arg1]; _local4 = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } public static function updateFrame():void{ _currentTimeFrame++; } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj; var _local3:Number; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; _local3 = getCurrentTweeningTime(_local2); _local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } public static function getVersion():String{ return ("AS3 1.31.71"); } public static function onEnterFrame(_arg1:Event):void{ var _local2:Boolean; updateTime(); updateFrame(); _local2 = false; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var isOver:Boolean; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var cTime:Number; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; isOver = false; cTime = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(cTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e:Error) { handleError(tTweening, e, "onStart"); }; }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; try { tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); } catch(e:Error) { handleError(tTweening, e, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e:Error) { handleError(tTweening, e, "onComplete"); }; }; return (!(isOver)); }; return (true); } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ if (_tweenList != null){ _local2 = 0; while (_local2 < _tweenList.length) { _local3 = getCurrentTweeningTime(_tweenList[_local2]); _tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; }; _timeScale = _arg1; }; } public static function resumeAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var eventScope:Object; var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; try { pTweening.onError.apply(eventScope, [pTweening.scope, pError]); } catch(metaError:Error) { printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace())); }; } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } public static function removeAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Number; var _local5:String; var _local6:Array; var _local7:Object; var _local8:Number; var _local9:Number; var _local10:Array; var _local11:Object; var _local12:Object; var _local13:Function; var _local14:Object; var _local15:TweenListObj; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local6 = _arg1.concat(); } else { _local6 = [_arg1]; }; _local7 = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local8 = (isNaN(_local7.time)) ? 0 : _local7.time; _local9 = (isNaN(_local7.delay)) ? 0 : _local7.delay; _local10 = new Array(); _local11 = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; _local12 = new Object(); for (_local5 in _local7) { if (!_local11[_local5]){ if (_specialPropertySplitterList[_local5]){ _local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters); _local3 = 0; while (_local3 < _local17.length) { if (_specialPropertySplitterList[_local17[_local3].name]){ _local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters); _local4 = 0; while (_local4 < _local18.length) { _local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false}; _local4++; }; } else { _local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false}; }; _local3++; }; } else { if (_specialPropertyModifierList[_local5] != undefined){ _local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]); _local3 = 0; while (_local3 < _local19.length) { _local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue}; _local3++; }; } else { _local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]}; }; }; }; }; for (_local5 in _local10) { if (_specialPropertyList[_local5] != undefined){ _local10[_local5].isSpecialProperty = true; } else { if (_local6[0][_local5] == undefined){ printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property.")); }; }; }; for (_local5 in _local12) { if (_local10[_local5] != undefined){ _local10[_local5].modifierParameters = _local12[_local5].modifierParameters; _local10[_local5].modifierFunction = _local12[_local5].modifierFunction; }; }; if (typeof(_local7.transition) == "string"){ _local20 = _local7.transition.toLowerCase(); _local13 = _transitionList[_local20]; } else { _local13 = _local7.transition; }; if (!Boolean(_local13)){ _local13 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local6.length) { _local14 = new Object(); for (_local5 in _local10) { _local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters); }; if (_local7.useFrames == true){ _local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams); } else { _local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams); }; _local15.properties = _local14; _local15.onStart = _local7.onStart; _local15.onUpdate = _local7.onUpdate; _local15.onComplete = _local7.onComplete; _local15.onOverwrite = _local7.onOverwrite; _local15.onError = _local7.onError; _local15.onStartParams = _local7.onStartParams; _local15.onUpdateParams = _local7.onUpdateParams; _local15.onCompleteParams = _local7.onCompleteParams; _local15.onOverwriteParams = _local7.onOverwriteParams; _local15.onStartScope = _local7.onStartScope; _local15.onUpdateScope = _local7.onUpdateScope; _local15.onCompleteScope = _local7.onCompleteScope; _local15.onOverwriteScope = _local7.onOverwriteScope; _local15.onErrorScope = _local7.onErrorScope; _local15.rounded = _local7.rounded; _local15.skipUpdates = _local7.skipUpdates; removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete); _tweenList.push(_local15); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local16 = (_tweenList.length - 1); updateTweenByIndex(_local16); removeTweenByIndex(_local16); }; _local3++; }; return (true); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function printError(_arg1:String):void{ } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local4:Boolean; var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; _local4 = false; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; var _local4:Array; if (!Boolean(_tweenList)){ return ([]); }; _local4 = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = getCurrentTweeningTime(_local2); _local2.isPaused = true; return (true); } public static function getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; var _local3:Number; if (!Boolean(_tweenList)){ return (0); }; _local3 = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removed:Boolean; var removedLocally:Boolean; var i:uint; var tl:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; removed = false; tl = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; try { _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); } catch(e:Error) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ var _local4:SpecialPropertySplitter; if (!_inited){ init(); }; _local4 = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 112
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var onUpdate:Function; public var useFrames:Boolean; public var hasStarted:Boolean; public var onOverwriteParams:Array; public var timeStart:Number; public var count:Number; public var timeComplete:Number; public var onStartParams:Array; public var onUpdateScope:Object; public var rounded:Boolean; public var onUpdateParams:Array; public var properties:Object; public var onComplete:Function; public var transitionParams:Object; public var updatesSkipped:Number; public var onStart:Function; public var onOverwriteScope:Object; public var skipUpdates:Number; public var onStartScope:Object; public var scope:Object; public var transition:Function; public var timePaused:Number; public var onCompleteParams:Array; public var timesCalled:Number; public var isCaller:Boolean; public var onError:Function; public var onErrorScope:Object; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public var onCompleteScope:Object; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; transitionParams = _arg6; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local2:TweenListObj; var _local3:String; _local2 = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onError = onError; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; _local2.onStartScope = onStartScope; _local2.onUpdateScope = onUpdateScope; _local2.onCompleteScope = onCompleteScope; _local2.onOverwriteScope = onOverwriteScope; _local2.onErrorScope = onErrorScope; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local1:String; var _local2:Boolean; var _local3:String; _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); _local2 = true; for (_local3 in properties) { if (!_local2){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local3].name)); _local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete)); _local1 = (_local1 + "]"); _local2 = false; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); _local1 = (_local1 + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ _local1 = (_local1 + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ _local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ _local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ _local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ _local1 = (_local1 + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } public static function makePropertiesChain(_arg1:Object):Object{ var _local2:Object; var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; _local2 = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 113
//GestureEvent (com.foxaweb.ui.gesture.GestureEvent) package com.foxaweb.ui.gesture { import flash.events.*; public class GestureEvent extends Event { public var datas; public var fiability:uint; public static const START_CAPTURE:String = "startCapture"; public static const CAPTURING:String = "capturing"; public static const NO_MATCH:String = "noMatch"; public static const STOP_CAPTURE:String = "stopCapture"; public static const GESTURE_MATCH:String = "gestureMatch"; public function GestureEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function clone():Event{ return ((new GestureEvent(type, bubbles, cancelable) as Event)); } } }//package com.foxaweb.ui.gesture
Section 114
//MouseGesture (com.foxaweb.ui.gesture.MouseGesture) package com.foxaweb.ui.gesture { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.utils.*; public class MouseGesture extends EventDispatcher { private var moves:Array; protected var timer:Timer; protected var sectorRad:Number; private var gestures:Array; private var lastPoint:Point; private var captureDepth:uint; private var points:Array; private var rect:Object; private var mouseZone:InteractiveObject; protected var anglesMap:Array; public static const DEFAULT_NB_SECTORS:uint = 8; public static const DEFAULT_FIABILITY:uint = 30; public static const DEFAULT_PRECISION:uint = 8; public static const DEFAULT_TIME_STEP:uint = 20; public function MouseGesture(_arg1:InteractiveObject){ mouseZone = _arg1; init(); } protected function init():void{ buildAnglesMap(); timer = new Timer(DEFAULT_TIME_STEP); timer.addEventListener(TimerEvent.TIMER, captureHandler, false, 0, true); gestures = []; mouseZone.addEventListener(MouseEvent.MOUSE_DOWN, startCapture, false, 0, true); mouseZone.addEventListener(MouseEvent.MOUSE_UP, stopCapture, false, 0, true); } protected function addMove(_arg1:int, _arg2:int):void{ var _local3:Number; var _local4:int; _local3 = (Math.atan2(_arg2, _arg1) + (sectorRad / 2)); if (_local3 < 0){ _local3 = (_local3 + (Math.PI * 2)); }; _local4 = Math.floor(((_local3 / (Math.PI * 2)) * 100)); moves.push(anglesMap[_local4]); } protected function startCapture(_arg1:MouseEvent):void{ moves = []; points = []; rect = {minx:Number.POSITIVE_INFINITY, maxx:Number.NEGATIVE_INFINITY, miny:Number.POSITIVE_INFINITY, maxy:Number.NEGATIVE_INFINITY}; dispatchEvent(new GestureEvent(GestureEvent.START_CAPTURE)); lastPoint = new Point(mouseZone.mouseX, mouseZone.mouseY); timer.start(); } protected function costLeven(_arg1:Array, _arg2:Array):uint{ var _local3:Array; var _local4:Array; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; if (_arg1[0] == -1){ return (((_arg2.length == 0)) ? 0 : 100000); }; _local3 = fill2DTable((_arg1.length + 1), (_arg2.length + 1), 0); _local4 = _local3.slice(); _local5 = 1; while (_local5 <= _arg1.length) { _local10 = 1; while (_local10 < _arg2.length) { _local3[_local5][_local10] = difAngle(_arg1[(_local5 - 1)], _arg2[(_local10 - 1)]); _local10++; }; _local5++; }; _local10 = 1; while (_local10 <= _arg2.length) { _local4[0][_local10] = 100000; _local10++; }; _local5 = 1; while (_local5 <= _arg1.length) { _local4[_local5][0] = 100000; _local5++; }; _local4[0][0] = 0; _local6 = 0; _local5 = 1; while (_local5 <= _arg1.length) { _local10 = 1; while (_local10 < _arg2.length) { _local6 = _local3[_local5][_local10]; _local7 = (_local4[(_local5 - 1)][_local10] + _local6); _local8 = (_local4[_local5][(_local10 - 1)] + _local6); _local9 = (_local4[(_local5 - 1)][(_local10 - 1)] + _local6); _local4[_local5][_local10] = Math.min(Math.min(_local7, _local8), _local9); _local10++; }; _local5++; }; return (_local4[(_local5 - 1)][(_local10 - 1)]); } protected function difAngle(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = Math.abs((_arg1 - _arg2)); if (_local3 > (DEFAULT_NB_SECTORS / 2)){ _local3 = (DEFAULT_NB_SECTORS - _local3); }; return (_local3); } protected function matchGesture():void{ var _local1:uint; var _local2:uint; var _local3:uint; var _local4:Array; var _local5:Object; var _local6:Object; var _local7:uint; var _local8:GestureEvent; _local1 = 1000000; _local2 = gestures.length; _local5 = null; _local6 = {points:points, moves:moves, lastPoint:lastPoint, rect:new Rectangle(rect.minx, rect.miny, (rect.maxx - rect.minx), (rect.maxy - rect.miny))}; _local7 = 0; while (_local7 < _local2) { _local4 = gestures[_local7].moves; _local6.datas = gestures[_local7].datas; _local3 = costLeven(_local4, moves); if (_local3 <= DEFAULT_FIABILITY){ if (gestures[_local7].match != null){ _local6.cost = _local3; _local3 = gestures[_local7].match(_local6); }; if (_local3 < _local1){ _local1 = _local3; _local5 = gestures[_local7]; }; }; _local7++; }; if (_local5 != null){ _local8 = new GestureEvent(GestureEvent.GESTURE_MATCH); _local8.datas = _local5.datas; _local8.fiability = _local1; dispatchEvent(_local8); } else { dispatchEvent(new GestureEvent(GestureEvent.NO_MATCH)); }; } public function addGesture(_arg1, _arg2:String, _arg3:Function=null):void{ var _local4:Array; var _local5:uint; _local4 = []; _local5 = 0; while (_local5 < _arg2.length) { _local4.push(((_arg2.charAt(_local5) == ".")) ? -1 : parseInt(_arg2.charAt(_local5), 16)); _local5++; }; gestures.push({datas:_arg1, moves:_local4, match:_arg3}); } protected function stopCapture(_arg1:MouseEvent):void{ matchGesture(); dispatchEvent(new GestureEvent(GestureEvent.STOP_CAPTURE)); timer.stop(); } protected function captureHandler(_arg1:TimerEvent):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; _local2 = mouseZone.mouseX; _local3 = mouseZone.mouseY; _local4 = (_local2 - lastPoint.x); _local5 = (_local3 - lastPoint.y); _local6 = ((_local4 * _local4) + (_local5 * _local5)); _local7 = (DEFAULT_PRECISION * DEFAULT_PRECISION); if (_local6 > _local7){ points.push(new Point(_local2, _local3)); addMove(_local4, _local5); lastPoint.x = _local2; lastPoint.y = _local3; if (_local2 < rect.minx){ rect.minx = _local2; }; if (_local2 > rect.maxx){ rect.maxx = _local2; }; if (_local3 < rect.miny){ rect.miny = _local3; }; if (_local3 > rect.maxy){ rect.maxy = _local3; }; }; dispatchEvent(new GestureEvent(GestureEvent.CAPTURING)); } protected function buildAnglesMap():void{ var _local1:Number; var _local2:Number; var _local3:Number; sectorRad = ((Math.PI * 2) / DEFAULT_NB_SECTORS); anglesMap = []; _local1 = ((Math.PI * 2) / 100); _local3 = (-(sectorRad) / 2); while (_local3 <= ((Math.PI * 2) - (sectorRad / 2))) { _local2 = Math.floor(((_local3 + (sectorRad / 2)) / sectorRad)); anglesMap.push(_local2); _local3 = (_local3 + _local1); }; } protected function fill2DTable(_arg1:uint, _arg2:uint, _arg3):Array{ var _local4:Array; var _local5:uint; var _local6:uint; _local4 = new Array(_arg1); _local5 = 0; while (_local5 < _arg1) { _local4[_local5] = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { _local4[_local5][_local6] = _arg3; _local6++; }; _local5++; }; return (_local4); } } }//package com.foxaweb.ui.gesture
Section 115
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var contentspotid:String; private var cpmstarLoader:Loader; public function AdLoader(_arg1:String){ this.contentspotid = _arg1; addEventListener(Event.ADDED, addedHandler); } private function addedHandler(_arg1:Event):void{ var _local2:String; var _local3:DisplayObjectContainer; removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); _local2 = "http://server.cpmstar.com/adviewas3.swf"; _local3 = 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); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } } }//package CPMStar
Section 116
//Button (fl.controls.Button) package fl.controls { import flash.display.*; public dynamic class Button extends MovieClip { } }//package fl.controls
Section 117
//Regular (fl.transitions.easing.Regular) package fl.transitions.easing { public class Regular { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } } }//package fl.transitions.easing
Section 118
//Strong (fl.transitions.easing.Strong) package fl.transitions.easing { public class Strong { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } } }//package fl.transitions.easing
Section 119
//Tween (fl.transitions.Tween) package fl.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false public var begin:Number;// = NAN private var _fps:Number;// = NAN private var _time:Number;// = NAN public var change:Number;// = NAN private var _finish:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ isPlaying = false; obj = null; prop = ""; func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; begin = NaN; change = NaN; useSeconds = false; prevTime = NaN; prevPos = NaN; looping = false; _duration = NaN; _time = NaN; _fps = NaN; _position = NaN; _startTime = NaN; _intervalID = 0; _finish = NaN; _timer = null; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean; _local2 = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function get position():Number{ return (this.getPosition(this._time)); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 120
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var time:Number;// = NAN public var position:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ time = NaN; position = NaN; super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 121
//Input (General.Input) package General { import flash.display.*; import flash.events.*; public class Input { public static var mouseOffsetX:Number = 0; private static var keyArr:Array; public static var mouseDragX:Number = 0; public static var mouseDragY:Number = 0; public static var mouseOffsetY:Number = 0; public static var ascii:Array; public static var mouseX:Number = 0; public static var mouseY:Number = 0; public static var mouseOver:Boolean = false; private static var bufferSize:int; public static var mouse:Sprite = new Sprite(); public static var mouseDown:Boolean = false; public static var mouseReleased:Boolean = false; public static var lastKey:int = 0; public static var m_stageMc:Sprite; private static var keyState:Array; public static var timeSinceLastKey = 0; public static var mousePressed:Boolean = false; private static var keyBuffer:Array; public function Input(_arg1:Sprite){ var _local2:int; var _local3:int; super(); m_stageMc = _arg1; ascii = new Array(222); fillAscii(); keyState = new Array(222); keyArr = new Array(); _local2 = 0; while (_local2 < 222) { keyState[_local2] = new int(0); if (ascii[_local2] != undefined){ keyArr.push(_local2); }; _local2++; }; bufferSize = 5; keyBuffer = new Array(bufferSize); _local3 = 0; while (_local3 < bufferSize) { keyBuffer[_local3] = new Array(0, 0); _local3++; }; _arg1.stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPress, false, 0, true); _arg1.stage.addEventListener(KeyboardEvent.KEY_UP, keyRelease, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePress, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_UP, mouseRelease, false, 0, true); _arg1.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove, false, 0, true); _arg1.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave, false, 0, true); mouse.graphics.lineStyle(0.1, 0, 100); mouse.graphics.moveTo(0, 0); mouse.graphics.lineTo(0, 0.1); } public function mouseRelease(_arg1:MouseEvent){ mouseDown = false; mouseReleased = true; } public function keyPress(_arg1:KeyboardEvent){ keyState[_arg1.keyCode] = Math.max(keyState[_arg1.keyCode], 1); lastKey = _arg1.keyCode; } private function fillAscii(){ ascii[65] = "A"; ascii[66] = "B"; ascii[67] = "C"; ascii[68] = "D"; ascii[69] = "E"; ascii[70] = "F"; ascii[71] = "G"; ascii[72] = "H"; ascii[73] = "I"; ascii[74] = "J"; ascii[75] = "K"; ascii[76] = "L"; ascii[77] = "M"; ascii[78] = "N"; ascii[79] = "O"; ascii[80] = "P"; ascii[81] = "Q"; ascii[82] = "R"; ascii[83] = "S"; ascii[84] = "T"; ascii[85] = "U"; ascii[86] = "V"; ascii[87] = "W"; ascii[88] = "X"; ascii[89] = "Y"; ascii[90] = "Z"; ascii[48] = "0"; ascii[49] = "1"; ascii[50] = "2"; ascii[51] = "3"; ascii[52] = "4"; ascii[53] = "5"; ascii[54] = "6"; ascii[55] = "7"; ascii[56] = "8"; ascii[57] = "9"; ascii[32] = "Spacebar"; ascii[17] = "Ctrl"; ascii[16] = "Shift"; ascii[192] = "~"; ascii[38] = "up"; ascii[40] = "down"; ascii[37] = "left"; ascii[39] = "right"; ascii[96] = "Numpad 0"; ascii[97] = "Numpad 1"; ascii[98] = "Numpad 2"; ascii[99] = "Numpad 3"; ascii[100] = "Numpad 4"; ascii[101] = "Numpad 5"; ascii[102] = "Numpad 6"; ascii[103] = "Numpad 7"; ascii[104] = "Numpad 8"; ascii[105] = "Numpad 9"; ascii[111] = "Numpad /"; ascii[106] = "Numpad *"; ascii[109] = "Numpad -"; ascii[107] = "Numpad +"; ascii[110] = "Numpad ."; ascii[45] = "Insert"; ascii[46] = "Delete"; ascii[33] = "Page Up"; ascii[34] = "Page Down"; ascii[35] = "End"; ascii[36] = "Home"; ascii[112] = "F1"; ascii[113] = "F2"; ascii[114] = "F3"; ascii[115] = "F4"; ascii[116] = "F5"; ascii[117] = "F6"; ascii[118] = "F7"; ascii[119] = "F8"; ascii[188] = ","; ascii[190] = "."; ascii[186] = ";"; ascii[222] = "'"; ascii[219] = "["; ascii[221] = "]"; ascii[189] = "-"; ascii[187] = "+"; ascii[220] = "\\"; ascii[191] = "/"; ascii[9] = "TAB"; ascii[8] = "Backspace"; } public function mouseMove(_arg1:MouseEvent){ if (mouseDown != _arg1.buttonDown){ mouseDown = _arg1.buttonDown; mouseReleased = !(_arg1.buttonDown); mousePressed = _arg1.buttonDown; mouseDragX = 0; mouseDragY = 0; }; mouseX = (_arg1.stageX - m_stageMc.x); mouseY = (_arg1.stageY - m_stageMc.y); mouseOffsetX = (mouseX - mouse.x); mouseOffsetY = (mouseY - mouse.y); if (mouseDown){ mouseDragX = (mouseDragX + mouseOffsetX); mouseDragY = (mouseDragY + mouseOffsetY); }; mouse.x = mouseX; mouse.y = mouseY; } public function keyRelease(_arg1:KeyboardEvent){ var _local2:int; keyState[_arg1.keyCode] = -1; _local2 = (bufferSize - 1); while (_local2 > 0) { keyBuffer[_local2] = keyBuffer[(_local2 - 1)]; _local2--; }; keyBuffer[0] = [_arg1.keyCode, 0]; } public function mouseLeave(_arg1:Event){ mouseReleased = mouseDown; mouseDown = false; } public function mousePress(_arg1:MouseEvent){ mousePressed = true; mouseDown = true; mouseDragX = 0; mouseDragY = 0; } public static function getKeyHold(_arg1:int):int{ return (Math.max(0, keyState[_arg1])); } public static function update(){ var _local1:int; var _local2:int; _local1 = 0; while (_local1 < keyArr.length) { if (keyState[keyArr[_local1]] != 0){ var _local3 = keyState; var _local4 = keyArr[_local1]; var _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; }; _local1++; }; _local2 = 0; while (_local2 < bufferSize) { _local3 = keyBuffer[_local2]; _local4 = 1; _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; _local2++; }; mouseReleased = false; mousePressed = false; mouseOver = false; } public static function isKeyPressed(_arg1:int):Boolean{ timeSinceLastKey = 0; return ((keyState[_arg1] == 1)); } public static function isKeyDown(_arg1:int):Boolean{ return ((keyState[_arg1] > 0)); } public static function getKeyString(_arg1:uint):String{ return (ascii[_arg1]); } public static function isKeyReleased(_arg1:int):Boolean{ return ((keyState[_arg1] == -1)); } public static function isKeyInBuffer(_arg1:int, _arg2:int, _arg3:int){ return ((((keyBuffer[_arg2][0] == _arg1)) && ((keyBuffer[_arg2][1] <= _arg3)))); } } }//package General
Section 122
//LoaderScreen (loader.LoaderScreen) package loader { import flash.display.*; import flash.utils.*; import fl.transitions.easing.*; import fl.transitions.*; public class LoaderScreen extends MovieClip { public var loadingPct:MovieClip; public var loadingLogo:MovieClip; private var events:Object; public var loadingBar:MovieClip; private var lastFrame:Number; private var logoInterval:Number; private var logoFrame:Number; private var logoIntervalId:Number; public function LoaderScreen(){ events = new Object(); super(); this.visible = false; logoFrame = 1; logoInterval = 700; startLogo(logoInterval); } public function hideLoader():void{ broadcastFinished(); } private function updateLogo():void{ logoFrame++; if (logoFrame > 4){ logoFrame = 1; }; this.loadingLogo.gotoAndStop(logoFrame); } private function startLogo(_arg1:Number):void{ this.loadingLogo.visible = true; logoIntervalId = setInterval(updateLogo, _arg1); } private function broadcastFinished():void{ events.onHideComplete(); } public function showLoader():void{ var _local1:Tween; this.visible = true; _local1 = new Tween(this, "alpha", Strong.easeIn, 0, 1, 0.7, true); } public function addListener(_arg1:Object):void{ events = _arg1; } public function setPercent(_arg1:Number):void{ loadingPct.txtPercent.text = (Math.round(_arg1) + "%"); loadingBar.theMask.x = (-422 + ((450 * _arg1) / 100)); loadingPct.x = (loadingBar.theMask.x + 610); } } }//package loader
Section 123
//MochiScores (mochi.MochiScores) package mochi { 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 options = _arg1; if (options != null){ if (options.clip != null){ if ((options.clip is Sprite)){ MochiServices.setContainer(options.clip); }; delete options.clip; } else { MochiServices.setContainer(); }; MochiServices.stayOnTop(); 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; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); //unresolved jump }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); //unresolved jump }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); //unresolved jump }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; 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 _local2:Object; var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; _local2 = {}; 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{ MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (_arg1 != null){ if (_arg1.error != null){ if (_arg1.error == true){ if (onErrorHandler != null){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; }; }; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi
Section 124
//MochiServices (mochi.MochiServices) package mochi { import flash.display.*; 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 _swfVersion:String; private static var _sendChannel:LocalConnection; private static var _rcvChannelName:String; private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; private static var _timer:Timer; private static var _sendChannelName:String; private static var _startTime:Number; private static var _connecting:Boolean = false; public static var onError:Object; private static var _listenChannelName:String = "__mochiservices"; private static var _rcvChannel:LocalConnection; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ onError("NotConnected"); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } public static function get connected():Boolean{ return (_connected); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; }; } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local3:Array; var _local4:int; var _local5:Array; var _local6:Array; var _local7:MovieClip; var _local8:LocalConnection; var _local9:String; var _local10:ByteArray; var _local11:ByteArray; var _local12:uint; var _local13:uint; var _local14:Loader; _local3 = [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]; _local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; _local6 = [0, 64, 0, 0, 0]; _local7 = new MovieClip(); _local8 = new LocalConnection(); _local9 = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().getTime())); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); _local10 = new ByteArray(); _local11 = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); _local12 = ((_local3.length + _local11.length) + 4); _local13 = (_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); } 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); } public static function get id():String{ return (_id); } 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 netup:Boolean; var vars:Object; var s:String; var i:Number; var x:String; var req:URLRequest; var loader:Loader; var err:Function; var complete:Function; var setURL:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; vars = 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); s = "?"; i = 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(); err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; complete = function (_arg1:Object):void{ netup = true; _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); setURL = function ():void{ var _local1:String; var _local2:DisplayObject; if (netup){ _local1 = (url + s); } else { _local1 = burl; }; _local2 = clickMovie(_local1, onClick); btn.addChild(_local2); _local2.scaleX = (0.01 * btn.width); _local2.scaleY = (0.01 * btn.height); }; setTimeout(setURL, 1500); } public static function getVersion():String{ return ("1.35"); } 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 { _listenChannel.close(); _rcvChannel.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; Security.allowDomain("*"); Security.allowInsecureDomain("*"); if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; return (_local2); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); if (_clip.parent != null){ Sprite(_clip.parent).removeChild(_clip); }; } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _rcvChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (_arg1:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = _arg1; cb = pkg.callbackID; cblst = this.client._callbacks[cb]; if (!cblst){ return; }; method = cblst.callbackMethod; methodName = ""; obj = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; //unresolved jump }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { }; }; }; delete this.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; _rcvChannel.connect(_rcvChannelName); _connecting = false; _connected = true; _listenChannel.close(); while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); } 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) { }; }; }; }; } 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"); _rcvChannelName = _arg1; initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var clipname:String; var f:Function; var req:URLRequest; var id = _arg1; var clip = _arg2; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; MochiServices.allowDomains(_gatewayURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); _timer = new Timer(1000, 0); _startTime = getTimer(); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); f = function (_arg1:Object):void{ _clip._mochiad_ctr_failed = true; MochiServices.disconnect(); MochiServices.onError("IOError"); }; _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_gatewayURL); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _rcvChannel = new LocalConnection(); _rcvChannel.allowDomain("*", "localhost"); _rcvChannel.allowInsecureDomain("*", "localhost"); _rcvChannel.client = _clip; _clip._nextcallbackID = 0; _clip._callbacks = {}; listen(); return (_clip); } public static function bringToTop(_arg1:Event):void{ var e = _arg1; if (MochiServices.clip != null){ if (MochiServices.childClip != null){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; }; } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ _connecting = true; init(id, clip); }; //unresolved jump }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ }; }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var mc:MovieClip; var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; mc = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } public static function connectWait(_arg1:TimerEvent):void{ if ((getTimer() - _startTime) > 10000){ if (!_connected){ _clip._mochiad_ctr_failed = true; MochiServices.disconnect(); MochiServices.onError("IOError"); }; _timer.stop(); }; } } }//package mochi
Section 125
//Action (org.flintparticles.common.actions.Action) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public interface Action { function addedToEmitter(_arg1:Emitter):void; function removedFromEmitter(_arg1:Emitter):void; function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void; function getDefaultPriority():Number; } }//package org.flintparticles.common.actions
Section 126
//ActionBase (org.flintparticles.common.actions.ActionBase) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class ActionBase implements Action { public function removedFromEmitter(_arg1:Emitter):void{ } public function getDefaultPriority():Number{ return (0); } public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ } public function addedToEmitter(_arg1:Emitter):void{ } } }//package org.flintparticles.common.actions
Section 127
//Age (org.flintparticles.common.actions.Age) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.energyEasing.*; public class Age extends ActionBase { private var _easing:Function; public function Age(_arg1:Function=null){ if (_arg1 == null){ _easing = Linear.easeNone; } else { _easing = _arg1; }; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ _arg2.age = (_arg2.age + _arg3); if (_arg2.age >= _arg2.lifetime){ _arg2.energy = 0; _arg2.isDead = true; } else { _arg2.energy = _easing(_arg2.age, _arg2.lifetime); }; } public function get easing():Function{ return (_easing); } public function set easing(_arg1:Function):void{ _easing = _arg1; } } }//package org.flintparticles.common.actions
Section 128
//ColorChange (org.flintparticles.common.actions.ColorChange) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.utils.*; public class ColorChange extends ActionBase { private var _startColor:uint; private var _endColor:uint; public function ColorChange(_arg1:uint, _arg2:uint){ _startColor = _arg1; _endColor = _arg2; } public function get startColor():uint{ return (_startColor); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ _arg2.color = interpolateColors(_startColor, _endColor, _arg2.energy); } public function set startColor(_arg1:uint):void{ _startColor = _arg1; } public function get endColor():uint{ return (_endColor); } public function set endColor(_arg1:uint):void{ _endColor = _arg1; } } }//package org.flintparticles.common.actions
Section 129
//ScaleImage (org.flintparticles.common.actions.ScaleImage) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class ScaleImage extends ActionBase { private var _diffScale:Number; private var _endScale:Number; public function ScaleImage(_arg1:Number=1, _arg2:Number=1){ _diffScale = (_arg1 - _arg2); _endScale = _arg2; } public function set endScale(_arg1:Number):void{ _diffScale = ((_endScale + _diffScale) - _arg1); _endScale = _arg1; } public function get startScale():Number{ return ((_endScale + _diffScale)); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ _arg2.scale = (_endScale + (_diffScale * _arg2.energy)); } public function get endScale():Number{ return (_endScale); } public function set startScale(_arg1:Number):void{ _diffScale = (_arg1 - _endScale); } } }//package org.flintparticles.common.actions
Section 130
//Activity (org.flintparticles.common.activities.Activity) package org.flintparticles.common.activities { import org.flintparticles.common.emitters.*; public interface Activity { function initialize(_arg1:Emitter):void; function addedToEmitter(_arg1:Emitter):void; function removedFromEmitter(_arg1:Emitter):void; function update(_arg1:Emitter, _arg2:Number):void; function getDefaultPriority():Number; } }//package org.flintparticles.common.activities
Section 131
//Counter (org.flintparticles.common.counters.Counter) package org.flintparticles.common.counters { import org.flintparticles.common.emitters.*; public interface Counter { function stop():void; function updateEmitter(_arg1:Emitter, _arg2:Number):uint; function startEmitter(_arg1:Emitter):uint; function resume():void; } }//package org.flintparticles.common.counters
Section 132
//TimePeriod (org.flintparticles.common.counters.TimePeriod) package org.flintparticles.common.counters { import org.flintparticles.common.emitters.*; import org.flintparticles.common.easing.*; public class TimePeriod implements Counter { private var _timePassed:Number; private var _easing:Function; private var _stop:Boolean;// = false private var _particles:uint; private var _duration:Number; private var _particlesPassed:uint; public function TimePeriod(_arg1:uint, _arg2:Number, _arg3:Function=null){ _stop = false; super(); _particles = _arg1; _duration = _arg2; if (_arg3 == null){ _easing = Linear.easeNone; } else { _easing = _arg3; }; } public function stop():void{ _stop = true; } public function set numParticles(_arg1:uint):void{ _particles = _arg1; } public function get numParticles():uint{ return (_particles); } public function get duration():Number{ return (_duration); } public function set easing(_arg1:Function):void{ _easing = _arg1; } public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{ var _local3:uint; var _local4:uint; if (((_stop) || ((_particlesPassed == _particles)))){ return (0); }; _timePassed = (_timePassed + _arg2); if (_timePassed >= _duration){ _local4 = (_particles - _particlesPassed); _particlesPassed = _particles; return (_local4); }; _local3 = _particlesPassed; _particlesPassed = Math.round(_easing(_timePassed, 0, _particles, _duration)); return ((_particlesPassed - _local3)); } public function set duration(_arg1:Number):void{ _duration = _arg1; } public function get easing():Function{ return (_easing); } public function resume():void{ _stop = false; } public function startEmitter(_arg1:Emitter):uint{ _particlesPassed = 0; _timePassed = 0; return (0); } } }//package org.flintparticles.common.counters
Section 133
//ZeroCounter (org.flintparticles.common.counters.ZeroCounter) package org.flintparticles.common.counters { import org.flintparticles.common.emitters.*; public class ZeroCounter implements Counter { public function stop():void{ } public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{ return (0); } public function startEmitter(_arg1:Emitter):uint{ return (0); } public function resume():void{ } } }//package org.flintparticles.common.counters
Section 134
//RadialDot (org.flintparticles.common.displayObjects.RadialDot) package org.flintparticles.common.displayObjects { import flash.display.*; import flash.geom.*; public class RadialDot extends Shape { public function RadialDot(_arg1:Number, _arg2:uint=0xFFFFFF, _arg3:String="normal"){ var _local4:Matrix; super(); _local4 = new Matrix(); _local4.createGradientBox((_arg1 * 2), (_arg1 * 2), 0, -(_arg1), -(_arg1)); graphics.beginGradientFill(GradientType.RADIAL, [_arg2, _arg2], [1, 0], [0, 0xFF], _local4); graphics.drawCircle(0, 0, _arg1); graphics.endFill(); blendMode = _arg3; } } }//package org.flintparticles.common.displayObjects
Section 135
//Linear (org.flintparticles.common.easing.Linear) package org.flintparticles.common.easing { public class Linear { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package org.flintparticles.common.easing
Section 136
//Emitter (org.flintparticles.common.emitters.Emitter) package org.flintparticles.common.emitters { import flash.events.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.initializers.*; import org.flintparticles.common.actions.*; import org.flintparticles.common.activities.*; import org.flintparticles.common.counters.*; import org.flintparticles.common.events.*; import org.flintparticles.common.utils.*; public class Emitter extends EventDispatcher { protected var _running:Boolean;// = false protected var _activities:PriorityArray; protected var _particles:Array; protected var _initializers:PriorityArray; protected var _counter:Counter; protected var _started:Boolean;// = false protected var _actions:PriorityArray; protected var _useInternalTick:Boolean;// = true protected var _fixedFrameTime:Number;// = 0 protected var _particleFactory:ParticleFactory; protected var _maximumFrameTime:Number;// = 0.1 public function Emitter(){ _useInternalTick = true; _fixedFrameTime = 0; _running = false; _started = false; _maximumFrameTime = 0.1; super(); _particles = new Array(); _actions = new PriorityArray(); _initializers = new PriorityArray(); _activities = new PriorityArray(); _counter = new ZeroCounter(); } public function stop():void{ if (_useInternalTick){ FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener); }; _started = false; killAllParticles(); } public function get counter():Counter{ return (_counter); } public function addInitializer(_arg1:Initializer, _arg2:Number=NaN):void{ if (isNaN(_arg2)){ _arg2 = _arg1.getDefaultPriority(); }; _initializers.add(_arg1, _arg2); _arg1.addedToEmitter(this); } public function killAllParticles():void{ var _local1:int; var _local2:int; _local1 = _particles.length; _local2 = 0; while (_local2 < _local1) { dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _particles[_local2])); _particleFactory.disposeParticle(_particles[_local2]); _local2++; }; _particles.length = 0; } public function set fixedFrameTime(_arg1:Number):void{ _fixedFrameTime = _arg1; } public function get maximumFrameTime():Number{ return (_maximumFrameTime); } public function get useInternalTick():Boolean{ return (_useInternalTick); } public function get particleFactory():ParticleFactory{ return (_particleFactory); } private function updateEventListener(_arg1:UpdateEvent):void{ if (_fixedFrameTime){ update(_fixedFrameTime); } else { update(_arg1.time); }; } protected function createParticle():Particle{ var _local1:Particle; var _local2:int; var _local3:int; _local1 = _particleFactory.createParticle(); _local2 = _initializers.length; initParticle(_local1); _local3 = 0; while (_local3 < _local2) { _initializers[_local3].initialize(this, _local1); _local3++; }; _particles.push(_local1); dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_CREATED, _local1)); return (_local1); } public function get particles():Array{ return (_particles); } protected function sortParticles():void{ } public function removeActivity(_arg1:Activity):void{ if (_activities.remove(_arg1)){ _arg1.removedFromEmitter(this); }; } public function set maximumFrameTime(_arg1:Number):void{ _maximumFrameTime = _arg1; } protected function initParticle(_arg1:Particle):void{ } public function addAction(_arg1:Action, _arg2:Number=NaN):void{ if (isNaN(_arg2)){ _arg2 = _arg1.getDefaultPriority(); }; _actions.add(_arg1, _arg2); _arg1.addedToEmitter(this); } public function hasInitializerOfType(_arg1:Class):Boolean{ var _local2:uint; var _local3:uint; _local2 = _initializers.length; _local3 = 0; while (_local3 < _local2) { if ((_initializers[_local3] is _arg1)){ return (true); }; _local3++; }; return (false); } public function resume():void{ _running = true; } public function removeInitializer(_arg1:Initializer):void{ if (_initializers.remove(_arg1)){ _arg1.removedFromEmitter(this); }; } public function get running():Boolean{ return (_running); } public function hasActionOfType(_arg1:Class):Boolean{ var _local2:uint; var _local3:uint; _local2 = _actions.length; _local3 = 0; while (_local3 < _local2) { if ((_actions[_local3] is _arg1)){ return (true); }; _local3++; }; return (false); } public function get fixedFrameTime():Number{ return (_fixedFrameTime); } public function set particleFactory(_arg1:ParticleFactory):void{ _particleFactory = _arg1; } public function hasActivity(_arg1:Activity):Boolean{ return (_activities.contains(_arg1)); } public function addActivity(_arg1:Activity, _arg2:Number=NaN):void{ if (isNaN(_arg2)){ _arg2 = _arg1.getDefaultPriority(); }; _activities.add(_arg1, _arg2); _arg1.addedToEmitter(this); } public function update(_arg1:Number):void{ var _local2:int; var _local3:Particle; var _local4:int; var _local5:Action; var _local6:int; var _local7:int; if (((!(_running)) || ((_arg1 > _maximumFrameTime)))){ return; }; _local4 = _counter.updateEmitter(this, _arg1); _local2 = 0; while (_local2 < _local4) { createParticle(); _local2++; }; sortParticles(); _local4 = _activities.length; _local2 = 0; while (_local2 < _local4) { _activities[_local2].update(this, _arg1); _local2++; }; if (_particles.length > 0){ _local4 = _actions.length; _local6 = _particles.length; _local7 = 0; while (_local7 < _local4) { _local5 = _actions[_local7]; _local2 = 0; while (_local2 < _local6) { _local3 = _particles[_local2]; _local5.update(this, _local3, _arg1); _local2++; }; _local7++; }; _local2 = _local6; while (_local2--) { _local3 = _particles[_local2]; if (_local3.isDead){ dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _local3)); _particleFactory.disposeParticle(_local3); _particles.splice(_local2, 1); }; }; } else { dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_EMPTY)); }; dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_UPDATED)); } public function removeAction(_arg1:Action):void{ if (_actions.remove(_arg1)){ _arg1.removedFromEmitter(this); }; } public function hasActivityOfType(_arg1:Class):Boolean{ var _local2:uint; var _local3:uint; _local2 = _activities.length; _local3 = 0; while (_local3 < _local2) { if ((_activities[_local3] is _arg1)){ return (true); }; _local3++; }; return (false); } public function addExistingParticles(_arg1:Array, _arg2:Boolean=false):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; _local3 = _arg1.length; if (_arg2){ _local5 = _initializers.length; _local6 = 0; while (_local6 < _local5) { _local4 = 0; while (_local4 < _local3) { _initializers[_local6].initialize(this, _arg1[_local4]); _local4++; }; _local6++; }; }; _local4 = 0; while (_local4 < _local3) { _particles.push(_arg1[_local4]); dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_ADDED, _arg1[_local4])); _local4++; }; } public function set useInternalTick(_arg1:Boolean):void{ if (_useInternalTick != _arg1){ _useInternalTick = _arg1; if (_started){ if (_useInternalTick){ FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener); } else { FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener); }; }; }; } public function hasInitializer(_arg1:Initializer):Boolean{ return (_initializers.contains(_arg1)); } public function start():void{ var _local1:int; var _local2:int; if (_useInternalTick){ FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener); }; _started = true; _running = true; _local1 = _activities.length; _local2 = 0; while (_local2 < _local1) { _activities[_local2].initialize(this); _local2++; }; _local1 = _counter.startEmitter(this); _local2 = 0; while (_local2 < _local1) { createParticle(); _local2++; }; } public function hasAction(_arg1:Action):Boolean{ return (_actions.contains(_arg1)); } public function pause():void{ _running = false; } public function set counter(_arg1:Counter):void{ _counter = _arg1; } public function runAhead(_arg1:Number, _arg2:Number=10):void{ var _local3:Number; var _local4:Number; _local3 = _maximumFrameTime; _local4 = (1 / _arg2); _maximumFrameTime = _local4; while (_arg1 > 0) { _arg1 = (_arg1 - _local4); update(_local4); }; _maximumFrameTime = _local3; } } }//package org.flintparticles.common.emitters
Section 137
//Linear (org.flintparticles.common.energyEasing.Linear) package org.flintparticles.common.energyEasing { public class Linear { public static function easeOut(_arg1:Number, _arg2:Number):Number{ return ((1 - (_arg1 / _arg2))); } public static function easeIn(_arg1:Number, _arg2:Number):Number{ return ((1 - (_arg1 / _arg2))); } public static function easeInOut(_arg1:Number, _arg2:Number):Number{ return ((1 - (_arg1 / _arg2))); } public static function easeNone(_arg1:Number, _arg2:Number):Number{ return ((1 - (_arg1 / _arg2))); } } }//package org.flintparticles.common.energyEasing
Section 138
//TwoWay (org.flintparticles.common.energyEasing.TwoWay) package org.flintparticles.common.energyEasing { public class TwoWay { public static function linear(_arg1:Number, _arg2:Number):Number{ _arg1 = ((2 * _arg1) / _arg2); if (_arg1 <= 1){ return (_arg1); }; return ((2 - _arg1)); } public static function quadratic(_arg1:Number, _arg2:Number):Number{ _arg1 = (1 - ((2 * _arg1) / _arg2)); return (-(((_arg1 * _arg1) - 1))); } public static function quartic(_arg1:Number, _arg2:Number):Number{ _arg1 = (1 - ((2 * _arg1) / _arg2)); return (-(((((_arg1 * _arg1) * _arg1) * _arg1) - 1))); } public static function cubic(_arg1:Number, _arg2:Number):Number{ _arg1 = (1 - ((2 * _arg1) / _arg2)); if (_arg1 < 0){ _arg1 = -(_arg1); }; return (-((((_arg1 * _arg1) * _arg1) - 1))); } public static function quintic(_arg1:Number, _arg2:Number):Number{ _arg1 = (1 - ((2 * _arg1) / _arg2)); if (_arg1 < 0){ _arg1 = -(_arg1); }; return (-((((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) - 1))); } public static function sine(_arg1:Number, _arg2:Number):Number{ return (Math.sin(((Math.PI * _arg1) / _arg2))); } public static function circular(_arg1:Number, _arg2:Number):Number{ _arg1 = (1 - ((2 * _arg1) / _arg2)); return (Math.sqrt((1 - (_arg1 * _arg1)))); } } }//package org.flintparticles.common.energyEasing
Section 139
//EmitterEvent (org.flintparticles.common.events.EmitterEvent) package org.flintparticles.common.events { import flash.events.*; public class EmitterEvent extends Event { public static var EMITTER_UPDATED:String = "emitterUpdated"; public static var EMITTER_EMPTY:String = "emitterEmpty"; public function EmitterEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package org.flintparticles.common.events
Section 140
//ParticleEvent (org.flintparticles.common.events.ParticleEvent) package org.flintparticles.common.events { import flash.events.*; import org.flintparticles.common.particles.*; public class ParticleEvent extends Event { public var particle:Particle; public static var PARTICLE_ADDED:String = "particleAdded"; public static var PARTICLE_DEAD:String = "particleDead"; public static var PARTICLE_CREATED:String = "particleCreated"; public function ParticleEvent(_arg1:String, _arg2:Particle=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.particle = _arg2; } } }//package org.flintparticles.common.events
Section 141
//UpdateEvent (org.flintparticles.common.events.UpdateEvent) package org.flintparticles.common.events { import flash.events.*; public class UpdateEvent extends Event { public var time:Number; public static var UPDATE:String = "update"; public function UpdateEvent(_arg1:String, _arg2:Number=NaN, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.time = _arg2; } } }//package org.flintparticles.common.events
Section 142
//ColorInit (org.flintparticles.common.initializers.ColorInit) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.utils.*; public class ColorInit extends InitializerBase { private var _max:uint; private var _min:uint; public function ColorInit(_arg1:uint, _arg2:uint){ _min = _arg1; _max = _arg2; } public function get color():uint{ return (((_min == _max)) ? _min : interpolateColors(_max, _min, 0.5)); } public function set color(_arg1:uint):void{ _max = (_min = _arg1); } public function set minColor(_arg1:uint):void{ _min = _arg1; } public function set maxColor(_arg1:uint):void{ _max = _arg1; } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ if (_max == _min){ _arg2.color = _min; } else { _arg2.color = interpolateColors(_min, _max, Math.random()); }; } public function get minColor():uint{ return (_min); } public function get maxColor():uint{ return (_max); } } }//package org.flintparticles.common.initializers
Section 143
//ImageClass (org.flintparticles.common.initializers.ImageClass) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.utils.*; public class ImageClass extends InitializerBase { private var _parameters:Array; private var _imageClass:Class; public function ImageClass(_arg1:Class, ... _args){ _imageClass = _arg1; _parameters = _args; } public function set imageClass(_arg1:Class):void{ _imageClass = _arg1; } public function get parameters():Array{ return (_parameters); } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ _arg2.image = construct(_imageClass, _parameters); } public function set parameters(_arg1:Array):void{ _parameters = _arg1; } public function get imageClass():Class{ return (_imageClass); } } }//package org.flintparticles.common.initializers
Section 144
//Initializer (org.flintparticles.common.initializers.Initializer) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public interface Initializer { function initialize(_arg1:Emitter, _arg2:Particle):void; function addedToEmitter(_arg1:Emitter):void; function removedFromEmitter(_arg1:Emitter):void; function getDefaultPriority():Number; } }//package org.flintparticles.common.initializers
Section 145
//InitializerBase (org.flintparticles.common.initializers.InitializerBase) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class InitializerBase implements Initializer { public function initialize(_arg1:Emitter, _arg2:Particle):void{ } public function removedFromEmitter(_arg1:Emitter):void{ } public function getDefaultPriority():Number{ return (0); } public function addedToEmitter(_arg1:Emitter):void{ } } }//package org.flintparticles.common.initializers
Section 146
//Lifetime (org.flintparticles.common.initializers.Lifetime) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class Lifetime extends InitializerBase { private var _min:Number; private var _max:Number; public function Lifetime(_arg1:Number, _arg2:Number=NaN){ _max = _arg2; _min = _arg1; } public function set maxLifetime(_arg1:Number):void{ _max = _arg1; } public function get maxLifetime():Number{ return (_max); } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ if (isNaN(_max)){ _arg2.lifetime = _min; } else { _arg2.lifetime = (_min + (Math.random() * (_max - _min))); }; } public function set lifetime(_arg1:Number):void{ _max = (_min = _arg1); } public function get lifetime():Number{ return (((_min == _max)) ? _min : ((_max + _min) * 0.5)); } public function get minLifetime():Number{ return (_min); } public function set minLifetime(_arg1:Number):void{ _min = _arg1; } } }//package org.flintparticles.common.initializers
Section 147
//Particle (org.flintparticles.common.particles.Particle) package org.flintparticles.common.particles { import flash.geom.*; import flash.utils.*; public class Particle { public var lifetime:Number;// = 0 public var scale:Number;// = 1 public var energy:Number;// = 1 public var image;// = null public var color:uint;// = 4294967295 public var collisionRadius:Number;// = 1 private var _colorTransform:ColorTransform; private var _previousColor:uint; public var isDead:Boolean;// = false public var mass:Number;// = 1 private var _dictionary:Dictionary;// = null public var age:Number;// = 0 public function Particle(){ color = 4294967295; scale = 1; mass = 1; collisionRadius = 1; image = null; lifetime = 0; age = 0; energy = 1; isDead = false; _dictionary = null; super(); initialize(); } public function get dictionary():Dictionary{ if (_dictionary == null){ _dictionary = new Dictionary(); }; return (_dictionary); } public function get colorTransform():ColorTransform{ if (((!(_colorTransform)) || (!((_previousColor == color))))){ _colorTransform = new ColorTransform((((color >>> 16) & 0xFF) / 0xFF), (((color >>> 8) & 0xFF) / 0xFF), ((color & 0xFF) / 0xFF), (((color >>> 24) & 0xFF) / 0xFF), 0, 0, 0, 0); _previousColor = color; }; return (_colorTransform); } public function get alpha():Number{ return ((((color & 4278190080) >>> 24) / 0xFF)); } public function initialize():void{ color = 4294967295; scale = 1; mass = 1; collisionRadius = 1; lifetime = 0; age = 0; energy = 1; isDead = false; image = null; _dictionary = null; _colorTransform = null; } } }//package org.flintparticles.common.particles
Section 148
//ParticleFactory (org.flintparticles.common.particles.ParticleFactory) package org.flintparticles.common.particles { public interface ParticleFactory { function createParticle():Particle; function disposeParticle(_arg1:Particle):void; } }//package org.flintparticles.common.particles
Section 149
//Renderer (org.flintparticles.common.renderers.Renderer) package org.flintparticles.common.renderers { import org.flintparticles.common.emitters.*; public interface Renderer { function removeEmitter(_arg1:Emitter):void; function addEmitter(_arg1:Emitter):void; } }//package org.flintparticles.common.renderers
Section 150
//SpriteRendererBase (org.flintparticles.common.renderers.SpriteRendererBase) package org.flintparticles.common.renderers { import flash.display.*; import flash.events.*; import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.events.*; public class SpriteRendererBase extends Sprite implements Renderer { protected var _emitters:Array; public function SpriteRendererBase(){ _emitters = new Array(); mouseEnabled = false; mouseChildren = false; addEventListener(Event.ADDED_TO_STAGE, addedToStage, false, 0, true); } private function particleAdded(_arg1:ParticleEvent):void{ addParticle(_arg1.particle); if (stage){ stage.invalidate(); }; } private function addedToStage(_arg1:Event):void{ if (stage){ stage.invalidate(); }; } protected function removeParticle(_arg1:Particle):void{ } protected function addParticle(_arg1:Particle):void{ } public function removeEmitter(_arg1:Emitter):void{ var _local2:int; var _local3:Particle; _local2 = 0; while (_local2 < _emitters.length) { if (_emitters[_local2] == _arg1){ _emitters.splice(_local2, 1); _arg1.removeEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated); _arg1.removeEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded); _arg1.removeEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded); _arg1.removeEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved); for each (_local3 in _arg1.particles) { removeParticle(_local3); }; if (_emitters.length == 0){ removeEventListener(Event.RENDER, updateParticles); renderParticles([]); } else { stage.invalidate(); }; return; }; _local2++; }; } private function emitterUpdated(_arg1:EmitterEvent):void{ if (stage){ stage.invalidate(); }; } public function addEmitter(_arg1:Emitter):void{ var _local2:Particle; _emitters.push(_arg1); if (stage){ stage.invalidate(); }; _arg1.addEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated, false, 0, true); _arg1.addEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded, false, 0, true); _arg1.addEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded, false, 0, true); _arg1.addEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved, false, 0, true); for each (_local2 in _arg1.particles) { addParticle(_local2); }; if (_emitters.length == 1){ addEventListener(Event.RENDER, updateParticles, false, 0, true); }; } protected function renderParticles(_arg1:Array):void{ } private function updateParticles(_arg1:Event):void{ var _local2:Array; var _local3:int; _local2 = new Array(); _local3 = 0; while (_local3 < _emitters.length) { _local2 = _local2.concat(_emitters[_local3].particles); _local3++; }; renderParticles(_local2); } private function particleRemoved(_arg1:ParticleEvent):void{ removeParticle(_arg1.particle); if (stage){ stage.invalidate(); }; } } }//package org.flintparticles.common.renderers
Section 151
//construct (org.flintparticles.common.utils.construct) package org.flintparticles.common.utils { public function construct(_arg1:Class, _arg2:Array){ switch (_arg2.length){ case 0: return (new (_arg1)); case 1: return (new _arg1(_arg2[0])); case 2: return (new _arg1(_arg2[0], _arg2[1])); case 3: return (new _arg1(_arg2[0], _arg2[1], _arg2[2])); case 4: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3])); case 5: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4])); case 6: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5])); case 7: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6])); case 8: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7])); case 9: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8])); case 10: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8], _arg2[9])); default: return (null); }; } }//package org.flintparticles.common.utils
Section 152
//FrameUpdater (org.flintparticles.common.utils.FrameUpdater) package org.flintparticles.common.utils { import flash.display.*; import flash.events.*; import flash.utils.*; import org.flintparticles.common.events.*; public class FrameUpdater extends EventDispatcher { private var _shape:Shape; private var _time:Number; private static var _instance:FrameUpdater; public function FrameUpdater(){ _shape = new Shape(); _shape.addEventListener(Event.ENTER_FRAME, frameUpdate); _time = getTimer(); } private function frameUpdate(_arg1:Event):void{ var _local2:int; var _local3:Number; _local2 = _time; _time = getTimer(); _local3 = ((_time - _local2) * 0.001); dispatchEvent(new UpdateEvent(UpdateEvent.UPDATE, _local3)); } public static function get instance():FrameUpdater{ if (_instance == null){ _instance = new (FrameUpdater); }; return (_instance); } } }//package org.flintparticles.common.utils
Section 153
//interpolateColors (org.flintparticles.common.utils.interpolateColors) package org.flintparticles.common.utils { public function interpolateColors(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; _local4 = (1 - _arg3); _local5 = Math.round(((((_arg1 >>> 16) & 0xFF) * _arg3) + (((_arg2 >>> 16) & 0xFF) * _local4))); _local6 = Math.round(((((_arg1 >>> 8) & 0xFF) * _arg3) + (((_arg2 >>> 8) & 0xFF) * _local4))); _local7 = Math.round((((_arg1 & 0xFF) * _arg3) + ((_arg2 & 0xFF) * _local4))); _local8 = Math.round(((((_arg1 >>> 24) & 0xFF) * _arg3) + (((_arg2 >>> 24) & 0xFF) * _local4))); return (((((_local8 << 24) | (_local5 << 16)) | (_local6 << 8)) | _local7)); } }//package org.flintparticles.common.utils
Section 154
//Maths (org.flintparticles.common.utils.Maths) package org.flintparticles.common.utils { public class Maths { private static const DEGTORAD:Number = 0.0174532925199433; private static const RADTODEG:Number = 57.2957795130823; public static function asRadians(_arg1:Number):Number{ return ((_arg1 * DEGTORAD)); } public static function asDegrees(_arg1:Number):Number{ return ((_arg1 * RADTODEG)); } } }//package org.flintparticles.common.utils
Section 155
//PriorityArray (org.flintparticles.common.utils.PriorityArray) package org.flintparticles.common.utils { import flash.utils.*; public class PriorityArray extends Proxy { private var _values:Array; public function PriorityArray(){ _values = new Array(); } public function remove(_arg1):Boolean{ var _local2:uint; _local2 = _values.length; while (_local2--) { if (_values[_local2].value == _arg1){ _values.splice(_local2, 1); return (true); }; }; return (false); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return ((_arg1 - 1).toString()); } public function removeAt(_arg1:uint){ var _local2:*; _local2 = _values[_arg1].value; _values.splice(_arg1, 1); return (_local2); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ var _local2:int; _local2 = int(_arg1); if ((((((_local2 == _arg1)) && ((_local2 < _values.length)))) && (_values[_local2]))){ return (_values[_local2].value); }; return (undefined); } public function clear():void{ _values.length = 0; } public function add(_arg1, _arg2:Number):uint{ var _local3:uint; var _local4:uint; _local3 = _values.length; _local4 = 0; while (_local4 < _local3) { if (_values[_local4].priority < _arg2){ break; }; _local4++; }; _values.splice(_local4, 0, new Pair(_arg2, _arg1)); return (_values.length); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ if (_arg1 < _values.length){ return ((_arg1 + 1)); }; return (0); } public function get length():uint{ return (_values.length); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:uint; _local3 = uint(_arg1); if ((((_local3 == _arg1)) && ((_local3 < _values.length)))){ _values[_local3].value = _arg2; }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextValue(_arg1:int){ return (_values[(_arg1 - 1)]); } public function contains(_arg1):Boolean{ var _local2:uint; _local2 = _values.length; while (_local2--) { if (_values[_local2].value == _arg1){ return (true); }; }; return (false); } } }//package org.flintparticles.common.utils class Pair { private var value; private var priority:Number; private function Pair(_arg1:Number, _arg2){ this.priority = _arg1; this.value = _arg2; } }
Section 156
//Accelerate (org.flintparticles.twoD.actions.Accelerate) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.particles.*; public class Accelerate extends ActionBase { private var _x:Number; private var _y:Number; public function Accelerate(_arg1:Number, _arg2:Number){ _x = _arg1; _y = _arg2; } public function get y():Number{ return (_y); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D; _local4 = Particle2D(_arg2); Particle2D(_arg2).velX = (_local4.velX + (_x * _arg3)); _local4.velY = (_local4.velY + (_y * _arg3)); } public function set y(_arg1:Number):void{ _y = _arg1; } public function set x(_arg1:Number):void{ _x = _arg1; } public function get x():Number{ return (_x); } } }//package org.flintparticles.twoD.actions
Section 157
//DeathSpeed (org.flintparticles.twoD.actions.DeathSpeed) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.particles.*; public class DeathSpeed extends ActionBase { private var _isMinimum:Boolean; private var _limitSq:Number; private var _limit:Number; public function DeathSpeed(_arg1:Number, _arg2:Boolean=false){ _limit = _arg1; _limitSq = (_arg1 * _arg1); _isMinimum = _arg2; } public function get isMinimum():Boolean{ return (_isMinimum); } public function set isMinimum(_arg1:Boolean):void{ _isMinimum = _arg1; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D; var _local5:Number; _local4 = Particle2D(_arg2); _local5 = ((_local4.velX * _local4.velX) + (_local4.velY * _local4.velY)); if (((((_isMinimum) && ((_local5 < _limitSq)))) || (((!(_isMinimum)) && ((_local5 > _limitSq)))))){ if (_local5 > _limitSq){ _local4.isDead = true; }; }; } public function get limit():Number{ return (_limit); } public function set limit(_arg1:Number):void{ _limit = _arg1; _limitSq = (_arg1 * _arg1); } } }//package org.flintparticles.twoD.actions
Section 158
//Move (org.flintparticles.twoD.actions.Move) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.particles.*; public class Move extends ActionBase { private var p:Particle2D; override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ p = Particle2D(_arg2); p.x = (p.x + (p.velX * _arg3)); p.y = (p.y + (p.velY * _arg3)); } override public function getDefaultPriority():Number{ return (-10); } } }//package org.flintparticles.twoD.actions
Section 159
//RotateToDirection (org.flintparticles.twoD.actions.RotateToDirection) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.particles.*; public class RotateToDirection extends ActionBase { override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D; _local4 = Particle2D(_arg2); _local4.rotation = Math.atan2(_local4.velY, _local4.velX); } } }//package org.flintparticles.twoD.actions
Section 160
//Emitter2D (org.flintparticles.twoD.emitters.Emitter2D) package org.flintparticles.twoD.emitters { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.utils.*; import org.flintparticles.twoD.particles.*; public class Emitter2D extends Emitter { protected var _y:Number;// = 0 protected var _x:Number;// = 0 public var spaceSort:Boolean;// = false public var spaceSortedX:Array; protected var _rotation:Number;// = 0 protected static var _creator:ParticleCreator2D = new ParticleCreator2D(); public function Emitter2D(){ _x = 0; _y = 0; _rotation = 0; spaceSort = false; super(); _particleFactory = _creator; } public function set rotation(_arg1:Number):void{ _rotation = Maths.asRadians(_arg1); } public function get y():Number{ return (_y); } public function set y(_arg1:Number):void{ _y = _arg1; } override protected function sortParticles():void{ var _local1:int; var _local2:int; if (spaceSort){ spaceSortedX = _particles.sortOn("x", (Array.NUMERIC | Array.RETURNINDEXEDARRAY)); _local1 = _particles.length; _local2 = 0; while (_local2 < _local1) { _particles[spaceSortedX[_local2]].sortID = _local2; _local2++; }; }; } override protected function initParticle(_arg1:Particle):void{ var _local2:Particle2D; _local2 = Particle2D(_arg1); _local2.x = _x; _local2.y = _y; _local2.rotation = _rotation; } public function set rotRadians(_arg1:Number):void{ _rotation = _arg1; } public function get rotRadians():Number{ return (_rotation); } public function set x(_arg1:Number):void{ _x = _arg1; } public function get rotation():Number{ return (Maths.asDegrees(_rotation)); } public function get x():Number{ return (_x); } public static function get defaultParticleFactory():ParticleFactory{ return (_creator); } } }//package org.flintparticles.twoD.emitters
Section 161
//Position (org.flintparticles.twoD.initializers.Position) package org.flintparticles.twoD.initializers { import org.flintparticles.common.emitters.*; import flash.geom.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.initializers.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.particles.*; public class Position extends InitializerBase { private var _zone:Zone2D; public function Position(_arg1:Zone2D){ _zone = _arg1; } public function get zone():Zone2D{ return (_zone); } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ var _local3:Particle2D; var _local4:Point; var _local5:Number; var _local6:Number; _local3 = Particle2D(_arg2); _local4 = _zone.getLocation(); if (_local3.rotation == 0){ _local3.x = (_local3.x + _local4.x); _local3.y = (_local3.y + _local4.y); } else { _local5 = Math.sin(_local3.rotation); _local6 = Math.cos(_local3.rotation); _local3.x = (_local3.x + ((_local6 * _local4.x) - (_local5 * _local4.y))); _local3.y = (_local3.y + ((_local6 * _local4.y) + (_local5 * _local4.x))); }; } public function set zone(_arg1:Zone2D):void{ _zone = _arg1; } } }//package org.flintparticles.twoD.initializers
Section 162
//Velocity (org.flintparticles.twoD.initializers.Velocity) package org.flintparticles.twoD.initializers { import org.flintparticles.common.emitters.*; import flash.geom.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.initializers.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.particles.*; public class Velocity extends InitializerBase { private var _zone:Zone2D; public function Velocity(_arg1:Zone2D){ _zone = _arg1; } public function get zone():Zone2D{ return (_zone); } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ var _local3:Particle2D; var _local4:Point; var _local5:Number; var _local6:Number; _local3 = Particle2D(_arg2); _local4 = _zone.getLocation(); if (_local3.rotation == 0){ _local3.velX = _local4.x; _local3.velY = _local4.y; } else { _local5 = Math.sin(_local3.rotation); _local6 = Math.cos(_local3.rotation); _local3.velX = ((_local6 * _local4.x) - (_local5 * _local4.y)); _local3.velY = ((_local6 * _local4.y) + (_local5 * _local4.x)); }; } public function set zone(_arg1:Zone2D):void{ _zone = _arg1; } } }//package org.flintparticles.twoD.initializers
Section 163
//Particle2D (org.flintparticles.twoD.particles.Particle2D) package org.flintparticles.twoD.particles { import flash.geom.*; import org.flintparticles.common.particles.*; public class Particle2D extends Particle { public var sortID:uint; public var rotation:Number;// = 0 private var _previousRadius:Number; public var velX:Number;// = 0 public var angVelocity:Number;// = 0 private var _previousMass:Number; public var velY:Number;// = 0 public var x:Number;// = 0 public var y:Number;// = 0 private var _inertia:Number; public function Particle2D(){ x = 0; y = 0; velX = 0; velY = 0; rotation = 0; angVelocity = 0; super(); } public function get matrixTransform():Matrix{ var _local1:Number; var _local2:Number; _local1 = (scale * Math.cos(rotation)); _local2 = (scale * Math.sin(rotation)); return (new Matrix(_local1, _local2, -(_local2), _local1, x, y)); } override public function initialize():void{ super.initialize(); x = 0; y = 0; velX = 0; velY = 0; rotation = 0; angVelocity = 0; sortID = 0; } public function get inertia():Number{ if (((!((mass == _previousMass))) || (!((collisionRadius == _previousRadius))))){ _inertia = (((mass * collisionRadius) * collisionRadius) * 0.5); _previousMass = mass; _previousRadius = collisionRadius; }; return (_inertia); } } }//package org.flintparticles.twoD.particles
Section 164
//ParticleCreator2D (org.flintparticles.twoD.particles.ParticleCreator2D) package org.flintparticles.twoD.particles { import org.flintparticles.common.particles.*; public class ParticleCreator2D implements ParticleFactory { private var _particles:Array; public function ParticleCreator2D(){ _particles = new Array(); } public function clearAllParticles():void{ _particles = new Array(); } public function createParticle():Particle{ if (_particles.length){ return (_particles.pop()); }; return (new Particle2D()); } public function disposeParticle(_arg1:Particle):void{ if ((_arg1 is Particle2D)){ _arg1.initialize(); _particles.push(_arg1); }; } } }//package org.flintparticles.twoD.particles
Section 165
//BitmapRenderer (org.flintparticles.twoD.renderers.BitmapRenderer) package org.flintparticles.twoD.renderers { import flash.display.*; import flash.filters.*; import flash.geom.*; import org.flintparticles.twoD.particles.*; import org.flintparticles.common.renderers.*; public class BitmapRenderer extends SpriteRendererBase { protected var _smoothing:Boolean; protected var _bitmapData:BitmapData; protected var _colorMap:Array; protected var _bitmap:Bitmap; protected var _postFilters:Array; protected var _preFilters:Array; protected var _canvas:Rectangle; protected static var ZERO_POINT:Point = new Point(0, 0); public function BitmapRenderer(_arg1:Rectangle, _arg2:Boolean=false){ mouseEnabled = false; mouseChildren = false; _smoothing = _arg2; _preFilters = new Array(); _postFilters = new Array(); _canvas = _arg1; createBitmap(); } public function setPaletteMap(_arg1:Array=null, _arg2:Array=null, _arg3:Array=null, _arg4:Array=null):void{ _colorMap = new Array(4); _colorMap[0] = _arg4; _colorMap[1] = _arg1; _colorMap[2] = _arg2; _colorMap[3] = _arg3; } public function clearPaletteMap():void{ _colorMap = null; } public function removeFilter(_arg1:BitmapFilter):void{ var _local2:int; _local2 = 0; while (_local2 < _preFilters.length) { if (_preFilters[_local2] == _arg1){ _preFilters.splice(_local2, 1); return; }; _local2++; }; _local2 = 0; while (_local2 < _postFilters.length) { if (_postFilters[_local2] == _arg1){ _postFilters.splice(_local2, 1); return; }; _local2++; }; } protected function createBitmap():void{ if (!_canvas){ return; }; if (((_bitmap) && (_bitmapData))){ _bitmapData.dispose(); _bitmapData = null; }; if (_bitmap){ removeChild(_bitmap); }; _bitmap = new Bitmap(null, "auto", _smoothing); _bitmapData = new BitmapData(_canvas.width, _canvas.height, true, 0); _bitmap.bitmapData = _bitmapData; addChild(_bitmap); _bitmap.x = _canvas.x; _bitmap.y = _canvas.y; } public function get canvas():Rectangle{ return (_canvas); } public function addFilter(_arg1:BitmapFilter, _arg2:Boolean=false):void{ if (_arg2){ _postFilters.push(_arg1); } else { _preFilters.push(_arg1); }; } override protected function renderParticles(_arg1:Array):void{ var _local2:int; var _local3:int; if (!_bitmap){ return; }; _bitmapData.lock(); _local3 = _preFilters.length; _local2 = 0; while (_local2 < _local3) { _bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _preFilters[_local2]); _local2++; }; if ((((_local3 == 0)) && ((_postFilters.length == 0)))){ _bitmapData.fillRect(_bitmap.bitmapData.rect, 0); }; _local3 = _arg1.length; if (_local3){ _local2 = _local3; while (_local2--) { drawParticle(_arg1[_local2]); }; }; _local3 = _postFilters.length; _local2 = 0; while (_local2 < _local3) { _bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _postFilters[_local2]); _local2++; }; if (_colorMap){ _bitmapData.paletteMap(_bitmapData, _bitmapData.rect, ZERO_POINT, _colorMap[1], _colorMap[2], _colorMap[3], _colorMap[0]); }; _bitmapData.unlock(); } public function set canvas(_arg1:Rectangle):void{ _canvas = _arg1; createBitmap(); } protected function drawParticle(_arg1:Particle2D):void{ var _local2:Matrix; _local2 = _arg1.matrixTransform; _local2.translate(-(_canvas.x), -(_canvas.y)); _bitmapData.draw(_arg1.image, _local2, _arg1.colorTransform, DisplayObject(_arg1.image).blendMode, null, _smoothing); } } }//package org.flintparticles.twoD.renderers
Section 166
//DiscSectorZone (org.flintparticles.twoD.zones.DiscSectorZone) package org.flintparticles.twoD.zones { import flash.geom.*; public class DiscSectorZone implements Zone2D { private var _minAngle:Number; private var _innerRadius:Number; private var _minAllowed:Number; private var _innerSq:Number; private var _outerRadius:Number; private var _center:Point; private var _maxAngle:Number; private var _outerSq:Number; private static var TWOPI:Number = 6.28318530717959; public function DiscSectorZone(_arg1:Point, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){ if (_arg2 < _arg3){ throw (new Error((((("The outerRadius (" + _arg2) + ") can't be smaller than the innerRadius (") + _arg3) + ") in your DiscSectorZone. N.B. the outerRadius is the second argument in the constructor and the innerRadius is the third argument."))); }; _center = _arg1; _innerRadius = _arg3; _outerRadius = _arg2; _innerSq = (_innerRadius * _innerRadius); _outerSq = (_outerRadius * _outerRadius); _minAngle = _arg4; _maxAngle = _arg5; while (_maxAngle > TWOPI) { _maxAngle = (_maxAngle - TWOPI); }; while (_maxAngle < 0) { _maxAngle = (_maxAngle + TWOPI); }; _minAllowed = (_maxAngle - TWOPI); if (_arg4 == _arg5){ _minAngle = _maxAngle; } else { _minAngle = clamp(_minAngle); }; } public function set minAngle(_arg1:Number):void{ _minAngle = clamp(_arg1); } public function get innerRadius():Number{ return (_innerRadius); } public function getArea():Number{ return (((Math.PI * _outerSq) - (Math.PI * _innerSq))); } public function set innerRadius(_arg1:Number):void{ _innerRadius = _arg1; _innerSq = (_innerRadius * _innerRadius); } public function get maxAngle():Number{ return (_maxAngle); } public function set outerRadius(_arg1:Number):void{ _outerRadius = _arg1; _outerSq = (_outerRadius * _outerRadius); } public function set maxAngle(_arg1:Number):void{ _maxAngle = _arg1; while (_maxAngle > TWOPI) { _maxAngle = (_maxAngle - TWOPI); }; while (_maxAngle < 0) { _maxAngle = (_maxAngle + TWOPI); }; _minAllowed = (_maxAngle - TWOPI); } public function contains(_arg1:Number, _arg2:Number):Boolean{ var _local3:Number; var _local4:Number; _arg1 = (_arg1 - _center.x); _arg2 = (_arg2 - _center.y); _local3 = ((_arg1 * _arg1) + (_arg2 * _arg2)); if ((((_local3 > _outerSq)) || ((_local3 < _innerSq)))){ return (false); }; _local4 = Math.atan2(_arg2, _arg1); _local4 = clamp(_local4); return ((_local4 >= _minAngle)); } public function get minAngle():Number{ return (_minAngle); } public function get center():Point{ return (_center); } public function getLocation():Point{ var _local1:Number; var _local2:Point; _local1 = Math.random(); _local2 = Point.polar((_innerRadius + ((1 - (_local1 * _local1)) * (_outerRadius - _innerRadius))), (_minAngle + (Math.random() * (_maxAngle - _minAngle)))); _local2.x = (_local2.x + _center.x); _local2.y = (_local2.y + _center.y); return (_local2); } public function set center(_arg1:Point):void{ _center = _arg1; } private function clamp(_arg1:Number):Number{ while (_arg1 > _maxAngle) { _arg1 = (_arg1 - TWOPI); }; while (_arg1 < _minAllowed) { _arg1 = (_arg1 + TWOPI); }; return (_arg1); } public function get outerRadius():Number{ return (_outerRadius); } } }//package org.flintparticles.twoD.zones
Section 167
//DiscZone (org.flintparticles.twoD.zones.DiscZone) package org.flintparticles.twoD.zones { import flash.geom.*; public class DiscZone implements Zone2D { private var _innerRadius:Number; private var _innerSq:Number; private var _outerRadius:Number; private var _center:Point; private var _outerSq:Number; private static const TWOPI:Number = 6.28318530717959; public function DiscZone(_arg1:Point, _arg2:Number, _arg3:Number=0){ if (_arg2 < _arg3){ throw (new Error((((("The outerRadius (" + _arg2) + ") can't be smaller than the innerRadius (") + _arg3) + ") in your DiscZone. N.B. the outerRadius is the second argument in the constructor and the innerRadius is the third argument."))); }; _center = _arg1; _innerRadius = _arg3; _outerRadius = _arg2; _innerSq = (_innerRadius * _innerRadius); _outerSq = (_outerRadius * _outerRadius); } public function getArea():Number{ return ((Math.PI * (_outerSq - _innerSq))); } public function get innerRadius():Number{ return (_innerRadius); } public function set innerRadius(_arg1:Number):void{ _innerRadius = _arg1; _innerSq = (_innerRadius * _innerRadius); } public function get center():Point{ return (_center); } public function set outerRadius(_arg1:Number):void{ _outerRadius = _arg1; _outerSq = (_outerRadius * _outerRadius); } public function contains(_arg1:Number, _arg2:Number):Boolean{ var _local3:Number; _arg1 = (_arg1 - _center.x); _arg2 = (_arg2 - _center.y); _local3 = ((_arg1 * _arg1) + (_arg2 * _arg2)); return ((((_local3 <= _outerSq)) && ((_local3 >= _innerSq)))); } public function get outerRadius():Number{ return (_outerRadius); } public function set center(_arg1:Point):void{ _center = _arg1; } public function getLocation():Point{ var _local1:Number; var _local2:Point; _local1 = Math.random(); _local2 = Point.polar((_innerRadius + ((1 - (_local1 * _local1)) * (_outerRadius - _innerRadius))), (Math.random() * TWOPI)); _local2.x = (_local2.x + _center.x); _local2.y = (_local2.y + _center.y); return (_local2); } } }//package org.flintparticles.twoD.zones
Section 168
//LineZone (org.flintparticles.twoD.zones.LineZone) package org.flintparticles.twoD.zones { import flash.geom.*; public class LineZone implements Zone2D { private var _point1:Point; private var _length:Point; private var _point2:Point; public function LineZone(_arg1:Point, _arg2:Point){ _point1 = _arg1; _point2 = _arg2; _length = _arg2.subtract(_arg1); } public function getArea():Number{ return (_length.length); } public function set point2(_arg1:Point):void{ _point2 = _arg1; _length = point2.subtract(point1); } public function set point1(_arg1:Point):void{ _point1 = _arg1; _length = point2.subtract(point1); } public function getLocation():Point{ var _local1:Point; var _local2:Number; _local1 = _point1.clone(); _local2 = Math.random(); _local1.x = (_local1.x + (_length.x * _local2)); _local1.y = (_local1.y + (_length.y * _local2)); return (_local1); } public function get point1():Point{ return (_point1); } public function get point2():Point{ return (_point2); } public function contains(_arg1:Number, _arg2:Number):Boolean{ if ((((_arg1 - _point1.x) * _length.y) - ((_arg2 - _point1.y) * _length.x)) != 0){ return (false); }; return (((((_arg1 - _point1.x) * (_arg1 - _point2.x)) + ((_arg2 - _point1.y) * (_arg2 - _point2.y))) <= 0)); } } }//package org.flintparticles.twoD.zones
Section 169
//Zone2D (org.flintparticles.twoD.zones.Zone2D) package org.flintparticles.twoD.zones { import flash.geom.*; public interface Zone2D { function getArea():Number; function getLocation():Point; function contains(_arg1:Number, _arg2:Number):Boolean; } }//package org.flintparticles.twoD.zones
Section 170
//ArrowDown (ArrowDown) package { import flash.display.*; public dynamic class ArrowDown extends MovieClip { } }//package
Section 171
//ArrowLeft (ArrowLeft) package { import flash.display.*; public dynamic class ArrowLeft extends MovieClip { } }//package
Section 172
//ArrowNil (ArrowNil) package { import flash.display.*; public dynamic class ArrowNil extends MovieClip { } }//package
Section 173
//ArrowRight (ArrowRight) package { import flash.display.*; public dynamic class ArrowRight extends MovieClip { } }//package
Section 174
//ArrowUp (ArrowUp) package { import flash.display.*; public dynamic class ArrowUp extends MovieClip { } }//package
Section 175
//BoxDiv (BoxDiv) package { import flash.display.*; public dynamic class BoxDiv extends MovieClip { } }//package
Section 176
//BoxMinus (BoxMinus) package { import flash.display.*; public dynamic class BoxMinus extends MovieClip { } }//package
Section 177
//BoxMPly (BoxMPly) package { import flash.display.*; public dynamic class BoxMPly extends MovieClip { } }//package
Section 178
//BoxPlus (BoxPlus) package { import flash.display.*; public dynamic class BoxPlus extends MovieClip { } }//package
Section 179
//Count1 (Count1) package { import flash.display.*; public dynamic class Count1 extends Sprite { } }//package
Section 180
//Count2 (Count2) package { import flash.display.*; public dynamic class Count2 extends Sprite { } }//package
Section 181
//Count3 (Count3) package { import flash.display.*; public dynamic class Count3 extends Sprite { } }//package
Section 182
//DirectionLevel (DirectionLevel) package { import flash.display.*; import flash.events.*; import caurina.transitions.*; import flash.utils.*; import caurina.transitions.properties.*; import fl.transitions.easing.*; import fl.transitions.*; import flash.text.*; public class DirectionLevel extends MovieClip { public var theQ:uint; public var diffUpdateAtQs:Array; public var okPic; public var minList:Array; public var qNo:uint; public var ansArray:Array; public var comboCount:int;// = 0 public var maxList:Array; public var ansText:TextField; public var mc10:MovieClip; public var mc11:MovieClip; public var mc12:MovieClip; public var mc13:MovieClip; public var mc14:MovieClip; public var mc15:MovieClip; public var arrowList:Array; public var ansOk:uint; public var mcArray:Array; public var qArray:Array; public var levelTime:Number; public var ansLength:uint; public var lastTime; public var diffLevel:uint; public var bitmapArray:Array; public var lastQ:Array; private var fiabTween:Tween; public var blockedList:Array; public var counterMc:Sprite; public var lastSecond:uint; public var doIt:Boolean;// = false public var curTime; public var startIdArray:Array; private var timer:Timer; public var badPic:int; private var fadeTween:Tween; public var mc0:MovieClip; public var mc1:MovieClip; public var mc3:MovieClip; public var mc5:MovieClip; public var mc8:MovieClip; public var mc2:MovieClip; public var mc4:MovieClip; public var mc9:MovieClip; public var mc6:MovieClip; public var mc7:MovieClip; public var countTimer:Timer; public var startMC:MovieClip; public var minIndex; public var waitBonus:int; public var endMC:MovieClip; public var startCount:uint; public var gameState:uint; public var maxIndex:uint; public var gameTime:int; public var waitTime; public var mainTL:MovieClip; public var scoreWin:Sprite; public static const TIME_UP = 6; public static const ANS_WAIT = 4; public static const NEW_GAME = 1; public static const NEW_Q = 2; public static const ANS_WRONG = 5; public static const ANS_OK = 3; public function DirectionLevel(){ var _local1:int; qArray = new Array(); ansArray = new Array(); startIdArray = new Array(); blockedList = new Array(); mcArray = new Array(16); arrowList = new Array(); startMC = new MovieClip(); endMC = new MovieClip(); bitmapArray = new Array(8); lastQ = new Array(); minList = new Array(); maxList = new Array(); diffUpdateAtQs = new Array(); comboCount = 0; doIt = false; super(); stage.scaleMode = "noScale"; mainTL = (this.parent as MovieClip); gameState = NEW_GAME; mainTL.scoreText.text = "0"; mainTL.falseText.text = "0"; mainTL.qText.text = "0"; mainTL.allowQuit = false; mainTL.yesButton.visible = false; mainTL.noButton.visible = false; FilterShortcuts.init(); qArray[0] = ["d", "r"]; startIdArray[0] = 0; ansArray[0] = 5; qArray[1] = ["l"]; startIdArray[1] = 1; ansArray[1] = 0; qArray[2] = ["l", "l"]; startIdArray[2] = 1; ansArray[2] = 0; qArray[3] = ["r", "r"]; startIdArray[3] = 4; ansArray[3] = 6; qArray[4] = ["r"]; startIdArray[4] = 1; ansArray[4] = 2; qArray[5] = ["l"]; startIdArray[5] = 2; ansArray[5] = 1; qArray[6] = ["d"]; startIdArray[6] = 0; ansArray[6] = 4; qArray[7] = ["u"]; startIdArray[7] = 5; ansArray[7] = 1; qArray[8] = ["-", "r"]; startIdArray[8] = 1; ansArray[8] = 2; qArray[9] = ["d", "-"]; startIdArray[9] = 1; ansArray[9] = 5; qArray[10] = ["u", "u"]; startIdArray[10] = 10; ansArray[10] = 2; qArray[11] = ["u", "d", "r"]; startIdArray[11] = 4; ansArray[11] = 5; qArray[12] = ["d", "u", "l"]; startIdArray[12] = 5; ansArray[12] = 4; qArray[13] = ["l", "r", "r"]; startIdArray[13] = 9; ansArray[13] = 10; qArray[14] = ["r", "l", "l"]; startIdArray[14] = 1; ansArray[14] = 0; qArray[15] = ["r", "-", "d"]; startIdArray[15] = 4; ansArray[15] = 9; qArray[16] = ["d", "r"]; startIdArray[16] = 0; ansArray[16] = 4; qArray[17] = ["u"]; startIdArray[17] = 5; ansArray[17] = 1; qArray[18] = ["-", "r", "u"]; startIdArray[18] = 10; ansArray[18] = 6; qArray[19] = ["l", "l"]; startIdArray[19] = 1; ansArray[19] = 0; qArray[20] = ["d", "d", "l", "d"]; startIdArray[20] = 0; ansArray[20] = 12; qArray[21] = ["d", "d", "r", "l", "l", "l"]; startIdArray[21] = 3; ansArray[21] = 8; qArray[22] = ["l", "u", "r", "-"]; startIdArray[22] = 15; ansArray[22] = 11; qArray[23] = ["r", "r", "d", "d", "r"]; startIdArray[23] = 5; ansArray[23] = 15; qArray[24] = ["r", "u", "r"]; startIdArray[24] = 13; ansArray[24] = 11; qArray[25] = ["-", "l", "r", "d"]; startIdArray[25] = 2; ansArray[25] = 6; qArray[26] = ["u", "l", "-", "r"]; startIdArray[26] = 0; ansArray[26] = 1; qArray[27] = ["d", "d", "d", "l", "l", "l"]; startIdArray[27] = 3; ansArray[27] = 12; qArray[28] = ["-", "-", "l", "d"]; startIdArray[28] = 1; ansArray[28] = 5; qArray[29] = ["u", "-", "u", "-"]; startIdArray[29] = 7; ansArray[29] = 3; qArray[30] = ["-", "-", "r", "-", "-"]; startIdArray[30] = 0; ansArray[30] = 1; qArray[31] = ["l", "d", "d", "r"]; startIdArray[31] = 1; ansArray[31] = 5; qArray[32] = ["d", "r", "-", "r"]; startIdArray[32] = 2; ansArray[32] = 7; qArray[33] = ["u", "u", "l", "u"]; startIdArray[33] = 14; ansArray[33] = 13; qArray[34] = ["d", "d", "d", "l", "l", "l"]; startIdArray[34] = 2; ansArray[34] = 4; qArray[35] = ["l", "d", "l", "d"]; startIdArray[35] = 2; ansArray[35] = 5; qArray[36] = ["r", "d", "d", "r"]; startIdArray[36] = 1; ansArray[36] = 7; qArray[37] = ["l", "l", "d", "-"]; startIdArray[37] = 6; ansArray[37] = 9; qArray[38] = ["d", "-", "r", "u", "r"]; startIdArray[38] = 0; ansArray[38] = 6; qArray[39] = ["d", "l", "d", "r", "d"]; startIdArray[39] = 1; ansArray[39] = 8; qArray[40] = ["-", "l", "d", "d"]; startIdArray[40] = 2; ansArray[40] = 10; qArray[41] = ["d", "r", "d", "l", "l"]; startIdArray[41] = 6; ansArray[41] = 13; qArray[42] = ["l", "l", "d", "u", "d"]; startIdArray[42] = 2; ansArray[42] = 4; qArray[43] = ["d", "-", "r", "u", "r"]; startIdArray[43] = 4; ansArray[43] = 5; qArray[44] = ["r", "d", "-", "l"]; startIdArray[44] = 9; ansArray[44] = 13; qArray[45] = ["d", "r", "d", "l", "r"]; startIdArray[45] = 2; ansArray[45] = 7; qArray[46] = ["d", "r", "l", "d", "r", "u"]; startIdArray[46] = 5; ansArray[46] = 6; qArray[47] = ["u", "-", "r", "d", "l", "d"]; startIdArray[47] = 10; ansArray[47] = 9; qArray[48] = ["l", "u", "r", "-", "u", "l"]; startIdArray[48] = 8; ansArray[48] = 0; qArray[49] = ["d", "l", "d", "r", "d", "u"]; startIdArray[49] = 6; ansArray[49] = 10; qArray[50] = ["r", "-", "u"]; startIdArray[50] = 4; ansArray[50] = 1; qArray[51] = ["l", "d", "r", "r"]; startIdArray[51] = 9; ansArray[51] = 14; qArray[52] = ["r", "r", "d", "d", "l"]; startIdArray[52] = 6; ansArray[52] = 14; qArray[53] = ["d", "d", "r", "d"]; startIdArray[53] = 0; ansArray[53] = 9; qArray[54] = ["u", "r", "u", "l", "l"]; startIdArray[54] = 13; ansArray[54] = 12; qArray[55] = ["d", "d", "r", "d", "l", "l"]; startIdArray[55] = 2; ansArray[55] = 11; _local1 = 0; while (_local1 < 15) { blockedList[_local1] = new Array(3, 7, 11, 12, 13, 14, 15); _local1++; }; blockedList[15] = new Array(0, 2, 3, 7, 11, 12, 13, 14, 15); blockedList[16] = new Array(5, 3, 7, 11, 12, 13, 14, 15); blockedList[17] = new Array(0, 2, 3, 7, 11, 12, 13, 14, 15); blockedList[18] = new Array(0, 1, 2, 3, 4, 8, 7, 11, 12, 13, 14, 15); blockedList[19] = new Array(); blockedList[20] = new Array(); blockedList[21] = new Array(); blockedList[22] = new Array(); blockedList[23] = new Array(0, 1, 2, 3, 4, 8, 12); blockedList[24] = new Array(); blockedList[25] = new Array(1, 3, 5, 7, 9, 11, 13, 15); blockedList[26] = new Array(); blockedList[27] = new Array(); blockedList[28] = new Array(0, 2); blockedList[29] = new Array(); blockedList[30] = new Array(); blockedList[31] = new Array(8, 9, 10, 11, 12, 13, 14, 15); blockedList[32] = new Array(); blockedList[33] = new Array(8, 9, 10, 11); blockedList[34] = new Array(); blockedList[34].push(10); blockedList[35] = new Array(1, 3, 7, 9, 11, 13, 15); blockedList[36] = new Array(8, 9, 10, 11, 12, 13, 14, 15); blockedList[37] = new Array(0, 1, 2, 3, 4, 8, 12); blockedList[38] = new Array(1, 2, 9, 10); blockedList[39] = new Array(5, 6, 9, 10); blockedList[40] = new Array(1, 3, 5, 7, 9, 11, 13, 15); blockedList[41] = new Array(0, 1, 2, 3, 4, 8, 12); blockedList[42] = new Array(); blockedList[43] = new Array(1, 2, 9, 10); blockedList[44] = new Array(); blockedList[45] = new Array(5, 6, 9, 10); blockedList[46] = new Array(3, 7, 11, 12, 13, 14, 15); blockedList[47] = new Array(3, 7, 11, 12, 13, 14, 15); blockedList[48] = new Array(3, 7, 11, 12, 13, 14, 15); blockedList[49] = new Array(3, 7, 11, 12, 15); blockedList[50] = new Array(0, 2, 3, 7, 11, 12, 13, 14, 15); blockedList[51] = new Array(); blockedList[52] = new Array(0, 1, 2, 3, 4, 8, 12); blockedList[53] = new Array(12, 13); blockedList[54] = new Array(8, 9, 10, 11); blockedList[55] = new Array(); blockedList[55].push(10); mcArray[0] = mc0; mcArray[1] = mc1; mcArray[2] = mc2; mcArray[3] = mc3; mcArray[4] = mc4; mcArray[5] = mc5; mcArray[6] = mc6; mcArray[7] = mc7; mcArray[8] = mc8; mcArray[9] = mc9; mcArray[10] = mc10; mcArray[11] = mc11; mcArray[12] = mc12; mcArray[13] = mc13; mcArray[14] = mc14; mcArray[15] = mc15; _local1 = 0; while (_local1 < 16) { mcArray[_local1].addEventListener(MouseEvent.MOUSE_OVER, OverMouse); mcArray[_local1].addEventListener(MouseEvent.MOUSE_OUT, OutMouse); mcArray[_local1].addEventListener(MouseEvent.CLICK, ClickMouse); _local1++; }; bitmapArray[0] = "RedO"; bitmapArray[1] = "GreenO"; bitmapArray[2] = "Sphere"; bitmapArray[3] = "Star"; bitmapArray[4] = "Flower"; bitmapArray[5] = "Triangle"; bitmapArray[6] = "Heart"; bitmapArray[7] = "Square"; qNo = 0; ansOk = 0; minIndex = 0; maxIndex = 14; minList[0] = 0; minList[1] = 10; minList[2] = 20; maxList[0] = 14; maxList[1] = 30; maxList[2] = 55; diffUpdateAtQs[0] = 0; diffUpdateAtQs[1] = 9; diffUpdateAtQs[2] = 19; diffLevel = 0; theQ = 111; startCount = 0; counterMc = new Count3(); counterMc.x = 130; counterMc.y = 130; addChild(counterMc); countTimer = new Timer(1000, 3); countTimer.addEventListener(TimerEvent.TIMER, showCount); countTimer.start(); mainTL.playIt(mainTL.tickSound); } protected function OutMouse(_arg1:MouseEvent):void{ var _local2:MovieClip; _local2 = (_arg1.currentTarget as MovieClip); if (_local2.currentFrame == 2){ _local2.gotoAndStop("1"); }; } public function OverMouse(_arg1:MouseEvent):void{ var _local2:MovieClip; _local2 = (_arg1.currentTarget as MovieClip); if (_local2.currentFrame == 1){ mainTL.playIt(mainTL.mouseSound); _local2.gotoAndStop("2"); }; } protected function ClickMouse(_arg1:MouseEvent):void{ var _local2:MovieClip; _local2 = (_arg1.currentTarget as MovieClip); if (gameState != NEW_Q){ return; }; if (_local2.currentFrame > 2){ return; }; if (endMC.numChildren > 0){ endMC.removeChildAt(0); }; _local2.gotoAndStop(4); if (_local2 == mcArray[ansArray[theQ]]){ gameState = ANS_OK; if (comboCount < 0){ comboCount = 1; } else { comboCount++; }; if (comboCount < 3){ mainTL.playIt(mainTL.ok1Sound); } else { mainTL.playIt(mainTL.ok2Sound); }; if (comboCount == 3){ gameTime = (gameTime + 2000); Tweener.removeTweens(mainTL.timeAdd); mainTL.timeAdd.alpha = 1; mainTL.timeAdd.y = -5; Tweener.addTween(mainTL.timeAdd, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeAdd, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; qNo++; ansOk++; mainTL.scoreText.text = ansOk; endMC.addChild(new ((getDefinitionByName(bitmapArray[okPic]) as Class))); Tweener.addTween(endMC, {_Blur_blurX:2, _Blur_blurY:2}); Tweener.addTween(endMC, {_Blur_blurX:0, _Blur_blurY:0, transition:"easeInExpo", time:0.1}); } else { gameState = ANS_WRONG; qNo++; if (comboCount > 0){ comboCount = -1; } else { comboCount--; }; if (comboCount == -1){ mainTL.playIt(mainTL.wrong1Sound); } else { if (comboCount < -1){ mainTL.playIt(mainTL.wrong2Sound); }; }; if (comboCount == -2){ gameTime = (gameTime - 2000); Tweener.removeTweens(mainTL.timeRemove); mainTL.timeRemove.alpha = 1; mainTL.timeRemove.y = -6; Tweener.addTween(mainTL.timeRemove, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeRemove, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.falseText.text = (qNo - ansOk); endMC.addChild(new ((getDefinitionByName(bitmapArray[badPic]) as Class))); }; endMC.x = _local2.x; endMC.y = _local2.y; addChild(endMC); setTimeout(ChangeQ, 500); } protected function showCount(_arg1:TimerEvent):void{ startCount++; if (startCount == 1){ mainTL.hintLevel4.visible = false; mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count2(); counterMc.x = 130; counterMc.y = 130; addChild(counterMc); } else { if (startCount == 2){ mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count1(); counterMc.x = 130; counterMc.y = 130; addChild(counterMc); } else { mainTL.playIt(mainTL.startSound); removeChild(counterMc); countTimer.stop(); countTimer.removeEventListener(TimerEvent.TIMER, showCount); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); gameState = NEW_GAME; levelTime = 0; lastTime = getTimer(); gameTime = 60000; ChangeQ(); mainTL.allowQuit = true; }; }; } function onNextGame(_arg1:MouseEvent){ cleanUp(); } public function ChangeQ(){ var _local1:int; var _local2:int; var _local3:MovieClip; var _local4:uint; _local1 = 18; if ((((diffLevel < 2)) && ((qNo >= diffUpdateAtQs[(diffLevel + 1)])))){ diffLevel++; minIndex = minList[diffLevel]; maxIndex = maxList[diffLevel]; }; if (lastQ.length == 5){ lastQ.shift(); }; lastQ.push(theQ); _local4 = 0; while (_local4 < 15) { theQ = (minIndex + Math.floor((Math.random() * (maxIndex - minIndex)))); if (Cmp(theQ)){ break; }; _local4++; }; _local2 = 0; while (_local2 < arrowList.length) { removeChild(arrowList[_local2]); _local2++; }; arrowList.splice(0, arrowList.length); _local2 = 0; while (_local2 < qArray[theQ].length) { if (qArray[theQ][_local2] == "u"){ arrowList[_local2] = new ArrowUp(); } else { if (qArray[theQ][_local2] == "d"){ arrowList[_local2] = new ArrowDown(); } else { if (qArray[theQ][_local2] == "l"){ arrowList[_local2] = new ArrowLeft(); } else { if (qArray[theQ][_local2] == "r"){ arrowList[_local2] = new ArrowRight(); } else { if (qArray[theQ][_local2] == "-"){ arrowList[_local2] = new ArrowNil(); }; }; }; }; }; arrowList[_local2].x = 17; arrowList[_local2].y = (_local1 - 10); arrowList[_local2].alpha = 0; addChild(arrowList[_local2]); Tweener.addTween(arrowList[_local2], {y:_local1, alpha:1, transition:"easeInExpo", time:(0.08 * _local2)}); _local1 = (_local1 + 55); _local2++; }; _local2 = 0; while (_local2 < 16) { mcArray[_local2].gotoAndStop(1); _local2++; }; _local2 = 0; while (_local2 < blockedList[theQ].length) { mcArray[blockedList[theQ][_local2]].gotoAndStop(3); _local2++; }; okPic = Math.floor((Math.random() * 7)); badPic = Math.floor((Math.random() * 7)); if (okPic == badPic){ if (badPic == 7){ badPic--; } else { badPic++; }; }; if (endMC.numChildren > 0){ endMC.removeChildAt(0); }; mcArray[startIdArray[theQ]].gotoAndStop(4); if (startMC.numChildren > 0){ startMC.removeChildAt(0); }; startMC.addChild(new ((getDefinitionByName(bitmapArray[okPic]) as Class))); startMC.x = mcArray[startIdArray[theQ]].x; startMC.y = mcArray[startIdArray[theQ]].y; addChild(startMC); Tweener.addTween(startMC, {_Blur_blurX:2, _Blur_blurY:2}); Tweener.addTween(startMC, {_Blur_blurX:0, _Blur_blurY:0, transition:"easeInExpo", time:0.2}); if ((((qNo <= 2)) && (((mainTL.isPractice) || ((mainTL.practiceMode[3] == 1)))))){ if (qNo == 0){ Tweener.addTween(mainTL.hintLevel4, {visible:true, alpha:0.1}); Tweener.addTween(mainTL.hintLevel4, {alpha:1, transition:"easeOutSine", time:0.5}); }; if (ansArray[theQ] == 0){ mainTL.HintMc.x = (mc0.x + 63); mainTL.HintMc.y = (mc0.y + 45); } else { if (ansArray[theQ] == 1){ mainTL.HintMc.x = (mc1.x + 63); mainTL.HintMc.y = (mc1.y + 45); } else { if (ansArray[theQ] == 2){ mainTL.HintMc.x = (mc2.x + 63); mainTL.HintMc.y = (mc2.y + 45); } else { if (ansArray[theQ] == 3){ mainTL.HintMc.x = (mc3.x + 63); mainTL.HintMc.y = (mc3.y + 45); } else { if (ansArray[theQ] == 4){ mainTL.HintMc.x = (mc4.x + 63); mainTL.HintMc.y = (mc4.y + 45); } else { if (ansArray[theQ] == 5){ mainTL.HintMc.x = (mc5.x + 63); mainTL.HintMc.y = (mc5.y + 45); } else { if (ansArray[theQ] == 6){ mainTL.HintMc.x = (mc6.x + 63); mainTL.HintMc.y = (mc6.y + 45); } else { if (ansArray[theQ] == 7){ mainTL.HintMc.x = (mc7.x + 63); mainTL.HintMc.y = (mc7.y + 45); } else { if (ansArray[theQ] == 8){ mainTL.HintMc.x = (mc8.x + 63); mainTL.HintMc.y = (mc8.y + 45); } else { if (ansArray[theQ] == 9){ mainTL.HintMc.x = (mc9.x + 63); mainTL.HintMc.y = (mc9.y + 45); } else { if (ansArray[theQ] == 10){ mainTL.HintMc.x = (mc10.x + 63); mainTL.HintMc.y = (mc10.y + 45); } else { if (ansArray[theQ] == 11){ mainTL.HintMc.x = (mc11.x + 63); mainTL.HintMc.y = (mc11.y + 45); } else { if (ansArray[theQ] == 12){ mainTL.HintMc.x = (mc12.x + 63); mainTL.HintMc.y = (mc12.y + 45); } else { if (ansArray[theQ] == 13){ mainTL.HintMc.x = (mc13.x + 63); mainTL.HintMc.y = (mc13.y + 45); } else { if (ansArray[theQ] == 14){ mainTL.HintMc.x = (mc14.x + 63); mainTL.HintMc.y = (mc14.y + 45); } else { if (ansArray[theQ] == 15){ mainTL.HintMc.x = (mc15.x + 63); mainTL.HintMc.y = (mc15.y + 45); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; if (((((mainTL.isPractice) || ((mainTL.practiceMode[3] == 1)))) && ((qNo > 2)))){ if (!mainTL.isPractice){ mainTL.practiceMode[3] = 0; }; mainTL.hintLevel4.visible = false; mainTL.HintMc.x = -100; }; gameState = NEW_Q; mainTL.qText.text = String((qNo + 1)); } function cleanUp(){ var _local1:int; _local1 = 0; while (_local1 < 16) { mcArray[_local1].removeEventListener(MouseEvent.MOUSE_OVER, OverMouse); mcArray[_local1].removeEventListener(MouseEvent.MOUSE_OUT, OutMouse); mcArray[_local1].removeEventListener(MouseEvent.CLICK, ClickMouse); _local1++; }; removeEventListener(Event.ENTER_FRAME, Update); if (scoreWin){ mainTL.removeChild(scoreWin); }; mainTL.allowQuit = true; if (mainTL.time2Quit){ mainTL.gotoAndStop("mainMenu"); mainTL.time2Quit = false; if (mainTL.isMusic){ if (mainTL.musicChannel){ mainTL.musicChannel.stop(); }; mainTL.musicChannel = mainTL.bgMusic1.play(0, int.MAX_VALUE); mainTL.musicChannel.soundTransform = mainTL.musicTransform; }; } else { mainTL.nextGame(); }; } public function Update(_arg1:Event):void{ var seconds:uint; var e = _arg1; if (mainTL.time2Quit){ cleanUp(); }; curTime = (getTimer() - lastTime); lastTime = (lastTime + curTime); lastSecond = Math.floor((levelTime / 1000)); levelTime = (levelTime + curTime); seconds = Math.floor((levelTime / 1000)); if (gameState != TIME_UP){ mainTL.timeText.text = String(((gameTime / 1000) - Math.floor((levelTime / 1000)))); }; if ((((((((gameTime / 1000) - seconds) <= 5)) && ((((gameTime / 1000) - seconds) >= 1)))) && (!((seconds == lastSecond))))){ mainTL.playIt(mainTL.tickSound); }; if ((((levelTime > gameTime)) && (!((gameState == TIME_UP))))){ if (scoreWin){ return; }; gameState = TIME_UP; mainTL.allowQuit = false; mainTL.playIt(mainTL.endSound); scoreWin = new ScoreWindow(); scoreWin.x = 100; scoreWin.y = 280; (scoreWin as ScoreWindow).inside.nextButton.addEventListener(MouseEvent.CLICK, onNextGame); (scoreWin as ScoreWindow).inside.quitButton.addEventListener(MouseEvent.CLICK, onQuitGame); if (mainTL.isPractice){ mainTL.isPractice = false; (scoreWin as ScoreWindow).inside.nextButton.visible = false; (scoreWin as ScoreWindow).inside.quitButton.x = ((scoreWin as ScoreWindow).inside.quitButton.x - 70); }; (scoreWin as ScoreWindow).inside.scoreNos.qAsked.text = String(qNo); (scoreWin as ScoreWindow).inside.scoreNos.qAns.text = String(ansOk); if (qNo){ (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = String(Math.round((((ansOk * 10) + (((ansOk / qNo) * ansOk) * 10)) + (((levelTime / 60000) * ansOk) * 10)))); } else { (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = "0"; }; mainTL.gameScore = (mainTL.gameScore + int((scoreWin as ScoreWindow).inside.scoreNos.testScore.text)); (scoreWin as ScoreWindow).inside.scoreNos.brainScore.text = String(mainTL.gameScore); mainTL.addChild(scoreWin); Tweener.addTween(scoreWin, {y:65, time:1, onStart:function (){ this.scaleX = 0.9; this.scaleY = 0.9; }}); Tweener.addTween(scoreWin, {x:75, scaleX:1, scaleY:1, transition:"easeInSine", time:0.5, delay:0.5}); }; } public function Cmp(_arg1:uint):Boolean{ if ((((((((((((lastQ.length == 5)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))) && (!((lastQ[4] == _arg1))))){ return (true); }; if ((((((((((lastQ.length == 4)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))){ return (true); }; if ((((((((lastQ.length == 3)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))){ return (true); }; if ((((((lastQ.length == 2)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))){ return (true); }; if ((((lastQ.length == 1)) && (!((lastQ[0] == _arg1))))){ return (true); }; return (false); } private function checkAns():Boolean{ var _local1:Boolean; var _local2:int; _local1 = false; _local2 = 0; while (_local2 < ansText.text.length) { if (ansText.text.charAt(_local2) == qArray[theQ][ansArray[theQ]].charAt(_local2)){ _local1 = true; } else { _local1 = false; }; if (!_local1){ break; }; _local2++; }; return (_local1); } public function onQuitGame(_arg1:MouseEvent):void{ mainTL.time2Quit = true; cleanUp(); } } }//package
Section 183
//FireBlob (FireBlob) package { import flash.display.*; public dynamic class FireBlob extends Sprite { } }//package
Section 184
//Flower (Flower) package { import flash.display.*; public dynamic class Flower extends Sprite { } }//package
Section 185
//GreenO (GreenO) package { import flash.display.*; public dynamic class GreenO extends Sprite { } }//package
Section 186
//Heart (Heart) package { import flash.display.*; public dynamic class Heart extends Sprite { } }//package
Section 187
//Math1Level (Math1Level) package { import flash.display.*; import flash.events.*; import caurina.transitions.*; import flash.utils.*; import flash.media.*; import com.foxaweb.ui.gesture.*; import fl.transitions.easing.*; import fl.transitions.*; import flash.text.*; import flash.ui.*; public class Math1Level extends MovieClip { public var Q1:TextField; public var Q2:TextField; public var Q4:TextField; public var diffUpdateAtQs:Array; public var Q5:TextField; public var theQ:uint; public var minList:Array; public var qNo:uint; public var ansArray:Array; public var Q3:TextField; public var DrawMc:MovieClip; public var maxList:Array; public var comboCount:int;// = 0 public var tickMc:mcTick; public var ansText:TextField; public var ansOk:uint; public var qArray:Array; public var levelTime:Number; public var ansLength:uint; public var lastQ:Array; public var diffLevel:uint; public var lastTime; public var lastSecond:uint; public var counterMc:Sprite; public var setWarning:Boolean;// = true public var qMark:Sprite; public var doIt:Boolean;// = false public var curTime; public var pencilChannel:SoundChannel; private var timer; private var fadeTween:Tween; public var lastAns:MovieClip; private var countTimer:Timer; private var mg:MouseGesture; public var Tabs:MovieClip; public var minIndex; public var startCount:uint; public var gameState:uint; public var maxIndex:uint; public var gameTime:int; public var waitTime; public var mainTL:MovieClip; public var scoreWin:Sprite; public var crossMc:mcCross; public static const TIME_UP = 6; public static const ANS_WAIT = 4; public static const NEW_GAME = 1; public static const NEW_Q = 2; public static const ANS_WRONG = 5; public static const ANS_OK = 3; public function Math1Level(){ var _local1:uint; qArray = new Array(); ansArray = new Array(); lastQ = new Array(); minList = new Array(); maxList = new Array(); diffUpdateAtQs = new Array(); comboCount = 0; doIt = false; setWarning = true; tickMc = new mcTick(); crossMc = new mcCross(); super(); qMark = new QMark(); stage.scaleMode = "noScale"; mainTL = (this.parent as MovieClip); gameState = NEW_GAME; mainTL.scoreText.text = "0"; mainTL.falseText.text = "0"; mainTL.qText.text = "0"; mainTL.allowQuit = false; mainTL.yesButton.visible = false; mainTL.noButton.visible = false; tickMc.x = 0; tickMc.y = 200; tickMc.alpha = 0; crossMc.x = 0; crossMc.y = 200; crossMc.alpha = 0; addChild(tickMc); addChild(crossMc); qArray[0] = ["1", "+", "1", "=", "2"]; qArray[1] = ["2", "+", "1", "=", "3"]; qArray[2] = ["2", "+", "2", "=", "4"]; qArray[3] = ["1", "+", "0", "=", "1"]; qArray[4] = ["3", "+", "2", "=", "5"]; qArray[5] = ["1", "-", "1", "=", "0"]; qArray[6] = ["10", "-", "8", "=", "2"]; qArray[7] = ["2", "-", "2", "=", "0"]; qArray[8] = ["2", "x", "2", "=", "4"]; qArray[9] = ["1", "x", "1", "=", "1"]; qArray[10] = ["1", "+", "3", "=", "4"]; qArray[11] = ["4", "-", "1", "=", "3"]; qArray[12] = ["6", "/", "2", "=", "3"]; qArray[13] = ["5", "/", "5", "=", "1"]; qArray[14] = ["4", "+", "1", "=", "5"]; qArray[15] = ["3", "+", "0", "=", "3"]; qArray[16] = ["7", "-", "5", "=", "2"]; qArray[17] = ["3", "+", "3", "=", "6"]; qArray[18] = ["4", "+", "3", "=", "7"]; qArray[19] = ["2", "x", "4", "=", "8"]; qArray[20] = ["3", "+", "6", "=", "9"]; qArray[21] = ["6", "-", "4", "=", "2"]; qArray[22] = ["7", "x", "0", "=", "0"]; qArray[23] = ["8", "-", "3", "=", "5"]; qArray[24] = ["2", "x", "3", "=", "6"]; qArray[25] = ["12", "-", "5", "=", "7"]; qArray[26] = ["11", "+", "7", "=", "18"]; qArray[27] = ["2", "+", "7", "=", "9"]; qArray[28] = ["2", "x", "15", "=", "30"]; qArray[29] = ["73", "-", "65", "=", "8"]; qArray[30] = ["8", "x", "3", "=", "24"]; qArray[31] = ["3", "x", "3", "=", "9"]; qArray[32] = ["10", "-", "8", "=", "2"]; qArray[33] = ["14", "-", "6", "=", "8"]; qArray[34] = ["6", "+", "6", "=", "12"]; qArray[35] = ["10", "x", "3", "=", "30"]; qArray[36] = ["5", "x", "5", "=", "25"]; qArray[37] = ["40", "-", "23", "=", "17"]; qArray[38] = ["7", "+", "2", "=", "9"]; qArray[39] = ["9", "+", "9", "=", "18"]; qArray[40] = ["3", "+", "9", "=", "12"]; qArray[41] = ["99", "/", "3", "=", "33"]; qArray[42] = ["11", "+", "4", "=", "15"]; qArray[43] = ["2", "+", "9", "=", "11"]; qArray[44] = ["2", "x", "15", "=", "30"]; qArray[45] = ["70", "-", "55", "=", "15"]; qArray[46] = ["8", "x", "3", "=", "24"]; qArray[47] = ["9", "x", "9", "=", "81"]; qArray[48] = ["3", "x", "7", "=", "21"]; qArray[49] = ["7", "+", "6", "=", "13"]; qArray[50] = ["8", "x", "9", "=", "72"]; qArray[51] = ["4", "x", "9", "=", "36"]; qArray[52] = ["20", "-", "15", "=", "5"]; qArray[53] = ["9", "+", "6", "=", "15"]; qArray[54] = ["6", "x", "5", "=", "30"]; qArray[55] = ["66", "x", "0", "=", "0"]; qArray[56] = ["21", "+", "23", "=", "44"]; qArray[57] = ["11", "x", "7", "=", "77"]; qArray[58] = ["7", "x", "8", "=", "56"]; qArray[59] = ["8", "x", "6", "=", "48"]; qArray[60] = ["45", "/", "9", "=", "5"]; qArray[61] = ["9", "x", "7", "=", "63"]; qArray[62] = ["7", "x", "8", "=", "56"]; qArray[63] = ["37", "-", "19", "=", "18"]; qArray[64] = ["99", "/", "3", "=", "33"]; qArray[65] = ["19", "+", "17", "=", "36"]; qArray[66] = ["84", "/", "4", "=", "21"]; qArray[67] = ["2", "x", "37", "=", "74"]; qArray[68] = ["4", "x", "7", "=", "28"]; qArray[69] = ["17", "x", "3", "=", "51"]; qArray[70] = ["12", "x", "6", "=", "72"]; qArray[71] = ["57", "/", "3", "=", "19"]; qArray[72] = ["7", "x", "4", "=", "28"]; qArray[73] = ["57", "-", "29", "=", "28"]; qArray[74] = ["6", "x", "7", "=", "42"]; qArray[75] = ["83", "-", "59", "=", "24"]; _local1 = 0; while (_local1 < 75) { ansArray[_local1] = 4; _local1++; }; ansText = Q5; qNo = 0; ansOk = 0; minIndex = 0; maxIndex = 14; minList[0] = 0; minList[1] = 20; minList[2] = 30; maxList[0] = 25; maxList[1] = 45; maxList[2] = 75; diffUpdateAtQs[0] = 0; diffUpdateAtQs[1] = 9; diffUpdateAtQs[2] = 19; diffLevel = 0; theQ = 100; mg = new MouseGesture(DrawMc); mg.addGesture("0", "4321076542"); mg.addGesture("1", "2"); mg.addGesture("2", "701230"); mg.addGesture("3", "0123401234"); mg.addGesture("4", "202"); mg.addGesture("5", "4201234", fiveMatch); mg.addGesture("6", "432107654", sixMatch); mg.addGesture("7", "023"); mg.addGesture("8", "4321234567654"); mg.addGesture("9", "432107622"); mg.addGesture("BACKSPACE", "4"); timer = new Timer(100, 1); timer.addEventListener(TimerEvent.TIMER, fadeDrawing); startCount = 0; counterMc = new Count3(); counterMc.x = 60; counterMc.y = 150; addChild(counterMc); countTimer = new Timer(1000, 3); countTimer.addEventListener(TimerEvent.TIMER, showCount); countTimer.start(); qMark.x = Q5.x; qMark.y = Q5.y; qMark.alpha = 0; addChildAt(qMark, 10); mainTL.playIt(mainTL.tickSound); } protected function sixMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.3)) ? _arg1.cost : 10000); } protected function noMatchHandler(_arg1:GestureEvent):void{ if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; DrawMc.Zone.graphics.clear(); } protected function fadeDrawing(_arg1:TimerEvent):void{ fadeTween = new Tween(DrawMc.Zone, "alpha", Regular.easeIn, DrawMc.Zone.alpha, 0, 20); } protected function showCount(_arg1:TimerEvent):void{ startCount++; if (startCount == 1){ mainTL.hintLevel1.visible = false; mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count2(); counterMc.x = 60; counterMc.y = 150; addChild(counterMc); } else { if (startCount == 2){ mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count1(); counterMc.x = 60; counterMc.y = 150; addChild(counterMc); } else { mainTL.playIt(mainTL.startSound); removeChild(counterMc); countTimer.stop(); countTimer.removeEventListener(TimerEvent.TIMER, showCount); mainTL.eraser.addEventListener(MouseEvent.CLICK, onEraser); mg.addEventListener(GestureEvent.GESTURE_MATCH, matchHandler); mg.addEventListener(GestureEvent.NO_MATCH, noMatchHandler); mg.addEventListener(GestureEvent.START_CAPTURE, startHandler); mg.addEventListener(GestureEvent.STOP_CAPTURE, stopHandler); DrawMc.addEventListener(MouseEvent.MOUSE_OVER, HideMouse); DrawMc.addEventListener(MouseEvent.MOUSE_OUT, ShowMouse); DrawMc.addEventListener(MouseEvent.MOUSE_MOVE, DragMouse); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); gameState = NEW_GAME; levelTime = 0; lastTime = getTimer(); gameTime = 60000; ChangeQ(""); mainTL.allowQuit = true; }; }; } public function HideMouse(_arg1:MouseEvent):void{ Mouse.hide(); if (((!(_arg1.buttonDown)) && (!((pencilChannel == null))))){ pencilChannel.stop(); pencilChannel = null; }; } protected function fiveMatch(_arg1:Object):uint{ var _local2:int; _local2 = _arg1.moves.join("").indexOf("111"); return (((_local2 == -1)) ? _arg1.cost : 10000); } protected function startHandler(_arg1:GestureEvent):void{ if (DrawMc.drawText.alpha){ DrawMc.drawText.alpha = 0; }; timer.stop(); if (fadeTween){ fadeTween.stop(); }; if (mainTL.isSound){ pencilChannel = mainTL.pencilSound.play(0, int.MAX_VALUE); }; DrawMc.Zone.graphics.clear(); DrawMc.Zone.alpha = 0.8; DrawMc.Zone.graphics.lineStyle(4, 0x444444); DrawMc.Zone.graphics.moveTo(DrawMc.mouseX, DrawMc.mouseY); addEventListener(Event.ENTER_FRAME, capturingHandler); } public function ChangeQ(_arg1:String){ var _local2:uint; lastAns.Q1.text = Q1.text; lastAns.Q2.text = Q2.text; lastAns.Q3.text = Q3.text; lastAns.Q4.text = Q4.text; lastAns.Q5.text = Q5.text; Tweener.removeTweens(lastAns); lastAns.alpha = 0.5; lastAns.y = 170; Tweener.addTween(lastAns, {alpha:1, transition:"easeInSine", time:0.4}); Tweener.addTween(lastAns, {y:300, transition:"easeInSine", time:1}); Tweener.addTween(lastAns, {alpha:0, transition:"easeInSine", time:1, delay:2}); if ((((diffLevel < 2)) && ((qNo >= diffUpdateAtQs[(diffLevel + 1)])))){ diffLevel++; minIndex = minList[diffLevel]; maxIndex = maxList[diffLevel]; }; if (lastQ.length == 5){ lastQ.shift(); }; lastQ.push(theQ); _local2 = 0; while (_local2 < 15) { theQ = (minIndex + Math.floor((Math.random() * (maxIndex - minIndex)))); if (Cmp(theQ)){ break; }; _local2++; }; if (ansText != Q1){ Q1.text = qArray[theQ][0]; }; if (ansText != Q2){ Q2.text = qArray[theQ][1]; }; if (ansText != Q3){ Q3.text = qArray[theQ][2]; }; if (ansText != Q4){ Q4.text = qArray[theQ][3]; }; if (ansText != Q5){ Q5.text = qArray[theQ][4]; }; ansText.text = ""; ansLength = qArray[theQ][ansArray[theQ]].length; qMark.alpha = 1; if ((((qNo <= 2)) && (((mainTL.isPractice) || ((mainTL.practiceMode[0] == 1)))))){ if (qNo == 0){ Tweener.addTween(mainTL.hintLevel1, {visible:true, alpha:0.1}); Tweener.addTween(mainTL.hintLevel1, {alpha:1, transition:"easeOutSine", time:0.5}); }; mainTL.hintLevel1.Hint0.alpha = (mainTL.hintLevel1.Hint1.alpha = (mainTL.hintLevel1.Hint2.alpha = (mainTL.hintLevel1.Hint3.alpha = (mainTL.hintLevel1.Hint4.alpha = (mainTL.hintLevel1.Hint5.alpha = (mainTL.hintLevel1.Hint6.alpha = (mainTL.hintLevel1.Hint7.alpha = (mainTL.hintLevel1.Hint8.alpha = (mainTL.hintLevel1.Hint9.alpha = 0))))))))); if (qArray[theQ][4] == "0"){ mainTL.hintLevel1.Hint0.alpha = 1; } else { if (qArray[theQ][4] == "1"){ mainTL.hintLevel1.Hint1.alpha = 1; } else { if (qArray[theQ][4] == "2"){ mainTL.hintLevel1.Hint2.alpha = 1; } else { if (qArray[theQ][4] == "3"){ mainTL.hintLevel1.Hint3.alpha = 1; } else { if (qArray[theQ][4] == "4"){ mainTL.hintLevel1.Hint4.alpha = 1; } else { if (qArray[theQ][4] == "5"){ mainTL.hintLevel1.Hint5.alpha = 1; } else { if (qArray[theQ][4] == "6"){ mainTL.hintLevel1.Hint6.alpha = 1; } else { if (qArray[theQ][4] == "7"){ mainTL.hintLevel1.Hint7.alpha = 1; } else { if (qArray[theQ][4] == "8"){ mainTL.hintLevel1.Hint8.alpha = 1; } else { if (qArray[theQ][4] == "9"){ mainTL.hintLevel1.Hint9.alpha = 1; }; }; }; }; }; }; }; }; }; }; }; if (((((mainTL.isPractice) || ((mainTL.practiceMode[0] == 1)))) && ((qNo > 2)))){ if (!mainTL.isPractice){ mainTL.practiceMode[0] = 0; }; mainTL.hintLevel1.visible = false; }; gameState = NEW_Q; mainTL.qText.text = String((qNo + 1)); } protected function oMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.3)) ? _arg1.cost : 10000); } function onNextGame(_arg1:MouseEvent){ cleanUp(); } function cleanUp():void{ timer.removeEventListener(TimerEvent.TIMER, fadeDrawing); mainTL.eraser.removeEventListener(MouseEvent.CLICK, onEraser); mg.removeEventListener(GestureEvent.GESTURE_MATCH, matchHandler); mg.removeEventListener(GestureEvent.NO_MATCH, noMatchHandler); mg.removeEventListener(GestureEvent.START_CAPTURE, startHandler); mg.removeEventListener(GestureEvent.STOP_CAPTURE, stopHandler); DrawMc.removeEventListener(MouseEvent.MOUSE_OVER, HideMouse); DrawMc.removeEventListener(MouseEvent.MOUSE_OUT, ShowMouse); DrawMc.removeEventListener(MouseEvent.MOUSE_MOVE, DragMouse); removeEventListener(Event.ENTER_FRAME, Update); if (scoreWin){ mainTL.removeChild(scoreWin); }; mainTL.allowQuit = true; if (mainTL.time2Quit){ mainTL.gotoAndStop("mainMenu"); mainTL.time2Quit = false; if (mainTL.isMusic){ if (mainTL.musicChannel){ mainTL.musicChannel.stop(); }; mainTL.musicChannel = mainTL.bgMusic1.play(0, int.MAX_VALUE); mainTL.musicChannel.soundTransform = mainTL.musicTransform; }; } else { mainTL.nextGame(); }; } protected function stopHandler(_arg1:GestureEvent):void{ if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; removeEventListener(Event.ENTER_FRAME, capturingHandler); } public function Update(_arg1:Event):void{ var seconds:uint; var e = _arg1; if (mainTL.time2Quit){ cleanUp(); }; curTime = (getTimer() - lastTime); lastTime = (lastTime + curTime); lastSecond = Math.floor((levelTime / 1000)); levelTime = (levelTime + curTime); seconds = Math.floor((levelTime / 1000)); if (gameState != TIME_UP){ mainTL.timeText.text = String(((gameTime / 1000) - Math.floor((levelTime / 1000)))); }; if ((((((((gameTime / 1000) - seconds) <= 5)) && ((((gameTime / 1000) - seconds) >= 1)))) && (!((seconds == lastSecond))))){ mainTL.playIt(mainTL.tickSound); }; if (((!(mainTL.isSound)) && (pencilChannel))){ pencilChannel.stop(); pencilChannel = null; }; if ((((levelTime > gameTime)) && (!((gameState == TIME_UP))))){ if (scoreWin){ return; }; gameState = TIME_UP; mainTL.allowQuit = false; if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; mainTL.playIt(mainTL.endSound); scoreWin = new ScoreWindow(); scoreWin.x = 110; scoreWin.y = 280; (scoreWin as ScoreWindow).inside.scoreNos.qAsked.text = String(qNo); (scoreWin as ScoreWindow).inside.nextButton.addEventListener(MouseEvent.CLICK, onNextGame); (scoreWin as ScoreWindow).inside.quitButton.addEventListener(MouseEvent.CLICK, onQuitGame); if (mainTL.isPractice){ mainTL.isPractice = false; (scoreWin as ScoreWindow).inside.nextButton.visible = false; (scoreWin as ScoreWindow).inside.quitButton.x = ((scoreWin as ScoreWindow).inside.quitButton.x - 70); }; (scoreWin as ScoreWindow).inside.scoreNos.qAns.text = String(ansOk); if (qNo){ (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = String(Math.round((((ansOk * 10) + (((ansOk / qNo) * ansOk) * 10)) + (((levelTime / 60000) * ansOk) * 10)))); } else { (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = "0"; }; mainTL.gameScore = (mainTL.gameScore + int((scoreWin as ScoreWindow).inside.scoreNos.testScore.text)); (scoreWin as ScoreWindow).inside.scoreNos.brainScore.text = String(mainTL.gameScore); mainTL.addChild(scoreWin); Tweener.addTween(scoreWin, {y:75, time:1, onStart:function (){ this.scaleX = 0.9; this.scaleY = 0.9; }}); Tweener.addTween(scoreWin, {x:85, scaleX:1, scaleY:1, transition:"easeInSine", time:0.5, delay:0.5}); }; if (gameState == ANS_WAIT){ waitTime = (waitTime + curTime); if (waitTime > 1500){ gameState = ANS_WRONG; qNo++; Tweener.removeTweens(tickMc); Tweener.removeTweens(crossMc); crossMc.anim.gotoAndStop(1); Tweener.addTween(crossMc, {alpha:1, time:0.1, onStart:function (){ tickMc.alpha = 0; }, onComplete:function (){ this.anim.gotoAndPlay(2); }}); Tweener.addTween(crossMc, {alpha:0, delay:2.1, time:0.75}); if (comboCount > 0){ comboCount = -1; } else { comboCount--; }; if (comboCount == -1){ mainTL.playIt(mainTL.wrong1Sound); } else { if (comboCount < -1){ mainTL.playIt(mainTL.wrong2Sound); }; }; if (comboCount == -2){ gameTime = (gameTime - 2000); Tweener.removeTweens(mainTL.timeRemove); mainTL.timeRemove.alpha = 1; mainTL.timeRemove.y = -6; Tweener.addTween(mainTL.timeRemove, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeRemove, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.falseText.text = (qNo - ansOk); ChangeQ(""); }; }; } protected function sMatch(_arg1:Object):uint{ var _local2:int; _local2 = _arg1.moves.join("").indexOf("111"); return (((_local2 > -1)) ? _arg1.cost : 10000); } public function Cmp(_arg1:uint):Boolean{ if ((((((((((((lastQ.length == 5)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))) && (!((lastQ[4] == _arg1))))){ return (true); }; if ((((((((((lastQ.length == 4)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))){ return (true); }; if ((((((((lastQ.length == 3)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))){ return (true); }; if ((((((lastQ.length == 2)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))){ return (true); }; if ((((lastQ.length == 1)) && (!((lastQ[0] == _arg1))))){ return (true); }; return (false); } protected function pMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.7)) ? _arg1.cost : 10000); } protected function capturingHandler(_arg1:Event):void{ DrawMc.Zone.graphics.lineTo((mouseX - DrawMc.x), (mouseY - DrawMc.y)); } function onEraser(_arg1:MouseEvent){ if (gameState == NEW_Q){ ansText.text = ansText.text.substr(0, (ansText.text.length - 1)); mainTL.playIt(mainTL.eraseSound); } else { if (gameState == ANS_WAIT){ ansText.text = ansText.text.substr(0, (ansText.text.length - 1)); mainTL.playIt(mainTL.eraseSound); gameState = NEW_Q; }; }; } protected function ShowMouse(_arg1:MouseEvent):void{ Mouse.show(); } protected function gMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.3)) ? _arg1.cost : 10000); } protected function DragMouse(_arg1:MouseEvent):void{ DrawMc.Cursor.x = (mouseX - DrawMc.x); DrawMc.Cursor.y = (mouseY - DrawMc.y); } protected function dMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.8)) ? _arg1.cost : 10000); } private function checkAns():Boolean{ var _local1:Boolean; var _local2:int; _local1 = false; _local2 = 0; while (_local2 < ansText.text.length) { if (ansText.text.charAt(_local2) == qArray[theQ][ansArray[theQ]].charAt(_local2)){ _local1 = true; } else { _local1 = false; }; if (!_local1){ break; }; _local2++; }; return (_local1); } protected function matchHandler(_arg1:GestureEvent):void{ var e = _arg1; timer.start(); if (gameState == NEW_Q){ qMark.alpha = 0; if (e.datas != "BACKSPACE"){ ansText.appendText(e.datas); } else { ansText.text = ansText.text.substr(0, (ansText.text.length - 1)); mainTL.playIt(mainTL.eraseSound); }; if (checkAns()){ if (ansText.text.length == ansLength){ gameState = ANS_OK; qNo++; ansOk++; Tweener.removeTweens(tickMc); Tweener.removeTweens(crossMc); tickMc.anim.gotoAndStop(1); Tweener.addTween(tickMc, {alpha:1, time:0.1, onStart:function (){ crossMc.alpha = 0; }, onComplete:function (){ this.anim.gotoAndPlay(2); }}); Tweener.addTween(tickMc, {alpha:0, delay:2.1, time:0.75}); if (comboCount < 0){ comboCount = 1; } else { comboCount++; }; if (comboCount < 3){ mainTL.playIt(mainTL.ok1Sound); } else { mainTL.playIt(mainTL.ok2Sound); }; if (comboCount == 3){ gameTime = (gameTime + 2000); Tweener.removeTweens(mainTL.timeAdd); mainTL.timeAdd.alpha = 1; mainTL.timeAdd.y = -5; Tweener.addTween(mainTL.timeAdd, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeAdd, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.scoreText.text = ansOk; ChangeQ(e.datas); }; } else { if (ansText.text.length == ansLength){ gameState = ANS_WAIT; mainTL.playIt(mainTL.waitSound); waitTime = 0; }; }; } else { if (gameState == ANS_WAIT){ if (e.datas == "BACKSPACE"){ ansText.text = ansText.text.substr(0, (ansText.text.length - 1)); mainTL.playIt(mainTL.eraseSound); gameState = NEW_Q; return; }; ansText.text = e.datas; gameState = NEW_Q; if (checkAns()){ if (ansText.text.length == ansLength){ gameState = ANS_OK; qNo++; ansOk++; Tweener.removeTweens(tickMc); Tweener.removeTweens(crossMc); tickMc.anim.gotoAndStop(1); Tweener.addTween(tickMc, {alpha:1, time:0.1, onStart:function (){ crossMc.alpha = 0; }, onComplete:function (){ this.anim.gotoAndPlay(2); }}); Tweener.addTween(tickMc, {alpha:0, delay:2.1, time:0.75}); if (comboCount < 0){ comboCount = 1; } else { comboCount++; }; if (comboCount < 3){ mainTL.playIt(mainTL.ok1Sound); } else { mainTL.playIt(mainTL.ok2Sound); }; if (comboCount == 3){ gameTime = (gameTime + 2000); Tweener.removeTweens(mainTL.timeAdd); mainTL.timeAdd.alpha = 1; mainTL.timeAdd.y = -5; Tweener.addTween(mainTL.timeAdd, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeAdd, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.scoreText.text = ansOk; ChangeQ(e.datas); }; } else { gameState = ANS_WAIT; mainTL.playIt(mainTL.waitSound); waitTime = 0; }; }; }; } protected function qMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.3)) ? _arg1.cost : 10000); } public function onQuitGame(_arg1:MouseEvent):void{ mainTL.time2Quit = true; cleanUp(); } } }//package
Section 188
//Math2Level (Math2Level) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; import flash.events.*; import Box2D.Collision.*; import caurina.transitions.*; import flash.utils.*; import com.foxaweb.ui.gesture.*; import General.*; import caurina.transitions.properties.*; import flash.text.*; public class Math2Level extends MovieClip { public var Q1:TextField; public var Q2:TextField; public var Q4:TextField; public var diffUpdateAtQs:Array; public var Q5:TextField; public var theQ:uint; public var minList:Array; public var qNo:uint; public var ansArray:Array; public var Q3:TextField; public var DrawMc:MovieClip; public var maxList:Array; public var comboCount:int;// = 0 public var tickMc:mcTick; public var ansText:TextField; public var ansOk:uint; public var dropBox:Array; public var qArray:Array; public var levelTime:Number; public var ansLength:uint; public var lastQ:Array; public var diffLevel:uint; public var lastTime; public var phyWorld:b2World; public var lastSecond:uint; public var counterMc:Sprite; public var qMark:Sprite; public var mouseJoint:b2MouseJoint; public var doIt:Boolean;// = false public var curTime; public var iterations:int;// = 15 public var timeStep:Number;// = 0.0333333333333333 private var timer; var mousePVec:b2Vec2; public var lastBody:b2Body; public var lastAns:MovieClip; private var countTimer:Timer; public var minIndex; public var mathBox:Array; public var startCount:uint; public var gameState:uint; public var input:Input; public var maxIndex:uint; public var gameTime:int; public var waitTime; public var mainTL:MovieClip; public var crossMc:mcCross; public var scoreWin:Sprite; private static const phyScale = 50; public static const TIME_UP = 6; public static const ANS_WAIT = 4; public static const NEW_GAME = 1; public static const NEW_Q = 2; public static const ANS_WRONG = 5; private static const playY = 100; private static const playWidth = 192; private static const playX = 112; public static const ANS_OK = 3; private static const playHeight = 270; public static var mouseYWorldPhys:Number; public static var mouseYWorld:Number; public static var mouseXWorldPhys:Number; public static var mouseXWorld:Number; public function Math2Level(){ var _local1:uint; qArray = new Array(); ansArray = new Array(); lastQ = new Array(); minList = new Array(); maxList = new Array(); diffUpdateAtQs = new Array(); comboCount = 0; doIt = false; qMark = new QMark(); tickMc = new mcTick(); crossMc = new mcCross(); iterations = 15; timeStep = (1 / 30); dropBox = new Array(4); mathBox = new Array(4); mousePVec = new b2Vec2(); super(); FilterShortcuts.init(); stage.scaleMode = "noScale"; mainTL = (this.parent as MovieClip); gameState = NEW_GAME; mainTL.scoreText.text = "0"; mainTL.falseText.text = "0"; mainTL.qText.text = "0"; mainTL.allowQuit = false; mainTL.yesButton.visible = false; mainTL.noButton.visible = false; tickMc.x = -25; tickMc.y = 200; tickMc.alpha = 0; crossMc.x = -25; crossMc.y = 200; crossMc.alpha = 0; addChild(tickMc); addChild(crossMc); qArray[0] = ["1", "+", "1", "=", "2"]; qArray[1] = ["2", "+", "1", "=", "3"]; qArray[2] = ["2", "+", "5", "=", "7"]; qArray[3] = ["5", "-", "1", "=", "4"]; qArray[4] = ["3", "+", "2", "=", "5"]; qArray[5] = ["10", "-", "10", "=", "0"]; qArray[6] = ["10", "-", "7", "=", "3"]; qArray[7] = ["2", "-", "2", "=", "0"]; qArray[8] = ["2", "x", "3", "=", "6"]; qArray[9] = ["1", "x", "7", "=", "7"]; qArray[10] = ["1", "+", "3", "=", "4"]; qArray[11] = ["2", "+", "6", "=", "8"]; qArray[12] = ["18", "/", "2", "=", "9"]; qArray[13] = ["5", "+", "1", "=", "6"]; qArray[14] = ["15", "/", "3", "=", "5"]; qArray[15] = ["5", "-", "3", "=", "2"]; qArray[16] = ["10", "+", "1", "=", "11"]; qArray[17] = ["6", "+", "4", "=", "10"]; qArray[18] = ["9", "/", "9", "=", "1"]; qArray[19] = ["4", "+", "5", "=", "9"]; qArray[20] = ["8", "-", "7", "=", "1"]; qArray[21] = ["4", "-", "3", "=", "1"]; qArray[22] = ["4", "-", "1", "=", "3"]; qArray[23] = ["5", "/", "5", "=", "1"]; qArray[24] = ["4", "+", "4", "=", "8"]; qArray[25] = ["3", "x", "3", "=", "9"]; qArray[26] = ["10", "-", "3", "=", "7"]; qArray[27] = ["14", "-", "6", "=", "8"]; qArray[28] = ["6", "+", "5", "=", "11"]; qArray[29] = ["10", "x", "5", "=", "50"]; qArray[30] = ["7", "x", "5", "=", "35"]; qArray[31] = ["3", "x", "4", "=", "12"]; qArray[32] = ["27", "/", "3", "=", "9"]; qArray[33] = ["30", "/", "2", "=", "15"]; qArray[34] = ["20", "/", "4", "=", "5"]; qArray[35] = ["13", "-", "11", "=", "2"]; qArray[36] = ["80", "/", "20", "=", "4"]; qArray[37] = ["7", "+", "7", "=", "14"]; qArray[38] = ["25", "+", "15", "=", "40"]; qArray[39] = ["8", "+", "35", "=", "43"]; qArray[40] = ["8", "+", "5", "=", "13"]; qArray[41] = ["38", "-", "23", "=", "15"]; qArray[42] = ["7", "+", "2", "=", "9"]; qArray[43] = ["9", "+", "8", "=", "17"]; qArray[44] = ["3", "+", "9", "=", "12"]; qArray[45] = ["97", "-", "71", "=", "26"]; qArray[46] = ["11", "+", "6", "=", "17"]; qArray[47] = ["2", "+", "9", "=", "11"]; qArray[48] = ["3", "x", "15", "=", "45"]; qArray[49] = ["73", "-", "64", "=", "9"]; qArray[50] = ["8", "/", "4", "=", "2"]; qArray[51] = ["9", "x", "8", "=", "72"]; qArray[52] = ["3", "x", "7", "=", "21"]; qArray[53] = ["7", "+", "6", "=", "13"]; qArray[54] = ["18", "/", "6", "=", "3"]; qArray[55] = ["4", "x", "9", "=", "36"]; qArray[56] = ["73", "-", "65", "=", "8"]; qArray[57] = ["9", "+", "6", "=", "15"]; qArray[58] = ["6", "x", "5", "=", "30"]; qArray[59] = ["37", "x", "0", "=", "0"]; qArray[60] = ["21", "+", "23", "=", "44"]; qArray[61] = ["7", "x", "0", "=", "0"]; qArray[62] = ["7", "x", "8", "=", "56"]; qArray[63] = ["8", "x", "6", "=", "48"]; qArray[64] = ["45", "/", "9", "=", "5"]; qArray[65] = ["9", "x", "7", "=", "63"]; qArray[66] = ["7", "x", "8", "=", "56"]; qArray[67] = ["37", "-", "19", "=", "18"]; qArray[68] = ["66", "/", "2", "=", "33"]; qArray[69] = ["19", "+", "17", "=", "36"]; qArray[70] = ["84", "/", "4", "=", "21"]; qArray[71] = ["2", "x", "37", "=", "74"]; qArray[72] = ["4", "x", "7", "=", "28"]; qArray[73] = ["16", "x", "3", "=", "48"]; qArray[74] = ["12", "x", "6", "=", "72"]; qArray[75] = ["57", "/", "3", "=", "19"]; qArray[76] = ["7", "x", "4", "=", "28"]; qArray[77] = ["57", "-", "29", "=", "28"]; qArray[78] = ["6", "x", "7", "=", "42"]; qArray[79] = ["83", "-", "59", "=", "24"]; _local1 = 0; while (_local1 < 80) { ansArray[_local1] = 1; _local1++; }; ansText = this.Q2; qNo = 0; ansOk = 0; minIndex = 0; maxIndex = 24; minList[0] = 0; minList[1] = 15; minList[2] = 30; maxList[0] = 24; maxList[1] = 45; maxList[2] = 79; diffUpdateAtQs[0] = 0; diffUpdateAtQs[1] = 9; diffUpdateAtQs[2] = 19; diffLevel = 0; theQ = 111; timer = new Timer(700, 1); timer.addEventListener(TimerEvent.TIMER, dropBoxes); startCount = 0; counterMc = new Count3(); counterMc.x = 30; counterMc.y = 150; addChild(counterMc); countTimer = new Timer(1000, 3); countTimer.addEventListener(TimerEvent.TIMER, showCount); countTimer.start(); qMark.x = (Q2.x + 2); qMark.y = Q2.y; qMark.alpha = 0; addChildAt(qMark, 12); mainTL.playIt(mainTL.tickSound); } protected function dropBoxes(_arg1:TimerEvent):void{ mathBox[0].SetAngularVelocity(0); mathBox[1].SetAngularVelocity(0); mathBox[2].SetAngularVelocity(0); mathBox[3].SetAngularVelocity(0); mathBox[0].SetLinearVelocity(new b2Vec2(0, 0)); mathBox[1].SetLinearVelocity(new b2Vec2(0, 0)); mathBox[2].SetLinearVelocity(new b2Vec2(0, 0)); mathBox[3].SetLinearVelocity(new b2Vec2(0, 0)); mathBox[0].SetXForm(new b2Vec2(((playX + 35) / phyScale), ((playY + 219) / phyScale)), 0); mathBox[1].SetXForm(new b2Vec2(((playX + 75) / phyScale), ((playY + 219) / phyScale)), 0); mathBox[2].SetXForm(new b2Vec2(((playX + 115) / phyScale), ((playY + 219) / phyScale)), 0); mathBox[3].SetXForm(new b2Vec2(((playX + 155) / phyScale), ((playY + 219) / phyScale)), 0); timer.stop(); gameState = NEW_Q; } protected function showCount(_arg1:TimerEvent):void{ var _local2:b2AABB; var _local3:b2Vec2; var _local4:Boolean; var _local5:b2DebugDraw; var _local6:Sprite; var _local7:b2Body; var _local8:b2BodyDef; var _local9:b2PolygonDef; startCount++; if (startCount == 1){ mainTL.hintLevel3.visible = false; mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count2(); counterMc.x = 30; counterMc.y = 150; addChild(counterMc); } else { if (startCount == 2){ mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count1(); counterMc.x = 30; counterMc.y = 150; addChild(counterMc); } else { removeChild(counterMc); countTimer.stop(); countTimer.removeEventListener(TimerEvent.TIMER, showCount); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); _local2 = new b2AABB(); _local2.lowerBound.Set(-1000, -1000); _local2.upperBound.Set(1000, 1000); _local3 = new b2Vec2(0, 10); _local4 = true; phyWorld = new b2World(_local2, _local3, _local4); _local5 = new b2DebugDraw(); _local6 = new Sprite(); _local5.m_sprite = _local6; _local5.m_drawScale = 50; _local5.m_fillAlpha = 0.9; _local5.m_lineThickness = 1; _local5.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); _local8 = new b2BodyDef(); _local9 = new b2PolygonDef(); _local8.position.Set(((playX + (playWidth / 2)) / phyScale), ((playY - 15) / phyScale)); _local9.SetAsBox((((playWidth / 2) + 30) / phyScale), (15 / phyScale)); _local9.friction = 0.1; _local7 = phyWorld.CreateStaticBody(_local8); _local7.CreateShape(_local9); _local7.SetMassFromShapes(); _local8.position.Set(((playX + (playWidth / 2)) / phyScale), (((playY + playHeight) + 15) / phyScale)); _local9.SetAsBox((((playWidth / 2) + 30) / phyScale), (15 / phyScale)); _local7 = phyWorld.CreateStaticBody(_local8); _local7.CreateShape(_local9); _local7.SetMassFromShapes(); _local8.position.Set(((playX - 15) / phyScale), ((playY + (playHeight / 2)) / phyScale)); _local9.SetAsBox((15 / phyScale), ((playHeight / 2) / phyScale)); _local7 = phyWorld.CreateStaticBody(_local8); _local7.CreateShape(_local9); _local7.SetMassFromShapes(); _local8.position.Set((((playX + playWidth) + 15) / phyScale), ((playY + (playHeight / 2)) / phyScale)); _local9.SetAsBox((15 / phyScale), ((playHeight / 2) / phyScale)); _local7 = phyWorld.CreateStaticBody(_local8); _local7.CreateShape(_local9); _local7.SetMassFromShapes(); _local8.position.Set(((playX + (playWidth / 2)) / phyScale), ((playY + 40) / phyScale)); _local9.SetAsBox((72.5 / phyScale), (2 / phyScale)); _local9.friction = 0.3; _local9.groupIndex = -1; dropBox[0] = phyWorld.CreateStaticBody(_local8); dropBox[0].CreateShape(_local9); dropBox[0].SetMassFromShapes(); _local8.position.Set(((playX + (playWidth / 2)) / phyScale), (((playY + 80) + 40) / phyScale)); _local9.SetAsBox((72.5 / phyScale), (2 / phyScale)); dropBox[1] = phyWorld.CreateStaticBody(_local8); dropBox[1].CreateShape(_local9); dropBox[1].SetMassFromShapes(); _local8.position.Set((((playX + (playWidth / 2)) - 72.5) / phyScale), (((playY + 40) + (80 / 2)) / phyScale)); _local9.SetAsBox((2 / phyScale), (40 / phyScale)); dropBox[2] = phyWorld.CreateStaticBody(_local8); dropBox[2].CreateShape(_local9); dropBox[2].SetMassFromShapes(); _local8.position.Set((((playX + (playWidth / 2)) + 72.5) / phyScale), (((playY + 40) + (80 / 2)) / phyScale)); _local9.SetAsBox((2 / phyScale), (40 / phyScale)); dropBox[3] = phyWorld.CreateStaticBody(_local8); dropBox[3].CreateShape(_local9); dropBox[3].SetMassFromShapes(); _local8.position.Set(((playX + 35) / phyScale), ((playY + 215) / phyScale)); _local9.SetAsBox((17.5 / phyScale), (17.5 / phyScale)); _local9.density = 1; _local9.groupIndex = 1; _local8.userData = new BoxPlus(); _local8.userData.name = "+"; mathBox[0] = phyWorld.CreateDynamicBody(_local8); mathBox[0].CreateShape(_local9); mathBox[0].SetMassFromShapes(); _local8.position.Set(((playX + 75) / phyScale), ((playY + 215) / phyScale)); _local9.SetAsBox((17.5 / phyScale), (17.5 / phyScale)); _local9.density = 1; _local8.userData = new BoxMinus(); _local8.userData.name = "-"; mathBox[1] = phyWorld.CreateDynamicBody(_local8); mathBox[1].CreateShape(_local9); mathBox[1].SetMassFromShapes(); _local8.position.Set(((playX + 115) / phyScale), ((playY + 215) / phyScale)); _local9.SetAsBox((17.5 / phyScale), (17.5 / phyScale)); _local9.density = 1; _local8.userData = new BoxMPly(); _local8.userData.name = "x"; mathBox[2] = phyWorld.CreateDynamicBody(_local8); mathBox[2].CreateShape(_local9); mathBox[2].SetMassFromShapes(); _local8.position.Set(((playX + 155) / phyScale), ((playY + 215) / phyScale)); _local9.SetAsBox((17.5 / phyScale), (17.5 / phyScale)); _local9.density = 1; _local8.userData = new BoxDiv(); _local8.userData.name = "/"; mathBox[3] = phyWorld.CreateDynamicBody(_local8); mathBox[3].CreateShape(_local9); mathBox[3].SetMassFromShapes(); phyWorld.Step(timeStep, iterations); input = new Input(this); mainTL.playIt(mainTL.startSound); gameState = NEW_GAME; levelTime = 0; lastTime = getTimer(); gameTime = 60000; ChangeQ(""); mainTL.allowQuit = true; }; }; } public function ChangeQ(_arg1:String){ var _local2:uint; var _local3:int; lastAns.Q1.text = Q1.text; lastAns.Q2.text = Q2.text; lastAns.Q3.text = Q3.text; lastAns.Q4.text = Q4.text; lastAns.Q5.text = Q5.text; Tweener.removeTweens(lastAns); lastAns.alpha = 0.5; lastAns.y = 170; Tweener.addTween(lastAns, {alpha:1, transition:"easeInSine", time:0.4}); Tweener.addTween(lastAns, {y:300, transition:"easeInSine", time:1}); Tweener.addTween(lastAns, {alpha:0, transition:"easeInSine", time:1, delay:2}); if ((((diffLevel < 2)) && ((qNo >= diffUpdateAtQs[(diffLevel + 1)])))){ diffLevel++; minIndex = minList[diffLevel]; maxIndex = maxList[diffLevel]; }; if (lastQ.length == 5){ lastQ.shift(); }; lastQ.push(theQ); _local2 = 0; while (_local2 < 15) { theQ = (minIndex + Math.floor((Math.random() * (maxIndex - minIndex)))); if (Cmp(theQ)){ break; }; _local2++; }; if (ansText != Q1){ Q1.text = qArray[theQ][0]; }; if (ansText != Q2){ Q2.text = qArray[theQ][1]; }; if (ansText != Q3){ Q3.text = qArray[theQ][2]; }; if (ansText != Q4){ Q4.text = qArray[theQ][3]; }; if (ansText != Q5){ Q5.text = qArray[theQ][4]; }; ansText.text = ""; ansLength = qArray[theQ][ansArray[theQ]].length; qMark.alpha = 1; if ((((qNo <= 2)) && (((mainTL.isPractice) || ((mainTL.practiceMode[2] == 1)))))){ if (qNo == 0){ Tweener.addTween(mainTL.hintLevel3, {visible:true, alpha:0.1}); Tweener.addTween(mainTL.hintLevel3, {alpha:1, transition:"easeOutSine", time:0.5}); }; mainTL.hintLevel3.Hint1.alpha = (mainTL.hintLevel3.Hint2.alpha = (mainTL.hintLevel3.Hint3.alpha = (mainTL.hintLevel3.Hint4.alpha = 0))); if (qArray[theQ][1] == "+"){ mainTL.hintLevel3.Hint1.alpha = 1; } else { if (qArray[theQ][1] == "-"){ mainTL.hintLevel3.Hint2.alpha = 1; } else { if (qArray[theQ][1] == "x"){ mainTL.hintLevel3.Hint3.alpha = 1; } else { if (qArray[theQ][1] == "/"){ mainTL.hintLevel3.Hint4.alpha = 1; }; }; }; }; }; if (((((mainTL.isPractice) || ((mainTL.practiceMode[2] == 1)))) && ((qNo > 2)))){ if (!mainTL.isPractice){ mainTL.practiceMode[2] = 0; }; mainTL.hintLevel3.visible = false; }; mainTL.qText.text = String((qNo + 1)); if (gameState != NEW_GAME){ timer.start(); } else { gameState = NEW_Q; _local3 = 0; while (_local3 < 4) { mathBox[_local3].m_userData.x = (mathBox[_local3].GetPosition().x * 50); mathBox[_local3].m_userData.y = (mathBox[_local3].GetPosition().y * 50); mathBox[_local3].m_userData.rotation = (mathBox[_local3].GetAngle() * (180 / Math.PI)); _local3++; }; addChild(mathBox[0].m_userData); addChild(mathBox[1].m_userData); addChild(mathBox[2].m_userData); addChild(mathBox[3].m_userData); }; } function onNextGame(_arg1:MouseEvent){ cleanUp(); } function cleanUp(){ timer.removeEventListener(TimerEvent.TIMER, dropBoxes); removeEventListener(Event.ENTER_FRAME, Update); if (scoreWin){ mainTL.removeChild(scoreWin); }; mainTL.allowQuit = true; if (mainTL.time2Quit){ mainTL.gotoAndStop("mainMenu"); mainTL.time2Quit = false; if (mainTL.isMusic){ if (mainTL.musicChannel){ mainTL.musicChannel.stop(); }; mainTL.musicChannel = mainTL.bgMusic1.play(0, int.MAX_VALUE); mainTL.musicChannel.soundTransform = mainTL.musicTransform; }; } else { mainTL.nextGame(); }; } public function Update(_arg1:Event):void{ var seconds:uint; var bb:b2Body; var p1:*; var p2:*; var p3:*; var p4:b2Vec2; var e = _arg1; if (mainTL.time2Quit){ cleanUp(); }; curTime = (getTimer() - lastTime); lastTime = (lastTime + curTime); lastSecond = Math.floor((levelTime / 1000)); levelTime = (levelTime + curTime); seconds = Math.floor((levelTime / 1000)); if (gameState != TIME_UP){ mainTL.timeText.text = String(((gameTime / 1000) - Math.floor((levelTime / 1000)))); }; if ((((((((gameTime / 1000) - seconds) <= 5)) && ((((gameTime / 1000) - seconds) >= 1)))) && (!((seconds == lastSecond))))){ mainTL.playIt(mainTL.tickSound); }; Input.update(); UpdateMouseWorld(); MouseDrag(); phyWorld.Step(timeStep, iterations); bb = phyWorld.m_bodyList; while (bb) { if ((bb.m_userData is Sprite)){ bb.m_userData.x = (bb.GetPosition().x * 50); bb.m_userData.y = (bb.GetPosition().y * 50); bb.m_userData.rotation = (bb.GetAngle() * (180 / Math.PI)); }; bb = bb.m_next; }; if ((((levelTime > gameTime)) && (!((gameState == TIME_UP))))){ if (scoreWin){ return; }; gameState = TIME_UP; mainTL.allowQuit = false; mainTL.playIt(mainTL.endSound); scoreWin = new ScoreWindow(); scoreWin.x = 83; scoreWin.y = 280; (scoreWin as ScoreWindow).inside.nextButton.addEventListener(MouseEvent.CLICK, onNextGame); (scoreWin as ScoreWindow).inside.quitButton.addEventListener(MouseEvent.CLICK, onQuitGame); if (mainTL.isPractice){ mainTL.isPractice = false; (scoreWin as ScoreWindow).inside.nextButton.visible = false; (scoreWin as ScoreWindow).inside.quitButton.x = ((scoreWin as ScoreWindow).inside.quitButton.x - 70); }; (scoreWin as ScoreWindow).inside.scoreNos.qAsked.text = String(qNo); (scoreWin as ScoreWindow).inside.scoreNos.qAns.text = String(ansOk); if (qNo){ (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = String(Math.round((((ansOk * 10) + (((ansOk / qNo) * ansOk) * 10)) + (((levelTime / 60000) * ansOk) * 10)))); } else { (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = "0"; }; mainTL.gameScore = (mainTL.gameScore + int((scoreWin as ScoreWindow).inside.scoreNos.testScore.text)); (scoreWin as ScoreWindow).inside.scoreNos.brainScore.text = String(mainTL.gameScore); mainTL.addChild(scoreWin); Tweener.addTween(scoreWin, {y:75, time:1, onStart:function (){ this.scaleX = 0.9; this.scaleY = 0.9; }}); Tweener.addTween(scoreWin, {x:58, scaleX:1, scaleY:1, transition:"easeInSine", time:0.5, delay:0.5}); }; if ((((gameState == NEW_Q)) && (lastBody))){ p1 = lastBody.GetWorldPoint(new b2Vec2((lastBody.m_shapeList as b2PolygonShape).m_vertices[0].x, (lastBody.m_shapeList as b2PolygonShape).m_vertices[0].y)); p2 = lastBody.GetWorldPoint(new b2Vec2((lastBody.m_shapeList as b2PolygonShape).m_vertices[1].x, (lastBody.m_shapeList as b2PolygonShape).m_vertices[1].y)); p3 = lastBody.GetWorldPoint(new b2Vec2((lastBody.m_shapeList as b2PolygonShape).m_vertices[2].x, (lastBody.m_shapeList as b2PolygonShape).m_vertices[2].y)); p4 = lastBody.GetWorldPoint(new b2Vec2((lastBody.m_shapeList as b2PolygonShape).m_vertices[3].x, (lastBody.m_shapeList as b2PolygonShape).m_vertices[3].y)); if (((((((mainTL.hitTestBox.hitTestPoint(((p1.x * 50) + 138), ((p1.y * 50) + 21.2))) && (mainTL.hitTestBox.hitTestPoint(((p2.x * 50) + 138), ((p2.y * 50) + 21.2))))) && (mainTL.hitTestBox.hitTestPoint(((p3.x * 50) + 138), ((p3.y * 50) + 21.2))))) && (mainTL.hitTestBox.hitTestPoint(((p4.x * 50) + 138), ((p4.y * 50) + 21.2))))){ DrawMc.gotoAndStop("glow"); if (!Input.mouseDown){ lastBody.m_shapeList.m_groupIndex = 1; ansText.text = lastBody.m_userData.name; qMark.alpha = 0; if (checkAns()){ gameState = ANS_OK; qNo++; ansOk++; Tweener.removeTweens(tickMc); Tweener.removeTweens(crossMc); tickMc.anim.gotoAndStop(1); Tweener.addTween(tickMc, {alpha:1, time:0.1, onStart:function (){ crossMc.alpha = 0; }, onComplete:function (){ this.anim.gotoAndPlay(2); }}); Tweener.addTween(tickMc, {alpha:0, delay:2.1, time:0.75}); if (comboCount < 0){ comboCount = 1; } else { comboCount++; }; if (comboCount < 3){ mainTL.playIt(mainTL.ok1Sound); } else { mainTL.playIt(mainTL.ok2Sound); }; if (comboCount == 3){ gameTime = (gameTime + 2000); Tweener.removeTweens(mainTL.timeAdd); mainTL.timeAdd.alpha = 1; mainTL.timeAdd.y = -5; Tweener.addTween(mainTL.timeAdd, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeAdd, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.scoreText.text = ansOk; ChangeQ(""); } else { gameState = ANS_WAIT; mainTL.playIt(mainTL.waitSound); waitTime = 0; }; }; } else { DrawMc.gotoAndStop("normal"); }; }; if (gameState == ANS_WAIT){ waitTime = (waitTime + curTime); if (waitTime > 1500){ gameState = ANS_WRONG; qNo++; Tweener.removeTweens(tickMc); Tweener.removeTweens(crossMc); crossMc.anim.gotoAndStop(1); Tweener.addTween(crossMc, {alpha:1, time:0.1, onStart:function (){ tickMc.alpha = 0; }, onComplete:function (){ this.anim.gotoAndPlay(2); }}); Tweener.addTween(crossMc, {alpha:0, delay:2.1, time:0.75}); if (comboCount > 0){ comboCount = -1; } else { comboCount--; }; if (comboCount == -1){ mainTL.playIt(mainTL.wrong1Sound); } else { if (comboCount < -1){ mainTL.playIt(mainTL.wrong2Sound); }; }; if (comboCount == -2){ gameTime = (gameTime - 2000); Tweener.removeTweens(mainTL.timeRemove); mainTL.timeRemove.alpha = 1; mainTL.timeRemove.y = -6; Tweener.addTween(mainTL.timeRemove, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeRemove, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.falseText.text = (qNo - ansOk); ChangeQ(""); }; }; } function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local2:b2AABB; var _local3:int; var _local4:Array; var _local5:int; var _local6:b2Body; var _local7:int; var _local8:b2Shape; var _local9:Boolean; mousePVec.Set(mouseXWorldPhys, mouseYWorldPhys); _local2 = new b2AABB(); _local2.lowerBound.Set((mouseXWorldPhys - 0.001), (mouseYWorldPhys - 0.001)); _local2.upperBound.Set((mouseXWorldPhys + 0.001), (mouseYWorldPhys + 0.001)); _local3 = 10; _local4 = new Array(); _local5 = phyWorld.Query(_local2, _local4, _local3); _local6 = null; _local7 = 0; while (_local7 < _local5) { if ((((_local4[_local7].m_body.IsStatic() == false)) || (_arg1))){ _local8 = (_local4[_local7] as b2Shape); _local9 = (_local4[_local7] as b2Shape).TestPoint(_local8.m_body.GetXForm(), mousePVec); if (_local9){ _local6 = _local8.m_body; break; }; }; _local7++; }; return (_local6); } public function Cmp(_arg1:uint):Boolean{ if ((((((((((((lastQ.length == 5)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))) && (!((lastQ[4] == _arg1))))){ return (true); }; if ((((((((((lastQ.length == 4)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))){ return (true); }; if ((((((((lastQ.length == 3)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))){ return (true); }; if ((((((lastQ.length == 2)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))){ return (true); }; if ((((lastQ.length == 1)) && (!((lastQ[0] == _arg1))))){ return (true); }; return (false); } public function MouseDrag():void{ var _local1:b2Body; var _local2:b2MouseJointDef; var _local3:b2Vec2; if (((Input.mouseDown) && (!(mouseJoint)))){ _local1 = GetBodyAtMouse(); if (_local1){ _local2 = new b2MouseJointDef(); _local2.body1 = phyWorld.m_groundBody; _local2.body2 = _local1; _local2.target.Set(mouseXWorldPhys, mouseYWorldPhys); _local2.maxForce = (300 * _local1.m_mass); _local2.timeStep = timeStep; if (gameState == NEW_Q){ mainTL.playIt(mainTL.pickSound); mouseJoint = (phyWorld.CreateJoint(_local2) as b2MouseJoint); if (lastBody){ lastBody.m_shapeList.m_groupIndex = 1; }; _local1.m_shapeList.m_groupIndex = -1; lastBody = _local1; } else { if (gameState == ANS_WAIT){ if (_local1 == lastBody){ mainTL.playIt(mainTL.dropSound); _local1.SetXForm(new b2Vec2(_local1.m_xf.position.x, 5.15), 0); gameState = NEW_Q; } else { mainTL.playIt(mainTL.pickSound); mouseJoint = (phyWorld.CreateJoint(_local2) as b2MouseJoint); if (lastBody){ lastBody.SetXForm(new b2Vec2(lastBody.m_xf.position.x, 5.15), 0); lastBody.m_shapeList.m_groupIndex = 1; }; _local1.m_shapeList.m_groupIndex = -1; lastBody = _local1; gameState = NEW_Q; }; }; }; _local1.WakeUp(); }; }; if (!Input.mouseDown){ if (mouseJoint){ phyWorld.DestroyJoint(mouseJoint); mouseJoint = null; }; }; if (mouseJoint){ _local3 = new b2Vec2(mouseXWorldPhys, mouseYWorldPhys); mouseJoint.SetTarget(_local3); }; } public function UpdateMouseWorld():void{ mouseXWorldPhys = (Input.mouseX / phyScale); mouseYWorldPhys = (Input.mouseY / phyScale); mouseXWorld = Input.mouseX; mouseYWorld = Input.mouseY; } private function checkAns():Boolean{ var _local1:Boolean; _local1 = false; if (ansText.text.charAt(0) == qArray[theQ][ansArray[theQ]].charAt(0)){ _local1 = true; } else { _local1 = false; }; return (_local1); } public function onQuitGame(_arg1:MouseEvent):void{ mainTL.time2Quit = true; cleanUp(); } } }//package
Section 189
//mcCross (mcCross) package { import flash.display.*; public dynamic class mcCross extends MovieClip { public var anim:MovieClip; } }//package
Section 190
//mcTick (mcTick) package { import flash.display.*; public dynamic class mcTick extends MovieClip { public var anim:MovieClip; } }//package
Section 191
//MeezLevel (MeezLevel) package { import flash.display.*; import flash.events.*; import caurina.transitions.*; import flash.filters.*; import flash.geom.*; import flash.utils.*; import org.flintparticles.common.initializers.*; import org.flintparticles.common.actions.*; import org.flintparticles.common.counters.*; import org.flintparticles.twoD.zones.*; import flash.media.*; import com.foxaweb.ui.gesture.*; import fl.transitions.easing.*; import org.flintparticles.common.energyEasing.*; import fl.transitions.*; import org.flintparticles.twoD.actions.*; import org.flintparticles.twoD.initializers.*; import org.flintparticles.twoD.emitters.*; import org.flintparticles.common.displayObjects.*; import flash.text.*; import flash.ui.*; import org.flintparticles.twoD.renderers.*; import org.flintparticles.common.debug.*; public class MeezLevel extends MovieClip { public var theQ:int; public var diffUpdateAtQs:Array; public var minList:Array; public var qNo:uint; public var ansArray:Array; public var DrawMc:MovieClip; public var comboCount:int;// = 0 public var maxList:Array; var fireEmitter:Emitter2D; public var ansOk:uint; public var qArray:Array; public var levelTime:Number; public var lastQ:Array; public var diffLevel:uint; public var lastTime; var emitterC:Emitter2D; var emitterD:Emitter2D; var emitterR:Emitter2D; var emitterU:Emitter2D; var emitterL:Emitter2D; public var tweenArray:Array; public var lastSecond:uint; public var counterMc:Sprite; public var setWarning:Boolean;// = true public var cloneArray:Array; public var doIt:Boolean;// = false public var curTime; public var pencilChannel:SoundChannel; public var shapeArray:Array; private var timer; private var fadeTween:Tween; public var mzCount:uint;// = 0 private var countTimer:Timer; private var mg:MouseGesture; public var Tabs:MovieClip; public var minIndex; public var startCount:uint; public var gameState:uint; public var maxIndex:uint; public var gameTime:int; public var waitTime; public var mainTL:MovieClip; public var scoreWin:Sprite; public static const TIME_UP = 7; public static const ANS_WAIT_OK = 4; public static const NEW_GAME = 1; public static const NEW_Q = 2; public static const ANS_WRONG = 5; public static const ANS_OK = 3; public static const ANS_WAIT_WRONG = 6; public function MeezLevel(){ var _local1:BitmapRenderer; var _local2:BitmapRenderer; qArray = new Array(); tweenArray = new Array(); ansArray = new Array(); shapeArray = new Array(new RedO(), new Flower(), new GreenO(), new Star(), new Triangle(), new Sphere(), new Heart(), new Square()); cloneArray = new Array(new RedO(), new Flower(), new GreenO(), new Star(), new Triangle(), new Sphere(), new Heart(), new Square()); mzCount = 0; lastQ = new Array(); minList = new Array(); maxList = new Array(); diffUpdateAtQs = new Array(); comboCount = 0; doIt = false; setWarning = true; fireEmitter = new Emitter2D(); emitterR = new Emitter2D(); emitterL = new Emitter2D(); emitterU = new Emitter2D(); emitterD = new Emitter2D(); emitterC = new Emitter2D(); super(); stage.scaleMode = "noScale"; mainTL = (this.parent as MovieClip); gameState = NEW_GAME; mainTL.scoreText.text = "0"; mainTL.falseText.text = "0"; mainTL.qText.text = "0"; mainTL.allowQuit = false; mainTL.yesButton.visible = false; mainTL.noButton.visible = false; fireEmitter.counter = new TimePeriod(60, 0.5); fireEmitter.addInitializer(new Lifetime(0.5)); fireEmitter.addInitializer(new Velocity(new DiscSectorZone(new Point(0, 0), 10, 5, (-(Math.PI) * 0.75), (-(Math.PI) * 0.25)))); fireEmitter.addInitializer(new Position(new DiscZone(new Point(30, 30), 20, 0))); fireEmitter.addInitializer(new ImageClass(FireBlob)); fireEmitter.addAction(new Age(TwoWay.quadratic)); fireEmitter.addAction(new Move()); fireEmitter.addAction(new Accelerate(0, -20)); fireEmitter.addAction(new ColorChange(4294940928, 16768358)); fireEmitter.addAction(new ScaleImage(2, 4)); fireEmitter.addAction(new RotateToDirection()); _local1 = new BitmapRenderer(new Rectangle(0, 0, this.height, this.width)); _local1.addEmitter(fireEmitter); addChild(_local1); fireEmitter.x = 227; fireEmitter.y = 168.1; fireEmitter.runAhead(10); emitterR.counter = new TimePeriod(80, 0.1); emitterR.addInitializer(new Lifetime(0.1)); emitterR.addInitializer(new Velocity(new LineZone(new Point(0, 0), new Point(100, 0)))); emitterR.addInitializer(new ColorInit(4294900124, 4294923091)); emitterR.addInitializer(new Position(new DiscZone(new Point(30, 30), 15, 0))); emitterR.addInitializer(new ImageClass(RadialDot, 2)); emitterR.addAction(new Move()); emitterR.addAction(new Accelerate(350, 0)); emitterR.addAction(new DeathSpeed(350)); emitterR.addAction(new ScaleImage(1.5, 2.5)); emitterR.x = 133; emitterR.y = 120.4; emitterL.counter = new TimePeriod(80, 0.1); emitterL.addInitializer(new Lifetime(0.1)); emitterL.addInitializer(new Velocity(new LineZone(new Point(0, 0), new Point(-100, 0)))); emitterL.addInitializer(new ColorInit(4294900124, 4294923091)); emitterL.addInitializer(new Position(new DiscZone(new Point(30, 30), 15, 0))); emitterL.addInitializer(new ImageClass(RadialDot, 2)); emitterL.addAction(new Move()); emitterL.addAction(new Accelerate(-350, 0)); emitterL.addAction(new DeathSpeed(-330)); emitterL.addAction(new ScaleImage(1.5, 2.5)); emitterL.x = 133; emitterL.y = 120.4; emitterU.counter = new TimePeriod(80, 0.1); emitterU.addInitializer(new Lifetime(0.1)); emitterU.addInitializer(new Velocity(new LineZone(new Point(0, 0), new Point(0, -100)))); emitterU.addInitializer(new ColorInit(4294900124, 4294923091)); emitterU.addInitializer(new Position(new DiscZone(new Point(30, 30), 15, 0))); emitterU.addInitializer(new ImageClass(RadialDot, 2)); emitterU.addAction(new Move()); emitterU.addAction(new Accelerate(0, -350)); emitterU.addAction(new DeathSpeed(-290)); emitterU.addAction(new ScaleImage(1.5, 2.5)); emitterU.x = 133; emitterU.y = 120.4; emitterD.counter = new TimePeriod(80, 0.1); emitterD.addInitializer(new Lifetime(0.1)); emitterD.addInitializer(new Velocity(new LineZone(new Point(0, 0), new Point(0, 100)))); emitterD.addInitializer(new ColorInit(4294900124, 4294923091)); emitterD.addInitializer(new Position(new DiscZone(new Point(30, 30), 15, 0))); emitterD.addInitializer(new ImageClass(RadialDot, 2)); emitterD.addAction(new Move()); emitterD.addAction(new Accelerate(0, 350)); emitterD.addAction(new DeathSpeed(300)); emitterD.addAction(new ScaleImage(1.5, 2.5)); emitterD.x = 133; emitterD.y = 120.4; emitterC.counter = new TimePeriod(200, 0.1); emitterC.addInitializer(new Lifetime(0.1, 0.2)); emitterC.addInitializer(new Velocity(new DiscZone(new Point(0, 0), 30, 20))); emitterC.addInitializer(new ColorInit(4294900124, 4294923091)); emitterC.addInitializer(new Position(new DiscZone(new Point(30, 30), 15, 0))); emitterC.addInitializer(new ImageClass(RadialDot, 2)); emitterC.addAction(new Move()); emitterC.addAction(new Accelerate(0, -70)); emitterC.addAction(new RotateToDirection()); emitterC.addAction(new DeathSpeed(-70)); emitterC.addAction(new ScaleImage(1.5, 2.5)); emitterC.x = 133; emitterC.y = 122.4; _local2 = new BitmapRenderer(new Rectangle(-35, -10, this.height, this.width)); _local2.addFilter(new BlurFilter(25, 25)); _local2.addEmitter(emitterR); _local2.addEmitter(emitterL); _local2.addEmitter(emitterU); _local2.addEmitter(emitterD); _local2.addEmitter(emitterC); DrawMc.addChildAt(_local2, 1); qArray[0] = [4, 4, 2, -1, -1]; ansArray[0] = "1"; qArray[1] = [5, 3, 2, -1, -1]; ansArray[1] = "0"; qArray[2] = [4, -1, -1, 0, 4]; ansArray[2] = "4"; qArray[3] = [5, 5, -1, 1, -1]; ansArray[3] = "1"; qArray[4] = [0, -1, 0, 1, 3]; ansArray[4] = "2"; qArray[5] = [3, -1, 2, -1, 3]; ansArray[5] = "4"; qArray[6] = [1, -1, 1, 3, 2]; ansArray[6] = "2"; qArray[7] = [2, 5, -1, 3, 2]; ansArray[7] = "4"; qArray[8] = [0, 5, 0, -1, -1]; ansArray[8] = "2"; qArray[9] = [3, -1, 2, -1, -1]; ansArray[9] = "0"; qArray[10] = [1, -1, 2, -1, 1]; ansArray[10] = "4"; qArray[11] = [2, 2, -1, 0, -1]; ansArray[11] = "1"; qArray[12] = [1, 5, 0, 1, -1]; ansArray[12] = "3"; qArray[13] = [3, -1, 2, -1, 3]; ansArray[13] = "4"; qArray[14] = [2, 2, 4, -1, -1]; ansArray[14] = "1"; qArray[15] = [0, -1, 7, 2, -1]; ansArray[15] = "0"; qArray[16] = [1, -1, -1, 5, -1]; ansArray[16] = "0"; qArray[17] = [1, 1, 2, 3, 0]; ansArray[17] = "1"; qArray[18] = [0, 2, 0, 5, 6]; ansArray[18] = "2"; qArray[19] = [3, 4, 2, -1, 7]; ansArray[19] = "0"; qArray[20] = [2, -1, 2, 0, 3]; ansArray[20] = "2"; qArray[21] = [3, 0, -1, -1, -1]; ansArray[21] = "0"; qArray[22] = [5, -1, 0, 1, -1]; ansArray[22] = "0"; qArray[23] = [6, 0, 2, 6, 7]; ansArray[23] = "3"; qArray[24] = [2, 5, 1, 2, -1]; ansArray[24] = "3"; qArray[25] = [4, 4, 2, -1, 3]; ansArray[25] = "1"; qArray[26] = [2, 1, 5, 3, 2]; ansArray[26] = "4"; qArray[27] = [6, -1, -1, 3, 6]; ansArray[27] = "4"; qArray[28] = [5, 3, 5, 1, -1]; ansArray[28] = "2"; qArray[29] = [3, 0, 2, 3, -1]; ansArray[29] = "3"; qArray[30] = [1, -1, 2, 6, 3]; ansArray[30] = "0"; qArray[31] = [2, 4, 2, 5, 1]; ansArray[31] = "2"; qArray[32] = [7, 3, 0, 1, 7]; ansArray[32] = "4"; qArray[33] = [6, 6, 7, 1, 0]; ansArray[33] = "1"; qArray[34] = [5, 3, 1, 0, 5]; ansArray[34] = "4"; qArray[35] = [2, 0, 2, 5, 3]; ansArray[35] = "2"; qArray[36] = [0, 6, 0, 4, 2]; ansArray[36] = "2"; qArray[37] = [1, 1, 2, -1, 0]; ansArray[37] = "1"; qArray[38] = [0, 1, 0, 3, -1]; ansArray[38] = "2"; qArray[39] = [1, 4, 7, 1, 5]; ansArray[39] = "3"; qArray[40] = [2, 4, 2, 0, 3]; ansArray[40] = "2"; qArray[41] = [3, 3, 5, 1, -1]; ansArray[41] = "1"; qArray[42] = [4, 3, 1, 5, 6]; ansArray[42] = "0"; qArray[43] = [6, 0, 2, 6, 3]; ansArray[43] = "3"; qArray[44] = [1, 3, 0, 4, 1]; ansArray[44] = "4"; qArray[45] = [2, 0, 2, 5, 3]; ansArray[45] = "2"; qArray[46] = [7, 1, 4, 7, 2]; ansArray[46] = "3"; qArray[47] = [4, 1, 2, 3, 4]; ansArray[47] = "4"; qArray[48] = [5, 1, 4, 0, 3]; ansArray[48] = "0"; qArray[49] = [0, 0, 2, 3, 4]; ansArray[49] = "1"; qArray[50] = [1, -1, 2, 1, 3]; ansArray[50] = "3"; qArray[51] = [2, 6, 2, 5, 0]; ansArray[51] = "2"; qArray[52] = [3, 3, 0, 1, 4]; ansArray[52] = "1"; qArray[53] = [4, 1, 3, 6, 5]; ansArray[53] = "0"; qArray[54] = [5, 3, 5, 7, 2]; ansArray[54] = "2"; qArray[55] = [0, 0, 2, 4, 3]; ansArray[55] = "1"; qArray[56] = [1, 1, 5, 3, 2]; ansArray[56] = "1"; qArray[57] = [2, 5, 4, 2, 0]; ansArray[57] = "3"; qArray[58] = [2, 1, 0, 5, 2]; ansArray[58] = "4"; qArray[59] = [7, 0, 2, 5, 6]; ansArray[59] = "0"; qNo = 0; ansOk = 0; minIndex = 0; maxIndex = 14; minList[0] = 0; minList[1] = 10; minList[2] = 20; maxList[0] = 14; maxList[1] = 39; maxList[2] = 59; diffUpdateAtQs[0] = 0; diffUpdateAtQs[1] = 9; diffUpdateAtQs[2] = 19; diffLevel = 0; mg = new MouseGesture(DrawMc); mg.addGesture("0", "4321076542"); mg.addGesture("1", "6"); mg.addGesture("2", "4"); mg.addGesture("3", "2"); mg.addGesture("4", "0"); timer = new Timer(100, 1); timer.addEventListener(TimerEvent.TIMER, fadeDrawing); startCount = 0; counterMc = new Count3(); counterMc.x = 175; counterMc.y = 120; addChild(counterMc); countTimer = new Timer(1000, 3); countTimer.addEventListener(TimerEvent.TIMER, showCount); countTimer.start(); mainTL.playIt(mainTL.tickSound); } protected function fadeDrawing(_arg1:TimerEvent):void{ fadeTween = new Tween(DrawMc.Zone, "alpha", Regular.easeIn, DrawMc.Zone.alpha, 0, 20); } protected function sixMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.3)) ? _arg1.cost : 10000); } protected function noMatchHandler(_arg1:GestureEvent):void{ if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; DrawMc.Zone.graphics.clear(); } protected function showCount(_arg1:TimerEvent):void{ startCount++; if (startCount == 1){ mainTL.hintLevel5.visible = false; mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count2(); counterMc.x = 175; counterMc.y = 120; addChild(counterMc); } else { if (startCount == 2){ mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count1(); counterMc.x = 175; counterMc.y = 120; addChild(counterMc); } else { mainTL.playIt(mainTL.startSound); removeChild(counterMc); countTimer.stop(); countTimer.removeEventListener(TimerEvent.TIMER, showCount); mg.addEventListener(GestureEvent.GESTURE_MATCH, matchHandler); mg.addEventListener(GestureEvent.NO_MATCH, noMatchHandler); mg.addEventListener(GestureEvent.START_CAPTURE, startHandler); mg.addEventListener(GestureEvent.STOP_CAPTURE, stopHandler); DrawMc.addEventListener(MouseEvent.MOUSE_OVER, HideMouse); DrawMc.addEventListener(MouseEvent.MOUSE_OUT, ShowMouse); DrawMc.addEventListener(MouseEvent.MOUSE_MOVE, DragMouse); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); gameState = NEW_GAME; levelTime = 0; lastTime = getTimer(); gameTime = 60000; theQ = -1; ChangeQ(""); mainTL.allowQuit = true; }; }; } protected function fiveMatch(_arg1:Object):uint{ var _local2:int; _local2 = _arg1.moves.join("").indexOf("111"); return (((_local2 == -1)) ? _arg1.cost : 10000); } public function HideMouse(_arg1:MouseEvent):void{ Mouse.hide(); if (((!(_arg1.buttonDown)) && (!((pencilChannel == null))))){ pencilChannel.stop(); pencilChannel = null; }; } function onNextGame(_arg1:MouseEvent){ cleanUp(); } protected function startHandler(_arg1:GestureEvent):void{ timer.stop(); if (fadeTween){ fadeTween.stop(); }; if (mainTL.isSound){ pencilChannel = mainTL.pencilSound.play(0, int.MAX_VALUE); }; DrawMc.Zone.graphics.clear(); DrawMc.Zone.alpha = 0.8; DrawMc.Zone.graphics.lineStyle(4, 0x444444); DrawMc.Zone.graphics.moveTo(DrawMc.mouseX, DrawMc.mouseY); addEventListener(Event.ENTER_FRAME, capturingHandler); } public function ChangeQ(_arg1:String){ var _local2:uint; var _local3:int; while (mzCount > 0) { mzCount--; DrawMc.removeChildAt(2); }; if ((((diffLevel < 2)) && ((qNo >= diffUpdateAtQs[(diffLevel + 1)])))){ diffLevel++; minIndex = minList[diffLevel]; maxIndex = maxList[diffLevel]; }; if (lastQ.length == 5){ lastQ.shift(); }; lastQ.push(theQ); _local2 = 0; while (_local2 < 15) { theQ = (minIndex + Math.floor((Math.random() * (maxIndex - minIndex)))); if (Cmp(theQ)){ break; }; _local2++; }; _local3 = 0; while (_local3 < qArray[theQ].length) { switch (_local3){ case 0: cloneArray[qArray[theQ][0]].x = DrawMc.centerXY.x; cloneArray[qArray[theQ][0]].y = DrawMc.centerXY.y; cloneArray[qArray[theQ][0]].visible = true; mzCount++; DrawMc.addChildAt(cloneArray[qArray[theQ][0]], 2); break; case 1: if (qArray[theQ][_local3] == -1){ break; }; shapeArray[qArray[theQ][1]].x = DrawMc.topXY.x; shapeArray[qArray[theQ][1]].y = DrawMc.topXY.y; break; case 2: if (qArray[theQ][_local3] == -1){ break; }; shapeArray[qArray[theQ][2]].x = DrawMc.leftXY.x; shapeArray[qArray[theQ][2]].y = DrawMc.leftXY.y; break; case 3: if (qArray[theQ][_local3] == -1){ break; }; shapeArray[qArray[theQ][_local3]].x = DrawMc.bottomXY.x; shapeArray[qArray[theQ][_local3]].y = DrawMc.bottomXY.y; break; case 4: if (qArray[theQ][_local3] == -1){ break; }; shapeArray[qArray[theQ][_local3]].x = DrawMc.rightXY.x; shapeArray[qArray[theQ][_local3]].y = DrawMc.rightXY.y; break; }; if ((((_local3 > 0)) && (!((qArray[theQ][_local3] == -1))))){ shapeArray[qArray[theQ][_local3]].visible = true; shapeArray[qArray[theQ][_local3]].alpha = 1; mzCount++; DrawMc.addChildAt(shapeArray[qArray[theQ][_local3]], 2); }; _local3++; }; if ((((qNo <= 2)) && (((mainTL.isPractice) || ((mainTL.practiceMode[4] == 1)))))){ if (qNo == 0){ Tweener.addTween(mainTL.hintLevel5, {visible:true, alpha:0.1}); Tweener.addTween(mainTL.hintLevel5, {alpha:1, transition:"easeOutSine", time:0.5}); }; mainTL.hintLevel5.Hint1.alpha = (mainTL.hintLevel5.Hint2.alpha = (mainTL.hintLevel5.Hint3.alpha = (mainTL.hintLevel5.Hint4.alpha = (mainTL.hintLevel5.Hint5.alpha = 0)))); if (ansArray[theQ] == "1"){ mainTL.hintLevel5.Hint1.alpha = 1; } else { if (ansArray[theQ] == "2"){ mainTL.hintLevel5.Hint2.alpha = 1; } else { if (ansArray[theQ] == "3"){ mainTL.hintLevel5.Hint3.alpha = 1; } else { if (ansArray[theQ] == "4"){ mainTL.hintLevel5.Hint4.alpha = 1; } else { if (ansArray[theQ] == "0"){ mainTL.hintLevel5.Hint5.alpha = 1; }; }; }; }; }; }; if (((((mainTL.isPractice) || ((mainTL.practiceMode[4] == 1)))) && ((qNo > 2)))){ if (!mainTL.isPractice){ mainTL.practiceMode[4] = 0; }; mainTL.hintLevel5.visible = false; }; mainTL.qText.text = String((qNo + 1)); gameState = NEW_Q; } protected function oMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.3)) ? _arg1.cost : 10000); } function cleanUp():void{ timer.removeEventListener(TimerEvent.TIMER, fadeDrawing); mg.removeEventListener(GestureEvent.GESTURE_MATCH, matchHandler); mg.removeEventListener(GestureEvent.NO_MATCH, noMatchHandler); mg.removeEventListener(GestureEvent.START_CAPTURE, startHandler); mg.removeEventListener(GestureEvent.STOP_CAPTURE, stopHandler); DrawMc.removeEventListener(MouseEvent.MOUSE_OVER, HideMouse); DrawMc.removeEventListener(MouseEvent.MOUSE_OUT, ShowMouse); DrawMc.removeEventListener(MouseEvent.MOUSE_MOVE, DragMouse); removeEventListener(Event.ENTER_FRAME, Update); if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; if (scoreWin){ mainTL.removeChild(scoreWin); }; mainTL.allowQuit = true; if (mainTL.time2Quit){ mainTL.gotoAndStop("mainMenu"); mainTL.time2Quit = false; if (mainTL.isMusic){ if (mainTL.musicChannel){ mainTL.musicChannel.stop(); }; mainTL.musicChannel = mainTL.bgMusic1.play(0, int.MAX_VALUE); mainTL.musicChannel.soundTransform = mainTL.musicTransform; }; } else { mainTL.nextGame(); }; } protected function stopHandler(_arg1:GestureEvent):void{ if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; removeEventListener(Event.ENTER_FRAME, capturingHandler); } public function Update(_arg1:Event):void{ var seconds:uint; var e = _arg1; if (mainTL.time2Quit){ cleanUp(); }; curTime = (getTimer() - lastTime); lastTime = (lastTime + curTime); lastSecond = Math.floor((levelTime / 1000)); levelTime = (levelTime + curTime); seconds = Math.floor((levelTime / 1000)); if (gameState != TIME_UP){ mainTL.timeText.text = String(((gameTime / 1000) - Math.floor((levelTime / 1000)))); }; if ((((((((gameTime / 1000) - seconds) <= 5)) && ((((gameTime / 1000) - seconds) >= 1)))) && (!((seconds == lastSecond))))){ mainTL.playIt(mainTL.tickSound); }; if (((!(mainTL.isSound)) && (pencilChannel))){ pencilChannel.stop(); pencilChannel = null; }; if ((((levelTime > gameTime)) && (!((gameState == TIME_UP))))){ if (scoreWin){ return; }; gameState = TIME_UP; mainTL.allowQuit = false; if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; mainTL.playIt(mainTL.endSound); scoreWin = new ScoreWindow(); scoreWin.x = 105; scoreWin.y = 280; (scoreWin as ScoreWindow).inside.scoreNos.qAsked.text = String(qNo); (scoreWin as ScoreWindow).inside.nextButton.addEventListener(MouseEvent.CLICK, onNextGame); (scoreWin as ScoreWindow).inside.quitButton.addEventListener(MouseEvent.CLICK, onQuitGame); if (mainTL.isPractice){ mainTL.isPractice = false; (scoreWin as ScoreWindow).inside.nextButton.visible = false; (scoreWin as ScoreWindow).inside.quitButton.x = ((scoreWin as ScoreWindow).inside.quitButton.x - 70); }; (scoreWin as ScoreWindow).inside.scoreNos.qAns.text = String(ansOk); if (qNo){ (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = String(Math.round((((ansOk * 10) + (((ansOk / qNo) * ansOk) * 10)) + (((levelTime / 60000) * ansOk) * 10)))); } else { (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = "0"; }; mainTL.gameScore = (mainTL.gameScore + int((scoreWin as ScoreWindow).inside.scoreNos.testScore.text)); (scoreWin as ScoreWindow).inside.scoreNos.brainScore.text = String(mainTL.gameScore); mainTL.addChild(scoreWin); Tweener.addTween(scoreWin, {y:75, time:1, onStart:function (){ this.scaleX = 0.9; this.scaleY = 0.9; }}); Tweener.addTween(scoreWin, {x:80, scaleX:1, scaleY:1, transition:"easeInSine", time:0.5, delay:0.5}); }; if (gameState == ANS_WAIT_WRONG){ waitTime = (waitTime + curTime); if (waitTime > 500){ gameState = ANS_WRONG; qNo++; ChangeQ(""); }; } else { if (gameState == ANS_WAIT_OK){ waitTime = (waitTime + curTime); if (waitTime > 1200){ gameState = ANS_OK; qNo++; ChangeQ(""); }; }; }; } protected function sMatch(_arg1:Object):uint{ var _local2:int; _local2 = _arg1.moves.join("").indexOf("111"); return (((_local2 > -1)) ? _arg1.cost : 10000); } public function Cmp(_arg1:uint):Boolean{ if ((((((((((((lastQ.length == 5)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))) && (!((lastQ[4] == _arg1))))){ return (true); }; if ((((((((((lastQ.length == 4)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))){ return (true); }; if ((((((((lastQ.length == 3)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))){ return (true); }; if ((((((lastQ.length == 2)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))){ return (true); }; if ((((lastQ.length == 1)) && (!((lastQ[0] == _arg1))))){ return (true); }; return (false); } protected function pMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.7)) ? _arg1.cost : 10000); } protected function capturingHandler(_arg1:Event):void{ DrawMc.Zone.graphics.lineTo((mouseX - DrawMc.x), (mouseY - DrawMc.y)); } protected function ShowMouse(_arg1:MouseEvent):void{ Mouse.show(); } protected function gMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.3)) ? _arg1.cost : 10000); } protected function DragMouse(_arg1:MouseEvent):void{ DrawMc.Cursor.x = (mouseX - DrawMc.x); DrawMc.Cursor.y = (mouseY - DrawMc.y); } protected function dMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.8)) ? _arg1.cost : 10000); } private function checkAns():Boolean{ var _local1:Boolean; _local1 = false; return (_local1); } protected function matchHandler(_arg1:GestureEvent):void{ var _local2:int; timer.start(); if (gameState == NEW_Q){ if (_arg1.datas == ansArray[theQ]){ gameState = ANS_WAIT_OK; waitTime = 0; ansOk++; if (_arg1.datas == "0"){ emitterC.start(); waitTime = 400; } else { if (_arg1.datas == "1"){ emitterU.start(); Tweener.addTween(cloneArray[qArray[theQ][0]], {y:DrawMc.topXY.y, transition:"easeOutSine", time:0.5}); } else { if (_arg1.datas == "2"){ emitterL.start(); Tweener.addTween(cloneArray[qArray[theQ][0]], {x:DrawMc.leftXY.x, transition:"easeOutSine", time:0.5}); } else { if (_arg1.datas == "3"){ emitterD.start(); Tweener.addTween(cloneArray[qArray[theQ][0]], {y:DrawMc.bottomXY.y, transition:"easeOutSine", time:0.5}); } else { if (_arg1.datas == "4"){ emitterR.start(); Tweener.addTween(cloneArray[qArray[theQ][0]], {x:DrawMc.rightXY.x, transition:"easeOutSine", time:0.5}); }; }; }; }; }; _local2 = 0; while (_local2 < qArray[theQ].length) { if (qArray[theQ][_local2] != -1){ Tweener.addTween(shapeArray[qArray[theQ][_local2]], {alpha:0, transition:"easeOutSine", time:0.3}); }; _local2++; }; if (comboCount < 0){ comboCount = 1; } else { comboCount++; }; if (comboCount < 3){ mainTL.playIt(mainTL.ok1Sound); } else { mainTL.playIt(mainTL.ok2Sound); }; if (comboCount == 3){ gameTime = (gameTime + 2000); Tweener.removeTweens(mainTL.timeAdd); mainTL.timeAdd.alpha = 1; mainTL.timeAdd.y = -5; Tweener.addTween(mainTL.timeAdd, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeAdd, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.scoreText.text = String(ansOk); } else { fireEmitter.start(); gameState = ANS_WAIT_WRONG; if (comboCount > 0){ comboCount = -1; } else { comboCount--; }; if (comboCount == -1){ mainTL.playIt(mainTL.wrong1Sound); } else { if (comboCount < -1){ mainTL.playIt(mainTL.wrong2Sound); }; }; if (comboCount == -2){ gameTime = (gameTime - 2000); Tweener.removeTweens(mainTL.timeRemove); mainTL.timeRemove.alpha = 1; mainTL.timeRemove.y = -6; Tweener.addTween(mainTL.timeRemove, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeRemove, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.falseText.text = ((qNo - ansOk) + 1); waitTime = 0; }; }; } protected function qMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.3)) ? _arg1.cost : 10000); } public function onQuitGame(_arg1:MouseEvent):void{ mainTL.time2Quit = true; cleanUp(); } } }//package
Section 192
//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{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 193
//Music1 (Music1) package { import flash.media.*; public dynamic class Music1 extends Sound { } }//package
Section 194
//Music2 (Music2) package { import flash.media.*; public dynamic class Music2 extends Sound { } }//package
Section 195
//PencilLoop (PencilLoop) package { import flash.media.*; public dynamic class PencilLoop extends Sound { } }//package
Section 196
//QMark (QMark) package { import flash.display.*; public dynamic class QMark extends Sprite { } }//package
Section 197
//RedO (RedO) package { import flash.display.*; public dynamic class RedO extends Sprite { } }//package
Section 198
//SaveWindow (SaveWindow) package { import flash.display.*; import flash.text.*; public dynamic class SaveWindow extends Sprite { public var delButton:SimpleButton; public var okButton:SimpleButton; public var hide3:MovieClip; public var hide1:MovieClip; public var hide2:MovieClip; public var cancelButton:SimpleButton; public var btn3:MovieClip; public var save1:TextField; public var save3:TextField; public var prompt:MovieClip; public var btn2:MovieClip; public var save2:TextField; public var btn1:MovieClip; } }//package
Section 199
//ScoreWindow (ScoreWindow) package { import flash.display.*; public dynamic class ScoreWindow extends Sprite { public var inside:MovieClip; } }//package
Section 200
//SoundDrop (SoundDrop) package { import flash.media.*; public dynamic class SoundDrop extends Sound { } }//package
Section 201
//SoundEnd (SoundEnd) package { import flash.media.*; public dynamic class SoundEnd extends Sound { } }//package
Section 202
//SoundErase (SoundErase) package { import flash.media.*; public dynamic class SoundErase extends Sound { } }//package
Section 203
//SoundMouse (SoundMouse) package { import flash.media.*; public dynamic class SoundMouse extends Sound { } }//package
Section 204
//SoundOk1 (SoundOk1) package { import flash.media.*; public dynamic class SoundOk1 extends Sound { } }//package
Section 205
//SoundOk2 (SoundOk2) package { import flash.media.*; public dynamic class SoundOk2 extends Sound { } }//package
Section 206
//SoundPick (SoundPick) package { import flash.media.*; public dynamic class SoundPick extends Sound { } }//package
Section 207
//SoundStart (SoundStart) package { import flash.media.*; public dynamic class SoundStart extends Sound { } }//package
Section 208
//SoundTick (SoundTick) package { import flash.media.*; public dynamic class SoundTick extends Sound { } }//package
Section 209
//SoundWait (SoundWait) package { import flash.media.*; public dynamic class SoundWait extends Sound { } }//package
Section 210
//SoundWrong1 (SoundWrong1) package { import flash.media.*; public dynamic class SoundWrong1 extends Sound { } }//package
Section 211
//SoundWrong2 (SoundWrong2) package { import flash.media.*; public dynamic class SoundWrong2 extends Sound { } }//package
Section 212
//Sphere (Sphere) package { import flash.display.*; public dynamic class Sphere extends Sprite { } }//package
Section 213
//Square (Square) package { import flash.display.*; public dynamic class Square extends Sprite { } }//package
Section 214
//Star (Star) package { import flash.display.*; public dynamic class Star extends Sprite { } }//package
Section 215
//TimeBonus (TimeBonus) package { import flash.display.*; public dynamic class TimeBonus extends MovieClip { } }//package
Section 216
//TimeRemove (TimeRemove) package { import flash.display.*; public dynamic class TimeRemove extends MovieClip { } }//package
Section 217
//Triangle (Triangle) package { import flash.display.*; public dynamic class Triangle extends Sprite { } }//package
Section 218
//WordLevel (WordLevel) package { import flash.display.*; import flash.events.*; import caurina.transitions.*; import flash.utils.*; import flash.media.*; import com.foxaweb.ui.gesture.*; import fl.transitions.easing.*; import fl.transitions.*; import flash.text.*; import flash.ui.*; public class WordLevel extends MovieClip { public var Q1:TextField; public var Q2:TextField; public var Q4:TextField; public var diffUpdateAtQs:Array; public var Q5:TextField; public var theQ:uint; public var minList:Array; public var qNo:uint; public var ansArray:Array; public var Q3:TextField; public var DrawMc:MovieClip; public var maxList:Array; public var comboCount:int;// = 0 public var tickMc:mcTick; public var ansText:TextField; public var ansOk:uint; public var qArray:Array; public var levelTime:Number; public var ansLength:uint; public var lastQ:Array; public var diffLevel:uint; public var lastTime; public var lastSecond:uint; public var counterMc:Sprite; public var setWarning:Boolean;// = true public var qMark:Sprite; public var doIt:Boolean;// = false public var curTime; public var pencilChannel:SoundChannel; private var timer; private var fadeTween:Tween; public var lastAns:MovieClip; private var countTimer:Timer; private var mg:MouseGesture; public var minIndex; public var startCount:uint; public var gameState:uint; public var maxIndex:uint; public var gameTime:int; public var waitTime; public var mainTL:MovieClip; public var scoreWin:Sprite; public var crossMc:mcCross; public static const TIME_UP = 6; public static const ANS_WAIT = 4; public static const NEW_GAME = 1; public static const NEW_Q = 2; public static const ANS_WRONG = 5; public static const ANS_OK = 3; public function WordLevel(){ qArray = new Array(); ansArray = new Array(); lastQ = new Array(); minList = new Array(); maxList = new Array(); diffUpdateAtQs = new Array(); comboCount = 0; doIt = false; setWarning = true; tickMc = new mcTick(); crossMc = new mcCross(); super(); qMark = new QMark(); stage.scaleMode = "noScale"; mainTL = (this.parent as MovieClip); gameState = NEW_GAME; mainTL.scoreText.text = "0"; mainTL.falseText.text = "0"; mainTL.qText.text = "0"; mainTL.allowQuit = false; mainTL.yesButton.visible = false; mainTL.noButton.visible = false; tickMc.x = 6; tickMc.y = 190; tickMc.alpha = 0; crossMc.x = 6; crossMc.y = 190; crossMc.alpha = 0; addChild(tickMc); addChild(crossMc); qArray[0] = ["O", "L", "D"]; ansArray[0] = 0; qArray[1] = ["W", "E", "B"]; ansArray[1] = 0; qArray[2] = ["T", "W", "O"]; ansArray[2] = 0; qArray[3] = ["C", "A", "R"]; ansArray[3] = 1; qArray[4] = ["O", "N", "E"]; ansArray[4] = 2; qArray[5] = ["R", "A", "R", "E"]; ansArray[5] = 1; qArray[6] = ["E", "R", "R", "O", "R"]; ansArray[6] = 1; qArray[7] = ["O", "F", "F", "E", "R"]; ansArray[7] = 1; qArray[8] = ["E", "V", "E", "R"]; ansArray[8] = 2; qArray[9] = ["F", "I", "V", "E"]; ansArray[9] = 3; qArray[10] = ["C", "I", "T", "Y"]; ansArray[10] = 1; qArray[11] = ["F", "O", "O", "D"]; ansArray[11] = 1; qArray[12] = ["F", "O", "U", "R"]; ansArray[12] = 2; qArray[13] = ["D", "O", "O", "R"]; ansArray[13] = 1; qArray[14] = ["G", "A", "M", "E"]; ansArray[14] = 1; qArray[15] = ["T", "O", "W", "N"]; ansArray[15] = 3; qArray[16] = ["H", "E", "L", "P"]; ansArray[16] = 1; qArray[17] = ["S", "E", "V", "E", "N"]; ansArray[17] = 1; qArray[18] = ["N", "E", "X", "T"]; ansArray[18] = 3; qArray[19] = ["T", "E", "A", "R"]; ansArray[19] = 2; qArray[20] = ["S", "T", "A", "R"]; ansArray[20] = 0; qArray[21] = ["N", "E", "E", "D"]; ansArray[21] = 1; qArray[22] = ["R", "E", "A", "L"]; ansArray[22] = 1; qArray[23] = ["R", "I", "G", "H", "T"]; ansArray[23] = 3; qArray[24] = ["N", "A", "M", "E"]; ansArray[24] = 1; qArray[25] = ["S", "K", "A", "T", "E"]; ansArray[25] = 0; qArray[26] = ["O", "P", "E", "N"]; ansArray[26] = 0; qArray[27] = ["C", "R", "A", "Z", "Y"]; ansArray[27] = 0; qArray[28] = ["H", "O", "M", "E"]; ansArray[28] = 3; qArray[29] = ["W", "A", "T", "E", "R"]; ansArray[29] = 4; qArray[30] = ["N", "O", "S", "E"]; ansArray[30] = 1; qArray[31] = ["S", "P", "E", "N", "D"]; ansArray[31] = 0; qArray[32] = ["S", "M", "A", "L", "L"]; ansArray[32] = 0; qArray[33] = ["F", "U", "N", "D"]; ansArray[33] = 2; qArray[34] = ["F", "L", "A", "S", "H"]; ansArray[34] = 1; qArray[35] = ["D", "A", "S", "H"]; ansArray[35] = 2; qArray[36] = ["S", "L", "E", "E", "P"]; ansArray[36] = 3; qArray[37] = ["C", "H", "E", "A", "P"]; ansArray[37] = 0; qArray[38] = ["E", "D", "G", "E"]; ansArray[38] = 1; qArray[39] = ["F", "U", "E", "L"]; ansArray[39] = 3; qArray[40] = ["C", "L", "O", "S", "E"]; ansArray[40] = 4; qArray[41] = ["F", "O", "U", "N", "D"]; ansArray[41] = 3; qArray[42] = ["H", "E", "R", "O"]; ansArray[42] = 1; qArray[43] = ["W", "E", "E", "K"]; ansArray[43] = 1; qArray[44] = ["Y", "E", "A", "R"]; ansArray[44] = 2; qArray[45] = ["V", "I", "S", "I", "T"]; ansArray[45] = 2; qArray[46] = ["V", "I", "S", "I", "T"]; ansArray[46] = 1; qArray[47] = ["S", "T", "O", "R", "E"]; ansArray[47] = 0; qArray[48] = ["N", "E", "E", "D"]; ansArray[48] = 1; qArray[49] = ["D", "E", "P", "T", "H"]; ansArray[49] = 3; qArray[50] = ["D", "E", "P", "T", "H"]; ansArray[50] = 4; qArray[51] = ["W", "A", "T", "E", "R"]; ansArray[51] = 1; qArray[52] = ["B", "A", "B", "Y"]; ansArray[52] = 2; qArray[53] = ["E", "R", "R", "O", "R"]; ansArray[53] = 0; qArray[54] = ["S", "M", "A", "L", "L"]; ansArray[54] = 3; qArray[55] = ["E", "I", "G", "H", "T"]; ansArray[55] = 2; qArray[56] = ["C", "O", "U", "N", "T"]; ansArray[56] = 4; qArray[57] = ["W", "R", "O", "N", "G"]; ansArray[57] = 1; qArray[58] = ["D", "O", "W", "N"]; ansArray[58] = 2; qArray[59] = ["S", "H", "O", "R", "T"]; ansArray[59] = 0; qArray[60] = ["T", "H", "I", "N", "K"]; ansArray[60] = 1; qArray[61] = ["L", "E", "A", "V", "E"]; ansArray[61] = 1; ansText = Q5; qNo = 0; ansOk = 0; minIndex = 0; maxIndex = 14; minList[0] = 0; minList[1] = 10; minList[2] = 20; maxList[0] = 14; maxList[1] = 39; maxList[2] = 61; diffUpdateAtQs[0] = 0; diffUpdateAtQs[1] = 9; diffUpdateAtQs[2] = 19; diffLevel = 0; theQ = 100; mg = new MouseGesture(DrawMc); mg.addGesture("A", "71"); mg.addGesture("B", "260123401234"); mg.addGesture("C", "43210"); mg.addGesture("D", "26701234", dMatch); mg.addGesture("E", "4321043210"); mg.addGesture("F", "42"); mg.addGesture("G", "432107650", gMatch); mg.addGesture("H", "267012"); mg.addGesture("I", "2"); mg.addGesture("J", "234"); mg.addGesture("K", "3456701"); mg.addGesture("L", "20"); mg.addGesture("M", "6172"); mg.addGesture("N", "616"); mg.addGesture("O", "432107654", oMatch); mg.addGesture("P", "26701234", pMatch); mg.addGesture("Q", "4321076540", qMatch); mg.addGesture("R", "267012341"); mg.addGesture("S", "432101234", sMatch); mg.addGesture("T", "02"); mg.addGesture("U", "21076"); mg.addGesture("V", "17"); mg.addGesture("W", "2716"); mg.addGesture("X", "1076543"); mg.addGesture("Y", "21076234567"); mg.addGesture("Z", "030"); mg.addGesture("BACKSPACE", "4"); timer = new Timer(100, 1); timer.addEventListener(TimerEvent.TIMER, fadeDrawing); startCount = 0; counterMc = new Count3(); counterMc.x = 65; counterMc.y = 150; addChild(counterMc); countTimer = new Timer(1000, 3); countTimer.addEventListener(TimerEvent.TIMER, showCount); countTimer.start(); qMark.alpha = 0; addChild(qMark); mainTL.playIt(mainTL.tickSound); } protected function sixMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.3)) ? _arg1.cost : 10000); } protected function noMatchHandler(_arg1:GestureEvent):void{ if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; DrawMc.Zone.graphics.clear(); } protected function fadeDrawing(_arg1:TimerEvent):void{ fadeTween = new Tween(DrawMc.Zone, "alpha", Regular.easeIn, DrawMc.Zone.alpha, 0, 20); } protected function showCount(_arg1:TimerEvent):void{ startCount++; if (startCount == 1){ mainTL.hintLevel2.visible = false; mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count2(); counterMc.x = 65; counterMc.y = 150; addChild(counterMc); } else { if (startCount == 2){ mainTL.playIt(mainTL.tickSound); removeChild(counterMc); counterMc = new Count1(); counterMc.x = 65; counterMc.y = 150; addChild(counterMc); } else { mainTL.playIt(mainTL.startSound); removeChild(counterMc); countTimer.stop(); countTimer.removeEventListener(TimerEvent.TIMER, showCount); mainTL.eraser.addEventListener(MouseEvent.CLICK, onEraser); mg.addEventListener(GestureEvent.GESTURE_MATCH, matchHandler); mg.addEventListener(GestureEvent.NO_MATCH, noMatchHandler); mg.addEventListener(GestureEvent.START_CAPTURE, startHandler); mg.addEventListener(GestureEvent.STOP_CAPTURE, stopHandler); DrawMc.addEventListener(MouseEvent.MOUSE_OVER, HideMouse); DrawMc.addEventListener(MouseEvent.MOUSE_OUT, ShowMouse); DrawMc.addEventListener(MouseEvent.MOUSE_MOVE, DragMouse); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); gameState = NEW_GAME; levelTime = 0; lastTime = getTimer(); gameTime = 60000; ChangeQ(""); mainTL.allowQuit = true; }; }; } public function HideMouse(_arg1:MouseEvent):void{ Mouse.hide(); if (((!(_arg1.buttonDown)) && (!((pencilChannel == null))))){ pencilChannel.stop(); pencilChannel = null; }; } protected function fiveMatch(_arg1:Object):uint{ var _local2:int; _local2 = _arg1.moves.join("").indexOf("111"); return (((_local2 == -1)) ? _arg1.cost : 10000); } protected function startHandler(_arg1:GestureEvent):void{ if (DrawMc.drawText.alpha){ DrawMc.drawText.alpha = 0; }; timer.stop(); if (fadeTween){ fadeTween.stop(); }; if (mainTL.isSound){ pencilChannel = mainTL.pencilSound.play(0, int.MAX_VALUE); }; DrawMc.Zone.graphics.clear(); DrawMc.Zone.alpha = 0.8; DrawMc.Zone.graphics.lineStyle(4, 0x444444); DrawMc.Zone.graphics.moveTo(DrawMc.mouseX, DrawMc.mouseY); addEventListener(Event.ENTER_FRAME, capturingHandler); } public function ChangeQ(_arg1:String){ var _local2:uint; lastAns.Q1.text = Q1.text; lastAns.Q2.text = Q2.text; lastAns.Q3.text = Q3.text; lastAns.Q4.text = Q4.text; lastAns.Q5.text = Q5.text; Tweener.removeTweens(lastAns); lastAns.alpha = 0.5; lastAns.y = 170; Tweener.addTween(lastAns, {alpha:1, transition:"easeInSine", time:0.4}); Tweener.addTween(lastAns, {y:300, transition:"easeInSine", time:1}); Tweener.addTween(lastAns, {alpha:0, transition:"easeInSine", time:1, delay:2}); if ((((diffLevel < 2)) && ((qNo >= diffUpdateAtQs[(diffLevel + 1)])))){ diffLevel++; minIndex = minList[diffLevel]; maxIndex = maxList[diffLevel]; }; if (lastQ.length == 5){ lastQ.shift(); }; lastQ.push(theQ); _local2 = 0; while (_local2 < 15) { theQ = (minIndex + Math.floor((Math.random() * (maxIndex - minIndex)))); if (Cmp(theQ)){ break; }; _local2++; }; switch (ansArray[theQ]){ case 0: ansText = Q1; break; case 1: ansText = Q2; break; case 2: ansText = Q3; break; case 3: ansText = Q4; break; case 4: ansText = Q5; break; }; if (ansText != Q1){ Q1.text = qArray[theQ][0]; }; if (ansText != Q2){ Q2.text = qArray[theQ][1]; }; if (ansText != Q3){ Q3.text = qArray[theQ][2]; }; if (((!((ansText == Q4))) && ((qArray[theQ].length > 3)))){ Q4.text = qArray[theQ][3]; } else { Q4.text = ""; }; if (((!((ansText == Q5))) && ((qArray[theQ].length > 4)))){ Q5.text = qArray[theQ][4]; } else { Q5.text = ""; }; ansText.text = ""; ansLength = 1; qMark.x = ansText.x; qMark.y = (ansText.y - 4); qMark.alpha = 1; if ((((qNo <= 2)) && (((mainTL.isPractice) || ((mainTL.practiceMode[1] == 1)))))){ if (qNo == 0){ Tweener.addTween(mainTL.hintLevel2, {visible:true, alpha:0.1}); Tweener.addTween(mainTL.hintLevel2, {alpha:1, transition:"easeOutSine", time:0.5}); }; mainTL.hintLevel2.Hint1.alpha = (mainTL.hintLevel2.Hint2.alpha = (mainTL.hintLevel2.Hint3.alpha = (mainTL.hintLevel2.Hint4.alpha = (mainTL.hintLevel2.Hint5.alpha = (mainTL.hintLevel2.Hint6.alpha = (mainTL.hintLevel2.Hint7.alpha = (mainTL.hintLevel2.Hint8.alpha = (mainTL.hintLevel2.Hint9.alpha = (mainTL.hintLevel2.Hint10.alpha = 0))))))))); mainTL.hintLevel2.Hint11.alpha = (mainTL.hintLevel2.Hint12.alpha = (mainTL.hintLevel2.Hint13.alpha = (mainTL.hintLevel2.Hint14.alpha = (mainTL.hintLevel2.Hint15.alpha = (mainTL.hintLevel2.Hint16.alpha = (mainTL.hintLevel2.Hint17.alpha = (mainTL.hintLevel2.Hint18.alpha = (mainTL.hintLevel2.Hint19.alpha = (mainTL.hintLevel2.Hint20.alpha = 0))))))))); mainTL.hintLevel2.Hint21.alpha = (mainTL.hintLevel2.Hint22.alpha = (mainTL.hintLevel2.Hint23.alpha = (mainTL.hintLevel2.Hint24.alpha = (mainTL.hintLevel2.Hint25.alpha = (mainTL.hintLevel2.Hint26.alpha = 0))))); if (qArray[theQ][ansArray[theQ]] == "A"){ mainTL.hintLevel2.Hint1.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "B"){ mainTL.hintLevel2.Hint2.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "C"){ mainTL.hintLevel2.Hint3.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "D"){ mainTL.hintLevel2.Hint4.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "E"){ mainTL.hintLevel2.Hint5.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "F"){ mainTL.hintLevel2.Hint6.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "G"){ mainTL.hintLevel2.Hint7.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "H"){ mainTL.hintLevel2.Hint8.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "I"){ mainTL.hintLevel2.Hint9.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "J"){ mainTL.hintLevel2.Hint10.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "K"){ mainTL.hintLevel2.Hint11.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "L"){ mainTL.hintLevel2.Hint12.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "M"){ mainTL.hintLevel2.Hint13.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "N"){ mainTL.hintLevel2.Hint14.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "O"){ mainTL.hintLevel2.Hint15.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "P"){ mainTL.hintLevel2.Hint16.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "Q"){ mainTL.hintLevel2.Hint17.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "R"){ mainTL.hintLevel2.Hint18.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "S"){ mainTL.hintLevel2.Hint19.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "T"){ mainTL.hintLevel2.Hint20.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "U"){ mainTL.hintLevel2.Hint21.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "V"){ mainTL.hintLevel2.Hint22.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "W"){ mainTL.hintLevel2.Hint23.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "X"){ mainTL.hintLevel2.Hint24.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "Y"){ mainTL.hintLevel2.Hint25.alpha = 1; } else { if (qArray[theQ][ansArray[theQ]] == "Z"){ mainTL.hintLevel2.Hint26.alpha = 1; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; if (((((mainTL.isPractice) || ((mainTL.practiceMode[1] == 1)))) && ((qNo > 2)))){ if (!mainTL.isPractice){ mainTL.practiceMode[1] = 0; }; mainTL.hintLevel2.visible = false; }; mainTL.qText.text = String((qNo + 1)); gameState = NEW_Q; } protected function oMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.3)) ? _arg1.cost : 10000); } function onNextGame(_arg1:MouseEvent){ cleanUp(); } function cleanUp(){ mainTL.eraser.removeEventListener(MouseEvent.CLICK, onEraser); timer.removeEventListener(TimerEvent.TIMER, fadeDrawing); mg.removeEventListener(GestureEvent.GESTURE_MATCH, matchHandler); mg.removeEventListener(GestureEvent.NO_MATCH, noMatchHandler); mg.removeEventListener(GestureEvent.START_CAPTURE, startHandler); mg.removeEventListener(GestureEvent.STOP_CAPTURE, stopHandler); DrawMc.removeEventListener(MouseEvent.MOUSE_OVER, HideMouse); DrawMc.removeEventListener(MouseEvent.MOUSE_OUT, ShowMouse); DrawMc.removeEventListener(MouseEvent.MOUSE_MOVE, DragMouse); removeEventListener(Event.ENTER_FRAME, Update); if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; if (scoreWin){ mainTL.removeChild(scoreWin); }; mainTL.allowQuit = true; if (mainTL.time2Quit){ mainTL.gotoAndStop("mainMenu"); mainTL.time2Quit = false; if (mainTL.isMusic){ if (mainTL.musicChannel){ mainTL.musicChannel.stop(); }; mainTL.musicChannel = mainTL.bgMusic1.play(0, int.MAX_VALUE); mainTL.musicChannel.soundTransform = mainTL.musicTransform; }; } else { mainTL.nextGame(); }; } protected function stopHandler(_arg1:GestureEvent):void{ if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; removeEventListener(Event.ENTER_FRAME, capturingHandler); } public function Update(_arg1:Event):void{ var seconds:uint; var e = _arg1; if (mainTL.time2Quit){ cleanUp(); }; curTime = (getTimer() - lastTime); lastTime = (lastTime + curTime); lastSecond = Math.floor((levelTime / 1000)); levelTime = (levelTime + curTime); seconds = Math.floor((levelTime / 1000)); if (gameState != TIME_UP){ mainTL.timeText.text = String(((gameTime / 1000) - Math.floor((levelTime / 1000)))); }; if ((((((((gameTime / 1000) - seconds) <= 5)) && ((((gameTime / 1000) - seconds) >= 1)))) && (!((seconds == lastSecond))))){ mainTL.playIt(mainTL.tickSound); }; if (((!(mainTL.isSound)) && (pencilChannel))){ pencilChannel.stop(); pencilChannel = null; }; if ((((levelTime > gameTime)) && (!((gameState == TIME_UP))))){ if (scoreWin){ return; }; gameState = TIME_UP; mainTL.allowQuit = false; if (pencilChannel){ pencilChannel.stop(); pencilChannel = null; }; mainTL.playIt(mainTL.endSound); scoreWin = new ScoreWindow(); scoreWin.x = 125; scoreWin.y = 280; (scoreWin as ScoreWindow).inside.scoreNos.qAsked.text = String(qNo); (scoreWin as ScoreWindow).inside.nextButton.addEventListener(MouseEvent.CLICK, onNextGame); (scoreWin as ScoreWindow).inside.quitButton.addEventListener(MouseEvent.CLICK, onQuitGame); if (mainTL.isPractice){ mainTL.isPractice = false; (scoreWin as ScoreWindow).inside.nextButton.visible = false; (scoreWin as ScoreWindow).inside.quitButton.x = ((scoreWin as ScoreWindow).inside.quitButton.x - 70); }; (scoreWin as ScoreWindow).inside.scoreNos.qAns.text = String(ansOk); if (qNo){ (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = String(Math.round((((ansOk * 10) + (((ansOk / qNo) * ansOk) * 10)) + (((levelTime / 60000) * ansOk) * 10)))); } else { (scoreWin as ScoreWindow).inside.scoreNos.testScore.text = "0"; }; mainTL.gameScore = (mainTL.gameScore + int((scoreWin as ScoreWindow).inside.scoreNos.testScore.text)); (scoreWin as ScoreWindow).inside.scoreNos.brainScore.text = String(mainTL.gameScore); mainTL.addChild(scoreWin); Tweener.addTween(scoreWin, {y:75, time:1, onStart:function (){ this.scaleX = 0.9; this.scaleY = 0.9; }}); Tweener.addTween(scoreWin, {x:90, scaleX:1, scaleY:1, transition:"easeInSine", time:0.5, delay:0.5}); }; if (gameState == ANS_WAIT){ waitTime = (waitTime + curTime); if (waitTime > 1500){ gameState = ANS_WRONG; qNo++; Tweener.removeTweens(tickMc); Tweener.removeTweens(crossMc); crossMc.anim.gotoAndStop(1); Tweener.addTween(crossMc, {alpha:1, time:0.1, onStart:function (){ tickMc.alpha = 0; }, onComplete:function (){ this.anim.gotoAndPlay(2); }}); Tweener.addTween(crossMc, {alpha:0, delay:2.1, time:0.75}); if (comboCount > 0){ comboCount = -1; } else { comboCount--; }; if (comboCount == -1){ mainTL.playIt(mainTL.wrong1Sound); } else { if (comboCount < -1){ mainTL.playIt(mainTL.wrong2Sound); }; }; if (comboCount == -2){ gameTime = (gameTime - 2000); Tweener.removeTweens(mainTL.timeRemove); mainTL.timeRemove.alpha = 1; mainTL.timeRemove.y = -6; Tweener.addTween(mainTL.timeRemove, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeRemove, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.falseText.text = (qNo - ansOk); ChangeQ(""); }; }; } protected function sMatch(_arg1:Object):uint{ var _local2:int; _local2 = _arg1.moves.join("").indexOf("111"); return (((_local2 > -1)) ? _arg1.cost : 10000); } public function Cmp(_arg1:uint):Boolean{ if ((((((((((((lastQ.length == 5)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))) && (!((lastQ[4] == _arg1))))){ return (true); }; if ((((((((((lastQ.length == 4)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))) && (!((lastQ[3] == _arg1))))){ return (true); }; if ((((((((lastQ.length == 3)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))) && (!((lastQ[2] == _arg1))))){ return (true); }; if ((((((lastQ.length == 2)) && (!((lastQ[0] == _arg1))))) && (!((lastQ[1] == _arg1))))){ return (true); }; if ((((lastQ.length == 1)) && (!((lastQ[0] == _arg1))))){ return (true); }; return (false); } protected function pMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.7)) ? _arg1.cost : 10000); } protected function capturingHandler(_arg1:Event):void{ DrawMc.Zone.graphics.lineTo((mouseX - DrawMc.x), (mouseY - DrawMc.y)); } function onEraser(_arg1:MouseEvent){ if (gameState == ANS_WAIT){ ansText.text = ansText.text.substr(0, (ansText.text.length - 1)); mainTL.playIt(mainTL.eraseSound); gameState = NEW_Q; }; } protected function ShowMouse(_arg1:MouseEvent):void{ Mouse.show(); } protected function gMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.3)) ? _arg1.cost : 10000); } protected function DragMouse(_arg1:MouseEvent):void{ DrawMc.Cursor.x = (mouseX - DrawMc.x); DrawMc.Cursor.y = (mouseY - DrawMc.y); } protected function dMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 > 0.8)) ? _arg1.cost : 10000); } private function checkAns():Boolean{ var _local1:Boolean; var _local2:int; _local1 = false; _local2 = 0; while (_local2 < ansText.text.length) { if (ansText.text.charAt(_local2) == qArray[theQ][ansArray[theQ]].charAt(_local2)){ _local1 = true; } else { _local1 = false; }; if (!_local1){ break; }; _local2++; }; return (_local1); } protected function matchHandler(_arg1:GestureEvent):void{ var e = _arg1; timer.start(); if (gameState == NEW_Q){ qMark.alpha = 0; if (e.datas != "BACKSPACE"){ ansText.appendText(e.datas); } else { ansText.text = ansText.text.substr(0, (ansText.text.length - 1)); mainTL.playIt(mainTL.eraseSound); }; if (checkAns()){ if (ansText.text.length == ansLength){ gameState = ANS_OK; qNo++; ansOk++; Tweener.removeTweens(tickMc); Tweener.removeTweens(crossMc); tickMc.anim.gotoAndStop(1); Tweener.addTween(tickMc, {alpha:1, time:0.1, onStart:function (){ crossMc.alpha = 0; }, onComplete:function (){ this.anim.gotoAndPlay(2); }}); Tweener.addTween(tickMc, {alpha:0, delay:2.1, time:0.75}); if (comboCount < 0){ comboCount = 1; } else { comboCount++; }; if (comboCount < 3){ mainTL.playIt(mainTL.ok1Sound); } else { mainTL.playIt(mainTL.ok2Sound); }; if (comboCount == 3){ gameTime = (gameTime + 2000); Tweener.removeTweens(mainTL.timeAdd); mainTL.timeAdd.alpha = 1; mainTL.timeAdd.y = -5; Tweener.addTween(mainTL.timeAdd, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeAdd, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.scoreText.text = ansOk; ChangeQ(e.datas); }; } else { if (ansText.text.length == ansLength){ gameState = ANS_WAIT; mainTL.playIt(mainTL.waitSound); waitTime = 0; }; }; } else { if (gameState == ANS_WAIT){ if (e.datas == "BACKSPACE"){ ansText.text = ansText.text.substr(0, (ansText.text.length - 1)); mainTL.playIt(mainTL.eraseSound); gameState = NEW_Q; return; }; ansText.text = e.datas; gameState = NEW_Q; if (checkAns()){ if (ansText.text.length == ansLength){ gameState = ANS_OK; qNo++; ansOk++; Tweener.removeTweens(tickMc); Tweener.removeTweens(crossMc); tickMc.anim.gotoAndStop(1); Tweener.addTween(tickMc, {alpha:1, time:0.1, onStart:function (){ crossMc.alpha = 0; }, onComplete:function (){ this.anim.gotoAndPlay(2); }}); Tweener.addTween(tickMc, {alpha:0, delay:2.1, time:0.75}); if (comboCount < 0){ comboCount = 1; } else { comboCount++; }; if (comboCount < 3){ mainTL.playIt(mainTL.ok1Sound); } else { mainTL.playIt(mainTL.ok2Sound); }; if (comboCount == 3){ gameTime = (gameTime + 2000); Tweener.removeTweens(mainTL.timeAdd); mainTL.timeAdd.alpha = 1; mainTL.timeAdd.y = -5; Tweener.addTween(mainTL.timeAdd, {alpha:0, transition:"easeInExpo", time:3.5}); Tweener.addTween(mainTL.timeAdd, {y:6, transition:"easeOutBack", time:1}); comboCount = 0; }; mainTL.scoreText.text = ansOk; ChangeQ(e.datas); }; } else { gameState = ANS_WAIT; mainTL.playIt(mainTL.waitSound); waitTime = 0; }; }; }; } protected function qMatch(_arg1:Object):uint{ var _local2:Number; _local2 = ((_arg1.lastPoint.y - _arg1.rect.y) / _arg1.rect.height); return (((_local2 < 0.3)) ? _arg1.cost : 10000); } public function onQuitGame(_arg1:MouseEvent):void{ mainTL.time2Quit = true; cleanUp(); } } }//package

Library Items

Symbol 1 Sound {SoundWrong1}Used by:180
Symbol 2 GraphicUsed by:17
Symbol 3 GraphicUsed by:12
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClipUses:4Used by:12
Symbol 6 GraphicUsed by:12
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:12
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClipUses:9Used by:12
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClipUses:3 5 6 8 10 11Used by:17 423
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClipUses:13Used by:17
Symbol 15 MovieClipUsed by:17 423 622
Symbol 16 GraphicUsed by:17 423 622
Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259}Uses:12 14 15 16 2Used by:55
Symbol 18 FontUsed by:19 370 436 601 608 623 631 642
Symbol 19 TextUses:18Used by:55
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClipUses:20Used by:22
Symbol 22 MovieClipUses:21Used by:34
Symbol 23 GraphicUsed by:25
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClipUses:23 24Used by:34
Symbol 26 GraphicUsed by:28
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClipUses:26 27Used by:34
Symbol 29 GraphicUsed by:32
Symbol 30 GraphicUsed by:32 299 512
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClipUses:29 30 31Used by:34
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClipUses:22 25 28 32 33Used by:55
Symbol 35 GraphicUsed by:38 41 42 43 44 344 347 350 353 356 359 362 365 368 369 515 518 521 524 527 530 533 536 539 542 545 546 549 552 555 558 561 564 567 570 573 576 579 582 585 588
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:38 369 546
Symbol 38 MovieClipUses:35 37Used by:54 644
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClipUses:39Used by:41 42 43 44 475
Symbol 41 MovieClipUses:35 40Used by:54 644
Symbol 42 MovieClipUses:35 40Used by:54 644
Symbol 43 MovieClipUses:35 40Used by:54 644
Symbol 44 MovieClipUses:35 40Used by:54 644
Symbol 45 FontUsed by:46 47 48 49 50 187 188 189 190 192 193 194 195 196 205 208 279 289 291 295 296 300 301 302 303 304 324 471 480 482 486 489 491 493 495 502 506 602 646 657 670 671 692 694 696
Symbol 46 TextUses:45Used by:54
Symbol 47 TextUses:45Used by:54
Symbol 48 TextUses:45Used by:54
Symbol 49 TextUses:45Used by:54
Symbol 50 TextUses:45Used by:54
Symbol 51 GraphicUsed by:53 474
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClipUses:51 52Used by:54 55 371 477 589 606 607 609 625 632 643 644
Symbol 54 MovieClipUses:38 41 42 43 44 46 47 48 49 50 53Used by:55
Symbol 55 MovieClip {MeezLevel}Uses:17 19 34 54 53Used by:Timeline
Symbol 56 BitmapUsed by:57
Symbol 57 GraphicUses:56Used by:64
Symbol 58 BitmapUsed by:59
Symbol 59 GraphicUses:58Used by:64
Symbol 60 BitmapUsed by:61
Symbol 61 GraphicUses:60Used by:64
Symbol 62 BitmapUsed by:63
Symbol 63 GraphicUses:62Used by:64
Symbol 64 MovieClip {BrainTest_fla.loadingLogo_17}Uses:57 59 61 63Used by:85
Symbol 65 GraphicUsed by:66 307
Symbol 66 MovieClipUses:65Used by:80
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67Used by:78
Symbol 69 GraphicUsed by:78
Symbol 70 GraphicUsed by:71
Symbol 71 MovieClipUses:70Used by:78
Symbol 72 GraphicUsed by:78
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClipUses:73Used by:78
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:78
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:68 69 71 72 74 76 77Used by:79
Symbol 79 MovieClip {BrainTest_fla.innerLoadingBar_11}Uses:78Used by:80
Symbol 80 MovieClip {BrainTest_fla.loadingBar_9}Uses:79 66Used by:85
Symbol 81 FontUsed by:82 325 645 648 649 651 652 653
Symbol 82 EditableTextUses:81 420Used by:83
Symbol 83 MovieClip {BrainTest_fla.loadingPct_8}Uses:82Used by:85
Symbol 84 MovieClipUsed by:85
Symbol 85 MovieClip {loader.LoaderScreen}Uses:64 80 83 84Used by:Timeline
Symbol 86 GraphicUsed by:87 96 183 186 288 310 314 317 320 323 656 661 669 676 679 682 685 688 691
Symbol 87 MovieClipUses:86Used by:91 94
Symbol 88 GraphicUsed by:91 94 96 183 186 288 310 314 317 320 323 656 661 669 676 679 682 685 688 691
Symbol 89 GraphicUsed by:91 94 96 183 186 288 310 314 317 320 323 656 661 669 676 679 682 685 688 691
Symbol 90 GraphicUsed by:91 94 96 183 186 288 310 314 317 320 323 656 661 669 676 679 682 685 688 691
Symbol 91 MovieClipUses:87 88 89 90Used by:96 183 186 288 307 310 314 317 320 323 656 661 669 676 679 682 685 688 691
Symbol 92 FontUsed by:93 95 181 182 184 185 286 287 305 306 308 309 312 313 315 316 318 319 321 322 654 655 659 660 667 668 674 675 677 678 680 681 683 684 686 687 689 690
Symbol 93 TextUses:92Used by:96
Symbol 94 MovieClipUses:87 88 89 90Used by:96 183 186 288 307 310 314 317 320 323 656 661 669 676 679 682 685 688 691
Symbol 95 TextUses:92Used by:96
Symbol 96 ButtonUses:91 93 94 95 90 89 88 86Used by:Timeline
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClipUses:97Used by:Timeline
Symbol 99 GraphicUsed by:Timeline
Symbol 100 BitmapUsed by:109
Symbol 101 BitmapUsed by:109
Symbol 102 BitmapUsed by:109
Symbol 103 BitmapUsed by:109
Symbol 104 BitmapUsed by:109
Symbol 105 BitmapUsed by:109
Symbol 106 BitmapUsed by:109
Symbol 107 BitmapUsed by:109
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:100 101 102 103 104 105 106 107 108Used by:Timeline
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClip {FireBlob}Uses:110Used by:Timeline
Symbol 112 GraphicUsed by:114 116 150 164
Symbol 113 GraphicUsed by:114
Symbol 114 MovieClip {GreenO}Uses:112 113Used by:Timeline
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClip {RedO}Uses:112 115Used by:Timeline
Symbol 117 GraphicUsed by:121
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:118Used by:121
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClip {Heart}Uses:117 119 120Used by:Timeline
Symbol 122 GraphicUsed by:125
Symbol 123 GraphicUsed by:125
Symbol 124 GraphicUsed by:125
Symbol 125 MovieClip {Triangle}Uses:122 123 124Used by:Timeline
Symbol 126 GraphicUsed by:129
Symbol 127 GraphicUsed by:129
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClip {Star}Uses:126 127 128Used by:Timeline
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClip {Square}Uses:130Used by:Timeline
Symbol 132 GraphicUsed by:134 136 138
Symbol 133 GraphicUsed by:134
Symbol 134 MovieClip {Flower}Uses:132 133Used by:Timeline
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClipUses:132 135Used by:138
Symbol 137 GraphicUsed by:138
Symbol 138 MovieClip {Sphere}Uses:136 132 137Used by:Timeline
Symbol 139 GraphicUsed by:148
Symbol 140 GraphicUsed by:148
Symbol 141 GraphicUsed by:148
Symbol 142 GraphicUsed by:148
Symbol 143 GraphicUsed by:148
Symbol 144 GraphicUsed by:148
Symbol 145 GraphicUsed by:148
Symbol 146 GraphicUsed by:148
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClip {BrainTest_fla.Tick_50}Uses:139 140 141 142 143 144 145 146 147Used by:150
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClip {mcTick}Uses:148 112 149Used by:Timeline
Symbol 151 GraphicUsed by:161 162
Symbol 152 GraphicUsed by:161 162
Symbol 153 GraphicUsed by:162
Symbol 154 GraphicUsed by:162
Symbol 155 GraphicUsed by:162
Symbol 156 GraphicUsed by:162
Symbol 157 GraphicUsed by:161
Symbol 158 GraphicUsed by:161
Symbol 159 GraphicUsed by:161
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClip {BrainTest_fla.Cross2_48}Uses:151 152 157 158 159 160Used by:162
Symbol 162 MovieClip {BrainTest_fla.Cross_47}Uses:151 152 153 154 155 156 161Used by:164
Symbol 163 GraphicUsed by:164
Symbol 164 MovieClip {mcCross}Uses:162 112 163Used by:Timeline
Symbol 165 GraphicUsed by:180
Symbol 166 Sound {Music2}Used by:180
Symbol 167 Sound {Music1}Used by:180
Symbol 168 Sound {SoundMouse}Used by:180
Symbol 169 Sound {SoundDrop}Used by:180
Symbol 170 Sound {SoundPick}Used by:180
Symbol 171 Sound {SoundOk2}Used by:180
Symbol 172 Sound {SoundOk1}Used by:180
Symbol 173 Sound {SoundWrong2}Used by:180
Symbol 174 Sound {SoundWait}Used by:180
Symbol 175 Sound {SoundEnd}Used by:180
Symbol 176 Sound {SoundErase}Used by:180
Symbol 177 Sound {SoundStart}Used by:180
Symbol 178 Sound {SoundTick}Used by:180
Symbol 179 Sound {PencilLoop}Used by:180
Symbol 180 MovieClip {BrainTest_fla.SoundsLoader_45}Uses:165 166 167 168 169 170 171 172 173 1 174 175 176 177 178 179Used by:Timeline
Symbol 181 TextUses:92Used by:183
Symbol 182 TextUses:92Used by:183
Symbol 183 ButtonUses:94 181 91 182 90 89 88 86Used by:203
Symbol 184 TextUses:92Used by:186
Symbol 185 TextUses:92Used by:186
Symbol 186 ButtonUses:94 184 91 185 90 89 88 86Used by:203
Symbol 187 EditableTextUses:45Used by:191
Symbol 188 EditableTextUses:45Used by:191
Symbol 189 EditableTextUses:45Used by:191
Symbol 190 EditableTextUses:45Used by:191
Symbol 191 MovieClip {BrainTest_fla.ScoreNos_42}Uses:187 188 189 190Used by:203
Symbol 192 TextUses:45Used by:197
Symbol 193 TextUses:45Used by:197
Symbol 194 TextUses:45Used by:197
Symbol 195 TextUses:45Used by:197
Symbol 196 TextUses:45Used by:197
Symbol 197 MovieClipUses:192 193 194 195 196Used by:203
Symbol 198 GraphicUsed by:199
Symbol 199 MovieClipUses:198Used by:203 606
Symbol 200 GraphicUsed by:202
Symbol 201 GraphicUsed by:202
Symbol 202 MovieClipUses:200 201Used by:203 266 311
Symbol 203 MovieClip {BrainTest_fla.InsideScoreWin_38}Uses:183 186 191 197 199 202Used by:204
Symbol 204 MovieClip {ScoreWindow}Uses:203Used by:Timeline
Symbol 205 TextUses:45Used by:206
Symbol 206 MovieClipUses:205Used by:207
Symbol 207 MovieClip {TimeBonus}Uses:206Used by:Timeline
Symbol 208 TextUses:45Used by:209
Symbol 209 MovieClipUses:208Used by:210
Symbol 210 MovieClip {TimeRemove}Uses:209Used by:Timeline
Symbol 211 MovieClip {fl.controls.Button}Used by:Timeline
Symbol 212 BitmapUsed by:213
Symbol 213 GraphicUses:212Used by:214
Symbol 214 MovieClip {ArrowUp}Uses:213Used by:Timeline
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:217
Symbol 217 MovieClip {ArrowRight}Uses:216Used by:Timeline
Symbol 218 BitmapUsed by:219
Symbol 219 GraphicUses:218Used by:220
Symbol 220 MovieClip {ArrowNil}Uses:219Used by:Timeline
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:223
Symbol 223 MovieClip {ArrowLeft}Uses:222Used by:Timeline
Symbol 224 BitmapUsed by:225
Symbol 225 GraphicUses:224Used by:226
Symbol 226 MovieClip {ArrowDown}Uses:225Used by:Timeline
Symbol 227 BitmapUsed by:229
Symbol 228 BitmapUsed by:229 232 235
Symbol 229 GraphicUses:227 228Used by:230
Symbol 230 MovieClip {Count3}Uses:229Used by:Timeline
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231 228Used by:233
Symbol 233 MovieClip {Count2}Uses:232Used by:Timeline
Symbol 234 BitmapUsed by:235
Symbol 235 GraphicUses:234 228Used by:236
Symbol 236 MovieClip {Count1}Uses:235Used by:Timeline
Symbol 237 FontUsed by:238 242 244 246
Symbol 238 TextUses:237Used by:241
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:241 243 245 247
Symbol 241 MovieClip {BoxPlus}Uses:238 240Used by:609  Timeline
Symbol 242 TextUses:237Used by:243
Symbol 243 MovieClip {BoxMPly}Uses:242 240Used by:609  Timeline
Symbol 244 TextUses:237Used by:245
Symbol 245 MovieClip {BoxMinus}Uses:244 240Used by:609  Timeline
Symbol 246 TextUses:237Used by:247
Symbol 247 MovieClip {BoxDiv}Uses:246 240Used by:609  Timeline
Symbol 248 FontUsed by:249 251 262 673
Symbol 249 TextUses:248Used by:250
Symbol 250 MovieClip {QMark}Uses:249Used by:Timeline
Symbol 251 TextUses:248Used by:252
Symbol 252 MovieClip {BrainTest_fla.invalidUserMessage_71}Uses:251Used by:266
Symbol 253 GraphicUsed by:255
Symbol 254 GraphicUsed by:255
Symbol 255 ButtonUses:253 254Used by:266
Symbol 256 GraphicUsed by:259 271 610
Symbol 257 GraphicUsed by:259
Symbol 258 GraphicUsed by:259
Symbol 259 ButtonUses:256 257 258Used by:266
Symbol 260 GraphicUsed by:261
Symbol 261 ButtonUses:260Used by:266
Symbol 262 EditableTextUses:248Used by:266
Symbol 263 GraphicUsed by:266
Symbol 264 GraphicUsed by:265
Symbol 265 MovieClipUses:264Used by:266
Symbol 266 MovieClip {BrainTest_fla.importWindow_66}Uses:252 255 259 261 262 263 265 202Used by:Timeline
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:Timeline
Symbol 269 GraphicUsed by:271
Symbol 270 GraphicUsed by:271
Symbol 271 ButtonUses:256 269 270Used by:Timeline
Symbol 272 GraphicUsed by:Timeline
Symbol 273 MovieClipUsed by:Timeline
Symbol 274 MovieClipUsed by:Timeline
Symbol 275 GraphicUsed by:278
Symbol 276 GraphicUsed by:278
Symbol 277 GraphicUsed by:278
Symbol 278 MovieClipUses:275 276 277Used by:Timeline
Symbol 279 EditableTextUses:45 290Used by:280
Symbol 280 MovieClip {BrainTest_fla.LoadingText_72}Uses:279Used by:Timeline
Symbol 281 BitmapUsed by:282 478
Symbol 282 GraphicUses:281Used by:283
Symbol 283 ButtonUses:282Used by:Timeline
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:Timeline
Symbol 286 TextUses:92Used by:288
Symbol 287 TextUses:92Used by:288
Symbol 288 ButtonUses:91 286 94 287 90 89 88 86Used by:311
Symbol 289 TextUses:45Used by:292
Symbol 290 FontUsed by:279 291 295 300 302 324 480 481 485 488 491 492 493 494 495 496 501 505 508 692 694 695
Symbol 291 EditableTextUses:45 290Used by:292
Symbol 292 MovieClip {BrainTest_fla.NamePrompt_88}Uses:289 291Used by:311
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:293Used by:311
Symbol 295 EditableTextUses:45 290Used by:311
Symbol 296 TextUses:45Used by:311
Symbol 297 GraphicUsed by:299
Symbol 298 GraphicUsed by:299
Symbol 299 MovieClipUses:297 30 298Used by:311  Timeline
Symbol 300 EditableTextUses:45 290Used by:311
Symbol 301 TextUses:45Used by:311
Symbol 302 EditableTextUses:45 290Used by:311
Symbol 303 TextUses:45Used by:311
Symbol 304 TextUses:45Used by:311
Symbol 305 TextUses:92Used by:307
Symbol 306 TextUses:92Used by:307
Symbol 307 ButtonUses:94 305 91 306 65Used by:311
Symbol 308 TextUses:92Used by:310
Symbol 309 TextUses:92Used by:310
Symbol 310 ButtonUses:94 308 91 309 90 89 88 86Used by:311
Symbol 311 MovieClip {SaveWindow}Uses:288 292 294 295 296 299 300 301 302 303 304 307 310 202Used by:Timeline
Symbol 312 TextUses:92Used by:314
Symbol 313 TextUses:92Used by:314
Symbol 314 ButtonUses:91 312 94 313 90 89 88 86Used by:Timeline
Symbol 315 TextUses:92Used by:317
Symbol 316 TextUses:92Used by:317
Symbol 317 ButtonUses:91 315 94 316 90 89 88 86Used by:Timeline
Symbol 318 TextUses:92Used by:320
Symbol 319 TextUses:92Used by:320
Symbol 320 ButtonUses:91 318 94 319 90 89 88 86Used by:Timeline
Symbol 321 TextUses:92Used by:323
Symbol 322 TextUses:92Used by:323
Symbol 323 ButtonUses:91 321 94 322 90 89 88 86Used by:Timeline
Symbol 324 EditableTextUses:45 290Used by:Timeline
Symbol 325 TextUses:81Used by:326
Symbol 326 MovieClipUses:325Used by:327
Symbol 327 MovieClip {BrainTest_fla.TitleAnim_77}Uses:326Used by:Timeline
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:Timeline
Symbol 330 GraphicUsed by:Timeline
Symbol 331 GraphicUsed by:335
Symbol 332 BitmapUsed by:333
Symbol 333 GraphicUses:332Used by:334
Symbol 334 MovieClipUses:333Used by:335  Timeline
Symbol 335 MovieClipUses:334 331Used by:Timeline
Symbol 336 BitmapUsed by:337
Symbol 337 GraphicUses:336Used by:338
Symbol 338 MovieClipUses:337Used by:Timeline
Symbol 339 BitmapUsed by:340
Symbol 340 GraphicUses:339Used by:341
Symbol 341 MovieClipUses:340Used by:Timeline
Symbol 342 GraphicUsed by:343
Symbol 343 MovieClipUses:342Used by:344
Symbol 344 MovieClipUses:35 343Used by:371 475
Symbol 345 GraphicUsed by:346
Symbol 346 MovieClipUses:345Used by:347
Symbol 347 MovieClipUses:35 346Used by:371 475
Symbol 348 GraphicUsed by:349
Symbol 349 MovieClipUses:348Used by:350
Symbol 350 MovieClipUses:35 349Used by:371 475
Symbol 351 GraphicUsed by:352
Symbol 352 MovieClipUses:351Used by:353
Symbol 353 MovieClipUses:35 352Used by:371 475
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClipUses:354Used by:356
Symbol 356 MovieClipUses:35 355Used by:371 475
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClipUses:357Used by:359
Symbol 359 MovieClipUses:35 358Used by:371 475
Symbol 360 GraphicUsed by:361
Symbol 361 MovieClipUses:360Used by:362
Symbol 362 MovieClipUses:35 361Used by:371 475
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClipUses:363Used by:365
Symbol 365 MovieClipUses:35 364Used by:371 475
Symbol 366 GraphicUsed by:367
Symbol 367 MovieClipUses:366Used by:368
Symbol 368 MovieClipUses:35 367Used by:371 475
Symbol 369 MovieClipUses:35 37Used by:371 475
Symbol 370 TextUses:18Used by:371 589 644
Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175}Uses:344 347 350 353 356 359 362 365 368 369 370 53Used by:Timeline
Symbol 372 GraphicUsed by:373 418
Symbol 373 MovieClipUses:372Used by:418
Symbol 374 GraphicUsed by:377 417
Symbol 375 GraphicUsed by:376 417
Symbol 376 MovieClipUses:375Used by:377
Symbol 377 MovieClipUses:376 374Used by:399
Symbol 378 GraphicUsed by:381 417
Symbol 379 GraphicUsed by:380 417
Symbol 380 MovieClipUses:379Used by:381
Symbol 381 MovieClipUses:380 378Used by:399
Symbol 382 GraphicUsed by:399 417
Symbol 383 GraphicUsed by:386 417
Symbol 384 GraphicUsed by:385 417
Symbol 385 MovieClipUses:384Used by:386
Symbol 386 MovieClipUses:385 383Used by:399
Symbol 387 GraphicUsed by:390 417
Symbol 388 GraphicUsed by:389 417
Symbol 389 MovieClipUses:388Used by:390
Symbol 390 MovieClipUses:389 387Used by:399
Symbol 391 GraphicUsed by:394 417
Symbol 392 GraphicUsed by:393 417
Symbol 393 MovieClipUses:392Used by:394
Symbol 394 MovieClipUses:393 391Used by:399
Symbol 395 GraphicUsed by:398 417
Symbol 396 GraphicUsed by:397 417
Symbol 397 MovieClipUses:396Used by:398
Symbol 398 MovieClipUses:397 395Used by:399
Symbol 399 MovieClipUses:377 381 382 386 390 394 398Used by:417
Symbol 400 GraphicUsed by:417
Symbol 401 GraphicUsed by:402 417
Symbol 402 MovieClipUses:401Used by:417
Symbol 403 GraphicUsed by:417
Symbol 404 GraphicUsed by:405 417
Symbol 405 MovieClipUses:404Used by:417
Symbol 406 GraphicUsed by:417
Symbol 407 GraphicUsed by:408 409 417
Symbol 408 MovieClipUses:407Used by:417
Symbol 409 MovieClipUses:407Used by:417
Symbol 410 GraphicUsed by:411 412 417
Symbol 411 MovieClipUses:410Used by:417
Symbol 412 MovieClipUses:410Used by:417
Symbol 413 GraphicUsed by:414 417
Symbol 414 MovieClipUses:413Used by:417
Symbol 415 GraphicUsed by:416 417
Symbol 416 MovieClipUses:415Used by:417
Symbol 417 ButtonUses:399 400 402 403 405 406 408 409 411 412 414 416 395 396 391 392 387 388 383 384 382 378 379 374 375 401 404 407 410 413 415Used by:418
Symbol 418 ButtonUses:373 417 372Used by:Timeline
Symbol 419 GraphicUsed by:423
Symbol 420 FontUsed by:82 421 590 591 592 593 594 596 597 598 599 600 620
Symbol 421 TextUses:420Used by:422
Symbol 422 MovieClipUses:421Used by:423
Symbol 423 MovieClip {BrainTest_fla.drawMc_144}Uses:12 422 15 16 419Used by:477 607
Symbol 424 FontUsed by:425 426 427 428 429 431 432 433 434 435 611 612 613 614 615
Symbol 425 EditableTextUses:424Used by:430
Symbol 426 EditableTextUses:424Used by:430
Symbol 427 EditableTextUses:424Used by:430
Symbol 428 EditableTextUses:424Used by:430
Symbol 429 EditableTextUses:424Used by:430
Symbol 430 MovieClip {BrainTest_fla.LastAnswer1_143}Uses:425 426 427 428 429Used by:477 625
Symbol 431 EditableTextUses:424Used by:477
Symbol 432 EditableTextUses:424Used by:477
Symbol 433 EditableTextUses:424Used by:477
Symbol 434 EditableTextUses:424Used by:477
Symbol 435 EditableTextUses:424Used by:477
Symbol 436 TextUses:18Used by:477
Symbol 437 GraphicUsed by:438
Symbol 438 MovieClipUses:437Used by:477 607 625
Symbol 439 GraphicUsed by:440
Symbol 440 MovieClipUses:439Used by:477 607 625
Symbol 441 GraphicUsed by:442
Symbol 442 MovieClipUses:441Used by:477 607 625
Symbol 443 GraphicUsed by:444
Symbol 444 MovieClipUses:443Used by:477 607 625
Symbol 445 GraphicUsed by:446
Symbol 446 MovieClipUses:445Used by:477 607 625
Symbol 447 GraphicUsed by:448
Symbol 448 MovieClipUses:447Used by:477 607 625
Symbol 449 GraphicUsed by:450
Symbol 450 MovieClipUses:449Used by:477 607 625
Symbol 451 GraphicUsed by:452 457
Symbol 452 MovieClipUses:451Used by:477 607 625
Symbol 453 GraphicUsed by:454 458
Symbol 454 MovieClipUses:453Used by:477 607 625
Symbol 455 GraphicUsed by:456
Symbol 456 MovieClipUses:455Used by:477 607 625
Symbol 457 MovieClipUses:451Used by:477 607 625
Symbol 458 MovieClipUses:453Used by:477 607 625
Symbol 459 GraphicUsed by:460
Symbol 460 MovieClipUses:459Used by:477 607 625
Symbol 461 GraphicUsed by:462
Symbol 462 MovieClipUses:461Used by:477 607 625
Symbol 463 GraphicUsed by:477 607 625
Symbol 464 GraphicUsed by:465
Symbol 465 MovieClipUses:464Used by:477 607 625
Symbol 466 GraphicUsed by:467
Symbol 467 MovieClipUses:466Used by:477 607 625
Symbol 468 GraphicUsed by:477 607 625
Symbol 469 GraphicUsed by:470
Symbol 470 MovieClipUses:469Used by:477 607 625
Symbol 471 TextUses:45Used by:475
Symbol 472 GraphicUsed by:475
Symbol 473 GraphicUsed by:474
Symbol 474 MovieClipUses:51 473Used by:475
Symbol 475 MovieClipUses:344 347 350 353 356 359 362 365 368 369 471 472 40 474Used by:477
Symbol 476 GraphicUsed by:477 607
Symbol 477 MovieClip {Math1Level}Uses:423 430 431 432 433 434 435 436 53 438 440 442 444 446 448 450 452 454 456 457 458 460 462 463 465 467 468 470 475 476Used by:Timeline
Symbol 478 GraphicUses:281Used by:479
Symbol 479 ButtonUses:478Used by:Timeline
Symbol 480 EditableTextUses:45 290Used by:Timeline
Symbol 481 TextUses:290Used by:484
Symbol 482 TextUses:45Used by:484
Symbol 483 GraphicUsed by:484 487 490
Symbol 484 ButtonUses:481 482 483Used by:Timeline
Symbol 485 TextUses:290Used by:487
Symbol 486 TextUses:45Used by:487
Symbol 487 ButtonUses:485 486 483Used by:Timeline
Symbol 488 TextUses:290Used by:490
Symbol 489 TextUses:45Used by:490
Symbol 490 ButtonUses:488 489 483Used by:Timeline
Symbol 491 EditableTextUses:45 290Used by:Timeline
Symbol 492 TextUses:290Used by:Timeline
Symbol 493 EditableTextUses:45 290Used by:Timeline
Symbol 494 TextUses:290Used by:Timeline
Symbol 495 EditableTextUses:45 290Used by:Timeline
Symbol 496 TextUses:290Used by:Timeline
Symbol 497 GraphicUsed by:498
Symbol 498 MovieClipUses:497Used by:Timeline
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:499Used by:Timeline
Symbol 501 TextUses:290Used by:504
Symbol 502 TextUses:45Used by:504
Symbol 503 GraphicUsed by:504 507
Symbol 504 ButtonUses:501 502 503Used by:Timeline
Symbol 505 TextUses:290Used by:507
Symbol 506 TextUses:45Used by:507
Symbol 507 ButtonUses:505 506 503Used by:Timeline
Symbol 508 TextUses:290Used by:Timeline
Symbol 509 FontUsed by:510
Symbol 510 EditableTextUses:509Used by:Timeline
Symbol 511 GraphicUsed by:Timeline
Symbol 512 MovieClipUses:30Used by:Timeline
Symbol 513 GraphicUsed by:514
Symbol 514 MovieClipUses:513Used by:515
Symbol 515 MovieClipUses:35 514Used by:589 606
Symbol 516 GraphicUsed by:517
Symbol 517 MovieClipUses:516Used by:518
Symbol 518 MovieClipUses:35 517Used by:589 606
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClipUses:519Used by:521
Symbol 521 MovieClipUses:35 520Used by:589 606
Symbol 522 GraphicUsed by:523
Symbol 523 MovieClipUses:522Used by:524
Symbol 524 MovieClipUses:35 523Used by:589 606
Symbol 525 GraphicUsed by:526
Symbol 526 MovieClipUses:525Used by:527
Symbol 527 MovieClipUses:35 526Used by:589 606
Symbol 528 GraphicUsed by:529
Symbol 529 MovieClipUses:528Used by:530
Symbol 530 MovieClipUses:35 529Used by:589 606
Symbol 531 GraphicUsed by:532
Symbol 532 MovieClipUses:531Used by:533
Symbol 533 MovieClipUses:35 532Used by:589 606
Symbol 534 GraphicUsed by:535
Symbol 535 MovieClipUses:534Used by:536
Symbol 536 MovieClipUses:35 535Used by:589 606
Symbol 537 GraphicUsed by:538
Symbol 538 MovieClipUses:537Used by:539
Symbol 539 MovieClipUses:35 538Used by:589 606
Symbol 540 GraphicUsed by:541
Symbol 541 MovieClipUses:540Used by:542
Symbol 542 MovieClipUses:35 541Used by:589 606
Symbol 543 GraphicUsed by:544
Symbol 544 MovieClipUses:543Used by:545
Symbol 545 MovieClipUses:35 544Used by:589 606
Symbol 546 MovieClipUses:35 37Used by:589 606
Symbol 547 GraphicUsed by:548
Symbol 548 MovieClipUses:547Used by:549
Symbol 549 MovieClipUses:35 548Used by:589 606
Symbol 550 GraphicUsed by:551
Symbol 551 MovieClipUses:550Used by:552
Symbol 552 MovieClipUses:35 551Used by:589 606
Symbol 553 GraphicUsed by:554
Symbol 554 MovieClipUses:553Used by:555
Symbol 555 MovieClipUses:35 554Used by:589 606
Symbol 556 GraphicUsed by:557
Symbol 557 MovieClipUses:556Used by:558
Symbol 558 MovieClipUses:35 557Used by:589 606
Symbol 559 GraphicUsed by:560
Symbol 560 MovieClipUses:559Used by:561
Symbol 561 MovieClipUses:35 560Used by:589 606
Symbol 562 GraphicUsed by:563
Symbol 563 MovieClipUses:562Used by:564
Symbol 564 MovieClipUses:35 563Used by:589 606
Symbol 565 GraphicUsed by:566
Symbol 566 MovieClipUses:565Used by:567
Symbol 567 MovieClipUses:35 566Used by:589 606
Symbol 568 GraphicUsed by:569
Symbol 569 MovieClipUses:568Used by:570
Symbol 570 MovieClipUses:35 569Used by:589 606
Symbol 571 GraphicUsed by:572
Symbol 572 MovieClipUses:571Used by:573
Symbol 573 MovieClipUses:35 572Used by:589 606
Symbol 574 GraphicUsed by:575
Symbol 575 MovieClipUses:574Used by:576
Symbol 576 MovieClipUses:35 575Used by:589 606
Symbol 577 GraphicUsed by:578
Symbol 578 MovieClipUses:577Used by:579
Symbol 579 MovieClipUses:35 578Used by:589 606
Symbol 580 GraphicUsed by:581
Symbol 581 MovieClipUses:580Used by:582
Symbol 582 MovieClipUses:35 581Used by:589 606
Symbol 583 GraphicUsed by:584
Symbol 584 MovieClipUses:583Used by:585
Symbol 585 MovieClipUses:35 584Used by:589 606
Symbol 586 GraphicUsed by:587
Symbol 587 MovieClipUses:586Used by:588
Symbol 588 MovieClipUses:35 587Used by:589 606
Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231}Uses:515 518 521 524 527 530 533 536 539 542 545 546 549 552 555 558 561 564 567 570 573 576 579 582 585 588 370 53Used by:Timeline
Symbol 590 EditableTextUses:420Used by:595
Symbol 591 EditableTextUses:420Used by:595
Symbol 592 EditableTextUses:420Used by:595
Symbol 593 EditableTextUses:420Used by:595
Symbol 594 EditableTextUses:420Used by:595
Symbol 595 MovieClip {BrainTest_fla.LastAnswer_230}Uses:590 591 592 593 594Used by:607
Symbol 596 EditableTextUses:420Used by:607
Symbol 597 EditableTextUses:420Used by:607
Symbol 598 EditableTextUses:420Used by:607
Symbol 599 EditableTextUses:420Used by:607
Symbol 600 EditableTextUses:420Used by:607
Symbol 601 TextUses:18Used by:607
Symbol 602 TextUses:45Used by:606
Symbol 603 GraphicUsed by:606
Symbol 604 GraphicUsed by:605
Symbol 605 MovieClipUses:604Used by:606
Symbol 606 MovieClipUses:515 518 521 524 527 530 533 536 539 542 545 546 549 552 555 558 561 564 567 570 573 576 579 582 585 588 199 602 603 605 53Used by:607
Symbol 607 MovieClip {WordLevel}Uses:595 596 597 598 599 600 601 423 438 440 442 444 446 448 450 452 454 456 457 458 460 462 463 465 467 468 470 606 53 476Used by:Timeline
Symbol 608 TextUses:18Used by:609
Symbol 609 MovieClip {BrainTest_fla.HintMath2Level_238}Uses:241 608 247 243 245 53Used by:Timeline
Symbol 610 MovieClipUses:256Used by:Timeline
Symbol 611 EditableTextUses:424Used by:625
Symbol 612 EditableTextUses:424Used by:625
Symbol 613 EditableTextUses:424Used by:625
Symbol 614 EditableTextUses:424Used by:625
Symbol 615 EditableTextUses:424Used by:625
Symbol 616 GraphicUsed by:622
Symbol 617 GraphicUsed by:618
Symbol 618 MovieClipUses:617Used by:619
Symbol 619 MovieClipUses:618Used by:622
Symbol 620 TextUses:420Used by:621
Symbol 621 MovieClipUses:620Used by:622
Symbol 622 MovieClip {BrainTest_fla.drawMc2_233}Uses:619 621 15 16 616Used by:625
Symbol 623 TextUses:18Used by:625
Symbol 624 GraphicUsed by:625
Symbol 625 MovieClip {Math2Level}Uses:430 611 612 613 614 615 622 623 438 440 442 444 446 448 450 452 454 456 457 458 460 462 463 465 467 468 470 53 624Used by:Timeline
Symbol 626 GraphicUsed by:630
Symbol 627 GraphicUsed by:628
Symbol 628 MovieClipUses:627Used by:630
Symbol 629 GraphicUsed by:630
Symbol 630 MovieClipUses:628 626 629Used by:632  Timeline
Symbol 631 TextUses:18Used by:632
Symbol 632 MovieClip {BrainTest_fla.HintDirLevel_244}Uses:630 631 53Used by:Timeline
Symbol 633 GraphicUsed by:641
Symbol 634 GraphicUsed by:641
Symbol 635 GraphicUsed by:636
Symbol 636 MovieClipUses:635Used by:641
Symbol 637 BitmapUsed by:638
Symbol 638 GraphicUses:637Used by:641
Symbol 639 BitmapUsed by:640
Symbol 640 GraphicUses:639Used by:641
Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}Uses:633 634 636 638 640Used by:643
Symbol 642 TextUses:18Used by:643
Symbol 643 MovieClip {DirectionLevel}Uses:53 641 642Used by:Timeline
Symbol 644 MovieClip {BrainTest_fla.HintMeezLevel_245}Uses:38 41 42 43 44 370 53Used by:Timeline
Symbol 645 TextUses:81Used by:Timeline
Symbol 646 EditableTextUses:45Used by:647
Symbol 647 MovieClip {BrainTest_fla.ScoreNos3_270}Uses:646Used by:Timeline
Symbol 648 TextUses:81Used by:Timeline
Symbol 649 TextUses:81Used by:650
Symbol 650 MovieClipUses:649Used by:Timeline
Symbol 651 TextUses:81Used by:Timeline
Symbol 652 TextUses:81Used by:Timeline
Symbol 653 TextUses:81Used by:Timeline
Symbol 654 TextUses:92Used by:656
Symbol 655 TextUses:92Used by:656
Symbol 656 ButtonUses:91 654 94 655 90 89 88 86Used by:Timeline
Symbol 657 EditableTextUses:45Used by:658
Symbol 658 MovieClip {BrainTest_fla.ScoreNos4_267}Uses:657Used by:Timeline
Symbol 659 TextUses:92Used by:661
Symbol 660 TextUses:92Used by:661
Symbol 661 ButtonUses:91 659 94 660 90 89 88 86Used by:Timeline
Symbol 662 GraphicUsed by:663 664
Symbol 663 MovieClipUses:662Used by:664
Symbol 664 MovieClip {BrainTest_fla.PlayerLevel_264}Uses:663 662Used by:Timeline
Symbol 665 GraphicUsed by:666
Symbol 666 MovieClipUses:665Used by:Timeline
Symbol 667 TextUses:92Used by:669
Symbol 668 TextUses:92Used by:669
Symbol 669 ButtonUses:91 667 94 668 90 89 88 86Used by:Timeline
Symbol 670 EditableTextUses:45Used by:672
Symbol 671 EditableTextUses:45Used by:672
Symbol 672 MovieClip {BrainTest_fla.ScoreNos2_261}Uses:670 671Used by:Timeline
Symbol 673 TextUses:248Used by:Timeline
Symbol 674 TextUses:92Used by:676
Symbol 675 TextUses:92Used by:676
Symbol 676 ButtonUses:91 674 94 675 90 89 88 86Used by:Timeline
Symbol 677 TextUses:92Used by:679
Symbol 678 TextUses:92Used by:679
Symbol 679 ButtonUses:91 677 94 678 90 89 88 86Used by:Timeline
Symbol 680 TextUses:92Used by:682
Symbol 681 TextUses:92Used by:682
Symbol 682 ButtonUses:91 680 94 681 90 89 88 86Used by:Timeline
Symbol 683 TextUses:92Used by:685
Symbol 684 TextUses:92Used by:685
Symbol 685 ButtonUses:91 683 94 684 90 89 88 86Used by:Timeline
Symbol 686 TextUses:92Used by:688
Symbol 687 TextUses:92Used by:688
Symbol 688 ButtonUses:91 686 94 687 90 89 88 86Used by:Timeline
Symbol 689 TextUses:92Used by:691
Symbol 690 TextUses:92Used by:691
Symbol 691 ButtonUses:91 689 94 690 90 89 88 86Used by:Timeline
Symbol 692 EditableTextUses:45 290Used by:Timeline
Symbol 693 GraphicUsed by:Timeline
Symbol 694 EditableTextUses:45 290Used by:Timeline
Symbol 695 TextUses:290Used by:Timeline
Symbol 696 TextUses:45Used by:Timeline

Instance Names

"meezLoadingScreen"Frame 1Symbol 85 MovieClip {loader.LoaderScreen}
"playButton"Frame 1Symbol 96 Button
"adBox"Frame 1Symbol 98 MovieClip
"importWindow"Frame 15Symbol 266 MovieClip {BrainTest_fla.importWindow_66}
"importButton"Frame 15Symbol 271 Button
"milkmanButton"Frame 15Symbol 273 MovieClip
"guyButton"Frame 15Symbol 274 MovieClip
"status"Frame 30Symbol 280 MovieClip {BrainTest_fla.LoadingText_72}
"sponsorButton"Frame 45Symbol 283 Button
"mcScreen"Frame 45Symbol 285 MovieClip
"saveWindow"Frame 45Symbol 311 MovieClip {SaveWindow}
"scrButton"Frame 45Symbol 314 Button
"creditsButton"Frame 45Symbol 317 Button
"moreButton"Frame 45Symbol 320 Button
"practiceButton"Frame 45Symbol 323 Button
"newGameButton"Frame 45Symbol 96 Button
"Button"Frame 45Symbol 335 MovieClip
"hintLevel1"Frame 55Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175}
"eraser"Frame 55Symbol 418 Button
"sponsorMini"Frame 55Symbol 479 Button
"yesButton"Frame 55Symbol 484 Button
"noButton"Frame 55Symbol 487 Button
"quitButton"Frame 55Symbol 490 Button
"falseText"Frame 55Symbol 491 EditableText
"scoreText"Frame 55Symbol 493 EditableText
"qText"Frame 55Symbol 495 EditableText
"bdOff2"Frame 55Symbol 498 MovieClip
"bdOff1"Frame 55Symbol 498 MovieClip
"bdOn2"Frame 55Symbol 500 MovieClip
"bdOn1"Frame 55Symbol 500 MovieClip
"musicOff"Frame 55Symbol 504 Button
"soundOff"Frame 55Symbol 504 Button
"musicOn"Frame 55Symbol 507 Button
"soundOn"Frame 55Symbol 507 Button
"timeAdd"Frame 55Symbol 207 MovieClip {TimeBonus}
"timeRemove"Frame 55Symbol 210 MovieClip {TimeRemove}
"timeText"Frame 55Symbol 510 EditableText
"hintLevel2"Frame 61Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231}
"eraser"Frame 61Symbol 418 Button
"hintLevel3"Frame 67Symbol 609 MovieClip {BrainTest_fla.HintMath2Level_238}
"hitTestBox"Frame 67Symbol 610 MovieClip
"hintLevel4"Frame 72Symbol 632 MovieClip {BrainTest_fla.HintDirLevel_244}
"HintMc"Frame 72Symbol 630 MovieClip
"hintLevel5"Frame 77Symbol 644 MovieClip {BrainTest_fla.HintMeezLevel_245}
"leveltxt"Frame 82Symbol 647 MovieClip {BrainTest_fla.ScoreNos3_270}
"unlockMsg"Frame 82Symbol 650 MovieClip
"playerRankButton"Frame 82Symbol 656 Button
"totalScore"Frame 82Symbol 658 MovieClip {BrainTest_fla.ScoreNos4_267}
"ssButton"Frame 82Symbol 661 Button
"mScreen"Frame 82Symbol 285 MovieClip
"pLevel"Frame 82Symbol 664 MovieClip {BrainTest_fla.PlayerLevel_264}
"menuButton"Frame 82Symbol 669 Button
"fs"Frame 82Symbol 672 MovieClip {BrainTest_fla.ScoreNos2_261}
"adBox"Frame 90Symbol 98 MovieClip
"BackMenuButton"Frame 90Symbol 676 Button
"WordButton"Frame 90Symbol 679 Button
"AnalyzeButton"Frame 90Symbol 682 Button
"ThinkButton"Frame 90Symbol 685 Button
"Math2Button"Frame 90Symbol 688 Button
"Math1Button"Frame 90Symbol 691 Button
"menuButton"Frame 97Symbol 676 Button
"Cursor"Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259} Frame 1Symbol 12 MovieClip
"bottomXY"Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259} Frame 1Symbol 14 MovieClip
"topXY"Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259} Frame 1Symbol 14 MovieClip
"rightXY"Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259} Frame 1Symbol 14 MovieClip
"leftXY"Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259} Frame 1Symbol 14 MovieClip
"centerXY"Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259} Frame 1Symbol 14 MovieClip
"Zone"Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259} Frame 1Symbol 15 MovieClip
"DrawMc"Symbol 55 MovieClip {MeezLevel} Frame 1Symbol 17 MovieClip {BrainTest_fla.drawMcMeez_259}
"Tabs"Symbol 55 MovieClip {MeezLevel} Frame 1Symbol 54 MovieClip
"LoadPencil"Symbol 79 MovieClip {BrainTest_fla.innerLoadingBar_11} Frame 1Symbol 78 MovieClip
"theMask"Symbol 80 MovieClip {BrainTest_fla.loadingBar_9} Frame 1Symbol 66 MovieClip
"txtPercent"Symbol 83 MovieClip {BrainTest_fla.loadingPct_8} Frame 1Symbol 82 EditableText
"loadingLogo"Symbol 85 MovieClip {loader.LoaderScreen} Frame 1Symbol 64 MovieClip {BrainTest_fla.loadingLogo_17}
"loadingBar"Symbol 85 MovieClip {loader.LoaderScreen} Frame 1Symbol 80 MovieClip {BrainTest_fla.loadingBar_9}
"loadingPct"Symbol 85 MovieClip {loader.LoaderScreen} Frame 1Symbol 83 MovieClip {BrainTest_fla.loadingPct_8}
"anim"Symbol 150 MovieClip {mcTick} Frame 1Symbol 148 MovieClip {BrainTest_fla.Tick_50}
"anim"Symbol 164 MovieClip {mcCross} Frame 1Symbol 162 MovieClip {BrainTest_fla.Cross_47}
"brainScore"Symbol 191 MovieClip {BrainTest_fla.ScoreNos_42} Frame 1Symbol 187 EditableText
"testScore"Symbol 191 MovieClip {BrainTest_fla.ScoreNos_42} Frame 1Symbol 188 EditableText
"qAns"Symbol 191 MovieClip {BrainTest_fla.ScoreNos_42} Frame 1Symbol 189 EditableText
"qAsked"Symbol 191 MovieClip {BrainTest_fla.ScoreNos_42} Frame 1Symbol 190 EditableText
"nextButton"Symbol 203 MovieClip {BrainTest_fla.InsideScoreWin_38} Frame 1Symbol 183 Button
"quitButton"Symbol 203 MovieClip {BrainTest_fla.InsideScoreWin_38} Frame 1Symbol 186 Button
"scoreNos"Symbol 203 MovieClip {BrainTest_fla.InsideScoreWin_38} Frame 1Symbol 191 MovieClip {BrainTest_fla.ScoreNos_42}
"inside"Symbol 204 MovieClip {ScoreWindow} Frame 1Symbol 203 MovieClip {BrainTest_fla.InsideScoreWin_38}
"invalidUserMessage"Symbol 266 MovieClip {BrainTest_fla.importWindow_66} Frame 1Symbol 252 MovieClip {BrainTest_fla.invalidUserMessage_71}
"closeButton"Symbol 266 MovieClip {BrainTest_fla.importWindow_66} Frame 1Symbol 255 Button
"getYourOwnButton"Symbol 266 MovieClip {BrainTest_fla.importWindow_66} Frame 1Symbol 259 Button
"goButton"Symbol 266 MovieClip {BrainTest_fla.importWindow_66} Frame 1Symbol 261 Button
"nameField"Symbol 266 MovieClip {BrainTest_fla.importWindow_66} Frame 1Symbol 262 EditableText
"modalBlocker"Symbol 266 MovieClip {BrainTest_fla.importWindow_66} Frame 1Symbol 265 MovieClip
"txt"Symbol 280 MovieClip {BrainTest_fla.LoadingText_72} Frame 1Symbol 279 EditableText
"txt"Symbol 292 MovieClip {BrainTest_fla.NamePrompt_88} Frame 1Symbol 291 EditableText
"delButton"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 288 Button
"prompt"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 292 MovieClip {BrainTest_fla.NamePrompt_88}
"btn3"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 294 MovieClip
"btn2"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 294 MovieClip
"btn1"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 294 MovieClip
"save1"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 295 EditableText
"hide1"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 299 MovieClip
"save3"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 300 EditableText
"save2"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 302 EditableText
"hide3"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 299 MovieClip
"hide2"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 299 MovieClip
"okButton"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 307 Button
"cancelButton"Symbol 311 MovieClip {SaveWindow} Frame 1Symbol 310 Button
"Hint9"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 344 MovieClip
"Hint8"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 347 MovieClip
"Hint7"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 350 MovieClip
"Hint6"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 353 MovieClip
"Hint5"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 356 MovieClip
"Hint4"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 359 MovieClip
"Hint3"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 362 MovieClip
"Hint2"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 365 MovieClip
"Hint1"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 368 MovieClip
"Hint0"Symbol 371 MovieClip {BrainTest_fla.HintMath1Level_175} Frame 1Symbol 369 MovieClip
"Cursor"Symbol 423 MovieClip {BrainTest_fla.drawMc_144} Frame 1Symbol 12 MovieClip
"drawText"Symbol 423 MovieClip {BrainTest_fla.drawMc_144} Frame 1Symbol 422 MovieClip
"Zone"Symbol 423 MovieClip {BrainTest_fla.drawMc_144} Frame 1Symbol 15 MovieClip
"Q2"Symbol 430 MovieClip {BrainTest_fla.LastAnswer1_143} Frame 1Symbol 425 EditableText
"Q3"Symbol 430 MovieClip {BrainTest_fla.LastAnswer1_143} Frame 1Symbol 426 EditableText
"Q4"Symbol 430 MovieClip {BrainTest_fla.LastAnswer1_143} Frame 1Symbol 427 EditableText
"Q5"Symbol 430 MovieClip {BrainTest_fla.LastAnswer1_143} Frame 1Symbol 428 EditableText
"Q1"Symbol 430 MovieClip {BrainTest_fla.LastAnswer1_143} Frame 1Symbol 429 EditableText
"DrawMc"Symbol 477 MovieClip {Math1Level} Frame 1Symbol 423 MovieClip {BrainTest_fla.drawMc_144}
"lastAns"Symbol 477 MovieClip {Math1Level} Frame 1Symbol 430 MovieClip {BrainTest_fla.LastAnswer1_143}
"Q2"Symbol 477 MovieClip {Math1Level} Frame 1Symbol 431 EditableText
"Q3"Symbol 477 MovieClip {Math1Level} Frame 1Symbol 432 EditableText
"Q4"Symbol 477 MovieClip {Math1Level} Frame 1Symbol 433 EditableText
"Q5"Symbol 477 MovieClip {Math1Level} Frame 1Symbol 434 EditableText
"Q1"Symbol 477 MovieClip {Math1Level} Frame 1Symbol 435 EditableText
"Tabs"Symbol 477 MovieClip {Math1Level} Frame 1Symbol 475 MovieClip
"Hint26"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 515 MovieClip
"Hint25"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 518 MovieClip
"Hint24"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 521 MovieClip
"Hint23"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 524 MovieClip
"Hint22"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 527 MovieClip
"Hint21"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 530 MovieClip
"Hint20"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 533 MovieClip
"Hint19"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 536 MovieClip
"Hint18"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 539 MovieClip
"Hint17"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 542 MovieClip
"Hint16"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 545 MovieClip
"Hint15"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 546 MovieClip
"Hint14"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 549 MovieClip
"Hint13"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 552 MovieClip
"Hint12"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 555 MovieClip
"Hint11"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 558 MovieClip
"Hint10"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 561 MovieClip
"Hint9"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 564 MovieClip
"Hint8"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 567 MovieClip
"Hint7"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 570 MovieClip
"Hint6"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 573 MovieClip
"Hint5"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 576 MovieClip
"Hint4"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 579 MovieClip
"Hint3"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 582 MovieClip
"Hint2"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 585 MovieClip
"Hint1"Symbol 589 MovieClip {BrainTest_fla.HintWordLevel_231} Frame 1Symbol 588 MovieClip
"Q2"Symbol 595 MovieClip {BrainTest_fla.LastAnswer_230} Frame 1Symbol 590 EditableText
"Q3"Symbol 595 MovieClip {BrainTest_fla.LastAnswer_230} Frame 1Symbol 591 EditableText
"Q4"Symbol 595 MovieClip {BrainTest_fla.LastAnswer_230} Frame 1Symbol 592 EditableText
"Q5"Symbol 595 MovieClip {BrainTest_fla.LastAnswer_230} Frame 1Symbol 593 EditableText
"Q1"Symbol 595 MovieClip {BrainTest_fla.LastAnswer_230} Frame 1Symbol 594 EditableText
"lastAns"Symbol 607 MovieClip {WordLevel} Frame 1Symbol 595 MovieClip {BrainTest_fla.LastAnswer_230}
"Q2"Symbol 607 MovieClip {WordLevel} Frame 1Symbol 596 EditableText
"Q3"Symbol 607 MovieClip {WordLevel} Frame 1Symbol 597 EditableText
"Q4"Symbol 607 MovieClip {WordLevel} Frame 1Symbol 598 EditableText
"Q5"Symbol 607 MovieClip {WordLevel} Frame 1Symbol 599 EditableText
"Q1"Symbol 607 MovieClip {WordLevel} Frame 1Symbol 600 EditableText
"DrawMc"Symbol 607 MovieClip {WordLevel} Frame 1Symbol 423 MovieClip {BrainTest_fla.drawMc_144}
"Hint1"Symbol 609 MovieClip {BrainTest_fla.HintMath2Level_238} Frame 1Symbol 241 MovieClip {BoxPlus}
"Hint4"Symbol 609 MovieClip {BrainTest_fla.HintMath2Level_238} Frame 1Symbol 247 MovieClip {BoxDiv}
"Hint3"Symbol 609 MovieClip {BrainTest_fla.HintMath2Level_238} Frame 1Symbol 243 MovieClip {BoxMPly}
"Hint2"Symbol 609 MovieClip {BrainTest_fla.HintMath2Level_238} Frame 1Symbol 245 MovieClip {BoxMinus}
"DropBox"Symbol 622 MovieClip {BrainTest_fla.drawMc2_233} Frame 1Symbol 619 MovieClip
"drawText"Symbol 622 MovieClip {BrainTest_fla.drawMc2_233} Frame 1Symbol 621 MovieClip
"Zone"Symbol 622 MovieClip {BrainTest_fla.drawMc2_233} Frame 1Symbol 15 MovieClip
"DropBox"Symbol 622 MovieClip {BrainTest_fla.drawMc2_233} Frame 2Symbol 619 MovieClip
"drawText"Symbol 622 MovieClip {BrainTest_fla.drawMc2_233} Frame 2Symbol 621 MovieClip
"Zone"Symbol 622 MovieClip {BrainTest_fla.drawMc2_233} Frame 2Symbol 15 MovieClip
"lastAns"Symbol 625 MovieClip {Math2Level} Frame 1Symbol 430 MovieClip {BrainTest_fla.LastAnswer1_143}
"Q2"Symbol 625 MovieClip {Math2Level} Frame 1Symbol 611 EditableText
"Q3"Symbol 625 MovieClip {Math2Level} Frame 1Symbol 612 EditableText
"Q4"Symbol 625 MovieClip {Math2Level} Frame 1Symbol 613 EditableText
"Q5"Symbol 625 MovieClip {Math2Level} Frame 1Symbol 614 EditableText
"Q1"Symbol 625 MovieClip {Math2Level} Frame 1Symbol 615 EditableText
"DrawMc"Symbol 625 MovieClip {Math2Level} Frame 1Symbol 622 MovieClip {BrainTest_fla.drawMc2_233}
"HintMc"Symbol 632 MovieClip {BrainTest_fla.HintDirLevel_244} Frame 1Symbol 630 MovieClip
"mc15"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc11"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc7"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc3"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc14"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc10"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc6"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc2"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc13"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc9"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc5"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc1"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc12"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc8"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc4"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"mc0"Symbol 643 MovieClip {DirectionLevel} Frame 1Symbol 641 MovieClip {BrainTest_fla.MeezButton_240}
"Hint5"Symbol 644 MovieClip {BrainTest_fla.HintMeezLevel_245} Frame 1Symbol 38 MovieClip
"Hint3"Symbol 644 MovieClip {BrainTest_fla.HintMeezLevel_245} Frame 1Symbol 41 MovieClip
"Hint1"Symbol 644 MovieClip {BrainTest_fla.HintMeezLevel_245} Frame 1Symbol 42 MovieClip
"Hint4"Symbol 644 MovieClip {BrainTest_fla.HintMeezLevel_245} Frame 1Symbol 43 MovieClip
"Hint2"Symbol 644 MovieClip {BrainTest_fla.HintMeezLevel_245} Frame 1Symbol 44 MovieClip
"txt"Symbol 647 MovieClip {BrainTest_fla.ScoreNos3_270} Frame 1Symbol 646 EditableText
"txt"Symbol 658 MovieClip {BrainTest_fla.ScoreNos4_267} Frame 1Symbol 657 EditableText
"bar"Symbol 664 MovieClip {BrainTest_fla.PlayerLevel_264} Frame 1Symbol 663 MovieClip
"finalGrade"Symbol 672 MovieClip {BrainTest_fla.ScoreNos2_261} Frame 1Symbol 670 EditableText
"finalScore"Symbol 672 MovieClip {BrainTest_fla.ScoreNos2_261} Frame 1Symbol 671 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""
Tag 0x0FF (255)Timeline Frame 11 bytes " "

Labels

"loading"Frame 1
"loadRes"Frame 11
"characterSelector"Frame 15
"loadAvatars"Frame 30
"mainMenu"Frame 45
"Level1"Frame 55
"Level2"Frame 61
"Level3"Frame 67
"Level4"Frame 72
"Level5"Frame 77
"GameOver"Frame 82
"Practice"Frame 90
"Credits"Frame 97
"Frame 1"Symbol 214 MovieClip {ArrowUp} Frame 1
"Frame 1"Symbol 217 MovieClip {ArrowRight} Frame 1
"Frame 1"Symbol 220 MovieClip {ArrowNil} Frame 1
"Frame 1"Symbol 223 MovieClip {ArrowLeft} Frame 1
"Frame 1"Symbol 226 MovieClip {ArrowDown} Frame 1
"Frame 1"Symbol 233 MovieClip {Count2} Frame 1
"Frame 1"Symbol 243 MovieClip {BoxMPly} Frame 1
"stop"Symbol 252 MovieClip {BrainTest_fla.invalidUserMessage_71} Frame 1
"show"Symbol 252 MovieClip {BrainTest_fla.invalidUserMessage_71} Frame 5
"Frame 1"Symbol 610 MovieClip Frame 1
"normal"Symbol 622 MovieClip {BrainTest_fla.drawMc2_233} Frame 1
"glow"Symbol 622 MovieClip {BrainTest_fla.drawMc2_233} Frame 2
"1"Symbol 641 MovieClip {BrainTest_fla.MeezButton_240} Frame 1
"2"Symbol 641 MovieClip {BrainTest_fla.MeezButton_240} Frame 2
"3"Symbol 641 MovieClip {BrainTest_fla.MeezButton_240} Frame 3
"4"Symbol 641 MovieClip {BrainTest_fla.MeezButton_240} Frame 4




http://swfchan.com/14/68528/info.shtml
Created: 10/4 -2019 23:55:09 Last modified: 10/4 -2019 23:55:09 Server time: 06/12 -2025 22:46:13