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

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

Piviball.swf

This is the info page for
Flash #117477

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


Text
<p align="center"></p>

PIVIBALL

<p align="center"><font face="Trebuchet MS" size="45" color="#ffffff" letterSpacing="0.000000" kerning="1">START</font></p>

<p align="center"><font face="Trebuchet MS" size="45" color="#ffffff" letterSpacing="0.000000" kerning="1">SCORE</font></p>

<p align="center"><font face="Trebuchet MS" size="45" color="#ffffff" letterSpacing="0.000000" kerning="1">INFO</font></p>

<p align="left"><font face="Trebuchet MS" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">Music:</font></p>

<p align="center"><font face="Trebuchet MS" size="45" color="#ffffff" letterSpacing="0.000000" kerning="1">HELP</font></p>

<p align="center"><font face="Trebuchet MS" size="45" color="#ffffff" letterSpacing="0.000000" kerning="1">BACK</font></p>

<p align="left"><font face="Trebuchet MS" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">Congratulations you completed Piviball!</font></p>

<p align="right"><font face="Trebuchet MS" size="26" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="center"><font face="Trebuchet MS" size="45" color="#ffffff" letterSpacing="0.000000" kerning="1">SUBMIT</font></p>

<p align="center"><font face="Trebuchet MS" size="26" color="#999999" letterSpacing="0.000000" kerning="1">SUBMIT</font></p>

<p align="left"><font face="Trebuchet MS" size="22" color="#ffffff" letterSpacing="0.000000" kerning="1">Music:</font></p>

<p align="center"><font face="Trebuchet MS" size="18" color="#d4d4d4" letterSpacing="0.000000" kerning="1">Use the mouse to rotate the maze. Try to get the balls to the end point.</font></p>

<p align="center"><font face="Trebuchet MS" size="22" color="#d4d4d4" letterSpacing="0.000000" kerning="1">There are two types of end point:</font></p>

<p align="left"><font face="Trebuchet MS" size="14" color="#d4d4d4" letterSpacing="0.000000" kerning="1">all balls must be on a square to complete the level.</font></p>

<p align="left"><font face="Trebuchet MS" size="14" color="#d4d4d4" letterSpacing="0.000000" kerning="1">the ball only has to touch the circle once to complete the level.</font></p>

<p align="center"><font face="Trebuchet MS" size="22" color="#d4d4d4" letterSpacing="0.000000" kerning="1">Made using BOX2D</font></p><p align="center"></p>

<p align="center"><font face="Trebuchet MS" size="22" color="#d4d4d4" letterSpacing="0.000000" kerning="1">Develped by Harry Kilian</font></p><p align="center"></p>

<p align="center"><font face="Trebuchet MS" size="31" color="#ffffff" letterSpacing="0.000000" kerning="1">BACK</font></p>

<p align="left"><font face="Trebuchet MS" size="25" color="#ffffff" letterSpacing="0.000000" kerning="1">Level ? : ???????</font></p>

<p align="left"><font face="Trebuchet MS" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">Try and click on the level to rotate it to get the ball to the end.</font></p>

<p align="right"><font face="Trebuchet MS" size="17" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="left"><font face="Trebuchet MS" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">Avoid dragging near the center of the level as your controll will be less precise.</font></p>

<p align="left"><font face="Trebuchet MS" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">Sometimes you will have multiple balls that need to reach the end of the level.</font></p>

<p align="left"><font face="Trebuchet MS" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">A circlular end point is like a switch as you only need to hit it once.</font></p>

<p align="left"><font face="Trebuchet MS" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">Dragging the maze further from the center will produce smoother movment.</font></p>

<p align="left"><font face="Trebuchet MS" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1">Grey balls cant activate the end point.</font></p>

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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.x + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int;// = -1 public function b2ShapeDef(){ filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape1; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.1, 0.1); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0.5, 0.5, 0.5); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.1, 0.1, 0.1), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.1, 0.3, 0.1); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//GamePreloaderEvent (com.gamezhero.api.as3.events.GamePreloaderEvent) package com.gamezhero.api.as3.events { import flash.events.*; public class GamePreloaderEvent extends Event { private var value_; public static const FINISH:String = "PRELOAD_COMPLETE"; public static const PARAMS:String = "PARAMS_COMPLETE"; public function GamePreloaderEvent(_arg1:String){ super(_arg1); } public function get value(){ return (value_); } public function set value(_arg1):void{ value_ = _arg1; } override public function toString():String{ return (formatToString("GamePreloaderEvent")); } } }//package com.gamezhero.api.as3.events
Section 76
//Background (com.gamezhero.api.as3.gui.Background) package com.gamezhero.api.as3.gui { import flash.display.*; public class Background extends MovieClip { private var _goal:MovieClip; private var _bg:MovieClip; public function Background(_arg1:MovieClip){ _goal = _arg1; _goal.addChild(this); ini(); iniEvents(); } public function remove():void{ clearEvents(); _goal.removeChild(this); } private function clearEvents():void{ } public function update(_arg1:Number, _arg2:Number):void{ this.x = 0; this.y = 0; this.width = (_arg1 + 100); this.height = (_arg2 + 100); } private function getBg():MovieClip{ var _local1:MovieClip = new MovieClip(); _local1.graphics.beginFill(0, 1); _local1.graphics.lineStyle(0, 0, 0); _local1.graphics.moveTo(0, 0); _local1.graphics.lineTo(1000, 0); _local1.graphics.lineTo(1000, 1000); _local1.graphics.lineTo(0, 1000); _local1.graphics.lineTo(0, 0); _local1.graphics.endFill(); return (_local1); } private function ini():void{ _bg = getBg(); this.addChild(_bg); } private function iniEvents():void{ } } }//package com.gamezhero.api.as3.gui
Section 77
//Indicator (com.gamezhero.api.as3.gui.Indicator) package com.gamezhero.api.as3.gui { import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; public class Indicator extends MovieClip { private var _timer:Timer; private var _goal:MovieClip; private var _indicator:MovieClip; private var _dalpha:Number; private var _info_text:TextField; private var _arr:Array; private var _n:uint;// = 10 private var _timer_2:Timer; private var _current:Number;// = 0 public function Indicator(_arg1:MovieClip){ _dalpha = (360 / _n); _arr = new Array(); super(); _goal = _arg1; _goal.addChild(this); ini(); iniEvents(); } public function setSize(_arg1:Number, _arg2:Number):void{ this.visible = true; this.width = _arg1; this.height = _arg2; } public function remove():void{ clearEvents(); _goal.removeChild(this); } private function getItem():MovieClip{ var _local1:MovieClip = new MovieClip(); _local1.graphics.beginFill(0xFFFFFF, 1); _local1.graphics.lineStyle(0, 0, 0); _local1.graphics.moveTo(32.3, -5.7); _local1.graphics.curveTo(30, -3.3, 30, 0); _local1.graphics.curveTo(30, 3.3, 32.3, 5.6); _local1.graphics.curveTo(34.7, 8, 38.05, 8); _local1.graphics.lineTo(57, 8); _local1.graphics.curveTo(60.3, 8, 62.6, 5.6); _local1.graphics.curveTo(65, 3.3, 65, 0); _local1.graphics.curveTo(65, -3.3, 62.6, -5.7); _local1.graphics.curveTo(60.3, -8, 57, -8); _local1.graphics.lineTo(38.05, -8); _local1.graphics.curveTo(34.7, -8, 32.3, -5.7); _local1.graphics.endFill(); _indicator.addChild(_local1); return (_local1); } private function clearEvents():void{ _timer.removeEventListener(TimerEvent.TIMER, updateIndicator); _timer_2.removeEventListener(TimerEvent.TIMER, updateCurrent); } public function setPos(_arg1:Number, _arg2:Number):void{ this.visible = true; this.x = _arg1; this.y = _arg2; } private function updateIndicator(_arg1:TimerEvent=null):void{ var _local2:uint; while (_local2 < _n) { _arr[_local2].alpha = (_arr[_local2].alpha - 0.07); if (_arr[_local2].alpha <= 0){ _arr[_local2].alpha = 0; }; _local2++; }; _arg1.updateAfterEvent(); } public function createInfoText():void{ _info_text = new TextField(); var _local1:TextFormat = new TextFormat(); _local1.color = 0xFFFFFF; _local1.size = 11; _local1.font = "Arial"; _info_text.defaultTextFormat = _local1; _info_text.autoSize = TextFieldAutoSize.CENTER; _indicator.addChild(_info_text); var _local2:Number = 100; var _local3:Number = 20; _local2 = _info_text.width; _local3 = _info_text.height; _info_text.x = (-(_local2) / 2); _info_text.y = -10; } public function update(_arg1:Number, _arg2:Number):void{ this.visible = true; this.x = (_arg1 / 2); this.y = (_arg2 / 2); } private function iniEvents():void{ _timer.addEventListener(TimerEvent.TIMER, updateIndicator); _timer.start(); _timer_2.addEventListener(TimerEvent.TIMER, updateCurrent); _timer_2.start(); } public function setVal(_arg1:String):void{ _info_text.text = _arg1; } private function getBorder():MovieClip{ var _local1:Number = 10; var _local2:Number = 150; var _local3:Number = 150; var _local4:MovieClip = new MovieClip(); _local4.graphics.beginFill(0x333333, 1); _local4.graphics.moveTo(_local1, 0); _local4.graphics.lineTo((_local2 - _local1), 0); _local4.graphics.curveTo(_local2, 0, _local2, _local1); _local4.graphics.lineTo(_local2, _local1); _local4.graphics.lineTo(_local2, (_local3 - _local1)); _local4.graphics.curveTo(_local2, _local3, (_local2 - _local1), _local3); _local4.graphics.lineTo((_local2 - _local1), _local3); _local4.graphics.lineTo(_local1, _local3); _local4.graphics.curveTo(0, _local3, 0, (_local3 - _local1)); _local4.graphics.lineTo(0, (_local3 - _local1)); _local4.graphics.lineTo(0, _local1); _local4.graphics.curveTo(0, 0, _local1, 0); _local4.graphics.lineTo(_local1, 0); _local4.graphics.endFill(); _indicator.addChild(_local4); _local4.x = (-(_local4.width) / 2); _local4.y = (-(_local4.height) / 2); return (_local4); } private function ini():void{ var _local2:MovieClip; this.visible = false; _timer = new Timer((1000 / 40), 0); _timer_2 = new Timer((1000 / 20), 0); _indicator = new MovieClip(); this.addChild(_indicator); getBorder(); var _local1:uint; while (_local1 < _n) { _local2 = getItem(); _local2.rotation = (_dalpha * _local1); _local2.alpha = 0.2; _arr.push(_local2); _local1++; }; createInfoText(); } private function updateCurrent(_arg1:TimerEvent=null):void{ _current++; if (_current >= _arr.length){ _current = 0; }; _arr[_current].alpha = 1; _arg1.updateAfterEvent(); } } }//package com.gamezhero.api.as3.gui
Section 78
//URL (com.gamezhero.api.as3.utils.URL) package com.gamezhero.api.as3.utils { public class URL { private var _scheme:String; private var _host:String; private var _query:String; private var _path:String; private var _userinfo:String; private var _port:String; private var _url:String; private var _fragment:String; private static const PATTERN:RegExp = /^([A-Za-z0-9_+.]{1,8}:\/\/)?([!-~]+@)?([^\/?#:]*)(:[0-9]*)?(\/[^?#]*)?(\?[^#]*)?(\#.*)?/i; public function URL(_arg1:String):void{ var _local2:Array = _arg1.match(URL.PATTERN); _url = _local2[0]; _scheme = _local2[1]; _userinfo = _local2[2]; _host = _local2[3]; _port = _local2[4]; _path = _local2[5]; _query = _local2[6]; _fragment = _local2[7]; } public function get port():int{ return (((_port.length <= 0)) ? undefined : int(_port.substring(1, _port.length))); } public function get fragment():String{ return (((_fragment.length <= 0)) ? undefined : _fragment); } public function get query():Object{ var _local2:String; var _local3:Array; var _local4:int; var _local5:Array; var _local1:Object = {raw:undefined, parsed:undefined}; if (((_query) && ((_query.length > 0)))){ _local1.raw = _query; _local2 = _query.substring(1, _query.length); _local3 = _local2.split("&"); _local1.parsed = ((_local3.length > 0)) ? {} : undefined; _local4 = 0; while (_local4 < _local3.length) { _local5 = _local3[_local4].split("="); _local1.parsed[_local5[0]] = _local5[1]; _local4++; }; }; return (_local1); } public function get scheme():String{ return (((_scheme.length <= 0)) ? undefined : _scheme.substring(0, (_scheme.length - 3))); } public function get host():String{ return (((_host.length <= 0)) ? undefined : _host); } public function get path():String{ return (((_path.length <= 0)) ? undefined : _path); } public function get url():String{ return (((_url.length <= 0)) ? undefined : _url); } public function get userinfo():Object{ var _local2:Array; var _local1:Object = {user:undefined, pass:undefined}; if (_userinfo){ _local2 = _userinfo.substring(0, (_userinfo.length - 1)).split(":"); _local1.user = (_local2[0]) ? _local2[0] : _local1.user; _local1.pass = (_local2[1]) ? _local2[1] : _local1.pas; }; return (_local1); } } }//package com.gamezhero.api.as3.utils
Section 79
//GamePreloader (com.gamezhero.api.as3.GamePreloader) package com.gamezhero.api.as3 { import flash.display.*; import com.gamezhero.api.as3.events.*; import flash.events.*; import flash.net.*; import com.google.analytics.*; import flash.utils.*; import com.gamezhero.api.as3.gui.*; public class GamePreloader extends MovieClip { private var _tracker:GATracker; private var skin_load_tries:uint;// = 2 private var _indicator:Indicator; private var _frame_rate:Number;// = 24 private var updatePosition:Function; private var setTarget:Function; private var updateProgress:Function; private var _goal:MovieClip; private var _quality_old:String; private var progress:Number;// = 0 private var _obj:Object; private var _scale_old:String; private var _urls:Dictionary; private var _preloader_skin:MovieClip; private var _timer:Timer; private var _loader_preloader_skin:Loader; private var _bg:Background; private var _in_target:String; private var _align_old:String; private var iniPreloader:Function; private var _in_url:String;// = "null" private var _debug_flag:Boolean;// = false private var _frame_rate_old:Number; private var getParams:Function; private var stage_ini_tries:uint;// = 5 public function GamePreloader(_arg1:MovieClip, _arg2:Object=null){ var par = _arg1; var iniObject = _arg2; _timer = new Timer((1000 / _frame_rate), 0); _obj = new Object(); _urls = new Dictionary(); _loader_preloader_skin = new Loader(); super(); _goal = par; _goal.addChild(this); if (iniObject != null){ _obj = iniObject; }; try { _debug_flag = _obj["debug"]; } catch(e:Error) { _debug_flag = false; }; _bg = new Background(this); _indicator = new Indicator(this); progress = (_goal.loaderInfo.bytesLoaded / _goal.loaderInfo.bytesTotal); iniEvents(); iniStage(); iniGoogleAnalitics(); } private function beginScenario1():void{ clearTimers(); _timer.addEventListener(TimerEvent.TIMER, updatePreloader1); _timer.start(); resizeAction(); } private function beginScenario2():void{ clearTimers(); _timer.addEventListener(TimerEvent.TIMER, updatePreloader2); _timer.start(); } private function iniStage(_arg1:Event=null):void{ var event = _arg1; this.removeEventListener(Event.ENTER_FRAME, iniStage); try { getStageSettings(); iniStageSettings(); iniStageEvents(); if (_debug_flag == false){ loadPreloaderSkin(); } else { beginScenario2(); }; } catch(e:Error) { stage_ini_tries--; if (stage_ini_tries <= 0){ beginScenario2(); } else { this.addEventListener(Event.ENTER_FRAME, iniStage); }; }; } private function getStageSettings():void{ _scale_old = stage.scaleMode; _align_old = stage.align; _frame_rate_old = stage.frameRate; _quality_old = stage.quality; } public function trackClick():void{ _tracker.trackEvent(GamezheroGlobal.gameName, "click", "preloader"); } private function resizeAction(_arg1:Event=null):void{ var obj:Object; var event = _arg1; obj = new Object(); try { obj.width = stage.stageWidth; obj.height = stage.stageHeight; } catch(e:Error) { obj.width = 550; obj.height = 400; }; try { updatePosition(obj); } catch(e:Error) { }; _indicator.update(obj.width, obj.height); _bg.update(obj.width, obj.height); } private function iniEvents():void{ _goal.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); _goal.loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressAction); _loader_preloader_skin.contentLoaderInfo.addEventListener(Event.INIT, preloaderLoaderInit); _loader_preloader_skin.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, preloaderLoaderError); } private function updatePreloader2(_arg1:TimerEvent=null):void{ var _local2:Number; iniStageSettings(); _local2 = progress; if ((((_local2 >= 1)) && (!((_goal.totalFrames == _goal.framesLoaded))))){ _local2 = 0.99; }; _indicator.setVal((Math.round((_local2 * 100)) + " %")); if (_local2 >= 1){ _timer.removeEventListener(TimerEvent.TIMER, updatePreloader2); action(); }; _arg1.updateAfterEvent(); } private function clearStageEvents():void{ try { stage.removeEventListener(Event.RESIZE, resizeAction); } catch(e:Error) { }; } private function getInfo():Object{ var _local1:UserInfo = new UserInfo(_goal); return ((_local1 as Object)); } public function changeLanguage(_arg1:String):void{ GamezheroDictionary.language = _arg1; } public function action(_arg1:Event=null):void{ clearTimers(); _timer.addEventListener(TimerEvent.TIMER, actionDone); _timer.start(); } private function iniGoogleAnalitics():void{ try { _tracker = new GATracker(this, "UA-262190-1", "AS3", false); } catch(e:Error) { }; } private function updatePreloader1(_arg1:TimerEvent=null):void{ var proc:Number; var event = _arg1; iniStageSettings(); proc = progress; if ((((proc >= 1)) && (!((_goal.totalFrames == _goal.framesLoaded))))){ proc = 0.99; }; try { updateProgress({loaded:proc}); } catch(e:Error) { trace("Error Update Progress of Preloader."); beginScenario2(); }; event.updateAfterEvent(); } private function iniStageSettings():void{ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.frameRate = _frame_rate; stage.quality = StageQuality.HIGH; } private function iniStageEvents():void{ stage.addEventListener(Event.RESIZE, resizeAction); resizeAction(); } private function progressAction(_arg1:ProgressEvent=null):void{ var event = _arg1; try { progress = (event.bytesLoaded / event.bytesTotal); } catch(e:Error) { progress = 0; }; } private function clearEvents():void{ _goal.loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); _goal.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressAction); this.removeEventListener(Event.ENTER_FRAME, iniStage); _loader_preloader_skin.contentLoaderInfo.removeEventListener(Event.INIT, preloaderLoaderInit); _loader_preloader_skin.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, preloaderLoaderError); try { removeChild(_preloader_skin); } catch(e:Error) { }; } private function loadPreloaderSkin():void{ var url:String = (GamezheroGlobal.toText([104, 116, 116, 112, 58, 47, 47, 102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109, 47, 112, 114, 101, 108, 111, 97, 100, 101, 114, 47, 97, 115, 51, 47, 112, 114, 101, 108, 111, 97, 100, 101, 114, 46, 115, 119, 102, 63]) + String(new Date().getTime())); var request:URLRequest = new URLRequest(url); try { _loader_preloader_skin.load(request); } catch(e:Error) { beginScenario2(); }; } private function preloaderLoaderInit(_arg1:Event=null):void{ var paramsObj:Object; var evnt:GamePreloaderEvent; var event = _arg1; _preloader_skin = (_loader_preloader_skin.content as MovieClip); addChild(_preloader_skin); iniPreloader = (_preloader_skin["iniPreloader"] as Function); updateProgress = (_preloader_skin["updateProgress"] as Function); updatePosition = (_preloader_skin["updatePosition"] as Function); getParams = (_preloader_skin["getParams"] as Function); setTarget = (_preloader_skin["setTarget"] as Function); var infoObj:Object = getInfo(); try { setTarget(this); } catch(e:Error) { trace("Error Set Target."); }; try { paramsObj = getParams(infoObj); evnt = new GamePreloaderEvent(GamePreloaderEvent.PARAMS); evnt.value = paramsObj; this.dispatchEvent(evnt); } catch(e:Error) { trace("Error Get Params."); }; try { iniPreloader(infoObj); beginScenario1(); } catch(e:Error) { trace("Error Ini Preloader."); beginScenario2(); }; } private function preloaderLoaderError(_arg1:Event=null):void{ var IOErrorEvent = _arg1; skin_load_tries--; try { _tracker.trackEvent("preloader", ("loading_error_" + (2 - skin_load_tries)), GamezheroGlobal.gameName); } catch(e:Error) { }; if (skin_load_tries <= 0){ beginScenario2(); } else { loadPreloaderSkin(); }; } private function actionDone(_arg1:TimerEvent=null):void{ var _local2:GamePreloaderEvent; this.alpha = (this.alpha - 1); if (this.alpha <= 1){ this.alpha = 0; clearEvents(); clearStageEvents(); clearTimers(); setStageSettings(); _local2 = new GamePreloaderEvent(GamePreloaderEvent.FINISH); this.dispatchEvent(_local2); _indicator.remove(); _bg.remove(); _goal.removeChild(this); }; _arg1.updateAfterEvent(); } private function ioErrorHandler(_arg1:IOErrorEvent=null):void{ beginScenario2(); } private function clearTimers():void{ _timer.removeEventListener(TimerEvent.TIMER, updatePreloader1); _timer.removeEventListener(TimerEvent.TIMER, updatePreloader2); _timer.removeEventListener(TimerEvent.TIMER, actionDone); } private function setStageSettings():void{ stage.scaleMode = _scale_old; stage.align = _align_old; stage.frameRate = _frame_rate_old; stage.quality = _quality_old; } } }//package com.gamezhero.api.as3
Section 80
//GameScore (com.gamezhero.api.as3.GameScore) package com.gamezhero.api.as3 { import flash.display.*; import flash.events.*; import flash.net.*; import com.gamezhero.api.as3.gui.*; public class GameScore extends MovieClip { private var _goal:MovieClip; private var _frame_rate_old:Number; private var _indicator:Indicator; private var _frame_rate:Number;// = 24 private var _engine_load_tries:Number;// = 2 private var _quality_old:String; private var updatePositionSkin:Function; private var setTargetSkin:Function; private var _loader:URLVariables; private var _scale_old:String; private var _engine_mc:MovieClip; private var setTargetEngine:Function; private var iniEngineForSkin:Function; private var _skin_load_tries:Number;// = 2 private var _info_obj:UserInfo; private var _score_value:Number;// = 0 private var _score_mode:String;// = "submit_mode" private var _skin_mc:MovieClip; private var _obj_listener_skin:Object; private var _loader_url:String;// = "null" private var _bg:Background; private var obj_listener_engine:Object; private var _loader_skin:Loader; private var _align_old:String; private var _loader_engine:Loader; private var iniSkinForEngine:Function; public static const SUBMIT_MODE:String = "submit_mode"; public static const CLOSE:String = "gamezhero_close"; public static const VIEW_MODE:String = "view_mode"; public function GameScore(_arg1:MovieClip, _arg2:String, _arg3:Number=0){ _loader_skin = new Loader(); _loader_engine = new Loader(); _obj_listener_skin = new Object(); obj_listener_engine = new Object(); _loader = new URLVariables(); super(); _goal = _arg1; _goal.addChild(this); _score_value = _arg3; _score_mode = _arg2; iniStageSettings(); _bg = new Background(this); _indicator = new Indicator(this); iniEvents(); loadSkin(); } private function loadSkin():void{ var url:String = (GamezheroGlobal.toText([104, 116, 116, 112, 58, 47, 47, 102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109, 47, 115, 99, 111, 114, 101, 47, 115, 107, 105, 110, 47, 97, 115, 51, 47, 115, 107, 105, 110, 46, 115, 119, 102, 63]) + String(new Date().getTime())); var request:URLRequest = new URLRequest(url); try { _loader_skin.load(request); } catch(e:Error) { closeActionFoo(); }; } public function close():void{ closeActionFoo(); } private function engineLoaderError(_arg1:Event=null):void{ _engine_load_tries--; if (_engine_load_tries <= 0){ closeActionFoo(); } else { loadEngine(); }; } private function closeActionFoo(){ try { this.removeChild(_skin_mc); } catch(e:Error) { }; try { this.removeChild(_engine_mc); } catch(e:Error) { }; try { _indicator.remove(); } catch(e:Error) { }; restoreStageSettings(); clearEvents(); dispatchEvent(new Event(CLOSE)); try { _goal.removeChild(this); } catch(e:Error) { }; } private function iniEvents():void{ stage.addEventListener(Event.RESIZE, resizeAction); resizeAction(); _loader_skin.contentLoaderInfo.addEventListener(Event.INIT, skinLoaderInit); _loader_skin.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, skinLoaderError); _loader_engine.contentLoaderInfo.addEventListener(Event.INIT, engineLoaderInit); _loader_engine.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, engineLoaderError); } private function iniSkin():void{ } private function getInfo():UserInfo{ var _local1:UserInfo = new UserInfo(_goal); return (_local1); } private function skinLoaderInit(_arg1:Event=null):void{ _skin_mc = (_loader_skin.content as MovieClip); addChild(_skin_mc); loadEngine(); } private function resizeAction(_arg1:Event=null):void{ var obj:Object; var event = _arg1; obj = new Object(); try { obj.width = stage.stageWidth; obj.height = stage.stageHeight; } catch(e:Error) { obj.width = 550; obj.height = 400; }; try { updatePositionSkin.call(null, obj); } catch(e:Error) { }; _bg.update(obj.width, obj.height); _indicator.update(obj.width, obj.height); } private function iniStageSettings():void{ _scale_old = stage.scaleMode; _align_old = stage.align; _frame_rate_old = stage.frameRate; _quality_old = stage.quality; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.frameRate = _frame_rate; stage.quality = StageQuality.HIGH; } private function clearEvents():void{ try { stage.removeEventListener(Event.RESIZE, resizeAction); } catch(e:Error) { }; _loader_skin.contentLoaderInfo.removeEventListener(Event.INIT, skinLoaderInit); _loader_skin.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, skinLoaderError); _loader_engine.contentLoaderInfo.removeEventListener(Event.INIT, engineLoaderInit); _loader_engine.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, engineLoaderError); } private function engineLoaderInit(_arg1:Event=null):void{ _engine_mc = (_loader_engine.content as MovieClip); addChild(_engine_mc); connectScoreParts(); } private function restoreStageSettings():void{ stage.scaleMode = _scale_old; stage.align = _align_old; stage.frameRate = _frame_rate_old; stage.quality = _quality_old; } private function loadEngine():void{ var url:String = (GamezheroGlobal.toText([104, 116, 116, 112, 58, 47, 47, 102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109, 47, 115, 99, 111, 114, 101, 47, 101, 110, 103, 105, 110, 101, 47, 97, 115, 51, 47, 101, 110, 103, 105, 110, 101, 46, 115, 119, 102, 63]) + String(new Date().getTime())); var request:URLRequest = new URLRequest(url); try { _loader_engine.load(request); } catch(e:Error) { closeActionFoo(); }; } private function skinLoaderError(_arg1:Event=null):void{ _skin_load_tries--; if (_skin_load_tries <= 0){ closeActionFoo(); } else { loadSkin(); }; } private function connectScoreParts():void{ setTargetSkin = _skin_mc["setTarget"]; iniEngineForSkin = _skin_mc["iniEngineForSkin"]; updatePositionSkin = _skin_mc["updatePosition"]; setTargetEngine = _engine_mc["setTarget"]; iniSkinForEngine = _engine_mc["iniSkinForEngine"]; _info_obj = getInfo(); _info_obj["score"] = _score_value; _info_obj["mode"] = _score_mode; _info_obj["skin"] = _skin_mc; _info_obj["engine"] = _engine_mc; try { setTargetSkin.call(_skin_mc, this); iniEngineForSkin.call(_skin_mc, Object(_info_obj)); } catch(e) { trace("Error. GameScore. Error Set Target For Skin"); }; try { setTargetEngine.call(_engine_mc, this); iniSkinForEngine.call(_engine_mc, Object(_info_obj)); } catch(e) { trace("Error. GameScore. Error Set Target For Engine"); }; resizeAction(); } } }//package com.gamezhero.api.as3
Section 81
//GamezheroApi (com.gamezhero.api.as3.GamezheroApi) package com.gamezhero.api.as3 { import flash.display.*; import com.gamezhero.api.as3.events.*; import flash.events.*; import com.google.analytics.*; import flash.system.*; import flash.ui.*; public class GamezheroApi { private static var params:Object = new Object(); private static var _score_flag:Boolean = false; private static var _version:String = "4.0 (as3)"; public static var MORE_GAMES_FROM_LOGO:String = "more_games_from_logo"; private static var _preloader_flag:Boolean = false; private static var _score_target:MovieClip; public static var MORE_GAMES:String = "more_games"; public static var FACEBOOK:String = "facebook"; private static var _ini_flag:Boolean = false; public static var VIEW_TOP_SCORE:String = "view_top_score"; public static var TWITTER:String = "twitter"; private static var _preloader_target:MovieClip; private static var _preloader_next_step_function:Function; private static var _score_close_function:Function; public static var SHARE_GAME:String = "share_game"; private static var SHARE_GAME_FROM_CONTEXT_MENU:String = "share_game_from_context_menu"; private static var _tracker:GATracker; private static var MORE_GAMES_FROM_CONTEXT_MENU:String = "more_games_from_context_menu"; private static function shareGameAction(_arg1:ContextMenuEvent=null):void{ navigateTo(SHARE_GAME_FROM_CONTEXT_MENU); } private static function twitterAction(_arg1:ContextMenuEvent=null):void{ navigateTo(TWITTER); } private static function gameParamsReceived(_arg1:GamePreloaderEvent=null):void{ var _local3:String; var _local2:Object = (_arg1.value as Object); for (_local3 in _local2) { params[_local3] = _local2[_local3]; }; } private static function facebookAction(_arg1:ContextMenuEvent=null):void{ navigateTo(FACEBOOK); } private static function iniContextMenu():void{ var gamezheroMenu:ContextMenu = new ContextMenu(); gamezheroMenu.hideBuiltInItems(); var defaultItems:ContextMenuBuiltInItems = gamezheroMenu.builtInItems; defaultItems.quality = true; defaultItems.print = true; defaultItems.save = true; var item1:ContextMenuItem = new ContextMenuItem(getTranslationByName(GamezheroDictionary.FOLLOW_US_ON_TWITTER)); item1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, twitterAction); gamezheroMenu.customItems.push(item1); var item2:ContextMenuItem = new ContextMenuItem(getTranslationByName(GamezheroDictionary.BECOME_A_FUN_ON_FACEBOOK)); item2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, facebookAction); gamezheroMenu.customItems.push(item2); var item3:ContextMenuItem = new ContextMenuItem(getTranslationByName(GamezheroDictionary.MORE_GAMES)); item3.separatorBefore = true; item3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, moreGameAction); gamezheroMenu.customItems.push(item3); var item4:ContextMenuItem = new ContextMenuItem(getTranslationByName(GamezheroDictionary.SHARE_GAME)); item4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, shareGameAction); gamezheroMenu.customItems.push(item4); var item5:ContextMenuItem = new ContextMenuItem(("Gamezhero API v" + _version)); item5.separatorBefore = true; item5.enabled = false; gamezheroMenu.customItems.push(item5); try { _preloader_target.contextMenu = gamezheroMenu; } catch(e:Error) { trace("Error: Ini context menu error"); }; } private static function iniGoogleAnalitics(_arg1:MovieClip):void{ var target = _arg1; try { _tracker = new GATracker(target, "UA-262190-1", "AS3", false); } catch(e:Error) { }; } public static function navigateTo(_arg1:String):void{ var from = _arg1; try { _tracker.trackEvent(GamezheroGlobal.gameName, "click", from); } catch(e:Error) { }; switch (from){ case MORE_GAMES_FROM_LOGO: if (!params["logo"]){ GamezheroGlobal.getURL((((("http://www.gamezhero.com/?utm_campaign=" + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.domain) + "&utm_medium=zorro_logo"), "_blank"); } else { GamezheroGlobal.getURL(params["logo"], "_blank"); }; break; case VIEW_TOP_SCORE: if (!params["top_score"]){ GamezheroGlobal.getURL((((((("http://www.gamezhero.com/topscore/" + GamezheroGlobal.gameName) + "/top100.html?utm_campaign=") + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.domain) + "&utm_medium=submit_score"), "_blank"); } else { GamezheroGlobal.getURL(params["top_score"], "_blank"); }; break; case TWITTER: if (!params["folow_us_on_twitter"]){ GamezheroGlobal.getURL("http://twitter.com/gamezhero", "_blank"); } else { GamezheroGlobal.getURL(params["folow_us_on_twitter"], "_blank"); }; break; case FACEBOOK: if (!params["became_a_fun_on_facebook"]){ GamezheroGlobal.getURL("http://www.facebook.com/pages/Gamezhero/71374863786", "_blank"); } else { GamezheroGlobal.getURL(params["became_a_fun_on_facebook"], "_blank"); }; break; case SHARE_GAME: if (!params["share_game"]){ GamezheroGlobal.getURL((((((("http://www.gamezhero.com/freewebsitegames/" + GamezheroGlobal.gameName) + "-games.html?utm_campaign=") + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.domain) + "&utm_medium=share_game"), "_blank"); } else { GamezheroGlobal.getURL(params["share_game"], "_blank"); }; break; case MORE_GAMES_FROM_CONTEXT_MENU: if (!params["more_games_context_menu"]){ GamezheroGlobal.getURL((((("http://www.gamezhero.com/?utm_campaign=" + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.domain) + "&utm_medium=more_free_games_context_menu"), "_blank"); } else { GamezheroGlobal.getURL(params["more_games_context_menu"], "_blank"); }; break; case SHARE_GAME_FROM_CONTEXT_MENU: if (!params["share_game_context_menu"]){ GamezheroGlobal.getURL((((("http://www.gamezhero.com/?utm_campaign=" + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.domain) + "&utm_medium=share_game"), "_blank"); } else { GamezheroGlobal.getURL(params["share_game_context_menu"], "_blank"); }; break; default: if (!params["more_games"]){ GamezheroGlobal.getURL((((("http://www.gamezhero.com/?utm_campaign=" + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.domain) + "&utm_medium=more_free_games"), "_blank"); } else { GamezheroGlobal.getURL(params["more_games"], "_blank"); }; }; } public static function submitScore(_arg1:String, _arg2:Number, _arg3:Function):void{ var _local4:Number; var _local5:GameScore; if (_ini_flag != true){ trace("Error. GamezheroApi don't initialize."); return; }; GamezheroGlobal.gameCode = _arg1; _score_target = GamezheroGlobal.root; _score_close_function = _arg3; if ((((GamezheroGlobal.gameName == "unset")) || ((_score_flag == true)))){ trace("Error. GamezheroApi don't ini or score is opened"); } else { _score_flag = true; _local4 = _arg2; _local5 = new GameScore(_score_target, GameScore.SUBMIT_MODE, _local4); _local5.addEventListener(GameScore.CLOSE, scoreCloseAction); }; } private static function scoreCloseAction(_arg1:Event=null):void{ var event = _arg1; _score_flag = false; try { (event.target as GameScore).removeEventListener(GameScore.CLOSE, scoreCloseAction); } catch(e:Error) { }; _score_close_function.apply(); } public static function getTranslationByName(_arg1:String):String{ return (GamezheroDictionary.getTranslationByName(_arg1)); } public static function viewScore(_arg1:String, _arg2:Function, _arg3:Boolean=true):void{ var _local4:GameScore; if (_ini_flag != true){ trace("Error. GamezheroApi don't initialize."); return; }; GamezheroGlobal.gameCode = _arg1; _score_target = GamezheroGlobal.root; _score_close_function = _arg2; if ((((GamezheroGlobal.gameName == "unset")) || ((_score_flag == true)))){ trace("Error. GamezheroApi don't ini or score is opened"); } else { _score_flag = true; _local4 = new GameScore(_score_target, GameScore.VIEW_MODE); _local4.addEventListener(GameScore.CLOSE, scoreCloseAction); }; } public static function ini(_arg1:MovieClip, _arg2:String, _arg3:Boolean=false):void{ var _local4:Stage; GamezheroGlobal.root = _arg1; GamezheroGlobal.multilanguage = _arg3; if (GamezheroGlobal.multilanguage == false){ GamezheroDictionary.language = GamezheroDictionary.ENG; } else { _local4 = GamezheroGlobal.root.stage; if (_local4.root.loaderInfo.parameters["language"]){ GamezheroDictionary.language = _local4.root.loaderInfo.parameters["language"]; } else { GamezheroDictionary.language = GamezheroDictionary.ENG; }; }; Security.allowDomain("www.gamezhero.com", "gamezhero.com", "files.gamezhero.com", "data.gamezhero.com", "*.gamezhero.com"); Security.allowInsecureDomain("www.gamezhero.com", "gamezhero.com", "files.gamezhero.com", "data.gamezhero.com", "*.gamezhero.com"); GamezheroGlobal.gameName = _arg2; if (GamezheroGlobal.root == null){ trace("Error Ini GamezheroApi. appRoot == null"); } else { _ini_flag = true; iniGoogleAnalitics(GamezheroGlobal.root); }; } private static function preloaderNextStep(_arg1:Event=null):void{ _preloader_flag = false; iniContextMenu(); _preloader_next_step_function.apply(); } public static function preloader(_arg1:Function):void{ var gamePreloader:GamePreloader; var nextStep = _arg1; if (_ini_flag != true){ trace("Error. GamezheroApi don't initialize."); return; }; try { _tracker.trackEvent(GamezheroGlobal.gameName, "load", "preloader"); } catch(e:Error) { }; _preloader_target = GamezheroGlobal.root; _preloader_next_step_function = nextStep; if ((((GamezheroGlobal.gameName == "unset")) || ((_preloader_flag == true)))){ trace("Error. GamezheroApi don't ini or preloader is opened"); } else { _preloader_flag = true; gamePreloader = new GamePreloader(_preloader_target, {debug:false}); gamePreloader.addEventListener(GamePreloaderEvent.FINISH, preloaderNextStep); gamePreloader.addEventListener(GamePreloaderEvent.PARAMS, gameParamsReceived); }; var gamezheroMenu:ContextMenu = new ContextMenu(); gamezheroMenu.hideBuiltInItems(); _preloader_target.contextMenu = gamezheroMenu; } private static function moreGameAction(_arg1:ContextMenuEvent=null):void{ navigateTo(MORE_GAMES_FROM_CONTEXT_MENU); } } }//package com.gamezhero.api.as3
Section 82
//GamezheroDictionary (com.gamezhero.api.as3.GamezheroDictionary) package com.gamezhero.api.as3 { public class GamezheroDictionary { public static const SUBMIT_TOP_SCORE:String = "submit_top_score"; public static const UKR:String = "UKR"; public static const MUSIC:String = "music"; public static const GAME_OVER:String = "game_over"; public static const PRT:String = "PRT"; public static const SUBMIT:String = "submit"; public static const PLAY_GAME:String = "play_game"; public static const SETTINGS:String = "settings"; public static const MAIN_MENU:String = "main_menu"; public static const FOLLOW_US_ON_TWITTER:String = "folow_us_on_twitter"; public static const CONTINUE:String = "continue"; public static const POL:String = "POL"; public static const CONGRATULATIONS:String = "congratulate"; public static const ENG:String = "ENG"; public static const HELP:String = "help"; public static const SEND_TO_FRIENDS:String = "send_to friends"; public static const MORE_GAMES:String = "more_games"; public static const NEW_GAME:String = "new_game"; public static const ENTER_YOUR_NAME:String = "enter_your_name"; public static const LANGUAGE:String = "language"; public static const BECOME_A_FUN_ON_FACEBOOK:String = "became_a_fun_on_facebook"; public static const ESP:String = "ESP"; public static const REPLAY:String = "replay"; public static const SOUND:String = "sound"; public static const SHARE_GAME:String = "share_game"; public static const DEU:String = "DEU"; public static const FRA:String = "FRS"; public static const ITA:String = "ITA"; public static const TOP_SCORE:String = "top_score"; public static const LEVEL_FAILED:String = "level_failed"; public static const RUS:String = "RUS"; public static var user_texts:Array = new Array(); private static var _languages:Array = [ENG, ESP, PRT, ITA, UKR, RUS]; private static var _dictionary:XML = new XML((((("<dictionary>\r\n\t\t\t\t\t" + (((((((((((("<languages>\r\n\t\t\t\t\t\t\t" + (("<language id=\"" + ??esc_xattr ) + "\"><![CDATA[English]]></language>")) + "\r\n\t\t\t\t\t\t\t") + (("<language id=\"" + ??esc_xattr ) + "\"><![CDATA[Українська]]></language>")) + "\r\n\t\t\t\t\t\t\t") + (("<language id=\"" + ??esc_xattr ) + "\"><![CDATA[Русский]]></language>")) + "\r\n\t\t\t\t\t\t\t") + (("<language id=\"" + ??esc_xattr ) + "\"><![CDATA[Español]]></language>")) + "\r\n\t\t\t\t\t\t\t") + (("<language id=\"" + ??esc_xattr ) + "\"><![CDATA[Portugues]]></language>")) + " \r\n\t\t\t\t\t\t\t") + (("<language id=\"" + ??esc_xattr ) + "\"><![CDATA[Italiano]]></language>")) + "\r\n\t\t\t\t\t</languages>")) + "\r\n\t\t\t\t\t") + (((((((((((((((((((((((((((((((((((((((((((("<texts>\r\n\t\t\t\t\t\t\t" + (((((((((((((("<phrase id=\"1\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[New Game]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Нова Гра]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Новая Игра]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Nuevo juego]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Novo jogo]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Nuovo gioco]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"2\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Continue]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Продовжити]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Продолжить]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Continuar]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Continuar]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Continuare]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"3\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Top Score]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Результати]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Результаты]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Resultados]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Resultados]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Risultati]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"4\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Settings]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Налаштування]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Настройки]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Ajustes]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Especificações]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Impostazioni]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"5\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Help]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[допомога]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[помощь]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[ayuda]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[ajuda]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[aiuto]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"6\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Menu]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Меню]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Меню]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Menú]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Menú]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Menu]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"7\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Sound]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Звук]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Звук]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Sonido]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Sonido]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Suono]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"8\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Music]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Музика]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Музыка]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Música]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Música]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Musica]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"9\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Language]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Мова]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Язык]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Idioma]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Lengua]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Lingua]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"10\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Level Failed]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Халепа]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Неудача]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Nivel fracasado]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Nível fracassado]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Livello falito ]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"11\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Replay]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Грати Знов]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Играть Снова]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Jugar de nuevo]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Jogar de novo]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Giocare di nuovo]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"12\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[More Games]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Більше Ігор]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Больше Игр]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Más juegos gratis]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Mais jogos gratuitos]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Di più giochi gratis]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"13\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Send To Friends]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Надіслати Гру Другові]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Послать Игру Другу]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Enviar a los amigos]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Mandar aos amigos]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Inviare agli amici]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"14\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Follow us on Twitter]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Ми на Twitter]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Мы на Twitter]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Siga con nosotros en Twitter]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Sigam-nós no Twitter]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Siamo su Twitter]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"15\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Become a Fan on Facebook]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Ми на Facebook]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Мы на Facebook]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Estamos en Facebook]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Seja o fan no Facebook]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Siamo su Facebook]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + " \r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"16\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Share Game]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Запропонувати Гру]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Поделиться Игрой]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Compartir el juego]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Compartilhar o jogo]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Comunicare il gioco]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"17\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Congratulations]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Вітаємо]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Поздравляем]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Felicidades]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Parabéns]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Molti auguri]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"18\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Play Game]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Грати]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Играть]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Jugar]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Jogar]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Giocare]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\t\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"19\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Submit Top Score]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Надіслати Результат]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Отправить Результат]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Enviar el resultado]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Mandar o resultado]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Inviare il risultato]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"20\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Enter Your Name]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Введіть Ваше Ім'я]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Введите Ваше Имя]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Entre su nombre]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Entre o seu nome]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Entre il suo nome]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"21\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Submit]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Надіслати]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Отправить]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Enviar]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Mandar]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Inviare]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\t\t\r\n\t\t\t\t\t\t\t") + (((((((((((((("<phrase id=\"22\" name=\"" + ??esc_xattr ) + "\">\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Game Over]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Кінець Гри]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Конец Игры]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Juego Terminado]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Jogo Terminado]]></translation>")) + "\r\n\t\t\t\t\t\t\t\t\t") + (("<translation id=\"" + ??esc_xattr ) + "\"><![CDATA[Gioco Finito]]></translation>")) + "\r\n\t\t\t\t\t\t\t</phrase>")) + "\t\r\n\t\t\t\t\t</texts>")) + "\r\n\t\t\t</dictionary>")); ; private static var _current_language:String = "ENG"; public static function get languages():Array{ return (_languages); } public static function get language():String{ return (_current_language); } public static function set language(_arg1:String):void{ _arg1 = _arg1.toUpperCase(); var _local2:Boolean; var _local3:Number = 0; while (_local3 < _languages.length) { if (_languages[_local3] == _arg1){ _local2 = true; _current_language = _arg1; break; }; _local3++; }; if (_local2 == false){ _current_language = ENG; }; } public static function getTranslationByName(_arg1:String):String{ var val:String; var _name = _arg1; val = _dictionary.texts.phrase.(@name == _name).translation.(@id == _current_language); if (!val){ val = user_texts[_current_language][_name]; if (!val){ val = ""; trace(("error translate " + _name)); }; }; return (val); } user_texts[ENG] = []; user_texts[UKR] = []; user_texts[RUS] = []; user_texts[ESP] = []; user_texts[PRT] = []; user_texts[ITA] = []; user_texts[ENG]["score"] = "Score"; user_texts[UKR]["score"] = "результати"; user_texts[RUS]["score"] = "результаты"; user_texts[ESP]["score"] = "resultados"; user_texts[PRT]["score"] = "puntuacão"; user_texts[ITA]["score"] = "punteggio"; user_texts[ENG]["start"] = "Start"; user_texts[UKR]["start"] = "початок"; user_texts[RUS]["start"] = "начало"; user_texts[ESP]["start"] = "inicio"; user_texts[PRT]["start"] = "começo"; user_texts[ITA]["start"] = "inizio"; user_texts[ENG]["help"] = "Help"; user_texts[UKR]["help"] = "допомога"; user_texts[RUS]["help"] = "помощь"; user_texts[ESP]["help"] = "ayuda"; user_texts[PRT]["help"] = "ajuda"; user_texts[ITA]["help"] = "aiuto"; user_texts[ENG]["info"] = "Info"; user_texts[UKR]["info"] = "iнфо"; user_texts[RUS]["info"] = "инфо"; user_texts[ESP]["info"] = "info"; user_texts[PRT]["info"] = "info"; user_texts[ITA]["info"] = "info"; user_texts[ENG]["more"] = "More"; user_texts[UKR]["more"] = "бiльше"; user_texts[RUS]["more"] = "больше"; user_texts[ESP]["more"] = "más"; user_texts[PRT]["more"] = "mais"; user_texts[ITA]["more"] = "di più"; user_texts[ENG]["music"] = "Music"; user_texts[UKR]["music"] = "музика"; user_texts[RUS]["music"] = "музыка"; user_texts[ESP]["music"] = "música"; user_texts[PRT]["music"] = "música"; user_texts[ITA]["music"] = "musica"; user_texts[ENG]["on"] = "on"; user_texts[UKR]["on"] = "увiмкнено"; user_texts[RUS]["on"] = "включено"; user_texts[ESP]["on"] = "activado"; user_texts[PRT]["on"] = "ativado"; user_texts[ITA]["on"] = "attivato"; user_texts[ENG]["off"] = "off"; user_texts[UKR]["off"] = "вимкнено"; user_texts[RUS]["off"] = "выключено"; user_texts[ESP]["off"] = "desactivado"; user_texts[PRT]["off"] = "desactivado"; user_texts[ITA]["off"] = "disattivato"; user_texts[ENG]["back"] = "back"; user_texts[UKR]["back"] = "назад"; user_texts[RUS]["back"] = "назад"; user_texts[ESP]["back"] = "regresar"; user_texts[PRT]["back"] = "voltar"; user_texts[ITA]["back"] = "indietro"; user_texts[ENG]["desc_1"] = "Use the mouse to rotate the maze. Try moving the balls to the end point"; user_texts[UKR]["desc_1"] = "Використовуйте мишу для обертання лабiринту. Намагайтеся рухати м'ячi до кінцевої точки"; user_texts[RUS]["desc_1"] = "Используйте мышку для поворачивания лабиринта. Постарайтесь продвинуть мячи до конечной точки"; user_texts[ESP]["desc_1"] = "Usa el ratón para hacer girar el laberinto. Trata de mover las pelotas hacia el último punto"; user_texts[PRT]["desc_1"] = "Use o mouse para fazer girar o labirinto. Tente de mover as bolas ao ponto final"; user_texts[ITA]["desc_1"] = "Utilizza il mouse per ruotare il labirinto. Prova a spostare le palle per il punto finale"; user_texts[ENG]["desc_2"] = "there are two types of final point"; user_texts[UKR]["desc_2"] = "існують два види кінцевої точки"; user_texts[RUS]["desc_2"] = "существуют два вида конечной точки"; user_texts[ESP]["desc_2"] = "existen dos tipos del punto final"; user_texts[PRT]["desc_2"] = "existem dois tipos do ponto final"; user_texts[ITA]["desc_2"] = "esistono due tipi del punto finale"; user_texts[ENG]["desc_3"] = "all the balls should be located on the square to complete the level"; user_texts[UKR]["desc_3"] = "усі м'ячі мають знаходитися у квадраті, аби пройти рівень"; user_texts[RUS]["desc_3"] = "все мячи должны находиться в квадрате, чтобы пройти уровень"; user_texts[ESP]["desc_3"] = "todas las pelotas tienen que estar en el cuadrado para completar el nivél"; user_texts[PRT]["desc_3"] = "todas as bolas devem estar no quadrado para acabar o nível"; user_texts[ITA]["desc_3"] = "tutte le palle devono stare nel quadrado per completare il livello"; user_texts[ENG]["desc_4"] = "the ball has to touch the circle only once to complete the level"; user_texts[UKR]["desc_4"] = "м'яч має доторкнутися до кола лише один раз, щоб пройти рівень"; user_texts[RUS]["desc_4"] = "мяч должен дотронуться до круга всего один раз, чтобы уровень был пройден"; user_texts[ESP]["desc_4"] = "la pelota tiene que tocar el círculo sólo una vez para completar el nivél"; user_texts[PRT]["desc_4"] = "a bola deve tocar o círculo apenas uma vez para completar o nível"; user_texts[ITA]["desc_4"] = "la palla deve sfiorare il circulo solo una volta per completare il livello"; user_texts[ENG]["made_using_box2d"] = "Made using BOX2D"; user_texts[UKR]["made_using_box2d"] = "Вироблено з використанням BOX2D"; user_texts[RUS]["made_using_box2d"] = "Произведено с ипользованием BOX2D"; user_texts[ESP]["made_using_box2d"] = "Hecho usando BOX2D"; user_texts[PRT]["made_using_box2d"] = "Feito usando BOX2D"; user_texts[ITA]["made_using_box2d"] = "Fatto usando BOX2D"; user_texts[ENG]["deveoped_by_collipop"] = "Developed by Harry Kilian"; user_texts[UKR]["deveoped_by_collipop"] = "Вироблено Harry Kilian"; user_texts[RUS]["deveoped_by_collipop"] = "Произведено Harry Kilian"; user_texts[ESP]["deveoped_by_collipop"] = "Elaborado por Harry Kilian"; user_texts[PRT]["deveoped_by_collipop"] = "Realizado por Harry Kilian"; user_texts[ITA]["deveoped_by_collipop"] = "Creato da Harry Kilian"; user_texts[ENG]["level_1"] = "Basics"; user_texts[UKR]["level_1"] = "Початковий рівень"; user_texts[RUS]["level_1"] = "Начинающий уровень"; user_texts[ESP]["level_1"] = "Nivél elementario"; user_texts[PRT]["level_1"] = "Nível elementar"; user_texts[ITA]["level_1"] = "Livello principante"; user_texts[ENG]["desc_5"] = "Try clicking on the screen to rotate it in order to get the ball to the end"; user_texts[UKR]["desc_5"] = "Клікай по екрану, щоб привести його в дію, та рухай м'яч до кінця"; user_texts[RUS]["desc_5"] = "Кликай по экрану, чтобы он начал крутиться, и двигай мяч до самого конца"; user_texts[ESP]["desc_5"] = "Haz clic en la pantalla para que se ponga a girar, y mueve la pelota hacia el punto final"; user_texts[PRT]["desc_5"] = "Deve clicar na tela para girá-la, tentando de mover a bola até o fim. "; user_texts[ITA]["desc_5"] = "Prova a cliccare sullo schermo per ruotarlo in modo da spostare la palla fino alla fine"; user_texts[ENG]["level_2"] = "Easy"; user_texts[UKR]["level_2"] = "Легкий"; user_texts[RUS]["level_2"] = "Легкий"; user_texts[ESP]["level_2"] = "Fácil"; user_texts[PRT]["level_2"] = "Fácil"; user_texts[ITA]["level_2"] = "Facile"; user_texts[ENG]["desc_6"] = "avoid dragging at the center of the screen otherwise your control will be less precise"; user_texts[UKR]["desc_6"] = "намагайся не тягнути м'яч до центру екрану, оскільки тоді твоє управління буде менш точним"; user_texts[RUS]["desc_6"] = "постарайся не тащить мяч к центру экрана, так как в данном случае твое управление будет менее точным "; user_texts[ESP]["desc_6"] = "trata de no llevar la pelota hacia el centro de la pantalla porque en tal caso tu manejo sería menos preciso"; user_texts[PRT]["desc_6"] = "tente de não arrastar a bola no centro do ecrã de outro modo o seu controlo será menos preciso"; user_texts[ITA]["desc_6"] = "evita di trascinare la palla al centro dello schermo, altrimenti il controllo verrà meno preciso"; user_texts[ENG]["level_3"] = "winding"; user_texts[UKR]["level_3"] = "поворот"; user_texts[RUS]["level_3"] = "поворот"; user_texts[ESP]["level_3"] = "las curvas"; user_texts[PRT]["level_3"] = "o enrolamento"; user_texts[ITA]["level_3"] = "le voltate"; user_texts[ENG]["level_4"] = "double the fun"; user_texts[UKR]["level_4"] = "подвійна розвага"; user_texts[RUS]["level_4"] = "двойное развлечение"; user_texts[ESP]["level_4"] = "doblar el entretenimiento"; user_texts[PRT]["level_4"] = "dobrar a diversão"; user_texts[ITA]["level_4"] = "doppiare il divertimento"; user_texts[ENG]["desc_7"] = "sometimes you will have multiple balls that need to reach the end points"; user_texts[UKR]["desc_7"] = "іноді будуть з'являтися декілька м'ячів, що мають потрапити в кінцеві точки"; user_texts[RUS]["desc_7"] = "иногда будут появляться несколько мячей, которые должны попасть в конечные точки"; user_texts[ESP]["desc_7"] = "de vez en cuando aparecen varias pelotas que tienen que llegar a los puntos finales"; user_texts[PRT]["desc_7"] = "as vezes você terá várias bolas que precisam chegar aos pontos finais"; user_texts[ITA]["desc_7"] = "a volte avrai delle più palle che hanno bisogno di raggiungere i punti finali."; user_texts[ENG]["level_5"] = "temporarily hidden"; user_texts[UKR]["level_5"] = "тимчасово схований"; user_texts[RUS]["level_5"] = "временно спрятан"; user_texts[ESP]["level_5"] = "temporalmente escondido"; user_texts[PRT]["level_5"] = "temporariamente oculto"; user_texts[ITA]["level_5"] = "temporaneamente nascosto"; user_texts[ENG]["level_6"] = "inside out"; user_texts[UKR]["level_6"] = "навиворіт"; user_texts[RUS]["level_6"] = "наизнанку"; user_texts[ESP]["level_6"] = "al revés"; user_texts[PRT]["level_6"] = "dentro para fora"; user_texts[ITA]["level_6"] = "rovesciare"; user_texts[ENG]["desc_8"] = "a circular end point is like a switch so you only need to hit it once"; user_texts[UKR]["desc_8"] = "кінцева точка у вигляді кола є вимикачем, тому слід доторкнутися до неї всього один раз"; user_texts[RUS]["desc_8"] = "конечная точка в виде круга является выключателем, поэтому следует дотронуться до нее всего один раз"; user_texts[ESP]["desc_8"] = "el punto final circular es un interruptor así que es necesario tocarlo sólo una vez"; user_texts[PRT]["desc_8"] = "um ponto final circular é como um interruptor que você só precisa acertar uma vez"; user_texts[ITA]["desc_8"] = "un punto circolare finale è come un interruttore percío hai bisogno di sfiorarlo solo una volta "; user_texts[ENG]["level_7"] = "inverse gravity"; user_texts[UKR]["level_7"] = "протилежна гравітація"; user_texts[RUS]["level_7"] = "противоположная гравитация"; user_texts[ESP]["level_7"] = "gravitación inversa"; user_texts[PRT]["level_7"] = "gravidade inversa"; user_texts[ITA]["level_7"] = "gravitazione opposta"; user_texts[ENG]["level_8"] = "two sides"; user_texts[UKR]["level_8"] = "дві сторони"; user_texts[RUS]["level_8"] = "две стороны"; user_texts[ESP]["level_8"] = "dos lados"; user_texts[PRT]["level_8"] = "dois lados"; user_texts[ITA]["level_8"] = "due lati"; user_texts[ENG]["level_9"] = "open space"; user_texts[UKR]["level_9"] = "відкритий простір"; user_texts[RUS]["level_9"] = "открытое пространство"; user_texts[ESP]["level_9"] = "espacio abierto"; user_texts[PRT]["level_9"] = "espaço aberto"; user_texts[ITA]["level_9"] = "spazio aperto"; user_texts[ENG]["level_10"] = "two rooms"; user_texts[UKR]["level_10"] = "дві кімнати"; user_texts[RUS]["level_10"] = "две комнаты"; user_texts[ESP]["level_10"] = "dos cuartos"; user_texts[PRT]["level_10"] = "dois quartos"; user_texts[ITA]["level_10"] = "due stanze"; user_texts[ENG]["level_11"] = "inwards"; user_texts[UKR]["level_11"] = "внутрішній простір"; user_texts[RUS]["level_11"] = "внутреннее пространство"; user_texts[ESP]["level_11"] = "el interior"; user_texts[PRT]["level_11"] = "o interior"; user_texts[ITA]["level_11"] = "l'interno"; user_texts[ENG]["level_12"] = "take it slowly"; user_texts[UKR]["level_12"] = "не поспішай"; user_texts[RUS]["level_12"] = "не спеши"; user_texts[ESP]["level_12"] = "tomalo con calma"; user_texts[PRT]["level_12"] = "não esteja com pressa"; user_texts[ITA]["level_12"] = "non avere fretta"; user_texts[ENG]["desc_9"] = "dragging the maze further from the center will provide smoother movement"; user_texts[UKR]["desc_9"] = "відтягування лабіринту подалі від центру зробить рухи більш м'якими"; user_texts[RUS]["desc_9"] = "оттягивание лабиринта подальше от центра придаст движениям мягкость"; user_texts[ESP]["desc_9"] = "llevando el laberinto lejos del centro obtenerás el movimiento más suave"; user_texts[PRT]["desc_9"] = "arrastando o labirinto mais longe do centro fornecerá o movimento mais suave"; user_texts[ITA]["desc_9"] = "trascinando il labirinto ulteriormente dal centro fornirà un movimento di più agevole"; user_texts[ENG]["level_13"] = "the grid"; user_texts[UKR]["level_13"] = "решітка"; user_texts[RUS]["level_13"] = "решетка"; user_texts[ESP]["level_13"] = "la reja"; user_texts[PRT]["level_13"] = "a rede"; user_texts[ITA]["level_13"] = "la grata"; user_texts[ENG]["level_14"] = "same again"; user_texts[UKR]["level_14"] = "те ж саме ще раз"; user_texts[RUS]["level_14"] = "то же самое еще раз"; user_texts[ESP]["level_14"] = "lo mismo otra vez"; user_texts[PRT]["level_14"] = "o mesmo outra vez"; user_texts[ITA]["desc_14"] = "lo stesso l'altra volta"; user_texts[ENG]["level_15"] = "funnel"; user_texts[UKR]["level_15"] = "воронка"; user_texts[RUS]["level_15"] = "воронка"; user_texts[ESP]["level_15"] = "embudo"; user_texts[PRT]["level_15"] = "funil"; user_texts[ITA]["level_15"] = "imbuto"; user_texts[ENG]["desc_10"] = "grey balls can not activate the end point"; user_texts[UKR]["desc_10"] = "сірі м'ячі не можуть активувати кінцеву точку"; user_texts[RUS]["desc_10"] = "серые мячи не могут активировать конечную точку"; user_texts[ESP]["desc_10"] = "las pelotas grises no pueden activar el punto final"; user_texts[PRT]["desc_10"] = "as bolas de cor cinza não podem ativar o ponto final"; user_texts[ITA]["desc_10"] = "le palle di colore grigio non possono attivare il punto finale"; user_texts[ENG]["level_16"] = "windmill"; user_texts[UKR]["level_16"] = "вітряк"; user_texts[RUS]["level_16"] = "ветряная мельница"; user_texts[ESP]["level_16"] = "molino de viento"; user_texts[PRT]["level_16"] = "moinho de vento"; user_texts[ITA]["level_16"] = "mulino a vento"; user_texts[ENG]["level_17"] = "the open grid"; user_texts[UKR]["level_17"] = "відкрита решітка"; user_texts[RUS]["level_17"] = "открытая решетка"; user_texts[ESP]["level_17"] = "la reja abierta"; user_texts[PRT]["level_17"] = "a rede aberta"; user_texts[ITA]["level_17"] = "la grata aperta"; user_texts[ENG]["level_18"] = "two ends"; user_texts[UKR]["level_18"] = "два кінця"; user_texts[RUS]["level_18"] = "два конца"; user_texts[ESP]["level_18"] = "dos fines"; user_texts[PRT]["level_18"] = "dois fins"; user_texts[ITA]["level_18"] = "due fini"; user_texts[ENG]["level_19"] = "hide yourself"; user_texts[UKR]["level_19"] = "сховайся"; user_texts[RUS]["level_19"] = "спрячься"; user_texts[ESP]["level_19"] = "escondete"; user_texts[PRT]["level_19"] = "esconde-te"; user_texts[ITA]["level_19"] = "nascondeti"; user_texts[ENG]["level_20"] = "last level"; user_texts[UKR]["level_20"] = "останній рівень"; user_texts[RUS]["level_20"] = "последний уровень"; user_texts[ESP]["level_20"] = "el último nivél"; user_texts[PRT]["level_20"] = "o último nível"; user_texts[ITA]["level_20"] = "l'ultimo livello"; user_texts[ENG]["desc_11"] = "congratulations you completed piviball!"; user_texts[UKR]["desc_11"] = "вітання ти завершив piviball!"; user_texts[RUS]["desc_11"] = "поздравляем ты прошел piviball!"; user_texts[ESP]["desc_11"] = "¡felicitaciones acabaste de completar piviball!"; user_texts[PRT]["desc_11"] = "parabéns você acabou de completar piviball!"; user_texts[ITA]["desc_11"] = "auguri hai completato piviball!"; user_texts[ENG]["level"] = "level "; user_texts[UKR]["level"] = "рівень "; user_texts[RUS]["level"] = "уровень "; user_texts[ESP]["level"] = "nivé: "; user_texts[PRT]["level"] = "nível "; user_texts[ITA]["level"] = "livello "; user_texts[ENG]["fail"] = "failed"; user_texts[UKR]["fail"] = "не пройдено"; user_texts[RUS]["fail"] = "не пройдено"; user_texts[ESP]["fail"] = "fallado"; user_texts[PRT]["fail"] = "falhado"; user_texts[ITA]["fail"] = "fallito"; user_texts[ENG]["comp"] = "complete"; user_texts[UKR]["comp"] = "завершено"; user_texts[RUS]["comp"] = "пройдено"; user_texts[ESP]["comp"] = "completado"; user_texts[PRT]["comp"] = "completo"; user_texts[ITA]["comp"] = "completato"; } }//package com.gamezhero.api.as3
Section 83
//GamezheroGlobal (com.gamezhero.api.as3.GamezheroGlobal) package com.gamezhero.api.as3 { import flash.display.*; import flash.net.*; import com.gamezhero.api.as3.utils.*; import flash.external.*; public class GamezheroGlobal { public static const SAFARI:String = "safari"; public static const IE:String = "ie"; public static const OPERA:String = "opera"; public static const FIREFOX:String = "firefox"; public static const CHROME:String = "chrome"; public static var _host:String = "error"; public static var _game_name:String = "piviball"; public static var _game_code:String = "203195161156172201199162211086146153161218166169203220156196152165159151197163156178203198214165070148148155170"; private static var _app_root:MovieClip; public static var _browser:String = "unset"; private static var _app_multilanguage:Boolean = false; public static function set root(_arg1:MovieClip):void{ var _local2:MovieClip = _arg1; if (_local2.root == null){ _app_root = null; } else { _app_root = (_local2.root as MovieClip); }; } public static function set gameCode(_arg1:String):void{ _game_code = _arg1; } public static function set gameName(_arg1:String):void{ _game_name = _arg1; } public static function get domain():String{ var url:URL; if (_host != "error"){ return (_host); }; try { url = new URL(_app_root.stage.loaderInfo.url); _host = url.host; if (_host == null){ _host = "local"; }; } catch(e:Error) { trace("ERROR DOMAIN"); _host = "error"; }; return (_host); } public static function getURL(_arg1:String, _arg2:String="_blank"):void{ var _local3:URLRequest = new URLRequest(_arg1); navigateToURL(_local3, _arg2); } public static function get multilanguage():Boolean{ return (_app_multilanguage); } public static function set multilanguage(_arg1:Boolean):void{ _app_multilanguage = _arg1; } public static function toText(_arg1:Array):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } public static function get gameName():String{ return (_game_name); } public static function get browser():String{ var st:String; if (_browser == "unset"){ if (ExternalInterface.available){ try { st = ExternalInterface.call("function (){ return navigator['userAgent']}"); st = st.toLowerCase(); if (st.indexOf("firefox") != -1){ _browser = FIREFOX; } else { if (st.indexOf("chrome") != -1){ _browser = CHROME; } else { if (st.indexOf("safari") != -1){ _browser = SAFARI; } else { if (st.indexOf("opera") != -1){ _browser = OPERA; } else { _browser = IE; }; }; }; }; } catch(e:Error) { _browser = IE; }; } else { _browser = IE; }; }; return (_browser); } public static function get root():MovieClip{ return (_app_root); } public static function fromText(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } public static function get gameCode():String{ return (_game_code); } } }//package com.gamezhero.api.as3
Section 84
//UserInfo (com.gamezhero.api.as3.UserInfo) package com.gamezhero.api.as3 { import flash.display.*; import flash.system.*; import flash.external.*; public class UserInfo { public var engine:MovieClip; public var game_multilanguage:Boolean; public var game_language:String; public var skin:MovieClip; public var game_languages:Array; public var ad_zone:String;// = "preloader" public var score:Number; public var game_code:String; public var flash_vars:Object; public var flash_height:Number; public var referrer:String; public var flash_url:String; public var mode:String; public var browser:String; public var href:String; public var game_domain:String; private var _goal:MovieClip; public var api_version:String;// = "AS3 - v4.0" public var capabilities:String; public var flash_width:Number; public var flash_domain:String; public var publisher:String;// = "gamezhero" public var game_name:String; public function UserInfo(_arg1:MovieClip){ iniInfo(); } private function iniInfo():void{ var i:String; this["publisher"] = "gamezhero"; this["ad_zone"] = "preloader"; this["api_version"] = "AS3 - v4.0"; this["flash_vars"] = new Object(); this["capabilities"] = Capabilities.serverString; if (ExternalInterface.available){ try { this["href"] = ExternalInterface.call("function (){return document.location.href}"); } catch(e:Error) { this["href"] = "-1"; }; try { this["browser"] = ExternalInterface.call("function (){var st = ''; for (i in navigator){ if (typeof(navigator[i])!='function'){ st+=i+'='+navigator[i]+'&'; }} return st}"); } catch(e:Error) { this["browser"] = "-1"; }; try { this["referrer"] = ExternalInterface.call("function (){return document.referrer}"); } catch(e:Error) { this["referrer"] = "-1"; }; } else { this["href"] = "-1"; this["browser"] = "-1"; this["referrer"] = "-1"; }; this["flash_domain"] = GamezheroGlobal.domain; var _stage:Stage = GamezheroGlobal.root.stage; try { this["flash_width"] = _stage.stageWidth; this["flash_height"] = _stage.stageHeight; this["flash_url"] = _stage.root.loaderInfo.url; } catch(e:Error) { }; try { for (i in _stage.root.loaderInfo.parameters) { this["flash_vars"][i] = _stage.root.loaderInfo.parameters[i]; }; } catch(e:Error) { }; this["game_name"] = GamezheroGlobal.gameName; this["game_code"] = GamezheroGlobal.gameCode; this["game_domain"] = GamezheroGlobal.domain; this["game_language"] = GamezheroDictionary.language; this["game_languages"] = GamezheroDictionary.languages; this["game_multilanguage"] = GamezheroGlobal.multilanguage; } } }//package com.gamezhero.api.as3
Section 85
//CampaignInfo (com.google.analytics.campaign.CampaignInfo) package com.google.analytics.campaign { import com.google.analytics.utils.*; public class CampaignInfo { private var _new:Boolean; private var _empty:Boolean; public function CampaignInfo(_arg1:Boolean=true, _arg2:Boolean=false){ _empty = _arg1; _new = _arg2; } public function toURLString():String{ var _local1:Variables = toVariables(); return (_local1.toString()); } public function isNew():Boolean{ return (_new); } public function get utmcn():String{ return ("1"); } public function isEmpty():Boolean{ return (_empty); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; if (((!(isEmpty())) && (isNew()))){ _local1.utmcn = utmcn; }; if (((!(isEmpty())) && (!(isNew())))){ _local1.utmcr = utmcr; }; return (_local1); } public function get utmcr():String{ return ("1"); } } }//package com.google.analytics.campaign
Section 86
//CampaignKey (com.google.analytics.campaign.CampaignKey) package com.google.analytics.campaign { public class CampaignKey { public var UCMD:String;// = "utm_medium" public var UCID:String;// = "utm_id" public var UCTR:String;// = "utm_term" public var UCSR:String;// = "utm_source" public var UCNO:String;// = "utm_nooverride" public var UCCN:String;// = "utm_campaign" public var UGCLID:String;// = "gclid" public var UCCT:String;// = "utm_content" } }//package com.google.analytics.campaign
Section 87
//CampaignManager (com.google.analytics.campaign.CampaignManager) package com.google.analytics.campaign { import com.google.analytics.core.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; public class CampaignManager { private var _config:Configuration; private var _domainHash:Number; private var _debug:DebugConfiguration; private var _timeStamp:Number; private var _referrer:String; private var _buffer:Buffer; public static const trackingDelimiter:String = "|"; public function CampaignManager(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Number, _arg5:String, _arg6:Number){ _config = _arg1; _debug = _arg2; _buffer = _arg3; _domainHash = _arg4; _referrer = _arg5; _timeStamp = _arg6; } public function getCampaignInformation(_arg1:String, _arg2:Boolean):CampaignInfo{ var _local4:CampaignTracker; var _local8:CampaignTracker; var _local9:int; var _local3:CampaignInfo = new CampaignInfo(); var _local5:Boolean; var _local6:Boolean; var _local7:int; if (((_config.allowLinker) && (_buffer.isGenuine()))){ if (!_buffer.hasUTMZ()){ return (_local3); }; }; _local4 = getTrackerFromSearchString(_arg1); if (isValid(_local4)){ _local6 = hasNoOverride(_arg1); if (((_local6) && (!(_buffer.hasUTMZ())))){ return (_local3); }; }; if (!isValid(_local4)){ _local4 = getOrganicCampaign(); if (((!(_buffer.hasUTMZ())) && (isIgnoredKeyword(_local4)))){ return (_local3); }; }; if (((!(isValid(_local4))) && (_arg2))){ _local4 = getReferrerCampaign(); if (((!(_buffer.hasUTMZ())) && (isIgnoredReferral(_local4)))){ return (_local3); }; }; if (!isValid(_local4)){ if (((!(_buffer.hasUTMZ())) && (_arg2))){ _local4 = getDirectCampaign(); }; }; if (!isValid(_local4)){ return (_local3); }; if (((_buffer.hasUTMZ()) && (!(_buffer.utmz.isEmpty())))){ _local8 = new CampaignTracker(); _local8.fromTrackerString(_buffer.utmz.campaignTracking); _local5 = (_local8.toTrackerString() == _local4.toTrackerString()); _local7 = _buffer.utmz.responseCount; }; if (((!(_local5)) || (_arg2))){ _local9 = _buffer.utma.sessionCount; _local7++; if (_local9 == 0){ _local9 = 1; }; _buffer.utmz.domainHash = _domainHash; _buffer.utmz.campaignCreation = _timeStamp; _buffer.utmz.campaignSessions = _local9; _buffer.utmz.responseCount = _local7; _buffer.utmz.campaignTracking = _local4.toTrackerString(); _debug.info(_buffer.utmz.toString(), VisualDebugMode.geek); _local3 = new CampaignInfo(false, true); } else { _local3 = new CampaignInfo(false, false); }; return (_local3); } public function hasNoOverride(_arg1:String):Boolean{ var _local2:CampaignKey = _config.campaignKey; if (_arg1 == ""){ return (false); }; var _local3:Variables = new Variables(_arg1); var _local4 = ""; if (_local3.hasOwnProperty(_local2.UCNO)){ _local4 = _local3[_local2.UCNO]; switch (_local4){ case "1": return (true); case "": case "0": default: return (false); }; }; return (false); } public function getTrackerFromSearchString(_arg1:String):CampaignTracker{ var _local2:CampaignTracker = getOrganicCampaign(); var _local3:CampaignTracker = new CampaignTracker(); var _local4:CampaignKey = _config.campaignKey; if (_arg1 == ""){ return (_local3); }; var _local5:Variables = new Variables(_arg1); if (_local5.hasOwnProperty(_local4.UCID)){ _local3.id = _local5[_local4.UCID]; }; if (_local5.hasOwnProperty(_local4.UCSR)){ _local3.source = _local5[_local4.UCSR]; }; if (_local5.hasOwnProperty(_local4.UGCLID)){ _local3.clickId = _local5[_local4.UGCLID]; }; if (_local5.hasOwnProperty(_local4.UCCN)){ _local3.name = _local5[_local4.UCCN]; } else { _local3.name = "(not set)"; }; if (_local5.hasOwnProperty(_local4.UCMD)){ _local3.medium = _local5[_local4.UCMD]; } else { _local3.medium = "(not set)"; }; if (_local5.hasOwnProperty(_local4.UCTR)){ _local3.term = _local5[_local4.UCTR]; } else { if (((_local2) && (!((_local2.term == ""))))){ _local3.term = _local2.term; }; }; if (_local5.hasOwnProperty(_local4.UCCT)){ _local3.content = _local5[_local4.UCCT]; }; return (_local3); } public function getOrganicCampaign():CampaignTracker{ var _local1:CampaignTracker; var _local4:Array; var _local5:OrganicReferrer; var _local6:String; if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){ return (_local1); }; var _local2:URL = new URL(_referrer); var _local3 = ""; if (_local2.hostName != ""){ if (_local2.hostName.indexOf(".") > -1){ _local4 = _local2.hostName.split("."); switch (_local4.length){ case 2: _local3 = _local4[0]; break; case 3: _local3 = _local4[1]; break; }; }; }; if (_config.organic.match(_local3)){ _local5 = _config.organic.getReferrerByName(_local3); _local6 = _config.organic.getKeywordValue(_local5, _local2.search); _local1 = new CampaignTracker(); _local1.source = _local5.engine; _local1.name = "(organic)"; _local1.medium = "organic"; _local1.term = _local6; }; return (_local1); } public function getDirectCampaign():CampaignTracker{ var _local1:CampaignTracker = new CampaignTracker(); _local1.source = "(direct)"; _local1.name = "(direct)"; _local1.medium = "(none)"; return (_local1); } public function isIgnoredKeyword(_arg1:CampaignTracker):Boolean{ if (((_arg1) && ((_arg1.medium == "organic")))){ return (_config.organic.isIgnoredKeyword(_arg1.term)); }; return (false); } public function isIgnoredReferral(_arg1:CampaignTracker):Boolean{ if (((_arg1) && ((_arg1.medium == "referral")))){ return (_config.organic.isIgnoredReferral(_arg1.source)); }; return (false); } public function isValid(_arg1:CampaignTracker):Boolean{ if (((_arg1) && (_arg1.isValid()))){ return (true); }; return (false); } public function getReferrerCampaign():CampaignTracker{ var _local1:CampaignTracker; if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){ return (_local1); }; var _local2:URL = new URL(_referrer); var _local3:String = _local2.hostName; var _local4:String = _local2.path; if (_local3.indexOf("www.") == 0){ _local3 = _local3.substr(4); }; _local1 = new CampaignTracker(); _local1.source = _local3; _local1.name = "(referral)"; _local1.medium = "referral"; _local1.content = _local4; return (_local1); } public static function isInvalidReferrer(_arg1:String):Boolean{ var _local2:URL; if ((((((_arg1 == "")) || ((_arg1 == "-")))) || ((_arg1 == "0")))){ return (true); }; if (_arg1.indexOf("://") > -1){ _local2 = new URL(_arg1); if ((((_local2.protocol == Protocols.file)) || ((_local2.protocol == Protocols.none)))){ return (true); }; }; return (false); } public static function isFromGoogleCSE(_arg1:String, _arg2:Configuration):Boolean{ var _local3:URL = new URL(_arg1); if (_local3.hostName.indexOf(_arg2.google) > -1){ if (_local3.search.indexOf((_arg2.googleSearchParam + "=")) > -1){ if (_local3.path == ("/" + _arg2.googleCsePath)){ return (true); }; }; }; return (false); } } }//package com.google.analytics.campaign
Section 88
//CampaignTracker (com.google.analytics.campaign.CampaignTracker) package com.google.analytics.campaign { import com.google.analytics.utils.*; public class CampaignTracker { public var content:String; public var source:String; public var clickId:String; public var name:String; public var term:String; public var medium:String; public var id:String; public function CampaignTracker(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:String="", _arg5:String="", _arg6:String="", _arg7:String=""){ this.id = _arg1; this.source = _arg2; this.clickId = _arg3; this.name = _arg4; this.medium = _arg5; this.term = _arg6; this.content = _arg7; } public function isValid():Boolean{ if (((((!((id == ""))) || (!((source == ""))))) || (!((clickId == ""))))){ return (true); }; return (false); } public function toTrackerString():String{ var _local1:Array = []; _addIfNotEmpty(_local1, "utmcid=", id); _addIfNotEmpty(_local1, "utmcsr=", source); _addIfNotEmpty(_local1, "utmgclid=", clickId); _addIfNotEmpty(_local1, "utmccn=", name); _addIfNotEmpty(_local1, "utmcmd=", medium); _addIfNotEmpty(_local1, "utmctr=", term); _addIfNotEmpty(_local1, "utmcct=", content); return (_local1.join(CampaignManager.trackingDelimiter)); } private function _addIfNotEmpty(_arg1:Array, _arg2:String, _arg3:String):void{ if (_arg3 != ""){ _arg3 = _arg3.split("+").join("%20"); _arg3 = _arg3.split(" ").join("%20"); _arg1.push((_arg2 + _arg3)); }; } public function fromTrackerString(_arg1:String):void{ var _local2:String = _arg1.split(CampaignManager.trackingDelimiter).join("&"); var _local3:Variables = new Variables(_local2); if (_local3.hasOwnProperty("utmcid")){ this.id = _local3["utmcid"]; }; if (_local3.hasOwnProperty("utmcsr")){ this.source = _local3["utmcsr"]; }; if (_local3.hasOwnProperty("utmccn")){ this.name = _local3["utmccn"]; }; if (_local3.hasOwnProperty("utmcmd")){ this.medium = _local3["utmcmd"]; }; if (_local3.hasOwnProperty("utmctr")){ this.term = _local3["utmctr"]; }; if (_local3.hasOwnProperty("utmcct")){ this.content = _local3["utmcct"]; }; if (_local3.hasOwnProperty("utmgclid")){ this.clickId = _local3["utmgclid"]; }; } } }//package com.google.analytics.campaign
Section 89
//BrowserInfo (com.google.analytics.core.BrowserInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.utils.*; public class BrowserInfo { private var _config:Configuration; private var _info:Environment; public function BrowserInfo(_arg1:Configuration, _arg2:Environment){ _config = _arg1; _info = _arg2; } public function get utmul():String{ return (_info.language.toLowerCase()); } public function get utmje():String{ return ("0"); } public function toURLString():String{ var _local1:Variables = toVariables(); return (_local1.toString()); } public function get utmsr():String{ return (((_info.screenWidth + "x") + _info.screenHeight)); } public function get utmfl():String{ var _local1:Version; if (_config.detectFlash){ _local1 = _info.flashVersion; return (((((_local1.major + ".") + _local1.minor) + " r") + _local1.build)); }; return ("-"); } public function get utmcs():String{ return (_info.languageEncoding); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; _local1.utmcs = utmcs; _local1.utmsr = utmsr; _local1.utmsc = utmsc; _local1.utmul = utmul; _local1.utmje = utmje; _local1.utmfl = utmfl; return (_local1); } public function get utmsc():String{ return ((_info.screenColorDepth + "-bit")); } } }//package com.google.analytics.core
Section 90
//Buffer (com.google.analytics.core.Buffer) package com.google.analytics.core { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.net.*; import com.google.analytics.data.*; public dynamic class Buffer { private var _SO:SharedObject; private var _data:Object; private var _OBJ:Object; private var _utmb:UTMB; private var _utmc:UTMC; private var _utma:UTMA; private var _debug:DebugConfiguration; private var _utmk:UTMK; private var _config:Configuration; private var _utmv:UTMV; private var _utmx:UTMX; private var _utmz:UTMZ; private var _volatile:Boolean; public function Buffer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Boolean=false, _arg4:Object=null){ var _local5:String; super(); _config = _arg1; _debug = _arg2; _data = _arg4; _volatile = _arg3; if (_volatile){ _OBJ = new Object(); if (_data){ for (_local5 in _data) { _OBJ[_local5] = _data[_local5]; }; }; }; } public function save():void{ var flushStatus:String; if (!isVolatile()){ flushStatus = null; try { flushStatus = _SO.flush(); } catch(e:Error) { _debug.warning("Error...Could not write SharedObject to disk"); }; switch (flushStatus){ case SharedObjectFlushStatus.PENDING: _debug.info("Requesting permission to save object..."); _SO.addEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus); break; case SharedObjectFlushStatus.FLUSHED: _debug.info("Value flushed to disk."); break; }; }; } public function get utmv():UTMV{ if (!hasUTMV()){ _createUMTV(); }; return (_utmv); } public function get utmx():UTMX{ if (!hasUTMX()){ _createUMTX(); }; return (_utmx); } public function get utmz():UTMZ{ if (!hasUTMZ()){ _createUMTZ(); }; return (_utmz); } public function hasUTMA():Boolean{ if (_utma){ return (true); }; return (false); } public function hasUTMB():Boolean{ if (_utmb){ return (true); }; return (false); } public function hasUTMC():Boolean{ if (_utmc){ return (true); }; return (false); } public function clearCookies():void{ utma.reset(); utmb.reset(); utmc.reset(); utmz.reset(); utmv.reset(); utmk.reset(); } public function resetCurrentSession():void{ _clearUTMB(); _clearUTMC(); save(); } public function hasUTMK():Boolean{ if (_utmk){ return (true); }; return (false); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ var _local3:String = toLinkerParams(); var _local4:String = _arg1; var _local5:Array = _arg1.split("#"); if (_local3){ if (_arg2){ if (1 >= _local5.length){ _local4 = (_local4 + ("#" + _local3)); } else { _local4 = (_local4 + ("&" + _local3)); }; } else { if (1 >= _local5.length){ if (_arg1.indexOf("?") > -1){ _local4 = (_local4 + "&"); } else { _local4 = (_local4 + "?"); }; _local4 = (_local4 + _local3); } else { _local4 = _local5[0]; if (_arg1.indexOf("?") > -1){ _local4 = (_local4 + "&"); } else { _local4 = (_local4 + "?"); }; _local4 = (_local4 + ((_local3 + "#") + _local5[1])); }; }; }; return (_local4); } public function generateCookiesHash():Number{ var _local1 = ""; _local1 = (_local1 + utma.valueOf()); _local1 = (_local1 + utmb.valueOf()); _local1 = (_local1 + utmc.valueOf()); _local1 = (_local1 + utmx.valueOf()); _local1 = (_local1 + utmz.valueOf()); _local1 = (_local1 + utmv.valueOf()); return (Utils.generateHash(_local1)); } private function _createUMTA():void{ _utma = new UTMA(); _utma.proxy = this; } private function _createUMTB():void{ _utmb = new UTMB(); _utmb.proxy = this; } private function _createUMTC():void{ _utmc = new UTMC(); } public function hasUTMV():Boolean{ if (_utmv){ return (true); }; return (false); } private function _createUMTK():void{ _utmk = new UTMK(); _utmk.proxy = this; } public function hasUTMX():Boolean{ if (_utmx){ return (true); }; return (false); } public function hasUTMZ():Boolean{ if (_utmz){ return (true); }; return (false); } private function _createUMTV():void{ _utmv = new UTMV(); _utmv.proxy = this; } private function _createUMTX():void{ _utmx = new UTMX(); _utmx.proxy = this; } private function _createUMTZ():void{ _utmz = new UTMZ(); _utmz.proxy = this; } public function updateUTMA(_arg1:Number):void{ if (_debug.verbose){ _debug.info((("updateUTMA( " + _arg1) + " )"), VisualDebugMode.advanced); }; if (!utma.isEmpty()){ if (isNaN(utma.sessionCount)){ utma.sessionCount = 1; } else { utma.sessionCount = (utma.sessionCount + 1); }; utma.lastTime = utma.currentTime; utma.currentTime = _arg1; }; } public function isGenuine():Boolean{ if (!hasUTMK()){ return (true); }; return ((utmk.hash == generateCookiesHash())); } private function _onFlushStatus(_arg1:NetStatusEvent):void{ _debug.info("User closed permission dialog..."); switch (_arg1.info.code){ case "SharedObject.Flush.Success": _debug.info("User granted permission -- value saved."); break; case "SharedObject.Flush.Failed": _debug.info("User denied permission -- value not saved."); break; }; _SO.removeEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus); } public function toLinkerParams():String{ var _local1 = ""; _local1 = (_local1 + utma.toURLString()); _local1 = (_local1 + ("&" + utmb.toURLString())); _local1 = (_local1 + ("&" + utmc.toURLString())); _local1 = (_local1 + ("&" + utmx.toURLString())); _local1 = (_local1 + ("&" + utmz.toURLString())); _local1 = (_local1 + ("&" + utmv.toURLString())); _local1 = (_local1 + ("&__utmk=" + generateCookiesHash())); return (_local1); } private function _clearUTMA():void{ _utma = null; if (!isVolatile()){ _SO.data.utma = null; delete _SO.data.utma; }; } private function _clearUTMC():void{ _utmc = null; } private function _clearUTMB():void{ _utmb = null; if (!isVolatile()){ _SO.data.utmb = null; delete _SO.data.utmb; }; } public function update(_arg1:String, _arg2):void{ if (isVolatile()){ _OBJ[_arg1] = _arg2; } else { _SO.data[_arg1] = _arg2; }; } public function createSO():void{ var saveSO:Boolean; UTMZ.defaultTimespan = _config.conversionTimeout; UTMB.defaultTimespan = _config.sessionTimeout; if (!_volatile){ try { _SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath); } catch(e:Error) { if (_debug.active){ _debug.warning(((("Shared Object " + _config.cookieName) + " failed to be set\nreason: ") + e.message)); }; }; saveSO = false; if (_SO.data.utma){ if (!hasUTMA()){ _createUMTA(); }; _utma.fromSharedObject(_SO.data.utma); if (_debug.verbose){ _debug.info(("found: " + _utma.toString(true)), VisualDebugMode.geek); }; if (_utma.isExpired()){ if (_debug.verbose){ _debug.warning("UTMA has expired", VisualDebugMode.advanced); }; _clearUTMA(); saveSO = true; }; }; if (_SO.data.utmb){ if (!hasUTMB()){ _createUMTB(); }; _utmb.fromSharedObject(_SO.data.utmb); if (_debug.verbose){ _debug.info(("found: " + _utmb.toString(true)), VisualDebugMode.geek); }; if (_utmb.isExpired()){ if (_debug.verbose){ _debug.warning("UTMB has expired", VisualDebugMode.advanced); }; _clearUTMB(); saveSO = true; }; }; if (_SO.data.utmc){ delete _SO.data.utmc; saveSO = true; }; if (_SO.data.utmk){ if (!hasUTMK()){ _createUMTK(); }; _utmk.fromSharedObject(_SO.data.utmk); if (_debug.verbose){ _debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek); }; }; if (!hasUTMX()){ _createUMTX(); }; if (_SO.data.utmv){ if (!hasUTMV()){ _createUMTV(); }; _utmv.fromSharedObject(_SO.data.utmv); if (_debug.verbose){ _debug.info(("found: " + _utmv.toString(true)), VisualDebugMode.geek); }; if (_utmv.isExpired()){ if (_debug.verbose){ _debug.warning("UTMV has expired", VisualDebugMode.advanced); }; _clearUTMV(); saveSO = true; }; }; if (_SO.data.utmz){ if (!hasUTMZ()){ _createUMTZ(); }; _utmz.fromSharedObject(_SO.data.utmz); if (_debug.verbose){ _debug.info(("found: " + _utmz.toString(true)), VisualDebugMode.geek); }; if (_utmz.isExpired()){ if (_debug.verbose){ _debug.warning("UTMZ has expired", VisualDebugMode.advanced); }; _clearUTMZ(); saveSO = true; }; }; if (saveSO){ save(); }; }; } private function _clearUTMZ():void{ _utmz = null; if (!isVolatile()){ _SO.data.utmz = null; delete _SO.data.utmz; }; } private function _clearUTMV():void{ _utmv = null; if (!isVolatile()){ _SO.data.utmv = null; delete _SO.data.utmv; }; } public function isVolatile():Boolean{ return (_volatile); } public function get utma():UTMA{ if (!hasUTMA()){ _createUMTA(); }; return (_utma); } public function get utmb():UTMB{ if (!hasUTMB()){ _createUMTB(); }; return (_utmb); } public function get utmc():UTMC{ if (!hasUTMC()){ _createUMTC(); }; return (_utmc); } public function get utmk():UTMK{ if (!hasUTMK()){ _createUMTK(); }; return (_utmk); } } }//package com.google.analytics.core
Section 91
//DocumentInfo (com.google.analytics.core.DocumentInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.utils.*; import com.google.analytics.external.*; public class DocumentInfo { private var _pageURL:String; private var _utmr:String; private var _config:Configuration; private var _adSense:AdSenseGlobals; private var _info:Environment; public function DocumentInfo(_arg1:Configuration, _arg2:Environment, _arg3:String, _arg4:String=null, _arg5:AdSenseGlobals=null){ _config = _arg1; _info = _arg2; _utmr = _arg3; _pageURL = _arg4; _adSense = _arg5; } public function get utmr():String{ if (!_utmr){ return ("-"); }; return (_utmr); } public function toURLString():String{ var _local1:Variables = toVariables(); return (_local1.toString()); } private function _renderPageURL(_arg1:String=""):String{ var _local2:String = _info.locationPath; var _local3:String = _info.locationSearch; if (((!(_arg1)) || ((_arg1 == "")))){ _arg1 = (_local2 + unescape(_local3)); if (_arg1 == ""){ _arg1 = "/"; }; }; return (_arg1); } public function get utmp():String{ return (_renderPageURL(_pageURL)); } public function get utmhid():String{ return (String(_generateHitId())); } private function _generateHitId():Number{ var _local1:Number; if (((_adSense.hid) && (!((_adSense.hid == ""))))){ _local1 = Number(_adSense.hid); } else { _local1 = Math.round((Math.random() * 2147483647)); _adSense.hid = String(_local1); }; return (_local1); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; if (((_config.detectTitle) && (!((utmdt == ""))))){ _local1.utmdt = utmdt; }; _local1.utmhid = utmhid; _local1.utmr = utmr; _local1.utmp = utmp; return (_local1); } public function get utmdt():String{ return (_info.documentTitle); } } }//package com.google.analytics.core
Section 92
//Domain (com.google.analytics.core.Domain) package com.google.analytics.core { import com.google.analytics.debug.*; public class Domain { private var _mode:DomainNameMode; private var _debug:DebugConfiguration; private var _name:String; public function Domain(_arg1:DomainNameMode=null, _arg2:String="", _arg3:DebugConfiguration=null){ _debug = _arg3; if (_arg1 == null){ _arg1 = DomainNameMode.auto; }; _mode = _arg1; if (_arg1 == DomainNameMode.custom){ this.name = _arg2; } else { _name = _arg2; }; } public function get mode():DomainNameMode{ return (_mode); } public function set mode(_arg1:DomainNameMode):void{ _mode = _arg1; if (_mode == DomainNameMode.none){ _name = ""; }; } public function get name():String{ return (_name); } public function set name(_arg1:String):void{ if (((!((_arg1.charAt(0) == "."))) && (_debug))){ _debug.warning(("missing leading period \".\", cookie will only be accessible on " + _arg1), VisualDebugMode.geek); }; _name = _arg1; } } }//package com.google.analytics.core
Section 93
//DomainNameMode (com.google.analytics.core.DomainNameMode) package com.google.analytics.core { public class DomainNameMode { private var _value:int; private var _name:String; public static const custom:DomainNameMode = new DomainNameMode(2, "custom"); ; public static const none:DomainNameMode = new DomainNameMode(0, "none"); ; public static const auto:DomainNameMode = new DomainNameMode(1, "auto"); ; public function DomainNameMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.core
Section 94
//Ecommerce (com.google.analytics.core.Ecommerce) package com.google.analytics.core { import com.google.analytics.debug.*; import com.google.analytics.ecommerce.*; public class Ecommerce { private var _debug:DebugConfiguration; private var _trans:Array; public function Ecommerce(_arg1:DebugConfiguration){ this._debug = _arg1; _trans = new Array(); } public function getTransLength():Number{ return (_trans.length); } public function getTransFromArray(_arg1:Number):Transaction{ return (_trans[_arg1]); } public function addTransaction(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String, _arg8:String):Transaction{ var _local9:Transaction; _local9 = getTransaction(_arg1); if (_local9 == null){ _local9 = new Transaction(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); _trans.push(_local9); } else { _local9.affiliation = _arg2; _local9.total = _arg3; _local9.tax = _arg4; _local9.shipping = _arg5; _local9.city = _arg6; _local9.state = _arg7; _local9.country = _arg8; }; return (_local9); } public function getTransaction(_arg1:String):Transaction{ var _local2:Number; _local2 = 0; while (_local2 < _trans.length) { if (_trans[_local2].id == _arg1){ return (_trans[_local2]); }; _local2++; }; return (null); } } }//package com.google.analytics.core
Section 95
//EventInfo (com.google.analytics.core.EventInfo) package com.google.analytics.core { import com.google.analytics.utils.*; import com.google.analytics.data.*; public class EventInfo { private var _ext10:X10; private var _isEventHit:Boolean; private var _x10:X10; public function EventInfo(_arg1:Boolean, _arg2:X10, _arg3:X10=null){ _isEventHit = _arg1; _x10 = _arg2; _ext10 = _arg3; } public function toURLString():String{ var _local1:Variables = toVariables(); return (_local1.toString()); } public function get utmt():String{ return ("event"); } public function get utme():String{ return (_x10.renderMergedUrlString(_ext10)); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; if (_isEventHit){ _local1.utmt = utmt; }; _local1.utme = utme; return (_local1); } } }//package com.google.analytics.core
Section 96
//EventTracker (com.google.analytics.core.EventTracker) package com.google.analytics.core { import com.google.analytics.v4.*; public class EventTracker { private var _parent:GoogleAnalyticsAPI; public var name:String; public function EventTracker(_arg1:String, _arg2:GoogleAnalyticsAPI){ this.name = _arg1; _parent = _arg2; } public function trackEvent(_arg1:String, _arg2:String=null, _arg3:Number=NaN):Boolean{ return (_parent.trackEvent(name, _arg1, _arg2, _arg3)); } } }//package com.google.analytics.core
Section 97
//ga_internal (com.google.analytics.core.ga_internal) package com.google.analytics.core { public namespace ga_internal; }//package com.google.analytics.core
Section 98
//GIFRequest (com.google.analytics.core.GIFRequest) package com.google.analytics.core { import flash.display.*; import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.net.*; import com.google.analytics.utils.*; import flash.system.*; public class GIFRequest { private var _info:Environment; private var _count:int; private var _utmac:String; private var _alertcount:int; private var _debug:DebugConfiguration; private var _lastRequest:URLRequest; private var _buffer:Buffer; private var _config:Configuration; private var _requests:Array; public function GIFRequest(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Environment){ _config = _arg1; _debug = _arg2; _buffer = _arg3; _info = _arg4; _count = 0; _alertcount = 0; _requests = []; } public function get utmn():String{ return ((Utils.generate32bitRandom() as String)); } public function onIOError(_arg1:IOErrorEvent):void{ var _local2:String = _lastRequest.url; var _local3:String = String((_requests.length - 1)); var _local4 = (("Gif Request #" + _local3) + " failed"); if (_debug.GIFRequests){ if (!_debug.verbose){ if (_local2.indexOf("?") > -1){ _local2 = _local2.split("?")[0]; }; _local2 = _shortenURL(_local2); }; if (int(_debug.mode) > int(VisualDebugMode.basic)){ _local4 = (_local4 + ((" \"" + _local2) + "\" does not exists or is unreachable")); }; _debug.failure(_local4); } else { _debug.warning(_local4); }; _removeListeners(_arg1.target); } public function send(_arg1:String, _arg2:Variables=null, _arg3:Boolean=false, _arg4:Boolean=false):void{ var _local5:String; var _local6:URLRequest; var _local7:URLRequest; _utmac = _arg1; if (!_arg2){ _arg2 = new Variables(); }; _arg2.URIencode = false; _arg2.pre = ["utmwv", "utmn", "utmhn", "utmt", "utme", "utmcs", "utmsr", "utmsc", "utmul", "utmje", "utmfl", "utmdt", "utmhid", "utmr", "utmp"]; _arg2.post = ["utmcc"]; if (_debug.verbose){ _debug.info(((("tracking: " + _buffer.utmb.trackCount) + "/") + _config.trackingLimitPerSession), VisualDebugMode.geek); }; if ((((_buffer.utmb.trackCount < _config.trackingLimitPerSession)) || (_arg3))){ if (_arg4){ updateToken(); }; if (((((_arg3) || (!(_arg4)))) || ((_buffer.utmb.token >= 1)))){ if (((!(_arg3)) && (_arg4))){ _buffer.utmb.token = (_buffer.utmb.token - 1); }; _buffer.utmb.trackCount = (_buffer.utmb.trackCount + 1); if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); }; _arg2.utmwv = utmwv; _arg2.utmn = Utils.generate32bitRandom(); if (_info.domainName != ""){ _arg2.utmhn = _info.domainName; }; if (_config.sampleRate < 1){ _arg2.utmsp = (_config.sampleRate * 100); }; if ((((_config.serverMode == ServerOperationMode.local)) || ((_config.serverMode == ServerOperationMode.both)))){ _local5 = _info.locationSWFPath; if (_local5.lastIndexOf("/") > 0){ _local5 = _local5.substring(0, _local5.lastIndexOf("/")); }; _local6 = new URLRequest(); if (_config.localGIFpath.indexOf("http") == 0){ _local6.url = _config.localGIFpath; } else { _local6.url = (_local5 + _config.localGIFpath); }; _local6.url = (_local6.url + ("?" + _arg2.toString())); if (((_debug.active) && (_debug.GIFRequests))){ _debugSend(_local6); } else { sendRequest(_local6); }; }; if ((((_config.serverMode == ServerOperationMode.remote)) || ((_config.serverMode == ServerOperationMode.both)))){ _local7 = new URLRequest(); if (_info.protocol == Protocols.HTTPS){ _local7.url = _config.secureRemoteGIFpath; } else { if (_info.protocol == Protocols.HTTP){ _local7.url = _config.remoteGIFpath; } else { _local7.url = _config.remoteGIFpath; }; }; _arg2.utmac = utmac; _arg2.utmcc = encodeURIComponent(utmcc); _local7.url = (_local7.url + ("?" + _arg2.toString())); if (((_debug.active) && (_debug.GIFRequests))){ _debugSend(_local7); } else { sendRequest(_local7); }; }; }; }; } public function onSecurityError(_arg1:SecurityErrorEvent):void{ if (_debug.GIFRequests){ _debug.failure(_arg1.text); }; } public function get utmsp():String{ return (((_config.sampleRate * 100) as String)); } public function get utmcc():String{ var _local1:Array = []; if (_buffer.hasUTMA()){ _local1.push((_buffer.utma.toURLString() + ";")); }; if (_buffer.hasUTMZ()){ _local1.push((_buffer.utmz.toURLString() + ";")); }; if (_buffer.hasUTMV()){ _local1.push((_buffer.utmv.toURLString() + ";")); }; return (_local1.join("+")); } public function get utmac():String{ return (_utmac); } public function get utmwv():String{ return (_config.version); } public function sendRequest(_arg1:URLRequest):void{ var request = _arg1; var loader:Loader = new Loader(); loader.name = String(_count++); var context:LoaderContext = new LoaderContext(false); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); _lastRequest = request; _requests[loader.name] = new RequestObject(request); try { loader.load(request, context); } catch(e:Error) { _debug.failure("\"Loader.load()\" could not instanciate Gif Request"); }; } private function _removeListeners(_arg1:Object):void{ _arg1.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); _arg1.removeEventListener(Event.COMPLETE, onComplete); } public function updateToken():void{ var _local2:Number; var _local1:Number = new Date().getTime(); _local2 = ((_local1 - _buffer.utmb.lastTime) * (_config.tokenRate / 1000)); if (_debug.verbose){ _debug.info(("tokenDelta: " + _local2), VisualDebugMode.geek); }; if (_local2 >= 1){ _buffer.utmb.token = Math.min(Math.floor((_buffer.utmb.token + _local2)), _config.bucketCapacity); _buffer.utmb.lastTime = _local1; if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); }; }; } public function get utmhn():String{ return (_info.domainName); } private function _shortenURL(_arg1:String):String{ var _local2:Array; if (_arg1.length > 60){ _local2 = _arg1.split("/"); while (_arg1.length > 60) { _local2.shift(); _arg1 = ("../" + _local2.join("/")); }; }; return (_arg1); } private function _debugSend(_arg1:URLRequest):void{ var _local3:String; var _local2 = ""; switch (_debug.mode){ case VisualDebugMode.geek: _local2 = ((("Gif Request #" + _alertcount) + ":\n") + _arg1.url); break; case VisualDebugMode.advanced: _local3 = _arg1.url; if (_local3.indexOf("?") > -1){ _local3 = _local3.split("?")[0]; }; _local3 = _shortenURL(_local3); _local2 = (((("Send Gif Request #" + _alertcount) + ":\n") + _local3) + " ?"); break; case VisualDebugMode.basic: default: _local2 = (((("Send " + _config.serverMode.toString()) + " Gif Request #") + _alertcount) + " ?"); }; _debug.alertGifRequest(_local2, _arg1, this); _alertcount++; } public function onComplete(_arg1:Event):void{ var _local2:String = _arg1.target.loader.name; _requests[_local2].complete(); var _local3 = (("Gif Request #" + _local2) + " sent"); var _local4:String = _requests[_local2].request.url; if (_debug.GIFRequests){ if (!_debug.verbose){ if (_local4.indexOf("?") > -1){ _local4 = _local4.split("?")[0]; }; _local4 = _shortenURL(_local4); }; if (int(_debug.mode) > int(VisualDebugMode.basic)){ _local3 = (_local3 + ((" to \"" + _local4) + "\"")); }; _debug.success(_local3); } else { _debug.info(_local3); }; _removeListeners(_arg1.target); } } }//package com.google.analytics.core
Section 99
//IdleTimer (com.google.analytics.core.IdleTimer) package com.google.analytics.core { import flash.display.*; import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.utils.*; public class IdleTimer { private var _stage:Stage; private var _loop:Timer; private var _lastMove:int; private var _inactivity:Number; private var _debug:DebugConfiguration; private var _session:Timer; private var _buffer:Buffer; public function IdleTimer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:DisplayObject, _arg4:Buffer){ var _local5:Number = _arg1.idleLoop; var _local6:Number = _arg1.idleTimeout; var _local7:Number = _arg1.sessionTimeout; _loop = new Timer((_local5 * 1000)); _session = new Timer((_local7 * 1000), 1); _debug = _arg2; _stage = _arg3.stage; _buffer = _arg4; _lastMove = getTimer(); _inactivity = (_local6 * 1000); _loop.addEventListener(TimerEvent.TIMER, checkForIdle); _session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession); _stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); _debug.info(((((("delay: " + _local5) + "sec , inactivity: ") + _local6) + "sec, sessionTimeout: ") + _local7), VisualDebugMode.geek); _loop.start(); } private function onMouseMove(_arg1:MouseEvent):void{ _lastMove = getTimer(); if (_session.running){ _debug.info("session timer reset", VisualDebugMode.geek); _session.reset(); }; } public function endSession(_arg1:TimerEvent):void{ _session.removeEventListener(TimerEvent.TIMER_COMPLETE, endSession); _debug.info("session timer end session", VisualDebugMode.geek); _session.reset(); _buffer.resetCurrentSession(); _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); _debug.info(_buffer.utmc.toString(), VisualDebugMode.geek); _session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession); } public function checkForIdle(_arg1:TimerEvent):void{ var _local2:int = getTimer(); if ((_local2 - _lastMove) >= _inactivity){ if (!_session.running){ _debug.info("session timer start", VisualDebugMode.geek); _session.start(); }; }; } } }//package com.google.analytics.core
Section 100
//Organic (com.google.analytics.core.Organic) package com.google.analytics.core { import com.google.analytics.utils.*; public class Organic { private var _sourcesCache:Array; private var _sourcesEngine:Array; private var _ignoredKeywords:Array; private var _ignoredReferralsCache:Object; private var _ignoredReferrals:Array; private var _ignoredKeywordsCache:Object; private var _sources:Array; public static var throwErrors:Boolean = false; public function Organic(){ _sources = []; _sourcesCache = []; _sourcesEngine = []; _ignoredReferrals = []; _ignoredReferralsCache = {}; _ignoredKeywords = []; _ignoredKeywordsCache = {}; } public function isIgnoredKeyword(_arg1:String):Boolean{ if (_ignoredKeywordsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function getKeywordValue(_arg1:OrganicReferrer, _arg2:String):String{ var _local3:String = _arg1.keyword; return (getKeywordValueFromPath(_local3, _arg2)); } public function isIgnoredReferral(_arg1:String):Boolean{ if (_ignoredReferralsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function clear():void{ clearEngines(); clearIgnoredReferrals(); clearIgnoredKeywords(); } public function get count():int{ return (_sources.length); } public function get ignoredKeywordsCount():int{ return (_ignoredKeywords.length); } public function match(_arg1:String):Boolean{ if (_arg1 == ""){ return (false); }; _arg1 = _arg1.toLowerCase(); if (_sourcesEngine[_arg1] != undefined){ return (true); }; return (false); } public function clearIgnoredKeywords():void{ _ignoredKeywords = []; _ignoredKeywordsCache = {}; } public function addSource(_arg1:String, _arg2:String):void{ var _local3:OrganicReferrer = new OrganicReferrer(_arg1, _arg2); if (_sourcesCache[_local3.toString()] == undefined){ _sources.push(_local3); _sourcesCache[_local3.toString()] = (_sources.length - 1); if (_sourcesEngine[_local3.engine] == undefined){ _sourcesEngine[_local3.engine] = [(_sources.length - 1)]; } else { _sourcesEngine[_local3.engine].push((_sources.length - 1)); }; } else { if (throwErrors){ throw (new Error((_local3.toString() + " already exists, we don't add it."))); }; }; } public function clearEngines():void{ _sources = []; _sourcesCache = []; _sourcesEngine = []; } public function get ignoredReferralsCount():int{ return (_ignoredReferrals.length); } public function addIgnoredReferral(_arg1:String):void{ if (_ignoredReferralsCache[_arg1] == undefined){ _ignoredReferrals.push(_arg1); _ignoredReferralsCache[_arg1] = (_ignoredReferrals.length - 1); } else { if (throwErrors){ throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it."))); }; }; } public function clearIgnoredReferrals():void{ _ignoredReferrals = []; _ignoredReferralsCache = {}; } public function getReferrerByName(_arg1:String):OrganicReferrer{ var _local2:int; if (match(_arg1)){ _local2 = _sourcesEngine[_arg1][0]; return (_sources[_local2]); }; return (null); } public function addIgnoredKeyword(_arg1:String):void{ if (_ignoredKeywordsCache[_arg1] == undefined){ _ignoredKeywords.push(_arg1); _ignoredKeywordsCache[_arg1] = (_ignoredKeywords.length - 1); } else { if (throwErrors){ throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it."))); }; }; } public function get sources():Array{ return (_sources); } public static function getKeywordValueFromPath(_arg1:String, _arg2:String):String{ var _local3:String; var _local4:Variables; if (_arg2.indexOf((_arg1 + "=")) > -1){ if (_arg2.charAt(0) == "?"){ _arg2 = _arg2.substr(1); }; _arg2 = _arg2.split("+").join("%20"); _local4 = new Variables(_arg2); _local3 = _local4[_arg1]; }; return (_local3); } } }//package com.google.analytics.core
Section 101
//OrganicReferrer (com.google.analytics.core.OrganicReferrer) package com.google.analytics.core { public class OrganicReferrer { private var _engine:String; private var _keyword:String; public function OrganicReferrer(_arg1:String, _arg2:String){ this.engine = _arg1; this.keyword = _arg2; } public function get keyword():String{ return (_keyword); } public function get engine():String{ return (_engine); } public function set engine(_arg1:String):void{ _engine = _arg1.toLowerCase(); } public function toString():String{ return (((engine + "?") + keyword)); } public function set keyword(_arg1:String):void{ _keyword = _arg1.toLowerCase(); } } }//package com.google.analytics.core
Section 102
//RequestObject (com.google.analytics.core.RequestObject) package com.google.analytics.core { import flash.net.*; import flash.utils.*; public class RequestObject { public var start:int; public var end:int; public var request:URLRequest; public function RequestObject(_arg1:URLRequest){ start = getTimer(); this.request = _arg1; } public function hasCompleted():Boolean{ return ((end > 0)); } public function toString():String{ var _local1:Array = []; _local1.push((("duration: " + duration) + "ms")); _local1.push(("url: " + request.url)); return ((("{ " + _local1.join(", ")) + " }")); } public function complete():void{ end = getTimer(); } public function get duration():int{ if (!hasCompleted()){ return (0); }; return ((end - start)); } } }//package com.google.analytics.core
Section 103
//ServerOperationMode (com.google.analytics.core.ServerOperationMode) package com.google.analytics.core { public class ServerOperationMode { private var _value:int; private var _name:String; public static const both:ServerOperationMode = new ServerOperationMode(2, "both"); ; public static const remote:ServerOperationMode = new ServerOperationMode(1, "remote"); ; public static const local:ServerOperationMode = new ServerOperationMode(0, "local"); ; public function ServerOperationMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.core
Section 104
//TrackerCache (com.google.analytics.core.TrackerCache) package com.google.analytics.core { import com.google.analytics.v4.*; import flash.errors.*; public class TrackerCache implements GoogleAnalyticsAPI { public var tracker:GoogleAnalyticsAPI; private var _ar:Array; public static var CACHE_THROW_ERROR:Boolean; public function TrackerCache(_arg1:GoogleAnalyticsAPI=null){ this.tracker = _arg1; _ar = []; } public function size():uint{ return (_ar.length); } public function flush():void{ var _local1:Object; var _local2:String; var _local3:Array; var _local4:int; var _local5:int; if (tracker == null){ return; }; if (size() > 0){ _local4 = _ar.length; while (_local5 < _local4) { _local1 = _ar.shift(); _local2 = (_local1.name as String); _local3 = (_local1.args as Array); if (((!((_local2 == null))) && ((_local2 in tracker)))){ (tracker[_local2] as Function).apply(tracker, _local3); }; _local5++; }; }; } public function enqueue(_arg1:String, ... _args):Boolean{ if (_arg1 == null){ return (false); }; _ar.push({name:_arg1, args:_args}); return (true); } public function link(_arg1:String, _arg2:Boolean=false):void{ enqueue("link", _arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ enqueue("addOrganic", _arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ enqueue("setAllowLinker", _arg1); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ enqueue("trackEvent", _arg1, _arg2, _arg3, _arg4); return (true); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLinkerUrl' method for the moment.")); }; return (""); } public function getClientInfo():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getClientInfo' method for the moment.")); }; return (false); } public function trackTrans():void{ enqueue("trackTrans"); } public function trackPageview(_arg1:String=""):void{ enqueue("trackPageview", _arg1); } public function setClientInfo(_arg1:Boolean):void{ enqueue("setClientInfo", _arg1); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ enqueue("linkByPost", _arg1, _arg2); } public function setCookieTimeout(_arg1:int):void{ enqueue("setCookieTimeout", _arg1); } public function isEmpty():Boolean{ return ((_ar.length == 0)); } public function getDetectTitle():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectTitle' method for the moment.")); }; return (false); } public function resetSession():void{ enqueue("resetSession"); } public function setDetectFlash(_arg1:Boolean):void{ enqueue("setDetectFlash", _arg1); } public function clear():void{ _ar = []; } public function setCampNameKey(_arg1:String):void{ enqueue("setCampNameKey", _arg1); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ enqueue("addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public function createEventTracker(_arg1:String):EventTracker{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'createEventTracker' method for the moment.")); }; return (null); } public function clearIgnoredOrganic():void{ enqueue("clearIgnoredOrganic"); } public function setVar(_arg1:String):void{ enqueue("setVar", _arg1); } public function setDomainName(_arg1:String):void{ enqueue("setDomainName", _arg1); } public function setCampSourceKey(_arg1:String):void{ enqueue("setCampSourceKey", _arg1); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment.")); }; } public function setCampContentKey(_arg1:String):void{ enqueue("setCampContentKey", _arg1); } public function setLocalServerMode():void{ enqueue("setLocalServerMode"); } public function getLocalGifPath():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLocalGifPath' method for the moment.")); }; return (""); } public function setAllowAnchor(_arg1:Boolean):void{ enqueue("setAllowAnchor", _arg1); } public function clearIgnoredRef():void{ enqueue("clearIgnoredRef"); } public function setLocalGifPath(_arg1:String):void{ enqueue("setLocalGifPath", _arg1); } public function getVersion():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getVersion' method for the moment.")); }; return (""); } public function setCookiePath(_arg1:String):void{ enqueue("setCookiePath", _arg1); } public function setSampleRate(_arg1:Number):void{ enqueue("setSampleRate", _arg1); } public function setDetectTitle(_arg1:Boolean):void{ enqueue("setDetectTitle", _arg1); } public function setAllowHash(_arg1:Boolean):void{ enqueue("setAllowHash", _arg1); } public function addIgnoredOrganic(_arg1:String):void{ enqueue("addIgnoredOrganic", _arg1); } public function setCampNOKey(_arg1:String):void{ enqueue("setCampNOKey", _arg1); } public function getServiceMode():ServerOperationMode{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getServiceMode' method for the moment.")); }; return (null); } public function setLocalRemoteServerMode():void{ enqueue("setLocalRemoteServerMode"); } public function cookiePathCopy(_arg1:String):void{ enqueue("cookiePathCopy", _arg1); } public function getDetectFlash():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectFlash' method for the moment.")); }; return (false); } public function setCampaignTrack(_arg1:Boolean):void{ enqueue("setCampaignTrack", _arg1); } public function clearOrganic():void{ enqueue("clearOrganic"); } public function setCampTermKey(_arg1:String):void{ enqueue("setCampTermKey", _arg1); } public function addIgnoredRef(_arg1:String):void{ enqueue("addIgnoredRef", _arg1); } public function setCampMediumKey(_arg1:String):void{ enqueue("setCampMediumKey", _arg1); } public function setSessionTimeout(_arg1:int):void{ enqueue("setSessionTimeout", _arg1); } public function setRemoteServerMode():void{ enqueue("setRemoteServerMode"); } public function element(){ return (_ar[0]); } public function getAccount():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getAccount' method for the moment.")); }; return (""); } } }//package com.google.analytics.core
Section 105
//TrackerMode (com.google.analytics.core.TrackerMode) package com.google.analytics.core { public class TrackerMode { public static const BRIDGE:String = "Bridge"; public static const AS3:String = "AS3"; } }//package com.google.analytics.core
Section 106
//Utils (com.google.analytics.core.Utils) package com.google.analytics.core { public class Utils { public static function trim(_arg1:String, _arg2:Boolean=false):String{ var _local5:int; var _local6:int; var _local7:int; if (_arg1 == ""){ return (""); }; var _local3:Array = [" ", "\n", "\r", "\t"]; var _local4:String = _arg1; if (_arg2){ _local5 = 0; while ((((_local5 < _local3.length)) && ((_local4.indexOf(_local3[_local5]) > -1)))) { _local4 = _local4.split(_local3[_local5]).join(""); _local5++; }; } else { _local6 = 0; while ((((_local6 < _local4.length)) && ((_local3.indexOf(_local4.charAt(_local6)) > -1)))) { _local6++; }; _local4 = _local4.substr(_local6); _local7 = (_local4.length - 1); while ((((_local7 >= 0)) && ((_local3.indexOf(_local4.charAt(_local7)) > -1)))) { _local7--; }; _local4 = _local4.substring(0, (_local7 + 1)); }; return (_local4); } public static function generateHash(_arg1:String):int{ var _local4:int; var _local5:int; var _local2 = 1; var _local3:int; if (((!((_arg1 == null))) && (!((_arg1 == ""))))){ _local2 = 0; _local4 = (_arg1.length - 1); while (_local4 >= 0) { _local5 = _arg1.charCodeAt(_local4); _local2 = ((((_local2 << 6) & 268435455) + _local5) + (_local5 << 14)); _local3 = (_local2 & 266338304); if (_local3 != 0){ _local2 = (_local2 ^ (_local3 >> 21)); }; _local4--; }; }; return (_local2); } public static function generate32bitRandom():int{ return (Math.round((Math.random() * 2147483647))); } public static function validateAccount(_arg1:String):Boolean{ var _local2:RegExp = /^UA-[0-9]*-[0-9]*$/; return (_local2.test(_arg1)); } } }//package com.google.analytics.core
Section 107
//Cookie (com.google.analytics.data.Cookie) package com.google.analytics.data { public interface Cookie { function fromSharedObject(_arg1:Object):void; function toURLString():String; function get creation():Date; function toSharedObject():Object; function isExpired():Boolean; function set creation(_arg1:Date):void; function set expiration(_arg1:Date):void; function get expiration():Date; } }//package com.google.analytics.data
Section 108
//UTMA (com.google.analytics.data.UTMA) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMA extends UTMCookie { private var _sessionId:Number; private var _domainHash:Number; private var _firstTime:Number; private var _currentTime:Number; private var _lastTime:Number; private var _sessionCount:Number; public function UTMA(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:Number=NaN){ super("utma", "__utma", ["domainHash", "sessionId", "firstTime", "lastTime", "currentTime", "sessionCount"], (Timespan.twoyears * 1000)); this.domainHash = _arg1; this.sessionId = _arg2; this.firstTime = _arg3; this.lastTime = _arg4; this.currentTime = _arg5; this.sessionCount = _arg6; } public function get lastTime():Number{ return (_lastTime); } public function set lastTime(_arg1:Number):void{ _lastTime = _arg1; update(); } public function set currentTime(_arg1:Number):void{ _currentTime = _arg1; update(); } public function get sessionId():Number{ return (_sessionId); } public function get sessionCount():Number{ return (_sessionCount); } public function get firstTime():Number{ return (_firstTime); } public function get currentTime():Number{ return (_currentTime); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set sessionId(_arg1:Number):void{ _sessionId = _arg1; update(); } public function set sessionCount(_arg1:Number):void{ _sessionCount = _arg1; update(); } public function get domainHash():Number{ return (_domainHash); } public function set firstTime(_arg1:Number):void{ _firstTime = _arg1; update(); } } }//package com.google.analytics.data
Section 109
//UTMB (com.google.analytics.data.UTMB) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMB extends UTMCookie { private var _trackCount:Number; private var _lastTime:Number; private var _domainHash:Number; private var _token:Number; public static var defaultTimespan:Number = Timespan.thirtyminutes; public function UTMB(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN){ super("utmb", "__utmb", ["domainHash", "trackCount", "token", "lastTime"], (defaultTimespan * 1000)); this.domainHash = _arg1; this.trackCount = _arg2; this.token = _arg3; this.lastTime = _arg4; } public function set token(_arg1:Number):void{ _token = _arg1; update(); } public function set trackCount(_arg1:Number):void{ _trackCount = _arg1; update(); } public function get lastTime():Number{ return (_lastTime); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set lastTime(_arg1:Number):void{ _lastTime = _arg1; update(); } public function get domainHash():Number{ return (_domainHash); } public function get token():Number{ return (_token); } public function get trackCount():Number{ return (_trackCount); } } }//package com.google.analytics.data
Section 110
//UTMC (com.google.analytics.data.UTMC) package com.google.analytics.data { public class UTMC extends UTMCookie { private var _domainHash:Number; public function UTMC(_arg1:Number=NaN){ super("utmc", "__utmc", ["domainHash"]); this.domainHash = _arg1; } public function get domainHash():Number{ return (_domainHash); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } } }//package com.google.analytics.data
Section 111
//UTMCookie (com.google.analytics.data.UTMCookie) package com.google.analytics.data { import com.google.analytics.core.*; public class UTMCookie implements Cookie { protected var inURL:String; protected var name:String; private var _creation:Date; private var _expiration:Date; public var proxy:Buffer; protected var fields:Array; private var _timespan:Number; public function UTMCookie(_arg1:String, _arg2:String, _arg3:Array, _arg4:Number=0){ this.name = _arg1; this.inURL = _arg2; this.fields = _arg3; _timestamp(_arg4); } public function isEmpty():Boolean{ var _local2:String; var _local1:int; var _local3:int; while (_local3 < fields.length) { _local2 = fields[_local3]; if ((((this[_local2] is Number)) && (isNaN(this[_local2])))){ _local1++; } else { if ((((this[_local2] is String)) && ((this[_local2] == "")))){ _local1++; }; }; _local3++; }; if (_local1 == fields.length){ return (true); }; return (false); } public function resetTimestamp(_arg1:Number=NaN):void{ if (!isNaN(_arg1)){ _timespan = _arg1; }; _creation = null; _expiration = null; _timestamp(_timespan); } protected function update():void{ resetTimestamp(); if (proxy){ proxy.update(name, toSharedObject()); }; } public function reset():void{ var _local1:String; var _local2:int; while (_local2 < fields.length) { _local1 = fields[_local2]; if ((this[_local1] is Number)){ this[_local1] = NaN; } else { if ((this[_local1] is String)){ this[_local1] = ""; }; }; _local2++; }; resetTimestamp(); update(); } public function fromSharedObject(_arg1:Object):void{ var _local2:String; var _local3:int = fields.length; var _local4:int; while (_local4 < _local3) { _local2 = fields[_local4]; if (_arg1[_local2]){ this[_local2] = _arg1[_local2]; }; _local4++; }; if (_arg1.creation){ this.creation = _arg1.creation; }; if (_arg1.expiration){ this.expiration = _arg1.expiration; }; } private function _timestamp(_arg1:Number):void{ creation = new Date(); _timespan = _arg1; if (_arg1 > 0){ expiration = new Date((creation.valueOf() + _arg1)); }; } public function isExpired():Boolean{ var _local1:Date = new Date(); var _local2:Number = (expiration.valueOf() - _local1.valueOf()); if (_local2 <= 0){ return (true); }; return (false); } public function set expiration(_arg1:Date):void{ _expiration = _arg1; } public function get creation():Date{ return (_creation); } public function valueOf():String{ var _local2:String; var _local3:*; var _local4:Array; var _local1:Array = []; var _local5 = ""; var _local6:int; while (_local6 < fields.length) { _local2 = fields[_local6]; _local3 = this[_local2]; if ((_local3 is String)){ if (_local3 == ""){ _local3 = "-"; _local1.push(_local3); } else { _local1.push(_local3); }; } else { if ((_local3 is Number)){ if (_local3 == 0){ _local1.push(_local3); } else { if (isNaN(_local3)){ _local3 = "-"; _local1.push(_local3); } else { _local1.push(_local3); }; }; }; }; _local6++; }; if (isEmpty()){ return ("-"); }; return (("" + _local1.join("."))); } public function toURLString():String{ return (((inURL + "=") + valueOf())); } public function get expiration():Date{ if (_expiration){ return (_expiration); }; return (new Date((new Date().valueOf() + 1000))); } public function toSharedObject():Object{ var _local2:String; var _local3:*; var _local1:Object = {}; var _local4:int; for (;_local4 < fields.length;_local4++) { _local2 = fields[_local4]; _local3 = this[_local2]; if ((_local3 is String)){ _local1[_local2] = _local3; } else { if (_local3 == 0){ _local1[_local2] = _local3; } else { if (isNaN(_local3)){ continue; } else { _local1[_local2] = _local3; }; }; }; }; _local1.creation = creation; _local1.expiration = expiration; return (_local1); } public function toString(_arg1:Boolean=false):String{ var _local3:String; var _local4:*; var _local2:Array = []; var _local5:int = fields.length; var _local6:int; for (;_local6 < _local5;_local6++) { _local3 = fields[_local6]; _local4 = this[_local3]; if ((_local4 is String)){ _local2.push((((_local3 + ": \"") + _local4) + "\"")); } else { if (_local4 == 0){ _local2.push(((_local3 + ": ") + _local4)); } else { if (isNaN(_local4)){ continue; } else { _local2.push(((_local3 + ": ") + _local4)); }; }; }; }; var _local7 = (((name.toUpperCase() + " {") + _local2.join(", ")) + "}"); if (_arg1){ _local7 = (_local7 + (((" creation:" + creation) + ", expiration:") + expiration)); }; return (_local7); } public function set creation(_arg1:Date):void{ _creation = _arg1; } } }//package com.google.analytics.data
Section 112
//UTMK (com.google.analytics.data.UTMK) package com.google.analytics.data { public class UTMK extends UTMCookie { private var _hash:Number; public function UTMK(_arg1:Number=NaN){ super("utmk", "__utmk", ["hash"]); this.hash = _arg1; } public function set hash(_arg1:Number):void{ _hash = _arg1; update(); } public function get hash():Number{ return (_hash); } } }//package com.google.analytics.data
Section 113
//UTMV (com.google.analytics.data.UTMV) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMV extends UTMCookie { private var _domainHash:Number; private var _value:String; public function UTMV(_arg1:Number=NaN, _arg2:String=""){ super("utmv", "__utmv", ["domainHash", "value"], (Timespan.twoyears * 1000)); this.domainHash = _arg1; this.value = _arg2; } public function get value():String{ return (_value); } public function get domainHash():Number{ return (_domainHash); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set value(_arg1:String):void{ _value = _arg1; update(); } } }//package com.google.analytics.data
Section 114
//UTMX (com.google.analytics.data.UTMX) package com.google.analytics.data { public class UTMX extends UTMCookie { private var _value:String; public function UTMX(){ super("utmx", "__utmx", ["value"], 0); _value = "-"; } public function get value():String{ return (_value); } public function set value(_arg1:String):void{ _value = _arg1; } } }//package com.google.analytics.data
Section 115
//UTMZ (com.google.analytics.data.UTMZ) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMZ extends UTMCookie { private var _campaignTracking:String; private var _campaignCreation:Number; private var _responseCount:Number; private var _domainHash:Number; private var _campaignSessions:Number; public static var defaultTimespan:Number = Timespan.sixmonths; public function UTMZ(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:String=""){ super("utmz", "__utmz", ["domainHash", "campaignCreation", "campaignSessions", "responseCount", "campaignTracking"], (defaultTimespan * 1000)); this.domainHash = _arg1; this.campaignCreation = _arg2; this.campaignSessions = _arg3; this.responseCount = _arg4; this.campaignTracking = _arg5; } public function set responseCount(_arg1:Number):void{ _responseCount = _arg1; update(); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set campaignCreation(_arg1:Number):void{ _campaignCreation = _arg1; update(); } public function get campaignTracking():String{ return (_campaignTracking); } public function get campaignSessions():Number{ return (_campaignSessions); } public function get domainHash():Number{ return (_domainHash); } public function get responseCount():Number{ return (_responseCount); } public function get campaignCreation():Number{ return (_campaignCreation); } public function set campaignSessions(_arg1:Number):void{ _campaignSessions = _arg1; update(); } public function set campaignTracking(_arg1:String):void{ _campaignTracking = _arg1; update(); } } }//package com.google.analytics.data
Section 116
//X10 (com.google.analytics.data.X10) package com.google.analytics.data { public class X10 { private var _delimEnd:String;// = ")" private var _minimum:int; private var _delimSet:String;// = "*" private var _escapeChar:String;// = "'" private var _delimBegin:String;// = "(" private var _delimNumValue:String;// = "!" private var _key:String;// = "k" private var _set:Array; private var _hasData:int; private var _escapeCharMap:Object; private var _projectData:Object; private var _value:String;// = "v" public function X10(){ _set = [_key, _value]; super(); _projectData = {}; _escapeCharMap = {}; _escapeCharMap[_escapeChar] = "'0"; _escapeCharMap[_delimEnd] = "'1"; _escapeCharMap[_delimSet] = "'2"; _escapeCharMap[_delimNumValue] = "'3"; _minimum = 1; } private function _setInternal(_arg1:Number, _arg2:String, _arg3:Number, _arg4:String):void{ if (!hasProject(_arg1)){ _projectData[_arg1] = {}; }; if (_projectData[_arg1][_arg2] == undefined){ _projectData[_arg1][_arg2] = []; }; _projectData[_arg1][_arg2][_arg3] = _arg4; _hasData = (_hasData + 1); } private function _renderProject(_arg1:Object):String{ var _local4:int; var _local5:Array; var _local2 = ""; var _local3:Boolean; var _local6:int = _set.length; _local4 = 0; while (_local4 < _local6) { _local5 = _arg1[_set[_local4]]; if (_local5){ if (_local3){ _local2 = (_local2 + _set[_local4]); }; _local2 = (_local2 + _renderDataType(_local5)); _local3 = false; } else { _local3 = true; }; _local4++; }; return (_local2); } public function hasProject(_arg1:Number):Boolean{ return (_projectData[_arg1]); } public function clearKey(_arg1:Number):void{ _clearInternal(_arg1, _key); } private function _renderDataType(_arg1:Array):String{ var _local3:String; var _local4:int; var _local2:Array = []; _local4 = 0; while (_local4 < _arg1.length) { if (_arg1[_local4] != undefined){ _local3 = ""; if (((!((_local4 == _minimum))) && ((_arg1[(_local4 - 1)] == undefined)))){ _local3 = (_local3 + _local4.toString()); _local3 = (_local3 + _delimNumValue); }; _local3 = (_local3 + _escapeExtensibleValue(_arg1[_local4])); _local2.push(_local3); }; _local4++; }; return (((_delimBegin + _local2.join(_delimSet)) + _delimEnd)); } public function getKey(_arg1:Number, _arg2:Number):String{ return ((_getInternal(_arg1, _key, _arg2) as String)); } public function hasData():Boolean{ return ((_hasData > 0)); } public function renderMergedUrlString(_arg1:X10=null):String{ var _local3:String; if (!_arg1){ return (renderUrlString()); }; var _local2:Array = [_arg1.renderUrlString()]; for (_local3 in _projectData) { if (((hasProject(Number(_local3))) && (!(_arg1.hasProject(Number(_local3)))))){ _local2.push((_local3 + _renderProject(_projectData[_local3]))); }; }; return (_local2.join("")); } public function setValue(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ if (((((!((Math.round(_arg3) == _arg3))) || (isNaN(_arg3)))) || ((_arg3 == Infinity)))){ return (false); }; _setInternal(_arg1, _value, _arg2, _arg3.toString()); return (true); } public function renderUrlString():String{ var _local2:String; var _local1:Array = []; for (_local2 in _projectData) { if (hasProject(Number(_local2))){ _local1.push((_local2 + _renderProject(_projectData[_local2]))); }; }; return (_local1.join("")); } private function _getInternal(_arg1:Number, _arg2:String, _arg3:Number):Object{ if (((hasProject(_arg1)) && (!((_projectData[_arg1][_arg2] == undefined))))){ return (_projectData[_arg1][_arg2][_arg3]); }; return (undefined); } public function setKey(_arg1:Number, _arg2:Number, _arg3:String):Boolean{ _setInternal(_arg1, _key, _arg2, _arg3); return (true); } public function clearValue(_arg1:Number):void{ _clearInternal(_arg1, _value); } private function _clearInternal(_arg1:Number, _arg2:String):void{ var _local3:Boolean; var _local4:int; var _local5:int; if (((hasProject(_arg1)) && (!((_projectData[_arg1][_arg2] == undefined))))){ _projectData[_arg1][_arg2] = undefined; _local3 = true; _local5 = _set.length; _local4 = 0; while (_local4 < _local5) { if (_projectData[_arg1][_set[_local4]] != undefined){ _local3 = false; break; }; _local4++; }; if (_local3){ _projectData[_arg1] = undefined; _hasData = (_hasData - 1); }; }; } public function getValue(_arg1:Number, _arg2:Number){ var _local3:* = _getInternal(_arg1, _value, _arg2); if (_local3 == null){ return (null); }; return (Number(_local3)); } private function _escapeExtensibleValue(_arg1:String):String{ var _local3:int; var _local4:String; var _local5:String; var _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1.charAt(_local3); _local5 = _escapeCharMap[_local4]; if (_local5){ _local2 = (_local2 + _local5); } else { _local2 = (_local2 + _local4); }; _local3++; }; return (_local2); } } }//package com.google.analytics.data
Section 117
//_Style (com.google.analytics.debug._Style) package com.google.analytics.debug { import flash.net.*; import flash.text.*; public class _Style { public var failureColor:uint; public var borderColor:uint; public var backgroundColor:uint; private var _sheet:StyleSheet; public var roundedCorner:uint; public var warningColor:uint; public var infoColor:uint; public var alertColor:uint; public var successColor:uint; private var _loader:URLLoader; private var _defaultSheet:String; public function _Style(){ _sheet = new StyleSheet(); _loader = new URLLoader(); _init(); } private function _parseSheet(_arg1:String):void{ _sheet.parseCSS(_arg1); } public function get sheet():StyleSheet{ return (_sheet); } private function _init():void{ _defaultSheet = ""; _defaultSheet = (_defaultSheet + "a{text-decoration: underline;}\n"); _defaultSheet = (_defaultSheet + ".uiLabel{color: #000000;font-family: Arial;font-size: 12;margin-left: 2;margin-right: 2;}\n"); _defaultSheet = (_defaultSheet + ".uiWarning{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlert{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiInfo{color: #000000;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiSuccess{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiFailure{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlertAction{color: #ffffff;text-align: center;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlertTitle{color: #ffffff;font-family: Arial;font-size: 16;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + "\n"); roundedCorner = 6; backgroundColor = 0xCCCCCC; borderColor = 0x555555; infoColor = 16777113; alertColor = 0xFFCC00; warningColor = 0xCC0000; successColor = 0xFF00; failureColor = 0xFF0000; _parseSheet(_defaultSheet); } } }//package com.google.analytics.debug
Section 118
//Alert (com.google.analytics.debug.Alert) package com.google.analytics.debug { import flash.events.*; public class Alert extends Label { public var autoClose:Boolean;// = true public var actionOnNextLine:Boolean;// = true private var _actions:Array; public function Alert(_arg1:String, _arg2:Array, _arg3:String="uiAlert", _arg4:uint=0, _arg5:Align=null, _arg6:Boolean=false, _arg7:Boolean=true){ if (_arg4 == 0){ _arg4 = Style.alertColor; }; if (_arg5 == null){ _arg5 = Align.center; }; super(_arg1, _arg3, _arg4, _arg5, _arg6); this.selectable = true; super.mouseChildren = true; this.buttonMode = true; this.mouseEnabled = true; this.useHandCursor = true; this.actionOnNextLine = _arg7; _actions = []; var _local8:int; while (_local8 < _arg2.length) { _arg2[_local8].container = this; _actions.push(_arg2[_local8]); _local8++; }; } private function _defineActions():void{ var _local3:AlertAction; var _local1 = ""; if (actionOnNextLine){ _local1 = (_local1 + "\n"); } else { _local1 = (_local1 + " |"); }; _local1 = (_local1 + " "); var _local2:Array = []; var _local4:int; while (_local4 < _actions.length) { _local3 = _actions[_local4]; _local2.push((((("<a href=\"event:" + _local3.activator) + "\">") + _local3.name) + "</a>")); _local4++; }; _local1 = (_local1 + _local2.join(" | ")); appendText(_local1, "uiAlertAction"); } protected function isValidAction(_arg1:String):Boolean{ var _local2:int; while (_local2 < _actions.length) { if (_arg1 == _actions[_local2].activator){ return (true); }; _local2++; }; return (false); } override protected function layout():void{ super.layout(); _defineActions(); } protected function getAction(_arg1:String):AlertAction{ var _local2:int; while (_local2 < _actions.length) { if (_arg1 == _actions[_local2].activator){ return (_actions[_local2]); }; _local2++; }; return (null); } protected function spaces(_arg1:int):String{ var _local2 = ""; var _local3 = " "; var _local4:int; while (_local4 < (_arg1 + 1)) { _local2 = (_local2 + _local3); _local4++; }; return (_local2); } override public function onLink(_arg1:TextEvent):void{ var _local2:AlertAction; if (isValidAction(_arg1.text)){ _local2 = getAction(_arg1.text); if (_local2){ _local2.execute(); }; }; if (autoClose){ close(); }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 119
//AlertAction (com.google.analytics.debug.AlertAction) package com.google.analytics.debug { public class AlertAction { public var container:Alert; private var _callback; public var activator:String; public var name:String; public function AlertAction(_arg1:String, _arg2:String, _arg3){ this.name = _arg1; this.activator = _arg2; _callback = _arg3; } public function execute():void{ if (_callback){ if ((_callback is Function)){ (_callback as Function)(); } else { if ((_callback is String)){ var _local1 = container; _local1[_callback](); }; }; }; } } }//package com.google.analytics.debug
Section 120
//Align (com.google.analytics.debug.Align) package com.google.analytics.debug { public class Align { private var _value:int; private var _name:String; public static const bottomRight:Align = new Align(18, "bottomRight"); ; public static const right:Align = new Align(16, "right"); ; public static const left:Align = new Align(32, "left"); ; public static const topRight:Align = new Align(17, "topRight"); ; public static const bottom:Align = new Align(2, "bottom"); ; public static const bottomLeft:Align = new Align(34, "bottomLeft"); ; public static const topLeft:Align = new Align(33, "topLeft"); ; public static const center:Align = new Align(0x0100, "center"); ; public static const none:Align = new Align(0, "none"); ; public static const top:Align = new Align(1, "top"); ; public function Align(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.debug
Section 121
//Background (com.google.analytics.debug.Background) package com.google.analytics.debug { import flash.display.*; public class Background { public static function drawRounded(_arg1, _arg2:Graphics, _arg3:uint=0, _arg4:uint=0):void{ var _local5:uint; var _local6:uint; var _local7:uint = Style.roundedCorner; if ((((_arg3 > 0)) && ((_arg4 > 0)))){ _local5 = _arg3; _local6 = _arg4; } else { _local5 = _arg1.width; _local6 = _arg1.height; }; if (((_arg1.stickToEdge) && (!((_arg1.alignement == Align.none))))){ switch (_arg1.alignement){ case Align.top: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, _local7, _local7); break; case Align.topLeft: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, 0, _local7); break; case Align.topRight: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, _local7, 0); break; case Align.bottom: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, _local7, 0, 0); break; case Align.bottomLeft: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, _local7, 0, 0); break; case Align.bottomRight: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, 0, 0, 0); break; case Align.left: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, _local7, 0, _local7); break; case Align.right: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, 0, _local7, 0); break; case Align.center: _arg2.drawRoundRect(0, 0, _local5, _local6, _local7, _local7); break; }; } else { _arg2.drawRoundRect(0, 0, _local5, _local6, _local7, _local7); }; } } }//package com.google.analytics.debug
Section 122
//Debug (com.google.analytics.debug.Debug) package com.google.analytics.debug { import flash.events.*; import flash.ui.*; public class Debug extends Label { private var _lines:Array; private var _preferredForcedWidth:uint;// = 540 private var _linediff:int;// = 0 public var maxLines:uint;// = 16 public static var count:uint; public function Debug(_arg1:uint=0, _arg2:Align=null, _arg3:Boolean=false){ if (_arg2 == null){ _arg2 = Align.bottom; }; super("", "uiLabel", _arg1, _arg2, _arg3); this.name = ("Debug" + count++); _lines = []; selectable = true; addEventListener(KeyboardEvent.KEY_DOWN, onKey); } public function writeBold(_arg1:String):void{ write(_arg1, true); } private function _getLinesToDisplay(_arg1:int=0):Array{ var _local2:Array; var _local3:uint; var _local4:uint; if ((_lines.length - 1) > maxLines){ if ((_linediff <= 0)){ _linediff = (_linediff + _arg1); } else { if ((((_linediff > 0)) && ((_arg1 < 0)))){ _linediff = (_linediff + _arg1); }; }; _local3 = ((_lines.length - maxLines) + _linediff); _local4 = (_local3 + maxLines); _local2 = _lines.slice(_local3, _local4); } else { _local2 = _lines; }; return (_local2); } private function onKey(_arg1:KeyboardEvent=null):void{ var _local2:Array; switch (_arg1.keyCode){ case Keyboard.DOWN: _local2 = _getLinesToDisplay(1); break; case Keyboard.UP: _local2 = _getLinesToDisplay(-1); break; default: _local2 = null; }; if (_local2 == null){ return; }; text = _local2.join("\n"); } override public function get forcedWidth():uint{ if (this.parent){ if (UISprite(this.parent).forcedWidth > _preferredForcedWidth){ return (_preferredForcedWidth); }; return (UISprite(this.parent).forcedWidth); } else { }; return (!NULL!); } public function write(_arg1:String, _arg2:Boolean=false):void{ var _local3:Array; if (_arg1.indexOf("") > -1){ _local3 = _arg1.split("\n"); } else { _local3 = [_arg1]; }; var _local4 = ""; var _local5 = ""; if (_arg2){ _local4 = "<b>"; _local5 = "</b>"; }; var _local6:int; while (_local6 < _local3.length) { _lines.push(((_local4 + _local3[_local6]) + _local5)); _local6++; }; var _local7:Array = _getLinesToDisplay(); text = _local7.join("\n"); } public function close():void{ dispose(); } override protected function dispose():void{ removeEventListener(KeyboardEvent.KEY_DOWN, onKey); super.dispose(); } } }//package com.google.analytics.debug
Section 123
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration) package com.google.analytics.debug { import com.google.analytics.core.*; import flash.net.*; import flash.utils.*; import flash.ui.*; public class DebugConfiguration { public var showHideKey:Number; private var _mode:VisualDebugMode; private var _verbose:Boolean;// = false public var destroyKey:Number; public var GIFRequests:Boolean;// = false public var showInfos:Boolean;// = true public var infoTimeout:Number;// = 1000 public var minimizedOnStart:Boolean;// = false private var _active:Boolean;// = false public var traceOutput:Boolean;// = false public var layout:ILayout; public var warningTimeout:Number;// = 1500 public var javascript:Boolean;// = false public var showWarnings:Boolean;// = true private var _visualInitialized:Boolean;// = false public function DebugConfiguration(){ _mode = VisualDebugMode.basic; showHideKey = Keyboard.SPACE; destroyKey = Keyboard.BACKSPACE; super(); } public function get verbose():Boolean{ return (_verbose); } public function set verbose(_arg1:Boolean):void{ _verbose = _arg1; } public function set mode(_arg1):void{ if ((_arg1 is String)){ switch (_arg1){ case "geek": _arg1 = VisualDebugMode.geek; break; case "advanced": _arg1 = VisualDebugMode.advanced; break; case "basic": default: _arg1 = VisualDebugMode.basic; }; }; _mode = _arg1; } public function success(_arg1:String):void{ if (layout){ layout.createSuccessAlert(_arg1); }; if (traceOutput){ trace((("[+] " + _arg1) + " !!")); }; } public function get active():Boolean{ return (_active); } private function _initializeVisual():void{ if (layout){ layout.init(); _visualInitialized = true; }; } private function _destroyVisual():void{ if (((layout) && (_visualInitialized))){ layout.destroy(); }; } public function warning(_arg1:String, _arg2:VisualDebugMode=null):void{ if (_filter(_arg2)){ return; }; if (((layout) && (showWarnings))){ layout.createWarning(_arg1); }; if (traceOutput){ trace((("## " + _arg1) + " ##")); }; } private function _filter(_arg1:VisualDebugMode=null):Boolean{ return (((_arg1) && ((int(_arg1) >= int(this.mode))))); } public function failure(_arg1:String):void{ if (layout){ layout.createFailureAlert(_arg1); }; if (traceOutput){ trace((("[-] " + _arg1) + " !!")); }; } public function get mode(){ return (_mode); } public function set active(_arg1:Boolean):void{ _active = _arg1; if (_active){ _initializeVisual(); } else { _destroyVisual(); }; } protected function trace(_arg1:String):void{ var _local7:Array; var _local8:int; var _local2:Array = []; var _local3 = ""; var _local4 = ""; if (this.mode == VisualDebugMode.geek){ _local3 = (getTimer() + " - "); _local4 = (new Array(_local3.length).join(" ") + " "); }; if (_arg1.indexOf("\n") > -1){ _local7 = _arg1.split("\n"); _local8 = 0; while (_local8 < _local7.length) { if (_local7[_local8] == ""){ } else { if (_local8 == 0){ _local2.push((_local3 + _local7[_local8])); } else { _local2.push((_local4 + _local7[_local8])); }; }; _local8++; }; } else { _local2.push((_local3 + _arg1)); }; var _local5:int = _local2.length; var _local6:int; while (_local6 < _local5) { trace(_local2[_local6]); _local6++; }; } public function alert(_arg1:String):void{ if (layout){ layout.createAlert(_arg1); }; if (traceOutput){ trace((("!! " + _arg1) + " !!")); }; } public function info(_arg1:String, _arg2:VisualDebugMode=null):void{ if (_filter(_arg2)){ return; }; if (((layout) && (showInfos))){ layout.createInfo(_arg1); }; if (traceOutput){ trace(_arg1); }; } public function alertGifRequest(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{ if (layout){ layout.createGIFRequestAlert(_arg1, _arg2, _arg3); }; if (traceOutput){ trace(((">> " + _arg1) + " <<")); }; } } }//package com.google.analytics.debug
Section 124
//FailureAlert (com.google.analytics.debug.FailureAlert) package com.google.analytics.debug { public class FailureAlert extends Alert { public function FailureAlert(_arg1:DebugConfiguration, _arg2:String, _arg3:Array){ var _local4:Align = Align.bottomLeft; var _local5:Boolean; var _local6:Boolean; if (_arg1.verbose){ _arg2 = ((("<u><span class=\"uiAlertTitle\">Failure</span>" + spaces(18)) + "</u>\n\n") + _arg2); _local4 = Align.center; _local5 = false; _local6 = true; }; super(_arg2, _arg3, "uiFailure", Style.failureColor, _local4, _local5, _local6); } } }//package com.google.analytics.debug
Section 125
//GIFRequestAlert (com.google.analytics.debug.GIFRequestAlert) package com.google.analytics.debug { public class GIFRequestAlert extends Alert { public function GIFRequestAlert(_arg1:String, _arg2:Array){ super(_arg1, _arg2); } } }//package com.google.analytics.debug
Section 126
//ILayout (com.google.analytics.debug.ILayout) package com.google.analytics.debug { import flash.display.*; import com.google.analytics.core.*; import flash.net.*; public interface ILayout { function createAlert(_arg1:String):void; function addToStage(_arg1:DisplayObject):void; function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void; function createWarning(_arg1:String):void; function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void; function createInfo(_arg1:String):void; function createFailureAlert(_arg1:String):void; function addToPanel(_arg1:String, _arg2:DisplayObject):void; function init():void; function createSuccessAlert(_arg1:String):void; function createVisualDebug():void; function destroy():void; function bringToFront(_arg1:DisplayObject):void; function isAvailable():Boolean; } }//package com.google.analytics.debug
Section 127
//Info (com.google.analytics.debug.Info) package com.google.analytics.debug { import flash.events.*; import flash.utils.*; public class Info extends Label { private var _timer:Timer; public function Info(_arg1:String="", _arg2:uint=3000){ super(_arg1, "uiInfo", Style.infoColor, Align.top, true); if (_arg2 > 0){ _timer = new Timer(_arg2, 1); _timer.start(); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true); }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } override public function onLink(_arg1:TextEvent):void{ switch (_arg1.text){ case "hide": close(); break; }; } public function onComplete(_arg1:TimerEvent):void{ close(); } } }//package com.google.analytics.debug
Section 128
//Label (com.google.analytics.debug.Label) package com.google.analytics.debug { import flash.display.*; import flash.events.*; import flash.text.*; public class Label extends UISprite { private var _color:uint; private var _background:Shape; private var _textField:TextField; public var stickToEdge:Boolean; private var _text:String; protected var selectable:Boolean; private var _tag:String; public static var count:uint = 0; public function Label(_arg1:String="", _arg2:String="uiLabel", _arg3:uint=0, _arg4:Align=null, _arg5:Boolean=false){ this.name = ("Label" + count++); selectable = false; _background = new Shape(); _textField = new TextField(); _text = _arg1; _tag = _arg2; if (_arg4 == null){ _arg4 = Align.none; }; this.alignement = _arg4; this.stickToEdge = _arg5; if (_arg3 == 0){ _arg3 = Style.backgroundColor; }; _color = _arg3; _textField.addEventListener(TextEvent.LINK, onLink); } public function get tag():String{ return (_tag); } private function _draw():void{ var _local1:Graphics = _background.graphics; _local1.clear(); _local1.beginFill(_color); var _local2:uint = _textField.width; var _local3:uint = _textField.height; if (forcedWidth > 0){ _local2 = forcedWidth; }; Background.drawRounded(this, _local1, _local2, _local3); _local1.endFill(); } public function get text():String{ return (_textField.text); } public function appendText(_arg1:String, _arg2:String=""):void{ if (_arg1 == ""){ return; }; if (_arg2 == ""){ _arg2 = tag; }; _textField.htmlText = (_textField.htmlText + (((("<span class=\"" + _arg2) + "\">") + _arg1) + "</span>")); _text = (_text + _arg1); _draw(); resize(); } public function set text(_arg1:String):void{ if (_arg1 == ""){ _arg1 = _text; }; _textField.htmlText = (((("<span class=\"" + tag) + "\">") + _arg1) + "</span>"); _text = _arg1; _draw(); resize(); } override protected function layout():void{ _textField.type = TextFieldType.DYNAMIC; _textField.autoSize = TextFieldAutoSize.LEFT; _textField.background = false; _textField.selectable = selectable; _textField.multiline = true; _textField.styleSheet = Style.sheet; this.text = _text; addChild(_background); addChild(_textField); } public function set tag(_arg1:String):void{ _tag = _arg1; text = ""; } public function onLink(_arg1:TextEvent):void{ } override protected function dispose():void{ _textField.removeEventListener(TextEvent.LINK, onLink); super.dispose(); } } }//package com.google.analytics.debug
Section 129
//Layout (com.google.analytics.debug.Layout) package com.google.analytics.debug { import flash.display.*; import flash.events.*; import com.google.analytics.core.*; import flash.net.*; import com.google.analytics.*; public class Layout implements ILayout { private var _display:DisplayObject; private var _infoQueue:Array; private var _maxCharPerLine:int;// = 85 private var _hasInfo:Boolean; private var _warningQueue:Array; private var _hasDebug:Boolean; private var _hasWarning:Boolean; private var _mainPanel:Panel; private var _GRAlertQueue:Array; private var _debug:DebugConfiguration; public var visualDebug:Debug; private var _hasGRAlert:Boolean; public function Layout(_arg1:DebugConfiguration, _arg2:DisplayObject){ _display = _arg2; _debug = _arg1; _hasWarning = false; _hasInfo = false; _hasDebug = false; _hasGRAlert = false; _warningQueue = []; _infoQueue = []; _GRAlertQueue = []; } private function onKey(_arg1:KeyboardEvent=null):void{ switch (_arg1.keyCode){ case _debug.showHideKey: _mainPanel.visible = !(_mainPanel.visible); break; case _debug.destroyKey: destroy(); break; }; } public function createWarning(_arg1:String):void{ if (((_hasWarning) || (!(isAvailable())))){ _warningQueue.push(_arg1); return; }; _arg1 = _filterMaxChars(_arg1); _hasWarning = true; var _local2:Warning = new Warning(_arg1, _debug.warningTimeout); addToPanel("analytics", _local2); _local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearWarning, false, 0, true); if (_hasDebug){ visualDebug.writeBold(_arg1); }; } public function bringToFront(_arg1:DisplayObject):void{ _display.stage.setChildIndex(_arg1, (_display.stage.numChildren - 1)); } public function createFailureAlert(_arg1:String):void{ var _local2:AlertAction; if (_debug.verbose){ _arg1 = _filterMaxChars(_arg1); _local2 = new AlertAction("Close", "close", "close"); } else { _local2 = new AlertAction("X", "close", "close"); }; var _local3:Alert = new FailureAlert(_debug, _arg1, [_local2]); addToPanel("analytics", _local3); if (_hasDebug){ if (_debug.verbose){ _arg1 = _arg1.split("\n").join(""); _arg1 = _filterMaxChars(_arg1, 66); }; visualDebug.writeBold(_arg1); }; } public function init():void{ var _local1 = 10; var _local2:uint = (_display.stage.stageWidth - (_local1 * 2)); var _local3:uint = (_display.stage.stageHeight - (_local1 * 2)); var _local4:Panel = new Panel("analytics", _local2, _local3); _local4.alignement = Align.top; _local4.stickToEdge = false; _local4.title = ("Google Analytics v" + GATracker.version); _mainPanel = _local4; addToStage(_local4); bringToFront(_local4); if (_debug.minimizedOnStart){ _mainPanel.onToggle(); }; createVisualDebug(); _display.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey, false, 0, true); } public function addToPanel(_arg1:String, _arg2:DisplayObject):void{ var _local4:Panel; var _local3:DisplayObject = _display.stage.getChildByName(_arg1); if (_local3){ _local4 = (_local3 as Panel); _local4.addData(_arg2); } else { trace((("panel \"" + _arg1) + "\" not found")); }; } private function _clearInfo(_arg1:Event):void{ _hasInfo = false; if (_infoQueue.length > 0){ createInfo(_infoQueue.shift()); }; } private function _filterMaxChars(_arg1:String, _arg2:int=0):String{ var _local6:String; var _local3 = "\n"; var _local4:Array = []; var _local5:Array = _arg1.split(_local3); if (_arg2 == 0){ _arg2 = _maxCharPerLine; }; var _local7:int; while (_local7 < _local5.length) { _local6 = _local5[_local7]; while (_local6.length > _arg2) { _local4.push(_local6.substr(0, _arg2)); _local6 = _local6.substring(_arg2); }; _local4.push(_local6); _local7++; }; return (_local4.join(_local3)); } private function _clearGRAlert(_arg1:Event):void{ _hasGRAlert = false; if (_GRAlertQueue.length > 0){ createGIFRequestAlert.apply(this, _GRAlertQueue.shift()); }; } public function createSuccessAlert(_arg1:String):void{ var _local2:AlertAction; if (_debug.verbose){ _arg1 = _filterMaxChars(_arg1); _local2 = new AlertAction("Close", "close", "close"); } else { _local2 = new AlertAction("X", "close", "close"); }; var _local3:Alert = new SuccessAlert(_debug, _arg1, [_local2]); addToPanel("analytics", _local3); if (_hasDebug){ if (_debug.verbose){ _arg1 = _arg1.split("\n").join(""); _arg1 = _filterMaxChars(_arg1, 66); }; visualDebug.writeBold(_arg1); }; } public function isAvailable():Boolean{ return (!((_display.stage == null))); } public function createAlert(_arg1:String):void{ _arg1 = _filterMaxChars(_arg1); var _local2:Alert = new Alert(_arg1, [new AlertAction("Close", "close", "close")]); addToPanel("analytics", _local2); if (_hasDebug){ visualDebug.writeBold(_arg1); }; } public function createInfo(_arg1:String):void{ if (((_hasInfo) || (!(isAvailable())))){ _infoQueue.push(_arg1); return; }; _arg1 = _filterMaxChars(_arg1); _hasInfo = true; var _local2:Info = new Info(_arg1, _debug.infoTimeout); addToPanel("analytics", _local2); _local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearInfo, false, 0, true); if (_hasDebug){ visualDebug.write(_arg1); }; } public function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{ var message = _arg1; var request = _arg2; var ref = _arg3; if (_hasGRAlert){ _GRAlertQueue.push([message, request, ref]); return; }; _hasGRAlert = true; var f:Function = function ():void{ ref.sendRequest(request); }; message = _filterMaxChars(message); var gra:GIFRequestAlert = new GIFRequestAlert(message, [new AlertAction("OK", "ok", f), new AlertAction("Cancel", "cancel", "close")]); addToPanel("analytics", gra); gra.addEventListener(Event.REMOVED_FROM_STAGE, _clearGRAlert, false, 0, true); if (_hasDebug){ if (_debug.verbose){ message = message.split("\n").join(""); message = _filterMaxChars(message, 66); }; visualDebug.write(message); }; } public function createVisualDebug():void{ if (!visualDebug){ visualDebug = new Debug(); visualDebug.alignement = Align.bottom; visualDebug.stickToEdge = true; addToPanel("analytics", visualDebug); _hasDebug = true; }; } public function addToStage(_arg1:DisplayObject):void{ _display.stage.addChild(_arg1); } private function _clearWarning(_arg1:Event):void{ _hasWarning = false; if (_warningQueue.length > 0){ createWarning(_warningQueue.shift()); }; } public function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void{ var _local4:Panel = new Panel(_arg1, _arg2, _arg3); _local4.alignement = Align.center; _local4.stickToEdge = false; addToStage(_local4); bringToFront(_local4); } public function destroy():void{ _mainPanel.close(); _debug.layout = null; } } }//package com.google.analytics.debug
Section 130
//Margin (com.google.analytics.debug.Margin) package com.google.analytics.debug { public class Margin { public var top:int; public var left:int; public var bottom:int; public var right:int; public function Margin(_arg1:int=0, _arg2:int=0, _arg3:int=0, _arg4:int=0){ this.top = _arg1; this.bottom = _arg2; this.left = _arg3; this.right = _arg4; } } }//package com.google.analytics.debug
Section 131
//Panel (com.google.analytics.debug.Panel) package com.google.analytics.debug { import flash.display.*; import flash.events.*; public class Panel extends UISprite { private var _savedH:uint; private var _data:UISprite; private var _mask:Sprite; private var _background:Shape; private var _savedW:uint; private var _stickToEdge:Boolean; private var _border:Shape; private var _borderColor:uint; protected var baseAlpha:Number; private var _backgroundColor:uint; private var _title:Label; private var _colapsed:Boolean; private var _name:String; public function Panel(_arg1:String, _arg2:uint, _arg3:uint, _arg4:uint=0, _arg5:uint=0, _arg6:Number=0.3, _arg7:Align=null, _arg8:Boolean=false){ _name = _arg1; this.name = _arg1; this.mouseEnabled = false; _colapsed = false; forcedWidth = _arg2; forcedHeight = _arg3; this.baseAlpha = _arg6; _background = new Shape(); _data = new UISprite(); _data.forcedWidth = _arg2; _data.forcedHeight = _arg3; _data.mouseEnabled = false; _title = new Label(_arg1, "uiLabel", 0xFFFFFF, Align.topLeft, _arg8); _title.buttonMode = true; _title.margin.top = 0.6; _title.margin.left = 0.6; _title.addEventListener(MouseEvent.CLICK, onToggle); _title.mouseChildren = false; _border = new Shape(); _mask = new Sprite(); _mask.useHandCursor = false; _mask.mouseEnabled = false; _mask.mouseChildren = false; if (_arg7 == null){ _arg7 = Align.none; }; this.alignement = _arg7; this.stickToEdge = _arg8; if (_arg4 == 0){ _arg4 = Style.backgroundColor; }; _backgroundColor = _arg4; if (_arg5 == 0){ _arg5 = Style.borderColor; }; _borderColor = _arg5; } public function get stickToEdge():Boolean{ return (_stickToEdge); } public function onToggle(_arg1:MouseEvent=null):void{ if (_colapsed){ _data.visible = true; } else { _data.visible = false; }; _colapsed = !(_colapsed); _update(); resize(); } public function set stickToEdge(_arg1:Boolean):void{ _stickToEdge = _arg1; _title.stickToEdge = _arg1; } override protected function dispose():void{ _title.removeEventListener(MouseEvent.CLICK, onToggle); super.dispose(); } private function _draw():void{ var _local1:uint; var _local2:uint; if (((_savedW) && (_savedH))){ forcedWidth = _savedW; forcedHeight = _savedH; }; if (!_colapsed){ _local1 = forcedWidth; _local2 = forcedHeight; } else { _local1 = _title.width; _local2 = _title.height; _savedW = forcedWidth; _savedH = forcedHeight; forcedWidth = _local1; forcedHeight = _local2; }; var _local3:Graphics = _background.graphics; _local3.clear(); _local3.beginFill(_backgroundColor); Background.drawRounded(this, _local3, _local1, _local2); _local3.endFill(); var _local4:Graphics = _data.graphics; _local4.clear(); _local4.beginFill(_backgroundColor, 0); Background.drawRounded(this, _local4, _local1, _local2); _local4.endFill(); var _local5:Graphics = _border.graphics; _local5.clear(); _local5.lineStyle(0.1, _borderColor); Background.drawRounded(this, _local5, _local1, _local2); _local5.endFill(); var _local6:Graphics = _mask.graphics; _local6.clear(); _local6.beginFill(_backgroundColor); Background.drawRounded(this, _local6, (_local1 + 1), (_local2 + 1)); _local6.endFill(); } public function get title():String{ return (_title.text); } private function _update():void{ _draw(); if (baseAlpha < 1){ _background.alpha = baseAlpha; _border.alpha = baseAlpha; }; } public function addData(_arg1:DisplayObject):void{ _data.addChild(_arg1); } override protected function layout():void{ _update(); addChild(_background); addChild(_data); addChild(_title); addChild(_border); addChild(_mask); mask = _mask; } public function set title(_arg1:String):void{ _title.text = _arg1; } public function close():void{ dispose(); if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 132
//Style (com.google.analytics.debug.Style) package com.google.analytics.debug { public const Style:_Style = new _Style(); }//package com.google.analytics.debug
Section 133
//SuccessAlert (com.google.analytics.debug.SuccessAlert) package com.google.analytics.debug { public class SuccessAlert extends Alert { public function SuccessAlert(_arg1:DebugConfiguration, _arg2:String, _arg3:Array){ var _local4:Align = Align.bottomLeft; var _local5:Boolean; var _local6:Boolean; if (_arg1.verbose){ _arg2 = ((("<u><span class=\"uiAlertTitle\">Success</span>" + spaces(18)) + "</u>\n\n") + _arg2); _local4 = Align.center; _local5 = false; _local6 = true; }; super(_arg2, _arg3, "uiSuccess", Style.successColor, _local4, _local5, _local6); } } }//package com.google.analytics.debug
Section 134
//UISprite (com.google.analytics.debug.UISprite) package com.google.analytics.debug { import flash.display.*; import flash.events.*; public class UISprite extends Sprite { private var _forcedWidth:uint; public var margin:Margin; protected var alignTarget:DisplayObject; protected var listenResize:Boolean; public var alignement:Align; private var _forcedHeight:uint; public function UISprite(_arg1:DisplayObject=null){ listenResize = false; alignement = Align.none; this.alignTarget = _arg1; margin = new Margin(); addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage); } public function get forcedHeight():uint{ if (_forcedHeight){ return (_forcedHeight); }; return (height); } private function _onAddedToStage(_arg1:Event):void{ layout(); resize(); } protected function dispose():void{ var _local1:DisplayObject; var _local2:int; while (_local2 < numChildren) { _local1 = getChildAt(_local2); if (_local1){ removeChild(_local1); }; _local2++; }; } public function set forcedHeight(_arg1:uint):void{ _forcedHeight = _arg1; } public function set forcedWidth(_arg1:uint):void{ _forcedWidth = _arg1; } protected function layout():void{ } public function get forcedWidth():uint{ if (_forcedWidth){ return (_forcedWidth); }; return (width); } public function alignTo(_arg1:Align, _arg2:DisplayObject=null):void{ var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:UISprite; if (_arg2 == null){ if ((parent is Stage)){ _arg2 = this.stage; } else { _arg2 = parent; }; }; if (_arg2 == this.stage){ if (this.stage == null){ return; }; _local3 = this.stage.stageHeight; _local4 = this.stage.stageWidth; _local5 = 0; _local6 = 0; } else { _local7 = (_arg2 as UISprite); if (_local7.forcedHeight){ _local3 = _local7.forcedHeight; } else { _local3 = _local7.height; }; if (_local7.forcedWidth){ _local4 = _local7.forcedWidth; } else { _local4 = _local7.width; }; _local5 = 0; _local6 = 0; }; switch (_arg1){ case Align.top: x = ((_local4 / 2) - (forcedWidth / 2)); y = (_local6 + margin.top); break; case Align.bottom: x = ((_local4 / 2) - (forcedWidth / 2)); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; case Align.left: x = (_local5 + margin.left); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.right: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.center: x = ((_local4 / 2) - (forcedWidth / 2)); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.topLeft: x = (_local5 + margin.left); y = (_local6 + margin.top); break; case Align.topRight: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = (_local6 + margin.top); break; case Align.bottomLeft: x = (_local5 + margin.left); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; case Align.bottomRight: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; }; if (((!(listenResize)) && (!((_arg1 == Align.none))))){ _arg2.addEventListener(Event.RESIZE, onResize, false, 0, true); listenResize = true; }; this.alignement = _arg1; this.alignTarget = _arg2; } private function _onRemovedFromStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, _onAddedToStage); removeEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage); dispose(); } public function resize():void{ if (alignement != Align.none){ alignTo(alignement, alignTarget); }; } protected function onResize(_arg1:Event):void{ resize(); } } }//package com.google.analytics.debug
Section 135
//Warning (com.google.analytics.debug.Warning) package com.google.analytics.debug { import flash.events.*; import flash.utils.*; public class Warning extends Label { private var _timer:Timer; public function Warning(_arg1:String="", _arg2:uint=3000){ super(_arg1, "uiWarning", Style.warningColor, Align.top, false); margin.top = 32; if (_arg2 > 0){ _timer = new Timer(_arg2, 1); _timer.start(); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true); }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } override public function onLink(_arg1:TextEvent):void{ switch (_arg1.text){ case "hide": close(); break; }; } public function onComplete(_arg1:TimerEvent):void{ close(); } } }//package com.google.analytics.debug
Section 136
//VisualDebugMode (com.google.analytics.debug.VisualDebugMode) package com.google.analytics.debug { public class VisualDebugMode { private var _value:int; private var _name:String; public static const advanced:VisualDebugMode = new VisualDebugMode(1, "advanced"); ; public static const geek:VisualDebugMode = new VisualDebugMode(2, "geek"); ; public static const basic:VisualDebugMode = new VisualDebugMode(0, "basic"); ; public function VisualDebugMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.debug
Section 137
//Item (com.google.analytics.ecommerce.Item) package com.google.analytics.ecommerce { import com.google.analytics.utils.*; public class Item { private var _price:String; private var _id:String; private var _sku:String; private var _category:String; private var _quantity:String; private var _name:String; public function Item(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String){ this._id = _arg1; this._sku = _arg2; this._name = _arg3; this._category = _arg4; this._price = _arg5; this._quantity = _arg6; } public function set sku(_arg1:String):void{ _sku = _arg1; } public function get price():String{ return (_price); } public function get name():String{ return (_name); } public function get quantity():String{ return (_quantity); } public function set name(_arg1:String):void{ _name = _arg1; } public function set price(_arg1:String):void{ _price = _arg1; } public function get id():String{ return (_id); } public function get sku():String{ return (_sku); } public function set quantity(_arg1:String):void{ _quantity = _arg1; } public function toGifParams():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; _local1.post = ["utmt", "utmtid", "utmipc", "utmipn", "utmiva", "utmipr", "utmiqt"]; _local1.utmt = "item"; _local1.utmtid = _id; _local1.utmipc = _sku; _local1.utmipn = _name; _local1.utmiva = _category; _local1.utmipr = _price; _local1.utmiqt = _quantity; return (_local1); } public function set id(_arg1:String):void{ _id = _arg1; } public function set category(_arg1:String):void{ _category = _arg1; } public function get category():String{ return (_category); } } }//package com.google.analytics.ecommerce
Section 138
//Transaction (com.google.analytics.ecommerce.Transaction) package com.google.analytics.ecommerce { import com.google.analytics.utils.*; public class Transaction { private var _items:Array; private var _total:String; private var _vars:Variables; private var _shipping:String; private var _city:String; private var _state:String; private var _country:String; private var _tax:String; private var _affiliation:String; private var _id:String; public function Transaction(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String, _arg8:String){ this._id = _arg1; this._affiliation = _arg2; this._total = _arg3; this._tax = _arg4; this._shipping = _arg5; this._city = _arg6; this._state = _arg7; this._country = _arg8; _items = new Array(); } public function get total():String{ return (_total); } public function getItemFromArray(_arg1:Number):Item{ return (_items[_arg1]); } public function set total(_arg1:String):void{ _total = _arg1; } public function getItem(_arg1:String):Item{ var _local2:Number; _local2 = 0; while (_local2 < _items.length) { if (_items[_local2].sku == _arg1){ return (_items[_local2]); }; _local2++; }; return (null); } public function getItemsLength():Number{ return (_items.length); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String):void{ var _local6:Item; _local6 = getItem(_arg1); if (_local6 == null){ _local6 = new Item(_id, _arg1, _arg2, _arg3, _arg4, _arg5); _items.push(_local6); } else { _local6.name = _arg2; _local6.category = _arg3; _local6.price = _arg4; _local6.quantity = _arg5; }; } public function set shipping(_arg1:String):void{ _shipping = _arg1; } public function get country():String{ return (_country); } public function get state():String{ return (_state); } public function set tax(_arg1:String):void{ _tax = _arg1; } public function set affiliation(_arg1:String):void{ _affiliation = _arg1; } public function set state(_arg1:String):void{ _state = _arg1; } public function get id():String{ return (_id); } public function get tax():String{ return (_tax); } public function toGifParams():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; _local1.utmt = "tran"; _local1.utmtid = id; _local1.utmtst = affiliation; _local1.utmtto = total; _local1.utmttx = tax; _local1.utmtsp = shipping; _local1.utmtci = city; _local1.utmtrg = state; _local1.utmtco = country; _local1.post = ["utmtid", "utmtst", "utmtto", "utmttx", "utmtsp", "utmtci", "utmtrg", "utmtco"]; return (_local1); } public function get affiliation():String{ return (_affiliation); } public function get city():String{ return (_city); } public function get shipping():String{ return (_shipping); } public function set id(_arg1:String):void{ _id = _arg1; } public function set city(_arg1:String):void{ _city = _arg1; } public function set country(_arg1:String):void{ _country = _arg1; } } }//package com.google.analytics.ecommerce
Section 139
//AnalyticsEvent (com.google.analytics.events.AnalyticsEvent) package com.google.analytics.events { import flash.events.*; import com.google.analytics.*; public class AnalyticsEvent extends Event { public var tracker:AnalyticsTracker; public static const READY:String = "ready"; public function AnalyticsEvent(_arg1:String, _arg2:AnalyticsTracker, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.tracker = _arg2; } override public function clone():Event{ return (new AnalyticsEvent(type, tracker, bubbles, cancelable)); } } }//package com.google.analytics.events
Section 140
//AdSenseGlobals (com.google.analytics.external.AdSenseGlobals) package com.google.analytics.external { import com.google.analytics.debug.*; public class AdSenseGlobals extends JavascriptProxy { private var _gaGlobalVerified:Boolean;// = false public static var gaGlobal_js:XML = <script> <![CDATA[ function() { try { gaGlobal } catch(e) { gaGlobal = {} ; } } ]]> </script> ; public function AdSenseGlobals(_arg1:DebugConfiguration){ super(_arg1); } public function set vid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.vid", _arg1); } public function get hid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.hid")); } public function set hid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.hid", _arg1); } public function get dh():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.dh")); } public function get sid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.sid")); } public function get vid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.vid")); } private function _verify():void{ if (!_gaGlobalVerified){ executeBlock(gaGlobal_js); _gaGlobalVerified = true; }; } public function set sid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.sid", _arg1); } public function get gaGlobal():Object{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal")); } } }//package com.google.analytics.external
Section 141
//HTMLDOM (com.google.analytics.external.HTMLDOM) package com.google.analytics.external { import com.google.analytics.debug.*; public class HTMLDOM extends JavascriptProxy { private var _referrer:String; private var _language:String; private var _host:String; private var _pathname:String; private var _location:String; private var _search:String; private var _characterSet:String; private var _title:String; private var _protocol:String; private var _colorDepth:String; public static var cache_properties_js:XML = <script> <![CDATA[ function() { var obj = {}; obj.host = document.location.host; obj.language = navigator.language ? navigator.language : navigator.browserLanguage; obj.characterSet = document.characterSet ? document.characterSet : document.charset; obj.colorDepth = window.screen.colorDepth; obj.location = document.location.toString(); obj.pathname = document.location.pathname; obj.protocol = document.location.protocol; obj.search = document.location.search; obj.referrer = document.referrer; obj.title = document.title; return obj; } ]]> </script> ; public function HTMLDOM(_arg1:DebugConfiguration){ super(_arg1); } public function get search():String{ if (_search){ return (_search); }; if (!isAvailable()){ return (null); }; _search = getProperty("document.location.search"); return (_search); } public function get location():String{ if (_location){ return (_location); }; if (!isAvailable()){ return (null); }; _location = getPropertyString("document.location"); return (_location); } public function get pathname():String{ if (_pathname){ return (_pathname); }; if (!isAvailable()){ return (null); }; _pathname = getProperty("document.location.pathname"); return (_pathname); } public function cacheProperties():void{ if (!isAvailable()){ return; }; var _local1:Object = call(cache_properties_js); if (_local1){ _host = _local1.host; _language = _local1.language; _characterSet = _local1.characterSet; _colorDepth = _local1.colorDepth; _location = _local1.location; _pathname = _local1.pathname; _protocol = _local1.protocol; _search = _local1.search; _referrer = _local1.referrer; _title = _local1.title; }; } public function get language():String{ if (_language){ return (_language); }; if (!isAvailable()){ return (null); }; var _local1:String = getProperty("navigator.language"); if (_local1 == null){ _local1 = getProperty("navigator.browserLanguage"); }; _language = _local1; return (_language); } public function get colorDepth():String{ if (_colorDepth){ return (_colorDepth); }; if (!isAvailable()){ return (null); }; _colorDepth = getProperty("window.screen.colorDepth"); return (_colorDepth); } public function get referrer():String{ if (_referrer){ return (_referrer); }; if (!isAvailable()){ return (null); }; _referrer = getProperty("document.referrer"); return (_referrer); } public function get protocol():String{ if (_protocol){ return (_protocol); }; if (!isAvailable()){ return (null); }; _protocol = getProperty("document.location.protocol"); return (_protocol); } public function get host():String{ if (_host){ return (_host); }; if (!isAvailable()){ return (null); }; _host = getProperty("document.location.host"); return (_host); } public function get characterSet():String{ if (_characterSet){ return (_characterSet); }; if (!isAvailable()){ return (null); }; var _local1:String = getProperty("document.characterSet"); if (_local1 == null){ _local1 = getProperty("document.charset"); }; _characterSet = _local1; return (_characterSet); } public function get title():String{ if (_title){ return (_title); }; if (!isAvailable()){ return (null); }; _title = getProperty("document.title"); return (_title); } } }//package com.google.analytics.external
Section 142
//JavascriptProxy (com.google.analytics.external.JavascriptProxy) package com.google.analytics.external { import com.google.analytics.debug.*; import flash.system.*; import flash.external.*; public class JavascriptProxy { private var _notAvailableWarning:Boolean;// = true private var _debug:DebugConfiguration; public static var setProperty_js:XML = <script> <![CDATA[ function( path , value ) { var paths; var prop; if( path.indexOf(".") > 0 ) { paths = path.split("."); prop = paths.pop() ; } else { paths = []; prop = path; } var target = window ; var len = paths.length ; for( var i = 0 ; i < len ; i++ ) { target = target[ paths[i] ] ; } target[ prop ] = value ; } ]]> </script> ; public static var hasProperty_js:XML = <script> <![CDATA[ function( path ) { var paths; if( path.indexOf(".") > 0 ) { paths = path.split("."); } else { paths = [path]; } var target = window ; var len = paths.length ; for( var i = 0 ; i < len ; i++ ) { target = target[ paths[i] ] ; } if( target ) { return true; } else { return false; } } ]]> </script> ; public static var setPropertyRef_js:XML = <script> <![CDATA[ function( path , target ) { var paths; var prop; if( path.indexOf(".") > 0 ) { paths = path.split("."); prop = paths.pop() ; } else { paths = []; prop = path; } alert( "paths:"+paths.length+", prop:"+prop ); var targets; var name; if( target.indexOf(".") > 0 ) { targets = target.split("."); name = targets.pop(); } else { targets = []; name = target; } alert( "targets:"+targets.length+", name:"+name ); var root = window; var len = paths.length; for( var i = 0 ; i < len ; i++ ) { root = root[ paths[i] ] ; } var ref = window; var depth = targets.length; for( var j = 0 ; j < depth ; j++ ) { ref = ref[ targets[j] ] ; } root[ prop ] = ref[name] ; } ]]> </script> ; public function JavascriptProxy(_arg1:DebugConfiguration){ _debug = _arg1; } public function getProperty(_arg1:String){ return (call((_arg1 + ".valueOf"))); } public function hasProperty(_arg1:String):Boolean{ return (call(hasProperty_js, _arg1)); } public function setProperty(_arg1:String, _arg2):void{ call(setProperty_js, _arg1, _arg2); } public function executeBlock(_arg1:String):void{ var data = _arg1; if (isAvailable()){ try { ExternalInterface.call(data); } catch(e:SecurityError) { if (_debug.javascript){ _debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML."); }; } catch(e:Error) { if (_debug.javascript){ _debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message)); }; }; }; } public function getPropertyString(_arg1:String):String{ return (call((_arg1 + ".toString"))); } public function setPropertyByReference(_arg1:String, _arg2:String):void{ call(setPropertyRef_js, _arg1, _arg2); } public function call(_arg1:String, ... _args){ var output:String; var functionName = _arg1; var args = _args; if (isAvailable()){ try { if (((_debug.javascript) && (_debug.verbose))){ output = ""; output = ("Flash->JS: " + functionName); output = (output + "( "); if (args.length > 0){ output = (output + args.join(",")); }; output = (output + " )"); _debug.info(output); }; args.unshift(functionName); return (ExternalInterface.call.apply(ExternalInterface, args)); } catch(e:SecurityError) { if (_debug.javascript){ _debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML."); }; } catch(e:Error) { if (_debug.javascript){ _debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message)); }; }; }; return (null); } public function isAvailable():Boolean{ var _local1:Boolean = ExternalInterface.available; if (((_local1) && ((Capabilities.playerType == "External")))){ _local1 = false; }; if (((((!(_local1)) && (_debug.javascript))) && (_notAvailableWarning))){ _debug.warning("ExternalInterface is not available."); _notAvailableWarning = false; }; return (_local1); } } }//package com.google.analytics.external
Section 143
//Environment (com.google.analytics.utils.Environment) package com.google.analytics.utils { import com.google.analytics.debug.*; import com.google.analytics.external.*; import flash.system.*; public class Environment { private var _dom:HTMLDOM; private var _appName:String; private var _debug:DebugConfiguration; private var _appVersion:Version; private var _url:String; private var _protocol:Protocols; private var _userAgent:UserAgent; public function Environment(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:DebugConfiguration=null, _arg5:HTMLDOM=null){ var _local6:Version; super(); if (_arg2 == ""){ if (isAIR()){ _arg2 = "AIR"; } else { _arg2 = "Flash"; }; }; if (_arg3 == ""){ _local6 = flashVersion; } else { _local6 = Version.fromString(_arg3); }; _url = _arg1; _appName = _arg2; _appVersion = _local6; _debug = _arg4; _dom = _arg5; } public function isAIR():Boolean{ return ((((playerType == "Desktop")) && ((Security.sandboxType.toString() == "application")))); } public function get screenWidth():Number{ return (Capabilities.screenResolutionX); } public function get playerType():String{ return (Capabilities.playerType); } public function get locationSearch():String{ var _local1:String = _dom.search; if (_local1){ return (_local1); }; return (""); } public function get protocol():Protocols{ if (!_protocol){ _findProtocol(); }; return (_protocol); } public function get flashVersion():Version{ var _local1:Version = Version.fromString(Capabilities.version.split(" ")[1], ","); return (_local1); } public function get userAgent():UserAgent{ if (!_userAgent){ _userAgent = new UserAgent(this, appName, appVersion.toString(4)); }; return (_userAgent); } public function get languageEncoding():String{ var _local1:String; if (System.useCodePage){ _local1 = _dom.characterSet; if (_local1){ return (_local1); }; return ("-"); }; return ("UTF-8"); } public function get appName():String{ return (_appName); } public function get screenColorDepth():String{ var _local1:String; switch (Capabilities.screenColor){ case "bw": _local1 = "1"; break; case "gray": _local1 = "2"; break; case "color": default: _local1 = "24"; }; var _local2:String = _dom.colorDepth; if (_local2){ _local1 = _local2; }; return (_local1); } private function _findProtocol():void{ var _local4:String; var _local5:String; var _local1:Protocols = Protocols.none; if (_url != ""){ _local4 = _url.toLowerCase(); _local5 = _local4.substr(0, 5); switch (_local5){ case "file:": _local1 = Protocols.file; break; case "http:": _local1 = Protocols.HTTP; break; case "https": if (_local4.charAt(5) == ":"){ _local1 = Protocols.HTTPS; }; break; default: _protocol = Protocols.none; }; }; var _local2:String = _dom.protocol; var _local3:String = (_local1.toString() + ":").toLowerCase(); if (((((_local2) && (!((_local2 == _local3))))) && (_debug))){ _debug.warning(((("Protocol mismatch: SWF=" + _local3) + ", DOM=") + _local2)); }; _protocol = _local1; } public function get locationSWFPath():String{ return (_url); } public function get platform():String{ var _local1:String = Capabilities.manufacturer; return (_local1.split("Adobe ")[1]); } public function get operatingSystem():String{ return (Capabilities.os); } public function set appName(_arg1:String):void{ _appName = _arg1; userAgent.applicationProduct = _arg1; } function set url(_arg1:String):void{ _url = _arg1; } public function get referrer():String{ var _local1:String = _dom.referrer; if (_local1){ return (_local1); }; if (protocol == Protocols.file){ return ("localhost"); }; return (""); } public function isInHTML():Boolean{ return ((Capabilities.playerType == "PlugIn")); } public function get language():String{ var _local1:String = _dom.language; var _local2:String = Capabilities.language; if (_local1){ if ((((_local1.length > _local2.length)) && ((_local1.substr(0, _local2.length) == _local2)))){ _local2 = _local1; }; }; return (_local2); } public function get domainName():String{ var _local1:String; var _local2:String; var _local3:int; if ((((protocol == Protocols.HTTP)) || ((protocol == Protocols.HTTPS)))){ _local1 = _url.toLowerCase(); if (protocol == Protocols.HTTP){ _local2 = _local1.split("http://").join(""); } else { if (protocol == Protocols.HTTPS){ _local2 = _local1.split("https://").join(""); }; }; _local3 = _local2.indexOf("/"); if (_local3 > -1){ _local2 = _local2.substring(0, _local3); }; return (_local2); }; if (protocol == Protocols.file){ return ("localhost"); }; return (""); } public function set userAgent(_arg1:UserAgent):void{ _userAgent = _arg1; } public function set appVersion(_arg1:Version):void{ _appVersion = _arg1; userAgent.applicationVersion = _arg1.toString(4); } public function get screenHeight():Number{ return (Capabilities.screenResolutionY); } public function get locationPath():String{ var _local1:String = _dom.pathname; if (_local1){ return (_local1); }; return (""); } public function get documentTitle():String{ var _local1:String = _dom.title; if (_local1){ return (_local1); }; return (""); } public function get appVersion():Version{ return (_appVersion); } } }//package com.google.analytics.utils
Section 144
//Protocols (com.google.analytics.utils.Protocols) package com.google.analytics.utils { public class Protocols { private var _value:int; private var _name:String; public static const none:Protocols = new Protocols(0, "none"); ; public static const HTTPS:Protocols = new Protocols(3, "HTTPS"); ; public static const file:Protocols = new Protocols(1, "file"); ; public static const HTTP:Protocols = new Protocols(2, "HTTP"); ; public function Protocols(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.utils
Section 145
//Timespan (com.google.analytics.utils.Timespan) package com.google.analytics.utils { public class Timespan { public static var sixmonths:Number = 15768000; public static var twoyears:Number = 63072000; public static var thirtyminutes:Number = 1800; } }//package com.google.analytics.utils
Section 146
//URL (com.google.analytics.utils.URL) package com.google.analytics.utils { public class URL { private var _url:String; public function URL(_arg1:String=""){ _url = _arg1.toLowerCase(); } public function get domain():String{ var _local1:Array; if (((!((hostName == ""))) && ((hostName.indexOf(".") > -1)))){ _local1 = hostName.split("."); switch (_local1.length){ case 2: return (hostName); case 3: if (_local1[1] == "co"){ return (hostName); }; _local1.shift(); return (_local1.join(".")); case 4: _local1.shift(); return (_local1.join(".")); }; }; return (""); } public function get path():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf(hostName) == 0){ _local1 = _local1.substr(hostName.length); }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[0]; }; if (_local1.charAt(0) != "/"){ _local1 = ("/" + _local1); }; return (_local1); } public function get protocol():Protocols{ var _local1:String = _url.split("://")[0]; switch (_local1){ case "file": return (Protocols.file); case "http": return (Protocols.HTTP); case "https": return (Protocols.HTTPS); default: return (Protocols.none); }; } public function get hostName():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf("/") > -1){ _local1 = _local1.split("/")[0]; }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[0]; }; if ((((protocol == Protocols.file)) || ((protocol == Protocols.none)))){ return (""); }; return (_local1); } public function get subDomain():String{ if (((!((domain == ""))) && (!((domain == hostName))))){ return (hostName.split(("." + domain)).join("")); }; return (""); } public function get search():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf(hostName) == 0){ _local1 = _local1.substr(hostName.length); }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[1]; } else { _local1 = ""; }; return (_local1); } } }//package com.google.analytics.utils
Section 147
//UserAgent (com.google.analytics.utils.UserAgent) package com.google.analytics.utils { import com.google.analytics.core.*; import flash.system.*; public class UserAgent { private var _localInfo:Environment; private var _applicationProduct:String; private var _version:Version; public static var minimal:Boolean = false; public function UserAgent(_arg1:Environment, _arg2:String="", _arg3:String=""){ _localInfo = _arg1; applicationProduct = _arg2; _version = Version.fromString(_arg3); } public function get tamarinProductToken():String{ if (UserAgent.minimal){ return (""); }; if (System.vmVersion){ return (("Tamarin/" + Utils.trim(System.vmVersion, true))); }; return (""); } public function get applicationVersion():String{ return (_version.toString(2)); } public function get vendorProductToken():String{ var _local1 = ""; if (_localInfo.isAIR()){ _local1 = (_local1 + "AIR"); } else { _local1 = (_local1 + "FlashPlayer"); }; _local1 = (_local1 + "/"); _local1 = (_local1 + _version.toString(3)); return (_local1); } public function toString():String{ var _local1 = ""; _local1 = (_local1 + applicationProductToken); if (applicationComment != ""){ _local1 = (_local1 + (" " + applicationComment)); }; if (tamarinProductToken != ""){ _local1 = (_local1 + (" " + tamarinProductToken)); }; if (vendorProductToken != ""){ _local1 = (_local1 + (" " + vendorProductToken)); }; return (_local1); } public function get applicationComment():String{ var _local1:Array = []; _local1.push(_localInfo.platform); _local1.push(_localInfo.playerType); if (!UserAgent.minimal){ _local1.push(_localInfo.operatingSystem); _local1.push(_localInfo.language); }; if (Capabilities.isDebugger){ _local1.push("DEBUG"); }; if (_local1.length > 0){ return ((("(" + _local1.join("; ")) + ")")); }; return (""); } public function set applicationVersion(_arg1:String):void{ _version = Version.fromString(_arg1); } public function get applicationProductToken():String{ var _local1:String = applicationProduct; if (applicationVersion != ""){ _local1 = (_local1 + ("/" + applicationVersion)); }; return (_local1); } public function set applicationProduct(_arg1:String):void{ _applicationProduct = _arg1; } public function get applicationProduct():String{ return (_applicationProduct); } } }//package com.google.analytics.utils
Section 148
//Variables (com.google.analytics.utils.Variables) package com.google.analytics.utils { import flash.net.*; public dynamic class Variables { public var post:Array; public var URIencode:Boolean; public var pre:Array; public var sort:Boolean;// = true public function Variables(_arg1:String=null, _arg2:Array=null, _arg3:Array=null){ pre = []; post = []; super(); if (_arg1){ decode(_arg1); }; if (_arg2){ this.pre = _arg2; }; if (_arg3){ this.post = _arg3; }; } private function _join(_arg1:Variables):void{ var _local2:String; if (!_arg1){ return; }; for (_local2 in _arg1) { this[_local2] = _arg1[_local2]; }; } public function join(... _args):void{ var _local2:int = _args.length; var _local3:int; while (_local3 < _local2) { if (!(_args[_local3] is Variables)){ } else { _join(_args[_local3]); }; _local3++; }; } public function toString():String{ var _local2:String; var _local3:String; var _local4:String; var _local5:int; var _local6:int; var _local7:String; var _local8:String; var _local1:Array = []; for (_local3 in this) { _local2 = this[_local3]; if (URIencode){ _local2 = encodeURI(_local2); }; _local1.push(((_local3 + "=") + _local2)); }; if (sort){ _local1.sort(); }; if (pre.length > 0){ pre.reverse(); _local5 = 0; while (_local5 < pre.length) { _local7 = pre[_local5]; _local6 = 0; while (_local6 < _local1.length) { _local4 = _local1[_local6]; if (_local4.indexOf(_local7) == 0){ _local1.unshift(_local1.splice(_local6, 1)[0]); }; _local6++; }; _local5++; }; pre.reverse(); }; if (post.length > 0){ _local5 = 0; while (_local5 < post.length) { _local8 = post[_local5]; _local6 = 0; while (_local6 < _local1.length) { _local4 = _local1[_local6]; if (_local4.indexOf(_local8) == 0){ _local1.push(_local1.splice(_local6, 1)[0]); }; _local6++; }; _local5++; }; }; return (_local1.join("&")); } public function decode(_arg1:String):void{ var _local2:Array; var _local3:String; var _local4:String; var _local5:String; var _local6:Array; if (_arg1 == ""){ return; }; if (_arg1.charAt(0) == "?"){ _arg1 = _arg1.substr(1, _arg1.length); }; if (_arg1.indexOf("&") > -1){ _local2 = _arg1.split("&"); } else { _local2 = [_arg1]; }; var _local7:int; while (_local7 < _local2.length) { _local3 = _local2[_local7]; if (_local3.indexOf("=") > -1){ _local6 = _local3.split("="); _local4 = _local6[0]; _local5 = decodeURI(_local6[1]); this[_local4] = _local5; }; _local7++; }; } public function toURLVariables():URLVariables{ var _local2:String; var _local1:URLVariables = new URLVariables(); for (_local2 in this) { _local1[_local2] = this[_local2]; }; return (_local1); } } }//package com.google.analytics.utils
Section 149
//Version (com.google.analytics.utils.Version) package com.google.analytics.utils { public class Version { private var _revision:uint; private var _maxBuild:uint;// = 0xFF private var _maxMinor:uint;// = 15 private var _maxMajor:uint;// = 15 private var _separator:String;// = "." private var _maxRevision:uint;// = 0xFFFF private var _build:uint; private var _major:uint; private var _minor:uint; public function Version(_arg1:uint=0, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0){ var _local5:Version; super(); if ((((((((_arg1 > _maxMajor)) && ((_arg2 == 0)))) && ((_arg3 == 0)))) && ((_arg4 == 0)))){ _local5 = Version.fromNumber(_arg1); _arg1 = _local5.major; _arg2 = _local5.minor; _arg3 = _local5.build; _arg4 = _local5.revision; }; this.major = _arg1; this.minor = _arg2; this.build = _arg3; this.revision = _arg4; } public function toString(_arg1:int=0):String{ var _local2:Array; if ((((_arg1 <= 0)) || ((_arg1 > 4)))){ _arg1 = getFields(); }; switch (_arg1){ case 1: _local2 = [major]; break; case 2: _local2 = [major, minor]; break; case 3: _local2 = [major, minor, build]; break; case 4: default: _local2 = [major, minor, build, revision]; }; return (_local2.join(_separator)); } public function set revision(_arg1:uint):void{ _revision = Math.min(_arg1, _maxRevision); } public function get revision():uint{ return (_revision); } public function set build(_arg1:uint):void{ _build = Math.min(_arg1, _maxBuild); } public function set minor(_arg1:uint):void{ _minor = Math.min(_arg1, _maxMinor); } public function get build():uint{ return (_build); } public function set major(_arg1:uint):void{ _major = Math.min(_arg1, _maxMajor); } public function get minor():uint{ return (_minor); } private function getFields():int{ var _local1 = 4; if (revision == 0){ _local1--; }; if ((((_local1 == 3)) && ((build == 0)))){ _local1--; }; if ((((_local1 == 2)) && ((minor == 0)))){ _local1--; }; return (_local1); } public function valueOf():uint{ return (((((major << 28) | (minor << 24)) | (build << 16)) | revision)); } public function get major():uint{ return (_major); } public function equals(_arg1):Boolean{ if (!(_arg1 is Version)){ return (false); }; if ((((((((_arg1.major == major)) && ((_arg1.minor == minor)))) && ((_arg1.build == build)))) && ((_arg1.revision == revision)))){ return (true); }; return (false); } public static function fromString(_arg1:String="", _arg2:String="."):Version{ var _local4:Array; var _local3:Version = new (Version); if ((((_arg1 == "")) || ((_arg1 == null)))){ return (_local3); }; if (_arg1.indexOf(_arg2) > -1){ _local4 = _arg1.split(_arg2); _local3.major = parseInt(_local4[0]); _local3.minor = parseInt(_local4[1]); _local3.build = parseInt(_local4[2]); _local3.revision = parseInt(_local4[3]); } else { _local3.major = parseInt(_arg1); }; return (_local3); } public static function fromNumber(_arg1:Number=0):Version{ var _local2:Version = new (Version); if (((((((((((isNaN(_arg1)) || ((_arg1 == 0)))) || ((_arg1 < 0)))) || ((_arg1 == Number.MAX_VALUE)))) || ((_arg1 == Number.POSITIVE_INFINITY)))) || ((_arg1 == Number.NEGATIVE_INFINITY)))){ return (_local2); }; _local2.major = (_arg1 >>> 28); _local2.minor = ((_arg1 & 251658240) >>> 24); _local2.build = ((_arg1 & 0xFF0000) >>> 16); _local2.revision = (_arg1 & 0xFFFF); return (_local2); } } }//package com.google.analytics.utils
Section 150
//Bridge (com.google.analytics.v4.Bridge) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.external.*; public class Bridge implements GoogleAnalyticsAPI { private var _debug:DebugConfiguration; private var _proxy:JavascriptProxy; private var _jsContainer:String;// = "_GATracker" private var _hasGATracker:Boolean;// = false private var _account:String; private static var _linkTrackingObject_js:XML = <script> <![CDATA[ function( container , target ) { var targets ; var name ; if( target.indexOf(".") > 0 ) { targets = target.split("."); name = targets.pop(); } else { targets = []; name = target; } var ref = window; var depth = targets.length; for( var j = 0 ; j < depth ; j++ ) { ref = ref[ targets[j] ] ; } window[container][target] = ref[name] ; } ]]> </script> ; private static var _createTrackingObject_js:XML = <script> <![CDATA[ function( acct ) { _GATracker[acct] = _gat._getTracker(acct); } ]]> </script> ; private static var _injectTrackingObject_js:XML = <script> <![CDATA[ function() { try { _GATracker } catch(e) { _GATracker = {}; } } ]]> </script> ; private static var _checkGAJS_js:XML = <script> <![CDATA[ function() { if( _gat && _gat._getTracker ) { return true; } return false; } ]]> </script> ; private static var _checkValidTrackingObject_js:XML = <script> <![CDATA[ function(acct) { if( _GATracker[acct] && (_GATracker[acct]._getAccount) ) { return true ; } else { return false; } } ]]> </script> ; public function Bridge(_arg1:String, _arg2:DebugConfiguration, _arg3:JavascriptProxy){ var _local4:String; var _local5:String; var _local6:String; super(); _account = _arg1; _debug = _arg2; _proxy = _arg3; if (!_checkGAJS()){ _local4 = ""; _local4 = (_local4 + "ga.js not found, be sure to check if\n"); _local4 = (_local4 + "<script src=\"http://www.google-analytics.com/ga.js\"></script>\n"); _local4 = (_local4 + "is included in the HTML."); _debug.warning(_local4); throw (new Error(_local4)); }; if (!_hasGATracker){ if (((_debug.javascript) && (_debug.verbose))){ _local5 = ""; _local5 = (_local5 + "The Google Analytics tracking code was not found on the container page\n"); _local5 = (_local5 + "we create it"); _debug.info(_local5, VisualDebugMode.advanced); }; _injectTrackingObject(); }; if (Utils.validateAccount(_arg1)){ _createTrackingObject(_arg1); } else { if (_checkTrackingObject(_arg1)){ _linkTrackingObject(_arg1); } else { _local6 = ""; _local6 = (_local6 + (("JS Object \"" + _arg1) + "\" doesn't exist in DOM\n")); _local6 = (_local6 + "Bridge object not created."); _debug.warning(_local6); throw (new Error(_local6)); }; }; } public function link(_arg1:String, _arg2:Boolean=false):void{ _debug.info((((("link( " + _arg1) + ", ") + _arg2) + " )")); _call("_link", _arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ _debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )")); _call("_addOrganic", _arg1); } public function setAllowLinker(_arg1:Boolean):void{ _debug.info((("setAllowLinker( " + _arg1) + " )")); _call("_setAllowLinker", _arg1); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ _debug.info((((("getLinkerUrl(" + _arg1) + ", ") + _arg2) + ")")); return (_call("_getLinkerUrl", _arg1, _arg2)); } private function _linkTrackingObject(_arg1:String):void{ _proxy.call(_linkTrackingObject_js, _jsContainer, _arg1); } public function setClientInfo(_arg1:Boolean):void{ _debug.info((("setClientInfo( " + _arg1) + " )")); _call("_setClientInfo", _arg1); } public function trackTrans():void{ _debug.info("trackTrans()"); _call("_trackTrans"); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ var _local5 = 2; if (((_arg3) && (!((_arg3 == ""))))){ _local5 = 3; }; if ((((_local5 == 3)) && (!(isNaN(_arg4))))){ _local5 = 4; }; switch (_local5){ case 4: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3, _arg4].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2, _arg3, _arg4)); case 3: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2, _arg3)); case 2: default: _debug.info((("trackEvent( " + [_arg1, _arg2].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2)); }; } public function setCookieTimeout(_arg1:int):void{ _debug.info((("setCookieTimeout( " + _arg1) + " )")); _call("_setCookieTimeout", _arg1); } public function trackPageview(_arg1:String=""):void{ _debug.info((("trackPageview( " + _arg1) + " )")); _call("_trackPageview", _arg1); } private function _checkValidTrackingObject(_arg1:String):Boolean{ return (_proxy.call(_checkValidTrackingObject_js, _arg1)); } private function _checkGAJS():Boolean{ return (_proxy.call(_checkGAJS_js)); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _debug.warning((((("linkByPost( " + _arg1) + ", ") + _arg2) + " ) not implemented")); } public function getClientInfo():Boolean{ _debug.info("getClientInfo()"); return (_call("_getClientInfo")); } private function _call(_arg1:String, ... _args){ _args.unshift(((((("window." + _jsContainer) + "[\"") + _account) + "\"].") + _arg1)); return (_proxy.call.apply(_proxy, _args)); } public function hasGAJS():Boolean{ return (_checkGAJS()); } private function _checkTrackingObject(_arg1:String):Boolean{ var _local2:Boolean = _proxy.hasProperty(_arg1); var _local3:Boolean = _proxy.hasProperty((_arg1 + "._getAccount")); return (((_local2) && (_local3))); } public function resetSession():void{ _debug.warning("resetSession() not implemented"); } public function getDetectTitle():Boolean{ _debug.info("getDetectTitle()"); return (_call("_getDetectTitle")); } public function setCampNameKey(_arg1:String):void{ _debug.info((("setCampNameKey( " + _arg1) + " )")); _call("_setCampNameKey", _arg1); } public function setDetectFlash(_arg1:Boolean):void{ _debug.info((("setDetectFlash( " + _arg1) + " )")); _call("_setDetectFlash", _arg1); } public function createEventTracker(_arg1:String):EventTracker{ _debug.info((("createEventTracker( " + _arg1) + " )")); return (new EventTracker(_arg1, this)); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ _debug.info((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " )")); _call("_addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public function clearIgnoredOrganic():void{ _debug.info("clearIgnoredOrganic()"); _call("_clearIgnoreOrganic"); } public function setVar(_arg1:String):void{ _debug.info((("setVar( " + _arg1) + " )")); _call("_setVar", _arg1); } public function setDomainName(_arg1:String):void{ _debug.info((("setDomainName( " + _arg1) + " )")); _call("_setDomainName", _arg1); } public function hasTrackingAccount(_arg1:String):Boolean{ if (Utils.validateAccount(_arg1)){ return (_checkValidTrackingObject(_arg1)); }; return (_checkTrackingObject(_arg1)); } public function setCampSourceKey(_arg1:String):void{ _debug.info((("setCampSourceKey( " + _arg1) + " )")); _call("_setCampSourceKey", _arg1); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ _debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " )")); _call("_addTrans", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function setCampContentKey(_arg1:String):void{ _debug.info((("setCampContentKey( " + _arg1) + " )")); _call("_setCampContentKey", _arg1); } public function setLocalServerMode():void{ _debug.info("setLocalServerMode()"); _call("_setLocalServerMode"); } public function getLocalGifPath():String{ _debug.info("getLocalGifPath()"); return (_call("_getLocalGifPath")); } public function clearIgnoredRef():void{ _debug.info("clearIgnoredRef()"); _call("_clearIgnoreRef"); } public function setAllowAnchor(_arg1:Boolean):void{ _debug.info((("setAllowAnchor( " + _arg1) + " )")); _call("_setAllowAnchor", _arg1); } public function setLocalGifPath(_arg1:String):void{ _debug.info((("setLocalGifPath( " + _arg1) + " )")); _call("_setLocalGifPath", _arg1); } public function getVersion():String{ _debug.info("getVersion()"); return (_call("_getVersion")); } private function _injectTrackingObject():void{ _proxy.executeBlock(_injectTrackingObject_js); _hasGATracker = true; } public function setCookiePath(_arg1:String):void{ _debug.info((("setCookiePath( " + _arg1) + " )")); _call("_setCookiePath", _arg1); } public function setSampleRate(_arg1:Number):void{ _debug.info((("setSampleRate( " + _arg1) + " )")); _call("_setSampleRate", _arg1); } public function setAllowHash(_arg1:Boolean):void{ _debug.info((("setAllowHash( " + _arg1) + " )")); _call("_setAllowHash", _arg1); } public function addIgnoredOrganic(_arg1:String):void{ _debug.info((("addIgnoredOrganic( " + _arg1) + " )")); _call("_addIgnoredOrganic", _arg1); } public function setCampNOKey(_arg1:String):void{ _debug.info((("setCampNOKey( " + _arg1) + " )")); _call("_setCampNOKey", _arg1); } public function cookiePathCopy(_arg1:String):void{ _debug.info((("cookiePathCopy( " + _arg1) + " )")); _call("_cookiePathCopy", _arg1); } public function setLocalRemoteServerMode():void{ _debug.info("setLocalRemoteServerMode()"); _call("_setLocalRemoteServerMode"); } public function getServiceMode():ServerOperationMode{ _debug.info("getServiceMode()"); return (_call("_getServiceMode")); } public function setDetectTitle(_arg1:Boolean):void{ _debug.info((("setDetectTitle( " + _arg1) + " )")); _call("_setDetectTitle", _arg1); } private function _createTrackingObject(_arg1:String):void{ _proxy.call(_createTrackingObject_js, _arg1); } public function setCampaignTrack(_arg1:Boolean):void{ _debug.info((("setCampaignTrack( " + _arg1) + " )")); _call("_setCampaignTrack", _arg1); } public function clearOrganic():void{ _debug.info("clearOrganic()"); _call("_clearOrganic"); } public function setCampTermKey(_arg1:String):void{ _debug.info((("setCampTermKey( " + _arg1) + " )")); _call("_setCampTermKey", _arg1); } public function getDetectFlash():Boolean{ _debug.info("getDetectFlash()"); return (_call("_getDetectFlash")); } public function setCampMediumKey(_arg1:String):void{ _debug.info((("setCampMediumKey( " + _arg1) + " )")); _call("_setCampMediumKey", _arg1); } public function addIgnoredRef(_arg1:String):void{ _debug.info((("addIgnoredRef( " + _arg1) + " )")); _call("_addIgnoredRef", _arg1); } public function setSessionTimeout(_arg1:int):void{ _debug.info((("setSessionTimeout( " + _arg1) + " )")); _call("_setSessionTimeout", _arg1); } public function setRemoteServerMode():void{ _debug.info("setRemoteServerMode()"); _call("_setRemoteServerMode"); } public function getAccount():String{ _debug.info("getAccount()"); return (_call("_getAccount")); } } }//package com.google.analytics.v4
Section 151
//Configuration (com.google.analytics.v4.Configuration) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; import com.google.analytics.campaign.*; public class Configuration { public var serverMode:ServerOperationMode; public var detectFlash:Boolean;// = true public var hasSiteOverlay:Boolean;// = false public var allowLocalTracking:Boolean;// = true public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif" private var _version:String;// = "4.3as" public var allowDomainHash:Boolean;// = true public var detectClientInfo:Boolean;// = true public var idleLoop:Number;// = 30 public var isTrackOutboundSubdomains:Boolean;// = false public var cookiePath:String;// = "/" public var transactionFieldDelim:String;// = "|" private var _organic:Organic; private var _cookieName:String;// = "analytics" public var campaignKey:CampaignKey; public var google:String;// = "google" public var googleCsePath:String;// = "cse" public var bucketCapacity:Number;// = 10 private var _sampleRate:Number;// = 1 public var remoteGIFpath:String;// = "http://www.google-analytics.com/__utm.gif" public var googleSearchParam:String;// = "q" public var allowLinker:Boolean;// = false public var maxOutboundLinkExamined:Number;// = 1000 private var _debug:DebugConfiguration; public var allowAnchor:Boolean;// = false private var _domain:Domain; private var _trackingLimitPerSession:int;// = 500 public var tokenCliff:int;// = 10 public var sessionTimeout:Number; public var idleTimeout:Number;// = 60 public var campaignTracking:Boolean;// = true public var domainName:String;// = "" public var detectTitle:Boolean;// = true public var tokenRate:Number;// = 0.2 public var conversionTimeout:Number; public var localGIFpath:String;// = "/__utm.gif" public function Configuration(_arg1:DebugConfiguration=null){ _organic = new Organic(); conversionTimeout = Timespan.sixmonths; sessionTimeout = Timespan.thirtyminutes; campaignKey = new CampaignKey(); serverMode = ServerOperationMode.remote; super(); _debug = _arg1; _domain = new Domain(DomainNameMode.auto, "", _debug); serverMode = ServerOperationMode.remote; _initOrganicSources(); } public function get organic():Organic{ return (_organic); } public function get cookieName():String{ return (_cookieName); } public function get trackingLimitPerSession():int{ return (_trackingLimitPerSession); } private function _initOrganicSources():void{ addOrganicSource(google, googleSearchParam); addOrganicSource("yahoo", "p"); addOrganicSource("msn", "q"); addOrganicSource("aol", "query"); addOrganicSource("aol", "encquery"); addOrganicSource("lycos", "query"); addOrganicSource("ask", "q"); addOrganicSource("altavista", "q"); addOrganicSource("netscape", "query"); addOrganicSource("cnn", "query"); addOrganicSource("looksmart", "qt"); addOrganicSource("about", "terms"); addOrganicSource("mamma", "query"); addOrganicSource("alltheweb", "q"); addOrganicSource("gigablast", "q"); addOrganicSource("voila", "rdata"); addOrganicSource("virgilio", "qs"); addOrganicSource("live", "q"); addOrganicSource("baidu", "wd"); addOrganicSource("alice", "qs"); addOrganicSource("yandex", "text"); addOrganicSource("najdi", "q"); addOrganicSource("aol", "q"); addOrganicSource("club-internet", "q"); addOrganicSource("mama", "query"); addOrganicSource("seznam", "q"); addOrganicSource("search", "q"); addOrganicSource("wp", "szukaj"); addOrganicSource("onet", "qt"); addOrganicSource("netsprint", "q"); addOrganicSource("google.interia", "q"); addOrganicSource("szukacz", "q"); addOrganicSource("yam", "k"); addOrganicSource("pchome", "q"); addOrganicSource("kvasir", "searchExpr"); addOrganicSource("sesam", "q"); addOrganicSource("ozu", "q"); addOrganicSource("terra", "query"); addOrganicSource("nostrum", "query"); addOrganicSource("mynet", "q"); addOrganicSource("ekolay", "q"); addOrganicSource("search.ilse", "search_for"); } public function get sampleRate():Number{ return (_sampleRate); } public function addOrganicSource(_arg1:String, _arg2:String):void{ var engine = _arg1; var keyword = _arg2; try { _organic.addSource(engine, keyword); } catch(e:Error) { if (((_debug) && (_debug.active))){ _debug.warning(e.message); }; }; } public function get domain():Domain{ return (_domain); } public function set sampleRate(_arg1:Number):void{ if (_arg1 <= 0){ _arg1 = 0.1; }; if (_arg1 > 1){ _arg1 = 1; }; _arg1 = Number(_arg1.toFixed(2)); _sampleRate = _arg1; } public function get version():String{ return (_version); } } }//package com.google.analytics.v4
Section 152
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI) package com.google.analytics.v4 { import com.google.analytics.core.*; public interface GoogleAnalyticsAPI { function setCampSourceKey(_arg1:String):void; function setDetectTitle(_arg1:Boolean):void; function setLocalRemoteServerMode():void; function resetSession():void; function setLocalServerMode():void; function setCampContentKey(_arg1:String):void; function addOrganic(_arg1:String, _arg2:String):void; function setDetectFlash(_arg1:Boolean):void; function setAllowLinker(_arg1:Boolean):void; function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean; function setCampTermKey(_arg1:String):void; function setCampNameKey(_arg1:String):void; function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String; function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void; function clearIgnoredRef():void; function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void; function getDetectFlash():Boolean; function setCampaignTrack(_arg1:Boolean):void; function createEventTracker(_arg1:String):EventTracker; function setCookieTimeout(_arg1:int):void; function setAllowAnchor(_arg1:Boolean):void; function trackTrans():void; function clearOrganic():void; function trackPageview(_arg1:String=""):void; function setLocalGifPath(_arg1:String):void; function getVersion():String; function getLocalGifPath():String; function getServiceMode():ServerOperationMode; function setVar(_arg1:String):void; function clearIgnoredOrganic():void; function setCampMediumKey(_arg1:String):void; function addIgnoredRef(_arg1:String):void; function setClientInfo(_arg1:Boolean):void; function setCookiePath(_arg1:String):void; function setSampleRate(_arg1:Number):void; function setSessionTimeout(_arg1:int):void; function setRemoteServerMode():void; function setDomainName(_arg1:String):void; function addIgnoredOrganic(_arg1:String):void; function setAllowHash(_arg1:Boolean):void; function getAccount():String; function linkByPost(_arg1:Object, _arg2:Boolean=false):void; function link(_arg1:String, _arg2:Boolean=false):void; function setCampNOKey(_arg1:String):void; function getClientInfo():Boolean; function cookiePathCopy(_arg1:String):void; function getDetectTitle():Boolean; } }//package com.google.analytics.v4
Section 153
//Tracker (com.google.analytics.v4.Tracker) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import flash.net.*; import com.google.analytics.utils.*; import com.google.analytics.external.*; import com.google.analytics.data.*; import com.google.analytics.ecommerce.*; import com.google.analytics.campaign.*; public class Tracker implements GoogleAnalyticsAPI { private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3; private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1; private const EVENT_TRACKER_PROJECT_ID:int = 5; private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1; private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2; private var _adSense:AdSenseGlobals; private var _eventTracker:X10; private var _noSessionInformation:Boolean;// = false private var _browserInfo:BrowserInfo; private var _debug:DebugConfiguration; private var _isNewVisitor:Boolean;// = false private var _buffer:Buffer; private var _config:Configuration; private var _x10Module:X10; private var _campaign:CampaignManager; private var _formatedReferrer:String; private var _timeStamp:Number; private var _info:Environment; private var _domainHash:Number; private var _campaignInfo:CampaignInfo; private var _gifRequest:GIFRequest; private var _hasInitData:Boolean;// = false private var _ecom:Ecommerce; private var _account:String; public function Tracker(_arg1:String, _arg2:Configuration, _arg3:DebugConfiguration, _arg4:Environment, _arg5:Buffer, _arg6:GIFRequest, _arg7:AdSenseGlobals, _arg8:Ecommerce){ var _local9:String; super(); _account = _arg1; _config = _arg2; _debug = _arg3; _info = _arg4; _buffer = _arg5; _gifRequest = _arg6; _adSense = _arg7; _ecom = _arg8; if (!Utils.validateAccount(_arg1)){ _local9 = (("Account \"" + _arg1) + "\" is not valid."); _debug.warning(_local9); throw (new Error(_local9)); }; } private function _doTracking():Boolean{ if (((((!((_info.protocol == Protocols.file))) && (!((_info.protocol == Protocols.none))))) && (_isNotGoogleSearch()))){ return (true); }; if (_config.allowLocalTracking){ return (true); }; return (false); } public function addOrganic(_arg1:String, _arg2:String):void{ _debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )")); _config.organic.addSource(_arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ _config.allowLinker = _arg1; _debug.info((("setAllowLinker( " + _config.allowLinker) + " )")); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ _initData(); _debug.info((((("getLinkerUrl( " + _arg1) + ", ") + _arg2.toString()) + " )")); return (_buffer.getLinkerUrl(_arg1, _arg2)); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ _initData(); var _local5:Boolean; var _local6 = 2; if (((!((_arg1 == ""))) && (!((_arg2 == ""))))){ _eventTracker.clearKey(EVENT_TRACKER_PROJECT_ID); _eventTracker.clearValue(EVENT_TRACKER_PROJECT_ID); _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_OBJECT_NAME_KEY_NUM, _arg1); _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_TYPE_KEY_NUM, _arg2); if (_arg3){ _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_LABEL_KEY_NUM, _arg3); _local6 = 3; }; if (!isNaN(_arg4)){ _local5 = _eventTracker.setValue(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_VALUE_VALUE_NUM, _arg4); _local6 = 4; }; if (_local5){ _debug.info(((("valid event tracking call\ncategory: " + _arg1) + "\naction: ") + _arg2), VisualDebugMode.geek); _sendXEvent(_eventTracker); }; } else { _debug.warning(((("event tracking call is not valid, failed!\ncategory: " + _arg1) + "\naction: ") + _arg2), VisualDebugMode.geek); _local5 = false; }; switch (_local6){ case 4: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3, _arg4].join(", ")) + " )")); break; case 3: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3].join(", ")) + " )")); break; case 2: default: _debug.info((("trackEvent( " + [_arg1, _arg2].join(", ")) + " )")); }; return (_local5); } public function trackPageview(_arg1:String=""):void{ _debug.info((("trackPageview( " + _arg1) + " )")); if (_doTracking()){ _initData(); _trackMetrics(_arg1); _noSessionInformation = false; } else { _debug.warning((("trackPageview( " + _arg1) + " ) failed")); }; } public function setCookieTimeout(_arg1:int):void{ _config.conversionTimeout = _arg1; _debug.info((("setCookieTimeout( " + _config.conversionTimeout) + " )")); } public function trackTrans():void{ var _local1:Number; var _local2:Number; var _local4:Transaction; _initData(); var _local3:Array = new Array(); if (_takeSample()){ _local1 = 0; while (_local1 < _ecom.getTransLength()) { _local4 = _ecom.getTransFromArray(_local1); _local3.push(_local4.toGifParams()); _local2 = 0; while (_local2 < _local4.getItemsLength()) { _local3.push(_local4.getItemFromArray(_local2).toGifParams()); _local2++; }; _local1++; }; _local1 = 0; while (_local1 < _local3.length) { _gifRequest.send(_account, _local3[_local1]); _local1++; }; }; } public function setClientInfo(_arg1:Boolean):void{ _config.detectClientInfo = _arg1; _debug.info((("setClientInfo( " + _config.detectClientInfo) + " )")); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _debug.warning("linkByPost not implemented in AS3 mode"); } private function _initData():void{ var _local1:String; var _local2:String; if (!_hasInitData){ _updateDomainName(); _domainHash = _getDomainHash(); _timeStamp = Math.round((new Date().getTime() / 1000)); if (_debug.verbose){ _local1 = ""; _local1 = (_local1 + "_initData 0"); _local1 = (_local1 + ("\ndomain name: " + _config.domainName)); _local1 = (_local1 + ("\ndomain hash: " + _domainHash)); _local1 = (_local1 + (((("\ntimestamp: " + _timeStamp) + " (") + new Date((_timeStamp * 1000))) + ")")); _debug.info(_local1, VisualDebugMode.geek); }; }; if (_doTracking()){ _handleCookie(); }; if (!_hasInitData){ if (_doTracking()){ _formatedReferrer = _formatReferrer(); _browserInfo = new BrowserInfo(_config, _info); _debug.info(("browserInfo: " + _browserInfo.toURLString()), VisualDebugMode.advanced); if (_config.campaignTracking){ _campaign = new CampaignManager(_config, _debug, _buffer, _domainHash, _formatedReferrer, _timeStamp); _campaignInfo = _campaign.getCampaignInformation(_info.locationSearch, _noSessionInformation); _debug.info(("campaignInfo: " + _campaignInfo.toURLString()), VisualDebugMode.advanced); _debug.info(("Search: " + _info.locationSearch)); _debug.info(("CampaignTrackig: " + _buffer.utmz.campaignTracking)); }; }; _x10Module = new X10(); _eventTracker = new X10(); _hasInitData = true; }; if (_config.hasSiteOverlay){ _debug.warning("Site Overlay is not supported"); }; if (_debug.verbose){ _local2 = ""; _local2 = (_local2 + "_initData (misc)"); _local2 = (_local2 + ("\nflash version: " + _info.flashVersion.toString(4))); _local2 = (_local2 + ("\nprotocol: " + _info.protocol)); _local2 = (_local2 + (("\ndefault domain name (auto): \"" + _info.domainName) + "\"")); _local2 = (_local2 + ("\nlanguage: " + _info.language)); _local2 = (_local2 + ("\ndomain hash: " + _getDomainHash())); _local2 = (_local2 + ("\nuser-agent: " + _info.userAgent)); _debug.info(_local2, VisualDebugMode.geek); }; } public function getDetectTitle():Boolean{ _debug.info("getDetectTitle()"); return (_config.detectTitle); } public function resetSession():void{ _debug.info("resetSession()"); _buffer.resetCurrentSession(); } public function getClientInfo():Boolean{ _debug.info("getClientInfo()"); return (_config.detectClientInfo); } private function _sendXEvent(_arg1:X10=null):void{ var _local2:Variables; var _local3:EventInfo; var _local4:Variables; var _local5:Variables; if (_takeSample()){ _local2 = new Variables(); _local2.URIencode = true; _local3 = new EventInfo(true, _x10Module, _arg1); _local4 = _local3.toVariables(); _local5 = _renderMetricsSearchVariables(); _local2.join(_local4, _local5); _gifRequest.send(_account, _local2, false, true); }; } public function setDetectFlash(_arg1:Boolean):void{ _config.detectFlash = _arg1; _debug.info((("setDetectFlash( " + _config.detectFlash) + " )")); } public function setCampNameKey(_arg1:String):void{ _config.campaignKey.UCCN = _arg1; var _local2 = (("setCampNameKey( " + _config.campaignKey.UCCN) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCCN]")); } else { _debug.info(_local2); }; } private function _formatReferrer():String{ var _local2:String; var _local3:URL; var _local4:URL; var _local1:String = _info.referrer; if ((((_local1 == "")) || ((_local1 == "localhost")))){ _local1 = "-"; } else { _local2 = _info.domainName; _local3 = new URL(_local1); _local4 = new URL(("http://" + _local2)); if (_local3.hostName == _local2){ return ("-"); }; if (_local4.domain == _local3.domain){ if (_local4.subDomain != _local3.subDomain){ _local1 = "0"; }; }; if ((((_local1.charAt(0) == "[")) && (_local1.charAt((_local1.length - 1))))){ _local1 = "-"; }; }; _debug.info(("formated referrer: " + _local1), VisualDebugMode.advanced); return (_local1); } private function _visitCode():Number{ if (_debug.verbose){ _debug.info(("visitCode: " + _buffer.utma.sessionId), VisualDebugMode.geek); }; return (_buffer.utma.sessionId); } public function createEventTracker(_arg1:String):EventTracker{ _debug.info((("createEventTracker( " + _arg1) + " )")); return (new EventTracker(_arg1, this)); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ var _local7:Transaction; _local7 = _ecom.getTransaction(_arg1); if (_local7 == null){ _local7 = _ecom.addTransaction(_arg1, "", "", "", "", "", "", ""); }; _local7.addItem(_arg2, _arg3, _arg4, _arg5.toString(), _arg6.toString()); if (_debug.active){ _debug.info((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " )")); }; } public function clearIgnoredOrganic():void{ _debug.info("clearIgnoredOrganic()"); _config.organic.clearIgnoredKeywords(); } public function setVar(_arg1:String):void{ var _local2:Variables; if (((!((_arg1 == ""))) && (_isNotGoogleSearch()))){ _initData(); _buffer.utmv.domainHash = _domainHash; _buffer.utmv.value = encodeURI(_arg1); if (_debug.verbose){ _debug.info(_buffer.utmv.toString(), VisualDebugMode.geek); }; _debug.info((("setVar( " + _arg1) + " )")); if (_takeSample()){ _local2 = new Variables(); _local2.utmt = "var"; _gifRequest.send(_account, _local2); }; } else { _debug.warning((("setVar \"" + _arg1) + "\" is ignored")); }; } public function setDomainName(_arg1:String):void{ if (_arg1 == "auto"){ _config.domain.mode = DomainNameMode.auto; } else { if (_arg1 == "none"){ _config.domain.mode = DomainNameMode.none; } else { _config.domain.mode = DomainNameMode.custom; _config.domain.name = _arg1; }; }; _updateDomainName(); _debug.info((("setDomainName( " + _config.domainName) + " )")); } private function _updateDomainName():void{ var _local1:String; if (_config.domain.mode == DomainNameMode.auto){ _local1 = _info.domainName; if (_local1.substring(0, 4) == "www."){ _local1 = _local1.substring(4); }; _config.domain.name = _local1; }; _config.domainName = _config.domain.name.toLowerCase(); _debug.info(("domain name: " + _config.domainName), VisualDebugMode.advanced); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ _ecom.addTransaction(_arg1, _arg2, _arg3.toString(), _arg4.toString(), _arg5.toString(), _arg6, _arg7, _arg8); if (_debug.active){ _debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " );")); }; } private function _renderMetricsSearchVariables(_arg1:String=""):Variables{ var _local4:Variables; var _local2:Variables = new Variables(); _local2.URIencode = true; var _local3:DocumentInfo = new DocumentInfo(_config, _info, _formatedReferrer, _arg1, _adSense); _debug.info(("docInfo: " + _local3.toURLString()), VisualDebugMode.geek); if (_config.campaignTracking){ _local4 = _campaignInfo.toVariables(); }; var _local5:Variables = _browserInfo.toVariables(); _local2.join(_local3.toVariables(), _local5, _local4); return (_local2); } public function setCampContentKey(_arg1:String):void{ _config.campaignKey.UCCT = _arg1; var _local2 = (("setCampContentKey( " + _config.campaignKey.UCCT) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCCT]")); } else { _debug.info(_local2); }; } private function _handleCookie():void{ var _local1:String; var _local2:String; var _local3:Array; var _local4:String; if (_config.allowLinker){ }; _buffer.createSO(); if (((_buffer.hasUTMA()) && (!(_buffer.utma.isEmpty())))){ if (((!(_buffer.hasUTMB())) || (!(_buffer.hasUTMC())))){ _buffer.updateUTMA(_timeStamp); _noSessionInformation = true; }; if (_debug.verbose){ _debug.info(("from cookie " + _buffer.utma.toString()), VisualDebugMode.geek); }; } else { _debug.info("create a new utma", VisualDebugMode.advanced); _buffer.utma.domainHash = _domainHash; _buffer.utma.sessionId = _getUniqueSessionId(); _buffer.utma.firstTime = _timeStamp; _buffer.utma.lastTime = _timeStamp; _buffer.utma.currentTime = _timeStamp; _buffer.utma.sessionCount = 1; if (_debug.verbose){ _debug.info(_buffer.utma.toString(), VisualDebugMode.geek); }; _noSessionInformation = true; _isNewVisitor = true; }; if (((_adSense.gaGlobal) && ((_adSense.dh == String(_domainHash))))){ if (_adSense.sid){ _buffer.utma.currentTime = Number(_adSense.sid); if (_debug.verbose){ _local1 = ""; _local1 = (_local1 + "AdSense sid found\n"); _local1 = (_local1 + (((("Override currentTime(" + _buffer.utma.currentTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")")); _debug.info(_local1, VisualDebugMode.geek); }; }; if (_isNewVisitor){ if (_adSense.sid){ _buffer.utma.lastTime = Number(_adSense.sid); if (_debug.verbose){ _local2 = ""; _local2 = (_local2 + "AdSense sid found (new visitor)\n"); _local2 = (_local2 + (((("Override lastTime(" + _buffer.utma.lastTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")")); _debug.info(_local2, VisualDebugMode.geek); }; }; if (_adSense.vid){ _local3 = _adSense.vid.split("."); _buffer.utma.sessionId = Number(_local3[0]); _buffer.utma.firstTime = Number(_local3[1]); if (_debug.verbose){ _local4 = ""; _local4 = (_local4 + "AdSense vid found (new visitor)\n"); _local4 = (_local4 + (((("Override sessionId(" + _buffer.utma.sessionId) + ") from AdSense vid(") + Number(_local3[0])) + ")\n")); _local4 = (_local4 + (((("Override firstTime(" + _buffer.utma.firstTime) + ") from AdSense vid(") + Number(_local3[1])) + ")")); _debug.info(_local4, VisualDebugMode.geek); }; }; if (_debug.verbose){ _debug.info(("AdSense modified : " + _buffer.utma.toString()), VisualDebugMode.geek); }; }; }; _buffer.utmb.domainHash = _domainHash; if (isNaN(_buffer.utmb.trackCount)){ _buffer.utmb.trackCount = 0; }; if (isNaN(_buffer.utmb.token)){ _buffer.utmb.token = _config.tokenCliff; }; if (isNaN(_buffer.utmb.lastTime)){ _buffer.utmb.lastTime = _buffer.utma.currentTime; }; _buffer.utmc.domainHash = _domainHash; if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.advanced); _debug.info(_buffer.utmc.toString(), VisualDebugMode.advanced); }; } public function setLocalServerMode():void{ _config.serverMode = ServerOperationMode.local; _debug.info("setLocalServerMode()"); } public function clearIgnoredRef():void{ _debug.info("clearIgnoredRef()"); _config.organic.clearIgnoredReferrals(); } public function setCampSourceKey(_arg1:String):void{ _config.campaignKey.UCSR = _arg1; var _local2 = (("setCampSourceKey( " + _config.campaignKey.UCSR) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCSR]")); } else { _debug.info(_local2); }; } public function getLocalGifPath():String{ _debug.info("getLocalGifPath()"); return (_config.localGIFpath); } public function setLocalGifPath(_arg1:String):void{ _config.localGIFpath = _arg1; _debug.info((("setLocalGifPath( " + _config.localGIFpath) + " )")); } public function getVersion():String{ _debug.info("getVersion()"); return (_config.version); } public function setAllowAnchor(_arg1:Boolean):void{ _config.allowAnchor = _arg1; _debug.info((("setAllowAnchor( " + _config.allowAnchor) + " )")); } private function _isNotGoogleSearch():Boolean{ var _local1:String = _config.domainName; var _local2 = (_local1.indexOf("www.google.") < 0); var _local3 = (_local1.indexOf(".google.") < 0); var _local4 = (_local1.indexOf("google.") < 0); var _local5 = (_local1.indexOf("google.org") > -1); return (((((((((_local2) || (_local3))) || (_local4))) || (!((_config.cookiePath == "/"))))) || (_local5))); } public function setSampleRate(_arg1:Number):void{ if (_arg1 < 0){ _debug.warning("sample rate can not be negative, ignoring value."); } else { _config.sampleRate = _arg1; }; _debug.info((("setSampleRate( " + _config.sampleRate) + " )")); } private function _takeSample():Boolean{ if (_debug.verbose){ _debug.info((((("takeSample: (" + (_visitCode() % 10000)) + ") < (") + (_config.sampleRate * 10000)) + ")"), VisualDebugMode.geek); }; return (((_visitCode() % 10000) < (_config.sampleRate * 10000))); } public function setCookiePath(_arg1:String):void{ _config.cookiePath = _arg1; _debug.info((("setCookiePath( " + _config.cookiePath) + " )")); } public function setAllowHash(_arg1:Boolean):void{ _config.allowDomainHash = _arg1; _debug.info((("setAllowHash( " + _config.allowDomainHash) + " )")); } private function _generateUserDataHash():Number{ var _local1 = ""; _local1 = (_local1 + _info.appName); _local1 = (_local1 + _info.appVersion); _local1 = (_local1 + _info.language); _local1 = (_local1 + _info.platform); _local1 = (_local1 + _info.userAgent.toString()); _local1 = (_local1 + (((_info.screenWidth + "x") + _info.screenHeight) + _info.screenColorDepth)); _local1 = (_local1 + _info.referrer); return (Utils.generateHash(_local1)); } public function setCampNOKey(_arg1:String):void{ _config.campaignKey.UCNO = _arg1; var _local2 = (("setCampNOKey( " + _config.campaignKey.UCNO) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCNO]")); } else { _debug.info(_local2); }; } public function addIgnoredOrganic(_arg1:String):void{ _debug.info((("addIgnoredOrganic( " + _arg1) + " )")); _config.organic.addIgnoredKeyword(_arg1); } public function setLocalRemoteServerMode():void{ _config.serverMode = ServerOperationMode.both; _debug.info("setLocalRemoteServerMode()"); } public function cookiePathCopy(_arg1:String):void{ _debug.warning((("cookiePathCopy( " + _arg1) + " ) not implemented")); } public function setDetectTitle(_arg1:Boolean):void{ _config.detectTitle = _arg1; _debug.info((("setDetectTitle( " + _config.detectTitle) + " )")); } public function setCampTermKey(_arg1:String):void{ _config.campaignKey.UCTR = _arg1; var _local2 = (("setCampTermKey( " + _config.campaignKey.UCTR) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCTR]")); } else { _debug.info(_local2); }; } public function getServiceMode():ServerOperationMode{ _debug.info("getServiceMode()"); return (_config.serverMode); } private function _trackMetrics(_arg1:String=""):void{ var _local2:Variables; var _local3:Variables; var _local4:Variables; var _local5:EventInfo; if (_takeSample()){ _local2 = new Variables(); _local2.URIencode = true; if (((_x10Module) && (_x10Module.hasData()))){ _local5 = new EventInfo(false, _x10Module); _local3 = _local5.toVariables(); }; _local4 = _renderMetricsSearchVariables(_arg1); _local2.join(_local3, _local4); _gifRequest.send(_account, _local2); }; } public function setCampaignTrack(_arg1:Boolean):void{ _config.campaignTracking = _arg1; _debug.info((("setCampaignTrack( " + _config.campaignTracking) + " )")); } public function addIgnoredRef(_arg1:String):void{ _debug.info((("addIgnoredRef( " + _arg1) + " )")); _config.organic.addIgnoredReferral(_arg1); } public function clearOrganic():void{ _debug.info("clearOrganic()"); _config.organic.clearEngines(); } public function getDetectFlash():Boolean{ _debug.info("getDetectFlash()"); return (_config.detectFlash); } public function setCampMediumKey(_arg1:String):void{ _config.campaignKey.UCMD = _arg1; var _local2 = (("setCampMediumKey( " + _config.campaignKey.UCMD) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCMD]")); } else { _debug.info(_local2); }; } private function _getUniqueSessionId():Number{ var _local1:Number = ((Utils.generate32bitRandom() ^ _generateUserDataHash()) * 2147483647); _debug.info(("Session ID: " + _local1), VisualDebugMode.geek); return (_local1); } private function _getDomainHash():Number{ if (((((!(_config.domainName)) || ((_config.domainName == "")))) || ((_config.domain.mode == DomainNameMode.none)))){ _config.domainName = ""; return (1); }; _updateDomainName(); if (_config.allowDomainHash){ return (Utils.generateHash(_config.domainName)); }; return (1); } public function setSessionTimeout(_arg1:int):void{ _config.sessionTimeout = _arg1; _debug.info((("setSessionTimeout( " + _config.sessionTimeout) + " )")); } public function getAccount():String{ _debug.info("getAccount()"); return (_account); } public function link(_arg1:String, _arg2:Boolean=false):void{ var targetUrl = _arg1; var useHash = _arg2; _initData(); var out:String = _buffer.getLinkerUrl(targetUrl, useHash); var request:URLRequest = new URLRequest(out); _debug.info((("link( " + [targetUrl, useHash].join(",")) + " )")); try { navigateToURL(request, "_top"); } catch(e:Error) { _debug.warning(("An error occured in link() msg: " + e.message)); }; } public function setRemoteServerMode():void{ _config.serverMode = ServerOperationMode.remote; _debug.info("setRemoteServerMode()"); } } }//package com.google.analytics.v4
Section 154
//AnalyticsTracker (com.google.analytics.AnalyticsTracker) package com.google.analytics { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; public interface AnalyticsTracker extends GoogleAnalyticsAPI, IEventDispatcher { function set account(_arg1:String):void; function get config():Configuration; function get mode():String; function set config(_arg1:Configuration):void; function set mode(_arg1:String):void; function set debug(_arg1:DebugConfiguration):void; function get visualDebug():Boolean; function get account():String; function set visualDebug(_arg1:Boolean):void; function isReady():Boolean; function get debug():DebugConfiguration; } }//package com.google.analytics
Section 155
//API (com.google.analytics.API) package com.google.analytics { import com.google.analytics.utils.*; public class API { public static var version:Version = new Version(); version.major = 1; version.minor = 0; version.build = 1; version.revision = "$Rev: 319 $ ".split(" ")[1]; } }//package com.google.analytics
Section 156
//GATracker (com.google.analytics.GATracker) package com.google.analytics { import flash.display.*; import flash.events.*; import com.google.analytics.core.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; import com.google.analytics.external.*; import com.google.analytics.events.*; public class GATracker implements AnalyticsTracker { private var _adSense:AdSenseGlobals; private var _env:Environment; private var _visualDebug:Boolean; private var _idleTimer:IdleTimer; private var _debug:DebugConfiguration; private var _buffer:Buffer; private var _config:Configuration; private var _mode:String; private var _display:DisplayObject; private var _jsproxy:JavascriptProxy; private var _dom:HTMLDOM; private var _eventDispatcher:EventDispatcher; private var _ready:Boolean;// = false private var _gifRequest:GIFRequest; private var _ecom:Ecommerce; private var _account:String; private var _tracker:GoogleAnalyticsAPI; public static var version:Version = API.version; public static var autobuild:Boolean = true; public function GATracker(_arg1:DisplayObject, _arg2:String, _arg3:String="AS3", _arg4:Boolean=false, _arg5:Configuration=null, _arg6:DebugConfiguration=null){ _display = _arg1; _eventDispatcher = new EventDispatcher(this); _tracker = new TrackerCache(); this.account = _arg2; this.mode = _arg3; this.visualDebug = _arg4; if (!_arg6){ this.debug = new DebugConfiguration(); }; if (!_arg5){ this.config = new Configuration(_arg6); }; if (autobuild){ _factory(); }; } public function link(_arg1:String, _arg2:Boolean=false):void{ _tracker.link(_arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ _tracker.addOrganic(_arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ _tracker.setAllowLinker(_arg1); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ var category = _arg1; var action = _arg2; var label = _arg3; var value = _arg4; var b:Boolean; try { b = _tracker.trackEvent(category, action, label, value); } catch(e:Error) { b = false; }; return (b); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ return (_tracker.getLinkerUrl(_arg1, _arg2)); } public function setCookieTimeout(_arg1:int):void{ _tracker.setCookieTimeout(_arg1); } public function trackTrans():void{ _tracker.trackTrans(); } public function getClientInfo():Boolean{ return (_tracker.getClientInfo()); } public function trackPageview(_arg1:String=""):void{ _tracker.trackPageview(_arg1); } public function setClientInfo(_arg1:Boolean):void{ _tracker.setClientInfo(_arg1); } public function get account():String{ return (_account); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _tracker.linkByPost(_arg1, _arg2); } public function getDetectTitle():Boolean{ return (_tracker.getDetectTitle()); } public function dispatchEvent(_arg1:Event):Boolean{ return (_eventDispatcher.dispatchEvent(_arg1)); } public function get config():Configuration{ return (_config); } public function set mode(_arg1:String):void{ _mode = _arg1; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public function setDetectFlash(_arg1:Boolean):void{ _tracker.setDetectFlash(_arg1); } public function resetSession():void{ _tracker.resetSession(); } public function setCampNameKey(_arg1:String):void{ _tracker.setCampNameKey(_arg1); } public function get debug():DebugConfiguration{ return (_debug); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ _tracker.addItem(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } private function _bridgeFactory():GoogleAnalyticsAPI{ debug.info(((("GATracker (Bridge) v" + version) + "\naccount: ") + account)); return (new Bridge(account, _debug, _jsproxy)); } public function clearIgnoredOrganic():void{ _tracker.clearIgnoredOrganic(); } public function set account(_arg1:String):void{ _account = _arg1; } public function setVar(_arg1:String):void{ _tracker.setVar(_arg1); } public function build():void{ if (!isReady()){ _factory(); }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function setDomainName(_arg1:String):void{ _tracker.setDomainName(_arg1); } public function createEventTracker(_arg1:String):EventTracker{ return (_tracker.createEventTracker(_arg1)); } public function setCampSourceKey(_arg1:String):void{ _tracker.setCampSourceKey(_arg1); } public function set config(_arg1:Configuration):void{ _config = _arg1; } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ _tracker.addTrans(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function setCampContentKey(_arg1:String):void{ _tracker.setCampContentKey(_arg1); } public function willTrigger(_arg1:String):Boolean{ return (_eventDispatcher.willTrigger(_arg1)); } public function setLocalServerMode():void{ _tracker.setLocalServerMode(); } public function isReady():Boolean{ return (_ready); } public function getLocalGifPath():String{ return (_tracker.getLocalGifPath()); } public function setAllowAnchor(_arg1:Boolean):void{ _tracker.setAllowAnchor(_arg1); } public function clearIgnoredRef():void{ _tracker.clearIgnoredRef(); } public function get mode():String{ return (_mode); } public function set debug(_arg1:DebugConfiguration):void{ _debug = _arg1; } public function setLocalGifPath(_arg1:String):void{ _tracker.setLocalGifPath(_arg1); } public function getVersion():String{ return (_tracker.getVersion()); } public function setSampleRate(_arg1:Number):void{ _tracker.setSampleRate(_arg1); } public function setCookiePath(_arg1:String):void{ _tracker.setCookiePath(_arg1); } public function setAllowHash(_arg1:Boolean):void{ _tracker.setAllowHash(_arg1); } public function addIgnoredOrganic(_arg1:String):void{ _tracker.addIgnoredOrganic(_arg1); } public function setLocalRemoteServerMode():void{ _tracker.setLocalRemoteServerMode(); } public function cookiePathCopy(_arg1:String):void{ _tracker.cookiePathCopy(_arg1); } private function _factory():void{ var _local1:GoogleAnalyticsAPI; _jsproxy = new JavascriptProxy(debug); if (visualDebug){ debug.layout = new Layout(debug, _display); debug.active = visualDebug; }; var _local2:TrackerCache = (_tracker as TrackerCache); switch (mode){ case TrackerMode.BRIDGE: _local1 = _bridgeFactory(); break; case TrackerMode.AS3: default: _local1 = _trackerFactory(); }; if (!_local2.isEmpty()){ _local2.tracker = _local1; _local2.flush(); }; _tracker = _local1; _ready = true; dispatchEvent(new AnalyticsEvent(AnalyticsEvent.READY, this)); } public function setCampTermKey(_arg1:String):void{ _tracker.setCampTermKey(_arg1); } private function _trackerFactory():GoogleAnalyticsAPI{ debug.info(((("GATracker (AS3) v" + version) + "\naccount: ") + account)); _adSense = new AdSenseGlobals(debug); _dom = new HTMLDOM(debug); _dom.cacheProperties(); _env = new Environment("", "", "", debug, _dom); _buffer = new Buffer(config, debug, false); _gifRequest = new GIFRequest(config, debug, _buffer, _env); _idleTimer = new IdleTimer(config, debug, _display, _buffer); _ecom = new Ecommerce(_debug); _env.url = _display.stage.loaderInfo.url; return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense, _ecom)); } public function setCampNOKey(_arg1:String):void{ _tracker.setCampNOKey(_arg1); } public function setDetectTitle(_arg1:Boolean):void{ _tracker.setDetectTitle(_arg1); } public function clearOrganic():void{ _tracker.clearOrganic(); } public function setCampaignTrack(_arg1:Boolean):void{ _tracker.setCampaignTrack(_arg1); } public function addIgnoredRef(_arg1:String):void{ _tracker.addIgnoredRef(_arg1); } public function getServiceMode():ServerOperationMode{ return (_tracker.getServiceMode()); } public function set visualDebug(_arg1:Boolean):void{ _visualDebug = _arg1; } public function setCampMediumKey(_arg1:String):void{ _tracker.setCampMediumKey(_arg1); } public function getDetectFlash():Boolean{ return (_tracker.getDetectFlash()); } public function get visualDebug():Boolean{ return (_visualDebug); } public function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public function getAccount():String{ return (_tracker.getAccount()); } public function setSessionTimeout(_arg1:int):void{ _tracker.setSessionTimeout(_arg1); } public function setRemoteServerMode():void{ _tracker.setRemoteServerMode(); } } var _local1:* = ServerOperationMode; return (_local1); }//package com.google.analytics
Section 157
//backTexty_20 (gamezheroApiExampleAS3_fla.backTexty_20) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; import com.gamezhero.api.as3.*; public dynamic class backTexty_20 extends MovieClip { public var bo:TextField; public function backTexty_20(){ addFrameScript(0, frame1); } function frame1(){ bo.text = GamezheroDictionary.getTranslationByName("back"); } } }//package gamezheroApiExampleAS3_fla
Section 158
//bsackTextycopy_23 (gamezheroApiExampleAS3_fla.bsackTextycopy_23) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; import com.gamezhero.api.as3.*; public dynamic class bsackTextycopy_23 extends MovieClip { public var bo:TextField; public function bsackTextycopy_23(){ addFrameScript(0, frame1); } function frame1(){ bo.text = GamezheroDictionary.getTranslationByName("submit"); } } }//package gamezheroApiExampleAS3_fla
Section 159
//endLevel_29 (gamezheroApiExampleAS3_fla.endLevel_29) package gamezheroApiExampleAS3_fla { import flash.display.*; public dynamic class endLevel_29 extends MovieClip { public function endLevel_29(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package gamezheroApiExampleAS3_fla
Section 160
//endSwitch_48 (gamezheroApiExampleAS3_fla.endSwitch_48) package gamezheroApiExampleAS3_fla { import flash.display.*; public dynamic class endSwitch_48 extends MovieClip { public function endSwitch_48(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package gamezheroApiExampleAS3_fla
Section 161
//endSwitchH_44 (gamezheroApiExampleAS3_fla.endSwitchH_44) package gamezheroApiExampleAS3_fla { import flash.display.*; public dynamic class endSwitchH_44 extends MovieClip { public function endSwitchH_44(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package gamezheroApiExampleAS3_fla
Section 162
//endSwitchW_43 (gamezheroApiExampleAS3_fla.endSwitchW_43) package gamezheroApiExampleAS3_fla { import flash.display.*; public dynamic class endSwitchW_43 extends MovieClip { public function endSwitchW_43(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package gamezheroApiExampleAS3_fla
Section 163
//infotext_8 (gamezheroApiExampleAS3_fla.infotext_8) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; import com.gamezhero.api.as3.*; public dynamic class infotext_8 extends MovieClip { public var bo:TextField; public function infotext_8(){ addFrameScript(0, frame1); } function frame1(){ bo.text = GamezheroDictionary.getTranslationByName("info"); } } }//package gamezheroApiExampleAS3_fla
Section 164
//MainTimeline (gamezheroApiExampleAS3_fla.MainTimeline) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.events.*; import flash.net.*; import flash.text.*; import com.gamezhero.api.as3.*; import flash.utils.*; import flash.media.*; import flash.system.*; import flash.ui.*; import flash.external.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.filters.*; import flash.geom.*; import flash.printing.*; import flash.profiler.*; import flash.sampler.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var pass:Boolean; public var music:Boolean; public var startButton:SimpleButton; public var myNum:Number; public var sub:SimpleButton; public var bb:Number; public var bo:TextField; public var by:TextField; public var mDes:TextField; public var musicIsOn:Boolean; public var piviLevel; public var tr:TextField; public var end1v:TextField; public var run:Number; public var thisLev:MovieClip; public var yco:uint; public var end2v:TextField; public var shoT:Number; public var xco:uint; public var moreButton:SimpleButton; public var twitterBtn:SimpleButton; public var back:SimpleButton; public var endy0:Boolean; public var endy1:Boolean; public var musicy:song; public var endy4:Boolean; public var runnyOne:Boolean; public var endy7:Boolean; public var endy8:Boolean; public var endv:TextField; public var levelBu:Array; public var hit2:Boolean; public var channel:SoundChannel; public var hit1:Boolean; public var endy3:Boolean; public var sound:Boolean; public var endy6:Boolean; public var endy9:Boolean; public var endy5:Boolean; public var endy2:Boolean; public var k2:Number; public var k4:Number; public var k5:Number; public var k6:Number; public var k7:Number; public var k1:Number; public var k9:Number; public var k3:Number; public var k8:Number; public var timed:Number; public var timee:MovieClip; public var dod:TextField; public var timeo:MovieClip; public var l1:level1; public var l2:level2; public var l3:level3; public var l4:level4; public var l5:level5; public var l7:level7; public var l8:level8; public var l9:level9; public var l6:level6; public var times:Number; public var timer:Number; public var gtimer:Number; public var gotoL:Number; public var levelNums:Array; public var infoButton:SimpleButton; public var l10:level10; public var l11:level11; public var l12:level12; public var l13:level13; public var gamezheroLogoBtn:SimpleButton; public var l15:level15; public var l16:level16; public var l17:level17; public var l18:level18; public var l19:level19; public var l14:level14; public var titleText:MovieClip; public var l20:level20; public var mu:TextField; public var bob:TextField; public var facebookBtn:SimpleButton; public var gib:MovieClip; public var k10:Number; public var k11:Number; public var k12:Number; public var haveBg:Boolean; public var k15:Number; public var k16:Number; public var k17:Number; public var helpButton:SimpleButton; public var k13:Number; public var k18:Number; public var k19:Number; public var k14:Number; public var k20:Number; public var runOnes:Boolean; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26); } public function goBag(_arg1:MouseEvent){ removeEventListener(MouseEvent.CLICK, goBag); gib.musicON.removeEventListener(MouseEvent.CLICK, musicON); gib.musicOFF.removeEventListener(MouseEvent.CLICK, musicOFF); } public function goBak(_arg1:MouseEvent){ gotoAndStop(2); removeEventListener(MouseEvent.CLICK, goBak); } public function loopEleven(_arg1:Event){ if (l11.l11Map.endPoint1.hitTestPoint(l11.ball1.x, l11.ball1.y, false)){ hit1 = true; }; if (l11.l11Map.endPoint2.hitTestPoint(l11.ball2.x, l11.ball2.y, false)){ hit2 = true; }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (l11.l11Map.endPoint1.hitTestPoint(l11.ball2.x, l11.ball2.y, false)){ hit1 = true; }; if (l11.l11Map.endPoint2.hitTestPoint(l11.ball1.x, l11.ball1.y, false)){ hit2 = true; }; if ((((hit1 == true)) && ((hit2 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 110){ comp11(); end11(); }; } public function subF(){ } public function loopSeventy(_arg1:Event){ bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (l17.l17Map.endPoint1.hitTestPoint(l17.ballW.x, l17.ballW.y, false)){ endy1 = true; l17.l17Map.endPoint1.gotoAndStop(2); }; if (l17.l17Map.endPoint2.hitTestPoint(l17.ballW.x, l17.ballW.y, false)){ endy2 = true; l17.l17Map.endPoint2.gotoAndStop(2); }; if (l17.l17Map.endPoint3.hitTestPoint(l17.ballW.x, l17.ballW.y, false)){ endy3 = true; l17.l17Map.endPoint3.gotoAndStop(2); }; if (l17.l17Map.endPoint4.hitTestPoint(l17.ballW.x, l17.ballW.y, false)){ endy4 = true; l17.l17Map.endPoint4.gotoAndStop(2); }; if (l17.l17Map.endPoint5.hitTestPoint(l17.ballW.x, l17.ballW.y, false)){ endy5 = true; l17.l17Map.endPoint5.gotoAndStop(2); }; if (l17.l17Map.endPoint6.hitTestPoint(l17.ballW.x, l17.ballW.y, false)){ endy6 = true; l17.l17Map.endPoint6.gotoAndStop(2); }; if (l17.l17Map.endPoint7.hitTestPoint(l17.ballW.x, l17.ballW.y, false)){ endy7 = true; l17.l17Map.endPoint7.gotoAndStop(2); }; if ((((((((((((((endy1 == true)) && ((endy2 == true)))) && ((endy3 == true)))) && ((endy4 == true)))) && ((endy5 == true)))) && ((endy6 == true)))) && ((endy7 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ end17(); }; if (l17.ballW.y > 550){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("fail"); timer = (timer + 1); }; } public function fsub(_arg1:MouseEvent){ GamezheroApi.submitScore("203195161156172201199162211086146153161218166169203220156196152165159151197163156178203198214165070148148155170", gtimer, closeMen); } public function comp20(){ if ((((times <= k20)) || ((k20 == 0)))){ k20 = times; }; if (gotoL < 21){ gotoL = 21; reCalc(); }; } public function loopTwelth(_arg1:Event){ if (l12.l12Map.endPoint1.hitTestPoint(l12.ball1.x, l12.ball1.y, false)){ endy1 = true; } else { endy1 = false; }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (l12.l12Map.endPointW.hitTestPoint(l12.ballW.x, l12.ballW.y, false)){ endy2 = true; } else { endy2 = false; }; if ((((endy1 == true)) && ((endy2 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ end12(); }; if (l12.ballW.y > 550){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("fail"); timer = (timer + 1); }; } public function musicONs(_arg1:MouseEvent){ gib.musicOFF.alpha = 0.5; gib.musicON.alpha = 1; if (music == false){ playMusic(); music = true; }; } public function loopNinteen(_arg1:Event){ bb++; times = Math.round((bb / 30)); timee.o.text = String(times); hit1 = false; if (l19.l19Map.endPoint.hitTestPoint(l19.ball.x, l19.ball.y, false)){ hit1 = true; }; if (hit1 == true){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ comp19(); end19(); }; } public function end11(){ countT(); removeEventListener(Event.ENTER_FRAME, loopEleven); l11.removeEventListener(Event.ENTER_FRAME, l11.Update); l11.removeEventListener(MouseEvent.MOUSE_DOWN, l11.createMouse); l11.removeEventListener(MouseEvent.MOUSE_UP, l11.destroyMouse); gotoAndStop(3); } public function end12(){ countT(); removeEventListener(Event.ENTER_FRAME, loopTwelth); l12.removeEventListener(Event.ENTER_FRAME, l12.Update); l12.removeEventListener(MouseEvent.MOUSE_DOWN, l12.createMouse); l12.removeEventListener(MouseEvent.MOUSE_UP, l12.destroyMouse); if (pass == true){ if (gotoL < 13){ if ((((times <= k12)) || ((k12 == 0)))){ k12 = times; }; gotoL = 13; reCalc(); }; }; gotoAndStop(3); } public function end13(){ countT(); removeEventListener(Event.ENTER_FRAME, loopThirteen); l13.removeEventListener(Event.ENTER_FRAME, l13.Update); l13.removeEventListener(MouseEvent.MOUSE_DOWN, l13.createMouse); l13.removeEventListener(MouseEvent.MOUSE_UP, l13.destroyMouse); gotoAndStop(3); } public function end14(){ countT(); removeEventListener(Event.ENTER_FRAME, loopFourteen); l14.removeEventListener(Event.ENTER_FRAME, l14.Update); l14.removeEventListener(MouseEvent.MOUSE_DOWN, l14.createMouse); l14.removeEventListener(MouseEvent.MOUSE_UP, l14.destroyMouse); gotoAndStop(3); } public function end15(){ countT(); removeEventListener(Event.ENTER_FRAME, loopFiveteen); l15.removeEventListener(Event.ENTER_FRAME, l15.Update); l15.removeEventListener(MouseEvent.MOUSE_DOWN, l15.createMouse); l15.removeEventListener(MouseEvent.MOUSE_UP, l15.destroyMouse); removeChild(l15); gotoAndStop(3); } public function end10(){ countT(); removeEventListener(Event.ENTER_FRAME, loopTen); l10.removeEventListener(Event.ENTER_FRAME, l10.Update); l10.removeEventListener(MouseEvent.MOUSE_DOWN, l10.createMouse); l10.removeEventListener(MouseEvent.MOUSE_UP, l10.destroyMouse); gotoAndStop(3); } public function end18(){ countT(); removeEventListener(Event.ENTER_FRAME, loopEighteen); l18.removeEventListener(Event.ENTER_FRAME, l18.Update); l18.removeEventListener(MouseEvent.MOUSE_DOWN, l18.createMouse); l18.removeEventListener(MouseEvent.MOUSE_UP, l18.destroyMouse); gotoAndStop(3); } public function end19(){ countT(); removeEventListener(Event.ENTER_FRAME, loopNinteen); l19.removeEventListener(Event.ENTER_FRAME, l19.Update); l19.removeEventListener(MouseEvent.MOUSE_DOWN, l19.createMouse); l19.removeEventListener(MouseEvent.MOUSE_UP, l19.destroyMouse); removeChild(l19); gotoAndStop(3); } public function end17(){ countT(); removeEventListener(Event.ENTER_FRAME, loopSeventy); l17.removeEventListener(Event.ENTER_FRAME, l17.Update); l17.removeEventListener(MouseEvent.MOUSE_DOWN, l17.createMouse); l17.removeEventListener(MouseEvent.MOUSE_UP, l17.destroyMouse); if (pass == true){ if (gotoL < 18){ if ((((times <= k17)) || ((k17 == 0)))){ k17 = times; }; gotoL = 18; reCalc(); }; }; gotoAndStop(3); } public function loopEight(_arg1:Event){ if (l8.l8Map.endPoint1.hitTestPoint(l8.ball1.x, l8.ball1.y, false)){ endy1 = true; l8.l8Map.endPoint1.gotoAndStop(2); } else { if (l8.l8Map.endPoint1.hitTestPoint(l8.ball2.x, l8.ball2.y, false)){ endy1 = true; l8.l8Map.endPoint1.gotoAndStop(2); } else { l8.l8Map.endPoint1.gotoAndStop(1); }; }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (l8.l8Map.endPoint2.hitTestPoint(l8.ball2.x, l8.ball2.y, false)){ endy2 = true; l8.l8Map.endPoint2.gotoAndStop(2); } else { if (l8.l8Map.endPoint2.hitTestPoint(l8.ball1.x, l8.ball1.y, false)){ endy2 = true; l8.l8Map.endPoint2.gotoAndStop(2); } else { l8.l8Map.endPoint2.gotoAndStop(1); }; }; if ((((endy1 == true)) && ((endy2 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ comp8(); end8(); }; endy1 = false; endy2 = false; } public function end16(){ countT(); removeEventListener(Event.ENTER_FRAME, loopSixteen); l16.removeEventListener(Event.ENTER_FRAME, l16.Update); l16.removeEventListener(MouseEvent.MOUSE_DOWN, l16.createMouse); l16.removeEventListener(MouseEvent.MOUSE_UP, l16.destroyMouse); if (pass == true){ if (gotoL < 17){ if ((((times <= k16)) || ((k16 == 0)))){ k16 = times; }; gotoL = 17; reCalc(); }; }; gotoAndStop(3); } function frame15(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto35); stop(); timer = 0; thisLev.tex.text = "Level 9: Open Space"; timeo.o.text = k9; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "9: ") + GamezheroDictionary.getTranslationByName("level_9"))); addEventListener(Event.ENTER_FRAME, loopNine); back.addEventListener(MouseEvent.CLICK, goBak9); } function frame10(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto6); stop(); timeo.o.text = k4; timer = 0; thisLev.tex.text = "Level 4: Double The Fun"; hit1 = false; hit2 = false; tr.text = GamezheroDictionary.getTranslationByName("desc_7"); thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "4: ") + GamezheroDictionary.getTranslationByName("level_4"))); addEventListener(Event.ENTER_FRAME, loopFour); back.addEventListener(MouseEvent.CLICK, goBak4); } function frame12(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto8); stop(); timer = 0; endy1 = false; endy2 = false; timeo.o.text = k6; pass = false; tr.text = GamezheroDictionary.getTranslationByName("desc_8"); thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "6: ") + GamezheroDictionary.getTranslationByName("level_6"))); addEventListener(Event.ENTER_FRAME, loopSix); back.addEventListener(MouseEvent.CLICK, goBak6); } public function end20(){ countT(); removeEventListener(Event.ENTER_FRAME, loopTwenty); l20.removeEventListener(Event.ENTER_FRAME, l20.Update); l20.removeEventListener(MouseEvent.MOUSE_DOWN, l20.createMouse); l20.removeEventListener(MouseEvent.MOUSE_UP, l20.destroyMouse); gotoAndStop(3); } function frame18(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto56); stop(); timer = 0; thisLev.tex.text = "Level 12: Take It Slowly"; endy1 = false; endy2 = false; pass = false; timeo.o.text = k12; tr.text = GamezheroDictionary.getTranslationByName("desc_9"); thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "12: ") + GamezheroDictionary.getTranslationByName("level_12"))); addEventListener(Event.ENTER_FRAME, loopTwelth); back.addEventListener(MouseEvent.CLICK, goBak12); } function frame13(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto9); stop(); timer = 0; thisLev.tex.text = "Level 7: Inverse Gravity"; endy1 = false; timeo.o.text = k7; endy2 = false; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "7: ") + GamezheroDictionary.getTranslationByName("level_7"))); addEventListener(Event.ENTER_FRAME, loopSeven); back.addEventListener(MouseEvent.CLICK, goBak7); } public function nextStep():void{ trace("AFTER LOADING"); gotoAndStop(2); } function frame16(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto31); stop(); timer = 0; thisLev.tex.text = "Level 10: Two Rooms"; hit1 = false; hit2 = false; timeo.o.text = k10; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "10: ") + GamezheroDictionary.getTranslationByName("level_10"))); addEventListener(Event.ENTER_FRAME, loopTen); back.addEventListener(MouseEvent.CLICK, goBak10); } function frame17(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto23); stop(); timer = 0; thisLev.tex.text = "Level 11: Inwards"; hit1 = false; timeo.o.text = k11; hit2 = false; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "11: ") + GamezheroDictionary.getTranslationByName("level_11"))); addEventListener(Event.ENTER_FRAME, loopEleven); back.addEventListener(MouseEvent.CLICK, goBak11); } function frame1(){ bb = 0; times = 0; haveBg = true; sound = true; music = true; run = 0; runnyOne = true; gtimer = 0; timed = 0; GamezheroApi.ini(this, "piviball", true); GamezheroApi.preloader(nextStep); stop(); } function frame3(){ stop(); mu.text = GamezheroDictionary.getTranslationByName("music"); bob.text = GamezheroDictionary.getTranslationByName("desc_11"); dod.text = GamezheroDictionary.getTranslationByName("submit"); levelBu = new Array(25); levelNums = new Array(25); myNum = 0; runOnes = true; shoT = 0; timer = 0; k1 = 0; k2 = 0; k3 = 0; k4 = 0; k5 = 0; k6 = 0; k7 = 0; k8 = 0; k9 = 0; k10 = 0; k11 = 0; k12 = 0; k13 = 0; k14 = 0; k15 = 0; k16 = 0; k17 = 0; k18 = 0; k19 = 0; k20 = 0; if (runOnes == true){ piviLevel = SharedObject.getLocal("pivibal"); if (piviLevel.data.counter == undefined){ piviLevel.data.counter = 1; piviLevel.data.timer = 0; piviLevel.data.l1 = 0; piviLevel.data.l2 = 0; piviLevel.data.l3 = 0; piviLevel.data.l4 = 0; piviLevel.data.l5 = 0; piviLevel.data.l6 = 0; piviLevel.data.l7 = 0; piviLevel.data.l8 = 0; piviLevel.data.l9 = 0; piviLevel.data.l10 = 0; piviLevel.data.l11 = 0; piviLevel.data.l12 = 0; piviLevel.data.l13 = 0; piviLevel.data.l14 = 0; piviLevel.data.l15 = 0; piviLevel.data.l16 = 0; piviLevel.data.l17 = 0; piviLevel.data.l18 = 0; piviLevel.data.l19 = 0; piviLevel.data.l20 = 0; gotoL = 1; gtimer = 0; } else { k1 = piviLevel.data.l1; k2 = piviLevel.data.l2; k3 = piviLevel.data.l3; k4 = piviLevel.data.l4; k5 = piviLevel.data.l5; k6 = piviLevel.data.l6; k7 = piviLevel.data.l7; k8 = piviLevel.data.l8; k9 = piviLevel.data.l9; k10 = piviLevel.data.l10; k11 = piviLevel.data.l11; k12 = piviLevel.data.l12; k13 = piviLevel.data.l13; k14 = piviLevel.data.l14; k15 = piviLevel.data.l15; k16 = piviLevel.data.l16; k17 = piviLevel.data.l17; k18 = piviLevel.data.l18; k19 = piviLevel.data.l19; k20 = piviLevel.data.l20; gotoL = piviLevel.data.counter; gtimer = piviLevel.data.timer; }; runOnes = false; }; if (gotoL >= 21){ bob.x = 14; dod.x = -500; sub.x = 0x0202; } else { sub.x = -500; dod.x = 372; bob.x = -500; }; timee.o.text = gtimer; yco = 0; while (yco < 5) { xco = 0; while (xco < 4) { myNum++; levelBu[myNum] = new levelB(); levelBu[myNum].x = ((70 * xco) + 195); levelBu[myNum].y = ((yco * 52) + 155); addChild(levelBu[myNum]); levelNums[myNum] = new levelNum(); levelNums[myNum].x = ((70 * xco) + 195); levelNums[myNum].y = ((yco * 52) + 155); if (myNum > gotoL){ levelNums[myNum].whatNum.text = String("?"); } else { levelNums[myNum].whatNum.text = String(myNum); }; levelNums[myNum].whatNum.mouseEnabled = false; levelNums[myNum].mouseEnabled = false; levelNums[myNum].whatNum.selectable = false; addChild(levelNums[myNum]); xco++; }; yco++; }; levelBu[1].addEventListener(MouseEvent.CLICK, click1); levelBu[2].addEventListener(MouseEvent.CLICK, click2); levelBu[3].addEventListener(MouseEvent.CLICK, click3); levelBu[4].addEventListener(MouseEvent.CLICK, click4); levelBu[5].addEventListener(MouseEvent.CLICK, click5); levelBu[6].addEventListener(MouseEvent.CLICK, click6); levelBu[7].addEventListener(MouseEvent.CLICK, click7); levelBu[8].addEventListener(MouseEvent.CLICK, click8); levelBu[9].addEventListener(MouseEvent.CLICK, click9); levelBu[10].addEventListener(MouseEvent.CLICK, click10); levelBu[11].addEventListener(MouseEvent.CLICK, click11); levelBu[12].addEventListener(MouseEvent.CLICK, click12); levelBu[13].addEventListener(MouseEvent.CLICK, click13); levelBu[14].addEventListener(MouseEvent.CLICK, click14); levelBu[15].addEventListener(MouseEvent.CLICK, click15); levelBu[16].addEventListener(MouseEvent.CLICK, click16); levelBu[17].addEventListener(MouseEvent.CLICK, click17); levelBu[18].addEventListener(MouseEvent.CLICK, click18); levelBu[19].addEventListener(MouseEvent.CLICK, click19); levelBu[20].addEventListener(MouseEvent.CLICK, click20); back.addEventListener(MouseEvent.CLICK, goBack); sub.addEventListener(MouseEvent.CLICK, fsub); if (music == true){ gib.musicOFF.alpha = 0.5; gib.musicON.alpha = 1; } else { gib.musicOFF.alpha = 1; gib.musicON.alpha = 0.5; }; gib.musicON.addEventListener(MouseEvent.CLICK, musicONs); gib.musicOFF.addEventListener(MouseEvent.CLICK, musicOFFs); (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto2); } function frame4(){ back.addEventListener(MouseEvent.CLICK, goBac); mDes.text = GamezheroDictionary.getTranslationByName("desc_1"); endv.text = GamezheroDictionary.getTranslationByName("desc_2"); end1v.text = GamezheroDictionary.getTranslationByName("desc_3"); end2v.text = GamezheroDictionary.getTranslationByName("desc_4"); } function frame7(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto3); stop(); timee.o.text = 0; timeo.o.text = k1; tr.text = GamezheroDictionary.getTranslationByName("desc_1"); thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "1: ") + GamezheroDictionary.getTranslationByName("level_1"))); addEventListener(Event.ENTER_FRAME, loopOne); back.addEventListener(MouseEvent.CLICK, goBaky); } function frame8(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto4); stop(); timeo.o.text = k2; timer = 0; thisLev.tex.text = "Level 2: Easy"; tr.text = GamezheroDictionary.getTranslationByName("desc_6"); thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "2: ") + GamezheroDictionary.getTranslationByName("level_2"))); addEventListener(Event.ENTER_FRAME, loopTwo); back.addEventListener(MouseEvent.CLICK, goBak2); } function frame2(){ mu.text = GamezheroDictionary.getTranslationByName("music"); (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto); (startButton as SimpleButton).addEventListener(MouseEvent.CLICK, goto); (helpButton as SimpleButton).addEventListener(MouseEvent.CLICK, goto); (infoButton as SimpleButton).addEventListener(MouseEvent.CLICK, goto); (moreButton as SimpleButton).addEventListener(MouseEvent.CLICK, goto); (twitterBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto); (facebookBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto); if (music == true){ gib.musicOFF.alpha = 0.5; gib.musicON.alpha = 1; } else { gib.musicOFF.alpha = 1; gib.musicON.alpha = 0.5; }; gib.musicON.addEventListener(MouseEvent.CLICK, musicON); gib.musicOFF.addEventListener(MouseEvent.CLICK, musicOFF); musicy = new song(); musicIsOn = true; if (runnyOne == true){ playMusic(); runnyOne = false; }; } function frame19(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto45); stop(); timer = 0; thisLev.tex.text = "Level 13: The Grid"; hit1 = false; hit2 = false; endy3 = false; endy4 = false; endy5 = false; endy6 = false; endy7 = false; endy8 = false; endy9 = false; timeo.o.text = k13; tr.text = GamezheroDictionary.getTranslationByName("desc_8"); thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "13: ") + GamezheroDictionary.getTranslationByName("level_13"))); addEventListener(Event.ENTER_FRAME, loopThirteen); back.addEventListener(MouseEvent.CLICK, goBak13); } public function end1e(){ countT(); times = 0; removeEventListener(Event.ENTER_FRAME, loopOne); l1.removeEventListener(Event.ENTER_FRAME, l1.Update); l1.removeEventListener(MouseEvent.MOUSE_DOWN, l1.createMouse); l1.removeEventListener(MouseEvent.MOUSE_UP, l1.destroyMouse); gotoAndStop(3); } function frame26(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto77); stop(); timeo.o.text = k20; timer = 0; hit1 = false; hit2 = false; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "20: ") + GamezheroDictionary.getTranslationByName("level_20"))); addEventListener(Event.ENTER_FRAME, loopTwenty); back.addEventListener(MouseEvent.CLICK, goBak29); } function frame9(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto5); stop(); timer = 0; timeo.o.text = k3; thisLev.tex.text = "Level 3: Winding"; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "3: ") + GamezheroDictionary.getTranslationByName("level_3"))); addEventListener(Event.ENTER_FRAME, loopThree); back.addEventListener(MouseEvent.CLICK, goBak3); } function frame24(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto78); stop(); timer = 0; timeo.o.text = k18; hit1 = false; hit2 = false; endy3 = false; endy4 = false; endy5 = false; endy6 = false; endy7 = false; endy8 = false; endy9 = false; endy0 = false; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "18: ") + GamezheroDictionary.getTranslationByName("level_18"))); addEventListener(Event.ENTER_FRAME, loopEighteen); back.addEventListener(MouseEvent.CLICK, goBak18); } function frame5(){ bo.text = GamezheroDictionary.getTranslationByName("deveoped_by_collipop"); by.text = GamezheroDictionary.getTranslationByName("made_using_box2d"); back.addEventListener(MouseEvent.CLICK, goBak); } function frame11(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto37); stop(); timeo.o.text = k5; timer = 0; thisLev.tex.text = "Level 5: Temporarily Hidden"; endy1 = false; endy2 = false; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "5: ") + GamezheroDictionary.getTranslationByName("level_5"))); addEventListener(Event.ENTER_FRAME, loopFive); back.addEventListener(MouseEvent.CLICK, goBak5); } function frame21(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto233); stop(); timer = 0; thisLev.tex.text = "Level 15: Funnel"; hit1 = false; timeo.o.text = k15; tr.text = GamezheroDictionary.getTranslationByName("desc_10"); thisLev.tex.text = String((GamezheroDictionary.getTranslationByName("level") + GamezheroDictionary.getTranslationByName("level_15"))); addEventListener(Event.ENTER_FRAME, loopFiveteen); back.addEventListener(MouseEvent.CLICK, goBak15); } function frame14(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto99); stop(); timer = 0; endy1 = false; endy2 = false; timeo.o.text = k8; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "8: ") + GamezheroDictionary.getTranslationByName("level_8"))); addEventListener(Event.ENTER_FRAME, loopEight); back.addEventListener(MouseEvent.CLICK, goBak8); } function frame25(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto90); stop(); timer = 0; timeo.o.text = k19; thisLev.tex.text = "Level 19: Hide Yourself"; hit1 = false; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "19: ") + GamezheroDictionary.getTranslationByName("level_19"))); addEventListener(Event.ENTER_FRAME, loopNinteen); back.addEventListener(MouseEvent.CLICK, goBak19); } function frame20(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto65); stop(); timer = 0; hit1 = false; hit2 = false; endy3 = false; endy4 = false; endy5 = false; endy6 = false; endy7 = false; endy8 = false; endy9 = false; timeo.o.text = k14; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "14: ") + GamezheroDictionary.getTranslationByName("level_14"))); addEventListener(Event.ENTER_FRAME, loopFourteen); back.addEventListener(MouseEvent.CLICK, goBak14); } function frame22(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto5665); stop(); timer = 0; thisLev.tex.text = "Level 16: Windmill"; timeo.o.text = k16; endy1 = false; endy2 = false; pass = false; thisLev.tex.text = String((GamezheroDictionary.getTranslationByName("level") + GamezheroDictionary.getTranslationByName("level_16"))); addEventListener(Event.ENTER_FRAME, loopSixteen); back.addEventListener(MouseEvent.CLICK, goBak16); } function frame23(){ (gamezheroLogoBtn as SimpleButton).addEventListener(MouseEvent.CLICK, goto656); stop(); timer = 0; timeo.o.text = k17; thisLev.tex.text = "Level 17: The Open Grid"; endy1 = false; endy2 = false; pass = false; thisLev.tex.text = String(((GamezheroDictionary.getTranslationByName("level") + "17: ") + GamezheroDictionary.getTranslationByName("level_17"))); addEventListener(Event.ENTER_FRAME, loopSeventy); back.addEventListener(MouseEvent.CLICK, goBak17); } public function end2e(){ countT(); removeEventListener(Event.ENTER_FRAME, loopTwo); l2.removeEventListener(Event.ENTER_FRAME, l2.Update); l2.removeEventListener(MouseEvent.MOUSE_DOWN, l2.createMouse); l2.removeEventListener(MouseEvent.MOUSE_UP, l2.destroyMouse); gotoAndStop(3); } public function musicOFFs(_arg1:MouseEvent){ gib.musicOFF.alpha = 1; gib.musicON.alpha = 0.5; if (music == true){ stopMusic(); music = false; }; } public function end3e(){ countT(); removeEventListener(Event.ENTER_FRAME, loopThree); l3.removeEventListener(Event.ENTER_FRAME, l3.Update); l3.removeEventListener(MouseEvent.MOUSE_DOWN, l3.createMouse); l3.removeEventListener(MouseEvent.MOUSE_UP, l3.destroyMouse); gotoAndStop(3); } public function goBak3(_arg1:MouseEvent){ end3e(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak3); } public function goBak4(_arg1:MouseEvent){ end4(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak4); } public function goBak5(_arg1:MouseEvent){ end5(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak5); } public function goBak6(_arg1:MouseEvent){ end6(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak6); } public function goBak7(_arg1:MouseEvent){ end7(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak7); } public function goBak8(_arg1:MouseEvent){ end8(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak8); } public function goBak2(_arg1:MouseEvent){ end2e(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak2); } public function end4(){ countT(); removeEventListener(Event.ENTER_FRAME, loopFour); l4.removeEventListener(Event.ENTER_FRAME, l4.Update); l4.removeEventListener(MouseEvent.MOUSE_DOWN, l4.createMouse); l4.removeEventListener(MouseEvent.MOUSE_UP, l4.destroyMouse); gotoAndStop(3); } public function end5(){ countT(); removeEventListener(Event.ENTER_FRAME, loopFive); l5.removeEventListener(Event.ENTER_FRAME, l5.Update); l5.removeEventListener(MouseEvent.MOUSE_DOWN, l5.createMouse); l5.removeEventListener(MouseEvent.MOUSE_UP, l5.destroyMouse); gotoAndStop(3); } public function end6(){ removeEventListener(Event.ENTER_FRAME, loopSix); l6.removeEventListener(Event.ENTER_FRAME, l6.Update); l6.removeEventListener(MouseEvent.MOUSE_DOWN, l6.createMouse); l6.removeEventListener(MouseEvent.MOUSE_UP, l6.destroyMouse); if (pass == true){ if ((((times <= k6)) || ((k6 == 0)))){ k6 = times; }; trace(k6); if (gotoL < 7){ gotoL = 7; reCalc(); }; }; countT(); gotoAndStop(3); } public function end7(){ countT(); removeEventListener(Event.ENTER_FRAME, loopSeven); l7.removeEventListener(Event.ENTER_FRAME, l7.Update); l7.removeEventListener(MouseEvent.MOUSE_DOWN, l7.createMouse); l7.removeEventListener(MouseEvent.MOUSE_UP, l7.destroyMouse); gotoAndStop(3); } public function end8(){ countT(); removeEventListener(Event.ENTER_FRAME, loopEight); l8.removeEventListener(Event.ENTER_FRAME, l8.Update); l8.removeEventListener(MouseEvent.MOUSE_DOWN, l8.createMouse); l8.removeEventListener(MouseEvent.MOUSE_UP, l8.destroyMouse); gotoAndStop(3); } public function closeMen(){ clearT(); } public function musicON(_arg1:MouseEvent){ gib.musicOFF.alpha = 0.5; gib.musicON.alpha = 1; if (music == false){ playMusic(); music = true; }; } public function end9(){ countT(); removeEventListener(Event.ENTER_FRAME, loopNine); l9.removeEventListener(Event.ENTER_FRAME, l9.Update); l9.removeEventListener(MouseEvent.MOUSE_DOWN, l9.createMouse); l9.removeEventListener(MouseEvent.MOUSE_UP, l9.destroyMouse); gotoAndStop(3); } public function goBak9(_arg1:MouseEvent){ end9(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak9); } public function loopTen(_arg1:Event){ hit1 = false; hit2 = false; if (l10.l10Map.endPoint1.hitTestPoint(l10.ball1.x, l10.ball1.y, false)){ hit1 = true; }; if (l10.l10Map.endPoint2.hitTestPoint(l10.ball2.x, l10.ball2.y, false)){ hit2 = true; }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (l10.l10Map.endPoint1.hitTestPoint(l10.ball2.x, l10.ball2.y, false)){ hit1 = true; }; if (l10.l10Map.endPoint2.hitTestPoint(l10.ball1.x, l10.ball1.y, false)){ hit2 = true; }; if ((((hit1 == true)) && ((hit2 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ comp10(); end10(); }; } public function goto23(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goBaky(_arg1:MouseEvent){ end1e(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBaky); } public function endd(){ levelBu[1].removeEventListener(MouseEvent.CLICK, click1); levelBu[2].removeEventListener(MouseEvent.CLICK, click2); levelBu[3].removeEventListener(MouseEvent.CLICK, click3); levelBu[4].removeEventListener(MouseEvent.CLICK, click4); levelBu[5].removeEventListener(MouseEvent.CLICK, click5); levelBu[6].removeEventListener(MouseEvent.CLICK, click6); levelBu[7].removeEventListener(MouseEvent.CLICK, click7); levelBu[8].removeEventListener(MouseEvent.CLICK, click8); levelBu[9].removeEventListener(MouseEvent.CLICK, click9); levelBu[10].removeEventListener(MouseEvent.CLICK, click10); levelBu[11].removeEventListener(MouseEvent.CLICK, click11); levelBu[12].removeEventListener(MouseEvent.CLICK, click12); levelBu[13].removeEventListener(MouseEvent.CLICK, click13); levelBu[14].removeEventListener(MouseEvent.CLICK, click13); levelBu[16].removeEventListener(MouseEvent.CLICK, click16); levelBu[17].removeEventListener(MouseEvent.CLICK, click17); levelBu[20].removeEventListener(MouseEvent.CLICK, click20); removeChild(levelNums[1]); removeChild(levelNums[2]); removeChild(levelNums[3]); removeChild(levelNums[4]); removeChild(levelNums[5]); removeChild(levelNums[6]); removeChild(levelNums[7]); removeChild(levelNums[8]); removeChild(levelNums[9]); removeChild(levelNums[10]); removeChild(levelNums[11]); removeChild(levelNums[12]); removeChild(levelNums[13]); removeChild(levelNums[14]); removeChild(levelNums[15]); removeChild(levelNums[16]); removeChild(levelNums[17]); removeChild(levelNums[18]); removeChild(levelNums[19]); removeChild(levelNums[20]); removeChild(levelBu[1]); removeChild(levelBu[2]); removeChild(levelBu[3]); removeChild(levelBu[4]); removeChild(levelBu[5]); removeChild(levelBu[6]); removeChild(levelBu[7]); removeChild(levelBu[8]); removeChild(levelBu[9]); removeChild(levelBu[10]); removeChild(levelBu[11]); removeChild(levelBu[12]); removeChild(levelBu[13]); removeChild(levelBu[14]); removeChild(levelBu[15]); removeChild(levelBu[16]); removeChild(levelBu[17]); removeChild(levelBu[18]); removeChild(levelBu[19]); removeChild(levelBu[20]); removeEventListener(MouseEvent.CLICK, goBag); } public function goto31(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function comp1(){ if ((((times <= k1)) || ((k1 == 0)))){ k1 = times; }; if (gotoL < 2){ gotoL = 2; reCalc(); }; } public function comp3(){ if ((((times <= k3)) || ((k3 == 0)))){ k3 = times; }; if (gotoL < 4){ gotoL = 4; reCalc(); }; } public function comp5(){ if ((((times <= k5)) || ((k5 == 0)))){ k5 = times; }; if (gotoL < 6){ gotoL = 6; reCalc(); }; } public function loopTwo(_arg1:Event){ if (l2.l2Map.endPoint.hitTestPoint(l2.ball.x, l2.ball.y, false)){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (timer > 0){ timer++; }; if (timer == 100){ comp2(); end2e(); }; } public function comp8(){ if ((((times <= k8)) || ((k8 == 0)))){ k8 = times; }; if (gotoL < 9){ gotoL = 9; reCalc(); }; } public function musicOFF(_arg1:MouseEvent){ gib.musicOFF.alpha = 1; gib.musicON.alpha = 0.5; if (music == true){ stopMusic(); music = false; }; } public function comp4(){ if ((((times <= k4)) || ((k4 == 0)))){ k4 = times; }; if (gotoL < 5){ gotoL = 5; reCalc(); }; } public function goto37(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function comp9(){ if ((((times <= k9)) || ((k9 == 0)))){ k9 = times; }; if (gotoL < 10){ gotoL = 10; reCalc(); }; } public function comp2(){ if ((((times <= k2)) || ((k2 == 0)))){ k2 = times; }; if (gotoL < 3){ gotoL = 3; reCalc(); }; } public function goto35(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function comp7(){ if ((((times <= k7)) || ((k7 == 0)))){ k7 = times; }; if (gotoL < 8){ gotoL = 8; reCalc(); }; } public function goto5665(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goBak10(_arg1:MouseEvent){ end10(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak10); } public function goto3(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function loopOne(_arg1:Event){ if (l1.l1Map.endPoint.hitTestPoint(l1.ball.x, l1.ball.y, false)){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (timer > 0){ timer++; }; if (timer == 100){ comp1(); end1e(); }; } public function goto5(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goto6(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goto8(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goto2(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goBak18(_arg1:MouseEvent){ end18(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak18); } public function goBak19(_arg1:MouseEvent){ end19(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak19); } public function goBak11(_arg1:MouseEvent){ end11(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak11); } public function countT(){ gtimer = (((((((((((((((((((k1 + k2) + k3) + k4) + k5) + k6) + k7) + k8) + k9) + k10) + k11) + k12) + k13) + k14) + k15) + k16) + k17) + k18) + k19) + k20); piviLevel.data.timer = gtimer; times = 0; bb = 0; piviLevel.data.l1 = k1; piviLevel.data.l2 = k2; piviLevel.data.l3 = k3; piviLevel.data.l4 = k4; piviLevel.data.l5 = k5; piviLevel.data.l6 = k6; piviLevel.data.l7 = k7; piviLevel.data.l8 = k8; piviLevel.data.l9 = k9; piviLevel.data.l10 = k10; piviLevel.data.l11 = k11; piviLevel.data.l12 = k12; piviLevel.data.l13 = k13; piviLevel.data.l14 = k14; piviLevel.data.l15 = k15; piviLevel.data.l16 = k16; piviLevel.data.l17 = k17; piviLevel.data.l18 = k18; piviLevel.data.l19 = k19; piviLevel.data.l20 = k20; } public function goBak14(_arg1:MouseEvent){ end14(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak14); } public function reCalc(){ piviLevel.data.counter = gotoL; } public function goBak16(_arg1:MouseEvent){ end16(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak16); } public function stopMusic():void{ trace("stop"); channel.stop(); musicIsOn = false; } public function goto56(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goto9(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goBak12(_arg1:MouseEvent){ end12(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak12); } public function goto4(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function loopFiveteen(_arg1:Event){ hit1 = false; if (l15.l15Map.endPoint.hitTestPoint(l15.ball.x, l15.ball.y, false)){ hit1 = true; }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (hit1 == true){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ comp15(); end15(); }; } public function playMusic():void{ trace("play"); channel = musicy.play(); channel.addEventListener(Event.SOUND_COMPLETE, repeat); } public function loopThree(_arg1:Event){ if (l3.l3Map.endPoint.hitTestPoint(l3.ball.x, l3.ball.y, false)){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; if (timer > 0){ timer++; }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (timer == 100){ comp3(); end3e(); }; } public function goBak13(_arg1:MouseEvent){ end13(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak13); } public function goto65(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goto(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; case startButton: gotoAndStop(3); break; case helpButton: gotoAndStop(4); break; case infoButton: gotoAndStop(5); break; case twitterBtn: GamezheroApi.navigateTo(GamezheroApi.TWITTER); break; case facebookBtn: GamezheroApi.navigateTo(GamezheroApi.FACEBOOK); break; case moreButton: GamezheroApi.navigateTo(GamezheroApi.VIEW_TOP_SCORE); break; default: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES); }; } public function goto656(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goBak29(_arg1:MouseEvent){ end20(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak29); } public function comp10(){ if ((((times <= k10)) || ((k10 == 0)))){ k10 = times; }; if (gotoL < 11){ gotoL = 11; reCalc(); }; } public function comp11(){ if ((((times <= k11)) || ((k11 == 0)))){ k11 = times; }; if (gotoL < 12){ gotoL = 12; reCalc(); }; } public function goBak17(_arg1:MouseEvent){ end17(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak17); } public function comp13(){ if ((((times <= k13)) || ((k13 == 0)))){ k13 = times; }; if (gotoL < 14){ gotoL = 14; reCalc(); }; } public function comp14(){ if ((((times <= k14)) || ((k14 == 0)))){ k14 = times; }; if (gotoL < 15){ gotoL = 15; reCalc(); }; } public function comp15(){ if ((((times <= k15)) || ((k15 == 0)))){ k15 = times; }; if (gotoL < 16){ gotoL = 16; reCalc(); }; } public function loopFive(_arg1:Event){ if (l5.l5Map.endPoint1.hitTestPoint(l5.ball1.x, l5.ball1.y, false)){ endy1 = true; } else { endy1 = false; }; if (l5.l5Map.endPoint2.hitTestPoint(l5.ball2.x, l5.ball2.y, false)){ endy2 = true; } else { endy2 = false; }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if ((((endy1 == true)) && ((endy2 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer == 100){ comp5(); end5(); }; } public function comp19(){ if ((((times <= k19)) || ((k19 == 0)))){ k19 = times; }; if (gotoL < 20){ gotoL = 20; reCalc(); }; } public function goto45(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goBak15(_arg1:MouseEvent){ end15(); gotoAndStop(3); removeEventListener(MouseEvent.CLICK, goBak15); } public function loopNine(_arg1:Event){ if (l9.l9Map.endPoint.hitTestPoint(l9.ball.x, l9.ball.y, false)){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); l9.l9Map.endPoint.gotoAndStop(2); }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (timer > 0){ timer++; }; if (timer >= 100){ comp9(); end9(); }; } public function loopSixteen(_arg1:Event){ if (l16.l16Map.endPointW.hitTestPoint(l16.ballW.x, l16.ballW.y, false)){ endy2 = true; } else { endy2 = false; }; if (endy2 == true){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (timer > 0){ timer++; }; if (timer >= 100){ end16(); }; if (l16.ballW.y > 550){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("fail"); timer = (timer + 1); }; } public function goto77(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function goto78(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function comp18(){ if ((((times <= k18)) || ((k18 == 0)))){ k18 = times; }; if (gotoL < 19){ gotoL = 19; reCalc(); }; } public function repeat(_arg1:Event):void{ if (channel != null){ channel.removeEventListener(Event.SOUND_COMPLETE, repeat); playMusic(); }; } public function click10(_arg1:MouseEvent){ if (gotoL >= 10){ gotoAndStop((10 + 6)); endd(); }; } public function click11(_arg1:MouseEvent){ if (gotoL >= 11){ gotoAndStop((11 + 6)); endd(); }; } public function click1(_arg1:MouseEvent){ gotoAndStop((1 + 6)); endd(); } public function click3(_arg1:MouseEvent){ if (gotoL >= 3){ gotoAndStop((3 + 6)); endd(); }; } public function click4(_arg1:MouseEvent){ if (gotoL >= 4){ gotoAndStop((4 + 6)); endd(); }; } public function click5(_arg1:MouseEvent){ if (gotoL >= 5){ gotoAndStop((5 + 6)); endd(); }; } public function click17(_arg1:MouseEvent){ if (gotoL >= 17){ gotoAndStop((17 + 6)); endd(); }; } public function click8(_arg1:MouseEvent){ if (gotoL >= 8){ gotoAndStop((8 + 6)); endd(); }; } public function click2(_arg1:MouseEvent){ if (gotoL >= 2){ gotoAndStop((2 + 6)); endd(); }; } public function click14(_arg1:MouseEvent){ if (gotoL >= 14){ gotoAndStop((14 + 6)); endd(); }; } public function click15(_arg1:MouseEvent){ if (gotoL >= 15){ gotoAndStop((15 + 6)); endd(); }; } public function click7(_arg1:MouseEvent){ if (gotoL >= 7){ gotoAndStop((7 + 6)); endd(); }; } public function click19(_arg1:MouseEvent){ if (gotoL >= 19){ gotoAndStop((19 + 6)); endd(); }; } public function click9(_arg1:MouseEvent){ if (gotoL >= 9){ gotoAndStop((9 + 6)); endd(); }; } public function click13(_arg1:MouseEvent){ if (gotoL >= 13){ gotoAndStop((13 + 6)); endd(); }; } public function goto90(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function loopThirteen(_arg1:Event){ bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (l13.l13Map.endPoint1.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy1 = true; l13.l13Map.endPoint1.gotoAndStop(2); }; if (l13.l13Map.endPoint2.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy2 = true; l13.l13Map.endPoint2.gotoAndStop(2); }; if (l13.l13Map.endPoint3.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy3 = true; l13.l13Map.endPoint3.gotoAndStop(2); }; if (l13.l13Map.endPoint4.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy4 = true; l13.l13Map.endPoint4.gotoAndStop(2); }; if (l13.l13Map.endPoint5.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy5 = true; l13.l13Map.endPoint5.gotoAndStop(2); }; if (l13.l13Map.endPoint6.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy6 = true; l13.l13Map.endPoint6.gotoAndStop(2); }; if (l13.l13Map.endPoint7.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy7 = true; l13.l13Map.endPoint7.gotoAndStop(2); }; if (l13.l13Map.endPoint8.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy8 = true; l13.l13Map.endPoint8.gotoAndStop(2); }; if (l13.l13Map.endPoint9.hitTestPoint(l13.ball.x, l13.ball.y, false)){ endy9 = true; l13.l13Map.endPoint9.gotoAndStop(2); }; if ((((((((((((((((((endy1 == true)) && ((endy2 == true)))) && ((endy3 == true)))) && ((endy4 == true)))) && ((endy5 == true)))) && ((endy6 == true)))) && ((endy7 == true)))) && ((endy8 == true)))) && ((endy9 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 10){ comp13(); end13(); }; } public function click16(_arg1:MouseEvent){ if (gotoL >= 16){ gotoAndStop((16 + 6)); endd(); }; } public function clearT(){ gotoAndStop(1); gotoL = 0; piviLevel.data.counter = 1; gtimer = 0; piviLevel.data.timer = 0; times = 0; bb = 0; piviLevel.data.l1 = 0; piviLevel.data.l2 = 0; piviLevel.data.l3 = 0; piviLevel.data.l4 = 0; piviLevel.data.l5 = 0; piviLevel.data.l6 = 0; piviLevel.data.l7 = 0; piviLevel.data.l8 = 0; piviLevel.data.l9 = 0; piviLevel.data.l10 = 0; piviLevel.data.l11 = 0; piviLevel.data.l12 = 0; piviLevel.data.l13 = 0; piviLevel.data.l14 = 0; piviLevel.data.l15 = 0; piviLevel.data.l16 = 0; piviLevel.data.l17 = 0; piviLevel.data.l18 = 0; piviLevel.data.l19 = 0; piviLevel.data.l20 = 0; k1 = 0; k2 = 0; k3 = 0; k4 = 0; k5 = 0; k6 = 0; k7 = 0; k8 = 0; k9 = 0; k10 = 0; k11 = 0; k12 = 0; k13 = 0; k14 = 0; k15 = 0; k16 = 0; k17 = 0; k18 = 0; k19 = 0; k20 = 0; gotoAndStop(3); } public function click12(_arg1:MouseEvent){ if (gotoL >= 12){ gotoAndStop((12 + 6)); endd(); }; } public function goto99(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function loopFourteen(_arg1:Event){ bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (l14.endPoint1.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy1 = true; l14.endPoint1.gotoAndStop(2); }; if (l14.endPoint2.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy2 = true; l14.endPoint2.gotoAndStop(2); }; if (l14.endPoint3.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy3 = true; l14.endPoint3.gotoAndStop(2); }; if (l14.endPoint4.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy4 = true; l14.endPoint4.gotoAndStop(2); }; if (l14.endPoint5.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy5 = true; l14.endPoint5.gotoAndStop(2); }; if (l14.endPoint6.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy6 = true; l14.endPoint6.gotoAndStop(2); }; if (l14.endPoint7.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy7 = true; l14.endPoint7.gotoAndStop(2); }; if (l14.endPoint8.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy8 = true; l14.endPoint8.gotoAndStop(2); }; if (l14.endPoint9.hitTestPoint(l14.ball.x, l14.ball.y, false)){ endy9 = true; l14.endPoint9.gotoAndStop(2); }; if ((((((((((((((((((endy1 == true)) && ((endy2 == true)))) && ((endy3 == true)))) && ((endy4 == true)))) && ((endy5 == true)))) && ((endy6 == true)))) && ((endy7 == true)))) && ((endy8 == true)))) && ((endy9 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ comp14(); end14(); }; } public function loopEighteen(_arg1:Event){ endy0 = false; endy1 = false; endy2 = false; endy3 = false; endy4 = false; endy5 = false; endy6 = false; endy7 = false; endy8 = false; endy9 = false; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if (l18.l18Map.bigPoint.hitTestPoint(l18.ball.x, l18.ball.y, false)){ endy0 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball1.x, l18.ball1.y, false)){ endy1 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball2.x, l18.ball2.y, false)){ endy2 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball3.x, l18.ball3.y, false)){ endy3 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball4.x, l18.ball4.y, false)){ endy4 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball.x, l18.ball.y, false)){ endy0 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball1.x, l18.ball1.y, false)){ endy1 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball2.x, l18.ball2.y, false)){ endy2 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball3.x, l18.ball3.y, false)){ endy3 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball4.x, l18.ball4.y, false)){ endy4 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball5.x, l18.ball5.y, false)){ endy5 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball6.x, l18.ball6.y, false)){ endy6 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball7.x, l18.ball7.y, false)){ endy7 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball8.x, l18.ball8.y, false)){ endy8 = true; }; if (l18.l18Map.bigPoint.hitTestPoint(l18.ball9.x, l18.ball9.y, false)){ endy9 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball5.x, l18.ball5.y, false)){ endy5 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball6.x, l18.ball6.y, false)){ endy6 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball7.x, l18.ball7.y, false)){ endy7 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball8.x, l18.ball8.y, false)){ endy8 = true; }; if (l18.l18Map.bigPoint2.hitTestPoint(l18.ball9.x, l18.ball9.y, false)){ endy9 = true; }; if ((((((((((((((((((((endy0 == true)) && ((endy1 == true)))) && ((endy2 == true)))) && ((endy3 == true)))) && ((endy4 == true)))) && ((endy5 == true)))) && ((endy6 == true)))) && ((endy7 == true)))) && ((endy8 == true)))) && ((endy9 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ comp18(); end18(); }; } public function click6(_arg1:MouseEvent){ if (gotoL >= 6){ gotoAndStop((6 + 6)); endd(); }; } public function click18(_arg1:MouseEvent){ if (gotoL >= 18){ gotoAndStop((18 + 6)); endd(); }; } public function loopSeven(_arg1:Event){ if (l7.l7Map.endPoint1.hitTestPoint(l7.ball1.x, l7.ball1.y, false)){ endy1 = true; l7.l7Map.endPoint1.gotoAndStop(2); }; if (l7.l7Map.endPoint2.hitTestPoint(l7.ball2.x, l7.ball2.y, false)){ endy2 = true; l7.l7Map.endPoint2.gotoAndStop(2); }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if ((((endy1 == true)) && ((endy2 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ comp7(); end7(); }; } public function goto233(_arg1:MouseEvent):void{ switch (_arg1.target){ case gamezheroLogoBtn: GamezheroApi.navigateTo(GamezheroApi.MORE_GAMES_FROM_LOGO); break; }; } public function click20(_arg1:MouseEvent){ if (gotoL >= 20){ gotoAndStop((20 + 6)); endd(); }; } public function loopTwenty(_arg1:Event){ bb++; times = Math.round((bb / 30)); timee.o.text = String(times); hit1 = false; hit2 = false; if (l20.l20Map.endPoint1.hitTestPoint(l20.ball1.x, l20.ball1.y, false)){ hit1 = true; }; if (l20.l20Map.endPoint2.hitTestPoint(l20.ball2.x, l20.ball2.y, false)){ hit2 = true; }; if (l20.l20Map.endPoint1.hitTestPoint(l20.ball2.x, l20.ball2.y, false)){ hit1 = true; }; if (l20.l20Map.endPoint2.hitTestPoint(l20.ball1.x, l20.ball1.y, false)){ hit2 = true; }; if ((((hit1 == true)) && ((hit2 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer >= 100){ comp20(); end20(); }; } public function loopSix(_arg1:Event){ if (l6.l6Map.endPoint1.hitTestPoint(l6.ball1.x, l6.ball1.y, false)){ endy1 = true; l6.l6Map.endPoint1.gotoAndStop(2); }; if (l6.l6Map.endPointW.hitTestPoint(l6.ballW.x, l6.ballW.y, false)){ endy2 = true; l6.l6Map.endPointW.gotoAndStop(2); }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if ((((((endy1 == true)) && ((endy2 == true)))) && ((l6.ballW.y < 550)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); pass = true; timer = (timer + 1); }; if (timer > 0){ timer++; } else { if (l6.ballW.y > 550){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("fail"); timer = (timer + 1); }; }; if (timer >= 100){ end6(); }; } public function loopFour(_arg1:Event){ if (l4.l4Map.endPoint1.hitTestPoint(l4.ball1.x, l4.ball1.y, false)){ hit1 = true; }; if (l4.l4Map.endPoint2.hitTestPoint(l4.ball2.x, l4.ball2.y, false)){ hit2 = true; }; bb++; times = Math.round((bb / 30)); timee.o.text = String(times); if ((((hit1 == true)) && ((hit2 == true)))){ thisLev.tex.text = GamezheroDictionary.getTranslationByName("comp"); timer = (timer + 1); }; if (timer > 0){ timer++; }; if (timer == 100){ comp4(); end4(); }; } public function goBack(_arg1:MouseEvent){ endd(); gotoAndStop(2); } public function goBac(_arg1:MouseEvent){ gotoAndStop(2); removeEventListener(MouseEvent.CLICK, goBac); } } }//package gamezheroApiExampleAS3_fla
Section 165
//more_6 (gamezheroApiExampleAS3_fla.more_6) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; import com.gamezhero.api.as3.*; public dynamic class more_6 extends MovieClip { public var bo:TextField; public function more_6(){ addFrameScript(0, frame1); } function frame1(){ bo.text = GamezheroDictionary.getTranslationByName("score"); } } }//package gamezheroApiExampleAS3_fla
Section 166
//stattext_4 (gamezheroApiExampleAS3_fla.stattext_4) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; import com.gamezhero.api.as3.*; public dynamic class stattext_4 extends MovieClip { public var bo:TextField; public function stattext_4(){ addFrameScript(0, frame1); } function frame1(){ bo.text = GamezheroDictionary.getTranslationByName("start"); } } }//package gamezheroApiExampleAS3_fla
Section 167
//stattextcopy_18 (gamezheroApiExampleAS3_fla.stattextcopy_18) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; import com.gamezhero.api.as3.*; public dynamic class stattextcopy_18 extends MovieClip { public var bo:TextField; public function stattextcopy_18(){ addFrameScript(0, frame1); } function frame1(){ bo.text = GamezheroDictionary.getTranslationByName("help"); } } }//package gamezheroApiExampleAS3_fla
Section 168
//Symbol2_26 (gamezheroApiExampleAS3_fla.Symbol2_26) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; import com.gamezhero.api.as3.*; public dynamic class Symbol2_26 extends MovieClip { public var bo:TextField; public function Symbol2_26(){ addFrameScript(0, frame1); } function frame1(){ bo.text = GamezheroDictionary.getTranslationByName("back"); } } }//package gamezheroApiExampleAS3_fla
Section 169
//timeo_32 (gamezheroApiExampleAS3_fla.timeo_32) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; public dynamic class timeo_32 extends MovieClip { public var o:TextField; public function timeo_32(){ addFrameScript(0, frame1); } function frame1(){ o.selectable = false; } } }//package gamezheroApiExampleAS3_fla
Section 170
//timer_21 (gamezheroApiExampleAS3_fla.timer_21) package gamezheroApiExampleAS3_fla { import flash.display.*; import flash.text.*; public dynamic class timer_21 extends MovieClip { public var o:TextField; public function timer_21(){ addFrameScript(0, frame1); } function frame1(){ o.selectable = false; } } }//package gamezheroApiExampleAS3_fla
Section 171
//bg2d (bg2d) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; import Box2D.Dynamics.Contacts.*; public class bg2d extends Sprite { var m_world:b2World; var body:b2Body; var mouseJoint:b2MouseJoint; var m_iterations:int;// = 10 var bd:b2BodyDef; var m_timeStep:Number;// = 0.0333333333333333 var the_pivot:b2CircleDef; var the_rev_joint:b2RevoluteJointDef; var the_box:b2PolygonDef; var maze:Array; public function bg2d(){ var _local5:Sprite; var _local6:b2DebugDraw; var _local9:b2PolygonDef; var _local13:*; var _local14:b2Body; var _local15:b2CircleDef; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [["#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#"], ["#", ".", ".", ".", ".", ".", ".", ".", ".", ".", "#", ".", "#", "#", ".", "#", ".", ".", ".", ".", ".", ".", ".", "#", ".", ".", "#"], ["#", ".", "#", "#", ".", "#", "#", "#", "#", ".", "#", ".", ".", "#", ".", "#", ".", "#", ".", "#", "#", "#", ".", "#", ".", "#", "#"], ["#", ".", "#", ".", ".", "#", ".", ".", ".", ".", "#", ".", "#", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", "#", "#"], ["#", ".", "#", "#", ".", "#", ".", "#", "#", ".", ".", ".", ".", ".", ".", "#", ".", "#", ".", "#", ".", "#", ".", ".", ".", ".", "#"], ["#", ".", ".", ".", ".", "#", ".", "#", "#", ".", "#", "#", "#", ".", ".", "#", ".", ".", ".", "#", ".", "#", ".", "#", ".", "#", "#"], ["#", ".", "#", "#", "#", "#", ".", "#", "#", ".", "#", ".", ".", ".", ".", ".", ".", "#", "#", "#", ".", "#", ".", "#", ".", "#", "#"], ["#", ".", "#", ".", ".", ".", ".", "#", "#", "#", "#", "#", "#", ".", "#", ".", "#", "#", ".", ".", ".", ".", ".", "#", ".", "#", "#"], ["#", ".", "#", ".", "#", "#", ".", ".", ".", ".", ".", ".", ".", ".", "#", ".", "#", "#", ".", "#", "#", "#", ".", ".", ".", ".", "#"], ["#", ".", "#", ".", "#", "#", ".", "#", ".", "#", "#", ".", "#", ".", "#", ".", "#", "#", ".", "#", ".", ".", ".", "#", "#", ".", "#"], ["#", ".", "#", ".", ".", ".", ".", "#", ".", ".", "#", ".", "#", ".", "#", ".", ".", "#", ".", "#", ".", "#", "#", "#", "#", ".", "#"], ["#", ".", ".", "#", ".", "#", "#", "#", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", ".", ".", ".", ".", ".", "#", "#", ".", "#"], ["#", "#", ".", "#", ".", ".", ".", ".", ".", ".", ".", ".", "#", "#", "#", ".", "#", "#", ".", "#", "#", ".", "#", "#", "#", ".", "#"], ["#", "#", ".", "#", ".", "#", "#", "#", "#", "#", "#", ".", ".", ".", ".", ".", ".", "#", ".", "#", ".", ".", ".", ".", ".", "#", "#"], ["#", "#", ".", "#", ".", ".", ".", ".", ".", ".", "#", ".", "#", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", "#", "#"], ["#", "#", ".", ".", ".", "#", ".", "#", "#", ".", ".", ".", ".", ".", ".", "#", ".", ".", ".", "#", ".", "#", ".", "#", ".", "#", "#"], ["#", "#", "#", "#", ".", "#", ".", "#", "#", ".", "#", ".", "#", "#", "#", "#", ".", "#", "#", "#", ".", ".", ".", "#", ".", "#", "#"], ["#", ".", ".", ".", ".", "#", ".", ".", ".", ".", "#", ".", ".", "#", ".", "#", ".", ".", ".", ".", ".", "#", ".", "#", ".", "#", "#"], ["#", "#", ".", "#", ".", "#", ".", "#", "#", ".", "#", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", "#", "#"], ["#", ".", ".", "#", ".", "#", ".", "#", "#", ".", "#", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", "#", ".", ".", ".", ".", "#"], ["#", ".", "#", ".", ".", "#", ".", "#", "#", ".", ".", ".", ".", ".", ".", ".", ".", "#", "#", ".", ".", "#", ".", "#", ".", "#", "#"], ["#", ".", "#", "#", ".", "#", ".", "#", "#", ".", "#", ".", "#", "#", "#", "#", ".", "#", ".", "#", "#", "#", ".", "#", ".", "#", "#"], ["#", ".", "#", "#", ".", ".", ".", ".", ".", ".", "#", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "#", ".", ".", "#"], ["#", ".", "#", ".", ".", "#", ".", "#", "#", ".", ".", ".", ".", ".", ".", ".", ".", "#", "#", ".", ".", "#", ".", "#", "#", ".", "#"], ["#", ".", "#", "#", ".", "#", ".", "#", "#", ".", "#", ".", "#", "#", "#", "#", ".", "#", ".", "#", "#", "#", ".", "#", "#", ".", "#"], ["#", ".", "#", "#", ".", ".", ".", ".", ".", ".", "#", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", "#"], ["#", "#", "#", "#", "#", "#", "#", "#", "#", "#", ".", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#"]]; super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(0, 0); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); _local5 = new Sprite(); addChild(_local5); _local6 = new b2DebugDraw(); var _local7:Sprite = new Sprite(); _local5.addChild(_local7); _local6.m_sprite = _local5; _local6.m_drawScale = 30; _local6.m_alpha = 1; _local6.m_fillAlpha = 1; _local6.m_lineThickness = 0; _local6.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); m_world.SetDebugDraw(_local6); var _local8 = 1; while (_local8 < 6) { _local13 = new b2BodyDef(); _local13.position.x = ((Math.random() * 20) - 5); _local13.position.y = ((Math.random() * 20) - 5); _local13.angle = 0; _local13.isBullet = false; _local13.userData = new Sprite(); _local14 = m_world.CreateBody(_local13); _local15 = new b2CircleDef(); _local15.radius = 0.32; _local15.density = 1; _local15.friction = 0.8; _local15.restitution = 0.1; _local14.CreateShape(_local15); _local14.SetMassFromShapes(); _local8++; }; _local13 = new b2BodyDef(); _local13.position.Set(-3.5, -4.5); _local13.userData = new Sprite(); _local13.userData.name = "map"; var _local10:b2Body = m_world.CreateBody(_local13); var _local11:* = 0; while (_local11 < 27) { _local8 = 0; while (_local8 < 27) { if (maze[_local11][_local8] == "#"){ _local9 = new b2PolygonDef(); _local9.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local8, _local11), 0); _local9.density = 0.5; _local9.friction = 0.5; _local9.restitution = 0.2; _local10.CreateShape(_local9); }; _local8++; }; _local11++; }; _local10.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local10, new b2Vec2(9, 7)); the_rev_joint.maxMotorTorque = 50000; the_rev_joint.motorSpeed = 0.4; the_rev_joint.enableMotor = true; var _local12:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function Update(_arg1:Event):void{ m_world.Step(m_timeStep, m_iterations); } } }//package
Section 172
//block (block) package { import flash.display.*; public dynamic class block extends MovieClip { public var endPoint:MovieClip; } }//package
Section 173
//level1 (level1) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level1 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var s_timeStep:Number;// = 0.0333333333333333 var blocks:Array; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var l1Map:block; private var mousePVec:b2Vec2; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; var the_pivot:b2CircleDef; var doit:Number;// = 0 var the_box:b2PolygonDef; public var ball:myBall; public function level1(){ var _local8:b2PolygonDef; var _local12:Number; var _local13:Number; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); blocks = new Array(new Array(4.5, 0.5, 4, 0), new Array(4.5, 0.5, 4, 8), new Array(0.5, 4.5, 0, 4), new Array(0.5, 4.5, 8, 4), new Array(3.5, 0.5, 3, 2), new Array(1.5, 0.5, 3, 4), new Array(2.5, 0.5, 4, 6), new Array(0.5, 2.5, 6, 4), new Array(0.5, 1.5, 2, 5)); mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createTrigg); stage.addEventListener(MouseEvent.MOUSE_UP, destroyTrigg); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 15); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10.8, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(7, 5.5); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 1; _local7.restitution = 0.2; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(6, 4); _local5.linearDamping = 1; _local5.angularDamping = 1; _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.groupIndex = -2; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < blocks.length) { _local8 = new b2PolygonDef(); _local12 = blocks[_local10][2]; _local13 = blocks[_local10][3]; _local8.SetAsOrientedBox(blocks[_local10][0], blocks[_local10][1], new b2Vec2(_local12, _local13), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse():void{ var _local2:b2MouseJointDef; var _local1:b2Body = GetBodyAtMouse(); if (_local1){ _local2 = new b2MouseJointDef(); _local2.body1 = m_world.GetGroundBody(); _local2.body2 = _local1; _local2.target.Set((mouseX / 30), (mouseY / 30)); _local2.maxForce = 1000000; _local2.timeStep = s_timeStep; mouseJoint = (m_world.CreateJoint(_local2) as b2MouseJoint); }; } public function destroyMouse():void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l1Map.x = (_local3.x * 30); l1Map.y = (_local3.y * 30); l1Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); ball.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } public function createTrigg(_arg1:MouseEvent):void{ createMouse(); } public function destroyTrigg(_arg1:MouseEvent):void{ destroyMouse(); } } }//package
Section 174
//level10 (level10) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level10 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var l10Map:MovieClip; public var ball1:myBall; public var ball2:myBall; private var mousePVec:b2Vec2; var the_rev_joint:b2RevoluteJointDef; var mouseJoint:b2MouseJoint; var body:b2Body; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; var maze:Array; public function level10(){ var _local8:b2PolygonDef; var _local12:*; var _local13:b2CircleDef; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(14, 12); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(6, 11); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball2"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.categoryBits = 0; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); }; if (maze[_local10][_local12] == 2){ _local13 = new b2CircleDef(); _local13.radius = 1; _local13.density = 10.5; _local13.localPosition.Set(_local10, _local10); _local13.restitution = 0.2; _local9.CreateShape(_local13); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:b2Vec2; var _local6:*; var _local7:*; var _local8:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l10Map.x = (_local3.x * 30); l10Map.y = (_local3.y * 30); l10Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); ball2.rotation = ((_local4 * (180 / Math.PI)) % 360); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local6 = (mouseX / 30); _local7 = (mouseY / 30); _local8 = new b2Vec2(_local6, _local7); mouseJoint.SetTarget(_local8); }; } } }//package
Section 175
//level11 (level11) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level11 extends Sprite { var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 var m_world:b2World; public var ball1:myBall; public var ball2:myBall; private var mousePVec:b2Vec2; var body:b2Body; var mouseJoint:b2MouseJoint; var the_rev_joint:b2RevoluteJointDef; public var l11Map:MovieClip; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; var maze:Array; public function level11(){ var _local8:b2PolygonDef; var _local12:*; var _local13:b2CircleDef; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 0); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(14, 12); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(6, 4); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball2"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.categoryBits = 0; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); }; if (maze[_local10][_local12] == 2){ _local13 = new b2CircleDef(); _local13.radius = 1; _local13.density = 10.5; _local13.localPosition.Set(_local10, _local10); _local13.restitution = 0.2; _local9.CreateShape(_local13); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:b2Vec2; var _local6:*; var _local7:*; var _local8:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l11Map.x = (_local3.x * 30); l11Map.y = (_local3.y * 30); l11Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); _local5 = new b2Vec2(-4, (0 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); ball2.rotation = ((_local4 * (180 / Math.PI)) % 360); _local5 = new b2Vec2(4, (0 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local6 = (mouseX / 30); _local7 = (mouseY / 30); _local8 = new b2Vec2(_local6, _local7); mouseJoint.SetTarget(_local8); }; } } }//package
Section 176
//level12 (level12) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level12 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 public var l12Map:MovieClip; var blocksW:Array; public var ball1:myBall; var m_timeStep:Number;// = 0.0333333333333333 var the_rev_joint:b2RevoluteJointDef; private var mousePVec:b2Vec2; var body:b2Body; var mouseJoint:b2MouseJoint; var mazeW:Array; var the_pivot:b2CircleDef; public var ballW:MovieClip; var the_box:b2PolygonDef; var maze:Array; public function level12(){ var _local8:b2PolygonDef; var _local11:*; var _local13:Number; var _local14:Number; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]; mazeW = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]; blocksW = new Array(new Array(0.5, 1, 1, 6.5), new Array(4.5, 1.5, 5, 5)); mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(10, 8); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.maskBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(10, 6); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ballW"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.userData = new Sprite(); _local5.isBullet = false; _local5.angularDamping = 1; _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(5, 5), 0); _local8.density = 0; _local8.filter.maskBits = 0; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local11 = 0; while (_local11 < 11) { if (maze[_local10][_local11] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local11, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local8.filter.maskBits = 1; _local9.CreateShape(_local8); }; _local11++; }; _local10++; }; _local11 = 0; while (_local11 < blocksW.length) { _local8 = new b2PolygonDef(); _local13 = blocksW[_local11][2]; _local14 = blocksW[_local11][3]; _local8.SetAsOrientedBox(blocksW[_local11][0], blocksW[_local11][1], new b2Vec2(_local13, _local14), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local8.filter.maskBits = 2; _local9.CreateShape(_local8); _local11++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local12:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l12Map.x = (_local3.x * 30); l12Map.y = (_local3.y * 30); l12Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ballW"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ballW.x = (_local3.x * 30); ballW.y = (_local3.y * 30); ballW.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } } }//package
Section 177
//level13 (level13) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level13 extends Sprite { var m_world:b2World; var bd:b2BodyDef; public var ball:myBall; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 private var mousePVec:b2Vec2; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; public var l13Map:MovieClip; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; var maze:Array; public function level13(){ var _local8:b2PolygonDef; var _local12:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(8, 11); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.categoryBits = 0; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.53, 0.53, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l13Map.x = (_local3.x * 30); l13Map.y = (_local3.y * 30); l13Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); ball.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 178
//level14 (level14) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level14 extends Sprite { var m_world:b2World; var bd:b2BodyDef; public var l14Map:MovieClip; var maze:Array; var m_timeStep:Number;// = 0.0333333333333333 var m_iterations:int;// = 10 public var endPoint1:MovieClip; public var endPoint2:MovieClip; public var endPoint3:MovieClip; public var endPoint4:MovieClip; public var endPoint5:MovieClip; public var endPoint6:MovieClip; public var endPoint7:MovieClip; public var endPoint8:MovieClip; public var endPoint9:MovieClip; var mouseJoint:b2MouseJoint; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; private var mousePVec:b2Vec2; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; public var ball:myBall; public function level14(){ var _local7:*; var _local8:b2Body; var _local9:b2CircleDef; var _local10:b2PolygonDef; var _local12:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:Number = 0; var _local6:* = 0; while (_local6 < 3) { _local12 = 0; while (_local12 < 3) { _local7 = new b2BodyDef(); _local7.position.Set(((_local12 * 2) + 8), ((_local6 * 2) + 6)); _local7.angle = 0; _local7.isBullet = true; _local7.userData = new Sprite(); _local5++; _local7.userData.name = String(("end" + _local5)); _local8 = m_world.CreateBody(_local7); _local9 = new b2CircleDef(); _local9.radius = 0.2; _local9.density = 1; _local9.friction = 0.8; _local9.restitution = 0.1; _local9.filter.categoryBits = 1; _local8.CreateShape(_local9); _local8.SetMassFromShapes(); _local12++; }; _local6++; }; _local7 = new b2BodyDef(); _local7.position.Set(8, 11); _local7.angle = 0; _local7.isBullet = true; _local7.userData = new Sprite(); _local7.userData.name = "ball1"; _local8 = m_world.CreateBody(_local7); _local9 = new b2CircleDef(); _local9.radius = 0.32; _local9.density = 1; _local9.friction = 0.8; _local9.restitution = 0.1; _local9.filter.categoryBits = 1; _local8.CreateShape(_local9); _local8.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.Set(5, 3); _local7.isBullet = false; _local7.userData = new Sprite(); _local7.userData.name = "map"; var _local11:b2Body = m_world.CreateBody(_local7); _local10 = new b2PolygonDef(); _local10.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local10.density = 0; _local10.filter.categoryBits = 0; _local10.friction = 0.5; _local10.restitution = 0.2; _local11.CreateShape(_local10); _local12 = 0; while (_local12 < 11) { _local6 = 0; while (_local6 < 11) { if (maze[_local12][_local6] == 1){ _local10 = new b2PolygonDef(); _local10.SetAsOrientedBox(0.53, 0.53, new b2Vec2(_local6, _local12), 0); _local10.density = 0.5; _local10.friction = 0.5; _local10.restitution = 0.2; _local11.CreateShape(_local10); }; _local6++; }; _local12++; }; _local11.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local11, new b2Vec2(10, 8)); var _local13:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l14Map.x = (_local3.x * 30); l14Map.y = (_local3.y * 30); l14Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); ball.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "end1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint1.x = (_local3.x * 30); endPoint1.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "end2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint2.x = (_local3.x * 30); endPoint2.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "end3"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint3.x = (_local3.x * 30); endPoint3.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "end4"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint4.x = (_local3.x * 30); endPoint4.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "end5"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint5.x = (_local3.x * 30); endPoint5.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "end6"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint6.x = (_local3.x * 30); endPoint6.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "end7"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint7.x = (_local3.x * 30); endPoint7.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "end8"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint8.x = (_local3.x * 30); endPoint8.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "end9"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); endPoint9.x = (_local3.x * 30); endPoint9.y = (_local3.y * 30); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } } }//package
Section 179
//level15 (level15) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level15 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var maze:Array; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var ball1:MovieClip; public var ball2:MovieClip; public var ball3:MovieClip; public var ball4:MovieClip; public var ball5:MovieClip; public var ball6:MovieClip; public var ball8:MovieClip; public var ball9:MovieClip; public var ball7:MovieClip; var the_rev_joint:b2RevoluteJointDef; private var mousePVec:b2Vec2; var body:b2Body; var mouseJoint:b2MouseJoint; public var l15Map:MovieClip; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; public var ball:myBall; public function level15(){ var _local7:*; var _local8:b2Body; var _local9:b2CircleDef; var _local10:b2PolygonDef; var _local12:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1], [1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1], [1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1], [1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1], [1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1], [1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 17); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:Number = 0; var _local6:* = 0; while (_local6 < 3) { _local12 = 0; while (_local12 < 3) { _local7 = new b2BodyDef(); _local7.position.Set((_local12 + 8), (_local6 + 10)); _local7.angle = 0; _local7.isBullet = true; _local7.userData = new Sprite(); _local5++; _local7.userData.name = String(("ball" + _local5)); _local8 = m_world.CreateBody(_local7); _local9 = new b2CircleDef(); _local9.radius = 0.32; _local9.density = 1; _local9.friction = 0.8; _local9.restitution = 0.1; _local9.filter.categoryBits = 1; _local8.CreateShape(_local9); _local8.SetMassFromShapes(); _local12++; }; _local6++; }; _local7 = new b2BodyDef(); _local7.position.Set(7, 7); _local7.angle = 0; _local7.isBullet = true; _local7.userData = new Sprite(); _local7.userData.name = "ball"; _local8 = m_world.CreateBody(_local7); _local9 = new b2CircleDef(); _local9.radius = 0.32; _local9.density = 1; _local9.friction = 0.8; _local9.restitution = 0.1; _local9.filter.categoryBits = 1; _local8.CreateShape(_local9); _local8.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.Set(5, 3); _local7.isBullet = false; _local7.userData = new Sprite(); _local7.userData.name = "map"; var _local11:b2Body = m_world.CreateBody(_local7); _local10 = new b2PolygonDef(); _local10.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local10.density = 0; _local10.filter.categoryBits = 0; _local10.friction = 0.5; _local10.restitution = 0.2; _local11.CreateShape(_local10); _local12 = 0; while (_local12 < 11) { _local6 = 0; while (_local6 < 11) { if (maze[_local12][_local6] == 1){ _local10 = new b2PolygonDef(); _local10.SetAsOrientedBox(0.53, 0.53, new b2Vec2(_local6, _local12), 0); _local10.density = 0.5; _local10.friction = 0.5; _local10.restitution = 0.2; _local11.CreateShape(_local10); }; _local6++; }; _local12++; }; _local11.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local11, new b2Vec2(10, 8)); var _local13:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:b2Vec2; var _local6:*; var _local7:*; var _local8:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l15Map.x = (_local3.x * 30); l15Map.y = (_local3.y * 30); l15Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); ball.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball3"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball3.x = (_local3.x * 30); ball3.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball4"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball4.x = (_local3.x * 30); ball4.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball5"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball5.x = (_local3.x * 30); ball5.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball6"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball6.x = (_local3.x * 30); ball6.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball7"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball7.x = (_local3.x * 30); ball7.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball8"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball8.x = (_local3.x * 30); ball8.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball9"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball9.x = (_local3.x * 30); ball9.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local6 = (mouseX / 30); _local7 = (mouseY / 30); _local8 = new b2Vec2(_local6, _local7); mouseJoint.SetTarget(_local8); }; } } }//package
Section 180
//level16 (level16) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level16 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var ball1:myBall; private var mousePVec:b2Vec2; public var l16Map:MovieClip; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; var the_pivot:b2CircleDef; public var ballW:MovieClip; var the_box:b2PolygonDef; var maze:Array; public function level16(){ var _local7:b2PolygonDef; var _local11:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(9, 7); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ballW"; body = m_world.CreateBody(_local5); var _local6:b2CircleDef = new b2CircleDef(); _local6.radius = 0.32; _local6.density = 1; _local6.friction = 0.8; _local6.restitution = 0.1; _local6.filter.categoryBits = 2; body.CreateShape(_local6); body.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.userData = new Sprite(); _local5.isBullet = false; _local5.angularDamping = 1; _local5.userData.name = "map"; var _local8:b2Body = m_world.CreateBody(_local5); _local7 = new b2PolygonDef(); _local7.SetAsOrientedBox(12.5, 12.5, new b2Vec2(5, 5), 0); _local7.density = 0; _local7.filter.maskBits = 0; _local7.friction = 0.5; _local7.restitution = 0.2; _local8.CreateShape(_local7); var _local9:* = 0; while (_local9 < 11) { _local11 = 0; while (_local11 < 11) { if (maze[_local9][_local11] == 1){ _local7 = new b2PolygonDef(); _local7.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local11, _local9), 0); _local7.density = 0.5; _local7.friction = 0.5; _local7.restitution = 0.2; _local7.filter.maskBits = 2; _local8.CreateShape(_local7); }; _local11++; }; _local9++; }; _local8.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local8, new b2Vec2(10, 8)); var _local10:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2Body; var _local4:b2MouseJointDef; var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = GetBodyAtMouse(); if (_local3){ _local4 = new b2MouseJointDef(); _local4.body1 = m_world.GetGroundBody(); _local4.body2 = _local3; _local4.target.Set((mouseX / 30), (mouseY / 30)); _local4.maxForce = 30000; _local4.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local4) as b2MouseJoint); }; }; }; _local2 = _local2.m_next; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l16Map.x = (_local3.x * 30); l16Map.y = (_local3.y * 30); l16Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ballW"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ballW.x = (_local3.x * 30); ballW.y = (_local3.y * 30); ballW.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 181
//level17 (level17) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level17 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 private var mousePVec:b2Vec2; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; public var l17Map:MovieClip; var the_pivot:b2CircleDef; public var ballW:MovieClip; var the_box:b2PolygonDef; var maze:Array; public function level17(){ var _local7:b2PolygonDef; var _local11:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 19); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(9, 7); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ballW"; body = m_world.CreateBody(_local5); var _local6:b2CircleDef = new b2CircleDef(); _local6.radius = 0.32; _local6.density = 1; _local6.friction = 0.8; _local6.restitution = 0.1; _local6.filter.categoryBits = 2; body.CreateShape(_local6); body.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.userData = new Sprite(); _local5.isBullet = false; _local5.angularDamping = 1; _local5.userData.name = "map"; var _local8:b2Body = m_world.CreateBody(_local5); _local7 = new b2PolygonDef(); _local7.SetAsOrientedBox(12.5, 12.5, new b2Vec2(5, 5), 0); _local7.density = 0; _local7.filter.maskBits = 0; _local7.friction = 0.5; _local7.restitution = 0.2; _local8.CreateShape(_local7); var _local9:* = 0; while (_local9 < 11) { _local11 = 0; while (_local11 < 11) { if (maze[_local9][_local11] == 1){ _local7 = new b2PolygonDef(); _local7.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local11, _local9), 0); _local7.density = 0.5; _local7.friction = 0.5; _local7.restitution = 0.2; _local7.filter.maskBits = 2; _local8.CreateShape(_local7); }; _local11++; }; _local9++; }; _local8.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local8, new b2Vec2(10, 8)); var _local10:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2Body; var _local4:b2MouseJointDef; var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = GetBodyAtMouse(); if (_local3){ _local4 = new b2MouseJointDef(); _local4.body1 = m_world.GetGroundBody(); _local4.body2 = _local3; _local4.target.Set((mouseX / 30), (mouseY / 30)); _local4.maxForce = 30000; _local4.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local4) as b2MouseJoint); }; }; }; _local2 = _local2.m_next; }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l17Map.x = (_local3.x * 30); l17Map.y = (_local3.y * 30); l17Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ballW"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ballW.x = (_local3.x * 30); ballW.y = (_local3.y * 30); ballW.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 182
//level18 (level18) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level18 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var maze:Array; var m_iterations:int;// = 10 public var l18Map:MovieClip; var m_timeStep:Number;// = 0.0333333333333333 public var ball1:myBall; public var ball2:myBall; public var ball3:myBall; public var ball4:myBall; public var ball5:myBall; public var ball6:myBall; public var ball7:myBall; public var ball8:myBall; public var ball9:myBall; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; private var mousePVec:b2Vec2; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; public var ball:myBall; public function level18(){ var _local7:*; var _local8:b2Body; var _local9:b2CircleDef; var _local10:b2PolygonDef; var _local12:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1], [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1], [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1], [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1], [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:Number = 0; var _local6:* = 0; while (_local6 < 3) { _local12 = 0; while (_local12 < 3) { _local7 = new b2BodyDef(); _local7.position.Set(((_local12 * 2) + 8), ((_local6 * 2) + 6)); _local7.angle = 0; _local7.isBullet = true; _local7.userData = new Sprite(); _local5++; _local7.userData.name = String(("ball" + _local5)); _local8 = m_world.CreateBody(_local7); _local9 = new b2CircleDef(); _local9.radius = 0.32; _local9.density = 1; _local9.friction = 0.8; _local9.restitution = 0.1; _local9.filter.categoryBits = 1; _local8.CreateShape(_local9); _local8.SetMassFromShapes(); _local12++; }; _local6++; }; _local7 = new b2BodyDef(); _local7.position.Set(8, 11); _local7.angle = 0; _local7.isBullet = true; _local7.userData = new Sprite(); _local7.userData.name = "ball"; _local8 = m_world.CreateBody(_local7); _local9 = new b2CircleDef(); _local9.radius = 0.32; _local9.density = 1; _local9.friction = 0.8; _local9.restitution = 0.1; _local9.filter.categoryBits = 1; _local8.CreateShape(_local9); _local8.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.Set(5, 3); _local7.isBullet = false; _local7.userData = new Sprite(); _local7.userData.name = "map"; var _local11:b2Body = m_world.CreateBody(_local7); _local10 = new b2PolygonDef(); _local10.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local10.density = 0; _local10.filter.categoryBits = 0; _local10.friction = 0.5; _local10.restitution = 0.2; _local11.CreateShape(_local10); _local12 = 0; while (_local12 < 11) { _local6 = 0; while (_local6 < 11) { if (maze[_local12][_local6] == 1){ _local10 = new b2PolygonDef(); _local10.SetAsOrientedBox(0.53, 0.53, new b2Vec2(_local6, _local12), 0); _local10.density = 0.5; _local10.friction = 0.5; _local10.restitution = 0.2; _local11.CreateShape(_local10); }; _local6++; }; _local12++; }; _local11.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local11, new b2Vec2(10, 8)); var _local13:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:b2Vec2; var _local6:*; var _local7:*; var _local8:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l18Map.x = (_local3.x * 30); l18Map.y = (_local3.y * 30); l18Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); ball.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball3"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball3.x = (_local3.x * 30); ball3.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball4"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball4.x = (_local3.x * 30); ball4.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball5"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball5.x = (_local3.x * 30); ball5.y = (_local3.y * 30); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball6"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball6.x = (_local3.x * 30); ball6.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball7"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball7.x = (_local3.x * 30); ball7.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball8"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball8.x = (_local3.x * 30); ball8.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball9"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball9.x = (_local3.x * 30); ball9.y = (_local3.y * 30); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local6 = (mouseX / 30); _local7 = (mouseY / 30); _local8 = new b2Vec2(_local6, _local7); mouseJoint.SetTarget(_local8); }; } } }//package
Section 183
//level19 (level19) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level19 extends Sprite { public var ball1:MovieClip; public var ball2:MovieClip; public var ball3:MovieClip; public var ball4:MovieClip; public var ball5:MovieClip; public var ball6:MovieClip; public var ball7:MovieClip; public var ball8:MovieClip; public var ball9:MovieClip; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; public var l19Map:MovieClip; var maze:Array; var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var ball10:MovieClip; public var ball11:MovieClip; public var ball12:MovieClip; public var ball13:MovieClip; public var ball14:MovieClip; public var ball15:MovieClip; public var ball16:MovieClip; public var ball17:MovieClip; public var ball18:MovieClip; private var mousePVec:b2Vec2; var mouseJoint:b2MouseJoint; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; public var ball:myBall; public function level19(){ var _local7:*; var _local8:b2Body; var _local9:b2CircleDef; var _local10:b2PolygonDef; var _local13:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 17); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:Number = 0; var _local6:* = 0; while (_local6 < 2) { _local13 = 0; while (_local13 < 9) { _local7 = new b2BodyDef(); _local7.position.Set((_local13 + 6), ((_local6 / 2) + 11)); _local7.angle = 0; _local7.isBullet = true; _local7.userData = new Sprite(); _local5++; _local7.userData.name = String(("ball" + _local5)); _local8 = m_world.CreateBody(_local7); _local9 = new b2CircleDef(); _local9.radius = 0.32; _local9.density = 1; _local9.friction = 0.8; _local9.restitution = 0.1; _local9.filter.categoryBits = 1; _local8.CreateShape(_local9); _local8.SetMassFromShapes(); _local13++; }; _local6++; }; _local7 = new b2BodyDef(); _local7.position.Set(6, 5); _local7.angle = 0; _local7.isBullet = true; _local7.userData = new Sprite(); _local7.userData.name = "ball"; _local8 = m_world.CreateBody(_local7); _local9 = new b2CircleDef(); _local9.radius = 0.32; _local9.density = 1; _local9.friction = 0.8; _local9.restitution = 0.1; _local9.filter.categoryBits = 1; _local8.CreateShape(_local9); _local8.SetMassFromShapes(); _local7 = new b2BodyDef(); _local7.position.Set(5, 3); _local7.isBullet = false; _local7.userData = new Sprite(); _local7.userData.name = "map"; var _local11:b2Body = m_world.CreateBody(_local7); _local10 = new b2PolygonDef(); _local10.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local10.density = 0; _local10.filter.categoryBits = 0; _local10.friction = 0.5; _local10.restitution = 0.2; _local11.CreateShape(_local10); _local6 = 0; while (_local6 < 11) { _local13 = 0; while (_local13 < 11) { if (maze[_local6][_local13] == 1){ _local10 = new b2PolygonDef(); _local10.SetAsOrientedBox(0.53, 0.53, new b2Vec2(_local13, _local6), 0); _local10.density = 0.5; _local10.friction = 0.5; _local10.restitution = 0.2; _local11.CreateShape(_local10); }; _local13++; }; _local6++; }; _local11.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local11, new b2Vec2(10, 8)); var _local12:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroy19(){ removeEventListener(Event.ENTER_FRAME, Update); stage.removeEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.removeEventListener(MouseEvent.MOUSE_UP, destroyMouse); } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:b2Vec2; var _local6:*; var _local7:*; var _local8:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l19Map.x = (_local3.x * 30); l19Map.y = (_local3.y * 30); l19Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); ball.rotation = ((_local4 * (180 / Math.PI)) % 360); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball3"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball3.x = (_local3.x * 30); ball3.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball4"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball4.x = (_local3.x * 30); ball4.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball5"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball5.x = (_local3.x * 30); ball5.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball6"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball6.x = (_local3.x * 30); ball6.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball7"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball7.x = (_local3.x * 30); ball7.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball8"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball8.x = (_local3.x * 30); ball8.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball9"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball9.x = (_local3.x * 30); ball9.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball10"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball10.x = (_local3.x * 30); ball10.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball11"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball11.x = (_local3.x * 30); ball11.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball12"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball12.x = (_local3.x * 30); ball12.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball13"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball13.x = (_local3.x * 30); ball13.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball14"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball14.x = (_local3.x * 30); ball14.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball15"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball15.x = (_local3.x * 30); ball15.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball16"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball16.x = (_local3.x * 30); ball16.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball17"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball17.x = (_local3.x * 30); ball17.y = (_local3.y * 30); }; if (_local2.GetUserData().name == "ball18"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball18.x = (_local3.x * 30); ball18.y = (_local3.y * 30); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local6 = (mouseX / 30); _local7 = (mouseY / 30); _local8 = new b2Vec2(_local6, _local7); mouseJoint.SetTarget(_local8); }; } } }//package
Section 184
//level2 (level2) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level2 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var blocks:Array; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 private var mousePVec:b2Vec2; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; var the_pivot:b2CircleDef; public var l2Map:MovieClip; var the_box:b2PolygonDef; public var ball:myBall; public function level2(){ var _local8:b2PolygonDef; var _local12:Number; var _local13:Number; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); blocks = new Array(new Array(5.5, 0.5, 5, 0), new Array(5.5, 0.5, 5, 10), new Array(0.5, 5.5, 0, 5), new Array(0.5, 5.5, 10, 5), new Array(4.5, 0.5, 4, 2), new Array(2, 1, 6.5, 2.5), new Array(4, 0.5, 6.5, 5), new Array(1, 1, 2.5, 4.5), new Array(2, 2, 1.5, 8.5), new Array(2, 1.5, 8.5, 7), new Array(2, 0.5, 6.5, 6), new Array(2, 1.5, 3.5, 9)); mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(6, 4.6); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.groupIndex = -2; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < blocks.length) { _local8 = new b2PolygonDef(); _local12 = blocks[_local10][2]; _local13 = blocks[_local10][3]; _local8.SetAsOrientedBox(blocks[_local10][0], blocks[_local10][1], new b2Vec2(_local12, _local13), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l2Map.x = (_local3.x * 30); l2Map.y = (_local3.y * 30); l2Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); ball.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 185
//level20 (level20) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level20 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var l20Map:MovieClip; public var ball2:myBall; private var mousePVec:b2Vec2; public var ball1:myBall; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; var maze:Array; public function level20(){ var _local8:b2PolygonDef; var _local12:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1], [1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1], [1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(8, 11); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(12, 6); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball2"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.categoryBits = 0; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:b2Vec2; var _local6:*; var _local7:*; var _local8:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l20Map.x = (_local3.x * 30); l20Map.y = (_local3.y * 30); l20Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); ball2.rotation = ((_local4 * (180 / Math.PI)) % 360); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local6 = (mouseX / 30); _local7 = (mouseY / 30); _local8 = new b2Vec2(_local6, _local7); mouseJoint.SetTarget(_local8); }; } } }//package
Section 186
//level3 (level3) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level3 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var blocks:Array; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var l3Map:MovieClip; private var mousePVec:b2Vec2; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; public var ball:myBall; public function level3(){ var _local8:b2PolygonDef; var _local12:Number; var _local13:Number; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); blocks = new Array(new Array(5.5, 0.5, 5, 0), new Array(5.5, 0.5, 5, 10), new Array(0.5, 5.5, 0, 5), new Array(0.5, 5.5, 10, 5), new Array(4.5, 0.5, 6, 8), new Array(4.5, 0.5, 4, 6), new Array(4.5, 0.5, 6, 4), new Array(4.5, 0.5, 4, 2)); mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(6, 4.6); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.groupIndex = -2; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < blocks.length) { _local8 = new b2PolygonDef(); _local12 = blocks[_local10][2]; _local13 = blocks[_local10][3]; _local8.SetAsOrientedBox(blocks[_local10][0], blocks[_local10][1], new b2Vec2(_local12, _local13), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l3Map.x = (_local3.x * 30); l3Map.y = (_local3.y * 30); l3Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 187
//level4 (level4) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level4 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var ball1:myBall; public var ball2:myBall; private var mousePVec:b2Vec2; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; public var l4Map:MovieClip; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; var maze:Array; public function level4(){ var _local8:b2PolygonDef; var _local12:*; var _local13:b2CircleDef; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(14, 12); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(10, 11); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball2"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.groupIndex = -2; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); }; if (maze[_local10][_local12] == 2){ _local13 = new b2CircleDef(); _local13.radius = 1; _local13.density = 10.5; _local13.localPosition.Set(_local10, _local10); _local13.restitution = 0.2; _local9.CreateShape(_local13); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l4Map.x = (_local3.x * 30); l4Map.y = (_local3.y * 30); l4Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); ball2.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 188
//level5 (level5) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level5 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var ball1:myBall; public var ball2:myBall; private var mousePVec:b2Vec2; public var l5Map:MovieClip; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; var maze:Array; public function level5(){ var _local8:b2PolygonDef; var _local12:*; var _local13:b2CircleDef; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(6, 4.6); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(14, 4.3); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball2"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.groupIndex = -2; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); }; if (maze[_local10][_local12] == 2){ _local13 = new b2CircleDef(); _local13.radius = 1; _local13.density = 10.5; _local13.localPosition.Set(_local10, _local10); _local13.restitution = 0.2; _local9.CreateShape(_local13); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l5Map.x = (_local3.x * 30); l5Map.y = (_local3.y * 30); l5Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); ball2.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 189
//level6 (level6) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level6 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var ball1:myBall; private var mousePVec:b2Vec2; var mazeW:Array; var the_rev_joint:b2RevoluteJointDef; var body:b2Body; var mouseJoint:b2MouseJoint; public var l6Map:MovieClip; var the_pivot:b2CircleDef; public var ballW:MovieClip; var the_box:b2PolygonDef; var maze:Array; public function level6(){ var _local8:b2PolygonDef; var _local12:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1], [1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mazeW = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(6, 12); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.maskBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(8, 8); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ballW"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(5, 5), 0); _local8.density = 0; _local8.filter.maskBits = 0; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local8.filter.maskBits = 1; _local9.CreateShape(_local8); }; _local12++; }; _local10++; }; _local10 = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (mazeW[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local8.filter.categoryBits = 2; _local9.CreateShape(_local8); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l6Map.x = (_local3.x * 30); l6Map.y = (_local3.y * 30); l6Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ballW"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ballW.x = (_local3.x * 30); ballW.y = (_local3.y * 30); ballW.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 190
//level7 (level7) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level7 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var l7Map:MovieClip; public var ball1:myBall; public var ball2:myBall; private var mousePVec:b2Vec2; var the_rev_joint:b2RevoluteJointDef; var mouseJoint:b2MouseJoint; var body:b2Body; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; var maze:Array; public function level7(){ var _local8:b2PolygonDef; var _local12:*; var _local13:b2CircleDef; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(6, 4.6); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(8, 8); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball2"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.groupIndex = -2; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); }; if (maze[_local10][_local12] == 2){ _local13 = new b2CircleDef(); _local13.radius = 1; _local13.density = 10.5; _local13.localPosition.Set(_local10, _local10); _local13.restitution = 0.2; _local9.CreateShape(_local13); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:b2Vec2; var _local6:*; var _local7:*; var _local8:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l7Map.x = (_local3.x * 30); l7Map.y = (_local3.y * 30); l7Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); ball2.rotation = ((_local4 * (180 / Math.PI)) % 360); _local5 = new b2Vec2(0, (-32 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local6 = (mouseX / 30); _local7 = (mouseY / 30); _local8 = new b2Vec2(_local6, _local7); mouseJoint.SetTarget(_local8); }; } } }//package
Section 191
//level8 (level8) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level8 extends Sprite { var bd:b2BodyDef; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 var m_world:b2World; public var ball1:myBall; public var ball2:myBall; private var mousePVec:b2Vec2; var body:b2Body; var mouseJoint:b2MouseJoint; var the_rev_joint:b2RevoluteJointDef; public var l8Map:MovieClip; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; var maze:Array; public function level8(){ var _local8:b2PolygonDef; var _local12:*; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.categoryBits = 0; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(6, 9); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball1"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(8, 4); _local5.angle = 0; _local5.isBullet = true; _local5.userData = new Sprite(); _local5.userData.name = "ball2"; _local6 = m_world.CreateBody(_local5); _local7 = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0.1; _local7.filter.categoryBits = 1; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(5, 5), 0); _local8.density = 0; _local8.filter.categoryBits = 0; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < 11) { _local12 = 0; while (_local12 < 11) { if (maze[_local10][_local12] == 1){ _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(0.5, 0.5, new b2Vec2(_local12, _local10), 0); _local8.filter.categoryBits = 2; _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); }; _local12++; }; _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:b2Vec2; var _local6:*; var _local7:*; var _local8:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l8Map.x = (_local3.x * 30); l8Map.y = (_local3.y * 30); l8Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball1"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball1.x = (_local3.x * 30); ball1.y = (_local3.y * 30); ball1.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball2"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball2.x = (_local3.x * 30); ball2.y = (_local3.y * 30); ball2.rotation = ((_local4 * (180 / Math.PI)) % 360); _local5 = new b2Vec2(0, (-36 * _local2.GetMass())); _local2.ApplyForce(_local5, _local2.GetWorldCenter()); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local6 = (mouseX / 30); _local7 = (mouseY / 30); _local8 = new b2Vec2(_local6, _local7); mouseJoint.SetTarget(_local8); }; } } }//package
Section 192
//level9 (level9) package { import Box2D.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; import flash.display.*; import flash.events.*; public class level9 extends Sprite { var m_world:b2World; var bd:b2BodyDef; var blocks:Array; var m_iterations:int;// = 10 var m_timeStep:Number;// = 0.0333333333333333 public var l9Map:MovieClip; var the_rev_joint:b2RevoluteJointDef; private var mousePVec:b2Vec2; var body:b2Body; var mouseJoint:b2MouseJoint; var the_pivot:b2CircleDef; var the_box:b2PolygonDef; public var ball:myBall; public function level9(){ var _local8:b2PolygonDef; var _local12:Number; var _local13:Number; the_box = new b2PolygonDef(); the_pivot = new b2CircleDef(); the_rev_joint = new b2RevoluteJointDef(); blocks = new Array(new Array(5, 0.5, 5, 0), new Array(5, 0.5, 5, 10), new Array(0.5, 5, 0, 5), new Array(0.5, 5, 10, 5)); mousePVec = new b2Vec2(); super(); addEventListener(Event.ENTER_FRAME, Update, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_DOWN, createMouse); stage.addEventListener(MouseEvent.MOUSE_UP, destroyMouse); var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-100, -100); _local1.upperBound.Set(100, 100); var _local2:b2Vec2 = new b2Vec2(0, 18); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); the_pivot.radius = 0.5; the_pivot.filter.groupIndex = -2; the_pivot.density = 0; bd = new b2BodyDef(); bd.position.Set(10, 8); var _local4:b2Body = m_world.CreateBody(bd); _local4.CreateShape(the_pivot); _local4.SetMassFromShapes(); var _local5:* = new b2BodyDef(); _local5.position.Set(6, 4.6); _local5.angle = 0; _local5.isBullet = false; _local5.userData = new Sprite(); _local5.userData.name = "ball"; var _local6:b2Body = m_world.CreateBody(_local5); var _local7:b2CircleDef = new b2CircleDef(); _local7.radius = 0.32; _local7.density = 1; _local7.friction = 0.8; _local7.restitution = 0; _local7.filter.groupIndex = -2; _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local5 = new b2BodyDef(); _local5.position.Set(5, 3); _local5.isBullet = false; _local5.angularDamping = 1; _local5.userData = new Sprite(); _local5.userData.name = "map"; var _local9:b2Body = m_world.CreateBody(_local5); _local8 = new b2PolygonDef(); _local8.SetAsOrientedBox(12.5, 12.5, new b2Vec2(4, 4), 0); _local8.density = 0; _local8.filter.groupIndex = -2; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); var _local10:* = 0; while (_local10 < blocks.length) { _local8 = new b2PolygonDef(); _local12 = blocks[_local10][2]; _local13 = blocks[_local10][3]; _local8.SetAsOrientedBox(blocks[_local10][0], blocks[_local10][1], new b2Vec2(_local12, _local13), 0); _local8.density = 0.5; _local8.friction = 0.5; _local8.restitution = 0.2; _local9.CreateShape(_local8); _local10++; }; _local9.SetMassFromShapes(); the_rev_joint.Initialize(_local4, _local9, new b2Vec2(10, 8)); var _local11:b2RevoluteJoint = (m_world.CreateJoint(the_rev_joint) as b2RevoluteJoint); } public function createMouse(_arg1:MouseEvent):void{ var _local3:b2MouseJointDef; var _local2:b2Body = GetBodyAtMouse(); if (_local2){ _local3 = new b2MouseJointDef(); _local3.body1 = m_world.GetGroundBody(); _local3.body2 = _local2; _local3.target.Set((mouseX / 30), (mouseY / 30)); _local3.maxForce = 30000; _local3.timeStep = m_timeStep; mouseJoint = (m_world.CreateJoint(_local3) as b2MouseJoint); }; } public function destroyMouse(_arg1:MouseEvent):void{ if (mouseJoint){ m_world.DestroyJoint(mouseJoint); mouseJoint = null; }; } public function GetBodyAtMouse(_arg1:Boolean=false):b2Body{ var _local10:b2Shape; var _local11:Boolean; var _local2:* = (mouseX / 30); var _local3:* = (mouseY / 30); mousePVec.Set(_local2, _local3); var _local4:b2AABB = new b2AABB(); _local4.lowerBound.Set((_local2 - 0.001), (_local3 - 0.001)); _local4.upperBound.Set((_local2 + 0.001), (_local3 + 0.001)); var _local5 = 10; var _local6:Array = new Array(); var _local7:int = m_world.Query(_local4, _local6, _local5); var _local8:b2Body; var _local9:int; while (_local9 < _local7) { if ((((_local6[_local9].GetBody().IsStatic() == false)) || (_arg1))){ _local10 = (_local6[_local9] as b2Shape); _local11 = (_local6[_local9] as b2Shape).TestPoint(_local10.GetBody().GetXForm(), mousePVec); if (_local11){ _local8 = _local10.GetBody(); break; }; }; _local9++; }; if (_local8.GetUserData().name == "map"){ return (_local8); }; _local8 = null; return (_local8); } public function Update(_arg1:Event):void{ var _local3:b2Vec2; var _local4:Number; var _local5:*; var _local6:*; var _local7:b2Vec2; m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if (_local2.GetUserData() != null){ if (_local2.GetUserData().name == "map"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); l9Map.x = (_local3.x * 30); l9Map.y = (_local3.y * 30); l9Map.rotation = ((_local4 * (180 / Math.PI)) % 360); }; if (_local2.GetUserData().name == "ball"){ _local3 = _local2.GetPosition(); _local4 = _local2.GetAngle(); ball.x = (_local3.x * 30); ball.y = (_local3.y * 30); ball.rotation = ((_local4 * (180 / Math.PI)) % 360); }; }; _local2 = _local2.m_next; }; if (mouseJoint){ _local5 = (mouseX / 30); _local6 = (mouseY / 30); _local7 = new b2Vec2(_local5, _local6); mouseJoint.SetTarget(_local7); }; } } }//package
Section 193
//levelB (levelB) package { import flash.display.*; public dynamic class levelB extends SimpleButton { } }//package
Section 194
//levelNum (levelNum) package { import flash.display.*; import flash.text.*; public dynamic class levelNum extends MovieClip { public var whatNum:TextField; } }//package
Section 195
//myBall (myBall) package { import flash.display.*; public dynamic class myBall extends MovieClip { } }//package
Section 196
//song (song) package { import flash.media.*; public dynamic class song extends Sound { } }//package

Library Items

Symbol 1 Sound {song}
Symbol 2 FontUsed by:3 80 82 86 89 92 116 120 123 124 126 129 130 132 133 134 135 136 137 138 144 146 147 152 159 160 161 162
Symbol 3 EditableTextUses:2Used by:4
Symbol 4 MovieClip {levelNum}Uses:3
Symbol 5 GraphicUsed by:8
Symbol 6 GraphicUsed by:8
Symbol 7 GraphicUsed by:8
Symbol 8 Button {levelB}Uses:5 6 7
Symbol 9 GraphicUsed by:15
Symbol 10 GraphicUsed by:14 24
Symbol 11 GraphicUsed by:14
Symbol 12 GraphicUsed by:14 16
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}Uses:10 11 12 13Used by:15 19 24 41 56 59 62 68 77 142 150 154 157
Symbol 15 MovieClipUses:9 14Used by:17
Symbol 16 MovieClip {myBall}Uses:12Used by:17 22 26 39 42 48 54 57 60 63 66 69 72 75 78 143 151 155 158
Symbol 17 MovieClip {level20}Uses:15 16Used by:Timeline
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClipUses:18 14Used by:22
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClipUses:20Used by:22 42
Symbol 22 MovieClip {level19}Uses:19 16 21Used by:Timeline
Symbol 23 GraphicUsed by:25
Symbol 24 ButtonUses:14 10Used by:25
Symbol 25 MovieClipUses:23 24Used by:26
Symbol 26 MovieClip {level18}Uses:25 16Used by:Timeline
Symbol 27 GraphicUsed by:31
Symbol 28 GraphicUsed by:30
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}Uses:28 29Used by:31 74
Symbol 31 MovieClipUses:27 30Used by:34
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:34 39 57 75
Symbol 34 MovieClip {level17}Uses:31 33Used by:Timeline
Symbol 35 GraphicUsed by:38
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:38 56  Timeline
Symbol 38 MovieClipUses:35 37Used by:39
Symbol 39 MovieClip {level16}Uses:38 33 16Used by:Timeline
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40 14Used by:42
Symbol 42 MovieClip {level15}Uses:41 16 21Used by:Timeline
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:48
Symbol 45 GraphicUsed by:47
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}Uses:45 46Used by:48 74
Symbol 48 MovieClip {level14}Uses:44 16 47Used by:Timeline
Symbol 49 GraphicUsed by:53
Symbol 50 GraphicUsed by:52
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}Uses:50 51Used by:53 65 71
Symbol 53 MovieClipUses:49 52Used by:54
Symbol 54 MovieClip {level13}Uses:53 16Used by:Timeline
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:55 14 37Used by:57
Symbol 57 MovieClip {level12}Uses:56 33 16Used by:Timeline
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClipUses:58 14Used by:60
Symbol 60 MovieClip {level11}Uses:59 16Used by:Timeline
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClipUses:61 14Used by:63
Symbol 63 MovieClip {level10}Uses:62 16Used by:Timeline
Symbol 64 GraphicUsed by:65
Symbol 65 MovieClipUses:64 52Used by:66
Symbol 66 MovieClip {level9}Uses:65 16Used by:Timeline
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67 14Used by:69
Symbol 69 MovieClip {level8}Uses:68 16Used by:Timeline
Symbol 70 GraphicUsed by:71
Symbol 71 MovieClipUses:70 52Used by:72
Symbol 72 MovieClip {level7}Uses:71 16Used by:Timeline
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClipUses:73 30 47Used by:75
Symbol 75 MovieClip {level6}Uses:74 33 16Used by:Timeline
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClipUses:76 14Used by:78
Symbol 78 MovieClip {level5}Uses:77 16Used by:Timeline
Symbol 79 MovieClip {bg2d}Used by:Timeline
Symbol 80 EditableTextUses:2Used by:81
Symbol 81 MovieClipUses:80Used by:Timeline
Symbol 82 EditableTextUses:2Used by:83
Symbol 83 MovieClip {gamezheroApiExampleAS3_fla.stattext_4}Uses:82Used by:85
Symbol 84 GraphicUsed by:85 88 91 118 122 128 140
Symbol 85 ButtonUses:83 84Used by:Timeline
Symbol 86 EditableTextUses:2Used by:87
Symbol 87 MovieClip {gamezheroApiExampleAS3_fla.more_6}Uses:86Used by:88
Symbol 88 ButtonUses:87 84Used by:Timeline
Symbol 89 EditableTextUses:2Used by:90
Symbol 90 MovieClip {gamezheroApiExampleAS3_fla.infotext_8}Uses:89Used by:91
Symbol 91 ButtonUses:90 84Used by:Timeline
Symbol 92 EditableTextUses:2Used by:Timeline
Symbol 93 GraphicUsed by:99
Symbol 94 GraphicUsed by:96
Symbol 95 GraphicUsed by:96 98
Symbol 96 ButtonUses:94 95Used by:99
Symbol 97 GraphicUsed by:98
Symbol 98 ButtonUses:97 95Used by:99
Symbol 99 MovieClipUses:93 96 98Used by:Timeline
Symbol 100 GraphicUsed by:101 105
Symbol 101 MovieClipUses:100Used by:105
Symbol 102 GraphicUsed by:105
Symbol 103 GraphicUsed by:104 105
Symbol 104 MovieClipUses:103Used by:105
Symbol 105 ButtonUses:101 102 104 100 103Used by:Timeline
Symbol 106 BitmapUsed by:107
Symbol 107 GraphicUses:106Used by:110
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:110
Symbol 110 ButtonUses:107 109Used by:Timeline
Symbol 111 BitmapUsed by:112
Symbol 112 GraphicUses:111Used by:115
Symbol 113 BitmapUsed by:114
Symbol 114 GraphicUses:113Used by:115
Symbol 115 ButtonUses:112 114Used by:Timeline
Symbol 116 EditableTextUses:2Used by:117
Symbol 117 MovieClip {gamezheroApiExampleAS3_fla.stattextcopy_18}Uses:116Used by:118
Symbol 118 ButtonUses:117 84Used by:Timeline
Symbol 119 GraphicUsed by:Timeline
Symbol 120 EditableTextUses:2Used by:121
Symbol 121 MovieClip {gamezheroApiExampleAS3_fla.backTexty_20}Uses:120Used by:122
Symbol 122 ButtonUses:121 84Used by:Timeline
Symbol 123 EditableTextUses:2Used by:Timeline
Symbol 124 EditableTextUses:2Used by:125
Symbol 125 MovieClip {gamezheroApiExampleAS3_fla.timer_21}Uses:124Used by:Timeline
Symbol 126 EditableTextUses:2Used by:127
Symbol 127 MovieClip {gamezheroApiExampleAS3_fla.bsackTextycopy_23}Uses:126Used by:128
Symbol 128 ButtonUses:127 84Used by:Timeline
Symbol 129 EditableTextUses:2Used by:Timeline
Symbol 130 EditableTextUses:2Used by:Timeline
Symbol 131 GraphicUsed by:Timeline
Symbol 132 EditableTextUses:2Used by:Timeline
Symbol 133 EditableTextUses:2Used by:Timeline
Symbol 134 EditableTextUses:2Used by:Timeline
Symbol 135 EditableTextUses:2Used by:Timeline
Symbol 136 EditableTextUses:2Used by:Timeline
Symbol 137 EditableTextUses:2Used by:Timeline
Symbol 138 EditableTextUses:2Used by:139
Symbol 139 MovieClip {gamezheroApiExampleAS3_fla.Symbol2_26}Uses:138Used by:140
Symbol 140 ButtonUses:139 84Used by:Timeline
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClip {block}Uses:141 14Used by:143
Symbol 143 MovieClip {level1}Uses:142 16Used by:Timeline
Symbol 144 EditableTextUses:2Used by:145
Symbol 145 MovieClipUses:144Used by:Timeline
Symbol 146 EditableTextUses:2Used by:Timeline
Symbol 147 EditableTextUses:2Used by:148
Symbol 148 MovieClip {gamezheroApiExampleAS3_fla.timeo_32}Uses:147Used by:Timeline
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClipUses:149 14Used by:151
Symbol 151 MovieClip {level2}Uses:150 16Used by:Timeline
Symbol 152 EditableTextUses:2Used by:Timeline
Symbol 153 GraphicUsed by:154
Symbol 154 MovieClipUses:153 14Used by:155
Symbol 155 MovieClip {level3}Uses:154 16Used by:Timeline
Symbol 156 GraphicUsed by:157
Symbol 157 MovieClipUses:156 14Used by:158
Symbol 158 MovieClip {level4}Uses:157 16Used by:Timeline
Symbol 159 EditableTextUses:2Used by:Timeline
Symbol 160 EditableTextUses:2Used by:Timeline
Symbol 161 EditableTextUses:2Used by:Timeline
Symbol 162 EditableTextUses:2Used by:Timeline

Instance Names

"titleText"Frame 2Symbol 81 MovieClip
"startButton"Frame 2Symbol 85 Button
"moreButton"Frame 2Symbol 88 Button
"infoButton"Frame 2Symbol 91 Button
"mu"Frame 2Symbol 92 EditableText
"gib"Frame 2Symbol 99 MovieClip
"gamezheroLogoBtn"Frame 2Symbol 105 Button
"twitterBtn"Frame 2Symbol 110 Button
"facebookBtn"Frame 2Symbol 115 Button
"helpButton"Frame 2Symbol 118 Button
"back"Frame 3Symbol 122 Button
"titleText"Frame 3Symbol 81 MovieClip
"gamezheroLogoBtn"Frame 3Symbol 105 Button
"bob"Frame 3Symbol 123 EditableText
"timee"Frame 3Symbol 125 MovieClip {gamezheroApiExampleAS3_fla.timer_21}
"sub"Frame 3Symbol 128 Button
"dod"Frame 3Symbol 129 EditableText
"mu"Frame 3Symbol 130 EditableText
"gib"Frame 3Symbol 99 MovieClip
"mDes"Frame 4Symbol 132 EditableText
"endv"Frame 4Symbol 133 EditableText
"end1v"Frame 4Symbol 134 EditableText
"end2v"Frame 4Symbol 135 EditableText
"titleText"Frame 5Symbol 81 MovieClip
"by"Frame 5Symbol 136 EditableText
"bo"Frame 5Symbol 137 EditableText
"back"Frame 7Symbol 140 Button
"l1"Frame 7Symbol 143 MovieClip {level1}
"thisLev"Frame 7Symbol 145 MovieClip
"tr"Frame 7Symbol 146 EditableText
"timee"Frame 7Symbol 125 MovieClip {gamezheroApiExampleAS3_fla.timer_21}
"timeo"Frame 7Symbol 148 MovieClip {gamezheroApiExampleAS3_fla.timeo_32}
"gamezheroLogoBtn"Frame 7Symbol 105 Button
"l2"Frame 8Symbol 151 MovieClip {level2}
"tr"Frame 8Symbol 152 EditableText
"l3"Frame 9Symbol 155 MovieClip {level3}
"l4"Frame 10Symbol 158 MovieClip {level4}
"tr"Frame 10Symbol 159 EditableText
"l5"Frame 11Symbol 78 MovieClip {level5}
"l6"Frame 12Symbol 75 MovieClip {level6}
"tr"Frame 12Symbol 160 EditableText
"l7"Frame 13Symbol 72 MovieClip {level7}
"l8"Frame 14Symbol 69 MovieClip {level8}
"timeo"Frame 14Symbol 148 MovieClip {gamezheroApiExampleAS3_fla.timeo_32}
"l9"Frame 15Symbol 66 MovieClip {level9}
"l10"Frame 16Symbol 63 MovieClip {level10}
"l11"Frame 17Symbol 60 MovieClip {level11}
"l12"Frame 18Symbol 57 MovieClip {level12}
"tr"Frame 18Symbol 161 EditableText
"l13"Frame 19Symbol 54 MovieClip {level13}
"l14"Frame 20Symbol 48 MovieClip {level14}
"l15"Frame 21Symbol 42 MovieClip {level15}
"tr"Frame 21Symbol 162 EditableText
"l16"Frame 22Symbol 39 MovieClip {level16}
"l17"Frame 23Symbol 34 MovieClip {level17}
"l18"Frame 24Symbol 26 MovieClip {level18}
"l19"Frame 25Symbol 22 MovieClip {level19}
"l20"Frame 26Symbol 17 MovieClip {level20}
"whatNum"Symbol 4 MovieClip {levelNum} Frame 1Symbol 3 EditableText
"endPoint2"Symbol 15 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"endPoint1"Symbol 15 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l20Map"Symbol 17 MovieClip {level20} Frame 1Symbol 15 MovieClip
"ball1"Symbol 17 MovieClip {level20} Frame 1Symbol 16 MovieClip {myBall}
"ball2"Symbol 17 MovieClip {level20} Frame 1Symbol 16 MovieClip {myBall}
"endPoint"Symbol 19 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l19Map"Symbol 22 MovieClip {level19} Frame 1Symbol 19 MovieClip
"ball"Symbol 22 MovieClip {level19} Frame 1Symbol 16 MovieClip {myBall}
"ball6"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball5"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball4"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball1"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball2"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball3"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball9"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball8"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball7"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball12"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball10"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball11"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball13"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball15"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball14"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball16"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball17"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"ball18"Symbol 22 MovieClip {level19} Frame 1Symbol 21 MovieClip
"bigPoint2"Symbol 25 MovieClip Frame 1Symbol 24 Button
"bigPoint"Symbol 25 MovieClip Frame 1Symbol 24 Button
"l18Map"Symbol 26 MovieClip {level18} Frame 1Symbol 25 MovieClip
"ball"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball6"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball5"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball4"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball1"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball2"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball3"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball9"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball8"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"ball7"Symbol 26 MovieClip {level18} Frame 1Symbol 16 MovieClip {myBall}
"endPoint6"Symbol 31 MovieClip Frame 1Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}
"endPoint2"Symbol 31 MovieClip Frame 1Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}
"endPoint7"Symbol 31 MovieClip Frame 1Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}
"endPoint1"Symbol 31 MovieClip Frame 1Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}
"endPoint3"Symbol 31 MovieClip Frame 1Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}
"endPoint4"Symbol 31 MovieClip Frame 1Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}
"endPoint5"Symbol 31 MovieClip Frame 1Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}
"l17Map"Symbol 34 MovieClip {level17} Frame 1Symbol 31 MovieClip
"ballW"Symbol 34 MovieClip {level17} Frame 1Symbol 33 MovieClip
"endPointW"Symbol 38 MovieClip Frame 1Symbol 37 MovieClip
"l16Map"Symbol 39 MovieClip {level16} Frame 1Symbol 38 MovieClip
"ballW"Symbol 39 MovieClip {level16} Frame 1Symbol 33 MovieClip
"ball1"Symbol 39 MovieClip {level16} Frame 1Symbol 16 MovieClip {myBall}
"endPoint"Symbol 41 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l15Map"Symbol 42 MovieClip {level15} Frame 1Symbol 41 MovieClip
"ball"Symbol 42 MovieClip {level15} Frame 1Symbol 16 MovieClip {myBall}
"ball6"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"ball5"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"ball4"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"ball1"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"ball2"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"ball3"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"ball9"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"ball8"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"ball7"Symbol 42 MovieClip {level15} Frame 1Symbol 21 MovieClip
"l14Map"Symbol 48 MovieClip {level14} Frame 1Symbol 44 MovieClip
"ball"Symbol 48 MovieClip {level14} Frame 1Symbol 16 MovieClip {myBall}
"endPoint6"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint5"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint4"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint1"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint2"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint3"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint9"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint8"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint7"Symbol 48 MovieClip {level14} Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"endPoint6"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint5"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint4"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint1"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint2"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint3"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint9"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint8"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint7"Symbol 53 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"l13Map"Symbol 54 MovieClip {level13} Frame 1Symbol 53 MovieClip
"ball"Symbol 54 MovieClip {level13} Frame 1Symbol 16 MovieClip {myBall}
"endPoint1"Symbol 56 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"endPointW"Symbol 56 MovieClip Frame 1Symbol 37 MovieClip
"l12Map"Symbol 57 MovieClip {level12} Frame 1Symbol 56 MovieClip
"ballW"Symbol 57 MovieClip {level12} Frame 1Symbol 33 MovieClip
"ball1"Symbol 57 MovieClip {level12} Frame 1Symbol 16 MovieClip {myBall}
"endPoint1"Symbol 59 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"endPoint2"Symbol 59 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l11Map"Symbol 60 MovieClip {level11} Frame 1Symbol 59 MovieClip
"ball1"Symbol 60 MovieClip {level11} Frame 1Symbol 16 MovieClip {myBall}
"ball2"Symbol 60 MovieClip {level11} Frame 1Symbol 16 MovieClip {myBall}
"endPoint1"Symbol 62 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"endPoint2"Symbol 62 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l10Map"Symbol 63 MovieClip {level10} Frame 1Symbol 62 MovieClip
"ball1"Symbol 63 MovieClip {level10} Frame 1Symbol 16 MovieClip {myBall}
"ball2"Symbol 63 MovieClip {level10} Frame 1Symbol 16 MovieClip {myBall}
"endPoint"Symbol 65 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"l9Map"Symbol 66 MovieClip {level9} Frame 1Symbol 65 MovieClip
"ball"Symbol 66 MovieClip {level9} Frame 1Symbol 16 MovieClip {myBall}
"endPoint1"Symbol 68 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"endPoint2"Symbol 68 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l8Map"Symbol 69 MovieClip {level8} Frame 1Symbol 68 MovieClip
"ball1"Symbol 69 MovieClip {level8} Frame 1Symbol 16 MovieClip {myBall}
"ball2"Symbol 69 MovieClip {level8} Frame 1Symbol 16 MovieClip {myBall}
"endPoint1"Symbol 71 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"endPoint2"Symbol 71 MovieClip Frame 1Symbol 52 MovieClip {gamezheroApiExampleAS3_fla.endSwitch_48}
"l7Map"Symbol 72 MovieClip {level7} Frame 1Symbol 71 MovieClip
"ball1"Symbol 72 MovieClip {level7} Frame 1Symbol 16 MovieClip {myBall}
"ball2"Symbol 72 MovieClip {level7} Frame 1Symbol 16 MovieClip {myBall}
"endPointW"Symbol 74 MovieClip Frame 1Symbol 30 MovieClip {gamezheroApiExampleAS3_fla.endSwitchW_43}
"endPoint1"Symbol 74 MovieClip Frame 1Symbol 47 MovieClip {gamezheroApiExampleAS3_fla.endSwitchH_44}
"l6Map"Symbol 75 MovieClip {level6} Frame 1Symbol 74 MovieClip
"ballW"Symbol 75 MovieClip {level6} Frame 1Symbol 33 MovieClip
"ball1"Symbol 75 MovieClip {level6} Frame 1Symbol 16 MovieClip {myBall}
"endPoint1"Symbol 77 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"endPoint2"Symbol 77 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l5Map"Symbol 78 MovieClip {level5} Frame 1Symbol 77 MovieClip
"ball1"Symbol 78 MovieClip {level5} Frame 1Symbol 16 MovieClip {myBall}
"ball2"Symbol 78 MovieClip {level5} Frame 1Symbol 16 MovieClip {myBall}
"bo"Symbol 83 MovieClip {gamezheroApiExampleAS3_fla.stattext_4} Frame 1Symbol 82 EditableText
"bo"Symbol 87 MovieClip {gamezheroApiExampleAS3_fla.more_6} Frame 1Symbol 86 EditableText
"bo"Symbol 90 MovieClip {gamezheroApiExampleAS3_fla.infotext_8} Frame 1Symbol 89 EditableText
"musicON"Symbol 99 MovieClip Frame 1Symbol 96 Button
"musicOFF"Symbol 99 MovieClip Frame 1Symbol 98 Button
"bo"Symbol 117 MovieClip {gamezheroApiExampleAS3_fla.stattextcopy_18} Frame 1Symbol 116 EditableText
"bo"Symbol 121 MovieClip {gamezheroApiExampleAS3_fla.backTexty_20} Frame 1Symbol 120 EditableText
"o"Symbol 125 MovieClip {gamezheroApiExampleAS3_fla.timer_21} Frame 1Symbol 124 EditableText
"bo"Symbol 127 MovieClip {gamezheroApiExampleAS3_fla.bsackTextycopy_23} Frame 1Symbol 126 EditableText
"bo"Symbol 139 MovieClip {gamezheroApiExampleAS3_fla.Symbol2_26} Frame 1Symbol 138 EditableText
"endPoint"Symbol 142 MovieClip {block} Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l1Map"Symbol 143 MovieClip {level1} Frame 1Symbol 142 MovieClip {block}
"ball"Symbol 143 MovieClip {level1} Frame 1Symbol 16 MovieClip {myBall}
"tex"Symbol 145 MovieClip Frame 1Symbol 144 EditableText
"o"Symbol 148 MovieClip {gamezheroApiExampleAS3_fla.timeo_32} Frame 1Symbol 147 EditableText
"endPoint"Symbol 150 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l2Map"Symbol 151 MovieClip {level2} Frame 1Symbol 150 MovieClip
"ball"Symbol 151 MovieClip {level2} Frame 1Symbol 16 MovieClip {myBall}
"endPoint"Symbol 154 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l3Map"Symbol 155 MovieClip {level3} Frame 1Symbol 154 MovieClip
"ball"Symbol 155 MovieClip {level3} Frame 1Symbol 16 MovieClip {myBall}
"endPoint1"Symbol 157 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"endPoint2"Symbol 157 MovieClip Frame 1Symbol 14 MovieClip {gamezheroApiExampleAS3_fla.endLevel_29}
"l4Map"Symbol 158 MovieClip {level4} Frame 1Symbol 157 MovieClip
"ball1"Symbol 158 MovieClip {level4} Frame 1Symbol 16 MovieClip {myBall}
"ball2"Symbol 158 MovieClip {level4} Frame 1Symbol 16 MovieClip {myBall}

Special Tags

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




http://swfchan.com/24/117477/info.shtml
Created: 7/3 -2019 18:27:21 Last modified: 7/3 -2019 18:27:21 Server time: 05/05 -2024 19:25:42