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

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

Snow Truck.swf

This is the info page for
Flash #131236

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


ActionScript [AS3]
Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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
//b2ConcaveArcDef (Box2D.Collision.Shapes.b2ConcaveArcDef) package Box2D.Collision.Shapes { public class b2ConcaveArcDef extends b2PolygonDef { public var radius:Number; public function b2ConcaveArcDef(){ type = b2Shape.e_concaveArcShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 4
//b2ConcaveArcShape (Box2D.Collision.Shapes.b2ConcaveArcShape) package Box2D.Collision.Shapes { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2ConcaveArcShape extends b2PolygonShape { public var m_radius:Number; public var m_radius2:Number; public var m_arcCenter:b2Vec2; public var m_dot:Number; public var m_norm:Number; public function b2ConcaveArcShape(_arg1:b2ShapeDef){ var _local11:Number; var _local12:Number; super(_arg1); var _local2:b2ConcaveArcDef = (_arg1 as b2ConcaveArcDef); m_radius = _local2.radius; m_radius2 = (m_radius * m_radius); var _local3:b2Vec2 = m_vertices[0]; var _local4:b2Vec2 = m_vertices[1]; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); var _local7:Number = ((_local5 * _local5) + (_local6 * _local6)); var _local8:Number = Math.sqrt(_local7); if ((_local7 / 4) > m_radius2){ m_radius2 = (_local7 / 4); m_radius = (_local8 / 2); }; var _local9:Number = Math.sqrt((m_radius2 - (_local7 * 0.25))); m_arcCenter = new b2Vec2((((_local3.x + _local4.x) / 2) + (_local9 * m_normals[0].x)), (((_local3.y + _local4.y) / 2) + (_local9 * m_normals[0].y))); m_dot = (_local9 / m_radius); m_norm = ((_local8 / 2) / m_radius); var _local10:Number = ((m_radius + b2Settings.b2_toiSlop) * (m_radius + b2Settings.b2_toiSlop)); _local11 = m_normals[(m_vertexCount - 1)].x; _local12 = m_normals[(m_vertexCount - 1)].y; _local5 = (m_coreVertices[0].x - m_arcCenter.x); _local6 = (m_coreVertices[0].y - m_arcCenter.y); _local8 = ((_local5 * _local11) + (_local6 * _local12)); _local7 = Math.sqrt((_local10 - (_local8 * _local8))); m_coreVertices[0].x = ((m_arcCenter.x + (_local8 * _local11)) + (_local7 * _local12)); m_coreVertices[0].y = ((m_arcCenter.y + (_local8 * _local12)) - (_local7 * _local11)); _local11 = m_normals[1].x; _local12 = m_normals[1].y; _local5 = (m_coreVertices[1].x - m_arcCenter.x); _local6 = (m_coreVertices[1].y - m_arcCenter.y); _local8 = ((_local5 * _local11) + (_local6 * _local12)); _local7 = Math.sqrt((_local10 - (_local8 * _local8))); m_coreVertices[1].x = ((m_arcCenter.x + (_local8 * _local11)) - (_local7 * _local12)); m_coreVertices[1].y = ((m_arcCenter.y + (_local8 * _local12)) + (_local7 * _local11)); m_type = b2Shape.e_concaveArcShape; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ b2Settings.b2Assert(false); return (false); } override public function ComputeMass(_arg1:b2MassData):void{ super.ComputeMass(_arg1); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local9:b2Vec2; var _local10:Number; var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg2.x - _arg1.position.x); var _local5:Number = (_arg2.y - _arg1.position.y); var _local6:Number = ((_local4 * _local3.col1.x) + (_local5 * _local3.col1.y)); var _local7:Number = ((_local4 * _local3.col2.x) + (_local5 * _local3.col2.y)); var _local8:int; while (_local8 < m_vertexCount) { _local9 = m_vertices[_local8]; _local4 = (_local6 - _local9.x); _local5 = (_local7 - _local9.y); _local10 = ((_local9.x * _local4) + (_local9.y * _local5)); if (_local10 > 0){ return (false); }; _local8++; }; _local4 = (_local6 - m_arcCenter.x); _local5 = (_local7 - m_arcCenter.y); return ((((_local4 * _local4) + (_local5 * _local5)) > m_radius2)); } public static function TriangleMass(_arg1:b2MassData, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:Number):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local6 = (1 / 3); _local7 = (_arg3.x - _arg2.x); _local8 = (_arg3.y - _arg2.y); _local9 = (_arg4.x - _arg2.x); _local10 = (_arg4.y - _arg2.y); _local11 = ((_local7 * _local10) - (_local8 * _local9)); var _local12:Number = (0.5 * _local11); _arg1.mass = (_local12 * _arg5); _arg1.center.x = (_local6 * ((_arg2.x + _arg3.x) + _arg4.x)); _arg1.center.y = (_local6 * ((_arg2.y + _arg3.y) + _arg4.y)); var _local13:Number = _arg2.x; var _local14:Number = _arg2.y; var _local15:Number = _local7; var _local16:Number = _local8; var _local17:Number = _local9; var _local18:Number = _local10; var _local19:Number = ((_local6 * ((0.25 * (((_local15 * _local15) + (_local17 * _local15)) + (_local17 * _local17))) + ((_local13 * _local15) + (_local13 * _local17)))) + ((0.5 * _local13) * _local13)); var _local20:Number = ((_local6 * ((0.25 * (((_local16 * _local16) + (_local18 * _local16)) + (_local18 * _local18))) + ((_local14 * _local16) + (_local14 * _local18)))) + ((0.5 * _local14) * _local14)); _arg1.I = ((_local11 * (_local19 + _local20)) * _arg5); } public static function SegmentMass(_arg1:b2MassData, _arg2:b2Vec2, _arg3:Number, _arg4:b2Vec2, _arg5:Number, _arg6:Number):void{ var _local7:Number; _local7 = (Math.asin(((_arg5 / _arg3) / 2)) * 2); _arg1.mass = ((((0.5 * _arg3) * _arg3) * _local7) * _arg6); var _local8:Number = (((2 / 3) * _arg5) / _local7); if (_local7 < Number.MIN_VALUE){ _local8 = ((2 / 3) * _arg3); }; _arg1.center = new b2Vec2((_arg2.x - (_arg4.x * _local8)), (_arg2.y - (_arg4.y * _local8))); _arg1.I = ((((0.5 * _arg1.mass) * _arg3) * _arg3) - ((_arg1.mass * _local8) * _local8)); } } }//package Box2D.Collision.Shapes
Section 5
//b2ConvexArcShape (Box2D.Collision.Shapes.b2ConvexArcShape) package Box2D.Collision.Shapes { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ConvexArcShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_offset:Number; public var m_norm:b2Vec2; public var m_dot:Number; public var m_vertices:Array; public var m_d:Number; public var m_radius:Number; public var m_obb:b2OBB; public function b2ConvexArcShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); m_obb = new b2OBB(); m_vertices = [new b2Vec2(), new b2Vec2()]; m_norm = new b2Vec2(); super(_arg1); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ b2Settings.b2Assert(false); return (false); } override public function ComputeMass(_arg1:b2MassData):void{ } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ super.ComputeSweptAABB(_arg1, _arg2, _arg3); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ b2Settings.b2Assert(false); return (null); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ super.ComputeAABB(_arg1, _arg2); } public function GetOBB():b2OBB{ return (m_obb); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ b2Settings.b2Assert(false); return (false); } } }//package Box2D.Collision.Shapes
Section 6
//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 7
//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(); } public function Set(_arg1:b2MassData):void{ mass = _arg1.mass; center.x = _arg1.center.x; center.y = _arg1.center.y; I = _arg1.I; } public static function Add(... _args):b2MassData{ var _local3:b2MassData; var _local4:b2Vec2; var _local2:b2MassData = new (b2MassData); for each (_local3 in _args) { _local2.mass = (_local2.mass + _local3.mass); }; if (Math.abs(_local2.mass) > Number.MIN_VALUE){ for each (_local3 in _args) { _local2.center.x = (_local2.center.x + (_local3.mass * _local3.center.x)); _local2.center.y = (_local2.center.y + (_local3.mass * _local3.center.y)); }; _local2.center.x = (_local2.center.x / _local2.mass); _local2.center.y = (_local2.center.y / _local2.mass); for each (_local3 in _args) { _local2.I = (_local2.I + _local3.I); _local4 = b2Math.SubtractVV(_local3.center, _local2.center); _local2.I = (_local2.I + (_local3.mass * b2Math.b2Dot(_local4, _local4))); }; }; return (_local2); } } }//package Box2D.Collision.Shapes
Section 8
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.*; import Box2D.Common.Math.*; 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 9
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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 10
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_concaveArcShape:int = 5; public static const e_convexArcShape:int = 4; public static const e_unknownShape:int = -1; public static const e_meshShape:int = 3; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 7; public static const e_staticEdgeShape:int = 6; 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)); case e_convexArcShape: return (new b2ConvexArcShape(_arg1)); case e_concaveArcShape: return (new b2ConcaveArcShape(_arg1)); default: throw (new Error("Shape type not found or cannot be added to Dynamic Bodies.")); }; } } }//package Box2D.Collision.Shapes
Section 11
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 12
//b2StaticEdgeChain (Box2D.Collision.Shapes.b2StaticEdgeChain) package Box2D.Collision.Shapes { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2StaticEdgeChain { public var isFloating:Boolean; public var isALoop:Boolean; public var edges:Array; public function b2StaticEdgeChain(_arg1:b2ShapeDef, _arg2:b2World){ var _local4:int; var _local5:b2Vec2; var _local6:b2Vec2; var _local7:b2StaticEdgeShape; var _local8:Number; var _local9:Number; var _local10:b2StaticEdgeShape; var _local11:b2Vec2; var _local12:b2Vec2; edges = new Array(); super(); var _local3:b2StaticEdgeChainDef = (_arg1 as b2StaticEdgeChainDef); isALoop = _local3.isALoop; isFloating = _local3.isFloating; if (_local3.isALoop){ _local4 = 0; _local5 = _local3.vertices[(_local3.vertexCount - 1)]; } else { _local4 = 1; _local5 = _local3.vertices[0]; }; _local5 = _local5.Copy(); while (_local4 < _local3.vertexCount) { _local6 = _local3.vertices[_local4]; _local6 = _local6.Copy(); _local10 = new b2StaticEdgeShape(_local5, _local6, _local3); edges.push(_local10); _local10.m_chain = this; _local10.m_next = _arg2.m_groundBody.m_shapeList; _arg2.m_groundBody.m_shapeList = _local10; _arg2.m_groundBody.m_shapeCount++; _local10.m_body = _arg2.m_groundBody; _local10.CreateProxy(_arg2.m_broadPhase, _arg2.m_groundBody.m_xf); _local10.UpdateSweepRadius(_arg2.m_groundBody.m_sweep.localCenter); _local5 = _local6; _local4++; }; if (_local3.isALoop){ _local10 = edges[(_local3.vertexCount - 1)]; _local4 = 0; } else { _local10 = edges[0]; _local4 = 1; }; _local8 = Math.atan2(_local10.m_direction.y, _local10.m_direction.x); while (_local4 < edges.length) { _local7 = edges[_local4]; _local9 = Math.atan2(_local7.m_direction.y, _local7.m_direction.x); _local11 = _local7.m_direction.Copy(); _local11.Multiply(Math.tan(((_local9 - _local8) * 0.5))); _local11.Subtract(_local7.m_normal); _local11.Multiply(b2Settings.b2_toiSlop); _local11.Add(_local7.m_v1); _local12 = _local10.m_direction.Copy(); _local12.Add(_local7.m_direction); _local12.Normalize(); _local10.SetNextEdge(_local7, _local11, _local12); _local7.SetPrevEdge(_local10, _local11, _local12); _local10 = _local7; _local8 = _local9; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 13
//b2StaticEdgeChainDef (Box2D.Collision.Shapes.b2StaticEdgeChainDef) package Box2D.Collision.Shapes { public class b2StaticEdgeChainDef extends b2ShapeDef { public var isFloating:Boolean; public var vertices:Array; public var vertexCount:int; public var isALoop:Boolean; public function b2StaticEdgeChainDef(){ vertices = new Array(); super(); type = b2Shape.e_staticEdgeShape; isALoop = true; isFloating = false; vertexCount = 0; } } }//package Box2D.Collision.Shapes
Section 14
//b2StaticEdgeShape (Box2D.Collision.Shapes.b2StaticEdgeShape) package Box2D.Collision.Shapes { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2StaticEdgeShape extends b2Shape { public var m_cornerDir1:b2Vec2; public var m_v1:b2Vec2; public var isFloating:Boolean; public var m_coreV1:b2Vec2; public var m_coreV2:b2Vec2; public var m_v2:b2Vec2; public var m_cornerDir2:b2Vec2; public var m_nextEdge:b2StaticEdgeShape; public var m_direction:b2Vec2; public var m_prevEdge:b2StaticEdgeShape; public var m_chain:b2StaticEdgeChain; public var m_length:Number; public var m_normal:b2Vec2; public function b2StaticEdgeShape(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2StaticEdgeChainDef){ super(_arg3); isFloating = _arg3.isFloating; m_type = e_staticEdgeShape; m_v1 = _arg1; m_v2 = _arg2; m_direction = m_v2.Copy(); m_direction.Subtract(m_v1); m_length = m_direction.Normalize(); m_normal = new b2Vec2(m_direction.y, -(m_direction.x)); m_coreV1 = m_normal.Copy(); m_coreV1.Subtract(m_direction); m_coreV1.Multiply(-(b2Settings.b2_toiSlop)); m_coreV1.Add(m_v1); m_coreV2 = m_normal.Copy(); m_coreV2.Add(m_direction); m_coreV2.Multiply(-(b2Settings.b2_toiSlop)); m_coreV2.Add(m_v2); if (isFloating){ m_cornerDir1 = (m_cornerDir2 = m_direction); } else { m_cornerDir1 = m_normal; m_cornerDir2 = m_normal.Copy(); m_cornerDir2.Multiply(-1); }; } public function SetNextEdge(_arg1:b2StaticEdgeShape, _arg2:b2Vec2, _arg3:b2Vec2):void{ m_nextEdge = _arg1; m_coreV2 = _arg2; m_cornerDir2 = _arg3; } public function GetDirectionVector():b2Vec2{ return (m_direction); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ return (ComputeAABB(_arg1, _arg2)); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (m_coreV1); } public function GetNormalVector():b2Vec2{ return (m_normal); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function GetParentChain():b2StaticEdgeChain{ return (m_chain); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (((((m_coreV1.x * _arg2) + (m_coreV1.y * _arg3)) > ((m_coreV2.x * _arg2) + (m_coreV2.y * _arg3)))) ? m_coreV1 : m_coreV2); } public function SetPrevEdge(_arg1:b2StaticEdgeShape, _arg2:b2Vec2, _arg3:b2Vec2):void{ m_prevEdge = _arg1; m_coreV1 = _arg2; m_cornerDir1 = _arg3; } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_v1.x - _arg1.x); var _local3:Number = (m_v1.y - _arg1.y); var _local4:Number = ((_local2 * _local2) + (_local3 * _local3)); _local2 = (m_v2.x - _arg1.x); _local3 = (m_v2.y - _arg1.y); var _local5:Number = ((_local2 * _local2) + (_local3 * _local3)); _local2 = Math.sqrt(((_local4 > _local5)) ? _local4 : _local5); m_sweepRadius = _local2; } public function GetVertex1():b2Vec2{ return (m_v1); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ if (m_v1.x < m_v2.x){ _arg1.lowerBound.x = m_v1.x; _arg1.upperBound.x = m_v2.x; } else { _arg1.lowerBound.x = m_v2.x; _arg1.upperBound.x = m_v1.x; }; if (m_v1.y < m_v2.y){ _arg1.lowerBound.y = m_v1.y; _arg1.upperBound.y = m_v2.y; } else { _arg1.lowerBound.y = m_v2.y; _arg1.upperBound.y = m_v1.y; }; } public function GetVertex2():b2Vec2{ return (m_v2); } } }//package Box2D.Collision.Shapes
Section 15
//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 16
//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 17
//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 18
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.*; import Box2D.Common.Math.*; 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 = 0xFFFF; public static const b2_invalid:uint = 0xFFFF; 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 19
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 20
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 21
//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 22
//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 23
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2Distance { public static var s_initialized:Boolean = false; public static var g_GJK_Iterations:int = 0; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; public static var s_registers:Array; private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; public static var t:Number = -1; public static var t2:String = ""; 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 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 ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; var _local8:b2Vec2 = _arg5[2]; var _local9:b2Vec2 = _arg3[0]; var _local10:b2Vec2 = _arg3[1]; var _local11:b2Vec2 = _arg3[2]; var _local12:b2Vec2 = _arg4[0]; var _local13:b2Vec2 = _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 Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local7:int = _arg3.GetType(); var _local8:int = _arg5.GetType(); var _local9:Object = s_registers[_local7][_local8]; if (_local9.fcn){ if (_local9.primary){ return (_local9.fcn(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); }; return (_local9.fcn(_arg2, _arg1, _arg5, _arg6, _arg3, _arg4)); }; return (0); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _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 AddType(_arg1:Function, _arg2:int, _arg3:int):void{ s_registers[_arg2][_arg3].fcn = _arg1; s_registers[_arg2][_arg3].primary = true; if (_arg2 != _arg3){ s_registers[_arg3][_arg2].fcn = _arg1; s_registers[_arg3][_arg2].primary = false; }; } public static function DistanceCcaC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2ConcaveArcShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local15:b2Vec2; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22: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); var _local12:b2Vec2 = b2Math.b2MulX(_arg4, _arg3.m_coreVertices[0]); var _local13:b2Vec2 = b2Math.b2MulMV(_arg4.R, _arg3.m_normals[0]); var _local14:Number = (((_arg1.x - _local12.x) * _local13.x) + ((_arg1.y - _local12.y) * _local13.y)); if (_local14 >= 0){ _local15 = b2Math.b2MulX(_arg4, _arg3.m_arcCenter); _local16 = (_local9.p.x - _local15.x); _local17 = (_local9.p.y - _local15.y); _local18 = ((-(_local13.y) * _local16) + (_local13.x * _local17)); if (((_local16 * _local13.x) + (_local17 * _local13.y)) > 0){ if (_local18 < 0){ _local8 = _local12; } else { _local8 = b2Math.b2MulX(_arg4, _arg3.m_coreVertices[1]); }; } else { if (_local18 <= -(_arg3.m_norm)){ _local8 = _local12; } else { if (_local18 >= _arg3.m_norm){ _local8 = b2Math.b2MulX(_arg4, _arg3.m_coreVertices[1]); } else { _local19 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); _local10 = (((_arg3.m_radius + (b2Settings.b2_toiSlop * 2)) - _local11) - _local19); _local16 = (_local16 / _local19); _local17 = (_local17 / _local19); if (_local10 < 0){ _local10 = 0; }; _arg1.x = (_local15.x + (_local16 * (_arg3.m_radius + b2Settings.b2_toiSlop))); _arg1.y = (_local15.y + (_local17 * (_arg3.m_radius + b2Settings.b2_toiSlop))); _arg2.x = (_arg2.x + (_local16 * _local11)); _arg2.y = (_arg2.y + (_local17 * _local11)); return (_local10); }; }; }; _arg1.SetV(_local8); _local8.x = (_local8.x - _local9.p.x); _local8.y = (_local8.y - _local9.p.y); _local10 = (_local8.Normalize() - _local11); if (_local10 > 0){ _arg2.x = (_arg2.x + (_local11 * _local8.x)); _arg2.y = (_arg2.y + (_local11 * _local8.y)); return (_local10); }; _arg2.SetV(_arg1); return (0); }; if (_local10 > _local11){ _local10 = (_local10 - _local11); _local20 = (_arg2.x - _arg1.x); _local21 = (_arg2.y - _arg1.y); _local22 = Math.sqrt(((_local20 * _local20) + (_local21 * _local21))); _local20 = (_local20 / _local22); _local21 = (_local21 / _local22); _arg2.x = (_arg2.x - (_local11 * _local20)); _arg2.y = (_arg2.y - (_local11 * _local21)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } 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] = {}; _local2++; }; _local1++; }; AddType(b2Distance.DistanceCC, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2Distance.DistancePC, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2Distance.DistanceGeneric, b2Shape.e_polygonShape, b2Shape.e_polygonShape); AddType(b2Distance.DistanceCcaC, b2Shape.e_concaveArcShape, b2Shape.e_circleShape); AddType(b2Distance.DistancePCca, b2Shape.e_polygonShape, b2Shape.e_concaveArcShape); AddType(b2Distance.DistancePC, b2Shape.e_staticEdgeShape, b2Shape.e_circleShape); AddType(b2Distance.DistanceGeneric, b2Shape.e_polygonShape, b2Shape.e_staticEdgeShape); } public static function DistancePCca(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2ConcaveArcShape, _arg6:b2XForm):Number{ var _local19:Number; var _local20:Number; var _local26:Number; t = -1; t2 = ""; var _local7:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); var _local8:b2Vec2 = b2Math.b2MulX(_arg6, _arg5.m_coreVertices[0]); var _local9:b2Vec2 = b2Math.b2MulMV(_arg6.R, _arg5.m_normals[0]); var _local10:Number = (((_arg2.x - _local8.x) * _local9.x) + ((_arg2.y - _local8.y) * _local9.y)); if ((((_local10 < (-(b2Settings.b2_linearSlop) / 4))) && ((_local7 > 0)))){ t = 0; return (_local7); }; var _local11:b2Vec2 = b2Math.b2MulX(_arg6, _arg5.m_coreVertices[1]); var _local12:b2Vec2 = new b2Vec2(); var _local13:Number = (b2Settings.b2_linearSlop * b2Settings.b2_linearSlop); _local12.x = (_local8.x - _arg2.x); _local12.y = (_local8.y - _arg2.y); if (((_local12.x * _local12.x) + (_local12.y * _local12.y)) < _local13){ t = 1; return (_local7); }; _local12.x = (_local11.x - _arg2.x); _local12.y = (_local11.y - _arg2.y); if (((_local12.x * _local12.x) + (_local12.y * _local12.y)) < _local13){ t = 2; return (_local7); }; var _local14:b2Vec2 = b2Math.b2MulXT(_arg4, b2Math.b2MulX(_arg6, _arg5.m_arcCenter)); var _local15:b2Vec2 = b2Math.b2MulTMV(_arg4.R, _local9); var _local16:Number = -1; var _local17:Number = -1; var _local18:Number = Number.MAX_VALUE; var _local21:Number = 0; while (_local21 < _arg3.m_vertexCount) { _local12.x = (_arg3.m_coreVertices[_local21].x - _local14.x); _local12.y = (_arg3.m_coreVertices[_local21].y - _local14.y); _local26 = ((_local12.x * _local15.y) - (_local12.y * _local15.x)); _local19 = ((_local12.x * _local12.x) + (_local12.y * _local12.y)); if (((((_local26 * _local26) < ((_arg5.m_norm * _arg5.m_norm) * _local19))) && ((((_local12.x * _local15.x) + (_local12.y * _local15.y)) < 0)))){ t2 = (t2 + (("(" + _local21) + ") ")); if (_local19 > _local16){ _local16 = _local19; _local17 = _local21; _local20 = Math.sqrt(_local19); _local18 = ((_arg5.m_radius + b2Settings.b2_toiSlop) - _local20); if (_local18 < 0){ _local18 = 0; }; _arg1.SetV(b2Math.b2MulX(_arg4, _arg3.m_coreVertices[_local21])); _local12.x = (_local12.x * ((_arg5.m_radius + b2Settings.b2_toiSlop) / _local20)); _local12.y = (_local12.y * ((_arg5.m_radius + b2Settings.b2_toiSlop) / _local20)); _local12.x = (_local12.x + _local14.x); _local12.y = (_local12.y + _local14.y); _arg2.SetV(b2Math.b2MulX(_arg4, _local12)); t = 3; }; }; _local21++; }; var _local22:b2Vec2 = new b2Vec2(); var _local23:b2Vec2 = new b2Vec2(); var _local24:b2Point = gPoint; _local24.p.SetV(_local8); var _local25:Number = DistanceGeneric(_local22, _local23, _arg3, _arg4, _local24, b2Math.b2XForm_identity); if (_local25 < _local18){ t = 4; _local18 = _local25; _arg1.SetV(_local22); _arg2.SetV(_local23); }; _local24.p.SetV(_local11); _local25 = DistanceGeneric(_local22, _local23, _arg3, _arg4, _local24, b2Math.b2XForm_identity); if (_local25 < _local18){ t = 5; _local18 = _local25; _arg1.SetV(_local22); _arg2.SetV(_local23); }; return (_local18); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local10:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; var _local9:b2Vec2 = _arg3[1]; _local10 = _arg4[0]; var _local11:b2Vec2 = _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 24
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.*; import Box2D.Common.Math.*; 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 25
//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 26
//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 27
//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 28
//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 29
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.*; import Box2D.Common.Math.*; 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 30
//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 31
//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 32
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.*; import Box2D.Common.Math.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 33
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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 34
//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 35
//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 36
//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 37
//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 38
//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 39
//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 40
//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 41
//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 42
//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 43
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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 44
//b2ConcaveArcAndCircleContact (Box2D.Dynamics.Contacts.b2ConcaveArcAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2ConcaveArcAndCircleContact extends b2PolyAndCircleContact { private static var s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ConcaveArcAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ super(_arg1, _arg2); } 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_manifolds[0]); m_manifoldCount = b2CollideConcaveArcAndCircle(m_manifolds, (m_shape1 as b2ConcaveArcShape), _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 b2ConcaveArcAndCircleContact(_arg1, _arg2)); } public static function b2CollideConcaveArcAndCircle(_arg1:Array, _arg2:b2ConcaveArcShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):Number{ var _local7:uint; var _local8:b2Manifold; var _local10:b2ManifoldPoint; var _local11:Number; var _local12:Number; var _local13:b2Vec2; var _local14:b2Mat22; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local21: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 _local6:Boolean; _local7 = b2Collision.b2_nullFeature; _local8 = _arg1[0]; var _local9:Number = 0; _local8.pointCount = 0; _local14 = _arg5.R; _local13 = _arg4.m_localPosition; _local17 = (_arg5.position.x + ((_local14.col1.x * _local13.x) + (_local14.col2.x * _local13.y))); _local18 = (_arg5.position.y + ((_local14.col1.y * _local13.x) + (_local14.col2.y * _local13.y))); _local11 = (_local17 - _arg3.position.x); _local12 = (_local18 - _arg3.position.y); _local14 = _arg3.R; var _local19:Number = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); var _local20:Number = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); var _local22:int; var _local23:Number = -(Number.MAX_VALUE); var _local24:Number = _arg4.m_radius; var _local25 = 1; while (_local25 < _arg2.m_vertexCount) { _local11 = (_local19 - _arg2.m_vertices[_local25].x); _local12 = (_local20 - _arg2.m_vertices[_local25].y); _local33 = ((_arg2.m_normals[_local25].x * _local11) + (_arg2.m_normals[_local25].y * _local12)); if (_local33 > _local24){ _local9 = 0; return (_local9); }; if (_local33 > _local23){ _local23 = _local33; _local22 = _local25; }; _local25++; }; if (((((true) || ((_local22 == 1)))) || ((_local22 == (_arg2.m_vertexCount - 1))))){ _local33 = ((_arg2.m_normals[0].x * (_local19 - _arg2.m_vertices[0].x)) + (_arg2.m_normals[0].y * (_local20 - _arg2.m_vertices[0].y))); _local34 = (_local19 - _arg2.m_arcCenter.x); _local35 = (_local20 - _arg2.m_arcCenter.y); _local36 = Math.sqrt(((_local34 * _local34) + (_local35 * _local35))); _local34 = (_local34 / _local36); _local35 = (_local35 / _local36); _local33 = Math.max(_local33, (_arg2.m_radius - _local36)); if (_local33 > _local24){ _local9 = 0; return (_local9); }; if (_local33 > _local23){ _local23 = _local33; _local22 = 0; }; }; if ((((_local22 == 0)) && ((_local24 >= _arg2.m_radius)))){ if (_arg1.length < 2){ _arg1[1] = new b2Manifold(); _arg1[1].pointCount = 0; _arg1[1].points[0].normalImpulse = 0; _arg1[1].points[0].tangentImpulse = 0; }; _local9 = 0; _local25 = 0; while (_local25 < 2) { _local11 = (_arg2.m_vertices[_local25].x - _local19); _local12 = (_arg2.m_vertices[_local25].y - _local20); _local37 = ((_local11 * _local11) + (_local12 * _local12)); if (_local37 < (_local24 * _local24)){ _local38 = Math.sqrt(_local37); _arg1[_local9].pointCount = 1; _local10 = _arg1[_local9].points[0]; _local10.id.features.incidentEdge = _local7; _local10.id.features.incidentVertex = _local25; _local10.id.features.referenceEdge = _local7; _local10.id.features.flip = 0; _local10.separation = (_local38 - _local24); _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = (-(_local11) / _local38); _local12 = (-(_local12) / _local38); _arg1[_local9].normal.x = ((_local14.col1.x * _local11) + (_local14.col2.x * _local12)); _arg1[_local9].normal.y = ((_local14.col1.y * _local11) + (_local14.col2.y * _local12)); _local15 = (_local17 - (_local24 * _arg1[_local9].normal.x)); _local16 = (_local18 - (_local24 * _arg1[_local9].normal.y)); _local11 = (_local15 - _arg3.position.x); _local12 = (_local16 - _arg3.position.y); _local14 = _arg3.R; _local10.localPoint1.x = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); _local10.localPoint1.y = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); _local11 = (_local15 - _arg5.position.x); _local12 = (_local16 - _arg5.position.y); _local14 = _arg5.R; _local10.localPoint2.x = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); _local10.localPoint2.y = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); _local9++; }; _local25++; }; return (_local9); }; if (_local23 < Number.MIN_VALUE){ _local8.pointCount = 1; _local9 = 1; if (_local22 == 0){ _local14 = _arg3.R; _local8.normal.x = -(((_local14.col1.x * _local34) + (_local14.col2.x * _local35))); _local8.normal.y = -(((_local14.col1.y * _local34) + (_local14.col2.y * _local35))); } else { _local13 = _arg2.m_normals[_local22]; _local14 = _arg3.R; _local8.normal.x = ((_local14.col1.x * _local13.x) + (_local14.col2.x * _local13.y)); _local8.normal.y = ((_local14.col1.y * _local13.x) + (_local14.col2.y * _local13.y)); }; _local10 = _local8.points[0]; _local10.id.features.incidentEdge = _local22; _local10.id.features.incidentVertex = _local7; _local10.id.features.referenceEdge = 0; _local10.id.features.flip = 0; _local15 = (_local17 - (_local24 * _local8.normal.x)); _local16 = (_local18 - (_local24 * _local8.normal.y)); _local11 = (_local15 - _arg3.position.x); _local12 = (_local16 - _arg3.position.y); _local14 = _arg3.R; _local10.localPoint1.x = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); _local10.localPoint1.y = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); _local11 = (_local15 - _arg5.position.x); _local12 = (_local16 - _arg5.position.y); _local14 = _arg5.R; _local10.localPoint2.x = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); _local10.localPoint2.y = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); _local10.separation = (_local23 - _local24); return (_local9); }; var _local26:int = _local22; var _local27:int = (((_local26 + 1) < _arg2.m_vertexCount)) ? (_local26 + 1) : 0; var _local28:Number = (_arg2.m_vertices[_local27].x - _arg2.m_vertices[_local26].x); var _local29:Number = (_arg2.m_vertices[_local27].y - _arg2.m_vertices[_local26].y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); if (_local30 < Number.MIN_VALUE){ _local11 = (_local19 - _arg2.m_vertices[_local26].x); _local12 = (_local20 - _arg2.m_vertices[_local26].y); _local21 = Math.sqrt(((_local11 * _local11) + (_local12 * _local12))); _local11 = (_local11 / _local21); _local12 = (_local12 / _local21); if (_local21 > _local24){ _local9 = 0; return (_local9); }; _local8.pointCount = 1; _local9 = 1; _local14 = _arg3.R; _local8.normal.x = ((_local14.col1.x * _local11) + (_local14.col2.x * _local12)); _local8.normal.y = ((_local14.col1.y * _local11) + (_local14.col2.y * _local12)); _local10 = _local8.points[0]; _local10.id.features.incidentEdge = _local7; _local10.id.features.incidentVertex = _local26; _local10.id.features.referenceEdge = _local7; _local10.id.features.flip = 0; _local15 = (_local17 - (_local24 * _local8.normal.x)); _local16 = (_local18 - (_local24 * _local8.normal.y)); _local11 = (_local15 - _arg3.position.x); _local12 = (_local16 - _arg3.position.y); _local14 = _arg3.R; _local10.localPoint1.x = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); _local10.localPoint1.y = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); _local11 = (_local15 - _arg5.position.x); _local12 = (_local16 - _arg5.position.y); _local14 = _arg5.R; _local10.localPoint2.x = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); _local10.localPoint2.y = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); _local10.separation = (_local21 - _local24); return (_local9); }; _local11 = (_local19 - _arg2.m_vertices[_local26].x); _local12 = (_local20 - _arg2.m_vertices[_local26].y); _local10 = _local8.points[0]; _local10.id.features.incidentEdge = 0; _local10.id.features.incidentVertex = 0; _local10.id.features.referenceEdge = 0; _local10.id.features.flip = 0; if (_local22 == 0){ _local39 = ((_local28 * _local34) + (_local29 * _local35)); if (((_local34 * _arg2.m_normals[0].x) + (_local35 * _arg2.m_normals[0].y)) > 0){ if (_local39 < 0){ _local31 = _arg2.m_vertices[_local26].x; _local32 = _arg2.m_vertices[_local26].y; _local10.id.features.incidentVertex = _local26; _local10.id.features.incidentEdge = _local7; } else { _local31 = _arg2.m_vertices[_local27].x; _local32 = _arg2.m_vertices[_local27].y; _local10.id.features.incidentVertex = _local27; _local10.id.features.incidentEdge = _local7; }; } else { if (_local39 <= -(_arg2.m_norm)){ _local31 = _arg2.m_vertices[_local26].x; _local32 = _arg2.m_vertices[_local26].y; _local10.id.features.incidentVertex = _local26; _local10.id.features.incidentEdge = _local7; } else { if (_local39 >= _arg2.m_norm){ _local31 = _arg2.m_vertices[_local27].x; _local32 = _arg2.m_vertices[_local27].y; _local10.id.features.incidentVertex = _local27; _local10.id.features.incidentEdge = _local7; } else { _local31 = (_arg2.m_arcCenter.x + (_local34 * _arg2.m_radius)); _local32 = (_arg2.m_arcCenter.y + (_local35 * _arg2.m_radius)); _local10.id.features.incidentEdge = _local26; }; }; }; } else { _local40 = ((_local11 * _local28) + (_local12 * _local29)); if (_local40 <= 0){ _local31 = _arg2.m_vertices[_local26].x; _local32 = _arg2.m_vertices[_local26].y; _local10.id.features.incidentVertex = _local26; _local10.id.features.incidentEdge = _local7; } else { if (_local40 >= _local30){ _local31 = _arg2.m_vertices[_local27].x; _local32 = _arg2.m_vertices[_local27].y; _local10.id.features.incidentVertex = _local27; _local10.id.features.incidentEdge = _local7; } else { _local31 = ((_local28 * _local40) + _arg2.m_vertices[_local26].x); _local32 = ((_local29 * _local40) + _arg2.m_vertices[_local26].y); _local10.id.features.incidentEdge = _local26; }; }; }; _local11 = (_local19 - _local31); _local12 = (_local20 - _local32); _local21 = Math.sqrt(((_local11 * _local11) + (_local12 * _local12))); _local11 = (_local11 / _local21); _local12 = (_local12 / _local21); if (_local21 > _local24){ _local9 = 0; return (_local9); }; _local8.pointCount = 1; _local9 = 1; _local14 = _arg3.R; _local8.normal.x = ((_local14.col1.x * _local11) + (_local14.col2.x * _local12)); _local8.normal.y = ((_local14.col1.y * _local11) + (_local14.col2.y * _local12)); _local15 = (_local17 - (_local24 * _local8.normal.x)); _local16 = (_local18 - (_local24 * _local8.normal.y)); _local11 = (_local15 - _arg3.position.x); _local12 = (_local16 - _arg3.position.y); _local14 = _arg3.R; _local10.localPoint1.x = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); _local10.localPoint1.y = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); _local11 = (_local15 - _arg5.position.x); _local12 = (_local16 - _arg5.position.y); _local14 = _arg5.R; _local10.localPoint2.x = ((_local11 * _local14.col1.x) + (_local12 * _local14.col1.y)); _local10.localPoint2.y = ((_local11 * _local14.col2.x) + (_local12 * _local14.col2.y)); _local10.separation = (_local21 - _local24); return (_local9); } } }//package Box2D.Dynamics.Contacts
Section 45
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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); AddType(b2ConcaveArcAndCircleContact.Create, b2ConcaveArcAndCircleContact.Destroy, b2Shape.e_concaveArcShape, b2Shape.e_circleShape); AddType(b2PolyAndConcaveArcContact.Create, b2PolyAndConcaveArcContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_concaveArcShape); AddType(b2StaticEdgeAndCircleContact.Create, b2StaticEdgeAndCircleContact.Destroy, b2Shape.e_staticEdgeShape, b2Shape.e_circleShape); AddType(b2PolyAndStaticEdgeContact.Create, b2PolyAndStaticEdgeContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_staticEdgeShape); } 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 46
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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 47
//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 48
//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 49
//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 50
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 51
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; 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 52
//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 53
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolyAndCircleContact extends b2Contact { public var m_manifolds:Array; public var m_manifold:b2Manifold; public var m0:b2Manifold; public 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_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 54
//b2PolyAndConcaveArcContact (Box2D.Dynamics.Contacts.b2PolyAndConcaveArcContact) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolyAndConcaveArcContact extends b2PolygonContact { private var m_arcManifolds:Array; private var m_arcColl:Boolean; public function b2PolyAndConcaveArcContact(_arg1:b2Shape, _arg2:b2Shape):void{ m_arcManifolds = []; super(_arg1, _arg2); } private function enlargeManifolds(_arg1:Number):void{ var _local2:b2Manifold; while (m_arcManifolds.length < _arg1) { _local2 = new b2Manifold(); _local2.pointCount = 0; _local2.points[0].normalImpulse = 0; _local2.points[0].tangentImpulse = 0; m_arcManifolds.push(_local2); }; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Body; var _local3:b2Body; var _local5:int; var _local6:int; var _local7:b2Manifold; var _local9:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Number; var _local16:b2PolygonShape; var _local17:b2ConcaveArcShape; var _local19:b2Vec2; var _local20:b2Vec2; var _local30:Boolean; var _local31:b2Vec2; var _local32:b2Vec2; 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 _local43:Number; var _local44:Number; var _local45:b2Vec2; var _local46:Number; var _local47:b2Vec2; var _local48:b2Vec2; var _local49:b2Vec2; var _local50:b2Vec2; var _local51:Number; var _local52:Number; var _local53:b2Vec2; var _local54:Number; var _local55:Number; var _local56:b2Vec2; var _local57:Number; var _local58:Number; var _local59:Number; var _local60:Number; var _local61:b2ManifoldPoint; var _local62:*; _local2 = m_shape1.m_body; _local3 = m_shape2.m_body; var _local4:uint = b2Collision.b2_nullFeature; var _local8:Array = []; if (!m_arcColl){ _local5 = 0; while (_local5 < m_manifoldCount) { _local6 = 0; while (_local6 < m_manifolds[_local5].pointCount) { _local10 = m_manifolds[_local5].points[_local6]; _local9 = new b2ManifoldPoint(); _local8[_local10.id.key] = _local9; _local9.normalImpulse = _local10.normalImpulse; _local9.tangentImpulse = _local10.tangentImpulse; _local6++; }; _local5++; }; if ((((m_manifoldCount == 1)) && ((m_manifolds[0].pointCount == 1)))){ _local11 = m_manifolds[0].points[0].id.key; } else { _local11 = -1; }; } else { _local5 = 0; while (_local5 < m_manifoldCount) { _local6 = 0; while (_local6 < m_arcManifolds[_local5].pointCount) { _local10 = m_arcManifolds[_local5].points[_local6]; _local9 = new b2ManifoldPoint(); _local8[_local10.id.key] = _local9; _local9.normalImpulse = _local10.normalImpulse; _local9.tangentImpulse = _local10.tangentImpulse; _local6++; }; _local5++; }; if ((((m_manifoldCount == 1)) && ((m_arcManifolds[0].pointCount == 1)))){ _local11 = m_arcManifolds[0].points[0].id.key; } else { _local11 = -1; }; }; super.Evaluate(_arg1); var _local12:Number = m_manifoldCount; if (m_manifoldCount == 0){ return; }; _local9 = m_manifolds[0].points[0]; var _local13:Features = _local9.id.features; var _local14:Number = (_local13.flip) ? _local13.referenceEdge : _local13.incidentEdge; var _local15:Number = -(Number.MAX_VALUE); if ((((((m_manifoldCount == 1)) && (!((_local14 == 0))))) && ((_local9.separation < 0)))){ _local15 = _local9.separation; }; _local16 = (m_shape1 as b2PolygonShape); _local17 = (m_shape2 as b2ConcaveArcShape); var _local18:Number = Number.MAX_VALUE; _local19 = b2Math.b2MulXT(_local2.m_xf, b2Math.b2MulX(_local3.m_xf, _local17.m_arcCenter)); _local20 = b2Math.b2MulX(_local3.m_xf, _local17.m_vertices[0]); var _local21:b2Vec2 = _local20.Copy(); _local20 = b2Math.b2MulXT(_local2.m_xf, _local20); var _local22:b2Vec2 = b2Math.b2MulX(_local3.m_xf, _local17.m_vertices[1]); var _local23:b2Vec2 = _local22.Copy(); _local22 = b2Math.b2MulXT(_local2.m_xf, _local22); var _local24:b2Vec2 = b2Math.b2MulTMV(_local2.m_xf.R, b2Math.b2MulMV(_local3.m_xf.R, _local17.m_normals[0].Copy())); var _local25:Array = [_local21, _local23]; var _local26:Array = [_local20, _local22]; var _local27:Boolean; m_manifoldCount = 0; var _local28:Array = [-1, -1]; var _local29:Array = [-1, -1]; if (_local14 == 0){ _local5 = 0; while (_local5 < 2) { _local43 = -(Number.MAX_VALUE); _local44 = -1; _local45 = _local26[_local5]; if (_local5 == 0){ _local47 = b2Math.b2MulTMV(_local2.m_xf.R, b2Math.b2MulMV(_local3.m_xf.R, _local17.m_normals[(_local17.m_vertexCount - 1)])); _local48 = b2Math.SubtractVV(_local19, _local45); _local48.Normalize(); } else { _local48 = b2Math.b2MulTMV(_local2.m_xf.R, b2Math.b2MulMV(_local3.m_xf.R, _local17.m_normals[1])); _local47 = b2Math.SubtractVV(_local19, _local45); _local47.Normalize(); }; _local6 = 0; while (_local6 < _local16.m_vertexCount) { _local49 = _local16.m_vertices[_local6]; _local50 = _local16.m_normals[_local6]; if (((_local50.x * _local47.y) - (_local50.y * _local47.x)) < 0){ } else { if (((_local50.x * _local48.y) - (_local50.y * _local48.x)) > 0){ } else { _local51 = (_local45.x - _local49.x); _local52 = (_local45.y - _local49.y); _local46 = ((_local51 * _local50.x) + (_local52 * _local50.y)); if (_local46 > 0){ _local44 = -1; break; }; if (_local46 > _local43){ _local43 = _local46; _local44 = _local6; }; }; }; _local6++; }; if (_local44 != -1){ _local50 = _local16.m_normals[_local44]; _local49 = _local16.m_vertices[_local44]; _local53 = _local16.m_vertices[(((_local44 + 1) < _local16.m_vertexCount)) ? (_local44 + 1) : 0]; _local54 = ((_local50.x * _local47.x) + (_local50.y * _local47.y)); _local55 = ((_local50.x * _local48.x) + (_local50.y * _local48.y)); if (_local54 < _local55){ _local56 = b2Math.b2CrossVF(_local47, 1); } else { _local56 = b2Math.b2CrossVF(_local48, -1); }; _local57 = (((_local45.x - _local49.x) * _local50.x) + ((_local45.y - _local49.y) * _local50.y)); _local58 = ((_local56.x * _local50.x) + (_local56.y * _local50.y)); _local59 = (-(_local57) / _local58); _local51 = (_local53.x - _local49.x); _local52 = (_local53.y - _local49.y); _local60 = ((((_local45.x + (_local59 * _local56.x)) - _local49.x) * _local51) + (((_local45.y + (_local59 * _local56.y)) - _local49.y) * _local52)); if ((((_local60 < 0)) || ((_local60 > ((_local51 * _local51) + (_local52 * _local52)))))){ _local44 = -1; }; }; if (_local44 != -1){ _local29[_local5] = _local44; if (_local5 == 0){ _local46 = (((_local53.x - _local45.x) * _local48.x) + ((_local53.y - _local45.y) * _local48.y)); if ((((_local43 < _local46)) && ((_local46 < 0)))){ _local28[_local5] = (((_local44 + 1) < _local16.m_vertexCount)) ? (_local44 + 1) : 0; _local44 = -1; }; } else { _local46 = (((_local49.x - _local45.x) * _local47.x) + ((_local49.y - _local45.y) * _local47.y)); if ((((_local43 < _local46)) && ((_local46 < 0)))){ _local28[_local5] = _local44; _local44 = -1; }; }; }; if (_local44 != -1){ m_manifoldCount++; enlargeManifolds(m_manifoldCount); _local7 = m_arcManifolds[(m_manifoldCount - 1)]; _local7.pointCount = 1; _local61 = _local7.points[0]; _local61.localPoint1.SetV(_local26[_local5]); _local61.localPoint2.SetV(_local17.m_vertices[_local5]); _local61.id.features.incidentEdge = _local4; _local61.id.features.incidentVertex = _local5; _local61.id.features.referenceEdge = _local44; _local61.id.features.flip = 0; _local61.separation = _local43; _local61.normalImpulse = 0; _local61.tangentImpulse = 0; _local7.normal = b2Math.b2MulMV(_local2.m_xf.R, _local16.m_normals[_local44]); _local18 = Math.min(_local18, _local61.separation); }; _local5++; }; }; if (_local29[1] == -1){ if (_local29[0] == -1){ _local38 = 1; _local40 = 0; } else { _local38 = (_local16.m_vertexCount - 1); _local40 = (((_local29[0] + 1) == _local16.m_vertexCount)) ? 0 : (_local29[0] + 1); }; } else { _local38 = 1; _local40 = _local29[1]; }; var _local41:Boolean; _local39 = _local40; do { _local30 = true; _local31 = _local16.m_vertices[_local39]; if (_local29[0] != -1){ _local37 = _local29[0]; _local32 = _local16.m_vertices[(((_local37 + 1) == _local16.m_vertexCount)) ? 0 : (_local37 + 1)]; _local30 = ((_local30) && (((((_local31.x - _local32.x) * _local16.m_normals[_local37].y) - ((_local31.y - _local32.y) * _local16.m_normals[_local37].x)) > 0))); }; if (_local29[1] != -1){ _local37 = _local29[1]; _local32 = _local16.m_vertices[_local37]; _local30 = ((_local30) && (((((_local31.x - _local32.x) * _local16.m_normals[_local37].y) - ((_local31.y - _local32.y) * _local16.m_normals[_local37].x)) < 0))); }; if (((_local41) && (!(_local30)))){ _local40 = ((_local39 + _local38) % _local16.m_vertexCount); }; if (_local30){ _local41 = true; }; _local31 = new b2Vec2((_local16.m_vertices[_local39].x - _local19.x), (_local16.m_vertices[_local39].y - _local19.y)); _local33 = ((_local31.x * _local31.x) + (_local31.y * _local31.y)); _local34 = Math.sqrt(_local33); _local35 = (_local17.m_radius - _local34); _local36 = (((_local16.m_vertices[_local39].x - _local20.x) * _local24.x) + ((_local16.m_vertices[_local39].y - _local20.y) * _local24.y)); _local46 = Math.max(_local35, _local36); _local18 = Math.min(_local18, _local46); _local30 = ((_local30) && ((_local46 < 0))); if (((((_local30) || ((_local39 == _local28[0])))) || ((_local39 == _local28[1])))){ m_manifoldCount++; enlargeManifolds(m_manifoldCount); _local7 = m_arcManifolds[(m_manifoldCount - 1)]; _local7.pointCount = 1; _local61 = _local7.points[0]; _local61.id.features.incidentEdge = _local4; _local61.id.features.incidentVertex = _local39; _local61.id.features.referenceEdge = 0; _local61.id.features.flip = 0; _local61.normalImpulse = 0; _local61.tangentImpulse = 0; _local31.x = (_local31.x / _local34); _local31.y = (_local31.y / _local34); _local62 = _local2.m_xf.R; _local7.normal.x = ((_local62.col1.x * _local31.x) + (_local62.col2.x * _local31.y)); _local7.normal.y = ((_local62.col1.y * _local31.x) + (_local62.col2.y * _local31.y)); _local31 = _local16.m_vertices[_local39]; _local61.localPoint1.SetV(_local31); _local61.localPoint2.SetV(b2Math.b2MulXT(_local3.m_xf, b2Math.b2MulX(_local2.m_xf, _local31))); _local61.separation = (_local17.m_radius - _local34); }; _local39 = ((_local39 + _local38) % _local16.m_vertexCount); } while (_local39 != _local40); var _local42:int = m_manifoldCount; if (_local15 > _local18){ m_arcColl = false; m_manifoldCount = _local12; _local5 = 0; while (_local5 < m_manifoldCount) { _local6 = 0; while (_local6 < m_manifolds[_local5].pointCount) { _local9 = m_manifolds[_local5].points[_local6]; _local10 = _local8[_local9.id.key]; if (_local10){ _local9.normalImpulse = _local10.normalImpulse; _local9.tangentImpulse = _local10.tangentImpulse; }; _local6++; }; _local5++; }; if (((((!((_local11 == -1))) && ((m_manifoldCount == 1)))) && ((m_manifolds[0].pointCount == 1)))){ _local9 = m_manifolds[0].points[0]; _local10 = _local8[_local11]; if (_local10){ _local9.normalImpulse = _local10.normalImpulse; _local9.tangentImpulse = _local10.tangentImpulse; }; }; } else { m_arcColl = true; m_manifoldCount = _local42; _local5 = 0; while (_local5 < m_manifoldCount) { _local6 = 0; while (_local6 < m_arcManifolds[_local5].pointCount) { _local9 = m_arcManifolds[_local5].points[_local6]; _local10 = _local8[_local9.id.key]; if (_local10){ _local9.normalImpulse = _local10.normalImpulse; _local9.tangentImpulse = _local10.tangentImpulse; }; _local6++; }; _local5++; }; if (((((!((_local11 == -1))) && ((m_manifoldCount == 1)))) && ((m_arcManifolds[0].pointCount == 1)))){ _local9 = m_arcManifolds[0].points[0]; _local10 = _local8[_local11]; if (_local10){ _local9.normalImpulse = _local10.normalImpulse; _local9.tangentImpulse = _local10.tangentImpulse; }; }; }; } override public function GetManifolds():Array{ if (m_arcColl){ return (m_arcManifolds); }; return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndConcaveArcContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 55
//b2PolyAndStaticEdgeContact (Box2D.Dynamics.Contacts.b2PolyAndStaticEdgeContact) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolyAndStaticEdgeContact extends b2Contact { public var m_manifolds:Array; public var m_manifold:b2Manifold; public var m0:b2Manifold; public static const s_evalCP:b2ContactPoint = new b2ContactPoint(); private static const k_slop:Number = 4.94065645841247E-322; public function b2PolyAndStaticEdgeContact(_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: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); b2CollidePolygonAndStaticEdge(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2StaticEdgeShape), _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 b2CollidePolygonAndStaticEdge(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2StaticEdgeShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Mat22; var _local10:Number; var _local11:Number; var _local18:Number; var _local19:Number; var _local21:Boolean; var _local22:int; var _local26:Number; var _local27:Number; var _local32:Number; var _local33:Number; var _local35:int; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; _arg1.pointCount = 0; _local9 = _arg3.R; _local10 = (_arg4.m_v1.x - _arg3.position.x); _local11 = (_arg4.m_v1.y - _arg3.position.y); var _local12:Number = ((_local10 * _local9.col1.x) + (_local11 * _local9.col1.y)); var _local13:Number = ((_local10 * _local9.col2.x) + (_local11 * _local9.col2.y)); _local10 = (_arg4.m_v2.x - _arg3.position.x); _local11 = (_arg4.m_v2.y - _arg3.position.y); var _local14:Number = ((_local10 * _local9.col1.x) + (_local11 * _local9.col1.y)); var _local15:Number = ((_local10 * _local9.col2.x) + (_local11 * _local9.col2.y)); _local10 = _arg4.m_normal.x; _local11 = _arg4.m_normal.y; var _local16:Number = ((_local10 * _local9.col1.x) + (_local11 * _local9.col1.y)); var _local17:Number = ((_local10 * _local9.col2.x) + (_local11 * _local9.col2.y)); var _local20:Number = -(Infinity); var _local23:int = _arg2.m_vertexCount; var _local24:Array = _arg2.m_vertices; var _local25:Array = _arg2.m_normals; var _local28 = -1; var _local29 = -1; var _local30 = -1; var _local31 = -1; var _local34:Number = Infinity; _local7 = _local24[(_local23 - 1)]; _local10 = (_local7.x - _local12); _local11 = (_local7.y - _local13); _local26 = ((_local10 * _local16) + (_local11 * _local17)); var _local36:int; while (_local36 < _local23) { _local7 = _local24[_local36]; _local8 = _local25[_local36]; _local10 = (_local12 - _local7.x); _local11 = (_local13 - _local7.y); _local18 = ((_local10 * _local8.x) + (_local11 * _local8.y)); _local10 = (_local14 - _local7.x); _local11 = (_local15 - _local7.y); _local19 = ((_local10 * _local8.x) + (_local11 * _local8.y)); if (_local19 < _local18){ if (_local19 > _local20){ _local20 = _local19; _local21 = false; _local22 = _local36; }; } else { if (_local18 > _local20){ _local20 = _local18; _local21 = true; _local22 = _local36; }; }; _local27 = -(((_local10 * _local16) + (_local11 * _local17))); if ((((_local27 >= 0)) && ((_local26 < 0)))){ _local30 = ((_local36)==0) ? (_local23 - 1) : (_local36 - 1); _local31 = _local36; _local33 = _local26; } else { if ((((_local27 < 0)) && ((_local26 >= 0)))){ _local28 = ((_local36)==0) ? (_local23 - 1) : (_local36 - 1); _local29 = _local36; _local32 = _local27; }; }; if (_local27 < _local34){ _local34 = _local27; _local35 = _local36; }; _local26 = _local27; _local36++; }; if (_local28 == -1){ return; }; if (_local20 > 0){ return; }; if (_local20 > (_local34 + b2Settings.b2_linearSlop)){ _local8 = _local25[_local22]; if (_local21){ _local10 = _arg4.m_cornerDir1.x; _local11 = _arg4.m_cornerDir1.y; _local37 = ((_local10 * _local9.col1.x) + (_local11 * _local9.col1.y)); _local38 = ((_local10 * _local9.col2.x) + (_local11 * _local9.col2.y)); } else { _local10 = _arg4.m_cornerDir2.x; _local11 = _arg4.m_cornerDir2.y; _local37 = -(((_local10 * _local9.col1.x) + (_local11 * _local9.col1.y))); _local38 = -(((_local10 * _local9.col2.x) + (_local11 * _local9.col2.y))); }; if (((_local8.x * _local37) + (_local8.y * _local38)) >= 0){ return; }; _arg1.pointCount = 1; _arg1.normal.Set(((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)), ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local22; _local6.id.features.incidentVertex = b2Collision.b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; if (_local21){ _local6.localPoint1.Set(_local12, _local13); _local6.localPoint2.SetV(_arg4.m_v1); } else { _local6.localPoint1.Set(_local14, _local15); _local6.localPoint2.SetV(_arg4.m_v2); }; _local6.separation = _local20; } else { _arg1.normal.Set(-(_arg4.m_normal.x), -(_arg4.m_normal.y)); _local7 = _local24[_local29]; if (_local29 == _local30){ _arg1.pointCount = 1; _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local29; _local6.id.features.incidentVertex = b2Collision.b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local6.localPoint1.SetV(_local7); _local6.localPoint2.Set((_arg3.position.x + ((_local9.col1.x * _local7.x) + (_local9.col2.x * _local7.y))), (_arg3.position.y + ((_local9.col1.y * _local7.x) + (_local9.col2.y * _local7.y)))); _local6.separation = _local32; return; }; _arg1.pointCount = 2; _local10 = _arg4.m_direction.x; _local11 = _arg4.m_direction.y; _local39 = ((_local10 * _local9.col1.x) + (_local11 * _local9.col1.y)); _local40 = ((_local10 * _local9.col2.x) + (_local11 * _local9.col2.y)); _local41 = ((_local39 * (_local7.x - _local12)) + (_local40 * (_local7.y - _local13))); _local31 = ((_local29)==(_local23 - 1)) ? 0 : (_local29 + 1); if (_local31 != _local30){ _local30 = _local31; _local8 = _local24[_local30]; _local10 = (_local8.x - _local12); _local11 = (_local8.y - _local13); _local33 = ((_local16 * _local10) + (_local17 * _local11)); _local42 = ((_local39 * _local10) + (_local40 * _local11)); } else { _local8 = _local24[_local30]; _local42 = ((_local39 * (_local8.x - _local12)) + (_local40 * (_local8.y - _local13))); }; _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local29; _local6.id.features.incidentVertex = b2Collision.b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; if (_local41 > _arg4.m_length){ _local6.localPoint1.Set(_local14, _local15); _local6.localPoint2.SetV(_arg4.m_v2); _local10 = ((_arg4.m_length - _local42) / (_local41 - _local42)); if ((((_local10 > (100 * Number.MIN_VALUE))) && ((_local10 < 1)))){ _local6.separation = ((_local33 * (1 - _local10)) + (_local32 * _local10)); } else { _local6.separation = _local32; }; } else { _local6.localPoint1.SetV(_local7); _local6.localPoint2.Set((_arg3.position.x + ((_local9.col1.x * _local7.x) + (_local9.col2.x * _local7.y))), (_arg3.position.y + ((_local9.col1.y * _local7.x) + (_local9.col2.y * _local7.y)))); _local6.separation = _local32; }; _local6 = _arg1.points[1]; _local6.id.features.incidentEdge = _local30; _local6.id.features.incidentVertex = b2Collision.b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; if (_local42 < 0){ _local6.localPoint1.Set(_local12, _local13); _local6.localPoint2.SetV(_arg4.m_v1); _local10 = (-(_local41) / (_local42 - _local41)); if ((((_local10 > (100 * Number.MIN_VALUE))) && ((_local10 < 1)))){ _local6.separation = ((_local32 * (1 - _local10)) + (_local33 * _local10)); } else { _local6.separation = _local33; }; } else { _local6.localPoint1.SetV(_local8); _local6.localPoint2.Set((_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))), (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); _local6.separation = _local33; }; return; }; } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndStaticEdgeContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 56
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { public var m_manifolds:Array; public var m0:b2Manifold; public var m_manifold:b2Manifold; public 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 57
//b2StaticEdgeAndCircleContact (Box2D.Dynamics.Contacts.b2StaticEdgeAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2StaticEdgeAndCircleContact 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 b2StaticEdgeAndCircleContact(_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); b2CollideStaticEdgeAndCircle(m_manifold, (m_shape1 as b2StaticEdgeShape), _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 b2StaticEdgeAndCircleContact(_arg1, _arg2)); } public static function b2CollideStaticEdgeAndCircle(_arg1:b2Manifold, _arg2:b2StaticEdgeShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local12:Number; var _local13:Number; var _local15:Number; var _local16:b2ManifoldPoint; var _local19:Number; var _local20:Number; _arg1.pointCount = 0; _local6 = _arg5.R; _local7 = _arg4.m_localPosition; _local8 = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); _local9 = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local10:Number = (((_local8 - _arg2.m_v1.x) * _arg2.m_normal.x) + ((_local9 - _arg2.m_v1.y) * _arg2.m_normal.y)); if (_local10 < 0){ return; }; var _local11:Number = (((_local8 - _arg2.m_v1.x) * _arg2.m_direction.x) + ((_local9 - _arg2.m_v1.y) * _arg2.m_direction.y)); if (_local11 <= 0){ _local12 = (_local8 - _arg2.m_v1.x); _local13 = (_local9 - _arg2.m_v1.y); if (((_local12 * _arg2.m_cornerDir1.x) + (_local13 * _arg2.m_cornerDir1.y)) < 0){ return; }; } else { if (_local11 >= _arg2.m_length){ _local12 = (_local8 - _arg2.m_v2.x); _local13 = (_local9 - _arg2.m_v2.y); if (((_local12 * _arg2.m_cornerDir2.x) + (_local13 * _arg2.m_cornerDir2.y)) > 0){ return; }; } else { _local12 = (_local10 * _arg2.m_normal.x); _local13 = (_local10 * _arg2.m_normal.y); }; }; var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); if (_local14 > (_arg4.m_radius * _arg4.m_radius)){ return; }; if (_local14 < Number.MIN_VALUE){ _local15 = -(_arg4.m_radius); _arg1.normal.Set(0, 1); } else { _local19 = Math.sqrt(_local14); _local15 = (_local19 - _arg4.m_radius); _local20 = (1 / _local19); _arg1.normal.x = (_local20 * _local12); _arg1.normal.y = (_local20 * _local13); }; _arg1.pointCount = 1; _local16 = _arg1.points[0]; _local16.id.key = 0; _local16.separation = _local15; _local8 = (_local8 - (_arg4.m_radius * _arg1.normal.x)); _local9 = (_local9 - (_arg4.m_radius * _arg1.normal.y)); _local16.localPoint1.x = _local8; _local16.localPoint1.y = _local9; var _local17:Number = (_local8 - _arg5.position.x); var _local18:Number = (_local9 - _arg5.position.y); _local16.localPoint2.x = ((_local17 * _arg5.R.col1.x) + (_local18 * _arg5.R.col1.y)); _local16.localPoint2.y = ((_local17 * _arg5.R.col2.x) + (_local18 * _arg5.R.col2.y)); } } }//package Box2D.Dynamics.Contacts
Section 58
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 59
//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 60
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 61
//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 62
//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 63
//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 64
//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 65
//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 66
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 67
//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 68
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 _local6:Number; 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; _local6 = _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 69
//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 70
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 _local8: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 _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; _local8 = (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 71
//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 72
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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 73
//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 74
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_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; var _local4:b2Vec2; 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; _local4 = 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{ if (m_world.m_lock == true){ return (null); }; var _local2:b2Shape = 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:Boolean; while (_local2 != null) { if (_local2 == _arg1){ _local2 = _arg1.m_next; _local3 = true; break; }; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function 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 75
//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 76
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 77
//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 78
//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 79
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; 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 80
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; 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_lineThickness:Number;// = 1 public var m_drawFlags:uint; 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 DrawPolyline(_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++; }; } public function DrawConcaveArc(_arg1:Array, _arg2:int, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local5:Number = 16; var _local6:Number = (_arg1[0].x - _arg3.x); var _local7:Number = (_arg1[0].y - _arg3.y); var _local8:Number = Math.atan2(_local7, _local6); var _local9:Number = Math.atan2((_arg1[1].y - _arg3.y), (_arg1[1].x - _arg3.x)); var _local10:Number = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); while (_local9 > _local8) { _local9 = (_local9 - (Math.PI * 2)); }; var _local11:Number = ((_local8 - _local9) / _local5); var _local12:Number = _local8; while (_local12 > _local9) { m_sprite.graphics.lineTo(((_arg3.x + (_local10 * Math.cos(_local12))) * m_drawScale), ((_arg3.y + (_local10 * Math.sin(_local12))) * m_drawScale)); _local12 = (_local12 - _local11); }; var _local13 = 1; while (_local13 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local13].x * m_drawScale), (_arg1[_local13].y * m_drawScale)); _local13++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidConcaveArc(_arg1:Array, _arg2:int, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); var _local5:Number = 16; var _local6:Number = (_arg1[0].x - _arg3.x); var _local7:Number = (_arg1[0].y - _arg3.y); var _local8:Number = Math.atan2(_local7, _local6); var _local9:Number = Math.atan2((_arg1[1].y - _arg3.y), (_arg1[1].x - _arg3.x)); var _local10:Number = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); while (_local9 > _local8) { _local9 = (_local9 - (Math.PI * 2)); }; var _local11:Number = ((_local8 - _local9) / _local5); var _local12:Number = _local8; while (_local12 > _local9) { m_sprite.graphics.lineTo(((_arg3.x + (_local10 * Math.cos(_local12))) * m_drawScale), ((_arg3.y + (_local10 * Math.sin(_local12))) * m_drawScale)); _local12 = (_local12 - _local11); }; var _local13 = 1; while (_local13 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local13].x * m_drawScale), (_arg1[_local13].y * m_drawScale)); _local13++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } 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 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 DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function DrawCurve(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2, _arg4:b2Color):void{ var _local5:Number = 16; var _local6:Number = (_arg1.x - _arg3.x); var _local7:Number = (_arg1.y - _arg3.y); var _local8:Number = Math.atan2(_local7, _local6); var _local9:Number = Math.atan2((_arg2.y - _arg3.y), (_arg2.x - _arg3.x)); var _local10:Number = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); while (_local9 < _local8) { _local9 = (_local9 + (Math.PI * 2)); }; var _local11:Number = ((_local9 - _local8) / _local5); m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); var _local12:Number = _local8; while (_local12 <= _local9) { m_sprite.graphics.lineTo(((_arg3.x + (_local10 * Math.cos(_local12))) * m_drawScale), ((_arg3.y + (_local10 * Math.sin(_local12))) * m_drawScale)); _local12 = (_local12 + _local11); }; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ 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)); } } }//package Box2D.Dynamics
Section 81
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 82
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; 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 83
//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 84
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function CreateGroundShape(_arg1:b2ShapeDef){ if (m_lock == true){ return (null); }; switch (_arg1.type){ case b2Shape.e_staticEdgeShape: return (new b2StaticEdgeChain(_arg1, this)); default: return (m_groundBody.CreateShape(_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 _local16:b2ConcaveArcShape; var _local17:b2StaticEdgeShape; 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; case b2Shape.e_concaveArcShape: _local16 = (_arg1 as b2ConcaveArcShape); _local12 = _local16.GetVertexCount(); _local13 = _local16.GetVertices(); _local7 = b2Math.b2MulX(_arg2, _local16.m_arcCenter); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidConcaveArc(_local14, _local12, _local7, _arg3); if (_arg4){ _local15 = _local16.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawConcaveArc(_local14, _local12, _local7, _local5); }; break; case b2Shape.e_staticEdgeShape: _local17 = (_arg1 as b2StaticEdgeShape); m_debugDraw.DrawSegment(_local17.m_v1, _local17.m_v2, _arg3); if (_arg4){ m_debugDraw.DrawSegment(_local17.m_coreV1, _local17.m_coreV2, _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 Validate():void{ m_broadPhase.Validate(); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function GetBodyList():b2Body{ return (m_bodyList); } 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 85
//PhisicBase (Clases.BasicEngine.PhisicBase) package Clases.BasicEngine { import flash.display.*; import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class PhisicBase extends Sprite { public var m_world:b2World; public var m_iterations:Number;// = 15 public var m_timestep:Number;// = 0.0222222222222222 public var m_phys_scale:Number;// = 30 public var m_dbgSprite:Sprite; public function PhisicBase(){ var _local1:b2Vec2 = new b2Vec2(0, 20); var _local2:b2AABB = new b2AABB(); _local2.lowerBound.Set(-1000, -1000); _local2.upperBound.Set(1000, 1000); m_world = new b2World(_local2, _local1, true); m_dbgSprite = new Sprite(); SetDebugDraw(); } public function desrtoy():void{ var _local2:b2Body; var _local1:b2Body = m_world.GetBodyList(); while (_local1) { _local2 = _local1; _local1 = _local1.GetNext(); m_world.DestroyBody(_local2); _local2 = null; }; } private function SetDebugDraw():void{ var _local1:b2DebugDraw; _local1 = new b2DebugDraw(); _local1.m_sprite = m_dbgSprite; _local1.m_drawScale = m_phys_scale; _local1.m_fillAlpha = 0.8; _local1.m_lineThickness = 2; _local1.m_drawFlags = (1 | 2); m_world.SetDebugDraw(_local1); } public function updateLevel():void{ m_world.Step(m_timestep, m_iterations); var _local1:b2Body = m_world.m_bodyList; while (_local1) { if ((((_local1.m_userData is Sprite)) || ((_local1.m_userData is Bitmap)))){ _local1.m_userData.x = (_local1.GetPosition().x * m_world.m_debugDraw.m_drawScale); _local1.m_userData.y = (_local1.GetPosition().y * m_world.m_debugDraw.m_drawScale); _local1.m_userData.rotation = ((_local1.GetAngle() * (180 / Math.PI)) % 360); }; _local1 = _local1.m_next; }; } } }//package Clases.BasicEngine
Section 86
//OffButtonResources (Clases.BasicScreens.ClassResources.OffButtonResources) package Clases.BasicScreens.ClassResources { import flash.display.*; public class OffButtonResources { private const UP_bitmap:Class; private const OVER_bitmap:Class; private const DOWN_bitmap:Class; public function OffButtonResources(){ UP_bitmap = OffButtonResources_UP_bitmap; OVER_bitmap = OffButtonResources_OVER_bitmap; DOWN_bitmap = OffButtonResources_DOWN_bitmap; super(); } public function createDownBitmap():Bitmap{ var _local1:Bitmap = (new DOWN_bitmap() as Bitmap); return (_local1); } public function createUpBitmap():Bitmap{ var _local1:Bitmap = (new UP_bitmap() as Bitmap); return (_local1); } public function createOverBitmap():Bitmap{ var _local1:Bitmap = (new OVER_bitmap() as Bitmap); return (_local1); } } }//package Clases.BasicScreens.ClassResources
Section 87
//OffButtonResources_DOWN_bitmap (Clases.BasicScreens.ClassResources.OffButtonResources_DOWN_bitmap) package Clases.BasicScreens.ClassResources { import mx.core.*; public class OffButtonResources_DOWN_bitmap extends BitmapAsset { } }//package Clases.BasicScreens.ClassResources
Section 88
//OffButtonResources_OVER_bitmap (Clases.BasicScreens.ClassResources.OffButtonResources_OVER_bitmap) package Clases.BasicScreens.ClassResources { import mx.core.*; public class OffButtonResources_OVER_bitmap extends BitmapAsset { } }//package Clases.BasicScreens.ClassResources
Section 89
//OffButtonResources_UP_bitmap (Clases.BasicScreens.ClassResources.OffButtonResources_UP_bitmap) package Clases.BasicScreens.ClassResources { import mx.core.*; public class OffButtonResources_UP_bitmap extends BitmapAsset { } }//package Clases.BasicScreens.ClassResources
Section 90
//OnButtonResources (Clases.BasicScreens.ClassResources.OnButtonResources) package Clases.BasicScreens.ClassResources { import flash.display.*; public class OnButtonResources { private const UP_bitmap:Class; private const OVER_bitmap:Class; private const DOWN_bitmap:Class; public function OnButtonResources(){ UP_bitmap = OnButtonResources_UP_bitmap; OVER_bitmap = OnButtonResources_OVER_bitmap; DOWN_bitmap = OnButtonResources_DOWN_bitmap; super(); } public function createDownBitmap():Bitmap{ var _local1:Bitmap = (new DOWN_bitmap() as Bitmap); return (_local1); } public function createUpBitmap():Bitmap{ var _local1:Bitmap = (new UP_bitmap() as Bitmap); return (_local1); } public function createOverBitmap():Bitmap{ var _local1:Bitmap = (new OVER_bitmap() as Bitmap); return (_local1); } } }//package Clases.BasicScreens.ClassResources
Section 91
//OnButtonResources_DOWN_bitmap (Clases.BasicScreens.ClassResources.OnButtonResources_DOWN_bitmap) package Clases.BasicScreens.ClassResources { import mx.core.*; public class OnButtonResources_DOWN_bitmap extends BitmapAsset { } }//package Clases.BasicScreens.ClassResources
Section 92
//OnButtonResources_OVER_bitmap (Clases.BasicScreens.ClassResources.OnButtonResources_OVER_bitmap) package Clases.BasicScreens.ClassResources { import mx.core.*; public class OnButtonResources_OVER_bitmap extends BitmapAsset { } }//package Clases.BasicScreens.ClassResources
Section 93
//OnButtonResources_UP_bitmap (Clases.BasicScreens.ClassResources.OnButtonResources_UP_bitmap) package Clases.BasicScreens.ClassResources { import mx.core.*; public class OnButtonResources_UP_bitmap extends BitmapAsset { } }//package Clases.BasicScreens.ClassResources
Section 94
//Cowntdown (Clases.BasicScreens.Cowntdown) package Clases.BasicScreens { import flash.display.*; import gs.*; import gs.easing.*; import Clases.Font.*; import Clases.Text.*; public class Cowntdown extends Sprite { private var third:Text; private var vars:Object; private var first:Text; private var second:Text; private var optionsBonusText:Object; private var fourth:Text; private function generateScreen():void{ var first:Text; var addSecond:Function; var addThird:Function; var addfourth:Function; addSecond = function ():void{ removeChild(first); second = new Text(); second.text = "2"; second.y = 100; second.setTextStyle(optionsBonusText); second.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(second); TweenMax.to(second, 1, {alpha:0, onComplete:addThird, ease:Expo.easeIn}); }; addThird = function ():void{ removeChild(second); third = new Text(); third.text = "1"; third.y = 100; third.setTextStyle(optionsBonusText); third.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(third); TweenMax.to(third, 1, {alpha:0, onComplete:addfourth, ease:Expo.easeIn}); }; addfourth = function ():void{ fourth = new Text(); fourth.text = "Go!"; fourth.y = 100; fourth.setTextStyle(optionsBonusText); fourth.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(fourth); TweenMax.to(fourth, 1, {alpha:0, ease:Expo.easeIn}); }; var format:FontResources = new FontResources(); optionsBonusText = {width:660, height:420, color:11403007, isBold:true, size:95, customFont:format.getA_Font_For_The_Computer_People_Font()}; first = new Text(); first.text = "3"; first.y = 100; first.setTextStyle(optionsBonusText); first.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(first); TweenMax.to(first, 1, {alpha:0, onComplete:addSecond, ease:Expo.easeIn}); } public function init(_arg1:Object=null):void{ vars = _arg1; generateScreen(); } private function removeCurrentScreen():void{ Sprite(vars.padre).removeChild(this); } } }//package Clases.BasicScreens
Section 95
//GameOver (Clases.BasicScreens.GameOver) package Clases.BasicScreens { import flash.display.*; import Clases.Font.*; import Clases.Text.*; public class GameOver extends Sprite { private var vars:Object; private function generateScreen():void{ var _local4:Text; var _local5:Text; var _local1:Sprite = new Sprite(); addChild(_local1); _local1.graphics.beginFill(52223); _local1.graphics.drawRect(0, 0, 660, 420); _local1.graphics.endFill(); _local1.blendMode = BlendMode.MULTIPLY; var _local2:FontResources = new FontResources(); var _local3:Text = new Text(); _local3.text = "oooops!!"; _local3.x = 0; _local3.y = 120; _local3.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:38, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local3.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(_local3); Main.actualLives--; if (Main.actualLives == 0){ _local4 = new Text(); _local4.text = "Game Over"; _local4.x = 0; _local4.y = 280; _local4.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:60, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local4.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(_local4); Main.reset_saved_data(); } else { _local5 = new Text(); _local5.text = ("Lifes Remaining: " + String(Main.actualLives)); _local5.x = 0; _local5.y = 250; _local5.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:30, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local5.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(_local5); }; } public function init(_arg1:Object=null):void{ vars = _arg1; generateScreen(); } } }//package Clases.BasicScreens
Section 96
//InitLevelScreen (Clases.BasicScreens.InitLevelScreen) package Clases.BasicScreens { import flash.display.*; import gs.*; import gs.easing.*; import Clases.Font.*; import Clases.Text.*; public class InitLevelScreen extends Sprite { private var vars:Object; private var optionsBonusText:Object; public function init(_arg1:Object=null):void{ vars = _arg1; generateScreen(); } private function generateScreen():void{ var _local1:FontResources = new FontResources(); optionsBonusText = {width:660, height:50, color:11403007, isBold:true, size:40, customFont:_local1.getA_Font_For_The_Computer_People_Font()}; var _local2:Text = new Text(); switch (vars.level){ case 1: _local2.text = "Tutorial"; break; case 14: _local2.text = "Final Level"; break; default: _local2.text = (("Level " + String(vars.level)) + String("/14")); break; }; _local2.y = 300; _local2.setTextStyle(optionsBonusText); _local2.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(_local2); TweenMax.to(_local2, 5, {alpha:0, onComplete:removeCurrentScreen, ease:Expo.easeIn}); } private function removeCurrentScreen():void{ Sprite(vars.padre).removeChild(this); } } }//package Clases.BasicScreens
Section 97
//NextLevelScreen (Clases.BasicScreens.NextLevelScreen) package Clases.BasicScreens { import flash.events.*; import flash.display.*; import Clases.Button.*; import Clases.Button.ButtonEfects.*; import Clases.Font.*; import Clases.Text.*; public class NextLevelScreen extends Sprite { private var display_bonus:Text; private var display_Score:Text; private var vars:Object; public function NextLevelScreen(_arg1:Object):void{ vars = _arg1; generateScreen(); } private function generateScreen():void{ var _local7:Text; var _local1:Sprite = new Sprite(); addChild(_local1); _local1.graphics.beginFill(52223); _local1.graphics.drawRect(0, 0, 660, 420); _local1.graphics.endFill(); _local1.blendMode = BlendMode.MULTIPLY; var _local2:FontResources = new FontResources(); var _local3:Text = new Text(); _local3.text = "Well Done"; _local3.x = 0; _local3.y = 25; _local3.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:100, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local3.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(_local3); if (Main.actualLevel == 14){ _local7 = new Text(); _local7.text = "You complete all the levels :)"; _local7.x = 0; _local7.y = 350; _local7.setTextStyle({width:660, height:150, color:11403007, isBold:true, size:30, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local7.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(_local7); }; var _local4:Text = new Text(); _local4.text = ("Lifes: " + String(vars.lifes_level)); _local4.x = 0; _local4.y = 150; _local4.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:20, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local4.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(_local4); display_bonus = new Text(); display_bonus.text = ("Bonus: " + String(vars.bonus_level)); display_bonus.x = 0; display_bonus.y = 180; display_bonus.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:20, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); display_bonus.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(display_bonus); display_Score = new Text(); display_Score.text = ("Total Score: " + String(Main.currentScore)); display_Score.x = 0; display_Score.y = 210; display_Score.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:20, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); display_Score.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(display_Score); var _local5:GameButtonFreeGames = new GameButtonFreeGames({y:14, width:200, height:25, texto:"More Games", size:20, skins:new ButtonResource(), efect:new ButtonEfectOne()}); addChild(_local5); _local5.x = 400; _local5.y = 370; var _local6:GameButton = new GameButton({y:14, width:200, height:25, texto:"Continue", size:20, skins:new ButtonResource(), efect:new ButtonEfectOne()}); addChild(_local6); _local6.x = 100; _local6.y = 370; _local6.addEventListener(MouseEvent.CLICK, continue_Game_Event, false, 0, true); addEventListener(Event.ENTER_FRAME, transferScore); } private function transferScore(_arg1:Event):void{ var _local4:Text; var _local2:FontResources = new FontResources(); var _local3:int; while (_local3 < 5) { if (vars.bonus_level <= 0){ _local4 = new Text(); _local4.text = ("Total Score: " + String(Main.currentScore)); _local4.x = 0; _local4.y = 300; _local4.setTextStyle({width:660, height:75, color:11403007, isBold:true, size:35, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local4.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addChild(_local4); removeEventListener(Event.ENTER_FRAME, transferScore); break; } else { vars.bonus_level = (vars.bonus_level - 1); Main.currentScore = (Main.currentScore + 1); display_bonus.text = ("Bonus: " + String(vars.bonus_level)); display_bonus.x = 0; display_bonus.y = 180; display_bonus.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:20, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); display_bonus.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); display_Score.text = ("Total Score: " + String(Main.currentScore)); display_Score.x = 0; display_Score.y = 210; display_Score.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:20, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); display_Score.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); }; _local3++; }; } private function continue_Game_Event(_arg1:MouseEvent):void{ Main.actualLevel++; vars.padre.reset(); } } }//package Clases.BasicScreens
Section 98
//PauseGame (Clases.BasicScreens.PauseGame) package Clases.BasicScreens { import flash.display.*; import Clases.Button.*; import Clases.Button.ButtonEfects.*; import Clases.Font.*; import Clases.Text.*; public class PauseGame extends Sprite { private var instructions:Text; private var title:Text; private var saltoButton:GameButtonMoreGamesForYourSite; private var square:Sprite; public function PauseGame():void{ title = new Text(); instructions = new Text(); super(); square = new Sprite(); addChild(square); square.graphics.beginFill(52223); square.graphics.drawRect(0, 0, 660, 420); square.graphics.endFill(); square.blendMode = BlendMode.MULTIPLY; var _local1:FontResources = new FontResources(); title.text = "Pause"; title.x = 0; title.y = 25; title.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:100, customFont:_local1.getA_Font_For_The_Computer_People_Font()}); title.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); instructions.text = "press (p) to continue"; instructions.x = 0; instructions.y = 250; instructions.setTextStyle({width:660, height:250, color:11403007, isBold:true, size:25, customFont:_local1.getA_Font_For_The_Computer_People_Font()}); instructions.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); addScreen(); saltoButton = new GameButtonMoreGamesForYourSite({y:14, width:200, height:25, texto:"More Games", size:20, skins:new ButtonResource(), efect:new ButtonEfectNone()}); addChild(saltoButton); saltoButton.x = 240; saltoButton.y = 360; } public function addScreen():void{ addChild(square); addChild(title); addChild(instructions); } } }//package Clases.BasicScreens
Section 99
//SounOnOf (Clases.BasicScreens.SounOnOf) package Clases.BasicScreens { import flash.events.*; import flash.display.*; import Clases.Game.Veicle.*; import Clases.Button.*; import Clases.Button.ButtonEfects.*; import Clases.Font.*; import Clases.Text.*; import flash.media.*; import Clases.BasicScreens.ClassResources.*; public class SounOnOf extends Sprite { private var cliclkOn:GameButton; private var transformSound:SoundTransform; private var myCar:Grooming; private var texto:Text; private var cliclkOff:GameButton; private var colorTextOn:Object; private var format:FontResources; private var colorTextOff:Object; public function SounOnOf():void{ transformSound = new SoundTransform(); format = new FontResources(); super(); cliclkOn = new GameButton({y:0, width:0, height:0, texto:"", size:25, skins:new OnButtonResources(), efect:new ButtonEfectNone()}); cliclkOff = new GameButton({y:0, width:0, height:0, texto:"", size:25, skins:new OffButtonResources(), efect:new ButtonEfectNone()}); if (Main.sounOption){ addChild(cliclkOn); } else { addChild(cliclkOff); }; cliclkOn.addEventListener(MouseEvent.CLICK, removeOnButton, false, 0, true); cliclkOff.addEventListener(MouseEvent.CLICK, removeOfButton, false, 0, true); this.x = 636; this.y = 398; } public function set car(_arg1:Grooming):void{ myCar = _arg1; } public function removeOfButton(_arg1:MouseEvent):void{ removeChild(cliclkOff); addChild(cliclkOn); transformSound.volume = 1; Main.sounOption = true; SoundMixer.soundTransform = transformSound; cliclkOn.addEventListener(MouseEvent.CLICK, removeOnButton, false, 0, true); myCar.addFocus(); } public function removeOnButton(_arg1:MouseEvent):void{ removeChild(cliclkOn); addChild(cliclkOff); Main.sounOption = false; transformSound.volume = 0; SoundMixer.soundTransform = transformSound; cliclkOff.addEventListener(MouseEvent.CLICK, removeOfButton, false, 0, true); myCar.addFocus(); } } }//package Clases.BasicScreens
Section 100
//ButtonEfectNone (Clases.Button.ButtonEfects.ButtonEfectNone) package Clases.Button.ButtonEfects { public class ButtonEfectNone { private const REVMOVE_EFECT_TIME:Number = 1; private const ADD_EFECT_TIME:Number = 1; public function removeEfect():Object{ return ({}); } public function addEfect():Object{ return ({}); } public function addEfectTime():Number{ return (ADD_EFECT_TIME); } public function clickefect():void{ } public function removeEfectTime():Number{ return (REVMOVE_EFECT_TIME); } } }//package Clases.Button.ButtonEfects
Section 101
//ButtonEfectOne (Clases.Button.ButtonEfects.ButtonEfectOne) package Clases.Button.ButtonEfects { import Clases.Game.Levels.AllLevels.Resources.*; public class ButtonEfectOne { private const REVMOVE_EFECT_TIME:Number = 1; private const ADD_EFECT_TIME:Number = 1; private var soundClick:ResourceSound; public function ButtonEfectOne(){ soundClick = new ResourceSound(); super(); } public function addEfectTime():Number{ return (ADD_EFECT_TIME); } public function clickefect():void{ soundClick.playClick(); } public function removeEfect():Object{ return ({}); } public function addEfect():Object{ return ({}); } public function removeEfectTime():Number{ return (REVMOVE_EFECT_TIME); } } }//package Clases.Button.ButtonEfects
Section 102
//ButtonResource (Clases.Button.ButtonResource) package Clases.Button { import flash.display.*; public class ButtonResource { private const UP_bitmap:Class; private const OVER_bitmap:Class; private const DOWN_bitmap:Class; public function ButtonResource(){ UP_bitmap = ButtonResource_UP_bitmap; DOWN_bitmap = ButtonResource_DOWN_bitmap; OVER_bitmap = ButtonResource_OVER_bitmap; super(); } public function createDownBitmap():Bitmap{ var _local1:Bitmap = (new DOWN_bitmap() as Bitmap); return (_local1); } public function createUpBitmap():Bitmap{ var _local1:Bitmap = (new UP_bitmap() as Bitmap); return (_local1); } public function createOverBitmap():Bitmap{ var _local1:Bitmap = (new OVER_bitmap() as Bitmap); return (_local1); } } }//package Clases.Button
Section 103
//ButtonResource_DOWN_bitmap (Clases.Button.ButtonResource_DOWN_bitmap) package Clases.Button { import mx.core.*; public class ButtonResource_DOWN_bitmap extends BitmapAsset { } }//package Clases.Button
Section 104
//ButtonResource_OVER_bitmap (Clases.Button.ButtonResource_OVER_bitmap) package Clases.Button { import mx.core.*; public class ButtonResource_OVER_bitmap extends BitmapAsset { } }//package Clases.Button
Section 105
//ButtonResource_UP_bitmap (Clases.Button.ButtonResource_UP_bitmap) package Clases.Button { import mx.core.*; public class ButtonResource_UP_bitmap extends BitmapAsset { } }//package Clases.Button
Section 106
//ButtonResourceSmall (Clases.Button.ButtonResourceSmall) package Clases.Button { import flash.display.*; public class ButtonResourceSmall { private const UP_bitmap:Class; private const OVER_bitmap:Class; private const DOWN_bitmap:Class; public function ButtonResourceSmall(){ UP_bitmap = ButtonResourceSmall_UP_bitmap; DOWN_bitmap = ButtonResourceSmall_DOWN_bitmap; OVER_bitmap = ButtonResourceSmall_OVER_bitmap; super(); } public function createDownBitmap():Bitmap{ var _local1:Bitmap = (new DOWN_bitmap() as Bitmap); return (_local1); } public function createUpBitmap():Bitmap{ var _local1:Bitmap = (new UP_bitmap() as Bitmap); return (_local1); } public function createOverBitmap():Bitmap{ var _local1:Bitmap = (new OVER_bitmap() as Bitmap); return (_local1); } } }//package Clases.Button
Section 107
//ButtonResourceSmall_DOWN_bitmap (Clases.Button.ButtonResourceSmall_DOWN_bitmap) package Clases.Button { import mx.core.*; public class ButtonResourceSmall_DOWN_bitmap extends BitmapAsset { } }//package Clases.Button
Section 108
//ButtonResourceSmall_OVER_bitmap (Clases.Button.ButtonResourceSmall_OVER_bitmap) package Clases.Button { import mx.core.*; public class ButtonResourceSmall_OVER_bitmap extends BitmapAsset { } }//package Clases.Button
Section 109
//ButtonResourceSmall_UP_bitmap (Clases.Button.ButtonResourceSmall_UP_bitmap) package Clases.Button { import mx.core.*; public class ButtonResourceSmall_UP_bitmap extends BitmapAsset { } }//package Clases.Button
Section 110
//CustomButton (Clases.Button.CustomButton) package Clases.Button { import flash.display.*; import gs.*; import gs.easing.*; public class CustomButton extends SimpleButton { public var upSprite:Sprite; public var downSprite:Sprite; public var overSprite:Sprite; public function CustomButton(_arg1:Object):void{ var _local2:ButtonResource = new ButtonResource(); upSprite = new Sprite(); var _local3:Bitmap = _arg1.skins.createUpBitmap(); upSprite.addChild(_local3); downSprite = new Sprite(); var _local4:Bitmap = _arg1.skins.createDownBitmap(); downSprite.addChild(_local4); overSprite = new Sprite(); var _local5:Bitmap = _arg1.skins.createOverBitmap(); overSprite.addChild(_local5); this.upState = upSprite; this.overState = overSprite; this.downState = downSprite; this.hitTestState = upSprite; } } }//package Clases.Button
Section 111
//GameButton (Clases.Button.GameButton) package Clases.Button { import flash.events.*; import gs.*; import gs.easing.*; import Clases.Font.*; import Clases.Text.*; public class GameButton extends CustomButton { private var effecto:Object; public function GameButton(_arg1:Object){ super(_arg1); effecto = _arg1; this.addEventListener(MouseEvent.MOUSE_OVER, addEfect); this.addEventListener(MouseEvent.MOUSE_OUT, removeEfect); this.addEventListener(MouseEvent.CLICK, addClickEfect); var _local2:FontResources = new FontResources(); var _local3:Text = new Text(); _local3.text = _arg1.texto; _local3.setTextStyle({width:_arg1.width, height:_arg1.height, color:11403007, isBold:true, size:_arg1.size, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local3.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); _local3.y = _arg1.y; super.upSprite.addChild(_local3); var _local4:Text = new Text(); _local4.text = _arg1.texto; _local4.setTextStyle({width:_arg1.width, height:_arg1.height, color:7242495, isBold:true, size:_arg1.size, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local4.addTextEfect({color:11403007, alpha:1, blurX:10, blurY:10, strength:15, quality:1}); _local4.y = _arg1.y; super.overSprite.addChild(_local4); var _local5:Text = new Text(); _local5.text = _arg1.texto; _local5.setTextStyle({width:_arg1.width, height:_arg1.height, color:7242495, isBold:true, size:_arg1.size, customFont:_local2.getA_Font_For_The_Computer_People_Font()}); _local5.addTextEfect({color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}); _local5.y = _arg1.y; super.downSprite.addChild(_local5); } private function removeEfect(_arg1:MouseEvent):void{ TweenMax.to(this, effecto.efect.removeEfectTime(), effecto.efect.removeEfect()); } private function addEfect(_arg1:MouseEvent):void{ TweenMax.to(this, effecto.efect.addEfectTime(), effecto.efect.addEfect()); } public function getSkinClass():Object{ return (effecto.skins); } private function addClickEfect(_arg1:MouseEvent):void{ effecto.efect.clickefect(); } } }//package Clases.Button
Section 112
//GameButtonFreeGames (Clases.Button.GameButtonFreeGames) package Clases.Button { import flash.events.*; import gs.*; import flash.net.*; import Clases.TrakingCode.*; import gs.easing.*; public class GameButtonFreeGames extends GameButton { private var googleCode:GoogleTrackingCode; private var effecto:Object; public function GameButtonFreeGames(_arg1:Object){ effecto = _arg1; super(_arg1); this.addEventListener(MouseEvent.CLICK, saltoAPortal); if (effecto.padre){ googleCode = new GoogleTrackingCode(effecto.padre, "UA-4982430-2"); }; } private function saltoAPortal(_arg1:MouseEvent):void{ if (effecto.padre){ googleCode.More_games(); }; var _local2:URLRequest = new URLRequest("http://www.i6.com/freegamesforyoursite.html"); navigateToURL(_local2, "_blank"); } } }//package Clases.Button
Section 113
//GameButtonMoreGamesForYourSite (Clases.Button.GameButtonMoreGamesForYourSite) package Clases.Button { import flash.events.*; import gs.*; import flash.net.*; import Clases.TrakingCode.*; import gs.easing.*; public class GameButtonMoreGamesForYourSite extends GameButton { private var googleCode:GoogleTrackingCode; private var effecto:Object; public function GameButtonMoreGamesForYourSite(_arg1:Object){ effecto = _arg1; super(_arg1); this.addEventListener(MouseEvent.CLICK, saltoAPortal); trace(effecto.padre); if (effecto.padre){ googleCode = new GoogleTrackingCode(effecto.padre, "UA-4982430-6"); }; } private function saltoAPortal(_arg1:MouseEvent):void{ if (effecto.padre){ googleCode.More_games(); }; var _local2:URLRequest = new URLRequest("http://www.i6.com/freegamesforyoursite.html"); navigateToURL(_local2, "_blank"); } } }//package Clases.Button
Section 114
//FontResources (Clases.Font.FontResources) package Clases.Font { import flash.text.*; public class FontResources { private var FirstFont:Class; public function FontResources(){ FirstFont = FontResources_FirstFont; super(); } public function getA_Font_For_The_Computer_People_Font():Font{ var _local1:Font = (new FirstFont() as Font); return (_local1); } } }//package Clases.Font
Section 115
//FontResources_FirstFont (Clases.Font.FontResources_FirstFont) package Clases.Font { import mx.core.*; public class FontResources_FirstFont extends FontAsset { } }//package Clases.Font
Section 116
//BackgroundMountains (Clases.Game.Backgrounds.BackgroundMountains) package Clases.Game.Backgrounds { import flash.display.*; import Clases.Game.Levels.LevelElements.*; public class BackgroundMountains extends Sprite { private var recursos:LevelBackgroundResources; private var vars:Object; public function BackgroundMountains(){ recursos = new LevelBackgroundResources(); super(); } public function init(_arg1:Object=null):void{ vars = _arg1; generate(); } public function createMountains(_arg1:Object):void{ var _local5:Bitmap; var _local6:int; var _local7:int; var _local8:Bitmap; var _local2:int = _arg1.x; var _local3:int = _arg1.y; var _local4:int; while (_local4 < (_arg1.cantX * 3.3)) { _local5 = recursos.create_Mountain_Up_bitmap(); addChild(_local5); _local5.y = (_local5.y + _local3); _local5.x = _local2; _local6 = (_local5.y + _local5.height); _local7 = 0; while (_local7 < _arg1.cantY) { _local8 = recursos.create_Mountain_Down_bitmap(); addChild(_local8); _local8.y = (_local8.y + _local6); _local8.x = _local2; _local6 = (_local8.y + _local8.height); _local7++; }; _local2 = (_local2 + _local5.width); _local4++; }; } private function generate():void{ var _local3:Bitmap; var _local4:Bitmap; var _local5:Bitmap; var _local1:int; var _local2:int; while (_local2 < vars.cantX) { _local3 = recursos.create_up_sky_bitmap(); addChild(_local3); _local3.x = _local1; _local4 = recursos.create_middle_sky_bitmap(); addChild(_local4); _local4.x = _local1; _local4.y = (_local4.y + _local3.height); _local5 = recursos.create_down_sky_bitmap(); addChild(_local5); _local5.y = (_local5.y + (_local4.y + _local4.height)); _local5.x = _local1; _local1 = (_local1 + _local5.width); _local2++; }; } public function removeAllChildsOfTheLevel():void{ var _local1:Array = new Array(); var _local2:int; while (_local2 < this.numChildren) { _local1.push(this.getChildAt(_local2)); _local2++; }; _local2 = 0; while (_local2 < _local1.length) { _local1[_local2].parent.removeChild(_local1[_local2]); _local1[_local2] = null; _local2++; }; } } }//package Clases.Game.Backgrounds
Section 117
//BridgeDown (Clases.Game.Backgrounds.BridgeDown) package Clases.Game.Backgrounds { import flash.display.*; import flash.geom.*; import org.flintparticles.common.initializers.*; import org.flintparticles.common.actions.*; import org.flintparticles.common.counters.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.renderers.*; import org.flintparticles.twoD.actions.*; import org.flintparticles.twoD.emitters.*; import org.flintparticles.twoD.initializers.*; import org.flintparticles.common.displayObjects.*; public class BridgeDown extends Sprite { private var renderer:BitmapRenderer; private var vars:Object; private var emitter:Emitter2D; private var status:Boolean;// = true public function BridgeDown(){ emitter = new Emitter2D(); super(); } public function init(_arg1:Object=null):void{ vars = _arg1; starToDisplay(); } private function starToDisplay():void{ emitter.counter = new Blast(100); emitter.addInitializer(new SharedImage(new Dot(3))); emitter.addInitializer(new Position(new RectangleZone(0, 25, (vars.width - 25), 0))); emitter.addInitializer(new Velocity(new PointZone(new Point(0, 50)))); emitter.addInitializer(new ScaleImageInit(radomNumber(0.6, 1), radomNumber(1.1, 2))); emitter.addInitializer(new Lifetime(radomNumber(1, 4))); emitter.addAction(new Fade(1, radomNumber(0, 1))); emitter.addAction(new Move()); emitter.addAction(new Age()); emitter.addAction(new Accelerate(0, 220)); emitter.addAction(new DeathZone(new RectangleZone(-10, -10, 600, 600), true)); renderer = new BitmapRenderer(new Rectangle(-10, -10, 600, 600)); renderer.addEmitter(emitter); addChild(renderer); emitter.start(); } private function radomNumber(_arg1:Number, _arg2:Number):Number{ return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1)); } } }//package Clases.Game.Backgrounds
Section 118
//Snow (Clases.Game.Backgrounds.Snow) package Clases.Game.Backgrounds { import flash.display.*; import gs.*; import flash.geom.*; import org.flintparticles.common.events.*; import org.flintparticles.common.initializers.*; import org.flintparticles.common.actions.*; import org.flintparticles.common.counters.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.renderers.*; import org.flintparticles.twoD.actions.*; import org.flintparticles.twoD.emitters.*; import org.flintparticles.twoD.initializers.*; import org.flintparticles.common.displayObjects.*; public class Snow extends Sprite { private var vars:Object; private var emitter:Emitter2D; private var status:Boolean;// = true public function Snow(){ emitter = new Emitter2D(); super(); } private function can_restart(_arg1:EmitterEvent):void{ status = true; } private function radomNumber(_arg1:Number, _arg2:Number):Number{ return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1)); } private function startSnow():void{ emitter.counter = new Blast(1); emitter.addInitializer(new SharedImage(new Dot(vars.sizeDot))); emitter.addInitializer(new Position(new LineZone(new Point(0, 0), new Point(2, 0)))); emitter.addInitializer(new Velocity(new PointZone(new Point(0, -50)))); emitter.addInitializer(new ScaleImageInit(vars.scaleImInit, vars.scaleImEnd)); emitter.addInitializer(new Lifetime(radomNumber(0.5, 4))); emitter.addAction(new Fade(1, vars.fadeFinish)); emitter.addAction(new Move()); emitter.addAction(new Age()); emitter.addAction(new Accelerate(0, 150)); emitter.addAction(new DeathZone(new RectangleZone(-50, -50, 75, 50), true)); emitter.addEventListener(EmitterEvent.EMITTER_EMPTY, can_restart); var _local1:BitmapRenderer = new BitmapRenderer(new Rectangle(-50, -50, 75, 50)); _local1.addEmitter(emitter); addChild(_local1); } public function startParticles():void{ emitter.start(); status = false; } public function init(_arg1:Object=null):void{ vars = _arg1; TweenMax.to(this, radomNumber(3.1, 10), {onComplete:startSnow}); } public function get emiterStatus():Boolean{ return (status); } } }//package Clases.Game.Backgrounds
Section 119
//SnowBackgound (Clases.Game.Backgrounds.SnowBackgound) package Clases.Game.Backgrounds { import flash.display.*; import flash.geom.*; import org.flintparticles.common.initializers.*; import org.flintparticles.common.counters.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.renderers.*; import org.flintparticles.twoD.actions.*; import org.flintparticles.twoD.emitters.*; import org.flintparticles.twoD.initializers.*; import org.flintparticles.common.displayObjects.*; public class SnowBackgound extends Sprite { private var vars:Object; private function startSnow():void{ var _local1:Emitter2D = new Emitter2D(); _local1.counter = new Steady(vars.cant); _local1.addInitializer(new ImageClass(RadialDot, 3)); _local1.addInitializer(new Position(new LineZone(new Point(-5, -5), new Point(660, -5)))); _local1.addInitializer(new Velocity(new PointZone(new Point(0, 35)))); _local1.addInitializer(new ScaleImageInit(0.2, 3)); _local1.addAction(new Move()); _local1.addAction(new DeathZone(new RectangleZone(-10, -10, 660, 420), true)); _local1.addAction(new RandomDrift(30, 30)); var _local2:DisplayObjectRenderer = new DisplayObjectRenderer(); _local2.addEmitter(_local1); addChild(_local2); _local1.start(); _local1.runAhead(10); } public function init(_arg1:Object=null):void{ vars = _arg1; startSnow(); } } }//package Clases.Game.Backgrounds
Section 120
//WaterBackground (Clases.Game.Backgrounds.WaterBackground) package Clases.Game.Backgrounds { import flash.display.*; import Clases.Game.Levels.LevelElements.*; public class WaterBackground extends Sprite { private var lastX:int;// = 0 private var lastY:int;// = 0 private var recursos:LevelBackgroundResources; private var vars:Object; public function WaterBackground(){ recursos = new LevelBackgroundResources(); super(); } public function init(_arg1:Object=null):void{ vars = _arg1; generate(); } private function generate():void{ techo(); lastX = 0; cuerpo(); } private function techo():void{ var _local2:Bitmap; var _local1:int; while (_local1 < vars.cantX) { _local2 = recursos.create_up_water_bitmap(); addChild(_local2); _local2.x = lastX; lastX = (_local2.x + _local2.width); lastY = _local2.height; _local1++; }; } private function cuerpo():void{ var _local1:Bitmap; var _local3:int; var _local2:int; while (_local2 < vars.cantY) { _local3 = 0; while (_local3 < vars.cantX) { _local1 = recursos.create_down_water_bitmap(); addChild(_local1); _local1.x = lastX; _local1.y = lastY; lastX = (_local1.x + _local1.width); _local3++; }; lastX = vars.x; lastY = (_local1.y + _local1.height); _local2++; }; } public function removeAllChild():void{ var _local1:Array = new Array(); var _local2:int; while (_local2 < this.numChildren) { _local1.push(this.getChildAt(_local2)); _local2++; }; _local2 = 0; while (_local2 < _local1.length) { _local1[_local2].parent.removeChild(_local1[_local2]); _local1[_local2] = null; _local2++; }; } } }//package Clases.Game.Backgrounds
Section 121
//WindTube (Clases.Game.Backgrounds.WindTube) package Clases.Game.Backgrounds { import flash.display.*; import flash.geom.*; import org.flintparticles.common.initializers.*; import org.flintparticles.common.actions.*; import org.flintparticles.common.counters.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.renderers.*; import org.flintparticles.twoD.actions.*; import org.flintparticles.twoD.emitters.*; import org.flintparticles.twoD.initializers.*; import org.flintparticles.common.displayObjects.*; public class WindTube extends Sprite { private var vars:Object; private function startWind():void{ var _local1:Emitter2D = new Emitter2D(); _local1.counter = new Steady(10); _local1.addInitializer(new SharedImage(new Line(6, 4294967295))); _local1.addInitializer(new Position(new LineZone(new Point(0, 600), new Point(vars.lenght, 600)))); _local1.addInitializer(new Velocity(new PointZone(new Point(0, 30)))); _local1.addInitializer(new ScaleImageInit(0.2, 2)); _local1.addInitializer(new Lifetime(1, 3)); _local1.addAction(new Fade(1, 0)); _local1.addAction(new Age()); _local1.addAction(new Move()); _local1.addAction(new Accelerate(0, -300)); _local1.addAction(new DeathZone(new RectangleZone(-10, -10, (vars.lenght + 10), 620), true)); _local1.addAction(new RotateToDirection()); var _local2:BitmapRenderer = new BitmapRenderer(new Rectangle(0, 0, vars.lenght, 620)); _local2.addEmitter(_local1); addChild(_local2); _local1.start(); _local1.runAhead(10); } public function init(_arg1:Object=null):void{ vars = _arg1; startWind(); } } }//package Clases.Game.Backgrounds
Section 122
//BackgroundImageLevel1A (Clases.Game.Levels.AllLevels.Resources.BackgroundImageLevel1A) package Clases.Game.Levels.AllLevels.Resources { import flash.display.*; public class BackgroundImageLevel1A extends Bitmap { } }//package Clases.Game.Levels.AllLevels.Resources
Section 123
//BackgroundImageLevel1B (Clases.Game.Levels.AllLevels.Resources.BackgroundImageLevel1B) package Clases.Game.Levels.AllLevels.Resources { import flash.display.*; public class BackgroundImageLevel1B extends Bitmap { } }//package Clases.Game.Levels.AllLevels.Resources
Section 124
//ResourcesBack (Clases.Game.Levels.AllLevels.Resources.ResourcesBack) package Clases.Game.Levels.AllLevels.Resources { import flash.display.*; public class ResourcesBack { private const Btmap_Backtround:Class; public function ResourcesBack(){ Btmap_Backtround = ResourcesBack_Btmap_Backtround; super(); } public function create_Back_Level():Bitmap{ var _local1:Bitmap = (new Btmap_Backtround() as Bitmap); return (_local1); } } }//package Clases.Game.Levels.AllLevels.Resources
Section 125
//ResourcesBack_Btmap_Backtround (Clases.Game.Levels.AllLevels.Resources.ResourcesBack_Btmap_Backtround) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesBack_Btmap_Backtround extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 126
//ResourcesLevel1 (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1) package Clases.Game.Levels.AllLevels.Resources { import flash.display.*; public class ResourcesLevel1 { private const btmap_level_13a:Class; private const btmap_level_13b:Class; private const btmap_level12_a:Class; private const btmap_level12_b:Class; private const btmap_level3_a:Class; private const btmap_level3_b:Class; private const btmap_level7_a:Class; private const btmap_level7_b:Class; private const btmap_level_14c:Class; private const btmap_level11_b:Class; private const btmap_level2_a:Class; private const btmap_level2_b:Class; private const btmap_level6_a:Class; private const btmap_level11_a:Class; private const btmap_level6_b:Class; private const btmap_level10_a:Class; private const btmap_level10_b:Class; private const btmap_level1_a:Class; private const btmap_level1_b:Class; private const btmap_level5_a:Class; private const btmap_level5_b:Class; private const btmap_level9_a:Class; private const btmap_level9_b:Class; private const btmap_level_14a1:Class; private const btmap_level_14a2:Class; private const btmap_level_14b1:Class; private const btmap_level_14b2:Class; private const btmap_level4_a:Class; private const btmap_level4_b:Class; private const btmap_level8_a:Class; private const btmap_level8_b:Class; private var skinA1:Bitmap; private var skinA2:Bitmap; private var skinA:Bitmap; private var skinB:Bitmap; private var skinB2:Bitmap; private var skinC:Bitmap; private var skinB1:Bitmap; public function ResourcesLevel1(){ btmap_level1_a = ResourcesLevel1_btmap_level1_a; btmap_level1_b = ResourcesLevel1_btmap_level1_b; btmap_level2_a = ResourcesLevel1_btmap_level2_a; btmap_level2_b = ResourcesLevel1_btmap_level2_b; btmap_level3_a = ResourcesLevel1_btmap_level3_a; btmap_level3_b = ResourcesLevel1_btmap_level3_b; btmap_level4_a = ResourcesLevel1_btmap_level4_a; btmap_level4_b = ResourcesLevel1_btmap_level4_b; btmap_level5_a = ResourcesLevel1_btmap_level5_a; btmap_level5_b = ResourcesLevel1_btmap_level5_b; btmap_level6_a = ResourcesLevel1_btmap_level6_a; btmap_level6_b = ResourcesLevel1_btmap_level6_b; btmap_level7_a = ResourcesLevel1_btmap_level7_a; btmap_level7_b = ResourcesLevel1_btmap_level7_b; btmap_level8_a = ResourcesLevel1_btmap_level8_a; btmap_level8_b = ResourcesLevel1_btmap_level8_b; btmap_level9_a = ResourcesLevel1_btmap_level9_a; btmap_level9_b = ResourcesLevel1_btmap_level9_b; btmap_level10_a = ResourcesLevel1_btmap_level10_a; btmap_level10_b = ResourcesLevel1_btmap_level10_b; btmap_level_14a1 = ResourcesLevel1_btmap_level_14a1; btmap_level_14a2 = ResourcesLevel1_btmap_level_14a2; btmap_level_14b1 = ResourcesLevel1_btmap_level_14b1; btmap_level_14b2 = ResourcesLevel1_btmap_level_14b2; btmap_level_14c = ResourcesLevel1_btmap_level_14c; btmap_level11_a = ResourcesLevel1_btmap_level11_a; btmap_level11_b = ResourcesLevel1_btmap_level11_b; btmap_level12_a = ResourcesLevel1_btmap_level12_a; btmap_level12_b = ResourcesLevel1_btmap_level12_b; btmap_level_13a = ResourcesLevel1_btmap_level_13a; btmap_level_13b = ResourcesLevel1_btmap_level_13b; super(); } public function create_level11A():Bitmap{ skinA = (new btmap_level11_a() as Bitmap); return (skinA); } public function create_level11B():Bitmap{ skinB = (new btmap_level11_b() as Bitmap); return (skinB); } public function create_level6A():Bitmap{ skinA = (new btmap_level6_a() as Bitmap); return (skinA); } public function create_level6B():Bitmap{ skinB = (new btmap_level6_b() as Bitmap); return (skinB); } public function create_level12A():Bitmap{ skinA = (new btmap_level12_a() as Bitmap); return (skinA); } public function create_level7B():Bitmap{ skinB = (new btmap_level7_b() as Bitmap); return (skinB); } public function create_level7A():Bitmap{ skinA = (new btmap_level7_a() as Bitmap); return (skinA); } public function create_level12B():Bitmap{ skinB = (new btmap_level12_b() as Bitmap); return (skinB); } public function create_level13A():Bitmap{ skinA = (new btmap_level_13a() as Bitmap); return (skinA); } public function create_level13B():Bitmap{ skinB = (new btmap_level_13b() as Bitmap); return (skinB); } public function create_level8A():Bitmap{ skinA = (new btmap_level8_a() as Bitmap); return (skinA); } public function create_level8B():Bitmap{ skinB = (new btmap_level8_b() as Bitmap); return (skinB); } public function create_level9A():Bitmap{ skinA = (new btmap_level9_a() as Bitmap); return (skinA); } public function create_level9B():Bitmap{ skinB = (new btmap_level9_b() as Bitmap); return (skinB); } public function create_level_14A1():Bitmap{ skinA1 = (new btmap_level_14a1() as Bitmap); return (skinA1); } public function create_level_14A2():Bitmap{ skinA2 = (new btmap_level_14a2() as Bitmap); return (skinA2); } public function create_level1A():Bitmap{ skinA = (new btmap_level1_a() as Bitmap); return (skinA); } public function create_level1B():Bitmap{ skinB = (new btmap_level1_b() as Bitmap); return (skinB); } public function remove():void{ skinB.bitmapData.dispose(); skinA.bitmapData.dispose(); skinA = null; skinB = null; } public function create_level2A():Bitmap{ skinA = (new btmap_level2_a() as Bitmap); return (skinA); } public function create_level2B():Bitmap{ skinB = (new btmap_level2_b() as Bitmap); return (skinB); } public function create_level_14B1():Bitmap{ skinB1 = (new btmap_level_14b1() as Bitmap); return (skinB1); } public function create_level_14B2():Bitmap{ skinB2 = (new btmap_level_14b2() as Bitmap); return (skinB2); } public function create_level3A():Bitmap{ skinA = (new btmap_level3_a() as Bitmap); return (skinA); } public function create_level3B():Bitmap{ skinB = (new btmap_level3_b() as Bitmap); return (skinB); } public function create_level_14C():Bitmap{ skinC = (new btmap_level_14c() as Bitmap); return (skinC); } public function create_level4A():Bitmap{ skinA = (new btmap_level4_a() as Bitmap); return (skinA); } public function create_level4B():Bitmap{ skinB = (new btmap_level4_b() as Bitmap); return (skinB); } public function create_level10A():Bitmap{ skinA = (new btmap_level10_a() as Bitmap); return (skinA); } public function create_level10B():Bitmap{ skinB = (new btmap_level10_b() as Bitmap); return (skinB); } public function create_level5A():Bitmap{ skinA = (new btmap_level5_a() as Bitmap); return (skinA); } public function create_level5B():Bitmap{ skinB = (new btmap_level5_b() as Bitmap); return (skinB); } } }//package Clases.Game.Levels.AllLevels.Resources
Section 127
//ResourcesLevel1_btmap_level_13a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_13a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level_13a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 128
//ResourcesLevel1_btmap_level_13b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_13b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level_13b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 129
//ResourcesLevel1_btmap_level_14a1 (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14a1) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level_14a1 extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 130
//ResourcesLevel1_btmap_level_14a2 (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14a2) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level_14a2 extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 131
//ResourcesLevel1_btmap_level_14b1 (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14b1) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level_14b1 extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 132
//ResourcesLevel1_btmap_level_14b2 (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14b2) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level_14b2 extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 133
//ResourcesLevel1_btmap_level_14c (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14c) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level_14c extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 134
//ResourcesLevel1_btmap_level1_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level1_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level1_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 135
//ResourcesLevel1_btmap_level1_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level1_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level1_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 136
//ResourcesLevel1_btmap_level10_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level10_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level10_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 137
//ResourcesLevel1_btmap_level10_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level10_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level10_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 138
//ResourcesLevel1_btmap_level11_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level11_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level11_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 139
//ResourcesLevel1_btmap_level11_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level11_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level11_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 140
//ResourcesLevel1_btmap_level12_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level12_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level12_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 141
//ResourcesLevel1_btmap_level12_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level12_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level12_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 142
//ResourcesLevel1_btmap_level2_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level2_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level2_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 143
//ResourcesLevel1_btmap_level2_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level2_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level2_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 144
//ResourcesLevel1_btmap_level3_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level3_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level3_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 145
//ResourcesLevel1_btmap_level3_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level3_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level3_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 146
//ResourcesLevel1_btmap_level4_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level4_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level4_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 147
//ResourcesLevel1_btmap_level4_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level4_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level4_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 148
//ResourcesLevel1_btmap_level5_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level5_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level5_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 149
//ResourcesLevel1_btmap_level5_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level5_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level5_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 150
//ResourcesLevel1_btmap_level6_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level6_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level6_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 151
//ResourcesLevel1_btmap_level6_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level6_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level6_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 152
//ResourcesLevel1_btmap_level7_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level7_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level7_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 153
//ResourcesLevel1_btmap_level7_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level7_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level7_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 154
//ResourcesLevel1_btmap_level8_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level8_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level8_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 155
//ResourcesLevel1_btmap_level8_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level8_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level8_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 156
//ResourcesLevel1_btmap_level9_a (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level9_a) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level9_a extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 157
//ResourcesLevel1_btmap_level9_b (Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level9_b) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesLevel1_btmap_level9_b extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 158
//ResourceSound (Clases.Game.Levels.AllLevels.Resources.ResourceSound) package Clases.Game.Levels.AllLevels.Resources { import flash.media.*; public class ResourceSound { public var SoundMain:Class; private var mainChannel:SoundChannel; public var CabinHit:Class; public var SoundLevelMusic:Class; private var VOLUME:Number;// = 1 public var GameOutOfScreen:Class; private var levelChannel:SoundChannel; public var Shit:Class; public var SoundClick:Class; public var EndLEvel:Class; private var gameChannel:SoundChannel; public function ResourceSound(){ mainChannel = new SoundChannel(); levelChannel = new SoundChannel(); gameChannel = new SoundChannel(); SoundMain = ResourceSound_SoundMain; SoundLevelMusic = ResourceSound_SoundLevelMusic; SoundClick = ResourceSound_SoundClick; Shit = ResourceSound_Shit; CabinHit = ResourceSound_CabinHit; EndLEvel = ResourceSound_EndLEvel; GameOutOfScreen = ResourceSound_GameOutOfScreen; super(); } public function playCabinHit():void{ var _local1:SoundTransform = new SoundTransform(); var _local2:Sound = (new CabinHit() as Sound); _local1.volume = VOLUME; gameChannel = _local2.play(); gameChannel.soundTransform = _local1; } public function playEndSound():void{ var _local1:SoundTransform = new SoundTransform(); var _local2:Sound = (new EndLEvel() as Sound); _local1.volume = VOLUME; gameChannel = _local2.play(); gameChannel.soundTransform = _local1; } public function playMainMusic():void{ var _local1:SoundTransform = new SoundTransform(); var _local2:Sound = (new SoundMain() as Sound); _local1.volume = VOLUME; mainChannel = _local2.play(0, 999); mainChannel.soundTransform = _local1; } public function stopMainMusic():void{ mainChannel.stop(); } public function stopLevelMusic():void{ levelChannel.stop(); } public function playLevelsMusic():void{ var _local1:SoundTransform = new SoundTransform(); var _local2:Sound = (new SoundLevelMusic() as Sound); _local1.volume = VOLUME; levelChannel = _local2.play(0, 999); levelChannel.soundTransform = _local1; } public function playShit():void{ var _local1:SoundTransform = new SoundTransform(); var _local2:Sound = (new Shit() as Sound); _local1.volume = 1; gameChannel = _local2.play(); gameChannel.soundTransform = _local1; } public function playClick():void{ var _local1:SoundTransform = new SoundTransform(); var _local2:Sound = (new SoundClick() as Sound); _local1.volume = VOLUME; gameChannel = _local2.play(); gameChannel.soundTransform = _local1; } public function playOutOfScreen():void{ var _local1:SoundTransform = new SoundTransform(); var _local2:Sound = (new GameOutOfScreen() as Sound); _local1.volume = VOLUME; gameChannel = _local2.play(); gameChannel.soundTransform = _local1; } } }//package Clases.Game.Levels.AllLevels.Resources
Section 159
//ResourceSound_CabinHit (Clases.Game.Levels.AllLevels.Resources.ResourceSound_CabinHit) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourceSound_CabinHit extends SoundAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 160
//ResourceSound_EndLEvel (Clases.Game.Levels.AllLevels.Resources.ResourceSound_EndLEvel) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourceSound_EndLEvel extends SoundAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 161
//ResourceSound_GameOutOfScreen (Clases.Game.Levels.AllLevels.Resources.ResourceSound_GameOutOfScreen) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourceSound_GameOutOfScreen extends SoundAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 162
//ResourceSound_Shit (Clases.Game.Levels.AllLevels.Resources.ResourceSound_Shit) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourceSound_Shit extends SoundAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 163
//ResourceSound_SoundClick (Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundClick) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourceSound_SoundClick extends SoundAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 164
//ResourceSound_SoundLevelMusic (Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundLevelMusic) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourceSound_SoundLevelMusic extends SoundAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 165
//ResourceSound_SoundMain (Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundMain) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourceSound_SoundMain extends SoundAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 166
//ResourcesScreen (Clases.Game.Levels.AllLevels.Resources.ResourcesScreen) package Clases.Game.Levels.AllLevels.Resources { import flash.display.*; import flash.media.*; public class ResourcesScreen { private const Title_Main_Back:Class; private const Title_Main:Class; private const Logo:Class; private const Btmap_Main:Class; private const Btmap_Main_Front:Class; private var mainChannel:SoundChannel; private var levelChannel:SoundChannel; public function ResourcesScreen(){ mainChannel = new SoundChannel(); levelChannel = new SoundChannel(); Btmap_Main = ResourcesScreen_Btmap_Main; Btmap_Main_Front = ResourcesScreen_Btmap_Main_Front; Title_Main = ResourcesScreen_Title_Main; Title_Main_Back = ResourcesScreen_Title_Main_Back; Logo = ResourcesScreen_Logo; super(); } public function create_Main_Back_Back():Bitmap{ var _local1:Bitmap = (new Btmap_Main() as Bitmap); return (_local1); } public function create_Main_Title_Line():Bitmap{ var _local1:Bitmap = (new Title_Main_Back() as Bitmap); return (_local1); } public function create_Main_Title():Bitmap{ var _local1:Bitmap = (new Title_Main() as Bitmap); return (_local1); } public function create_Main_Back_Front():Bitmap{ var _local1:Bitmap = (new Btmap_Main_Front() as Bitmap); return (_local1); } public function create_Main_Logo():Bitmap{ var _local1:Bitmap = (new Logo() as Bitmap); return (_local1); } } }//package Clases.Game.Levels.AllLevels.Resources
Section 167
//ResourcesScreen_Btmap_Main (Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Btmap_Main) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesScreen_Btmap_Main extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 168
//ResourcesScreen_Btmap_Main_Front (Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Btmap_Main_Front) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesScreen_Btmap_Main_Front extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 169
//ResourcesScreen_Logo (Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Logo) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesScreen_Logo extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 170
//ResourcesScreen_Title_Main (Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Title_Main) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesScreen_Title_Main extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 171
//ResourcesScreen_Title_Main_Back (Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Title_Main_Back) package Clases.Game.Levels.AllLevels.Resources { import mx.core.*; public class ResourcesScreen_Title_Main_Back extends BitmapAsset { } }//package Clases.Game.Levels.AllLevels.Resources
Section 172
//Level1 (Clases.Game.Levels.AllLevels.Level1) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; public class Level1 extends Level { private const currentLevel:uint = 1; private const currentTime:uint = 1500; private var backgrounGame:BackgroundMountains; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var lvl_background:Sprite; private var stg:Stage; public function Level1(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="6500.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level1.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="591.09768" inkscape:cy="162.09383" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="-4" inkscape:window-y="-4" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -56.694819,111.65094 L 18.940346,108.36795 L 21.718268,274.53804 L 1002.0713,274.53804 L 1043.4876,268.47712 L 1073.7922,262.41621 L 1101.0663,255.34514 L 1122.2795,247.26392 L 1155.6145,238.17255 L 1179.8581,227.06087 L 1204.1018,219.9898 L 1235.4165,216.95934 L 1601.0918,218.97965 L 1667.7618,226.05072 L 1711.1984,236.15224 L 1767.7669,253.32483 L 1801.102,262.41621 L 1854.64,271.50758 L 1919.2898,280.59895 L 1982.9294,286.65987 L 2004.1426,287.67002 L 2030.4066,284.63956 L 2068.7924,279.5888 L 2116.2696,268.47712 L 2155.6655,256.35529 L 2206.1731,245.24361 L 2237.4879,240.19285 L 2285.9752,237.16239 L 2335.4727,235.14209 L 2560.7367,237.16239 L 2633.4677,236.15224 L 2806.2037,238.17255 L 2851.6606,244.23346 L 2913.2799,254.33499 L 2970.8586,269.48728 L 3009.2444,278.57865 L 3102.1784,293.73094 L 3196.1226,298.7817 L 3271.8841,296.76139 L 3439.5694,292.72078 L 3489.0669,291.71063 L 3522.4019,286.65987 L 3552.7065,277.5685 L 3590.0821,267.46697 L 3632.5085,262.4162 L 3662.8131,256.3553 L 3695.138,254.33499 L 3719.3816,256.35529 L 3734.5339,259.38575 L 3751.7065,272.51773 L 3770.8994,288.68017 L 3782.0111,302.82231 L 3799.1837,324.03551 L 3820.3969,341.20811 L 3847.671,355.35024 L 3879.9959,365.45177 L 3927.473,359.39085 L 3968.8894,360.40101 L 4007.2752,366.46192 L 4045.6609,374.54314 L 4083.0366,370.50253 L 4103.2396,366.46192 L 4122.4325,357.37055 L 4168.8995,340.19795 L 4190.1127,332.11673 L 4216.3767,322.01521 L 4247.6914,318.98475 L 4275.9757,307.87307 L 4325.4732,296.76139 L 4360.8285,297.77155 L 4390.1229,297.77155 L 4411.3361,303.83246 L 4428.5087,307.87307 L 4439.6204,312.92384 L 4452.7524,315.95429 L 4464.8742,311.91368 L 4471.9453,307.87307 L 4485.0773,299.79185 L 4492.1483,296.76139 L 4501.2397,296.76139 L 4512.3514,299.79185 L 4528.5138,306.86292 L 4546.6966,314.94414 L 4575.991,316.96445 L 4608.3159,316.96445 L 4650.7423,309.89338 L 4677.0063,300.802 L 4689.1281,292.72078 L 4701.2499,286.65987 L 4712.3616,280.59895 L 4729.5342,272.51773 L 4740.6459,267.46697 L 4758.8286,261.40606 L 4780.0418,261.40606 L 4800.2449,261.40606 L 4818.4276,267.46697 L 4830.5494,274.53804 L 4844.6916,281.60911 L 4865.9048,287.67002 L 4882.0672,293.73094 L 4898.2297,296.76139 L 4914.3921,293.73094 L 4927.524,290.70048 L 4941.6662,285.64972 L 4959.8489,276.55834 L 4977.0215,267.46697 L 4997.2246,257.36545 L 5009.3464,248.27407 L 5024.4987,242.21316 L 5037.6307,236.15224 L 5055.8135,236.15224 L 5073.9962,238.17255 L 5102.2805,246.25377 L 5125.514,262.41621 L 5156.8287,275.54819 L 5190.1637,286.65987 L 5229.5597,294.74109 L 5297.2399,293.73094 L 5373.0014,278.57865 L 5404.3161,268.47712 L 5422.4988,262.41621 L 5461.8948,255.34514 L 5494.2197,255.34514 L 5514.4227,249.28422 L 5537.6562,245.24361 L 5558.8694,240.19285 L 5578.0623,235.14209 L 5598.2653,224.03041 L 5617.4582,210.89842 L 5631.6004,205.84767 L 5644.7324,201.80705 L 5659.8847,201.80705 L 5669.9862,200.7969 L 5699.2806,208.87812 L 5733.6258,217.9695 L 5763.9304,225.04056 L 5828.5802,235.14209 L 5853.8339,244.23346 L 5882.1183,254.33499 L 5907.3721,255.34514 L 5941.7173,245.24361 L 5976.0624,232.11163 L 6026.5701,216.95934 L 6063.9457,210.89843 L 6107.3823,210.89843 L 6479.876,204.83751 L 6476.593,-2.243757 L 6617.7619,-6.2843671 L 6618.5194,553.34014 L -69.700523,542.22846 L -56.694819,111.65094 z" id="path2410" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> </g> </svg> ; recursos = new ResourcesLevel1(); super(); } private function generateBackground():void{ var _local1 = -475; var _local2 = 212; var _local3:LevelSelector = new LevelSelector(); super.agregarEstaca_to_end_level(); lvl_background = _local3.generateLevel1Background(); addChild(lvl_background); lvl_background.x = 3505; lvl_background.y = 318; lvl_tramo_a = new BackgroundImageLevel1A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local1; lvl_tramo_a.y = _local2; lvl_tramo_a.smoothing = true; lvl_tramo_b = new BackgroundImageLevel1B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y - 16); lvl_tramo_b.smoothing = true; } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } public function removeAllTheLevel():void{ this.removeChild(lvl_tramo_a); lvl_tramo_a = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } public function iniciarCurrentLevel():void{ var _local1:Array = [0x1900, 125]; super.init({padre:this, stage:stg, x:2, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); } } }//package Clases.Game.Levels.AllLevels
Section 173
//Level10 (Clases.Game.Levels.AllLevels.Level10) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Levels.*; import Clases.Game.Levels.ContactListeners.*; import Clases.Game.Levels.LevelElements.*; public class Level10 extends Level { private const currentTime:uint = 3100; private const currentLevel:uint = 10; private var svg_data:XML; private var recursos:ResourcesLevel1; private var stg:Stage; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; public function Level10(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level10.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="3692.0997" inkscape:cy="78.415643" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -320.21836,3.8171503 L -78.791899,6.8476074 L -71.215755,228.07102 L 124.24876,279.5888 L 412.14224,278.57865 L 512.14734,273.52788 L 581.84787,268.47712 L 631.34534,252.31468 L 708.11694,225.04056 L 781.85807,201.80705 L 837.41646,182.61415 L 876.81241,171.50247 L 892.97485,161.40095 L 914.18806,148.26896 L 940.45202,133.11668 L 972.7769,130.08622 L 996.01041,131.09637 L 1084.9038,130.08622 L 1158.645,130.08622 L 1260.6704,130.08622 L 1262.6907,204.8375 L 1531.3912,203.82736 L 1530.3811,130.08623 L 1670.7923,130.08622 L 1699.0766,153.31973 L 1716.2492,168.47202 L 1736.4522,238.17254 L 1744.5335,258.37559 L 1814.234,299.79185 L 1897.0665,299.79185 L 2021.3152,299.79185 L 2061.7214,279.5888 L 2087.9853,255.34513 L 2111.2188,249.28422 L 2170.8178,249.28422 L 2263.7519,248.27407 L 2290.0158,268.47712 L 2289.0057,296.76139 L 2252.6402,351.30963 L 2247.5894,408.88832 L 2283.9549,442.22336 L 2346.5844,454.34519 L 2422.3458,478.58885 L 2573.8687,503.84266 L 2909.2393,524.04571 L 4265.8742,525.11677 L 4363.859,497.78174 L 4453.7626,438.18275 L 4536.5951,396.7665 L 4616.3971,378.58375 L 4693.1687,363.43146 L 4810.3464,322.0152 L 4825.4987,316.96444 L 4850.7525,299.79185 L 4872.9759,281.6091 L 4905.3008,262.4162 L 4932.5749,243.2233 L 4973.9911,230.09133 L 5000.2551,214.93903 L 5048.7424,196.75629 L 5095.2094,174.53293 L 5204.3059,154.32987 L 5284.108,112.91362 L 5304.311,106.85271 L 5326.5345,92.71057 L 5357.8491,66.446608 L 5400.2755,63.41615 L 5428.5598,49.274014 L 5439.6714,49.274014 L 5455.8339,62.405998 L 5529.575,82.609049 L 5621.4989,87.659812 L 5728.5751,89.680117 L 5749.7883,86.649659 L 5771.0015,77.558286 L 5804.3365,61.395845 L 5822.5193,51.29432 L 5840.702,32.101421 L 5848.7833,15.938981 L 5855.8543,3.8171501 L 5874.0371,-4.2640703 L 5896.2604,-10.324986 L 5927.5752,-12.345291 L 5956.8696,-7.2945279 L 5991.2148,5.8374552 L 6019.499,26.040506 L 6037.6818,53.314625 L 6070.0067,64.426303 L 6111.4229,65.436456 L 6131.626,56.345083 L 6155.8696,40.182642 L 6194.2554,2.8069976 L 6239.7123,-11.335138 L 6270.0169,-29.517884 L 6331.6362,-70.934138 L 6417.4991,-93.157495 L 6602.3571,-102.24887 L 6778.1236,-97.198105 L 6868.0272,-62.852918 L 6916.5145,-13.355439 L 7010.4587,42.202948 L 7243.8038,37.152185 L 7314.5146,27.050659 L 7384.2151,19.979591 L 7425.6314,-16.385901 L 7478.1593,-47.70063 L 7533.7177,-60.832613 L 7585.2355,-64.873223 L 7640.7939,-63.863071 L 7680.1898,-63.863071 L 7740.799,-83.055969 L 7770.0934,-115.38085 L 8267.0885,-117.40116 L 8273.1494,-355.79716 L 8386.2865,-328.52304 L 8392.3474,834.16254 L -319.2082,834.16254 L -320.21836,3.8171503 z" id="path2399" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> </g> </svg> ; recursos = new ResourcesLevel1(); super(); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(-25, 160); var _local1 = -1022; var _local2 = 125; var _local3:LevelSelector = new LevelSelector(); var _local4:Sprite = _local3.generateLevel10Background(); addChild(_local4); _local4.x = 4133; _local4.y = 324; var _local5:PuenteHieloHorizontalGrande = new PuenteHieloHorizontalGrande(); addChild(_local5); _local5.scaleX = 1.5; _local5.x = 3401; _local5.y = 525; lvl_tramo_a = recursos.create_level10A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local1; lvl_tramo_a.y = _local2; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level10B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y - 247); lvl_tramo_b.smoothing = true; } public function iniciarCurrentLevel():void{ var _local1:Array = [8200, -185]; super.init({padre:this, stage:stg, x:2, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateTraps(); drawSensors(); super.guiToFront(); } public function removeAllTheLevel():void{ recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } private function generateTraps():void{ var _local3:b2BodyDef; var _local4:b2Body; var _local5:b2PolygonDef; var _local7:b2RevoluteJointDef; var _local1:Number = (1250 / 30); var _local2:Number = 4; var _local6:Array = new Array(); _local1 = (650 / m_world.m_debugDraw.m_drawScale); _local2 = 0; var _local8:int; while (_local8 < 4) { _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(1, -1); _local5.vertices[1].Set(1, 1); _local5.vertices[2].Set(-1, 1); _local5.vertices[3].Set(-1, -1); _local5.friction = 0.001; _local5.restitution = 0.4; _local5.density = 0.3; _local5.filter.groupIndex = 0; _local3 = new b2BodyDef(); _local3.position = new b2Vec2((_local1 + (_local8 * 3)), _local2); _local3.angle = 0; _local3.userData = new CuboGrande(); addChild(_local3.userData); _local3.userData.x = -1000; _local3.userData.y = -1000; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); _local8++; }; _local1 = (3000 / m_world.m_debugDraw.m_drawScale); _local2 = 1.5; _local8 = 0; while (_local8 < 10) { _local5 = new b2PolygonDef(); _local5.vertexCount = 6; _local5.vertices[0].Set(0.0301666666666665, -0.97); _local5.vertices[1].Set(0.490166666666666, -0.67); _local5.vertices[2].Set(0.270166666666666, 0.61); _local5.vertices[3].Set(-0.00983333333333358, 1.11); _local5.vertices[4].Set(-0.310833333333333, 0.59); _local5.vertices[5].Set(-0.469833333333334, -0.67); _local5.friction = 0.1; _local5.restitution = 0.4; _local5.density = 0.3; _local5.filter.groupIndex = 0; _local3 = new b2BodyDef(); _local3.position = new b2Vec2((_local1 + (_local8 * 3)), (_local2 + 8)); _local3.angle = 0; _local3.userData = new Estalactita(_local8); addChild(_local3.userData); _local3.userData.x = -1000; _local3.userData.y = -1000; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); _local6.push(_local4); _local7 = new b2RevoluteJointDef(); _local7.Initialize(_local6[_local8], m_world.GetGroundBody(), new b2Vec2((_local1 + (_local8 * 3)), (_local2 - 5))); _local7.enableLimit = false; _local7.lowerAngle = 0; _local7.upperAngle = 0; m_world.CreateJoint(_local7); _local8++; }; } private function drawSensors():void{ var _local2:b2BodyDef; var _local3:b2Body; var _local4:b2PolygonDef; var _local1:ContactLIstenerLevel10 = new ContactLIstenerLevel10(); var _local5:Number = (3400 / 30); var _local6:Number = 17.5; _local4 = new b2PolygonDef(); _local4.vertexCount = 4; _local4.vertices[0].Set(14, -0.2); _local4.vertices[1].Set(14, 0.2); _local4.vertices[2].Set(-14, 0.2); _local4.vertices[3].Set(-14, -0.2); _local4.friction = 0.001; _local4.restitution = 0.4; _local4.density = 0; _local4.filter.groupIndex = 0; _local2 = new b2BodyDef(); _local2.position = new b2Vec2(_local5, _local6); _local2.angle = 0; _local2.userData = new PisoDeCueva(); _local2.userData.x = -1000; _local2.userData.y = -1000; _local3 = m_world.CreateBody(_local2); _local3.CreateShape(_local4); _local3.SetMassFromShapes(); _local1.initListener({padre:this, world:super.m_world}); super.m_world.SetContactListener(_local1); super.senesorFunction({x:1400, y:240, ancho:4, alto:2, world:super.m_world, sensotType:"Water_Dead_Zone"}); } } }//package Clases.Game.Levels.AllLevels
Section 174
//Level11 (Clases.Game.Levels.AllLevels.Level11) package Clases.Game.Levels.AllLevels { import flash.events.*; import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Levels.*; import Clases.Game.Levels.ContactListeners.*; import Clases.Game.Levels.LevelElements.*; public class Level11 extends Level { private const currentLevel:uint = 11; private const currentTime:uint = 5000; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var stg:Stage; private var contactListener:ContactLIstenerLevel13; public function Level11(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level13.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="1264.7664" inkscape:cy="-78.068195" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1179.7818,715.90582 L -36.365492,714.96454 L -44.446712,39.172489 L 77.781746,39.172489 L 76.771594,266.45681 L 506.08643,266.45681 L 558.61436,280.59895 L 586.89863,299.79185 L 607.10168,328.07612 L 618.21336,358.38069 L 638.41641,385.65481 L 684.88343,406.86802 L 726.29968,410.90863 L 753.5738,407.87817 L 835.39616,385.65481 L 919.23882,352.31978 L 975.92919,343.87307 L 1017.2236,318.98474 L 1054.5993,308.802 L 1094.0561,310.74108 L 1118.2389,313.93398 L 1150.5638,324.98475 L 1151.5739,335.32993 L 1178.3454,335.29549 L 1179.7818,715.90582 z" id="path2384" sodipodi:nodetypes="ccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2415.2747,705.87317 L 2410.2239,211.90858 L 2485.9855,211.90857 L 2601.1428,193.72583 L 2677.9144,174.53294 L 2738.5236,154.32988 L 2790.0413,147.25881 L 2849.6403,137.15729 L 2926.4119,149.27912 L 2971.8688,173.52278 L 3025.4069,199.78674 L 3055.7115,229.08117 L 3086.0161,231.10147 L 3116.3206,232.11163 L 3116.3206,706.88332 L 2415.2747,705.87317 z" id="path2386" sodipodi:nodetypes="cccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3928.4833,215.94919 L 3950.7066,210.89842 L 3975.9604,190.69537 L 4059.8031,178.57354 L 4167.8894,143.2182 L 4279.0062,110.89332 L 4325.4732,94.730879 L 4369.9199,93.720727 L 4416.3869,77.558286 L 4512.3514,74.527828 L 4640.6408,72.507523 L 4710.3413,93.720727 L 4749.7372,93.720724 L 4740.6459,711.93408 L 3898.1787,695.77165 L 3907.2701,231.10147 L 3928.4833,215.94919 z" id="path2388" sodipodi:nodetypes="ccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 5754.7375,691.69042 L 5754.7375,93.680117 L 5797.0301,91.595461 L 5847.6715,78.527828 L 5939.5954,70.446608 L 6144.6564,87.619202 L 6196.1742,114.89332 L 6378.0016,126.00499 L 6466.895,139.13698 L 6587.1032,130.0456 L 6666.9052,104.79179 L 6777.0119,97.720732 L 6780.0423,650.27417 L 5754.7375,691.69042 z" id="path2390" sodipodi:nodetypes="cccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 7324.2709,98.69027 L 7604.0832,114.85271 L 7681.8649,143.13698 L 7773.7888,158.28927 L 7882.8853,168.39079 L 8087.9462,176.47201 L 8684.9464,173.44155 L 8689.9972,-115.46208 L 8872.8348,-121.52299 L 8890.0074,776.50262 L 7325.281,776.50262 L 7324.2709,98.69027 z" id="path2392" sodipodi:nodetypes="cccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1621.2948,723.04576 L 1614.2238,339.1878 L 1641.4979,336.15734 L 1644.5283,328.07612 L 1662.7111,308.88322 L 1701.0969,280.59895 L 1748.5741,259.38574 L 1805.1426,253.32483 L 1858.6807,253.32483 L 1889.9954,217.96949 L 1918.2797,212.8172 L 2010.8888,212.8172 L 2010.9498,721.91378 L 1621.2948,723.04576 z" id="path2385" sodipodi:nodetypes="cccccccccccccc"/> </g> </svg> ; contactListener = new ContactLIstenerLevel13(); recursos = new ResourcesLevel1(); super(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(120, 195); var _local1 = -750; var _local2 = 70; var _local3:LevelSelector = new LevelSelector(); var _local4:Sprite = _local3.generateLevel13Background(); addChild(_local4); _local4.x = 4445; _local4.y = 370; lvl_tramo_a = recursos.create_level11A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local1; lvl_tramo_a.y = _local2; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level11B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y - 3); lvl_tramo_b.smoothing = true; } private function nuckear(_arg1:Event):void{ contactListener.removeNuckedBodies(); } private function generateDeadZones():void{ super.senesorFunction({x:1400, y:500, ancho:7, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:2213, y:500, ancho:6.5, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:3510, y:500, ancho:12.6, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:5250, y:500, ancho:16.5, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:7052, y:500, ancho:8.6, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:4252, y:980, ancho:130, alto:4, world:super.m_world, sensotType:"Dead_Zone"}); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBridges():void{ var _local1:b2BodyDef; var _local2:b2Body; var _local3:b2PolygonDef; var _local7:DestructibleLevels; var _local8:DestructibleLevels; var _local9:DestructibleLevels; var _local10:DestructibleLevels; var _local4:Number = (1405 / m_world.m_debugDraw.m_drawScale); var _local5:Number = 11; _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(8.1, -0.16); _local3.vertices[1].Set(8.1, 0.16); _local3.vertices[2].Set(-8.1, 0.16); _local3.vertices[3].Set(-8.1, -0.16); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2(_local4, _local5); _local1.angle = 0; _local1.userData = new PuenteHieloHorizontal(); _local1.userData.width = (_local1.userData.width + 48); _local1.userData.height = (_local1.userData.height - 2); addChild(_local1.userData); _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); var _local6:int; while (_local6 < 3) { _local7 = new DestructibleLevels(); _local4 = ((1810 + (_local6 * 130)) / m_world.m_debugDraw.m_drawScale); _local5 = 3.05; _local7.init({X:_local4, Y:_local5, largo:2, world:m_world}); addChild(_local7); _local6++; }; _local6 = 0; while (_local6 < 8) { _local8 = new DestructibleLevels(); _local4 = ((2890 + (_local6 * 100)) / m_world.m_debugDraw.m_drawScale); _local5 = 3.6; _local8.init({X:_local4, Y:_local5, largo:1.5, world:m_world}); addChild(_local8); _local6++; }; _local6 = 0; while (_local6 < 11) { _local9 = new DestructibleLevels(); _local4 = ((4530 + (_local6 * 90)) / m_world.m_debugDraw.m_drawScale); _local5 = -1; _local9.init({X:_local4, Y:_local5, largo:1.5, world:m_world}); addChild(_local9); _local6++; }; _local6 = 0; while (_local6 < 3) { _local10 = new DestructibleLevels(); _local4 = ((6600 + (_local6 * 180)) / m_world.m_debugDraw.m_drawScale); _local5 = -0.8; _local10.init({X:_local4, Y:_local5, largo:3, world:m_world}); addChild(_local10); _local6++; }; } public function removeAllTheLevel():void{ recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } public function iniciarCurrentLevel():void{ var _local1:Array = [8615, 105]; super.init({padre:this, stage:stg, x:4, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateBridges(); generateDeadZones(); contactListener.initListener({padre:this, world:super.m_world}); m_world.SetContactListener(contactListener); addEventListener(Event.ENTER_FRAME, nuckear); } override public function desrtoyLevel():void{ super.desrtoyLevel(); removeEventListener(Event.ENTER_FRAME, nuckear); } } }//package Clases.Game.Levels.AllLevels
Section 175
//Level12 (Clases.Game.Levels.AllLevels.Level12) package Clases.Game.Levels.AllLevels { import flash.events.*; import flash.display.*; import Clases.Game.LevelSelection.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; import Clases.Game.Levels.ContactListeners.*; import Clases.Game.Levels.LevelElements.*; public class Level12 extends Level { private const currentLevel:uint = 12; private const currentTime:uint = 4800; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var arrayOfWater:Array; private var stg:Stage; private var contactListener:ContactLIstenerLevel14; public function Level12(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level14.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="7188.1842" inkscape:cy="127.87291" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" style="display:inline"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -47.47717,27.050659 L 76.771594,25.030354 L 73.741136,265.44666 L 508.10673,266.45681 L 514.16765,282.61925 L 522.24887,296.76139 L 528.30979,389.69542 L 1075.8125,391.71573 L 1072.782,288.68017 L 1076.8227,267.46696 L 1091.975,255.34513 L 1106.1171,248.27406 L 1129.3506,247.26391 L 1138.442,253.32483 L 1148.5435,266.45681 L 1161.6754,294.74108 L 1167.7363,392.66496 L 2009.1935,395.69542 L 2003.1325,277.73093 L 2038.4878,269.56849 L 2064.7518,252.31468 L 2088.9955,234.13193 L 2141.5234,218.97965 L 2189.0006,213.92888 L 2385.9803,212.91873 L 2437.4981,209.88827 L 2491.0362,186.65476 L 2540.5337,162.4111 L 2599.1225,146.24866 L 2667.8129,137.15729 L 2682.9652,141.1979 L 2688.0159,156.35018 L 2678.9246,178.57354 L 2669.8332,198.77659 L 2659.7317,610.91883 L -53.538085,610.91883 L -47.47717,27.050659 z" id="path2385" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3231.478,137.42125 L 3278.9552,136.4111 L 3310.2699,124.32988 L 3335.5237,125.34003 L 3360.7775,154.63446 L 3388.0516,176.85781 L 3418.3562,187.96949 L 3486.0364,197.06086 L 3541.5948,202.11163 L 3601.1938,216.25376 L 3673.9248,218.27407 L 3734.534,218.27407 L 3768.8792,222.31468 L 3810.2954,221.30452 L 3826.4579,217.26391 L 3843.6304,219.18269 L 3860.7421,220.25376 L 3870.9046,232.41621 L 3872.9248,656.68028 L 3232.4882,655.67012 L 3231.478,137.42125 z" id="path2387" sodipodi:nodetypes="ccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4334.5646,289.69032 L 4357.7575,258.35529 L 4396.1839,223.02025 L 4458.8133,193.72583 L 4523.4631,186.65476 L 4659.8337,181.604 L 4706.3007,194.73598 L 4753.7779,259.38574 L 4845.7018,326.05581 L 4931.5647,384.64466 L 4954.7982,394.74619 L 5032.58,395.75634 L 5143.6968,355.35024 L 5197.2349,310.90352 L 5281.0775,293.73093 L 5341.6867,241.203 L 5368.9608,225.04056 L 5397.2451,222.0101 L 5431.5903,227.06086 L 5464.9456,230.27407 L 5461.8948,659.40615 L 4335.5747,667.48737 L 4334.5646,289.69032 z" id="path2389" sodipodi:nodetypes="ccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 5919.6564,231.24361 L 6018.4889,224.19285 L 6097.2808,219.14208 L 6311.4331,198.77659 L 6454.8748,192.71568 L 6547.8088,201.80705 L 6655.8951,224.03041 L 6768.0221,250.29437 L 7147.8395,242.21315 L 7499.3725,208.87812 L 7535.738,183.6243 L 7997.3777,195.74613 L 8082.2305,223.02025 L 8137.7889,222.0101 L 8492.3525,225.04056 L 8497.4032,-56.792003 L 8661.0479,-57.802155 L 8664.0784,790.72598 L 5919.6564,788.70567 L 5919.6564,231.24361 z" id="path2391" sodipodi:nodetypes="cccccccccccccccccccc"/> </g> </svg> ; contactListener = new ContactLIstenerLevel14(); arrayOfWater = new Array(); recursos = new ResourcesLevel1(); super(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(120, 195); var _local1 = -537; var _local2 = 120; var _local3:LevelSelector = new LevelSelector(); var _local4:WaterBackground = new WaterBackground(); _local4.init({cantX:16, cantY:2}); addChild(_local4); _local4.x = 500; _local4.y = 265; arrayOfWater.push(_local4); var _local5:Sprite = _local3.generateLevel14Background(); addChild(_local5); _local5.x = 4356; _local5.y = 420; lvl_tramo_a = recursos.create_level12A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local1; lvl_tramo_a.y = _local2; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level12B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y + 55); lvl_tramo_b.smoothing = true; } private function nuckear(_arg1:Event):void{ contactListener.removeNuckedBodies(); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBridges():void{ var _local9:DestructibleLevels; var _local10:DestructibleLevels; var _local11:DestructibleLevels; var _local1:Number = (450 / m_world.m_debugDraw.m_drawScale); var _local2:Number = 3.8; var _local3:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local3); _local1 = (700 / m_world.m_debugDraw.m_drawScale); _local2 = 3.8; var _local4:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local4); _local1 = (1100 / m_world.m_debugDraw.m_drawScale); _local2 = 3.8; var _local5:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local5); _local1 = (1350 / m_world.m_debugDraw.m_drawScale); _local2 = 3.8; var _local6:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local6); _local1 = (1600 / m_world.m_debugDraw.m_drawScale); _local2 = 3.8; var _local7:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local7); var _local8:int; while (_local8 < 4) { _local9 = new DestructibleLevels(); addChild(_local9); _local1 = ((2490 + (_local8 * 133)) / m_world.m_debugDraw.m_drawScale); _local2 = 0.5; _local9.init({X:_local1, Y:_local2, largo:2.1, world:m_world}); _local8++; }; _local8 = 0; while (_local8 < 5) { _local10 = new DestructibleLevels(); addChild(_local10); _local1 = ((3650 + (_local8 * 100)) / m_world.m_debugDraw.m_drawScale); _local2 = 3.5; _local10.init({X:_local1, Y:_local2, largo:1.5, world:m_world}); _local8++; }; _local8 = 0; while (_local8 < 5) { _local11 = new DestructibleLevels(); addChild(_local11); _local1 = ((5240 + (_local8 * 90)) / m_world.m_debugDraw.m_drawScale); _local2 = 3.6; _local11.init({X:_local1, Y:_local2, largo:1.5, world:m_world}); _local8++; }; } private function generateDeadZones():void{ super.senesorFunction({x:0x0500, y:390, ancho:25, alto:1.5, world:super.m_world, sensotType:"Water_Dead_Zone"}); super.senesorFunction({x:2955, y:390, ancho:9, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:4100, y:390, ancho:8, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:5700, y:390, ancho:8, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:4000, y:900, ancho:70, alto:1.5, world:super.m_world, sensotType:"Dead_Zone"}); } public function iniciarCurrentLevel():void{ var _local1:Array = [8425, 155]; super.init({padre:this, stage:stg, x:4, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateBridges(); generateDeadZones(); contactListener.initListener({padre:this, world:super.m_world}); m_world.SetContactListener(contactListener); addEventListener(Event.ENTER_FRAME, nuckear); super.guiToFront(); } public function removeAllTheLevel():void{ var _local1:int; while (_local1 < arrayOfWater.length) { arrayOfWater[_local1].removeAllChild(); _local1++; }; recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } override public function desrtoyLevel():void{ super.desrtoyLevel(); removeEventListener(Event.ENTER_FRAME, nuckear); } } }//package Clases.Game.Levels.AllLevels
Section 176
//Level13 (Clases.Game.Levels.AllLevels.Level13) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; import Clases.Game.Levels.ContactListeners.*; import Clases.Game.Levels.LevelElements.*; public class Level13 extends Level { private const currentLevel:uint = 13; private const currentTime:uint = 3500; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var stg:Stage; private var contactListener:ContactLIstenerLevel12; public function Level13(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level12.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="4471.02" inkscape:cy="113.57609" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -41.47717,37.131879 L 82.771594,38.142032 L 83.781746,262.3959 L 499.9646,262.3959 L 522.24887,253.32483 L 539.42146,238.17254 L 556.59405,227.06086 L 584.87833,216.95934 L 621.24382,213.92888 L 657.60931,214.93903 L 693.9748,213.92888 L 728.31999,213.92888 L 755.59411,220.99995 L 778.82761,246.25376 L 793.9799,257.36544 L 821.25402,262.4162 L 856.60936,265.44666 L 889.9444,272.51773 L 923.27943,272.51773 L 976.81751,267.46697 L 996.01041,257.36544 L 1020.2541,243.2233 L 1055.6094,226.05071 L 1089.9546,224.03041 L 1126.3201,245.24361 L 1147.5333,277.56849 L 1150.5638,301.81215 L 1158.645,307.87307 L 1203.0917,315.95429 L 1254.6095,322.0152 L 1352.0892,322.52028 L 1452.5994,304.84261 L 1451.5892,526.06602 L -49.497475,528.08632 L -41.47717,37.131879 z" id="path2386" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1823.3253,358.3807 L 1865.7517,332.11673 L 1944.5436,326.05582 L 2009.1934,303.83246 L 2047.5792,288.68017 L 2101.1173,269.48727 L 2163.7468,241.203 L 2217.2848,225.04056 L 2274.8635,214.93903 L 2373.8585,218.97964 L 2438.5083,206.85781 L 2492.0463,184.63446 L 2565.7875,175.54308 L 2655.691,163.42125 L 2703.1682,172.51263 L 2718.3205,223.02025 L 2721.351,570.51273 L 1816.2543,574.55334 L 1823.3253,358.3807 z" id="path2388" sodipodi:nodetypes="ccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3445.6303,212.91873 L 3481.9958,200.7969 L 3509.27,182.61415 L 3547.6557,165.44156 L 3566.8486,160.3908 L 3613.3157,147.25881 L 3675.9451,143.2182 L 3752.7167,149.27912 L 3811.3056,159.38064 L 3882.0162,187.66491 L 3911.3107,187.66491 L 3969.8995,187.66491 L 4012.3259,176.55324 L 4039.6,155.34003 L 4061.8234,139.17759 L 4076.9757,139.17759 L 4088.0874,158.37049 L 4097.1787,176.55324 L 4122.4325,182.61415 L 4137.5848,188.67507 L 4168.8996,188.67507 L 4202.2346,185.64461 L 4220.4173,173.52278 L 4245.6712,158.37049 L 4264.8641,144.22835 L 4288.0976,137.15729 L 4335.5747,134.12683 L 4364.8692,147.25881 L 4384.0621,166.45171 L 4408.3057,167.46186 L 4432.5494,158.37049 L 4438.6103,149.27912 L 4452.7524,140.18774 L 4494.1687,136.14713 L 4514.3717,142.20805 L 4556.7981,131.09637 L 4555.788,182.61415 L 4531.5443,291.71063 L 4531.5443,616.97975 L 3447.6507,615.96959 L 3445.6303,212.91873 z" id="path2390" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 5227.5394,241.203 L 5326.5344,227.06086 L 5369.9709,215.94918 L 5398.2552,204.8375 L 5424.5192,193.72583 L 5446.7425,185.64461 L 5479.0674,179.58369 L 5519.4735,178.57354 L 5581.0928,178.57354 L 5628.57,174.53293 L 5652.8136,169.48217 L 5670.9964,159.38064 L 5705.3416,141.19789 L 5726.5548,134.12683 L 5754.839,128.06591 L 5781.103,125.03545 L 5807.367,122.005 L 5836.6614,122.005 L 5868.9863,126.04561 L 5896.2604,127.05576 L 5928.5853,127.05576 L 5942.7274,120.99484 L 5968.9914,111.90347 L 6009.3975,102.8121 L 6040.7122,98.771493 L 6063.9457,100.79179 L 6162.9407,101.80194 L 6207.3874,110.89332 L 6227.5904,105.84255 L 6246.7833,94.730883 L 6276.0778,74.527833 L 6309.4128,46.243553 L 6355.8798,21.999893 L 6394.2656,18.969443 L 6422.5499,24.020193 L 6425.5803,115.94408 L 6424.5702,456.36549 L 5230.5699,462.4264 L 5189.1536,379.5939 L 5169.9607,326.05581 L 5183.0927,258.37559 L 5227.5394,241.203 z" id="path2382" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 7138.7481,279.58879 L 7180.6694,228.07101 L 7232.6922,186.65476 L 7322.0907,153.31973 L 7456.9461,143.2182 L 7555.9411,144.22835 L 7651.9056,149.27912 L 7870.0985,155.34003 L 8086.2711,145.23851 L 8147.8905,112.91363 L 8212.5402,85.639507 L 8285.2712,83.619201 L 8559.0225,80.588744 L 8560.0327,-118.41131 L 8763.0734,-122.45192 L 8780.2459,489.70053 L 7145.8191,491.72083 L 7138.7481,279.58879 z" id="path2384" sodipodi:nodetypes="cccccccccccccccccc"/> </g> </svg> ; contactListener = new ContactLIstenerLevel12(); recursos = new ResourcesLevel1(); super(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(125, 195); var _local1 = -602; var _local2 = 132; var _local3:LevelSelector = new LevelSelector(); var _local4:Sprite = _local3.generateLevel12Background(); addChild(_local4); _local4.x = 4460; _local4.y = 295; lvl_tramo_a = recursos.create_level13A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local1; lvl_tramo_a.y = _local2; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level13B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y - 115); lvl_tramo_b.smoothing = true; var _local5:WindTube = new WindTube(); addChild(_local5); _local5.init({lenght:170}); _local5.x = 1520; _local5.y = -100; var _local6:WindTube = new WindTube(); addChild(_local6); _local6.init({lenght:170}); _local6.x = 2780; _local6.y = -220; var _local7:WindTube = new WindTube(); addChild(_local7); _local7.init({lenght:370}); _local7.x = 4700; _local7.y = -100; var _local8:WindTube = new WindTube(); addChild(_local8); _local8.init({lenght:600}); _local8.x = 6480; _local8.y = -250; } private function generateDeadZones():void{ super.senesorFunction({x:1400, y:650, ancho:16, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:2985, y:625, ancho:15, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:6350, y:550, ancho:60, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:4400, y:1050, ancho:160, alto:3, world:super.m_world, sensotType:"Dead_Zone"}); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function drawSensors():void{ var _local1:b2BodyDef; var _local2:b2Body; var _local3:b2PolygonDef; var _local4:Number = (1600 / m_world.m_debugDraw.m_drawScale); var _local5:Number = (320 / m_world.m_debugDraw.m_drawScale); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(3, -6); _local3.vertices[1].Set(3, 6); _local3.vertices[2].Set(-3, 6); _local3.vertices[3].Set(-3, -6); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0; _local3.filter.groupIndex = 0; _local3.isSensor = true; _local1 = new b2BodyDef(); _local1.position = new b2Vec2(_local4, _local5); _local1.angle = 0; _local1.userData = 1; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local4 = (2862 / m_world.m_debugDraw.m_drawScale); _local5 = (200 / m_world.m_debugDraw.m_drawScale); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(3, -6); _local3.vertices[1].Set(3, 6); _local3.vertices[2].Set(-3, 6); _local3.vertices[3].Set(-3, -6); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0; _local3.filter.groupIndex = 0; _local3.isSensor = true; _local1 = new b2BodyDef(); _local1.position = new b2Vec2(_local4, _local5); _local1.angle = 0; _local1.userData = 2; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local4 = (4888 / m_world.m_debugDraw.m_drawScale); _local5 = (320 / m_world.m_debugDraw.m_drawScale); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(7, -7); _local3.vertices[1].Set(7, 7); _local3.vertices[2].Set(-7, 7); _local3.vertices[3].Set(-7, -7); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0; _local3.filter.groupIndex = 0; _local3.isSensor = true; _local1 = new b2BodyDef(); _local1.position = new b2Vec2(_local4, _local5); _local1.angle = 0; _local1.userData = 3; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(1, -1); _local3.vertices[1].Set(1, 1); _local3.vertices[2].Set(-1, 1); _local3.vertices[3].Set(-1, -1); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0.051; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local4 + 1), _local5); _local1.angle = 0; _local1.userData = new CuboGrande(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local1.linearDamping = 0.21; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(1, -1); _local3.vertices[1].Set(1, 1); _local3.vertices[2].Set(-1, 1); _local3.vertices[3].Set(-1, -1); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0.051; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local4 - 1), _local5); _local1.angle = 0; _local1.userData = new CuboGrande(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local1.linearDamping = 0.21; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(1, -1); _local3.vertices[1].Set(1, 1); _local3.vertices[2].Set(-1, 1); _local3.vertices[3].Set(-1, -1); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0.051; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local4 - 1.5), _local5); _local1.angle = 0; _local1.userData = new CuboGrande(); _local1.userData.x = -1000; _local1.userData.y = -1000; addChild(_local1.userData); _local1.linearDamping = 0.21; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(1, -1); _local3.vertices[1].Set(1, 1); _local3.vertices[2].Set(-1, 1); _local3.vertices[3].Set(-1, -1); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0.051; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local4 + 1.5), _local5); _local1.angle = 0; _local1.userData = new CuboGrande(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local1.linearDamping = 0.21; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local4 = (6780 / m_world.m_debugDraw.m_drawScale); _local5 = (180 / m_world.m_debugDraw.m_drawScale); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(11.5, -6); _local3.vertices[1].Set(11.5, 6); _local3.vertices[2].Set(-11.5, 6); _local3.vertices[3].Set(-11.5, -6); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0; _local3.filter.groupIndex = 0; _local3.isSensor = true; _local1 = new b2BodyDef(); _local1.position = new b2Vec2(_local4, _local5); _local1.angle = 0; _local1.userData = 4; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); } public function removeAllTheLevel():void{ recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } public function iniciarCurrentLevel():void{ var _local1:Array = [8700, 0]; super.init({padre:this, stage:stg, x:4, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateDeadZones(); drawSensors(); contactListener.initListener({padre:this, world:super.m_world}); m_world.SetContactListener(contactListener); super.guiToFront(); } } }//package Clases.Game.Levels.AllLevels
Section 177
//Level14 (Clases.Game.Levels.AllLevels.Level14) package Clases.Game.Levels.AllLevels { import flash.events.*; import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; import Clases.Game.Levels.ContactListeners.*; public class Level14 extends Level { private const currentLevel:uint = 14; private const currentTime:uint = 5000; private var lvl_tramo_b1:Bitmap; private var lvl_tramo_b2:Bitmap; private var lvl_tramo_c:Bitmap; private var recursos:ResourcesLevel1; private var selector:LevelSelection; private var svg_data:XML; private var arrayOfWater:Array; private var lvl_tramo_a2:Bitmap; private var stg:Stage; private var lvl_tramo_a1:Bitmap; private var contactListener:ContactLIstenerLevel11; public function Level14(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level11.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="13760.44" inkscape:cy="-6710.53" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -275.77165,0.78669277 L -13.131984,0.78669277 L -1.0101526,251.30452 L 94.954341,276.55834 L 515.1778,278.57864 L 554.57375,260.3959 L 621.24382,239.18269 L 700.03571,222.0101 L 742.46212,209.88827 L 787.91899,186.65476 L 854.58905,139.17759 L 888.93424,114.93393 L 943.48248,94.73088 L 1012.1729,86.649659 L 1083.8937,90.690269 L 1164.7059,114.93393 L 1242.4876,188.67507 L 1414.2136,268.47712 L 1457.6501,292.72078 L 1534.4217,379.5939 L 1596.041,421.01015 L 1669.7822,458.3858 L 2055.6604,737.1879 L 2157.6859,842.24376 L 2177.8889,895.78185 L 2203.1427,1063.4671 L 2309.2087,1145.2895 L 2461.7418,1182.6651 L 2716.3002,1221.0509 L 2797.1124,1313.985 L 2826.4068,1369.5434 L 2895.0972,1539.249 L 2966.818,1588.7465 L 3024.3967,1628.1424 L 3167.8384,1750.3709 L 3219.3562,1781.6856 L 3303.1988,1802.8988 L 3355.7268,1808.9597 L 3457.7522,1859.4673 L 3552.7065,1888.7618 L 3703.2193,1895.8328 L 3839.5898,1898.8633 L 4123.4427,1993.8176 L 4212.3361,2042.305 L 4349.7169,2070.5892 L 4393.1534,2179.6857 L 4401.2347,2259.4878 L 4470.9352,2360.503 L 4583.0621,2453.4371 L 4738.6256,2490.8127 L 4834.5901,2507.9853 L 4904.2906,2557.4828 L 4922.4734,2639.3051 L 4994.1942,2732.2392 L 5083.0876,2824.1631 L 5110.3617,2865.5793 L 5166.9303,2880.7316 L 5239.6613,2903.9651 L 5274.0065,2942.3509 L 5292.1892,2991.8484 L 5325.5242,3169.6352 L 5394.2146,3171.6555 L 5398.2552,3197.9195 L 5407.3466,3242.3662 L 5479.0674,3319.1378 L 5540.6867,3421.1632 L 5547.7578,3489.8536 L 5627.5598,3542.3815 L 5665.9456,3556.5237 L 5682.1081,3611.0719 L 5767.9711,3622.1836 L 5907.3721,3634.3054 L 6015.4584,3636.3257 L 6177.0828,3602.9907 L 6270.0169,3593.8993 L 6271.0271,3616.1227 L 6071.0168,3973.7167 L -302.03561,3975.737 L -275.77165,0.78669277 z" id="path2394" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6390.225,3977.7573 L 6399.3164,3877.7522 L 6414.4687,3776.7369 L 6419.5194,3718.1481 L 6439.7225,3681.7826 L 6500.3316,3656.5288 L 6596.2961,3628.2445 L 6715.4941,3576.7267 L 6830.6515,3525.2089 L 6966.012,3438.3358 L 7094.3013,3424.1937 L 7265.0171,3349.4424 L 7408.4588,3207.0109 L 7543.8192,3081.752 L 7607.4589,3045.3865 L 7674.1289,3043.3662 L 7756.9614,3100.9449 L 7994.3473,3198.9297 L 8048.8955,3265.5997 L 8081.2204,3369.6454 L 8096.3727,3449.4475 L 8119.6062,3513.0871 L 8247.8956,3554.5034 L 8331.7382,3567.6353 L 8395.3778,3650.4678 L 8458.0073,3722.1887 L 8480.2306,3941.3918 L 8550.9413,3967.6557 L 8613.5708,3973.7167 L 8740.85,3975.737 L 8850.9566,3975.737 L 8877.2206,3990.8893 L 9158.043,4141.402 L 9176.2257,4186.8589 L 9188.3476,4323.2294 L 9229.7638,4352.5239 L 9389.3679,4384.8488 L 9464.1192,4515.1584 L 9514.6269,4533.3412 L 9576.2462,4570.7168 L 9699.4848,4650.5189 L 9775.2462,4659.6102 L 9911.6168,4647.4884 L 9971.2158,4708.0976 L 10022.734,4750.524 L 10061.119,4811.1331 L 10072.231,4856.59 L 10173.246,5057.6103 L 10214.663,5087.9149 L 10283.353,5132.3616 L 10317.698,5155.5951 L 10352.043,5175.7982 L 10397.5,5204.0825 L 10416.693,5234.387 L 10416.693,5261.6612 L 10421.744,5299.0368 L 10439.927,5339.4429 L 10449.018,5380.8592 L 10495.485,5403.0825 L 10538.922,5427.3262 L 10579.328,5473.7932 L 10642.967,5529.3516 L 10648.018,5577.8389 L 10672.262,5665.7222 L 10697.515,5705.1181 L 10734.891,5725.3212 L 10866.211,5779.8694 L 10882.373,5813.2045 L 10912.678,5858.6613 L 10969.247,5872.8035 L 11014.703,5906.1385 L 11048.038,5936.4431 L 11120.769,5968.7679 L 11166.226,5973.8187 L 11251.079,5985.9405 L 11266.231,6038.4685 L 11289.465,6061.702 L 11324.82,6073.8238 L 11478.363,6179.8898 L 11503.617,6211.2046 L 11523.82,6252.6208 L 11559.176,6287.9762 L 11602.612,6351.6158 L 11669.282,6470.8138 L 11710.698,6554.6564 L 11792.521,6590.0118 L 11977.379,6596.0727 L 11953.135,6681.9357 L 11954.145,6762.7479 L 11944.044,6853.6616 L 11994.551,6900.1286 L 12056.171,6941.5449 L 12199.612,6957.7073 L 12329.922,6971.8494 L 12368.308,6984.9814 L 12390.531,7036.4992 L 12414.775,7122.3622 L 12589.531,7169.8393 L 13259.262,7178.9307 L 13302.699,7173.8799 L 13554.227,7169.3115 L 13603.724,7173.352 L 13587.562,7446.6211 L 6394.2656,7448.6414 L 6390.225,3977.7573 z" id="path2398" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 13760.298,7335.5043 L 13896.669,7286.0068 L 13960.309,7237.5196 L 14019.907,7214.286 L 14083.547,7169.8393 L 14151.227,7134.484 L 14225.978,7096.0983 L 14356.288,7077.9155 L 14474.475,7048.621 L 14596.704,7049.6312 L 14726.004,7010.2352 L 14824.999,7006.1946 L 14885.608,6963.7682 L 15001.775,6921.3418 L 15095.72,6917.3012 L 15199.765,6875.8849 L 15292.699,6831.4382 L 15373.512,6814.2656 L 15462.405,6783.961 L 15594.735,6725.3722 L 15786.664,6705.1692 L 15955.36,6691.027 L 15958.39,6560.7173 L 16053.344,6556.6767 L 16047.283,7546.6262 L 13759.288,7499.1491 L 13760.298,7335.5043 z" id="path2400" sodipodi:nodetypes="ccccccccccccccccccccccccccc"/> </g> </svg> ; arrayOfWater = new Array(); recursos = new ResourcesLevel1(); contactListener = new ContactLIstenerLevel11(); super(); } private function generateBackground():void{ crateBackground(); super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(55, 195); var _local1 = -850; var _local2 = 83; var _local3:LevelSelector = new LevelSelector(); var _local4:WaterBackground = new WaterBackground(); _local4.init({cantX:6, cantY:5}); addChild(_local4); _local4.x = 5850; _local4.y = 4000; arrayOfWater.push(_local4); var _local5:WaterBackground = new WaterBackground(); _local5.init({cantX:2, cantY:5}); addChild(_local5); _local5.x = 13575; _local5.y = 7350; arrayOfWater.push(_local5); var _local6:Sprite = _local3.generateLevel11Background(); addChild(_local6); _local6.x = 8065; _local6.y = 3820; lvl_tramo_a1 = recursos.create_level_14A1(); addChild(lvl_tramo_a1); lvl_tramo_a1.x = _local1; lvl_tramo_a1.y = _local2; lvl_tramo_a1.smoothing = true; lvl_tramo_a2 = recursos.create_level_14A2(); addChild(lvl_tramo_a2); lvl_tramo_a2.x = (lvl_tramo_a1.x + lvl_tramo_a1.width); lvl_tramo_a2.y = (lvl_tramo_a1.y + 1870); lvl_tramo_a2.smoothing = true; lvl_tramo_b1 = recursos.create_level_14B1(); addChild(lvl_tramo_b1); lvl_tramo_b1.x = (lvl_tramo_a2.x + lvl_tramo_a2.width); lvl_tramo_b1.y = (lvl_tramo_a2.y + 1086); lvl_tramo_b1.smoothing = true; lvl_tramo_b2 = recursos.create_level_14B2(); addChild(lvl_tramo_b2); lvl_tramo_b2.x = (lvl_tramo_b1.x + lvl_tramo_b1.width); lvl_tramo_b2.y = (lvl_tramo_b1.y + 2060); lvl_tramo_b2.smoothing = true; lvl_tramo_c = recursos.create_level_14C(); addChild(lvl_tramo_c); lvl_tramo_c.x = (lvl_tramo_b2.x + lvl_tramo_b2.width); lvl_tramo_c.y = (lvl_tramo_b2.y + 1584); lvl_tramo_c.smoothing = true; } private function generateSensors():void{ var _local3:b2BodyDef; var _local4:b2Body; var _local5:b2PolygonDef; var _local6:b2DistanceJointDef; var _local1:Number = 0; var _local2:Number = 0; _local1 = (1650 / m_world.m_debugDraw.m_drawScale); _local2 = (350 / m_world.m_debugDraw.m_drawScale); _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(2, -2); _local5.vertices[1].Set(2, 2); _local5.vertices[2].Set(-2, 2); _local5.vertices[3].Set(-2, -2); _local5.friction = 0.001; _local5.restitution = 0.4; _local5.density = 0; _local5.filter.groupIndex = 0; _local5.isSensor = true; _local3 = new b2BodyDef(); _local3.position = new b2Vec2(_local1, _local2); _local3.angle = 0; _local3.userData = "Primer_Sensor"; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); _local1 = (8400 / m_world.m_debugDraw.m_drawScale); _local2 = (3500 / m_world.m_debugDraw.m_drawScale); _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(2, -2); _local5.vertices[1].Set(2, 2); _local5.vertices[2].Set(-2, 2); _local5.vertices[3].Set(-2, -2); _local5.friction = 0.001; _local5.restitution = 0.4; _local5.density = 0; _local5.filter.groupIndex = 0; _local5.isSensor = true; _local3 = new b2BodyDef(); _local3.position = new b2Vec2(_local1, _local2); _local3.angle = 0; _local3.userData = "Segundo_Sensor"; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); } override public function desrtoyLevel():void{ super.desrtoyLevel(); removeEventListener(Event.ENTER_FRAME, creacion_de_abalanchas); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateDeadZones():void{ super.senesorFunction({x:6275, y:3900, ancho:10, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:13600, y:7560, ancho:15, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:5795, y:4300, ancho:20, alto:2, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:13600, y:7960, ancho:40, alto:3, world:super.m_world, sensotType:"Dead_Zone"}); } public function iniciarCurrentLevel():void{ var _local1:Array = [15890, 6625]; super.init({padre:this, stage:stg, x:2, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateSensors(); generateDeadZones(); contactListener.initListener({padre:this, world:super.m_world}); super.m_world.SetContactListener(contactListener); addEventListener(Event.ENTER_FRAME, creacion_de_abalanchas); super.guiToFront(); } private function creacion_de_abalanchas(_arg1:Event):void{ contactListener.crearAbalanchas(); } public function removeAllTheLevel():void{ var _local1:int; while (_local1 < arrayOfWater.length) { arrayOfWater[_local1].removeAllChild(); _local1++; }; lvl_tramo_a1.bitmapData.dispose(); lvl_tramo_a1.bitmapData = null; this.removeChild(lvl_tramo_a1); lvl_tramo_a1 = null; lvl_tramo_a2.bitmapData.dispose(); lvl_tramo_a2.bitmapData = null; this.removeChild(lvl_tramo_a2); lvl_tramo_a2 = null; lvl_tramo_b1.bitmapData.dispose(); lvl_tramo_b1.bitmapData = null; this.removeChild(lvl_tramo_b1); lvl_tramo_b1 = null; lvl_tramo_b2.bitmapData.dispose(); lvl_tramo_b2.bitmapData = null; this.removeChild(lvl_tramo_b2); lvl_tramo_b2 = null; lvl_tramo_c.bitmapData.dispose(); lvl_tramo_c.bitmapData = null; this.removeChild(lvl_tramo_c); lvl_tramo_c = null; super.removeAllChildsOfTheLevel(this); } } }//package Clases.Game.Levels.AllLevels
Section 178
//Level2 (Clases.Game.Levels.AllLevels.Level2) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Levels.*; public class Level2 extends Level { private const currentTime:uint = 2100; private const currentLevel:uint = 2; private var svg_data:XML; private var recursos:ResourcesLevel1; private var stg:Stage; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; public function Level2(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level2.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="8023.6823" inkscape:cy="229.54875" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1264" inkscape:window-height="764" inkscape:window-x="0" inkscape:window-y="0" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 505.07627,279.5888 L 537.40115,271.50758 L 590.93923,257.36545 L 610.13213,245.24361 L 645.48747,227.06087 L 669.73113,204.83751 L 694.98494,180.59385 L 739.43166,151.29943 L 763.67532,126.04561 L 816.20325,95.741033 L 837.41645,78.568438 L 856.60935,60.385698 L 908.12713,15.938986 L 959.64491,-16.385904 L 1012.1728,-55.781852 L 1066.7211,-71.944292 L 1114.1983,-94.167637 L 1147.5332,-108.30978 L 1197.0307,-124.47221 L 1263.7008,-143.66512 L 1345.5231,-148.71588 L 1391.9902,-144.67527 L 1422.2947,-143.66512 L 1447.5486,-138.61435 L 1478.8633,-127.50267 L 1510.178,-109.31993 L 1541.4927,-94.167642 L 1574.8278,-89.116882 L 1638.4674,-89.116882 L 1696.0461,-91.137192 L 1751.6045,-108.30978 L 1785.9497,-133.56359 L 1806.1527,-143.66512 L 1852.6197,-142.65496 L 1885.9548,-131.54328 L 1926.3609,-114.37069 L 1959.6959,-78.005202 L 1984.9497,-48.710782 L 2004.1426,-41.639712 L 2040.5081,-38.609252 L 2065.7619,-43.660022 L 2080.9142,-55.781852 L 2087.9853,-63.863072 L 2104.1477,-74.974752 L 2115.2594,-76.995052 L 2133.4421,-76.995052 L 2152.635,-68.913832 L 2179.9092,-52.751392 L 2187.9904,-37.599102 L 2196.0716,-17.396052 L 2201.1224,-9.3148317 L 2223.3457,9.8780683 L 2248.5995,28.060808 L 2274.8635,37.152188 L 2311.229,41.192798 L 2369.8178,42.202948 L 2399.1123,39.172488 L 2438.5082,30.081118 L 2473.8635,16.949138 L 2484.9752,3.8171483 L 2498.1072,-0.22346166 L 2512.2493,8.8679183 L 2517.3001,14.928828 L 2520.3306,31.091268 L 2523.361,46.243558 L 2533.4625,55.334928 L 2543.5641,64.426308 L 2555.6859,66.446608 L 2574.8788,67.456758 L 2589.0209,68.466918 L 2609.224,65.436458 L 2616.2951,61.395848 L 2630.4372,59.375538 L 2635.488,64.426308 L 2638.5184,71.497368 L 2642.559,83.619198 L 2648.6199,88.669965 L 2659.7316,92.710575 L 2669.8331,94.73088 L 2690.0362,95.741033 L 2707.2088,95.741033 L 2735.4931,99.781643 L 2795.0921,111.90348 L 2811.2545,125.03546 L 2836.5083,136.14714 L 2843.5794,137.15729 L 2856.7114,140.18775 L 2868.8332,147.25882 L 2879.9449,164.43141 L 2884.9956,177.56339 L 2891.0565,191.70553 L 2898.1276,196.75629 L 2907.219,202.81721 L 2918.3307,203.82736 L 2938.5337,205.84767 L 2959.7469,205.84767 L 2967.8281,200.7969 L 2975.9094,193.72583 L 2986.0109,190.69538 L 2996.1124,190.69538 L 3004.1936,193.72583 L 3011.2647,201.80706 L 3018.3358,205.84767 L 3025.4068,206.85782 L 3032.4779,206.85782 L 3043.5896,210.89843 L 3050.6606,224.03041 L 3067.8332,239.1827 L 3095.1074,255.34514 L 3142.5845,260.3959 L 3224.4069,264.43651 L 3333.5034,293.73094 L 3406.2343,316.96445 L 3425.4272,318.98475 L 3440.5795,319.9949 L 3466.8435,331.10658 L 3475.9349,351.30963 L 3479.9755,359.39085 L 3481.9958,372.52284 L 3487.0465,382.62436 L 3508.2598,386.66497 L 3530.4831,387.67512 L 3553.7166,380.60406 L 3589.072,380.60406 L 3608.2649,388.68528 L 3635.539,399.79695 L 3646.6507,410.90863 L 3666.8537,448.28428 L 3699.1786,475.55839 L 3711.3004,495.76145 L 3720.3918,506.87312 L 3738.5745,520.00511 L 3752.7167,540.20816 L 3770.8994,552.32999 L 3801.204,555.36045 L 3846.6609,553.34014 L 4077.9858,540.20816 L 4115.3614,539.19801 L 4134.5543,531.11678 L 4145.666,515.9645 L 4263.8539,515.9645 L 4331.5341,508.89343 L 4420.4275,440.20306 L 4484.0672,432.12184 L 4543.6661,413.93909 L 4587.1027,394.7462 L 4624.4783,383.63451 L 4661.854,359.39085 L 4679.0266,338.17765 L 4709.3311,319.9949 L 4723.4732,315.95429 L 4736.6053,312.92384 L 4760.8489,307.87307 L 4791.1534,290.70048 L 4821.4581,278.57865 L 4864.8946,279.5888 L 4920.453,290.70048 L 4970.9606,289.69033 L 5011.3667,283.62941 L 5055.8135,275.54819 L 5320.4734,274.53804 L 5411.3871,268.47712 L 5445.7323,261.40606 L 5464.9252,244.23346 L 5492.1994,219.9898 L 5619.4786,123.01516 L 5634.6309,114.93394 L 5645.7425,114.93394 L 5659.8847,119.9847 L 5704.3314,115.94409 L 5719.4837,107.86287 L 5738.6766,95.741033 L 5758.8796,83.619198 L 5779.0827,77.558288 L 5788.174,80.588748 L 5796.2553,88.669965 L 5810.3974,89.680118 L 5823.5294,89.680118 L 5836.6614,81.598898 L 5851.8137,73.517678 L 5886.1588,54.324778 L 5905.3517,60.385698 L 5919.4939,66.446608 L 5925.5548,77.558288 L 5928.5853,85.639508 L 5924.5446,97.761338 L 5924.5446,105.84256 L 5932.6259,106.85272 L 5942.7274,100.7918 L 5949.7985,100.7918 L 5963.9406,107.86287 L 5976.0624,122.005 L 5973.032,137.15729 L 5971.0117,156.35019 L 5989.1944,172.51263 L 6004.3467,173.52278 L 6022.5294,167.46187 L 6090.2097,163.42126 L 6173.0422,172.51263 L 6231.631,188.67507 L 6253.8544,203.82736 L 6289.2097,234.13194 L 6309.4128,256.35529 L 6348.8087,277.5685 L 6386.1844,291.71063 L 6411.4382,292.72078 L 6439.7224,293.73094 L 6495.2808,296.76139 L 6510.4331,307.87307 L 6516.494,333.12689 L 6535.6869,343.22841 L 6567.0017,346.25887 L 6587.2047,335.14719 L 6611.4484,318.98475 L 6637.7123,310.90353 L 6673.0677,313.93399 L 6715.4941,313.93399 L 6797.3164,314.94414 L 6826.6109,317.9746 L 6850.8545,336.15734 L 6878.1286,349.28933 L 6905.4028,350.29948 L 6936.7175,349.28933 L 7002.3774,343.22841 L 7075.1084,328.07612 L 7090.2607,317.9746 L 7111.4739,311.91368 L 7165.012,310.90353 L 7502.4029,324.03551 L 7586.2456,322.01521 L 7678.1695,308.88322 L 7739.7888,299.79185 L 7766.0527,302.82231 L 7802.4182,304.84261 L 8001.4649,305.65953 L 7997.3791,-3.8205188 L 8164.3143,-2.8827106 L 8169.1036,639.20311 L 8166.0732,639.2031 L -159.60411,652.33508 L -158.59395,-29.517884 L 6.8476185e-09,-32.548342 L 2.0203051,280.59895 L 505.07627,279.5888 z" id="path2420" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> </g> </svg> ; recursos = new ResourcesLevel1(); super(); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBackground():void{ var _local1 = -495; var _local2 = -153; var _local3:LevelSelector = new LevelSelector(); super.agregarEstaca_to_end_level(); var _local4:Sprite = _local3.generateLevel2Background(); addChild(_local4); _local4.x = 3605; _local4.y = 522; lvl_tramo_a = recursos.create_level2A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local1; lvl_tramo_a.y = _local2; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level2B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y + 203); lvl_tramo_b.smoothing = true; } public function iniciarCurrentLevel():void{ var _local1:Array = [7925, 235]; super.init({padre:this, stage:stg, x:3, y:8.3, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); super.guiToFront(); } public function removeAllTheLevel():void{ recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } } }//package Clases.Game.Levels.AllLevels
Section 179
//Level3 (Clases.Game.Levels.AllLevels.Level3) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Levels.*; public class Level3 extends Level { private const currentTime:uint = 2300; private const currentLevel:uint = 3; private var svg_data:XML; private var recursos:ResourcesLevel1; private var stg:Stage; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; public function Level3(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level3.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="467.73155" inkscape:cy="293.1677" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 7793.3269,370.50252 L 7987.2762,371.51268 L 7984.2457,-48.710782 L 8170.1138,-41.639715 L 8183.2458,1011.9494 L -90.913729,1014.9799 L -68.690373,-13.355442 L 25.253814,-12.345289 L 26.263966,279.5888 L 459.61941,277.56849 L 535.38085,265.44666 L 572.75649,261.40605 L 609.12199,264.43651 L 652.55855,286.65986 L 666.70068,304.84261 L 683.87328,317.97459 L 693.9748,340.19795 L 714.17785,355.35024 L 724.27938,364.44161 L 769.73624,398.7868 L 794.99006,420 L 822.26417,424.04061 L 862.67028,442.22336 L 901.05607,455.35534 L 1017.2236,479.599 L 1087.9343,494.75129 L 1125.3099,500.8122 L 1151.5739,516.97464 L 1162.6856,539.198 L 1186.9292,580.61426 L 1208.1424,604.85792 L 1238.447,616.97975 L 1281.8836,624.05081 L 1343.5029,633.14219 L 1368.7567,634.15234 L 1437.4471,635.16249 L 1481.8938,640.21326 L 1501.0867,648.29448 L 1532.4014,665.46707 L 1566.7466,681.62951 L 1588.97,708.90363 L 1613.2136,722.03561 L 1639.4776,733.14729 L 1693.0157,741.22851 L 1764.7365,746.27927 L 1895.0462,728.09653 L 1946.564,723.04576 L 1961.7162,716.98485 L 1973.8381,706.88332 L 1997.0716,695.77165 L 2035.4574,695.77165 L 2153.6452,697.79195 L 2172.8381,693.75134 L 2200.1123,671.52798 L 2228.3965,651.32493 L 2241.5285,645.26402 L 2257.6909,638.19295 L 2282.9448,635.16249 L 2316.2798,635.16249 L 2327.3915,642.23356 L 2335.4727,656.3757 L 2343.5539,662.43661 L 2354.6656,661.42646 L 2385.9803,662.43661 L 2405.1732,672.53814 L 2412.2443,681.62951 L 2424.3661,707.89348 L 2443.559,726.07622 L 2479.9245,734.15744 L 2799.1327,729.10668 L 2815.2952,722.03561 L 2819.3358,709.91378 L 2827.417,702.84271 L 2840.549,697.79195 L 2901.1581,696.7818 L 2981.9703,693.75134 L 3011.2647,678.59905 L 3031.4678,669.50768 L 3043.5896,670.51783 L 3071.8739,689.71073 L 3090.0566,708.90363 L 3092.077,731.12698 L 3093.0871,768.50263 L 3101.1683,781.63461 L 3107.2292,791.73614 L 3125.412,802.84782 L 3146.6252,809.91888 L 3165.8181,823.05087 L 3171.879,833.15239 L 3194.1024,843.25392 L 3237.5389,844.26407 L 3303.1988,844.26407 L 3350.676,843.25392 L 3414.3156,836.18285 L 3440.5796,823.05087 L 3444.6202,818.0001 L 3448.6608,810.92904 L 3450.6811,807.89858 L 3462.8029,802.84782 L 3493.1075,796.7869 L 3527.4527,796.7869 L 3547.6557,795.77675 L 3575.94,799.81736 L 3603.2141,811.93919 L 3624.4273,821.03056 L 3650.6913,837.193 L 3675.9451,844.26407 L 3707.2599,846.28438 L 3774.9401,840.22346 L 3803.2243,838.20315 L 3822.4172,832.14224 L 3844.6406,819.01026 L 3856.7624,798.80721 L 3874.9452,792.74629 L 3906.2599,786.68538 L 3968.8894,791.73614 L 3982.0213,798.80721 L 4031.5188,811.93919 L 4080.0061,808.90873 L 4128.4935,808.90873 L 4171.93,807.89858 L 4193.1432,804.86812 L 4205.2651,798.80721 L 4217.3869,789.71583 L 4231.529,775.5737 L 4277.996,758.4011 L 4324.4631,755.37065 L 4362.8489,738.19805 L 4437.6001,727.08637 L 4476.9961,727.08637 L 4530.5342,727.08637 L 4575.991,723.04576 L 4601.2449,720.01531 L 4662.8642,712.94424 L 4689.1281,709.91378 L 4701.25,711.93409 L 4710.3413,720.01531 L 4718.4226,722.03561 L 4730.5444,723.04576 L 4739.6358,723.04576 L 4746.7068,717.995 L 4754.788,711.93409 L 4774.9911,707.89348 L 4846.7119,707.89348 L 4871.9657,707.89348 L 4909.3414,698.8021 L 4944.6967,690.72088 L 4956.8186,680.61936 L 4973.9911,671.52798 L 5007.3262,673.54829 L 5021.4683,672.53814 L 5078.0369,652.33509 L 5123.4937,630.11173 L 5185.113,608.89853 L 5220.4684,600.81731 L 5231.58,586.67517 L 5266.9354,559.40105 L 5293.1994,546.26907 L 5336.6359,525.05587 L 5394.2146,495.76144 L 5408.3567,484.64976 L 5417.4481,474.54824 L 5422.4989,460.4061 L 5449.773,441.2132 L 5503.3111,410.90863 L 5528.5649,396.76649 L 5553.8187,397.77664 L 5675.037,390.70558 L 5704.3314,386.66497 L 5720.4939,399.79695 L 5728.5751,417.97969 L 5740.6969,441.2132 L 5764.9406,447.27412 L 5800.2959,449.29442 L 5880.098,450.30458 L 5897.2706,445.25381 L 5911.4127,438.18275 L 5930.6056,440.20305 L 5952.829,454.34519 L 5968.9914,479.599 L 5973.032,501.82236 L 5977.0726,521.01525 L 5983.1335,544.24876 L 6006.3671,567.48227 L 6029.6006,582.63456 L 6042.7325,585.66502 L 6061.9254,587.68532 L 6110.4128,586.67517 L 6145.7681,574.55334 L 6160.9204,573.54319 L 6199.3062,580.61426 L 6214.4585,593.74624 L 6259.9153,602.83761 L 6325.5753,603.84776 L 6349.8189,611.92898 L 6385.1743,611.92898 L 6413.4585,599.80715 L 6468.0068,588.69548 L 6487.1997,576.57364 L 6507.4027,570.51273 L 6529.6261,569.50258 L 6549.8291,572.53303 L 6562.9611,571.52288 L 6578.1134,562.43151 L 6588.2149,552.32998 L 6600.3368,541.21831 L 6627.6109,523.03556 L 6691.2505,506.87312 L 6733.6769,504.85281 L 6756.9104,495.76144 L 6787.215,470.50763 L 6789.2353,461.41625 L 6796.3063,460.4061 L 6809.4383,456.36549 L 6856.9155,454.34519 L 6909.4434,446.26397 L 6971.0627,434.14214 L 7137.7379,435.15229 L 7172.0831,435.15229 L 7204.408,429.09137 L 7223.6009,409.89847 L 7227.6415,391.71573 L 7247.8445,388.68527 L 7793.3269,370.50252 z" id="path2427" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> </g> </svg> ; recursos = new ResourcesLevel1(); super(); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBackground():void{ var _local1 = -690; var _local2 = 0x0100; var _local3:LevelSelector = new LevelSelector(); super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(75, 210); var _local4:Sprite = _local3.generateLevel3Background(); addChild(_local4); _local4.x = 3982; _local4.y = 700; lvl_tramo_a = recursos.create_level3A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local1; lvl_tramo_a.y = _local2; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level3B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y + 109); lvl_tramo_b.smoothing = true; } public function iniciarCurrentLevel():void{ var _local1:Array = [7920, 300]; super.init({padre:this, stage:stg, x:2, y:8.5, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); super.guiToFront(); } public function removeAllTheLevel():void{ recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } } }//package Clases.Game.Levels.AllLevels
Section 180
//Level4 (Clases.Game.Levels.AllLevels.Level4) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; import Clases.Game.Levels.LevelElements.*; public class Level4 extends Level { private const currentLevel:uint = 4; private const currentTime:uint = 2000; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var arrayOfWater:Array; private var stg:Stage; public function Level4(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level4.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="6354.9205" inkscape:cy="55.889668" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="-4" inkscape:window-y="-4" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1212.3861,517.92544 L 3.736034,518.99495 L 7.776644,-3.2539177 L 55.253814,-2.2437652 L 56.263966,278.57864 L 476.48743,279.5888 L 522.95444,272.51773 L 546.18795,270.49742 L 582.55344,270.49742 L 614.87833,263.42636 L 640.13214,253.32483 L 663.36565,243.2233 L 673.46717,236.15224 L 698.72099,223.02025 L 721.9545,219.9898 L 732.05602,214.93903 L 741.14739,207.86796 L 765.39106,195.74613 L 807.81746,172.51263 L 819.93929,168.47202 L 844.18296,161.40095 L 865.39616,156.35018 L 877.51799,148.26896 L 900.7515,136.14713 L 910.85302,128.06591 L 936.10684,110.89332 L 942.16775,102.8121 L 955.29973,94.730879 L 965.40126,88.669964 L 985.60431,84.629354 L 1007.8277,84.629354 L 1044.1932,68.466913 L 1055.3048,58.365388 L 1069.447,48.263862 L 1079.5485,33.111574 L 1085.6094,25.030354 L 1099.7515,14.928828 L 1211.8785,14.928828 L 1212.3861,517.92544 z" id="path2380" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.65358078px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1213.6242,252.20237 L 1224.5522,252.20237 L 1224.5522,516.05747 L 1212.9998,517.45353 L 1213.6242,252.20237 z" id="path2386" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.65358078px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1345.3097,253.24052 L 1356.2376,253.24052 L 1356.2376,517.09562 L 1344.6852,518.49169 L 1345.3097,253.24052 z" id="path2390" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.65358078px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1490.8137,254.22269 L 1501.7417,254.22269 L 1501.7417,518.07779 L 1490.1893,519.47386 L 1490.8137,254.22269 z" id="path2392" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.65358078px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1617.1061,254.98807 L 1628.034,254.98807 L 1628.034,518.84317 L 1616.4816,520.23924 L 1617.1061,254.98807 z" id="path2396" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1628.3659,520.0051 L 1628.3862,13.918676 L 1757.6654,13.918676 L 1814.234,24.020201 L 1867.7721,56.345083 L 1959.6959,150.28927 L 1998.0817,178.57354 L 2066.7721,200.7969 L 2155.6655,204.83751 L 2178.899,200.7969 L 2207.1833,195.74613 L 2237.4879,181.604 L 2269.8128,171.50247 L 2289.0057,167.46186 L 2300.1174,167.46186 L 2320.3204,170.49232 L 2344.5641,185.64461 L 2365.7773,208.87812 L 2386.9905,217.96949 L 2426.3864,224.03041 L 2458.7113,224.03041 L 2496.0869,224.03041 L 2572.8585,213.92888 L 2634.4778,189.68522 L 2676.9043,161.40095 L 2703.1682,126.04561 L 2729.4322,97.761337 L 2756.7063,85.639507 L 2799.1327,76.548134 L 2917.2799,73.517676 L 2978.9399,95.88317 L 2998.1328,125.03546 L 3027.4272,153.31973 L 3073.8942,181.604 L 3106.2191,191.70552 L 3167.8384,205.84766 L 3233.4983,204.83751 L 3316.3308,201.80705 L 3394.1126,185.64461 L 3467.8537,159.38064 L 3506.2395,152.30957 L 3537.5542,155.34003 L 3602.204,157.36034 L 3644.6304,149.27912 L 3678.9756,139.17759 L 3734.534,135.13698 L 3789.0822,129.07607 L 3848.6812,131.09637 L 3893.1279,138.16744 L 3920.402,144.22835 L 4280.0163,144.22835 L 4296.1788,138.16744 L 4338.6052,130.08622 L 4416.3869,120.99485 L 4454.7727,122.005 L 4455.7829,523.03556 L 1628.3659,520.0051 z" id="path2400" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5081085px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4456.7177,365.7623 L 4467.7833,365.7623 L 4467.7833,523.2495 L 4456.0855,524.08277 L 4456.7177,365.7623 z" id="path2402" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5081085px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4605.1195,365.10374 L 4616.1851,365.10374 L 4616.1851,522.59094 L 4604.4873,523.42421 L 4605.1195,365.10374 z" id="path2404" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5081085px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4740.4799,366.11389 L 4751.5455,366.11389 L 4751.5455,523.60109 L 4739.8477,524.43436 L 4740.4799,366.11389 z" id="path2406" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5081085px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4877.8607,366.13419 L 4888.9263,366.13419 L 4888.9263,523.62139 L 4877.2285,524.45466 L 4877.8607,366.13419 z" id="path2408" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4889.1383,528.08632 L 4890.1485,120.99485 L 5008.3363,122.005 L 5077.0267,132.10652 L 5158.8491,162.4111 L 5223.4988,202.8172 L 5267.9455,227.06086 L 5336.6359,250.29437 L 5365.9303,262.4162 L 5396.2349,274.53803 L 5435.6309,289.69032 L 5456.8441,295.75124 L 5498.2603,295.75124 L 5575.0319,287.67002 L 5654.834,270.49742 L 5715.4431,259.38574 L 5768.9812,252.31468 L 5932.6259,244.23346 L 5996.2655,250.29437 L 6099.3011,253.32483 L 6099.3011,528.06602 L 4889.1383,528.08632 z" id="path2410" sodipodi:nodetypes="cccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6771.0525,527.07617 L 6769.0322,253.32483 L 6873.0779,252.31468 L 6933.6871,248.27407 L 6960.9612,236.15224 L 7022.5805,209.88827 L 7088.2404,180.59385 L 7135.7176,159.38064 L 7188.2455,151.29942 L 7229.6618,149.27912 L 7270.0679,155.34003 L 7294.3116,167.46186 L 7336.738,193.72583 L 7465.0273,216.95934 L 7821.6112,219.9898 L 7940.8092,212.91873 L 7936.7686,-81.035664 L 8079.2001,-80.025512 L 8079.2001,528.08632 L 6771.0525,527.07617 z" id="path2412" sodipodi:nodetypes="cccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.41714227px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6758.9115,516.75493 L 6770.0632,516.75493 L 6770.0632,622.08119 L 6758.2744,622.63843 L 6758.9115,516.75493 z" id="path2416" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.41714227px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6100.125,516.56083 L 6111.2767,516.56083 L 6111.2767,621.88709 L 6099.4879,622.44433 L 6100.125,516.56083 z" id="path2420" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.41714227px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6437.4956,515.55067 L 6448.6473,515.55067 L 6448.6473,620.87693 L 6436.8585,621.43417 L 6437.4956,515.55067 z" id="path2422" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.41714227px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6265.7697,516.56082 L 6276.9214,516.56082 L 6276.9214,621.88708 L 6265.1326,622.44432 L 6265.7697,516.56082 z" id="path2424" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.41714227px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6610.2317,515.55067 L 6621.3834,515.55067 L 6621.3834,620.87693 L 6609.5946,621.43417 L 6610.2317,515.55067 z" id="path2426" sodipodi:nodetypes="ccccc"/> </g> </svg> ; arrayOfWater = new Array(); recursos = new ResourcesLevel1(); super(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(100, 210); var _local1:WaterBackground = new WaterBackground(); _local1.init({cantX:5, cantY:7}); addChild(_local1); _local1.x = 1200; _local1.y = 240; arrayOfWater.push(_local1); var _local2:WaterBackground = new WaterBackground(); _local2.init({cantX:5, cantY:7}); addChild(_local2); _local2.x = 4420; _local2.y = 350; arrayOfWater.push(_local2); var _local3:WaterBackground = new WaterBackground(); _local3.init({cantX:7, cantY:7}); addChild(_local3); _local3.x = 6100; _local3.y = 505; arrayOfWater.push(_local3); var _local4 = -670; var _local5 = 8; var _local6:LevelSelector = new LevelSelector(); var _local7:Sprite = _local6.generateLevel4Background(); addChild(_local7); _local7.x = 4030; _local7.y = 345; lvl_tramo_a = recursos.create_level4A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local4; lvl_tramo_a.y = _local5; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level4B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y + 107); lvl_tramo_b.smoothing = true; } private function generateDeadZones():void{ super.senesorFunction({x:1421, y:150, ancho:6.8, alto:1, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:4675, y:250, ancho:7, alto:1, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:6435, y:400, ancho:11, alto:1, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:1421, y:600, ancho:15, alto:1, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:4721, y:600, ancho:15, alto:1, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:6451, y:600, ancho:18, alto:1, world:super.m_world, sensotType:"Dead_Zone"}); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBridges():void{ var _local1:b2BodyDef; var _local2:b2Body; var _local3:b2PolygonDef; var _local4:b2CircleDef; var _local5:Number = (1220 / m_world.m_debugDraw.m_drawScale); var _local6:Number = -2.5; _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -3.78); _local3.vertices[1].Set(0.1695, 3.78); _local3.vertices[2].Set(-0.1695, 3.78); _local3.vertices[3].Set(-0.1695, -3.78); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 13.5008591677232), (_local6 + 7.06059627471954)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -3.78); _local3.vertices[1].Set(0.1695, 3.78); _local3.vertices[2].Set(-0.1695, 3.78); _local3.vertices[3].Set(-0.1695, -3.78); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 9.2), (_local6 + 7.05661908968268)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -3.78); _local3.vertices[1].Set(0.1695, 3.78); _local3.vertices[2].Set(-0.1695, 3.78); _local3.vertices[3].Set(-0.1695, -3.78); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 4.37), (_local6 + 7.05661908968268)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -3.78); _local3.vertices[1].Set(0.1695, 3.78); _local3.vertices[2].Set(-0.1695, 3.78); _local3.vertices[3].Set(-0.1695, -3.78); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2(_local5, (_local6 + 7.09661908968268)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.25, -0.17); _local3.vertices[1].Set(2.25, 0.17); _local3.vertices[2].Set(-2.25, 0.17); _local3.vertices[3].Set(-2.25, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 2.1), (_local6 + 3.08661284969298)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.34, -0.17); _local3.vertices[1].Set(2.34, 0.17); _local3.vertices[2].Set(-2.34, 0.17); _local3.vertices[3].Set(-2.34, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 6.8), (_local6 + 3.08661284969298)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.12, -0.17); _local3.vertices[1].Set(2.12, 0.17); _local3.vertices[2].Set(-2.12, 0.17); _local3.vertices[3].Set(-2.12, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 11.4), (_local6 + 3.08661284969298)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local5 = (4300 / m_world.m_debugDraw.m_drawScale); _local6 = 1.35; _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -3.88); _local3.vertices[1].Set(0.1695, 3.88); _local3.vertices[2].Set(-0.1695, 3.88); _local3.vertices[3].Set(-0.1695, -3.88); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 5.5), (_local6 + 7.06059627471954)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 6); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -3.88); _local3.vertices[1].Set(0.1695, 3.88); _local3.vertices[2].Set(-0.1695, 3.88); _local3.vertices[3].Set(-0.1695, -3.88); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 10.35), (_local6 + 7.05661908968268)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 6); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -3.88); _local3.vertices[1].Set(0.1695, 3.88); _local3.vertices[2].Set(-0.1695, 3.88); _local3.vertices[3].Set(-0.1695, -3.88); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 14.9), (_local6 + 7.05661908968268)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 6); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -3.88); _local3.vertices[1].Set(0.1695, 3.88); _local3.vertices[2].Set(-0.1695, 3.88); _local3.vertices[3].Set(-0.1695, -3.88); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 19.6), (_local6 + 7.05661908968268)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 6); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.4, -0.17); _local3.vertices[1].Set(2.4, 0.17); _local3.vertices[2].Set(-2.4, 0.17); _local3.vertices[3].Set(-2.4, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 7.9), (_local6 + 3.08661284969298)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); _local1.userData.width = (_local1.userData.width + 10); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.24, -0.17); _local3.vertices[1].Set(2.24, 0.17); _local3.vertices[2].Set(-2.24, 0.17); _local3.vertices[3].Set(-2.24, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 12.6), (_local6 + 3.08661284969298)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.32, -0.17); _local3.vertices[1].Set(2.32, 0.17); _local3.vertices[2].Set(-2.32, 0.17); _local3.vertices[3].Set(-2.32, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 17.2), (_local6 + 3.08661284969298)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local5 = (6000 / m_world.m_debugDraw.m_drawScale); _local6 = 6; _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.21); _local3.vertices[1].Set(0.1695, 4.21); _local3.vertices[2].Set(-0.1695, 4.21); _local3.vertices[3].Set(-0.1695, -4.21); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 3.5), (_local6 + 6.8)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 28); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.21); _local3.vertices[1].Set(0.1695, 4.21); _local3.vertices[2].Set(-0.1695, 4.21); _local3.vertices[3].Set(-0.1695, -4.21); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 9.05), (_local6 + 6.8)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 28); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.21); _local3.vertices[1].Set(0.1695, 4.21); _local3.vertices[2].Set(-0.1695, 4.21); _local3.vertices[3].Set(-0.1695, -4.21); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 14.8), (_local6 + 6.8)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 28); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.21); _local3.vertices[1].Set(0.1695, 4.21); _local3.vertices[2].Set(-0.1695, 4.21); _local3.vertices[3].Set(-0.1695, -4.21); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 20.5), (_local6 + 6.8)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 28); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.21); _local3.vertices[1].Set(0.1695, 4.21); _local3.vertices[2].Set(-0.1695, 4.21); _local3.vertices[3].Set(-0.1695, -4.21); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 25.5), (_local6 + 6.8)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 28); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.75, -0.17); _local3.vertices[1].Set(2.75, 0.17); _local3.vertices[2].Set(-2.75, 0.17); _local3.vertices[3].Set(-2.75, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 6.25), (_local6 + 2.3)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); _local1.userData.width = (_local1.userData.width + 28); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.8, -0.17); _local3.vertices[1].Set(2.8, 0.17); _local3.vertices[2].Set(-2.8, 0.17); _local3.vertices[3].Set(-2.8, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 11.92), (_local6 + 2.3)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); _local1.userData.width = (_local1.userData.width + 32); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.8, -0.17); _local3.vertices[1].Set(2.8, 0.17); _local3.vertices[2].Set(-2.8, 0.17); _local3.vertices[3].Set(-2.8, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 17.65), (_local6 + 2.3)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); _local1.userData.width = (_local1.userData.width + 32); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(2.5, -0.17); _local3.vertices[1].Set(2.5, 0.17); _local3.vertices[2].Set(-2.5, 0.17); _local3.vertices[3].Set(-2.5, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 23), (_local6 + 2.3)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); _local1.userData.width = (_local1.userData.width + 15); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); var _local7:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local7); _local7.x = 1496; _local7.y = 367; var _local8:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local8); _local8.x = 1350; _local8.y = 367; var _local9:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local9); _local9.x = 1220; _local9.y = 367; var _local10:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local10); _local10.x = 1624; _local10.y = 367; var _local11:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local11); _local11.x = 4885; _local11.y = 477; var _local12:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local12); _local12.x = 4746; _local12.y = 477; var _local13:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local13); _local13.x = 4610; _local13.y = 477; var _local14:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local14); _local14.x = 4464; _local14.y = 477; var _local15:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local15); _local15.x = 6765; _local15.y = 629; var _local16:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local16); _local16.x = 6615; _local16.y = 629; var _local17:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local17); _local17.x = 6443; _local17.y = 629; var _local18:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local18); _local18.x = 6271; _local18.y = 629; var _local19:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local19); _local19.x = 6105; _local19.y = 629; } public function removeAllTheLevel():void{ var _local1:int; while (_local1 < arrayOfWater.length) { arrayOfWater[_local1].removeAllChild(); _local1++; }; recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } public function iniciarCurrentLevel():void{ var _local1:Array = [7870, 145]; super.init({padre:this, stage:stg, x:3, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateBridges(); generateDeadZones(); super.guiToFront(); } } }//package Clases.Game.Levels.AllLevels
Section 181
//Level5 (Clases.Game.Levels.AllLevels.Level5) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; import Clases.Game.Levels.LevelElements.*; public class Level5 extends Level { private const currentLevel:uint = 5; private const currentTime:uint = 1900; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var arrayOfWater:Array; private var stg:Stage; public function Level5(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level5.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="4453.3665" inkscape:cy="57.558286" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1280" inkscape:window-height="784" inkscape:window-x="0" inkscape:window-y="0" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -68.690373,710.92393 L -68.690373,50.284167 L 27.274119,52.304472 L 27.274119,275.6091 L 447.49758,276.61925 L 463.66002,270.49742 L 476.792,262.4162 L 490.93414,252.31468 L 502.04582,243.2233 L 516.18795,235.14208 L 529.31994,227.06086 L 548.51283,222.0101 L 564.67527,220.99995 L 578.81741,218.97964 L 589.92909,211.90858 L 599.02046,203.82735 L 614.17275,192.71568 L 637.40626,183.6243 L 652.55855,172.51263 L 665.69053,162.4111 L 682.86312,158.37049 L 700.03572,156.35018 L 721.24892,153.31973 L 735.39106,150.28927 L 753.5738,148.26896 L 765.69563,150.28927 L 780.84792,160.3908 L 811.1525,172.51263 L 823.27433,177.56339 L 860.64997,184.63446 L 886.91394,211.90858 L 897.01546,227.06086 L 901.05607,236.15224 L 894.99516,245.24361 L 874.79211,255.34513 L 836.40631,269.48727 L 819.23372,299.79185 L 819.23371,706.88332 L -68.690373,710.92393 z" id="path2381" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 937.42157,418.98985 L 963.68554,354.34008 L 985.90892,331.10657 L 1007.1221,311.91368 L 1112.178,316.96444 L 1142.4825,310.90352 L 1168.7465,301.81215 L 1179.8582,295.75124 L 1187.9394,289.69032 L 1196.0206,284.63956 L 1219.2541,277.56849 L 1233.3963,280.59895 L 1239.4572,290.70047 L 1246.5282,302.8223 L 1260.6704,304.84261 L 1273.8024,312.92383 L 1262.6907,330.09643 L 1240.4673,345.24871 L 1227.3353,393.73603 L 1207.1322,719.00515 L 936.41141,715.9747 L 937.42157,418.98985 z" id="path2380" sodipodi:nodetypes="cccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1334.4116,451.31473 L 1351.8366,406.61548 L 1380.3735,381.10912 L 1428.1032,356.61293 L 1513.2085,348.27917 L 1539.4725,344.23856 L 1567.7568,331.10658 L 1607.1527,304.84261 L 1620.2847,290.70047 L 1639.4776,270.49742 L 1654.6299,267.46696 L 1669.7822,262.23346 L 1686.9548,245.06086 L 1699.0766,219.80705 L 1707.1578,216.77659 L 1714.2289,202.63446 L 1724.3304,190.51263 L 1731.4014,179.40095 L 1746.5538,173.34003 L 1764.7365,166.26897 L 1778.8786,161.2182 L 1796.0512,151.11668 L 1827.2035,137.98469 L 1840.3355,122.8324 L 1848.4167,101.6192 L 1857.5081,87.477066 L 1869.6299,78.385693 L 1877.7111,71.314625 L 1887.8126,64.243557 L 1898.9243,64.243557 L 1908.0157,76.365388 L 1910.036,94.548134 L 1869.6299,135.96439 L 1849.4269,223.84766 L 1830.3964,715.9747 L 1315.2186,717.99501 L 1334.4116,451.31473 z" id="path2382" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1978.8888,390.70557 L 1979.899,304.8426 L 1987.9802,273.52788 L 1996.0615,251.30452 L 2012.2238,240.19285 L 2033.437,228.07102 L 2098.0868,223.02025 L 2215.2645,216.95934 L 2249.6097,200.7969 L 2294.0564,174.53293 L 2338.5031,138.16744 L 2352.6453,115.94408 L 2373.8585,94.730879 L 2392.0412,81.598896 L 2409.2138,71.497371 L 2417.295,56.345083 L 2430.427,43.213099 L 2448.6098,40.182642 L 2473.8636,42.202947 L 2500.1276,41.192794 L 2620.3357,40.182641 L 2620.0832,722.4436 L 1979.899,720.01531 L 1978.8888,390.70557 z" id="path2384" sodipodi:nodetypes="cccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3272.8943,81.598896 L 3270.874,64.426303 L 3273.9044,55.33493 L 3279.9653,48.263862 L 3297.1379,45.233405 L 3323.4019,52.304472 L 3345.6252,68.466913 L 3384.011,97.761337 L 3423.407,110.89332 L 3441.5897,112.91363 L 3461.7928,113.92378 L 3486.0364,110.89332 L 3501.1887,99.781642 L 3515.3309,87.659812 L 3532.5035,71.497371 L 3544.6253,63.41615 L 3564.8283,60.385693 L 3578.9705,64.426303 L 3600.1837,84.629354 L 3608.2649,105.84256 L 3607.2547,135.13698 L 3593.1126,164.43141 L 3592.1025,186.65476 L 3592.1025,209.88827 L 3599.1735,220.99995 L 3623.4172,236.15224 L 3650.6913,236.15224 L 3674.935,223.02025 L 3694.1279,202.8172 L 3711.3005,188.67507 L 3728.4731,175.54308 L 3749.6863,175.54308 L 3781.001,188.67507 L 3795.1431,201.80705 L 3796.1533,222.0101 L 3802.2142,233.12178 L 3815.3462,248.27407 L 3847.6711,259.38574 L 3878.9858,264.43651 L 3905.2498,264.43651 L 3918.3817,272.51773 L 3937.5746,296.76139 L 3953.7371,314.94413 L 3977.9807,326.05581 L 4007.2752,345.24871 L 4037.5797,347.26902 L 4073.9452,347.26902 L 4140.6153,344.23856 L 4165.8691,329.08627 L 4187.0823,317.97459 L 4213.3463,305.85276 L 4248.7016,295.75124 L 4282.0367,293.73093 L 4325.4732,294.74108 L 4359.8184,285.64971 L 4378.0011,270.49742 L 4393.1534,254.33498 L 4495.1788,190.69537 L 4532.5545,180.59385 L 4543.6662,183.6243 L 4559.8286,191.70552 L 4559.8286,203.82735 L 4557.8083,222.0101 L 4544.6763,244.23346 L 4516.392,258.37559 L 4484.0672,282.61925 L 4442.6509,327.06596 L 4441.6407,789.71583 L 3274.9146,786.68538 L 3272.8943,81.598896 z" id="path2386" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4625.4885,791.73614 L 4637.6103,410.90863 L 4649.7322,386.66497 L 4659.8337,375.55329 L 4687.1078,371.51268 L 4743.6764,370.50253 L 4783.0723,362.4213 L 4822.4683,353.32993 L 4853.783,362.4213 L 4892.1688,385.65481 L 4928.5343,387.67512 L 4993.184,387.67512 L 5025.5089,377.57359 L 5068.9455,350.29947 L 5119.4531,297.77154 L 5146.7272,287.67002 L 5174.0014,271.50758 L 5221.4785,244.23346 L 5262.8948,237.16238 L 5305.3212,235.14208 L 5320.4735,253.32482 L 5309.3617,279.5888 L 5307.3415,326.05582 L 5291.1791,787.69553 L 4625.4885,791.73614 z" id="path2388" sodipodi:nodetypes="ccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 5449.773,516.97464 L 5445.4799,426.81853 L 5476.5421,397.27156 L 5531.8479,384.8972 L 5686.1487,354.34008 L 5718.4736,330.09642 L 5738.6766,316.96444 L 5757.8695,289.69032 L 5781.103,258.37559 L 5812.4178,218.97964 L 5839.6919,183.6243 L 5872.0168,157.36034 L 5909.3924,138.16744 L 5950.8087,126.04561 L 6002.3264,94.730879 L 6057.8848,73.517676 L 6072.027,58.365388 L 6093.2402,34.121727 L 6117.4838,19.979591 L 6124.2908,16.314311 L 6130.6158,12.908523 L 6154.8595,1.796845 L 6210.4179,-6.2843754 L 6288.1996,-6.2843754 L 6338.7072,-11.335138 L 6354.8697,-29.517884 L 6370.022,-39.619409 L 6388.2047,-48.710782 L 6477.0981,-49.720935 L 6559.9306,-46.690477 L 6600.3368,-49.720935 L 6665.9967,-39.619409 L 6701.352,-25.477274 L 6764.9916,-6.2843754 L 6894.2911,11.89837 L 6950.8597,7.8577603 L 6980.1541,-2.2437652 L 7002.3775,-15.375748 L 7031.6719,-35.578799 L 7042.7836,-39.619409 L 7058.946,-54.771698 L 7078.1389,-64.873223 L 7112.4841,-64.873223 L 7155.9207,-39.619409 L 7169.0526,-15.375748 L 7194.3064,30.081116 L 7233.7024,56.345083 L 7286.2303,67.456761 L 7311.4841,78.568439 L 7328.6567,120.99485 L 7352.9004,144.22835 L 7386.2354,159.38064 L 8043.8447,161.40095 L 8047.8854,-105.27933 L 8176.1747,-105.27933 L 8187.2864,788.70568 L 5457.8542,790.72598 L 5449.773,516.97464 z" id="path2390" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.69819188px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2619.0706,721.64739 L 2620.0797,330.81264 L 2636.2249,330.81264 L 2635.2158,721.58876 L 2619.0706,721.64739 z" id="path2387" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.69819188px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3256.7792,720.31666 L 3257.7883,329.48191 L 3273.9335,329.48191 L 3272.9244,720.25802 L 3256.7792,720.31666 z" id="path2389" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.69819188px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3022.8001,719.5972 L 3023.8093,328.76243 L 3039.9545,328.76243 L 3038.9453,719.53856 L 3022.8001,719.5972 z" id="path2391" sodipodi:nodetypes="ccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.69819188px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2821.9938,719.59717 L 2823.003,328.7624 L 2839.1482,328.7624 L 2838.139,719.53853 L 2821.9938,719.59717 z" id="path2393" sodipodi:nodetypes="ccccc"/> </g> </svg> ; arrayOfWater = new Array(); recursos = new ResourcesLevel1(); super(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(75, 210); var _local1:WaterBackground = new WaterBackground(); _local1.init({cantX:2, cantY:7}); addChild(_local1); _local1.x = 800; _local1.y = 440; arrayOfWater.push(_local1); var _local2:WaterBackground = new WaterBackground(); _local2.init({cantX:2, cantY:7}); addChild(_local2); _local2.x = 1200; _local2.y = 440; arrayOfWater.push(_local2); var _local3:WaterBackground = new WaterBackground(); _local3.init({cantX:2, cantY:7}); addChild(_local3); _local3.x = 1800; _local3.y = 440; arrayOfWater.push(_local3); var _local4:WaterBackground = new WaterBackground(); _local4.init({cantX:7, cantY:7}); addChild(_local4); _local4.x = 2600; _local4.y = 315; arrayOfWater.push(_local4); var _local5:WaterBackground = new WaterBackground(); _local5.init({cantX:3, cantY:7}); addChild(_local5); _local5.x = 4400; _local5.y = 460; arrayOfWater.push(_local5); var _local6:WaterBackground = new WaterBackground(); _local6.init({cantX:2, cantY:7}); addChild(_local6); _local6.x = 5280; _local6.y = 460; arrayOfWater.push(_local6); var _local7 = -410; var _local8 = 35; var _local9:LevelSelector = new LevelSelector(); var _local10:Sprite = _local9.generateLevel5Background(); addChild(_local10); _local10.x = 4065; _local10.y = 375; lvl_tramo_a = recursos.create_level5A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local7; lvl_tramo_a.y = _local8; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level5B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y - 105); lvl_tramo_b.smoothing = true; } private function generateDeadZones():void{ super.senesorFunction({x:1421, y:800, ancho:28, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:2945, y:250, ancho:10.65, alto:1, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:5000, y:850, ancho:25, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:3021, y:1000, ancho:110, alto:2, world:super.m_world, sensotType:"Dead_Zone"}); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBridge():void{ var _local1:b2BodyDef; var _local2:b2Body; var _local3:b2PolygonDef; var _local4:b2CircleDef; var _local5:Number = (2600 / m_world.m_debugDraw.m_drawScale); var _local6:Number = -2.5; _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.6); _local3.vertices[1].Set(0.1695, 4.6); _local3.vertices[2].Set(-0.1695, 4.6); _local3.vertices[3].Set(-0.1695, -4.6); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 1), (_local6 + 9)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 50); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.6); _local3.vertices[1].Set(0.1695, 4.6); _local3.vertices[2].Set(-0.1695, 4.6); _local3.vertices[3].Set(-0.1695, -4.6); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 7.7), (_local6 + 9)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 50); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.6); _local3.vertices[1].Set(0.1695, 4.6); _local3.vertices[2].Set(-0.1695, 4.6); _local3.vertices[3].Set(-0.1695, -4.6); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 14.4), (_local6 + 9)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 50); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(0.1695, -4.6); _local3.vertices[1].Set(0.1695, 4.6); _local3.vertices[2].Set(-0.1695, 4.6); _local3.vertices[3].Set(-0.1695, -4.6); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 22), (_local6 + 9)); _local1.angle = 0; _local1.userData = new PuenteSeccionVertical(); _local1.userData.height = (_local1.userData.height + 50); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(3.37, -0.17); _local3.vertices[1].Set(3.37, 0.17); _local3.vertices[2].Set(-3.37, 0.17); _local3.vertices[3].Set(-3.37, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 4.3), (_local6 + 4)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); _local1.userData.width = (_local1.userData.width + 80); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(3.3, -0.17); _local3.vertices[1].Set(3.3, 0.17); _local3.vertices[2].Set(-3.3, 0.17); _local3.vertices[3].Set(-3.3, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 11.1), (_local6 + 4)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); _local1.userData.width = (_local1.userData.width + 80); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(3.7, -0.17); _local3.vertices[1].Set(3.7, 0.17); _local3.vertices[2].Set(-3.7, 0.17); _local3.vertices[3].Set(-3.7, -0.17); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((_local5 + 18.2), (_local6 + 4)); _local1.angle = 0; _local1.userData = new PuenteSeccionHorizontal(); _local1.userData.width = (_local1.userData.width + 80); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local2 = m_world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); var _local7:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local7); _local7.x = 2630; _local7.y = 443; _local7.scaleX = 1.3; var _local8:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local8); _local8.x = 2830; _local8.y = 443; _local8.scaleX = 1.3; var _local9:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local9); _local9.x = 3030; _local9.y = 443; _local9.scaleX = 1.3; var _local10:PuenteSeccionVertical = new PuenteSeccionVertical(); addChild(_local10); _local10.x = 3260; _local10.y = 443; _local10.scaleX = 1.3; } public function removeAllTheLevel():void{ var _local1:int; while (_local1 < arrayOfWater.length) { arrayOfWater[_local1].removeAllChild(); _local1++; }; recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } public function iniciarCurrentLevel():void{ var _local1:Array = [7975, 90]; super.init({padre:this, stage:stg, x:2, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateBridge(); generateDeadZones(); super.guiToFront(); } } }//package Clases.Game.Levels.AllLevels
Section 182
//Level6 (Clases.Game.Levels.AllLevels.Level6) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; import Clases.Game.Levels.LevelElements.*; public class Level6 extends Level { private const currentLevel:uint = 6; private const currentTime:uint = 2000; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var arrayOfWater:Array; private var stg:Stage; public function Level6(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level6.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="3112.438" inkscape:cy="181.26856" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -89.903576,469.49748 L -89.903576,23.010049 L 26.263967,23.010049 L 28.284272,290.70048 L 440.42651,291.71063 L 473.76154,281.6091 L 484.87322,272.51773 L 502.04581,261.40605 L 517.1981,255.34514 L 531.34024,251.30453 L 547.50268,251.30453 L 562.65497,251.30453 L 584.87832,247.26392 L 592.95954,238.17254 L 599.02046,220.99995 L 606.09153,214.93903 L 624.27427,206.85781 L 636.3961,204.83751 L 647.50778,203.82736 L 660.63976,200.7969 L 670.74129,195.74614 L 685.89358,180.59385 L 692.96465,168.47202 L 701.04587,154.32988 L 714.17785,144.22836 L 738.42151,133.11668 L 758.62456,122.005 L 771.75654,107.86286 L 784.88853,89.680117 L 800.04082,76.548134 L 821.25402,70.487219 L 835.39615,59.375541 L 853.5789,56.345083 L 869.74134,45.233405 L 881.86317,42.202947 L 891.9647,31.091269 L 899.03577,23.010049 L 902.06622,11.898371 L 910.14744,1.7968454 L 920.24897,-6.2843747 L 931.36065,-13.355442 L 939.44187,-19.416358 L 951.5637,-22.446815 L 965.70583,-25.477273 L 976.81751,-29.517883 L 990.95965,-37.599104 L 1000.051,-50.731087 L 1005.1018,-61.842765 L 1011.1628,-72.954443 L 1021.2643,-81.035663 L 1029.3455,-87.096581 L 1036.4166,-95.177802 L 1047.5282,-97.198102 L 1071.7719,-96.187952 L 1089.9546,-87.096581 L 1080.8633,-67.90368 L 1067.7313,-53.761545 L 1067.7313,-28.507731 L 1072.782,6.8476082 L 1086.9242,17.959286 L 1096.0156,35.13188 L 1114.1983,47.25371 L 1144.5029,48.263863 L 1174.8075,44.223253 L 1196.0207,36.142032 L 1206.1222,36.142032 L 1214.2034,50.284168 L 1214.2034,69.477066 L 1222.2846,75.537982 L 1243.4978,75.537982 L 1253.5994,69.477066 L 1265.7212,65.436456 L 1277.843,65.436456 L 1295.0156,77.558287 L 1298.0461,94.73088 L 1322.2897,99.781643 L 1331.3811,110.89332 L 1340.4725,119.98469 L 1343.5029,136.14714 L 1340.4725,155.34003 L 1327.3405,168.47202 L 1321.2796,186.65476 L 1332.3913,214.93903 L 1330.371,472.52793 L -89.903576,469.49748 z" id="path2387" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1419.2644,303.83245 L 1423.305,285.64971 L 1431.3862,267.46696 L 1435.4268,254.33498 L 1447.5486,241.203 L 1465.7314,225.04056 L 1498.0562,208.87812 L 1531.3913,198.77659 L 1556.6451,198.77659 L 1589.9801,194.73598 L 1616.2441,190.69537 L 1628.3659,206.85781 L 1605.1323,229.08116 L 1570.7872,294.74108 L 1571.7974,364.44161 L 1568.7669,439.1929 L 1548.5639,494.75129 L 1427.3456,497.78175 L 1418.2542,333.12688 L 1419.2644,303.83245 z" id="path2380" sodipodi:nodetypes="cccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3730.4934,17.959286 L 3747.666,12.908523 L 3745.6456,-1.2336126 L 3758.7776,-7.2945279 L 3792.1127,-32.548342 L 3812.3157,-45.680325 L 3827.468,-46.690477 L 3863.8335,-56.792003 L 3914.3411,-59.82246 L 3991.1128,-46.690477 L 4006.265,-20.426511 L 4006.265,2.8069976 L 4012.3259,452.32488 L 3724.4324,452.32488 L 3730.4934,17.959286 z" id="path2384" sodipodi:nodetypes="ccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4104.2498,78.888218 L 4122.4325,37.152184 L 4143.6457,24.020201 L 4174.9604,16.949133 L 4224.458,25.030354 L 4252.7422,57.355235 L 4252.7422,88.669964 L 4283.0468,109.88317 L 4335.5747,143.2182 L 4351.7372,148.26896 L 4378.0011,150.28927 L 4411.3362,151.29942 L 4431.5392,160.3908 L 4439.6204,194.73598 L 4447.7017,204.83751 L 4464.8743,209.88827 L 4480.0266,215.94919 L 4510.3311,225.04056 L 4517.4022,255.34513 L 4556.7981,258.37559 L 4556.8997,461.33503 L 4104.2904,461.41625 L 4104.2498,78.888218 z" id="path2386" sodipodi:nodetypes="ccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 5069.9556,267.46697 L 5117.4328,264.43651 L 5116.4227,238.17254 L 5125.514,228.07102 L 5156.8288,214.93903 L 5183.0927,191.70552 L 5206.3262,176.55324 L 5246.7323,164.43141 L 5266.9354,174.53293 L 5276.0268,169.48217 L 5296.2298,164.43141 L 5307.3415,166.45171 L 5319.4633,167.46186 L 5345.7273,161.40095 L 5356.839,153.31973 L 5375.0217,141.1979 L 5389.1638,131.09637 L 5407.3466,129.07607 L 5417.4481,123.01515 L 5426.5395,112.91363 L 5446.7425,100.79179 L 5454.8238,89.680117 L 5460.8847,77.558286 L 5464.9253,64.426303 L 5476.037,53.314625 L 5485.1283,47.25371 L 5502.3009,43.213099 L 5521.4938,34.121727 L 5537.6563,26.040506 L 5557.8593,6.8476078 L 5573.0116,-3.2539177 L 5583.1131,-16.385901 L 5585.1334,-23.456969 L 5596.2451,-39.61941 L 5617.4584,-53.761545 L 5634.6309,-69.923985 L 5653.8238,-82.045817 L 5687.1588,-99.218412 L 5789.1843,-119.42145 L 5788.1741,-85.076274 L 5788.1741,533.13709 L 5070.9658,534.14723 L 5069.9556,267.46697 z" id="path2388" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 5911.4127,-1.2336126 L 5928.5853,-14.365596 L 5945.7579,-27.497579 L 6008.3874,-48.710782 L 6030.6107,-46.690477 L 6054.8544,-45.680325 L 6093.2402,-49.720935 L 6115.4635,-48.710782 L 6135.6666,-39.619409 L 6158.9001,-32.548342 L 6192.2351,-27.497579 L 6209.4077,-24.467121 L 6247.7935,-18.406206 L 6259.9153,-6.2843754 L 6270.0169,7.8577603 L 6285.1692,24.020201 L 6289.2098,30.081116 L 6316.4839,44.223252 L 6332.6463,50.284167 L 6375.0727,59.37554 L 6406.3875,58.365388 L 6418.5093,59.37554 L 6434.6717,71.497371 L 6434.6717,87.659812 L 6426.5905,103.82225 L 6414.4687,112.91363 L 6415.4788,122.005 L 6421.5397,131.09637 L 6452.8545,136.14713 L 6488.2098,135.13698 L 6507.4028,136.14714 L 6522.5551,169.48217 L 6512.4534,195.74613 L 6506.3926,220.99995 L 6511.4433,228.07102 L 6527.6058,241.203 L 6557.9103,245.24361 L 6591.2454,265.44666 L 6630.6413,287.67002 L 6645.7936,294.74108 L 6659.9358,301.81215 L 6670.0373,325.04566 L 6713.4738,343.22841 L 6723.5754,343.22841 L 6739.7378,344.23856 L 6748.8292,347.26902 L 6763.9815,348.27917 L 6730.6466,406.86803 L 6727.6159,792.74629 L 5901.3111,803.85797 L 5911.4127,-1.2336126 z" id="path2390" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6889.2404,428.08123 L 6860.9561,407.87817 L 6880.149,385.65481 L 6903.3825,379.59389 L 6931.6668,362.4213 L 6953.8901,341.2081 L 6978.1338,325.04566 L 7029.6516,305.85276 L 7075.1085,279.58879 L 7093.2912,269.48727 L 7130.6668,249.28422 L 7148.8496,230.09132 L 7196.3268,226.05071 L 7225.1161,240.19285 L 7252.8953,263.42636 L 7291.7862,272.51773 L 7333.7075,282.61926 L 7372.5984,296.25631 L 7403.408,315.95429 L 7461.4918,314.43906 L 7528.6669,276.55834 L 7607.4589,253.32483 L 7646.8548,230.09132 L 7670.0883,224.03041 L 7697.3624,208.87812 L 7989.2965,200.7969 L 7994.3473,-11.335138 L 8140.8194,-16.385901 L 8140.8194,795.77675 L 6892.2708,789.71583 L 6889.2404,428.08123 z" id="path2392" sodipodi:nodetypes="ccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1698.0664,301.81215 L 1721.2999,251.30452 L 1730.3913,235.14208 L 1756.6553,216.95934 L 1779.8888,203.82735 L 1817.2644,197.76644 L 1886.9649,197.76644 L 1963.7365,190.69537 L 2017.2746,192.71568 L 2052.63,203.82735 L 2075.8635,214.93903 L 2171.828,225.04056 L 2199.1021,222.0101 L 2213.2442,218.97964 L 2225.366,204.83751 L 2228.3965,194.73598 L 2252.6402,180.59385 L 2270.8229,176.55324 L 2302.1376,169.48217 L 2314.2595,159.38064 L 2330.4219,147.25881 L 2341.5336,134.12683 L 2349.6148,122.005 L 2358.7062,111.90347 L 2371.8382,103.82225 L 2392.0412,97.761338 L 2413.2544,91.700423 L 2440.5285,84.629355 L 2450.6301,75.537982 L 2465.7824,61.395846 L 2477.9042,55.334931 L 2504.1681,50.284168 L 2524.3712,41.192795 L 2547.6047,44.223253 L 2566.7976,47.25371 L 2583.9702,45.233405 L 2593.0616,39.17249 L 2601.1428,33.111575 L 2630.4372,19.979592 L 2649.6301,10.888218 L 2662.7621,-1.2336127 L 2677.9144,-13.355442 L 2690.0362,-25.477273 L 2707.2088,-31.538188 L 2727.4119,-29.517883 L 2739.5337,-17.396053 L 2742.5641,-2.2437653 L 2746.6048,8.8679128 L 2753.6758,15.938981 L 2760.7469,20.989744 L 2766.8078,24.020202 L 2786.0007,24.020202 L 2800.1428,23.010049 L 2822.3662,16.949134 L 2836.5083,9.8780653 L 2864.7926,9.8780653 L 2891.0566,15.938981 L 2904.1886,21.999897 L 2914.2901,30.081117 L 2937.5236,36.142032 L 2959.7469,35.13188 L 2991.0617,30.081117 L 3038.5388,30.081117 L 3087.0262,23.010049 L 3099.148,15.938981 L 3114.3003,6.8476077 L 3157.7368,-2.2437653 L 3179.9602,-8.3046809 L 3191.0719,-18.406205 L 3215.3155,-31.538188 L 3218.346,-40.629561 L 3242.5897,-46.690477 L 3268.8536,-45.680324 L 3272.8942,-34.568646 L 3285.0161,-13.355442 L 3295.1176,-2.2437653 L 3306.2293,2.8069975 L 3308.2496,21.999897 L 3329.4627,26.040507 L 3338.5542,451.31473 L 1706.1476,461.41625 L 1698.0664,301.81215 z" id="path2416" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> </g> </svg> ; arrayOfWater = new Array(); recursos = new ResourcesLevel1(); super(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(75, 215); var _local1:WaterBackground = new WaterBackground(); _local1.init({cantX:1, cantY:5}); addChild(_local1); _local1.x = 1330; _local1.y = 340; arrayOfWater.push(_local1); var _local2:WaterBackground = new WaterBackground(); _local2.init({cantX:2, cantY:5}); addChild(_local2); _local2.x = 1545; _local2.y = 340; arrayOfWater.push(_local2); var _local3:WaterBackground = new WaterBackground(); _local3.init({cantX:5, cantY:7}); addChild(_local3); _local3.x = 3285; _local3.y = 140; arrayOfWater.push(_local3); var _local4:WaterBackground = new WaterBackground(); _local4.init({cantX:2, cantY:7}); addChild(_local4); _local4.x = 3970; _local4.y = 140; arrayOfWater.push(_local4); var _local5:WaterBackground = new WaterBackground(); _local5.init({cantX:6, cantY:5}); addChild(_local5); _local5.x = 4500; _local5.y = 340; arrayOfWater.push(_local5); var _local6:WaterBackground = new WaterBackground(); _local6.init({cantX:2, cantY:5}); addChild(_local6); _local6.x = 5750; _local6.y = 340; arrayOfWater.push(_local6); var _local7:WaterBackground = new WaterBackground(); _local7.init({cantX:2, cantY:5}); addChild(_local7); _local7.x = 6715; _local7.y = 440; arrayOfWater.push(_local7); var _local8 = -540; var _local9 = -102; var _local10:LevelSelector = new LevelSelector(); var _local11:Sprite = _local10.generateLevel6Background(); addChild(_local11); _local11.x = 4010; _local11.y = 265; lvl_tramo_a = recursos.create_level6A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local8; lvl_tramo_a.y = _local9; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level6B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y - 22); lvl_tramo_b.smoothing = true; } private function generateDeadZones():void{ super.senesorFunction({x:1500, y:575, ancho:15, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:3700, y:0x0200, ancho:15, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:4813, y:450, ancho:8.3, alto:1, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:5809, y:598, ancho:3, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:6810, y:565, ancho:2.5, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:1500, y:750, ancho:30, alto:2, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:4300, y:750, ancho:55, alto:2, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:6800, y:950, ancho:20, alto:2, world:super.m_world, sensotType:"Dead_Zone"}); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBridges():void{ var _local3:b2BodyDef; var _local4:b2Body; var _local5:b2PolygonDef; var _local6:b2CircleDef; var _local1:Number = (3530 / m_world.m_debugDraw.m_drawScale); var _local2:Number = -4.5; _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(7.3, -0.14); _local5.vertices[1].Set(7.3, 0.14); _local5.vertices[2].Set(-7.3, 0.14); _local5.vertices[3].Set(-7.3, -0.14); _local5.friction = 0.3; _local5.restitution = 0.4; _local5.density = 0.6; _local5.filter.groupIndex = 0; _local3 = new b2BodyDef(); _local3.position = new b2Vec2(_local1, (_local2 + 4.93)); _local3.angle = 0; _local3.userData = new PuenteHieloHorizontal(); addChild(_local3.userData); _local3.userData.x = -1000; _local3.userData.y = -1000; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); _local1 = (4600 / m_world.m_debugDraw.m_drawScale); _local2 = 8; _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(9.25, -0.4); _local5.vertices[1].Set(9.25, 0.4); _local5.vertices[2].Set(-9.25, 0.4); _local5.vertices[3].Set(-9.25, -0.4); _local5.friction = 0.4; _local5.restitution = 0.4; _local5.density = 0.1; _local5.filter.groupIndex = 0; _local3 = new b2BodyDef(); _local3.position = new b2Vec2((_local1 + 6.85049999999999), _local2); _local3.angle = 0; _local3.userData = new PuenteHieloHorizontalGrande(); addChild(_local3.userData); _local3.userData.x = -1000; _local3.userData.y = -1000; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); } public function removeAllTheLevel():void{ var _local1:int; while (_local1 < arrayOfWater.length) { arrayOfWater[_local1].removeAllChild(); _local1++; }; recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } public function iniciarCurrentLevel():void{ var _local1:Array = [7920, 135]; super.init({padre:this, stage:stg, x:2, y:8.5, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateBridges(); generateDeadZones(); super.guiToFront(); } } }//package Clases.Game.Levels.AllLevels
Section 183
//Level7 (Clases.Game.Levels.AllLevels.Level7) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; import Clases.Game.Levels.LevelElements.*; public class Level7 extends Level { private const currentTime:uint = 2200; private const currentLevel:uint = 7; private var svg_data:XML; private var arrayOfWater:Array; private var stg:Stage; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; public function Level7(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level7.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="3166.7813" inkscape:cy="210" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="-4" inkscape:window-y="-4" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M -81.822356,-1.2336126 L 32.324882,-1.2336126 L 33.335034,277.56849 L 440.42651,277.56849 L 457.5991,275.54819 L 469.72093,271.50758 L 486.89353,266.45681 L 503.05597,260.3959 L 516.18795,259.38574 L 537.40116,259.38574 L 551.54329,269.48727 L 553.5636,278.57864 L 555.5839,287.67002 L 557.60421,293.73093 L 562.65497,301.81215 L 572.75649,308.88322 L 586.89863,313.93398 L 602.05092,324.03551 L 613.1626,324.03551 L 625.28443,328.07612 L 639.42656,329.08627 L 664.68038,331.10658 L 685.89358,333.12688 L 713.1677,333.12688 L 736.40121,333.12688 L 759.63472,333.12688 L 788.92914,335.14719 L 808.12204,345.24871 L 822.26417,363.43146 L 838.42662,385.65481 L 852.56875,400.8071 L 883.88348,404.84771 L 929.34034,405.85786 L 962.67538,392.72588 L 997.02057,389.69542 L 1016.2135,379.5939 L 1053.5891,365.45176 L 1059.65,355.35024 L 1075.8125,342.21825 L 1079.8531,333.12688 L 1090.9648,327.06597 L 1099.046,319.9949 L 1106.117,314.94413 L 1116.2186,308.88322 L 1126.3201,296.76139 L 1142.4825,287.67002 L 1164.7059,274.53803 L 1181.8785,273.52788 L 1206.1221,268.47712 L 1234.4064,267.46697 L 1266.7313,256.35529 L 1272.7922,247.26391 L 1278.8531,233.12178 L 1279.8633,228.07102 L 1282.8937,219.9898 L 1290.975,209.88827 L 1305.1171,200.7969 L 1314.2085,196.75629 L 1327.3404,193.72583 L 1362.6958,191.70552 L 1371.7872,184.63446 L 1378.8582,176.55324 L 1394.0105,164.43141 L 1403.1019,163.42125 L 1415.2237,157.36034 L 1423.3049,152.30957 L 1431.3862,149.27912 L 1444.5181,148.26896 L 1456.64,144.22835 L 1461.6907,140.18774 L 1466.7415,135.13698 L 1477.8532,124.0253 L 1483.9141,116.95424 L 1497.0461,107.86286 L 1510.1781,106.85271 L 1521.2897,101.80195 L 1532.4014,100.79179 L 1549.574,97.761337 L 1555.6349,93.720727 L 1563.7161,85.639507 L 1572.8075,72.507523 L 1585.9395,68.466913 L 1605.1324,64.426303 L 1614.2238,66.446608 L 1627.3558,66.446608 L 1668.772,63.41615 L 1688.9751,62.405998 L 1717.2593,63.41615 L 1751.6045,82.609049 L 1758.6756,91.700422 L 1759.6857,107.86286 L 1761.706,133.11668 L 1768.7771,144.22835 L 1773.8279,162.4111 L 1784.9396,182.61415 L 1812.2137,194.73598 L 1838.4776,210.89842 L 1858.6807,224.03041 L 1889.9954,240.19285 L 1913.2289,242.21315 L 2300.1174,247.26391 L 2367.7976,239.18269 L 2385.9803,222.0101 L 2408.2037,177.56339 L 2427.3966,146.24866 L 2458.7113,112.91362 L 2496.087,95.741032 L 2539.5235,95.741032 L 2569.8281,94.730879 L 2579.9296,106.85271 L 2600.1327,116.95424 L 2631.4474,120.99485 L 2646.5997,122.005 L 2664.7824,126.04561 L 2673.8738,134.12683 L 2696.0972,141.1979 L 2729.4322,148.26896 L 2755.6962,149.27912 L 2774.8891,148.26896 L 2789.0312,142.20805 L 2803.1733,132.10652 L 2817.3155,122.005 L 2841.5591,112.91363 L 2853.6809,104.8324 L 2866.8129,104.8324 L 2871.8637,120.99485 L 2866.8129,130.08622 L 2842.5693,157.36034 L 2825.3967,196.75629 L 2827.417,215.94919 L 2835.4982,240.19285 L 2838.5287,259.38574 L 2852.6708,282.61925 L 2862.7723,300.802 L 2878.9348,353.32993 L 2902.1683,363.43146 L 2930.4525,373.53298 L 2973.8891,378.58375 L 2977.9297,394.74619 L 2994.0922,404.84771 L 3005.2038,415.95939 L 3017.3257,440.20305 L 3019.346,476.56854 L 3023.3866,497.78175 L 3036.5186,506.87312 L 3056.7216,516.97464 L 3103.1886,525.05587 L 3164.8079,525.05587 L 3193.0922,528.08632 L 3211.275,552.32998 L 3228.4475,555.36044 L 3236.5288,558.3909 L 3254.7115,559.40105 L 3275.9247,559.40105 L 3303.1988,560.4112 L 3320.3714,574.55334 L 3324.412,583.64471 L 3324.412,593.74624 L 3332.4933,600.81731 L 3342.5948,606.87822 L 3360.7775,621.02036 L 3377.9501,640.21326 L 3384.011,661.42646 L 3397.143,684.65997 L 3417.3461,695.77165 L 3449.671,698.8021 L 3877.9756,700.82241 L 3977.9807,686.68027 L 4059.8031,660.41631 L 4101.2193,619.00005 L 4121.4225,588.69548 L 4155.189,578.35976 L 4172.9402,564.45181 L 4192.133,546.26907 L 4210.3158,530.10663 L 4222.4376,515.96449 L 4250.7219,511.92389 L 4265.8742,501.82236 L 4282.0367,493.74114 L 4291.128,480.60915 L 4312.3412,467.47717 L 4346.6864,459.39595 L 4361.8387,461.41625 L 4388.1027,454.34519 L 4402.2448,445.25381 L 4413.3565,435.15229 L 4429.5189,406.86802 L 4451.7423,395.75634 L 4489.118,376.56345 L 4546.6966,373.53298 L 4622.4581,381.6142 L 4697.2093,381.6142 L 4760.849,375.55329 L 4798.2246,374.54314 L 4826.5089,364.44161 L 4873.986,337.16749 L 4904.2906,323.02536 L 4920.4531,304.84261 L 4969.9505,274.53803 L 4996.2145,244.23346 L 5009.3465,214.93903 L 5034.6003,172.51263 L 5065.915,150.28927 L 5103.2907,129.07607 L 5130.5648,115.94408 L 5172.9912,100.79179 L 5212.3871,79.578591 L 5243.7019,62.405998 L 5291.179,51.29432 L 5314.4126,51.29432 L 5350.778,56.345083 L 5381.0826,73.517676 L 5393.2045,104.8324 L 5409.3669,144.22835 L 5433.6106,224.03041 L 5446.7426,241.203 L 5468.9659,248.27407 L 5509.372,253.32483 L 5580.0827,261.40605 L 5653.8239,268.47712 L 5691.1995,269.48727 L 5811.4077,262.4162 L 6153.8493,246.25376 L 6174.0524,230.09132 L 6173.0422,199.78674 L 6189.2047,174.78547 L 6213.4483,155.84511 L 6263.9559,144.98597 L 6294.2605,140.18775 L 6345.7782,139.1776 L 6413.4585,115.94408 L 6433.6616,98.77149 L 6468.0068,72.507523 L 6490.2301,54.324778 L 6592.2555,63.41615 L 6647.8139,66.446608 L 6677.1083,79.578591 L 6692.2606,96.751185 L 6700.3419,108.87302 L 6706.4028,123.01515 L 6720.5449,147.25881 L 6733.6769,158.37049 L 6754.8901,170.49232 L 6800.347,171.50247 L 6819.5399,171.50247 L 6857.9257,194.73598 L 6880.149,200.7969 L 6904.3927,203.82735 L 6928.6363,203.82735 L 6953.8901,203.82735 L 6979.144,201.80705 L 6984.1947,202.8172 L 7001.3673,223.02025 L 7008.4384,241.203 L 7023.5907,255.34513 L 7046.8242,269.48727 L 7067.0272,272.51773 L 7107.4333,273.52788 L 7216.5298,269.48727 L 7323.606,275.54819 L 7388.2557,263.42636 L 7510.4842,270.49742 L 7588.2659,270.49742 L 7744.8396,269.48727 L 7775.1442,265.44666 L 7991.3168,259.38574 L 7985.2559,-70.934138 L 8249.9159,-68.913833 L 8263.0479,833.15239 L -79.802051,831.13209 L -81.822356,-1.2336126 z" id="path2388" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <text xml:space="preserve" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial" x="2046.5691" y="142.20805" id="text2390" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan2392" x="2046.5691" y="142.20805">tanque de agua</tspan><tspan sodipodi:role="line" x="2046.5691" y="142.20805" id="tspan2394"/></text> <text xml:space="preserve" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial" x="3488.0566" y="555.36041" id="text2396" sodipodi:linespacing="100%"><tspan sodipodi:role="line" id="tspan2398" x="3488.0566" y="555.36041">tanque con agua</tspan></text> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3043.5896,148.26897 L 3064.8028,102.8121 L 3112.28,76.548134 L 3154.7064,61.395846 L 3193.0922,62.405998 L 3228.4475,71.497371 L 3285.0161,66.446608 L 3321.3816,69.477066 L 3371.8892,62.405998 L 3412.2953,53.314625 L 3426.4374,42.202947 L 3435.5288,32.101421 L 3467.8537,12.908523 L 3494.1177,-3.2539177 L 3505.2293,-12.345291 L 3508.2598,-21.436664 L 3522.4019,-34.568647 L 3537.5542,-50.731088 L 3579.9806,-65.883376 L 3606.2446,-80.025511 L 3618.3664,-97.198105 L 3634.5288,-108.30979 L 3652.7116,-114.3707 L 3663.8233,-128.51283 L 3672.9147,-133.5636 L 3687.0568,-137.60421 L 3707.2599,-139.62451 L 3743.6253,-138.61436 L 3775.9502,-143.66512 L 3807.265,-155.78695 L 3816.3563,-173.9697 L 3827.468,-181.04077 L 3839.5898,-177.00016 L 3851.7117,-177.00016 L 3859.7929,-180.03061 L 3869.8944,-183.06107 L 3879.9959,-179.02046 L 3881.0061,-173.9697 L 3886.0569,-164.87833 L 3896.1584,-163.86817 L 3915.3513,-167.90878 L 3938.5848,-187.10168 L 3951.7168,-210.33519 L 3967.8792,-224.47733 L 3994.1432,-243.67022 L 4020.4071,-255.79205 L 4071.9249,-264.88343 L 4128.4935,-262.86312 L 4194.1534,-253.77175 L 4215.3666,-244.68038 L 4231.529,-222.45702 L 4238.6001,-164.87833 L 4294.1585,-98.208257 L 4334.5646,-70.934138 L 4401.2347,-65.883376 L 4452.7524,-32.548342 L 4461.8438,60.385693 L 4454.7727,148.26896 L 4412.3463,229.08117 L 4236.5798,283.62941 L 3989.0924,293.73093 L 3494.1177,376.56344 L 3424.4171,379.5939 L 3305.2191,362.4213 L 3132.4831,274.53803 L 3067.8333,199.78674 L 3043.5896,148.26897 z" id="path2400" sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <flowRoot xml:space="preserve" id="flowRoot2404" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"><flowRegion id="flowRegion2406"><rect id="rect2408" width="224.25386" height="56.568542" x="5724.5347" y="165.44156"/></flowRegion><flowPara id="flowPara2410">mas agua</flowPara><flowPara id="flowPara2412"/></flowRoot> </g> </svg> ; arrayOfWater = new Array(); recursos = new ResourcesLevel1(); super(); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(75, 205); var _local1:LevelSelector = new LevelSelector(); var _local2:Sprite = _local1.generateLevel7BackgroundBack(); addChild(_local2); _local2.x = 3636; _local2.y = 402; var _local3:WaterBackground = new WaterBackground(); _local3.init({cantX:8, cantY:1}); addChild(_local3); _local3.x = 1700; _local3.y = 88; arrayOfWater.push(_local3); var _local4:WaterBackground = new WaterBackground(); _local4.init({cantX:9, cantY:1}); addChild(_local4); _local4.x = 3300; _local4.y = 555; arrayOfWater.push(_local4); var _local5:WaterBackground = new WaterBackground(); _local5.init({cantX:9, cantY:1}); addChild(_local5); _local5.x = 5360; _local5.y = 150; arrayOfWater.push(_local5); var _local6 = -392; var _local7 = -198; var _local8:Sprite = _local1.generateLevel7Background(); addChild(_local8); _local8.x = 3900; _local8.y = 350; lvl_tramo_a = recursos.create_level7A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local6; lvl_tramo_a.y = _local7; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level7B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y - 75); lvl_tramo_b.smoothing = true; } public function iniciarCurrentLevel():void{ var _local1:Array = [7920, 190]; super.init({padre:this, stage:stg, x:3, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateBridges(); super.guiToFront(); } public function removeAllTheLevel():void{ var _local1:int; while (_local1 < arrayOfWater.length) { arrayOfWater[_local1].removeAllChild(); _local1++; }; recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } private function generateBridges():void{ var _local1:Number = (1730 / m_world.m_debugDraw.m_drawScale); var _local2:Number = -2; var _local3:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local3); _local1 = (2000 / m_world.m_debugDraw.m_drawScale); _local2 = -2; var _local4:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local4); _local1 = (3250 / m_world.m_debugDraw.m_drawScale); _local2 = 13.7; var _local5:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local5); _local1 = (3500 / m_world.m_debugDraw.m_drawScale); _local2 = 13.7; var _local6:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local6); _local1 = (3750 / m_world.m_debugDraw.m_drawScale); _local2 = 13.7; var _local7:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local7); _local1 = (5440 / m_world.m_debugDraw.m_drawScale); _local2 = 0; var _local8:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local8); _local1 = (5750 / m_world.m_debugDraw.m_drawScale); _local2 = 0; var _local9:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local9); super.senesorFunction({x:2100, y:215, ancho:10, alto:1, world:super.m_world, sensotType:"Water_Dead_Zone"}); super.senesorFunction({x:3725, y:670, ancho:11, alto:1, world:super.m_world, sensotType:"Water_Dead_Zone"}); super.senesorFunction({x:5800, y:250, ancho:12, alto:1, world:super.m_world, sensotType:"Water_Dead_Zone"}); } } }//package Clases.Game.Levels.AllLevels
Section 184
//Level8 (Clases.Game.Levels.AllLevels.Level8) package Clases.Game.Levels.AllLevels { import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.*; import Clases.Game.Levels.LevelElements.*; public class Level8 extends Level { private const currentLevel:uint = 8; private const currentTime:uint = 2800; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var arrayOfWater:Array; private var stg:Stage; public function Level8(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level8.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="7586.7016" inkscape:cy="-637.05534" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1029.3455,858.40621 L 1052.0739,797.03944 L 1100.0562,746.78435 L 1260.1653,649.05209 L 1332.3912,649.30463 L 1394.0105,650.31478 L 1445.5283,663.44676 L 1479.8735,683.64982 L 1502.0968,703.85287 L 1537.4522,724.05592 L 1567.7568,729.10668 L 1629.3761,729.10668 L 1840.4979,734.15744 L 1862.7213,747.28943 L 1864.7416,758.4011 L 1859.6908,777.594 L 1854.6401,1068.5179 L 1030.3556,1074.5789 L 1029.3455,858.40621 z" id="path2393" sodipodi:nodetypes="ccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3519.3715,555.36044 L 3532.5035,535.15739 L 3534.5238,518.99495 L 3533.5136,495.76144 L 3532.5035,467.47717 L 3539.5745,443.23351 L 3623.4172,444.24366 L 3665.8436,477.5787 L 3700.1887,774.05848 L 3593.1125,1013.9697 L 3416.0833,1076.3466 L 3220.8714,1038.7185 L 3025.6594,1104.1258 L 2830.4474,1069.5281 L 2769.8383,1066.4976 L 2745.5946,1035.1829 L 2762.7672,968.51283 L 2762.7672,942.24887 L 2786.0007,918.00521 L 2838.5287,881.63971 L 2878.9348,821.03056 L 2904.1886,785.67522 L 2931.4627,743.24882 L 2959.747,724.05592 L 2975.9094,706.88332 L 3028.4373,684.65997 L 3046.6201,637.1828 L 3155.7166,587.43279 L 3280.9755,562.93659 L 3401.1836,575.81603 L 3519.3715,555.36044 z" id="path2397" sodipodi:nodetypes="ccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2409.2139,1272.5688 L 2597.1022,1267.518 L 2698.1175,1270.5484 L 2930.4525,1273.5789 L 2987.0211,1283.6804 L 3022.3764,1299.8429 L 3093.0871,1299.8429 L 3290.0668,1320.0459 L 3455.7319,1300.853 L 3591.0923,1261.4571 L 3673.9248,1251.3555 L 3715.3411,1242.2642 L 3742.6152,1218.0205 L 3766.8589,1183.6753 L 3828.4781,1132.1575 L 3925.4528,1083.6702 L 4096.1686,1087.7109 L 4083.0367,1128.3695 L 4068.8945,1172.0586 L 4049.7016,1209.6867 L 3876.9656,1261.457 L 3750.6964,1377.6246 L 2477.9042,1376.6145 L 2393.0514,1305.9038 L 2409.2139,1272.5688 z" id="path2399" sodipodi:nodetypes="ccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4248.7016,1194.7871 L 4570.9403,1183.6754 L 4614.3768,1164.4825 L 4654.7829,1138.2185 L 4674.986,1109.9342 L 4707.3109,1078.6195 L 4729.5342,1040.2337 L 4776.0012,1010.9392 L 4812.3667,1007.9088 L 4881.0571,1027.1017 L 4901.2602,1084.6804 L 4894.1891,1183.6754 L 5445.7324,1181.6551 L 5455.8339,1147.3099 L 5460.8847,1092.7616 L 5471.9964,1072.5586 L 5511.3923,1054.3759 L 5566.9507,1031.1423 L 5631.6005,1051.3454 L 5653.8238,1108.924 L 5669.9862,1157.4114 L 5695.2401,1200.848 L 5741.7071,1219.0307 L 5788.1741,1218.0206 L 5845.7528,1223.0713 L 5932.6259,1246.3048 L 5974.0422,1265.4977 L 6005.3569,1278.6297 L 6050.8138,1279.6399 L 6089.1996,1279.6399 L 6094.2503,1304.8937 L 6136.6767,1306.914 L 6142.7376,1396.8176 L 4160.8183,1427.1221 L 4160.3132,1365.7553 L 4159.8081,1300.348 L 4186.5772,1228.8797 L 4248.7016,1194.7871 z" id="path2401" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccc"/> <flowRoot xml:space="preserve" id="flowRoot2403" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"><flowRegion id="flowRegion2405"><rect id="rect2407" width="193.9493" height="32.324883" x="5020.458" y="1088.7209"/></flowRegion><flowPara id="flowPara2409">agua</flowPara></flowRoot> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 6460.9357,1312.9749 L 6498.3113,1309.9444 L 6501.3418,1278.6297 L 6545.7885,1270.5484 L 6581.1439,1257.4165 L 6608.418,1241.254 L 6653.8748,1221.051 L 6722.5652,1214.9901 L 6785.1947,1195.7972 L 6846.814,1162.4621 L 6861.9663,1140.2388 L 6873.0779,1109.9342 L 6919.545,1065.4875 L 6975.1033,1028.1118 L 7035.7125,979.62451 L 7073.0881,948.30978 L 7113.4942,921.03566 L 7148.8496,910.93414 L 7219.5603,910.93414 L 7249.6123,902.53725 L 7278.6542,902.22157 L 7306.6859,921.0988 L 7345.8294,920.78313 L 7370.8306,929.55883 L 7393.8116,927.22285 L 7419.823,938.01886 L 7460.9867,936.69303 L 7493.0591,941.42812 L 7527.1517,953.23428 L 7559.224,951.90845 L 7582.205,940.4811 L 7600.1352,938.14513 L 7626.1466,950.96144 L 7655.1885,955.69653 L 7684.2304,938.20826 L 7701.403,930.12704 L 7725.6467,926.08643 L 7778.1746,928.10673 L 7835.7533,946.28948 L 7872.1188,1026.0915 L 7887.2711,1051.3453 L 7929.6975,1057.4063 L 7979.195,1040.2337 L 8092.3321,1021.0408 L 8187.2864,991.74634 L 8228.7027,950.33009 L 8292.3423,903.86307 L 8347.9007,899.82246 L 8434.7738,850.32499 L 8458.0073,797.79705 L 8471.1393,789.71583 L 8487.3017,776.58385 L 8506.4946,769.51278 L 8528.718,766.48232 L 8542.8601,768.50263 L 8548.921,774.56354 L 8559.0225,780.62446 L 8576.1951,782.64476 L 8603.4693,772.54324 L 8612.5606,766.48232 L 8628.7231,764.46202 L 8639.8347,772.54324 L 8664.0784,778.60415 L 8676.2002,777.594 L 8692.3627,767.49248 L 8694.383,759.41126 L 8707.515,756.3808 L 8717.6165,760.42141 L 8728.7282,771.53309 L 8750.9515,772.54324 L 8789.3373,761.43156 L 8804.4896,753.35034 L 8839.845,749.30973 L 8851.9668,747.28943 L 8879.2409,752.34019 L 8891.3627,759.41126 L 8909.5455,764.46202 L 8925.7079,764.46202 L 8948.9414,756.3808 L 8964.0937,748.29958 L 8973.1851,745.26912 L 8989.3475,746.27927 L 9000.4592,759.41126 L 9015.6115,769.51278 L 9041.8755,782.64476 L 9097.4338,781.63461 L 9124.708,766.48232 L 9140.8704,753.35034 L 9156.0227,748.29958 L 9194.4085,749.30973 L 9208.5506,762.44171 L 9241.8857,785.67522 L 9250.977,784.66507 L 9269.1598,774.56354 L 9280.2715,759.41126 L 9295.4237,752.34019 L 9321.6877,749.30973 L 9351.9923,763.45187 L 9378.2563,774.56354 L 9420.6827,776.58385 L 9434.8248,770.52293 L 9465.1294,764.46202 L 9483.3121,752.34019 L 9512.6065,740.21836 L 9540.8908,731.12698 L 9563.1142,731.12698 L 9575.236,750.31988 L 9604.5304,763.45187 L 9629.7842,769.51278 L 9678.2716,761.43156 L 9699.4848,740.21836 L 9724.7386,734.15744 L 9746.9619,736.17775 L 9767.165,746.27927 L 9803.5305,749.30973 L 10213.4,752.59273 L 10209.107,438.68782 L 10343.205,432.87944 L 10335.881,749.30973 L 10346.993,1468.5383 L 6465.9865,1440.2541 L 6460.9357,1312.9749 z" id="path2411" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 37.375644,289.69032 L 389.91888,290.70047 L 413.15239,305.85276 L 442.44682,317.97459 L 477.80216,329.08627 L 506.08643,332.11673 L 506.08643,359.39085 L 506.08643,383.63451 L 516.18795,406.86802 L 541.44177,420 L 577.80726,424.04061 L 614.17275,440.20305 L 637.40626,443.23351 L 660.63977,464.44671 L 663.67022,485.65992 L 689.93419,521.01525 L 713.1677,525.05587 L 744.48243,526.06602 L 811.1525,530.10663 L 837.41646,531.11678 L 854.58906,533.13709 L 870.7515,557.38075 L 865.70073,592.73609 L 866.71089,1149.3301 L -266.68027,1191.7565 L -286.88332,-18.406206 L 27.274119,-17.396053 L 37.375644,289.69032 z" id="path2413"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2199.102,913.9646 L 2361.7367,835.1727 L 2415.2747,815.9798 L 2456.691,800.82751 L 2484.9753,767.49248 L 2549.625,720.01531 L 2598.1124,692.74119 L 2650.6403,678.59905 L 2717.3104,656.3757 L 2742.5642,649.30463 L 2788.021,629.10158 L 2829.4373,611.92898 L 2860.752,592.73609 L 2890.0464,577.5838 L 2906.2089,553.34014 L 2935.5033,530.10663 L 2950.6556,512.93403 L 2985.0008,497.78175 L 3010.2546,480.60915 L 3038.5389,459.39595 L 3068.8434,450.30458 L 3081.9754,454.34519 L 3086.016,483.63961 L 3040.5592,525.05587 L 2945.6048,575.56349 L 2903.1784,608.89853 L 2804.1835,677.5889 L 2593.0616,840.22346 L 2528.4118,1009.9291 L 2524.3712,1049.325 L 2501.1377,1076.5992 L 2064.7519,1068.5179 L 2042.0234,1014.4748 L 2057.6807,985.68541 L 2096.5715,955.88593 L 2199.102,913.9646 z" id="path2415" sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccc"/> </g> </svg> ; arrayOfWater = new Array(); recursos = new ResourcesLevel1(); super(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(80, 215); var _local1:LevelSelector = new LevelSelector(); var _local2:Sprite = _local1.generateLevel8BackgroundBack(); addChild(_local2); _local2.x = 3053; _local2.y = 903; var _local3:WaterBackground = new WaterBackground(); _local3.init({cantX:8, cantY:3}); addChild(_local3); _local3.x = 1850; _local3.y = 1400; arrayOfWater.push(_local3); var _local4:WaterBackground = new WaterBackground(); _local4.init({cantX:2, cantY:3}); addChild(_local4); _local4.x = 3975; _local4.y = 1400; arrayOfWater.push(_local4); var _local5:WaterBackground = new WaterBackground(); _local5.init({cantX:6, cantY:1}); addChild(_local5); _local5.x = 4880; _local5.y = 1060; arrayOfWater.push(_local5); var _local6 = -828; var _local7 = 285; var _local8:Sprite = _local1.generateLevel8Background(); addChild(_local8); _local8.x = 5210; _local8.y = 970; lvl_tramo_a = recursos.create_level8A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local6; lvl_tramo_a.y = _local7; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level8B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y + 441); lvl_tramo_b.smoothing = true; } private function generateDeadZones():void{ super.senesorFunction({x:950, y:1050, ancho:2.4, alto:3, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:1970, y:1400, ancho:15, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:5180, y:1170, ancho:9, alto:1, world:super.m_world, sensotType:"Water_Dead_Zone"}); super.senesorFunction({x:3800, y:1500, ancho:15, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:6175, y:1500, ancho:10, alto:1.5, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:950, y:1350, ancho:10, alto:3, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:1970, y:1700, ancho:22, alto:2, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:3900, y:1900, ancho:35, alto:1.5, world:super.m_world, sensotType:"Dead_Zone"}); super.senesorFunction({x:6275, y:1900, ancho:32, alto:1.5, world:super.m_world, sensotType:"Dead_Zone"}); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBridges():void{ var _local5:b2BodyDef; var _local6:b2Body; var _local7:b2PolygonDef; var _local1:Number = (4810 / m_world.m_debugDraw.m_drawScale); var _local2:Number = 30.4; var _local3:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local3); _local1 = (5080 / m_world.m_debugDraw.m_drawScale); _local2 = 30.4; var _local4:FloatingWood = new FloatingWood(_local1, _local2, m_world); addChild(_local4); _local1 = (6300 / m_world.m_debugDraw.m_drawScale); _local2 = 40; _local7 = new b2PolygonDef(); _local7.vertexCount = 4; _local7.vertices[0].Set(6.7, -0.25); _local7.vertices[1].Set(6.7, 0.25); _local7.vertices[2].Set(-6.7, 0.25); _local7.vertices[3].Set(-6.7, -0.25); _local7.friction = 0.4; _local7.restitution = 0.4; _local7.density = 1; _local7.filter.groupIndex = 0; _local5 = new b2BodyDef(); _local5.userData = new PuenteHieloHorizontal(); _local5.userData.width = (_local5.userData.width - 36); _local5.userData.height = (_local5.userData.height + 3); addChild(_local5.userData); _local5.userData.x = -1000; _local5.userData.y = -1000; _local5.position = new b2Vec2(_local1, _local2); _local5.angle = 0; _local6 = m_world.CreateBody(_local5); _local6.CreateShape(_local7); _local6.SetMassFromShapes(); } public function removeAllTheLevel():void{ var _local1:int; while (_local1 < arrayOfWater.length) { arrayOfWater[_local1].removeAllChild(); _local1++; }; recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } public function iniciarCurrentLevel():void{ var _local1:Array = [10140, 680]; super.init({padre:this, stage:stg, x:2, y:8.5, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateBridges(); generateDeadZones(); super.guiToFront(); } } }//package Clases.Game.Levels.AllLevels
Section 185
//Level9 (Clases.Game.Levels.AllLevels.Level9) package Clases.Game.Levels.AllLevels { import flash.events.*; import flash.display.*; import Clases.Game.LevelSelection.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Levels.*; import Clases.Game.Levels.ContactListeners.*; import Clases.Game.Levels.LevelElements.*; public class Level9 extends Level { private const currentLevel:uint = 9; private const currentTime:uint = 3800; private var recursos:ResourcesLevel1; private var lvl_tramo_b:Bitmap; private var lvl_tramo_a:Bitmap; private var selector:LevelSelection; private var svg_data:XML; private var stg:Stage; private var contactListener:ContactLIstenerLevel9; public function Level9(){ svg_data = <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="8000.0898" height="420" id="svg2" sodipodi:version="0.32" inkscape:version="0.46" version="1.0" sodipodi:docname="Level9.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> <defs id="defs4"> <inkscape:perspective sodipodi:type="inkscape:persp3d" inkscape:vp_x="0 : 526.18109 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="744.09448 : 526.18109 : 1" inkscape:persp3d-origin="372.04724 : 350.78739 : 1" id="perspective10"/> </defs> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" inkscape:cx="2786.3783" inkscape:cy="286.74991" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1440" inkscape:window-height="853" inkscape:window-x="0" inkscape:window-y="20" borderlayer="false" showborder="true" objecttolerance="11" gridtolerance="19" showguides="true" inkscape:guide-bbox="true"/> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1"> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 48.487322,264.4365 L 383.85797,264.4365 L 477.80216,249.28422 L 500.02551,233.12177 L 546.49253,205.84766 L 570.73619,188.67507 L 631.34534,165.44156 L 660.63977,145.23851 L 685.89358,122.005 L 718.21846,117.96439 L 746.50273,108.87301 L 764.68548,97.761337 L 787.91899,97.761337 L 817.21341,105.84256 L 843.47737,115.94408 L 872.77179,117.94408 L 873.78195,133.11668 L 957.62462,133.11668 L 956.61446,568.49242 L -25.253814,566.47212 L -33.335034,-25.477274 L 46.467017,-22.446816 L 48.487322,264.4365 z" id="path2392" sodipodi:nodetypes="ccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 1568.7669,131.09637 L 1603.1121,131.09637 L 1626.3456,107.86287 L 1653.6197,107.86286 L 1681.904,100.79179 L 1716.2492,96.751185 L 1741.503,94.73088 L 1775.8482,88.669964 L 1794.3543,88.827471 L 1812.2137,89.680117 L 1828.3761,93.720727 L 1830.3964,113.92378 L 1869.7924,112.91363 L 1879.8939,596.7767 L 1599.0715,596.7767 L 1581.8989,591.72593 L 1568.7669,131.09637 z" id="path2394" sodipodi:nodetypes="ccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 2293.0463,107.86286 L 2325.3712,106.85271 L 2330.422,93.720727 L 2340.5234,84.629354 L 2363.757,71.497371 L 2382.9499,65.436456 L 2398.1021,69.477066 L 2430.427,70.487218 L 2472.8534,76.548134 L 2647.6098,74.527828 L 2650.6403,76.548134 L 2661.752,83.619201 L 2681.955,90.710574 L 2695.087,90.710574 L 2695.087,102.8121 L 2711.2494,102.8121 L 2717.3104,602.83761 L 2314.2595,600.81731 L 2293.0463,107.86286 z" id="path2396" sodipodi:nodetypes="ccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 3004.1937,617.9899 L 2987.0211,101.80195 L 2998.1328,100.79179 L 3009.2444,100.79179 L 3013.2851,92.710574 L 3023.7202,87.557872 L 3033.4881,84.629354 L 3058.7419,73.517676 L 3100.1582,69.477066 L 3153.6963,71.497371 L 3178.9501,98.77149 L 3219.3562,110.89332 L 3281.9856,122.005 L 3307.2394,122.005 L 3335.5237,108.87302 L 3388.0516,74.527828 L 3410.275,47.25371 L 3477.9552,-20.426511 L 3533.5136,-88.106732 L 3565.8385,-104.26917 L 3636.5492,-105.27933 L 3697.1583,-95.1778 L 3698.1685,-82.045816 L 3728.4731,-82.045816 L 3744.6355,563.44166 L 3004.1937,617.9899 z" id="path2398" sodipodi:nodetypes="cccccccccccccccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 4495.1788,-83.055969 L 4536.5951,-83.055969 L 4544.6763,-96.187955 L 4574.9809,-110.33009 L 4603.2652,-136.59405 L 4662.8642,-183.06107 L 4730.5444,-220.43672 L 4765.8997,-229.52809 L 4819.4378,-229.52809 L 4880.047,-213.36565 L 4912.3718,-168.91894 L 4925.5038,644.25387 L 4495.1788,650.31478 L 4495.1788,-83.055969 z" id="path2400" sodipodi:nodetypes="cccccccccccccc"/> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 5037.6308,-73.964596 L 5067.9353,-84.066122 L 5106.3211,-103.25902 L 5176.0217,-110.33009 L 5242.6917,-109.31994 L 5447.7527,-116.391 L 5556.8492,-125.48238 L 5593.2147,-144.67527 L 5650.7934,-177.00016 L 5666.9558,-191.14229 L 5696.2502,-216.39611 L 5727.5649,-244.68038 L 5773.0218,-277.00526 L 5822.5193,-305.28953 L 5863.9355,-322.46212 L 5892.2198,-332.56365 L 5979.0929,-347.71594 L 6033.6412,-352.7667 L 6086.1691,-327.51289 L 6104.3518,-287.10678 L 6152.8392,-194.17275 L 6172.0321,-172.95955 L 6209.4077,-144.67527 L 6262.9458,-126.49253 L 6363.9611,-113.36055 L 6475.0778,-110.33009 L 6601.3469,-115.38085 L 6733.6769,-140.63466 L 6835.7023,-177.00016 L 6932.6769,-220.43672 L 6973.083,-244.68038 L 7004.3978,-250.74129 L 7032.682,-250.74129 L 7050.8648,-244.68038 L 7065.0069,-229.52809 L 7081.1694,-219.42656 L 7092.281,-218.41641 L 7109.4536,-218.41641 L 7126.6262,-209.32504 L 7162.9917,-183.06107 L 7175.1136,-170.93924 L 7197.3369,-170.93924 L 7237.743,-172.95955 L 7276.1288,-170.93924 L 7868.0782,-174.97985 L 7963.0325,-162.85802 L 7995.3574,-154.7768 L 8221.6316,-153.76665 L 8229.7128,-390.14234 L 8418.6113,-392.16265 L 8451.9464,586.67517 L 5295.2197,607.88837 L 5057.8338,606.87822 L 5037.6308,-73.964596 z" id="path2402" sodipodi:nodetypes="ccccccccccccccccccccc"/> <flowRoot xml:space="preserve" id="flowRoot2404" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"><flowRegion id="flowRegion2406"><rect id="rect2408" width="157.5838" height="55.558392" x="6336.687" y="-228.51793"/></flowRegion><flowPara id="flowPara2410">blokes de hielo sueltos</flowPara></flowRoot> <flowRoot xml:space="preserve" id="flowRoot2412" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial" transform="translate(1113.9559,-28.40458)"><flowRegion id="flowRegion2414"><rect id="rect2416" width="157.5838" height="55.558392" x="6336.687" y="-228.51793"/></flowRegion><flowPara id="flowPara2418">blokes de hielo sueltos</flowPara></flowRoot> <flowRoot xml:space="preserve" id="flowRoot2420" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial" transform="translate(35.355339,0)"><flowRegion id="flowRegion2422"><rect id="rect2424" width="192.93913" height="41.416256" x="1060.6602" y="62.405998"/></flowRegion><flowPara id="flowPara2426">puentes que se rompen s i paso rapido</flowPara></flowRoot> </g> </svg> ; recursos = new ResourcesLevel1(); contactListener = new ContactLIstenerLevel9(); super(); } private function generateBackground():void{ super.agregarEstaca_to_end_level(); super.agregarRoca_to_Begining_Level(95, 192); var _local1 = -380; var _local2 = -160; var _local3:LevelSelector = new LevelSelector(); var _local4:Sprite = _local3.generateLevel9Background(); addChild(_local4); _local4.x = 4625; _local4.y = -150; lvl_tramo_a = recursos.create_level9A(); addChild(lvl_tramo_a); lvl_tramo_a.x = _local1; lvl_tramo_a.y = _local2; lvl_tramo_a.smoothing = true; lvl_tramo_b = recursos.create_level9B(); addChild(lvl_tramo_b); lvl_tramo_b.x = (lvl_tramo_a.x + lvl_tramo_a.width); lvl_tramo_b.y = (lvl_tramo_a.y - 197); lvl_tramo_b.smoothing = true; } private function nuckear(_arg1:Event):void{ contactListener.nukeBody(); } private function generateDeadZones():void{ super.senesorFunction({x:1265, y:250, ancho:10, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:2085, y:250, ancho:6.8, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:2850, y:250, ancho:4.4, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:4120, y:250, ancho:13, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:4982, y:250, ancho:2, alto:2, world:super.m_world, sensotType:"No_Displazment_Zone"}); super.senesorFunction({x:3065, y:750, ancho:95, alto:2, world:super.m_world, sensotType:"Dead_Zone"}); } public function initLevel(_arg1:Stage, _arg2:LevelSelection):void{ crateBackground(); generateBackground(); super.createWhiteScreen(); stg = _arg1; selector = _arg2; iniciarCurrentLevel(); } private function generateBridges():void{ var _local3:b2BodyDef; var _local4:b2Body; var _local5:b2PolygonDef; var _local1:Number = (1250 / m_world.m_debugDraw.m_drawScale); var _local2:Number = 4; _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(12.15, -0.25); _local5.vertices[1].Set(12.15, 0.25); _local5.vertices[2].Set(-12.15, 0.25); _local5.vertices[3].Set(-12.15, -0.25); _local5.friction = 0.0001; _local5.restitution = 0.4; _local5.density = 1; _local5.filter.groupIndex = 0; _local3 = new b2BodyDef(); _local3.position = new b2Vec2(_local1, _local2); _local3.angle = 0; _local3.userData = new PuenteHieloHorizontalGrande(); _local3.userData.width = (_local3.userData.width + 160); _local3.userData.height = (_local3.userData.height - 6); addChild(_local3.userData); _local3.userData.x = -1000; _local3.userData.y = -1000; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); _local1 = (2075 / m_world.m_debugDraw.m_drawScale); _local2 = 3; _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(8.2, -0.25); _local5.vertices[1].Set(8.2, 0.25); _local5.vertices[2].Set(-8.2, 0.25); _local5.vertices[3].Set(-8.2, -0.25); _local5.friction = 0.0001; _local5.restitution = 0.4; _local5.density = 1; _local5.filter.groupIndex = 0; _local3 = new b2BodyDef(); _local3.position = new b2Vec2(_local1, _local2); _local3.angle = 0; _local3.userData = new PuenteHieloHorizontalGrande(); _local3.userData.width = (_local3.userData.width - 85); _local3.userData.height = (_local3.userData.height - 6); addChild(_local3.userData); _local3.userData.x = -1000; _local3.userData.y = -1000; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); _local1 = (2850 / m_world.m_debugDraw.m_drawScale); _local2 = 3; _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(5.2, -0.2); _local5.vertices[1].Set(5.2, 0.2); _local5.vertices[2].Set(-5.2, 0.2); _local5.vertices[3].Set(-5.2, -0.2); _local5.friction = 0.0001; _local5.restitution = 0.4; _local5.density = 1; _local5.filter.groupIndex = 0; _local3 = new b2BodyDef(); _local3.position = new b2Vec2(_local1, _local2); _local3.angle = 0; _local3.userData = new PuenteHieloHorizontal(); _local3.userData.width = (_local3.userData.width - 130); _local3.userData.height = _local3.userData.height; _local3.userData.x = -1000; _local3.userData.y = -1000; addChild(_local3.userData); _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); _local1 = (4120 / m_world.m_debugDraw.m_drawScale); _local2 = -3; _local5 = new b2PolygonDef(); _local5.vertexCount = 4; _local5.vertices[0].Set(13.9, -0.2); _local5.vertices[1].Set(13.9, 0.2); _local5.vertices[2].Set(-13.9, 0.2); _local5.vertices[3].Set(-13.9, -0.2); _local5.friction = 0.0001; _local5.restitution = 0.4; _local5.density = 1; _local5.filter.groupIndex = 0; _local3 = new b2BodyDef(); _local3.position = new b2Vec2(_local1, _local2); _local3.angle = 0; _local3.userData = new PuenteHieloHorizontalGrande(); _local3.userData.width = (_local3.userData.width + 260); _local3.userData.height = (_local3.userData.height - 8); addChild(_local3.userData); _local3.userData.x = -1000; _local3.userData.y = -1000; _local4 = m_world.CreateBody(_local3); _local4.CreateShape(_local5); _local4.SetMassFromShapes(); } public function removeAllTheLevel():void{ recursos.remove(); recursos = null; lvl_tramo_a.bitmapData.dispose(); lvl_tramo_a.bitmapData = null; this.removeChild(lvl_tramo_a); lvl_tramo_a = null; lvl_tramo_b.bitmapData.dispose(); lvl_tramo_b.bitmapData = null; this.removeChild(lvl_tramo_b); lvl_tramo_b = null; super.removeAllChildsOfTheLevel(this); } public function iniciarCurrentLevel():void{ var _local1:Array = [8150, -225]; super.init({padre:this, stage:stg, x:3, y:8, levelNumber:currentLevel, time:currentTime, endSensorXY:_local1, level_selector:selector}); super.parseSVG(svg_data); generateBridges(); contactListener.initListener({padre:this, world:super.m_world}); super.m_world.SetContactListener(contactListener); generateDeadZones(); addEventListener(Event.ENTER_FRAME, nuckear); super.guiToFront(); } override public function desrtoyLevel():void{ super.desrtoyLevel(); removeEventListener(Event.ENTER_FRAME, nuckear); } } }//package Clases.Game.Levels.AllLevels
Section 186
//ContactLIstenerLevel10 (Clases.Game.Levels.ContactListeners.ContactLIstenerLevel10) package Clases.Game.Levels.ContactListeners { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Clases.Game.Levels.LevelElements.*; public class ContactLIstenerLevel10 extends EndLevelContact { private var vars:Object; override public function Add(_arg1:b2ContactPoint):void{ super.Add(_arg1); } public function initListener(_arg1:Object):void{ vars = _arg1; super.init({world:vars.world, padre:vars.padre}); } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ var _local3:b2Body; super.Result(_arg1); var _local2:b2Body = vars.world.GetBodyList(); if ((_arg1.shape2.GetBody().GetUserData() is PisoDeCueva)){ if (_arg1.normalImpulse > 1){ while (_local2) { _local3 = _local2; _local2 = _local2.GetNext(); if ((((_local3.GetUserData() is Estalactita)) && (_local3.GetJointList()))){ if (_local3.GetUserData().getID() < 10){ _local3.ApplyForce(new b2Vec2((Math.random() * 8), 0), _local3.GetWorldCenter()); }; }; }; }; while (_local2) { _local3 = _local2; _local2 = _local2.GetNext(); if ((((_local3.GetUserData() is Estalactita)) && (_local3.GetJointList()))){ if (_local3.GetUserData().getID() < 10){ if (_local3.GetLinearVelocity().Length() > 0.75){ vars.world.DestroyJoint(_local3.GetJointList().joint); }; }; }; }; }; } } }//package Clases.Game.Levels.ContactListeners
Section 187
//ContactLIstenerLevel11 (Clases.Game.Levels.ContactListeners.ContactLIstenerLevel11) package Clases.Game.Levels.ContactListeners { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Clases.Game.Veicle.*; import Clases.Game.Levels.LevelElements.*; public class ContactLIstenerLevel11 extends EndLevelContact { private var vars:Object; private var nucked:Array; private var first:Boolean;// = false private var second:Boolean;// = false public function ContactLIstenerLevel11(){ nucked = new Array(); super(); } override public function Add(_arg1:b2ContactPoint):void{ super.Add(_arg1); if (_arg1.shape1.GetBody().GetUserData() == "Primer_Sensor"){ first = true; nucked.push(_arg1.shape1.GetBody()); }; if ((((_arg1.shape1.GetBody().GetUserData() == "Segundo_Sensor")) && ((((((_arg1.shape2.GetBody().GetUserData() is Rueda)) || ((_arg1.shape2.GetBody().GetUserData() is Eslabon)))) || ((_arg1.shape2.GetBody().GetUserData() is Cabina)))))){ second = true; nucked.push(_arg1.shape1.GetBody()); }; } private function nukeBody():void{ var _local1:b2Body; for each (_local1 in nucked) { vars.world.DestroyBody(_local1); }; nucked = []; } override public function Remove(_arg1:b2ContactPoint):void{ } public function initListener(_arg1:Object):void{ vars = _arg1; super.init({world:vars.world, padre:vars.padre}); } public function crearAbalanchas():void{ var _local1:Avalancha; var _local2:Avalancha; if (first){ _local1 = new Avalancha(); _local1.createSmallAvalanch((nucked[0].GetWorldCenter().x - 15), (nucked[0].GetWorldCenter().y - 35), 7, vars.world); vars.padre.addChild(_local1); first = false; }; if (second){ _local2 = new Avalancha(); _local2.createSmallAvalanch((nucked[0].GetWorldCenter().x - 15), (nucked[0].GetWorldCenter().y - 35), 7, vars.world); vars.padre.addChild(_local2); second = false; }; nukeBody(); } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ super.Result(_arg1); } } }//package Clases.Game.Levels.ContactListeners
Section 188
//ContactLIstenerLevel12 (Clases.Game.Levels.ContactListeners.ContactLIstenerLevel12) package Clases.Game.Levels.ContactListeners { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class ContactLIstenerLevel12 extends EndLevelContact { private var vars:Object; override public function Add(_arg1:b2ContactPoint):void{ super.Add(_arg1); } public function initListener(_arg1:Object):void{ vars = _arg1; super.init({world:vars.world, padre:vars.padre}); } override public function Persist(_arg1:b2ContactPoint):void{ if (_arg1.shape1.IsSensor()){ addForces(_arg1.shape1.GetBody().GetUserData(), _arg1.shape2.GetBody()); } else { if (_arg1.shape2.IsSensor()){ addForces(_arg1.shape2.GetBody().GetUserData(), _arg1.shape1.GetBody()); }; }; } private function addForces(_arg1:int, _arg2:b2Body):void{ switch (_arg1){ case 1: _arg2.ApplyForce(new b2Vec2(0, -2.5), _arg2.GetWorldCenter()); break; case 2: _arg2.ApplyForce(new b2Vec2(0, -4), _arg2.GetWorldCenter()); break; case 3: _arg2.ApplyForce(new b2Vec2(0, -3), _arg2.GetWorldCenter()); break; case 4: _arg2.ApplyForce(new b2Vec2(0, -2), _arg2.GetWorldCenter()); break; }; } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ super.Result(_arg1); } } }//package Clases.Game.Levels.ContactListeners
Section 189
//ContactLIstenerLevel13 (Clases.Game.Levels.ContactListeners.ContactLIstenerLevel13) package Clases.Game.Levels.ContactListeners { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.LevelElements.*; public class ContactLIstenerLevel13 extends EndLevelContact { private var vars:Object; private var nucked:Array; public function ContactLIstenerLevel13(){ nucked = new Array(); super(); } override public function Add(_arg1:b2ContactPoint):void{ super.Add(_arg1); } public function removeNuckedBodies():void{ var _local1:b2Body; for each (_local1 in nucked) { if (vars.padre.contains(_local1.GetUserData())){ vars.padre.removeChild(_local1.GetUserData()); }; vars.world.DestroyBody(_local1); }; nucked = []; } override public function Persist(_arg1:b2ContactPoint):void{ } public function initListener(_arg1:Object):void{ vars = _arg1; super.init({world:vars.world, padre:vars.padre}); } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ var _local2:BridgeDown; super.Result(_arg1); if ((_arg1.shape2.GetBody().GetUserData() is PuenteHieloHorizontal)){ if (_arg1.normalImpulse > 1){ nucked.push(_arg1.shape2.GetBody()); _local2 = new BridgeDown(); vars.padre.addChild(_local2); _local2.x = (_arg1.shape2.GetBody().GetUserData().x - (_arg1.shape2.GetBody().GetUserData().width / 2)); _local2.y = _arg1.shape2.GetBody().GetUserData().y; _local2.init({width:_arg1.shape2.GetBody().GetUserData().width}); }; }; if ((_arg1.shape2.GetBody().GetUserData() is TramoPuente)){ if (_arg1.normalImpulse > 1){ if (_arg1.shape2.GetBody().GetJointList()){ vars.world.DestroyJoint(_arg1.shape2.GetBody().GetJointList().joint); }; }; }; } } }//package Clases.Game.Levels.ContactListeners
Section 190
//ContactLIstenerLevel14 (Clases.Game.Levels.ContactListeners.ContactLIstenerLevel14) package Clases.Game.Levels.ContactListeners { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Clases.Game.Levels.LevelElements.*; public class ContactLIstenerLevel14 extends EndLevelContact { private var vars:Object; private var nucked:Array; public function ContactLIstenerLevel14(){ nucked = new Array(); super(); } override public function Add(_arg1:b2ContactPoint):void{ super.Add(_arg1); } public function removeNuckedBodies():void{ var _local1:b2Body; for each (_local1 in nucked) { vars.world.DestroyBody(_local1); }; nucked = []; } override public function Persist(_arg1:b2ContactPoint):void{ } public function initListener(_arg1:Object):void{ vars = _arg1; super.init({world:vars.world, padre:vars.padre}); } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ super.Result(_arg1); if ((_arg1.shape2.GetBody().GetUserData() is TramoPuente)){ if (_arg1.normalImpulse > 1){ if (_arg1.shape2.GetBody().GetJointList()){ vars.world.DestroyJoint(_arg1.shape2.GetBody().GetJointList().joint); }; }; }; } } }//package Clases.Game.Levels.ContactListeners
Section 191
//ContactLIstenerLevel9 (Clases.Game.Levels.ContactListeners.ContactLIstenerLevel9) package Clases.Game.Levels.ContactListeners { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.LevelElements.*; public class ContactLIstenerLevel9 extends EndLevelContact { private var vars:Object; private var nucked:Array; public function ContactLIstenerLevel9(){ nucked = new Array(); super(); } override public function Add(_arg1:b2ContactPoint):void{ super.Add(_arg1); } override public function Persist(_arg1:b2ContactPoint):void{ } public function initListener(_arg1:Object):void{ vars = _arg1; super.init({world:vars.world, padre:vars.padre}); } public function nukeBody():void{ var _local1:b2Body; for each (_local1 in nucked) { if (vars.padre.contains(_local1.GetUserData())){ vars.padre.removeChild(_local1.GetUserData()); }; vars.world.DestroyBody(_local1); }; nucked = []; } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ var _local2:BridgeDown; var _local3:BridgeDown; super.Result(_arg1); if ((_arg1.shape2.GetBody().GetUserData() is PuenteHieloHorizontalGrande)){ if (_arg1.normalImpulse > 1.2){ nucked.push(_arg1.shape2.GetBody()); _local2 = new BridgeDown(); vars.padre.addChild(_local2); _local2.x = (_arg1.shape2.GetBody().GetUserData().x - (_arg1.shape2.GetBody().GetUserData().width / 2)); _local2.y = _arg1.shape2.GetBody().GetUserData().y; _local2.init({width:_arg1.shape2.GetBody().GetUserData().width}); }; }; if ((_arg1.shape2.GetBody().GetUserData() is PuenteHieloHorizontal)){ if (_arg1.normalImpulse > 1){ nucked.push(_arg1.shape2.GetBody()); _local3 = new BridgeDown(); vars.padre.addChild(_local3); _local3.x = (_arg1.shape2.GetBody().GetUserData().x - (_arg1.shape2.GetBody().GetUserData().width / 2)); _local3.y = _arg1.shape2.GetBody().GetUserData().y; _local3.init({width:_arg1.shape2.GetBody().GetUserData().width}); }; }; } } }//package Clases.Game.Levels.ContactListeners
Section 192
//EndLevelContact (Clases.Game.Levels.ContactListeners.EndLevelContact) package Clases.Game.Levels.ContactListeners { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Clases.Game.Veicle.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; import Clases.Game.Levels.LevelElements.*; public class EndLevelContact extends b2ContactListener { private const CANTIDAD:int = 15; private var sounds:ResourceSound; private var arrayOfSnowHeavy:Array; private var currentParticle:int;// = 0 private var theWorld:b2World; private var vars:Object; protected static var var_end_level_game_because_the_truck_pass_the_level:Boolean = false; protected static var var_end_level_game_because_the_truck_go_out_of_Screen:Boolean = false; protected static var var_end_level_Water_Zone:Boolean = false; protected static var var_end_level_game_because_the_truck_crush:Boolean = false; public function EndLevelContact(){ sounds = new ResourceSound(); arrayOfSnowHeavy = new Array(); super(); } override public function Add(_arg1:b2ContactPoint):void{ if ((((_arg1.shape2.GetBody().GetUserData() == "End_Level_Senesor")) && ((_arg1.shape1.GetBody().GetUserData() is Cabina)))){ var_end_level_game_because_the_truck_pass_the_level = true; sounds.playEndSound(); }; if ((((_arg1.shape2.GetBody().GetUserData() == "No_Displazment_Zone")) && ((_arg1.shape1.GetBody().GetUserData() is Cabina)))){ _arg1.shape1.GetBody().GetUserData().dislpacmentStatus = false; sounds.playOutOfScreen(); }; if ((((_arg1.shape2.GetBody().GetUserData() == "Dead_Zone")) && ((_arg1.shape1.GetBody().GetUserData() is Cabina)))){ var_end_level_game_because_the_truck_go_out_of_Screen = true; }; if ((((_arg1.shape2.GetBody().GetUserData() == "Water_Dead_Zone")) && ((_arg1.shape1.GetBody().GetUserData() is Cabina)))){ var_end_level_Water_Zone = true; }; if ((((((_arg1.shape1.GetBody().GetUserData() is Cabina)) && ((_arg1.shape2.GetBody().GetUserData() == null)))) || ((((_arg1.shape2.GetBody().GetUserData() is Cabina)) && ((_arg1.shape1.GetBody().GetUserData() == null)))))){ var_end_level_game_because_the_truck_crush = true; sounds.playCabinHit(); }; if ((((_arg1.shape2.GetBody().GetUserData() is Cabina)) && ((_arg1.shape1.GetBody().GetUserData() is Estalactita)))){ var_end_level_game_because_the_truck_crush = true; sounds.playCabinHit(); }; } public function set end_level_status_becuse_truck_go_out(_arg1:Boolean):void{ var_end_level_game_because_the_truck_go_out_of_Screen = _arg1; } public function init(_arg1:Object):void{ var _local3:Snow; vars = _arg1; var _local2:int; while (_local2 < CANTIDAD) { _local3 = new Snow(); _local3.init({scaleImInit:0.5, scaleImEnd:2.2, fadeFinish:0, sizeDot:2.2}); vars.padre.addChild(_local3); arrayOfSnowHeavy.push(_local3); _local2++; }; } public function get end_level_status_becuse_truck_pass_the_level():Boolean{ return (var_end_level_game_because_the_truck_pass_the_level); } public function get end_level_Water_Zone():Boolean{ return (var_end_level_Water_Zone); } public function get end_level_status_becuse_truck_go_out():Boolean{ return (var_end_level_game_because_the_truck_go_out_of_Screen); } public function set end_level_status_becuse_truck_rush(_arg1:Boolean):void{ var_end_level_game_because_the_truck_crush = _arg1; } public function set end_level_status_becuse_truck_pass_the_level(_arg1:Boolean):void{ var_end_level_game_because_the_truck_pass_the_level = _arg1; } public function set end_level_Water_Zone(_arg1:Boolean):void{ var_end_level_Water_Zone = _arg1; } public function get end_level_status_becuse_truck_rush():Boolean{ return (var_end_level_game_because_the_truck_crush); } override public function Remove(_arg1:b2ContactPoint):void{ } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ if ((((_arg1.shape1.GetBody().GetUserData() is Eslabon)) && ((_arg1.shape2.GetBody().GetUserData() == null)))){ if (arrayOfSnowHeavy[currentParticle].emiterStatus){ arrayOfSnowHeavy[currentParticle].startParticles(); arrayOfSnowHeavy[currentParticle].x = (_arg1.position.x * vars.world.m_debugDraw.m_drawScale); arrayOfSnowHeavy[currentParticle].y = (_arg1.position.y * vars.world.m_debugDraw.m_drawScale); }; currentParticle++; if (currentParticle == CANTIDAD){ currentParticle = 0; }; }; } } }//package Clases.Game.Levels.ContactListeners
Section 193
//Avalancha (Clases.Game.Levels.LevelElements.Avalancha) package Clases.Game.Levels.LevelElements { import flash.display.*; import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class Avalancha extends Sprite { public function createSmallAvalanch(_arg1:Number, _arg2:Number, _arg3:int, _arg4:b2World):void{ var _local5:b2BodyDef; var _local6:b2Body; var _local7:b2CircleDef; var _local8:int; while (_local8 < _arg3) { _local7 = new b2CircleDef(); _local7.radius = ((Math.random() * 0.8) + 0.6); _local7.friction = 0.2; _local7.restitution = 0.4; _local7.density = 0.5; _local7.filter.groupIndex = 0; _local5 = new b2BodyDef(); _local5.position = new b2Vec2(_arg1, _arg2); _local5.angle = 0; _local5.userData = new Bola(); _local5.userData.width = ((_local5.userData.width * _local7.radius) * 0.75); _local5.userData.height = ((_local5.userData.height * _local7.radius) * 0.75); addChild(_local5.userData); _local5.userData.x = -1000; _local5.userData.y = -1000; _local6 = _arg4.CreateBody(_local5); _local6.CreateShape(_local7); _local6.SetMassFromShapes(); _local8++; }; } } }//package Clases.Game.Levels.LevelElements
Section 194
//Bola (Clases.Game.Levels.LevelElements.Bola) package Clases.Game.Levels.LevelElements { import flash.display.*; public class Bola extends Sprite { public function Bola():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createBolaNieveClassBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 195
//CuboGrande (Clases.Game.Levels.LevelElements.CuboGrande) package Clases.Game.Levels.LevelElements { import flash.display.*; public class CuboGrande extends Sprite { public function CuboGrande():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createCuboGarandeBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 196
//DestructibleLevels (Clases.Game.Levels.LevelElements.DestructibleLevels) package Clases.Game.Levels.LevelElements { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; public class DestructibleLevels extends Sprite { private var vars:Object; private function buildIt():void{ var _local1:b2BodyDef; var _local2:b2Body; var _local3:b2PolygonDef; var _local4:b2RevoluteJointDef; var _local5:Array; _local5 = new Array(); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(vars.largo, -0.25); _local3.vertices[1].Set(vars.largo, 0.25); _local3.vertices[2].Set(-(vars.largo), 0.25); _local3.vertices[3].Set(-(vars.largo), -0.25); _local3.friction = 0.2; _local3.restitution = 0.4; _local3.density = 1; _local3.filter.groupIndex = 0; _local1 = new b2BodyDef(); _local1.position = new b2Vec2((9.07249999998236 + vars.X), (4.33000000017636 + vars.Y)); _local1.angle = 0; _local1.userData = new TramoPuente(); addChild(_local1.userData); _local1.userData.x = -1000; _local1.userData.y = -1000; _local1.userData.width = ((vars.largo * 2) * vars.world.m_debugDraw.m_drawScale); _local2 = vars.world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); _local5["65805"] = _local2; _local4 = new b2RevoluteJointDef(); _local4.Initialize(_local5["65805"], vars.world.GetGroundBody(), new b2Vec2((11.5724999999824 + vars.X), (4.08000000017636 + vars.Y))); _local4.enableLimit = true; _local4.lowerAngle = 0; _local4.upperAngle = 0; vars.world.CreateJoint(_local4); _local4 = new b2RevoluteJointDef(); _local4.Initialize(_local5["65805"], vars.world.GetGroundBody(), new b2Vec2((6.57249999998236 + vars.X), (4.08000000017636 + vars.Y))); _local4.enableLimit = true; _local4.lowerAngle = 0; _local4.upperAngle = 0; vars.world.CreateJoint(_local4); } public function init(_arg1:Object=null):void{ vars = _arg1; buildIt(); } } }//package Clases.Game.Levels.LevelElements
Section 197
//Estaca (Clases.Game.Levels.LevelElements.Estaca) package Clases.Game.Levels.LevelElements { import flash.display.*; public class Estaca extends Sprite { public function Estaca():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createEndLevelEstaca(); addChild(_local2); _local2.x = (_local2.x - 100); _local2.y = 0; _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 198
//Estalactita (Clases.Game.Levels.LevelElements.Estalactita) package Clases.Game.Levels.LevelElements { import flash.display.*; public class Estalactita extends Sprite { private var number:int;// = 0 public function Estalactita(_arg1:int):void{ number = _arg1; var _local2:LevelElementsResource = new LevelElementsResource(); var _local3:Bitmap = _local2.createEstalactitaClassBitmap(); addChild(_local3); _local3.x = (_local3.x - (_local3.width / 2)); _local3.y = (_local3.y - ((_local3.height / 2) + 3)); _local3.smoothing = true; } public function getID():int{ return (number); } } }//package Clases.Game.Levels.LevelElements
Section 199
//FloatingWood (Clases.Game.Levels.LevelElements.FloatingWood) package Clases.Game.Levels.LevelElements { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; public class FloatingWood extends Sprite { public function FloatingWood(_arg1:Number, _arg2:Number, _arg3:b2World){ var _local4:b2BodyDef; var _local5:b2Body; var _local6:b2PolygonDef; var _local7:b2RevoluteJointDef; var _local8:b2DistanceJointDef; super(); var _local9:Array = new Array(); _local6 = new b2PolygonDef(); _local6.vertexCount = 4; _local6.vertices[0].Set(3.75, -0.25); _local6.vertices[1].Set(3.75, 0.25); _local6.vertices[2].Set(-3.75, 0.25); _local6.vertices[3].Set(-3.75, -0.25); _local6.friction = 0.2; _local6.restitution = 0.4; _local6.density = 1; _local6.filter.groupIndex = 0; _local4 = new b2BodyDef(); _local4.position = new b2Vec2((_arg1 + 7.51503289922384), (_arg2 + 4.5205078454138)); _local4.angle = -0.000270572542125703; _local4.userData = new HieloHorizontalFlotante(); addChild(_local4.userData); _local4.userData.x = -1000; _local4.userData.y = -1000; _local5 = _arg3.CreateBody(_local4); _local5.CreateShape(_local6); _local5.SetMassFromShapes(); _local9["75205"] = _local5; _local8 = new b2DistanceJointDef(); _local8.Initialize(_arg3.GetGroundBody(), _local9["75205"], new b2Vec2((_arg1 + 11.0225), (_arg2 + 8.39)), new b2Vec2((_arg1 + 11.0150327707379), (_arg2 + 4.51955947652833))); _local8.dampingRatio = 3.5; _local8.frequencyHz = 1; _arg3.CreateJoint(_local8); _local8 = new b2DistanceJointDef(); _local8.Initialize(_arg3.GetGroundBody(), _local9["75205"], new b2Vec2((_arg1 + 4.0225), (_arg2 + 8.39)), new b2Vec2((_arg1 + 4.01503302697114), (_arg2 + 4.5214534843001))); _local8.dampingRatio = 3.5; _local8.frequencyHz = 1; _arg3.CreateJoint(_local8); _local8 = new b2DistanceJointDef(); _local8.Initialize(_arg3.GetGroundBody(), _local9["75205"], new b2Vec2(_arg1, (_arg2 + 5.39)), new b2Vec2((_arg1 + 4.01503302697114), (_arg2 + 4.5214534843001))); _local8.dampingRatio = 3.5; _local8.frequencyHz = 1; _arg3.CreateJoint(_local8); _local8 = new b2DistanceJointDef(); _local8.Initialize(_arg3.GetGroundBody(), _local9["75205"], new b2Vec2((_arg1 + 16), (_arg2 + 5.39)), new b2Vec2((_arg1 + 11.0150327707379), (_arg2 + 4.51955947652833))); _local8.dampingRatio = 3.5; _local8.frequencyHz = 1; _arg3.CreateJoint(_local8); } } }//package Clases.Game.Levels.LevelElements
Section 200
//HieloHorizontalFlotante (Clases.Game.Levels.LevelElements.HieloHorizontalFlotante) package Clases.Game.Levels.LevelElements { import flash.display.*; public class HieloHorizontalFlotante extends Sprite { public function HieloHorizontalFlotante():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createHorizontalHieloFlotanteBigBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 201
//LevelBackgroundResources (Clases.Game.Levels.LevelElements.LevelBackgroundResources) package Clases.Game.Levels.LevelElements { import flash.display.*; public class LevelBackgroundResources { private const MoutainUp:Class; private const Midle_sky:Class; private const Down_sky:Class; private const MoutainDown:Class; private const DownWater:Class; private const UpWater:Class; private const Up_sky:Class; public function LevelBackgroundResources(){ UpWater = LevelBackgroundResources_UpWater; DownWater = LevelBackgroundResources_DownWater; Midle_sky = LevelBackgroundResources_Midle_sky; Up_sky = LevelBackgroundResources_Up_sky; Down_sky = LevelBackgroundResources_Down_sky; MoutainUp = LevelBackgroundResources_MoutainUp; MoutainDown = LevelBackgroundResources_MoutainDown; super(); } public function create_Mountain_Up_bitmap():Bitmap{ var _local1:Bitmap = (new MoutainUp() as Bitmap); return (_local1); } public function create_Mountain_Down_bitmap():Bitmap{ var _local1:Bitmap = (new MoutainDown() as Bitmap); return (_local1); } public function create_down_water_bitmap():Bitmap{ var _local1:Bitmap = (new DownWater() as Bitmap); return (_local1); } public function create_middle_sky_bitmap():Bitmap{ var _local1:Bitmap = (new Midle_sky() as Bitmap); return (_local1); } public function create_down_sky_bitmap():Bitmap{ var _local1:Bitmap = (new Down_sky() as Bitmap); return (_local1); } public function create_up_sky_bitmap():Bitmap{ var _local1:Bitmap = (new Up_sky() as Bitmap); return (_local1); } public function create_up_water_bitmap():Bitmap{ var _local1:Bitmap = (new UpWater() as Bitmap); return (_local1); } } }//package Clases.Game.Levels.LevelElements
Section 202
//LevelBackgroundResources_Down_sky (Clases.Game.Levels.LevelElements.LevelBackgroundResources_Down_sky) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelBackgroundResources_Down_sky extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 203
//LevelBackgroundResources_DownWater (Clases.Game.Levels.LevelElements.LevelBackgroundResources_DownWater) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelBackgroundResources_DownWater extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 204
//LevelBackgroundResources_Midle_sky (Clases.Game.Levels.LevelElements.LevelBackgroundResources_Midle_sky) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelBackgroundResources_Midle_sky extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 205
//LevelBackgroundResources_MoutainDown (Clases.Game.Levels.LevelElements.LevelBackgroundResources_MoutainDown) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelBackgroundResources_MoutainDown extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 206
//LevelBackgroundResources_MoutainUp (Clases.Game.Levels.LevelElements.LevelBackgroundResources_MoutainUp) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelBackgroundResources_MoutainUp extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 207
//LevelBackgroundResources_Up_sky (Clases.Game.Levels.LevelElements.LevelBackgroundResources_Up_sky) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelBackgroundResources_Up_sky extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 208
//LevelBackgroundResources_UpWater (Clases.Game.Levels.LevelElements.LevelBackgroundResources_UpWater) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelBackgroundResources_UpWater extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 209
//LevelElementsResource (Clases.Game.Levels.LevelElements.LevelElementsResource) package Clases.Game.Levels.LevelElements { import flash.display.*; public class LevelElementsResource { private const Rock:Class; private const HorizontalHieloFlotante:Class; private const HorizontalIceBridge:Class; private const HorizontalIceBridgeBig:Class; private const Estaca:Class; private const Cubo:Class; private const EstalactitaClass:Class; private const TramoPuente:Class; private const HorizontalBridge:Class; private const BolaNieve:Class; private const VerticalBridge:Class; public function LevelElementsResource(){ HorizontalBridge = LevelElementsResource_HorizontalBridge; VerticalBridge = LevelElementsResource_VerticalBridge; HorizontalIceBridge = LevelElementsResource_HorizontalIceBridge; HorizontalIceBridgeBig = LevelElementsResource_HorizontalIceBridgeBig; HorizontalHieloFlotante = LevelElementsResource_HorizontalHieloFlotante; Cubo = LevelElementsResource_Cubo; EstalactitaClass = LevelElementsResource_EstalactitaClass; BolaNieve = LevelElementsResource_BolaNieve; TramoPuente = LevelElementsResource_TramoPuente; Estaca = LevelElementsResource_Estaca; Rock = LevelElementsResource_Rock; super(); } public function createBolaNieveClassBitmap():Bitmap{ var _local1:Bitmap = (new BolaNieve() as Bitmap); return (_local1); } public function createVerticalBridgeaBitmap():Bitmap{ var _local1:Bitmap = (new VerticalBridge() as Bitmap); return (_local1); } public function createBeignRock():Bitmap{ var _local1:Bitmap = (new Rock() as Bitmap); return (_local1); } public function createHorizontalIceBridgeBigBitmap():Bitmap{ var _local1:Bitmap = (new HorizontalIceBridgeBig() as Bitmap); return (_local1); } public function createHorizontalIceBridgeaBitmap():Bitmap{ var _local1:Bitmap = (new HorizontalIceBridge() as Bitmap); return (_local1); } public function createEndLevelEstaca():Bitmap{ var _local1:Bitmap = (new Estaca() as Bitmap); return (_local1); } public function createHorizontalHieloFlotanteBigBitmap():Bitmap{ var _local1:Bitmap = (new HorizontalHieloFlotante() as Bitmap); return (_local1); } public function createTramoDelPuenteBitmap():Bitmap{ var _local1:Bitmap = (new TramoPuente() as Bitmap); return (_local1); } public function createEstalactitaClassBitmap():Bitmap{ var _local1:Bitmap = (new EstalactitaClass() as Bitmap); return (_local1); } public function createHorizontalBridgeaBitmap():Bitmap{ var _local1:Bitmap = (new HorizontalBridge() as Bitmap); return (_local1); } public function createCuboGarandeBitmap():Bitmap{ var _local1:Bitmap = (new Cubo() as Bitmap); return (_local1); } } }//package Clases.Game.Levels.LevelElements
Section 210
//LevelElementsResource_BolaNieve (Clases.Game.Levels.LevelElements.LevelElementsResource_BolaNieve) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_BolaNieve extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 211
//LevelElementsResource_Cubo (Clases.Game.Levels.LevelElements.LevelElementsResource_Cubo) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_Cubo extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 212
//LevelElementsResource_Estaca (Clases.Game.Levels.LevelElements.LevelElementsResource_Estaca) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_Estaca extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 213
//LevelElementsResource_EstalactitaClass (Clases.Game.Levels.LevelElements.LevelElementsResource_EstalactitaClass) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_EstalactitaClass extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 214
//LevelElementsResource_HorizontalBridge (Clases.Game.Levels.LevelElements.LevelElementsResource_HorizontalBridge) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_HorizontalBridge extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 215
//LevelElementsResource_HorizontalHieloFlotante (Clases.Game.Levels.LevelElements.LevelElementsResource_HorizontalHieloFlotante) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_HorizontalHieloFlotante extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 216
//LevelElementsResource_HorizontalIceBridge (Clases.Game.Levels.LevelElements.LevelElementsResource_HorizontalIceBridge) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_HorizontalIceBridge extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 217
//LevelElementsResource_HorizontalIceBridgeBig (Clases.Game.Levels.LevelElements.LevelElementsResource_HorizontalIceBridgeBig) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_HorizontalIceBridgeBig extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 218
//LevelElementsResource_Rock (Clases.Game.Levels.LevelElements.LevelElementsResource_Rock) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_Rock extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 219
//LevelElementsResource_TramoPuente (Clases.Game.Levels.LevelElements.LevelElementsResource_TramoPuente) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_TramoPuente extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 220
//LevelElementsResource_VerticalBridge (Clases.Game.Levels.LevelElements.LevelElementsResource_VerticalBridge) package Clases.Game.Levels.LevelElements { import mx.core.*; public class LevelElementsResource_VerticalBridge extends BitmapAsset { } }//package Clases.Game.Levels.LevelElements
Section 221
//PisoDeCueva (Clases.Game.Levels.LevelElements.PisoDeCueva) package Clases.Game.Levels.LevelElements { import flash.display.*; public class PisoDeCueva extends Sprite { public function PisoDeCueva():void{ } } }//package Clases.Game.Levels.LevelElements
Section 222
//PuenteHieloHorizontal (Clases.Game.Levels.LevelElements.PuenteHieloHorizontal) package Clases.Game.Levels.LevelElements { import flash.display.*; public class PuenteHieloHorizontal extends Sprite { public function PuenteHieloHorizontal():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createHorizontalIceBridgeaBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 223
//PuenteHieloHorizontalGrande (Clases.Game.Levels.LevelElements.PuenteHieloHorizontalGrande) package Clases.Game.Levels.LevelElements { import flash.display.*; public class PuenteHieloHorizontalGrande extends Sprite { public function PuenteHieloHorizontalGrande():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createHorizontalIceBridgeBigBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 224
//PuenteSeccionHorizontal (Clases.Game.Levels.LevelElements.PuenteSeccionHorizontal) package Clases.Game.Levels.LevelElements { import flash.display.*; public class PuenteSeccionHorizontal extends Sprite { public function PuenteSeccionHorizontal():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createHorizontalBridgeaBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 225
//PuenteSeccionVertical (Clases.Game.Levels.LevelElements.PuenteSeccionVertical) package Clases.Game.Levels.LevelElements { import flash.display.*; public class PuenteSeccionVertical extends Sprite { public function PuenteSeccionVertical():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createVerticalBridgeaBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 226
//Rock (Clases.Game.Levels.LevelElements.Rock) package Clases.Game.Levels.LevelElements { import flash.display.*; public class Rock extends Sprite { public function Rock():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createBeignRock(); addChild(_local2); _local2.x = (_local2.x - 100); _local2.y = 0; _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 227
//TramoPuente (Clases.Game.Levels.LevelElements.TramoPuente) package Clases.Game.Levels.LevelElements { import flash.display.*; public class TramoPuente extends Sprite { public function TramoPuente():void{ var _local1:LevelElementsResource = new LevelElementsResource(); var _local2:Bitmap = _local1.createTramoDelPuenteBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Levels.LevelElements
Section 228
//Level (Clases.Game.Levels.Level) package Clases.Game.Levels { import flash.events.*; import flash.display.*; import gs.*; import flash.net.*; import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Clases.Game.System.*; import Clases.Game.Veicle.*; import gs.easing.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.BasicEngine.*; import Clases.Game.Levels.ContactListeners.*; import Clases.Game.Levels.LevelElements.*; import Clases.BasicScreens.*; public class Level extends PhisicBase { private var once:Boolean;// = true private var car:Grooming; private var backImg:Bitmap; private var vars:Object; private var myGui:GUI; private var soundLevel:ResourceSound; private var endLevelContact:EndLevelContact; private var estaca:Estaca; public function Level(){ myGui = new GUI(); endLevelContact = new EndLevelContact(); soundLevel = new ResourceSound(); super(); } public function removeAllChildsOfTheLevel(_arg1:Sprite):void{ var level = _arg1; var children:Array = new Array(); var i:int; while (i < level.numChildren) { children.push(level.getChildAt(i)); i = (i + 1); }; i = 0; while (i < children.length) { children[i].parent.removeChild(children[i]); trace(children[i]); children[i] = null; i = (i + 1); }; try { new LocalConnection().connect("foo"); new LocalConnection().connect("foo"); } catch(e:Error) { }; } public function agregarEstaca_to_end_level():void{ estaca = new Estaca(); addChild(estaca); } public function agregarRoca_to_Begining_Level(_arg1:int, _arg2:int):void{ var _local3:Rock = new Rock(); addChild(_local3); _local3.x = _arg1; _local3.y = _arg2; } public function reset():void{ soundLevel.stopLevelMusic(); desrtoyLevel(); if (Main.actualLevel >= 15){ vars.level_selector.sendScoreFunction(); } else { if (Main.actualLives == 0){ vars.level_selector.sendScoreFunction(); } else { vars.level_selector.restartLevel(); }; }; } public function init(_arg1:Object):void{ var contdown:Cowntdown; var start_game_now:Function; var v = _arg1; start_game_now = function ():void{ addEventListener(Event.ENTER_FRAME, actulizarCurrentLevel, false, 0, true); myGui.removeChild(contdown); TweenMax.to(car, 1.5, {alpha:1}); car.addFocus(); }; vars = v; once = true; soundLevel.playLevelsMusic(); var startLevelscr:InitLevelScreen = new InitLevelScreen(); myGui.addChild(startLevelscr); startLevelscr.init({padre:myGui, level:vars.levelNumber}); car = new Grooming(m_world, vars.x, vars.y, 0.5, 2, 0.05, 20); myGui.init({levelNumber:vars.levelNumber, levlTimer:vars.time, grooming:car}); car.addControls(vars.stage, myGui, vars.padre); addChild(car); car.alpha = 0; addChild(myGui); addendLevelContacFunction(); this.x = -3750; this.y = 150; actualizar(); contdown = new Cowntdown(); myGui.addChild(contdown); contdown.init(); TweenMax.to(this, 4.1, {onComplete:start_game_now}); } public function crateBackground():void{ var _local1:ResourcesBack = new ResourcesBack(); backImg = _local1.create_Back_Level(); addChild(backImg); } public function createWhiteScreen():void{ var square:Sprite; var removeScreenInit:Function; removeScreenInit = function ():void{ removeChild(square); }; square = new Sprite(); addChild(square); square.graphics.beginFill(0xFFFFFF); square.graphics.drawRect(-1000, -1000, 10000, 10000); square.graphics.endFill(); TweenMax.to(square, 3, {alpha:0, onComplete:removeScreenInit}); } public function senesorFunction(_arg1:Object):void{ var _local2:FinishSensor = new FinishSensor(); _local2.init(_arg1); } public function desrtoyLevel():void{ super.desrtoy(); super.updateLevel(); removeChild(car); car = null; removeChild(myGui); myGui = null; } private function gameOver():void{ removeEventListener(Event.ENTER_FRAME, actulizarCurrentLevel); var _local1:GameOver = new GameOver(); myGui.addChild(_local1); myGui.bringToFront(); _local1.init(); TweenMax.to(this, 2.1, {onComplete:reset}); } private function actualizar():void{ var _local1:NextLevelScreen; if (!car.getIsPaused()){ super.updateLevel(); car.actualizarCar(vars.padre); myGui.reducirTime(); backImg.x = myGui.x; backImg.y = myGui.y; if (endLevelContact.end_level_status_becuse_truck_pass_the_level){ _local1 = new NextLevelScreen({bonus_level:myGui.bonus, lifes_level:myGui.total_lifes, padre:this}); myGui.addChild(_local1); endLevelContact.end_level_status_becuse_truck_pass_the_level = false; removeEventListener(Event.ENTER_FRAME, actulizarCurrentLevel); car.stopAllSounds(); } else { if (once){ if (endLevelContact.end_level_status_becuse_truck_go_out){ trace("out"); once = false; endLevelContact.end_level_status_becuse_truck_go_out = false; gameOver(); car.stopAllSounds(); }; if (endLevelContact.end_level_Water_Zone){ trace("water"); once = false; endLevelContact.end_level_Water_Zone = false; gameOver(); car.stopAllSounds(); }; if (endLevelContact.end_level_status_becuse_truck_rush){ trace("crush"); endLevelContact.end_level_status_becuse_truck_rush = false; once = false; gameOver(); car.stopAllSounds(); }; }; }; }; } public function parseSVG(_arg1:XML):void{ var _local5:XML; var _local6:String; var _local7:RegExp; var _local8:Array; var _local9:int; var _local2:Namespace = _arg1.namespace(""); var _local3:b2BodyDef = new b2BodyDef(); var _local4:b2StaticEdgeChainDef = new b2StaticEdgeChainDef(); _local4.friction = 0.5; _local4.restitution = 0; for each (_local5 in _arg1.._local2::path) { _local6 = _local5.@d; _local7 = / |,/; _local8 = _local6.split(_local7); if (_local6.split(_local7)[(_local8.length - 1)] == ""){ _local8.pop(); }; _local9 = 1; _local4.isALoop = false; _local4.vertices.length = 0; while (true) { if (_local9 == (_local8.length - 2)){ _local4.vertices.push(new b2Vec2(_local8[_local9], _local8[(_local9 + 1)])); break; } else { if ((((_local8[(_local9 + 2)] == "z")) || ((_local8[(_local9 + 2)] == "Z")))){ _local4.isALoop = true; break; } else { if (_local8[(_local9 + 2)] != "L"){ throw (new Error("Unsupported: The SVG Path contains an arc command or move-to command or a relative coordinate.")); }; }; }; _local4.vertices.push(new b2Vec2((_local8[_local9] / m_world.m_debugDraw.m_drawScale), (_local8[(_local9 + 1)] / m_world.m_debugDraw.m_drawScale))); _local9 = (_local9 + 3); }; _local4.vertexCount = _local4.vertices.length; super.m_world.CreateGroundShape(_local4); }; } private function actulizarCurrentLevel(_arg1:Event):void{ actualizar(); } public function guiToFront():void{ myGui.bringToFront(); } public function addendLevelContacFunction():void{ senesorFunction({x:vars.endSensorXY[0], y:vars.endSensorXY[1], ancho:2, alto:2, world:m_world, sensotType:"End_Level_Senesor"}); endLevelContact.init({padre:this, world:super.m_world}); super.m_world.SetContactListener(endLevelContact); estaca.x = vars.endSensorXY[0]; estaca.y = vars.endSensorXY[1]; } } }//package Clases.Game.Levels
Section 229
//LevelSelection (Clases.Game.LevelSelection.LevelSelection) package Clases.Game.LevelSelection { import flash.events.*; import flash.display.*; import mochi.as3.*; import Clases.Button.*; import Clases.Button.ButtonEfects.*; import Clases.Game.Levels.AllLevels.*; import flash.system.*; public class LevelSelection extends Sprite { private const LEVEL1:int = 0; private var lastLevel:Object; private var loader:Loader; private var arrayOfButtonsOfLevels:Array; private var arrayOfLevels:Array; private var level10:Level10; private var level11:Level11; private var level12:Level12; private var level14:Level14; private var gameStage:Stage; private var level1:Level1; private var level3:Level3; private var level4:Level4; private var level5:Level5; private var level6:Level6; private var level7:Level7; private var level8:Level8; private var level2:Level2; private var level9:Level9; private var level13:Level13; private var scoresGameButton:GameButton; private var mainGame:Main; private var saltoButton:GameButtonMoreGamesForYourSite; public function LevelSelection(){ arrayOfButtonsOfLevels = new Array(); arrayOfLevels = new Array(); loader = new Loader(); super(); } public function init(_arg1:Stage, _arg2:Main):void{ gameStage = _arg1; mainGame = _arg2; generteButtons(); } private function continue_Game():void{ parent.removeChild(this); mainGame.createMain(); } private function startLevel1():void{ removeLastLevel(lastLevel); level1 = new Level1(); addChild(level1); level1.initLevel(gameStage, this); mainGame.saveActualProgress(); lastLevel = level1; } private function startLevel2():void{ removeLastLevel(lastLevel); level2 = new Level2(); level2.initLevel(gameStage, this); addChild(level2); mainGame.saveActualProgress(); lastLevel = level2; } private function startLevel3():void{ removeLastLevel(lastLevel); level3 = new Level3(); level3.initLevel(gameStage, this); addChild(level3); mainGame.saveActualProgress(); lastLevel = level3; } private function startLevel4():void{ level4 = null; removeLastLevel(lastLevel); level4 = new Level4(); level4.initLevel(gameStage, this); addChild(level4); mainGame.saveActualProgress(); lastLevel = level4; } private function startLevel5():void{ removeLastLevel(lastLevel); level5 = new Level5(); level5.initLevel(gameStage, this); addChild(level5); mainGame.saveActualProgress(); lastLevel = level5; } private function startLevel6():void{ removeLastLevel(lastLevel); level6 = new Level6(); level6.initLevel(gameStage, this); addChild(level6); mainGame.saveActualProgress(); lastLevel = level6; } private function startLevel8():void{ removeLastLevel(lastLevel); level8 = new Level8(); level8.initLevel(gameStage, this); addChild(level8); mainGame.saveActualProgress(); lastLevel = level8; } private function startLevel7():void{ removeLastLevel(lastLevel); level7 = new Level7(); level7.initLevel(gameStage, this); addChild(level7); mainGame.saveActualProgress(); lastLevel = level7; } private function continue_Game_Event(_arg1:MouseEvent):void{ MochiScores.closeLeaderboard(); parent.removeChild(this); mainGame.createMain(); } private function startLevel9():void{ removeLastLevel(lastLevel); level9 = new Level9(); level9.initLevel(gameStage, this); addChild(level9); mainGame.saveActualProgress(); lastLevel = level9; } public function restartLevel():void{ levelSelectorFunction(Main.actualLevel); } private function startLevel10():void{ removeLastLevel(lastLevel); level10 = new Level10(); level10.initLevel(gameStage, this); addChild(level10); mainGame.saveActualProgress(); lastLevel = level10; } private function startLevel12():void{ removeLastLevel(lastLevel); level12 = new Level12(); level12.initLevel(gameStage, this); addChild(level12); mainGame.saveActualProgress(); lastLevel = level12; } private function startLevel14():void{ removeLastLevel(lastLevel); level14 = new Level14(); level14.initLevel(gameStage, this); addChild(level14); mainGame.saveActualProgress(); lastLevel = level14; } private function startLevel11():void{ removeLastLevel(lastLevel); level11 = new Level11(); level11.initLevel(gameStage, this); addChild(level11); mainGame.saveActualProgress(); lastLevel = level11; } public function sendScoreFunction():void{ var o:Object; var boardID:String; switch (Main.gameMode){ case "easy": o = {n:[6, 3, 11, 13, 14, 1, 12, 4, 4, 11, 10, 14, 13, 14, 9, 5], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, "c7b92dec013eb44b"); MochiScores.showLeaderboard({boardID:boardID, score:Main.currentScore, onClose:continue_Game}); scoresGameButton = new GameButton({y:14, width:200, height:25, texto:"Continue", size:20, skins:new ButtonResource(), efect:new ButtonEfectOne()}); addChild(scoresGameButton); scoresGameButton.x = 130; scoresGameButton.y = ((scoresGameButton.stage.stageHeight - scoresGameButton.height) - 10); scoresGameButton.addEventListener(MouseEvent.CLICK, continue_Game_Event, false, 0, true); saltoButton = new GameButtonMoreGamesForYourSite({y:14, width:200, height:25, texto:"More Games", size:20, skins:new ButtonResource(), efect:new ButtonEfectNone(), padre:this}); addChild(saltoButton); saltoButton.x = ((scoresGameButton.x + scoresGameButton.width) + 5); saltoButton.y = ((saltoButton.stage.stageHeight - saltoButton.height) - 10); break; case "normal": o = {n:[3, 15, 0, 15, 4, 3, 7, 0, 5, 5, 2, 11, 15, 0, 9, 9], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, "17d1f9616ef1911b"); MochiScores.showLeaderboard({boardID:boardID, score:Main.currentScore, onClose:continue_Game}); scoresGameButton = new GameButton({y:14, width:200, height:25, texto:"Continue", size:20, skins:new ButtonResource(), efect:new ButtonEfectOne(), padre:this}); addChild(scoresGameButton); scoresGameButton.x = 130; scoresGameButton.y = ((scoresGameButton.stage.stageHeight - scoresGameButton.height) - 10); scoresGameButton.addEventListener(MouseEvent.CLICK, continue_Game_Event, false, 0, true); saltoButton = new GameButtonMoreGamesForYourSite({y:14, width:200, height:25, texto:"More Games", size:20, skins:new ButtonResource(), efect:new ButtonEfectNone(), padre:this}); addChild(saltoButton); saltoButton.x = ((scoresGameButton.x + scoresGameButton.width) + 5); saltoButton.y = ((saltoButton.stage.stageHeight - saltoButton.height) - 10); break; case "insane": o = {n:[8, 1, 6, 5, 11, 4, 4, 4, 13, 15, 10, 2, 3, 12, 10, 6], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; boardID = o.f(0, "7268c50d9ad38a7d"); MochiScores.showLeaderboard({boardID:boardID, score:Main.currentScore, onClose:continue_Game}); scoresGameButton = new GameButton({y:14, width:200, height:25, texto:"Continue", size:20, skins:new ButtonResource(), efect:new ButtonEfectOne()}); addChild(scoresGameButton); scoresGameButton.x = 130; scoresGameButton.y = ((scoresGameButton.stage.stageHeight - scoresGameButton.height) - 10); scoresGameButton.addEventListener(MouseEvent.CLICK, continue_Game_Event, false, 0, true); saltoButton = new GameButtonMoreGamesForYourSite({y:14, width:200, height:25, texto:"More Games", size:20, skins:new ButtonResource(), efect:new ButtonEfectNone(), padre:this}); addChild(saltoButton); saltoButton.x = ((scoresGameButton.x + scoresGameButton.width) + 5); saltoButton.y = ((saltoButton.stage.stageHeight - saltoButton.height) - 10); break; }; } private function generteButtons():void{ levelSelectorFunction(Main.actualLevel); } private function removeLastLevel(_arg1:Object):void{ trace(_arg1); if (_arg1){ _arg1.removeAllTheLevel(); removeChild(Sprite(_arg1)); _arg1 = null; }; System.gc(); } public function levelSelectorFunction(_arg1:int):void{ switch (_arg1){ case 1: startLevel1(); break; case 2: startLevel2(); break; case 3: startLevel3(); break; case 4: startLevel4(); break; case 5: startLevel5(); break; case 6: startLevel6(); break; case 7: startLevel7(); break; case 8: startLevel8(); break; case 9: startLevel9(); break; case 10: startLevel10(); break; case 11: startLevel11(); break; case 12: startLevel12(); break; case 13: startLevel13(); break; case 14: startLevel14(); break; }; } private function startLevel13():void{ removeLastLevel(lastLevel); level13 = new Level13(); level13.initLevel(gameStage, this); addChild(level13); mainGame.saveActualProgress(); lastLevel = level13; } } }//package Clases.Game.LevelSelection
Section 230
//FinishSensor (Clases.Game.System.FinishSensor) package Clases.Game.System { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.*; public class FinishSensor extends Sprite { private var vars:Object; private function generateSensor():void{ var _local1:b2BodyDef; var _local2:b2Body; var _local3:b2PolygonDef; var _local5:Number; var _local4:Number = (vars.x / vars.world.m_debugDraw.m_drawScale); _local5 = (vars.y / vars.world.m_debugDraw.m_drawScale); _local3 = new b2PolygonDef(); _local3.vertexCount = 4; _local3.vertices[0].Set(vars.ancho, -(vars.alto)); _local3.vertices[1].Set(vars.ancho, vars.alto); _local3.vertices[2].Set(-(vars.ancho), vars.alto); _local3.vertices[3].Set(-(vars.ancho), -(vars.alto)); _local3.friction = 0.001; _local3.restitution = 0.4; _local3.density = 0; _local3.filter.groupIndex = 0; _local3.isSensor = true; _local1 = new b2BodyDef(); _local1.position = new b2Vec2(_local4, _local5); _local1.angle = 0; _local1.userData = vars.sensotType; _local2 = vars.world.CreateBody(_local1); _local2.CreateShape(_local3); _local2.SetMassFromShapes(); } public function init(_arg1:Object=null):void{ vars = _arg1; generateSensor(); } } }//package Clases.Game.System
Section 231
//GUI (Clases.Game.System.GUI) package Clases.Game.System { import flash.display.*; import flash.text.*; import Clases.Font.*; import Clases.Text.*; import Clases.BasicScreens.*; public class GUI extends Sprite { private var optionsBonus:Object; private var currentLevel:Text; private var vars:Object; private var time:Text; private var timeLeft:int;// = 1000 private var lifes:Text; private var efect:Object; private var format:FontResources; public function GUI(){ lifes = new Text(); time = new Text(); currentLevel = new Text(); format = new FontResources(); optionsBonus = {width:110, height:30, color:11403007, isBold:true, size:15, customFont:format.getA_Font_For_The_Computer_People_Font()}; efect = {color:7242495, alpha:1, blurX:5, blurY:5, strength:15, quality:1}; super(); } public function get total_lifes():int{ return (Main.actualLives); } public function reducirTime():void{ if (timeLeft > 0){ timeLeft--; time.text = ("Bonus: " + String(timeLeft)); time.setTextStyle({width:110, height:30, color:11403007, isBold:true, size:15, customFont:format.getA_Font_For_The_Computer_People_Font(), align:TextFormatAlign.LEFT}); }; } private function generateGui():void{ var _local1:Text = new Text(); currentLevel.text = (("Level " + String(vars.levelNumber)) + "/14"); currentLevel.x = 550; currentLevel.setTextStyle(optionsBonus); currentLevel.addTextEfect(efect); addChild(currentLevel); _local1.x = 550; _local1.text = "(P) Pause"; _local1.y = 20; _local1.setTextStyle(optionsBonus); _local1.addTextEfect(efect); addChild(_local1); lifes.text = ("Lifes: " + String(Main.actualLives)); lifes.setTextStyle(optionsBonus); lifes.addTextEfect(efect); addChild(lifes); var _local2:Text = new Text(); _local2.text = ("Score: " + String(Main.currentScore)); addChild(_local2); _local2.setTextStyle(optionsBonus); _local2.addTextEfect(efect); _local2.y = 20; time.text = "Bonus: 0000"; time.setTextStyle({width:110, height:30, color:11403007, isBold:true, size:15, customFont:format.getA_Font_For_The_Computer_People_Font(), align:TextFormatAlign.LEFT}); time.addTextEfect(efect); addChild(time); time.y = 40; time.x = 5; var _local3:SounOnOf = new SounOnOf(); addChild(_local3); _local3.car = vars.grooming; } public function destroy():void{ parent.removeChild(this); } public function bringToFront():void{ parent.setChildIndex(this, (parent.numChildren - 1)); } public function init(_arg1:Object=null):void{ vars = _arg1; timeLeft = vars.levlTimer; generateGui(); } public function get bonus():int{ return (timeLeft); } } }//package Clases.Game.System
Section 232
//ProgBar (Clases.Game.System.ProgBar) package Clases.Game.System { import flash.events.*; import flash.display.*; import flash.filters.*; import flash.text.*; public class ProgBar extends MovieClip { protected var _pbTextField:TextField; protected var _pbInitialX:Number;// = -1 protected var _pbInitialY:Number;// = -1 protected var _pbTextFieldColor:Number;// = 0 protected var _pbBorderColor:Number;// = 6513247 protected var _pb:Sprite; protected var _pbColor:Number;// = 14015635 protected var _stage:Stage; protected var _pbHeight:Number;// = 10 protected var _pbBorderShadow:uint;// = 0 protected var _pbMaxValue:Number;// = 300 protected var _pbBorder:Number;// = 6 protected var _pbWidth:Number;// = 200 protected var _pbRound:Number;// = 2 protected var _pbShowTextField:Boolean;// = false public function ProgBar(_arg1:Object=null):void{ var _pbObj = _arg1; _pb = new Sprite(); super(); try { _pb = new Sprite(); if (_pbObj != null){ if (((!((_pbObj.width == null))) && (!((_pbObj.width == undefined))))){ _pbWidth = _pbObj.width; }; if (((!((_pbObj.height == null))) && (!((_pbObj.height == undefined))))){ _pbHeight = _pbObj.height; }; if (((!((_pbObj.x == null))) && (!((_pbObj.x == undefined))))){ _pbInitialX = _pbObj.x; }; if (((!((_pbObj.y == null))) && (!((_pbObj.y == undefined))))){ _pbInitialY = _pbObj.y; }; if (((!((_pbObj.borderWidth == null))) && (!((_pbObj.borderWidth == undefined))))){ _pbBorder = _pbObj.borderWidth; }; if (((!((_pbObj.color == null))) && (!((_pbObj.color == undefined))))){ _pbColor = _pbObj.color; }; if (((!((_pbObj.borderColor == null))) && (!((_pbObj.borderColor == undefined))))){ _pbBorderColor = _pbObj.borderColor; }; if (((!((_pbObj.maxValue == null))) && (!((_pbObj.maxValue == undefined))))){ _pbMaxValue = _pbObj.maxValue; }; if (((!((_pbObj.round == null))) && (!((_pbObj.round == undefined))))){ _pbRound = _pbObj.round; }; if (((!((_pbObj.borderShadow == null))) && (!((_pbObj.borderShadow == undefined))))){ _pbBorderShadow = _pbObj.borderShadow; }; if (((!((_pbObj.showTextField == null))) && (!((_pbObj.showTextField == undefined))))){ _pbShowTextField = _pbObj.showTextField; }; if (((!((_pbObj.textColor == null))) && (!((_pbObj.textColor == undefined))))){ _pbTextFieldColor = _pbObj.textColor; }; if (((!((_pbObj.stage == null))) && (!((_pbObj.stage == undefined))))){ _stage = _pbObj.stage; }; }; drawBorder(); drawProgressBar(); if (_pbShowTextField){ drawTextField(); }; } catch(_err:Error) { trace(("ERROR ON ProgBar Constructor: " + _err.toString())); } finally { addEventListener(Event.ADDED, create); }; } private function drawProgressBar():void{ var _pbBack:Sprite; try { _pbBack = new Sprite(); _pbBack.x = _pbBorder; _pbBack.y = _pbBorder; _pbBack.graphics.beginFill(0, 0.25); _pbBack.graphics.lineStyle(1, 0, 0.5); _pbBack.graphics.drawRect(0, 0, _pbWidth, _pbHeight); _pbBack.graphics.endFill(); addChild(_pbBack).name = "progress_bar_back"; _pb.x = _pbBorder; _pb.y = _pbBorder; _pb.graphics.beginFill(_pbColor, 1); _pb.graphics.lineStyle(1, _pbColor, 1); _pb.graphics.drawRect(0, 0, _pbWidth, _pbHeight); _pb.graphics.endFill(); addChild(_pb).name = "progress_bar"; } catch(_err:Error) { trace(("ERROR ON ProgBar.drawProgressBar(): " + _err.toString())); }; } public function remove():void{ try { if (_pbShowTextField){ _pbTextField.text = ""; }; this.parent.removeChild(this); } catch(_err:Error) { trace(("ERROR ON ProgBar.remove(): " + _err.toString())); }; } private function create(_arg1:Event):void{ var event = _arg1; try { if (_stage == null){ _stage = this.stage; }; if (_pbInitialX == -1){ this.x = ((_stage.stageWidth * 0.5) - (_pbWidth * 0.5)); } else { this.x = _pbInitialX; }; if (_pbInitialY == -1){ this.y = ((_stage.stageHeight * 0.5) - (this.height * 0.5)); } else { this.y = _pbInitialY; }; } catch(_err:Error) { trace(("ERROR ON ProgBar.create(): " + _err.toString())); }; } private function drawBorder():void{ var _Background:Sprite; var myFilter:BitmapFilter; var filterArray:Array; try { _Background = new Sprite(); _Background.x = 0; _Background.y = 0; _Background.graphics.beginFill(_pbBorderColor, 1); _Background.graphics.lineStyle(1, _pbBorderColor, 1); _Background.graphics.drawRect(0, 0, (_pbWidth + (_pbBorder * 2)), (_pbHeight + (_pbBorder * 2))); _Background.graphics.endFill(); myFilter = InnerGlowFilter(_pbBorderShadow); filterArray = new Array(myFilter); _Background.filters = filterArray; addChild(_Background).name = "progress_background"; } catch(_err:Error) { trace(("ERROR ON ProgBar.drawBorder(): " + _err.toString())); }; } public function updatePercent(_arg1:Number):void{ var _percent = _arg1; try { if (_pb){ if (_percent < 100){ _pb.width = ((_percent * _pbWidth) / 100); if (_pbShowTextField){ _pbTextField.text = (Math.floor(_percent) + "%"); }; } else { _pb.width = _pbWidth; if (_pbShowTextField){ _pbTextField.text = ""; }; }; } else { trace("Progress Bar hasn't been created yet..."); }; } catch(_err:Error) { trace(("ERROR ON ProgBar.updatePercent(): " + _err.toString())); }; } public function updateValue(_arg1:Number):void{ var myValue:Number; var _value = _arg1; try { if (_pb){ myValue = ((_pbWidth * _value) / _pbMaxValue); if (_value <= _pbMaxValue){ _pb.width = myValue; if (_pbShowTextField){ _pbTextField.text = (_value + "%"); }; } else { _pb.width = _pbWidth; if (_pbShowTextField){ _pbTextField.text = "100%"; }; }; } else { trace("Progress Bar hasn't been created yet..."); }; } catch(_err:Error) { trace(("ERROR ON ProgBar.updateValue(): " + _err.toString())); }; } private function drawTextField():void{ var textFormat:TextFormat; var pbTextField:TextField; try { textFormat = new TextFormat(); textFormat.font = "Arial"; textFormat.color = _pbTextFieldColor; textFormat.size = ((_pbHeight * 0.5) + 3); textFormat.bold = true; textFormat.align = TextFormatAlign.CENTER; pbTextField = new TextField(); pbTextField.text = "0%"; pbTextField.x = _pb.x; pbTextField.y = (_pb.y - 2); pbTextField.width = _pb.width; pbTextField.height = (_pb.height + 3); pbTextField.wordWrap = true; pbTextField.multiline = false; pbTextField.selectable = false; pbTextField.condenseWhite = true; pbTextField.defaultTextFormat = textFormat; pbTextField.antiAliasType = "advanced"; addChild(pbTextField).name = "progress_text"; _pbTextField = TextField(this.getChildByName("progress_text")); } catch(_err:Error) { trace(("ERROR ON ProgBar.drawTextField(): " + _err.toString())); }; } private function InnerGlowFilter(_arg1:uint):BitmapFilter{ var _local2:uint = _arg1; var _local3:Number = 0.5; var _local4:Number = 4; var _local5:Number = 4; var _local6:Number = 1; var _local7:Boolean; var _local8:Boolean; var _local9:Number = BitmapFilterQuality.HIGH; return (new GlowFilter(_local2, _local3, _local4, _local5, _local6, _local9, _local7, _local8)); } } }//package Clases.Game.System
Section 233
//Cabina (Clases.Game.Veicle.Cabina) package Clases.Game.Veicle { import flash.display.*; public class Cabina extends Sprite { private var status:Boolean;// = true public function Cabina():void{ var _local1:VeicleResources = new VeicleResources(); var _local2:Bitmap = _local1.createCarroceriaBitmap(); addChild(_local2); _local2.x = (_local2.x - ((_local2.width / 2) - 5)); _local2.y = (_local2.y - ((_local2.height / 2) + 30)); _local2.smoothing = true; } public function set dislpacmentStatus(_arg1:Boolean):void{ status = _arg1; } public function get dislpacmentStatus():Boolean{ return (status); } } }//package Clases.Game.Veicle
Section 234
//Eslabon (Clases.Game.Veicle.Eslabon) package Clases.Game.Veicle { import flash.display.*; public class Eslabon extends Sprite { public function Eslabon():void{ var _local1:VeicleResources = new VeicleResources(); var _local2:Bitmap = _local1.createEslabonBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Veicle
Section 235
//Grooming (Clases.Game.Veicle.Grooming) package Clases.Game.Veicle { import flash.events.*; import flash.display.*; import Box2D.Common.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import Clases.Game.System.*; import Clases.BasicScreens.*; public class Grooming extends Sprite { private const displacment_X:int = 280; private const displacment_Y:int = 200; private var carro:Bitmap; private var cabina:Cabina; private var ruedaDelantera:Sprite; private var up:Boolean;// = false private var linkjoints:Array; private var ruedaTrasera:Sprite; private var derecha:Boolean;// = false private var myHud:GUI; private var abajo:Boolean;// = false private var soundEngine:SoundEngine; private var gameStage_to_the_car:Stage; public var links:Array; private var chasis:Sprite; private var wheeljoints:Array; private var myWorld:b2World; private var izquierda:Boolean;// = false private var arriba:Boolean;// = false private var frame:b2Body; private var pause:PauseGame; private var wheels:Array; private var isPaused:Boolean;// = false public function Grooming(_arg1:b2World, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:int, _arg8:Number=0.8, _arg9:b2ShapeDef=null){ var _local16:b2Body; var _local17:b2Body; var _local18:b2Body; var _local19:Number; var _local20:Number; var _local21:Number; links = new Array(); linkjoints = new Array(); wheels = new Array(); wheeljoints = new Array(); cabina = new Cabina(); soundEngine = new SoundEngine(); pause = new PauseGame(); super(); var _local10:b2PolygonDef = new b2PolygonDef(); var _local11:b2BodyDef = new b2BodyDef(); var _local12:b2CircleDef = new b2CircleDef(); var _local13:b2RevoluteJointDef = new b2RevoluteJointDef(); myWorld = _arg1; soundEngine.playEngine(); var _local14:Number = ((Math.PI * (_arg4 + _arg6)) + (2 * _arg5)); var _local15:Number = (_arg4 + (_arg5 / 2)); _local15 = (_local15 * _arg8); _local13.enableMotor = true; _local10.density = 0.1; _local10.friction = 0.3; _local11.position.Set(((_arg5 / 2) + _arg2), _arg3); _local11.userData = cabina; addChild(_local11.userData); frame = _arg1.CreateBody(_local11); _local10.SetAsOrientedBox(1, 0.2, new b2Vec2(0, -0.8), 0); _local10.filter.groupIndex = -8; frame.CreateShape(_local10); _local10.SetAsOrientedBox(0.5, 0.5, new b2Vec2(0.75, -1.25), 0); _local10.filter.groupIndex = -8; frame.CreateShape(_local10); if (_arg9){ _arg9.restitution = 0.8; _arg9.density = 1; _arg9.filter.groupIndex = -8; frame.CreateShape(_arg9); }; frame.SetMassFromShapes(); _local12.radius = _arg4; _local12.density = 1; _local12.friction = 150; _local12.restitution = -1; _local11 = new b2BodyDef(); _local11.position.Set(_arg2, _arg3); _local11.userData = new Rueda(); ruedaDelantera = _local11.userData; wheels[0] = _arg1.CreateBody(_local11); wheels[0].CreateShape(_local12); wheels[0].SetMassFromShapes(); _local13.Initialize(wheels[0], frame, wheels[0].GetWorldCenter()); wheeljoints[0] = _arg1.CreateJoint(_local13); _local11.position.Set((_arg5 + _arg2), _arg3); _local11.userData = new Rueda(); ruedaTrasera = _local11.userData; wheels[1] = _arg1.CreateBody(_local11); wheels[1].CreateShape(_local12); wheels[1].SetMassFromShapes(); _local13.Initialize(wheels[1], frame, wheels[1].GetWorldCenter()); wheeljoints[1] = _arg1.CreateJoint(_local13); _local10.SetAsBox(((_local14 / Number(_arg7)) / 2), _arg6); _local10.friction = 200; _local10.density = 2; _local10.restitution = -0.6; _local10.filter.groupIndex = -8; _local11 = new b2BodyDef(); _local13 = new b2RevoluteJointDef(); _local13.enableLimit = true; _local13.lowerAngle; _local13.lowerAngle = (-40 / (180 / Math.PI)); _local13.upperAngle = (40 / (180 / Math.PI)); var _local22:int; while (_local22 < _arg7) { _local19 = (((_local22 / _arg7) * Math.PI) * 2); _local20 = ((_arg2 + (_arg5 / 2)) + (Math.sin(_local19) * _local15)); _local21 = ((Math.cos(_local19) * _local15) + _arg3); _local11.position.Set(_local20, _local21); _local11.angle = -(_local19); _local11.userData = new Eslabon(); addChild(_local11.userData); _local18 = _arg1.CreateBody(_local11); _local18.CreateShape(_local10); _local18.SetMassFromShapes(); links.push(_local18); if (_local22 != 0){ _local13.Initialize(_local17, _local18, new b2Vec2(((_local20 + _local17.GetPosition().x) / 2), ((_local21 + _local17.GetPosition().y) / 2))); _arg1.CreateJoint(_local13); } else { _local16 = _local18; }; _local17 = _local18; _local22++; }; _local13.Initialize(_local18, _local16, new b2Vec2(((_local16.GetPosition().x + _local18.GetPosition().x) / 2), ((_local16.GetPosition().y + _local18.GetPosition().y) / 2))); linkjoints.push(_arg1.CreateJoint(_local13)); addChild(ruedaDelantera); addChild(ruedaTrasera); } public function actualizarCar(_arg1:Object):void{ if (cabina.dislpacmentStatus){ if (up){ soundEngine.acelerate(); } else { soundEngine.desAcelerate(); }; frame.ApplyTorque((10 * (izquierda) ? -1 : (derecha) ? 1 : 0)); wheeljoints[0].SetMotorSpeed((20 * (arriba) ? -1 : (abajo) ? 0.5 : 0)); wheeljoints[0].SetMaxMotorTorque((((arriba) || (abajo))) ? 15 : 0); wheeljoints[1].SetMotorSpeed((20 * (arriba) ? -1 : (abajo) ? 0.5 : 0)); wheeljoints[1].SetMaxMotorTorque((((arriba) || (abajo))) ? 15 : 0); fixCamera(_arg1); }; } private function fixCamera(_arg1:Object):void{ _arg1.x = (displacment_X + (frame.GetWorldCenter().x * -(myWorld.m_debugDraw.m_drawScale))); _arg1.y = (displacment_Y + (frame.GetWorldCenter().y * -(myWorld.m_debugDraw.m_drawScale))); myHud.x = -(_arg1.x); myHud.y = -(_arg1.y); } private function checkKeysDownUp(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == 40){ up = false; abajo = false; }; if (_arg1.keyCode == 38){ up = false; arriba = false; }; if (_arg1.keyCode == 39){ derecha = false; }; if (_arg1.keyCode == 37){ izquierda = false; }; if (_arg1.keyCode == 87){ up = false; arriba = false; }; if (_arg1.keyCode == 83){ up = false; abajo = false; }; if (_arg1.keyCode == 68){ derecha = false; }; if (_arg1.keyCode == 65){ izquierda = false; }; } public function getInitial_X_Position():Number{ return ((displacment_X + (frame.GetWorldCenter().x * -(myWorld.m_debugDraw.m_drawScale)))); } private function checkKeysDownDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == 40){ up = true; abajo = true; }; if (_arg1.keyCode == 38){ up = true; arriba = true; }; if (_arg1.keyCode == 39){ derecha = true; }; if (_arg1.keyCode == 37){ izquierda = true; }; if (_arg1.keyCode == 87){ up = true; arriba = true; }; if (_arg1.keyCode == 83){ up = true; abajo = true; }; if (_arg1.keyCode == 68){ derecha = true; }; if (_arg1.keyCode == 65){ izquierda = true; }; if (_arg1.keyCode == 80){ if (!isPaused){ myHud.addChild(pause); isPaused = true; } else { myHud.removeChild(PauseGame(pause)); isPaused = false; }; }; } public function getInitial_y_Position():Number{ return ((displacment_Y + (frame.GetWorldCenter().y * -(myWorld.m_debugDraw.m_drawScale)))); } public function addFocus():void{ gameStage_to_the_car.stageFocusRect = false; gameStage_to_the_car.focus = this; } public function getBodyes():b2Body{ return (frame); } public function getIsPaused():Boolean{ return (isPaused); } public function stopAllSounds():void{ soundEngine.stop_sounds(); } public function addControls(_arg1:Stage, _arg2:GUI, _arg3:Object):void{ myHud = _arg2; gameStage_to_the_car = _arg1; gameStage_to_the_car.addEventListener(KeyboardEvent.KEY_DOWN, checkKeysDownDown, false, 0, true); gameStage_to_the_car.addEventListener(KeyboardEvent.KEY_UP, checkKeysDownUp, false, 0, true); } } }//package Clases.Game.Veicle
Section 236
//Rueda (Clases.Game.Veicle.Rueda) package Clases.Game.Veicle { import flash.display.*; public class Rueda extends Sprite { public function Rueda():void{ var _local1:VeicleResources = new VeicleResources(); var _local2:Bitmap = _local1.createRuedaBitmap(); addChild(_local2); _local2.x = (_local2.x - (_local2.width / 2)); _local2.y = (_local2.y - (_local2.height / 2)); _local2.smoothing = true; } } }//package Clases.Game.Veicle
Section 237
//SoundEngine (Clases.Game.Veicle.SoundEngine) package Clases.Game.Veicle { import flash.media.*; public class SoundEngine { private var myTransform:SoundTransform; private var SoundEngineClass:Class; private var smallSound:Sound; private var acelerating:Boolean;// = true private var VOLUME:Number;// = 0.8 private var soundChannel:SoundChannel; private var lastPosition:Number;// = 1 public function SoundEngine(){ soundChannel = new SoundChannel(); myTransform = new SoundTransform(); SoundEngineClass = SoundEngine_SoundEngineClass; super(); } public function stop_sounds():void{ soundChannel.stop(); } public function desAcelerate():void{ lastPosition = soundChannel.position; if (!acelerating){ soundChannel.stop(); soundChannel = smallSound.play(Math.abs((lastPosition - smallSound.length))); myTransform.volume = VOLUME; soundChannel.soundTransform = myTransform; acelerating = true; }; } public function playEngine():void{ smallSound = (new SoundEngineClass() as Sound); myTransform.volume = VOLUME; soundChannel.soundTransform = myTransform; } public function acelerate():void{ if (acelerating){ if (soundChannel.position >= (smallSound.length / 2)){ soundChannel = smallSound.play(((smallSound.length - soundChannel.position) - 1)); } else { soundChannel = smallSound.play(100); }; myTransform.volume = VOLUME; soundChannel.soundTransform = myTransform; acelerating = false; }; if (soundChannel.position >= (smallSound.length / 2)){ soundChannel.stop(); soundChannel = smallSound.play(((smallSound.length / 2) - 1)); myTransform.volume = VOLUME; soundChannel.soundTransform = myTransform; }; } } }//package Clases.Game.Veicle
Section 238
//SoundEngine_SoundEngineClass (Clases.Game.Veicle.SoundEngine_SoundEngineClass) package Clases.Game.Veicle { import mx.core.*; public class SoundEngine_SoundEngineClass extends SoundAsset { } }//package Clases.Game.Veicle
Section 239
//VeicleResources (Clases.Game.Veicle.VeicleResources) package Clases.Game.Veicle { import flash.display.*; public class VeicleResources { private const Carroceria:Class; private const Wheel:Class; private const EslabonBitmap:Class; public function VeicleResources(){ Carroceria = VeicleResources_Carroceria; Wheel = VeicleResources_Wheel; EslabonBitmap = VeicleResources_EslabonBitmap; super(); } public function createEslabonBitmap():Bitmap{ var _local1:Bitmap = (new EslabonBitmap() as Bitmap); return (_local1); } public function createCarroceriaBitmap():Bitmap{ var _local1:Bitmap = (new Carroceria() as Bitmap); return (_local1); } public function createRuedaBitmap():Bitmap{ var _local1:Bitmap = (new Wheel() as Bitmap); return (_local1); } } }//package Clases.Game.Veicle
Section 240
//VeicleResources_Carroceria (Clases.Game.Veicle.VeicleResources_Carroceria) package Clases.Game.Veicle { import mx.core.*; public class VeicleResources_Carroceria extends BitmapAsset { } }//package Clases.Game.Veicle
Section 241
//VeicleResources_EslabonBitmap (Clases.Game.Veicle.VeicleResources_EslabonBitmap) package Clases.Game.Veicle { import mx.core.*; public class VeicleResources_EslabonBitmap extends BitmapAsset { } }//package Clases.Game.Veicle
Section 242
//VeicleResources_Wheel (Clases.Game.Veicle.VeicleResources_Wheel) package Clases.Game.Veicle { import mx.core.*; public class VeicleResources_Wheel extends BitmapAsset { } }//package Clases.Game.Veicle
Section 243
//Text (Clases.Text.Text) package Clases.Text { import gs.*; import flash.text.*; import gs.easing.*; public class Text extends TextField { private var textStyle:TextFormat; public function Text(){ textStyle = new TextFormat(); super(); this.text = "Texto"; this.selectable = false; this.width = 250; this.height = 25; } public function setTextStyle(_arg1:Object):void{ textStyle.size = _arg1.size; textStyle.color = _arg1.color; textStyle.font = _arg1.customFont.fontName; textStyle.bold = _arg1.isBold; if (!_arg1.align){ textStyle.align = TextFormatAlign.CENTER; } else { textStyle.align = _arg1.align; }; this.setTextFormat(textStyle); this.width = _arg1.width; this.height = _arg1.height; this.embedFonts = true; } public function addTextEfect(_arg1:Object):void{ TweenMax.to(this, 0.01, {glowFilter:_arg1}); } } }//package Clases.Text
Section 244
//GoogleTrackingCode (Clases.TrakingCode.GoogleTrackingCode) package Clases.TrakingCode { import flash.display.*; import com.google.analytics.core.*; import com.google.analytics.*; public class GoogleTrackingCode { private var tracker:AnalyticsTracker; public function GoogleTrackingCode(_arg1:Sprite, _arg2:String){ tracker = new GATracker(_arg1, _arg2, TrackerMode.AS3, false); } public function Preloader_click():void{ tracker.trackPageview("/Preloader_Click"); } public function mainPageTraking():void{ tracker.trackPageview("/Game_Plays"); } public function More_games():void{ tracker.trackPageview("/Clicked_More_Games_Button"); } } }//package Clases.TrakingCode
Section 245
//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 isEmpty():Boolean{ return (_empty); } public function toURLString():String{ var _local1:Variables; _local1 = toVariables(); return (_local1.toString()); } public function toVariables():Variables{ var _local1:Variables; _local1 = new Variables(); _local1.URIencode = true; if (((!(isEmpty())) && (isNew()))){ _local1.utmcn = utmcn; }; if (((!(isEmpty())) && (!(isNew())))){ _local1.utmcr = utmcr; }; return (_local1); } public function isNew():Boolean{ return (_new); } public function get utmcn():String{ return ("1"); } public function get utmcr():String{ return ("1"); } } }//package com.google.analytics.campaign
Section 246
//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 247
//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 hasNoOverride(_arg1:String):Boolean{ var _local2:CampaignKey; var _local3:Variables; var _local4:String; _local2 = _config.campaignKey; if (_arg1 == ""){ return (false); }; _local3 = new Variables(_arg1); _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 getCampaignInformation(_arg1:String, _arg2:Boolean):CampaignInfo{ var _local3:CampaignInfo; var _local4:CampaignTracker; var _local5:Boolean; var _local6:Boolean; var _local7:int; var _local8:CampaignTracker; var _local9:int; _local3 = new CampaignInfo(); _local5 = false; _local6 = false; _local7 = 0; 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 isValid(_arg1:CampaignTracker):Boolean{ if (((_arg1) && (_arg1.isValid()))){ return (true); }; return (false); } public function getTrackerFromSearchString(_arg1:String):CampaignTracker{ var _local2:CampaignTracker; var _local3:CampaignTracker; var _local4:CampaignKey; var _local5:Variables; _local2 = getOrganicCampaign(); _local3 = new CampaignTracker(); _local4 = _config.campaignKey; if (_arg1 == ""){ return (_local3); }; _local5 = 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 _local2:URL; var _local3:String; var _local4:Array; var _local5:OrganicReferrer; var _local6:String; if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){ return (_local1); }; _local2 = new URL(_referrer); _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 isIgnoredReferral(_arg1:CampaignTracker):Boolean{ if (((_arg1) && ((_arg1.medium == "referral")))){ return (_config.organic.isIgnoredReferral(_arg1.source)); }; return (false); } public function getDirectCampaign():CampaignTracker{ var _local1:CampaignTracker; _local1 = 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 getReferrerCampaign():CampaignTracker{ var _local1:CampaignTracker; var _local2:URL; var _local3:String; var _local4:String; if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){ return (_local1); }; _local2 = new URL(_referrer); _local3 = _local2.hostName; _local4 = _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; _local3 = 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 248
//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, "utmcsr=", source); _addIfNotEmpty(_local1, "utmccn=", name); _addIfNotEmpty(_local1, "utmcmd=", medium); _addIfNotEmpty(_local1, "utmctr=", term); _addIfNotEmpty(_local1, "utmcct=", content); _addIfNotEmpty(_local1, "utmcid=", id); _addIfNotEmpty(_local1, "utmgclid=", clickId); 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 249
//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; _local1 = toVariables(); return (_local1.toString()); } public function get utmsr():String{ return (((_info.screenWidth + "x") + _info.screenHeight)); } public function get utmcs():String{ return (_info.languageEncoding); } 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 toVariables():Variables{ var _local1:Variables; _local1 = 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 250
//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 _OBJ:Object; private var _utma:UTMA; private var _utmb:UTMB; private var _utmc:UTMC; private var _debug:DebugConfiguration; private var _utmk:UTMK; private var _config:Configuration; private var _utmv:UTMV; private var _utmz:UTMZ; private var _volatile:Boolean; public function Buffer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Boolean=false, _arg4:Object=null){ var _local5:Boolean; var _local6:String; super(); _config = _arg1; _debug = _arg2; UTMB.defaultTimespan = _config.sessionTimeout; UTMZ.defaultTimespan = _config.conversionTimeout; if (!_arg3){ _SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath); _local5 = 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(); _local5 = 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(); _local5 = true; }; }; if (_SO.data.utmc){ delete _SO.data.utmc; _local5 = true; }; if (_SO.data.utmk){ if (!hasUTMK()){ _createUMTK(); }; _utmk.fromSharedObject(_SO.data.utmk); if (_debug.verbose){ _debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek); }; }; 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(); _local5 = 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(); _local5 = true; }; }; if (_local5){ save(); }; } else { _OBJ = new Object(); if (_arg4){ for (_local6 in _arg4) { _OBJ[_local6] = _arg4[_local6]; }; }; }; _volatile = _arg3; } public function clearCookies():void{ utma.reset(); utmb.reset(); utmc.reset(); utmz.reset(); utmv.reset(); utmk.reset(); } 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 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 isGenuine():Boolean{ if (!hasUTMK()){ return (true); }; return ((utmk.hash == generateCookiesHash())); } public function resetCurrentSession():void{ _clearUTMB(); _clearUTMC(); save(); } public function hasUTMK():Boolean{ if (_utmk){ return (true); }; return (false); } public function generateCookiesHash():Number{ var _local1 = ""; _local1 = (_local1 + utma.valueOf()); _local1 = (_local1 + utmb.valueOf()); _local1 = (_local1 + utmc.valueOf()); _local1 = (_local1 + utmz.valueOf()); _local1 = (_local1 + utmv.valueOf()); return (Utils.generateHash(_local1)); } private function _createUMTB():void{ _utmb = new UTMB(); _utmb.proxy = this; } private function _createUMTC():void{ _utmc = new UTMC(); } private function _createUMTA():void{ _utma = new UTMA(); _utma.proxy = this; } public function hasUTMV():Boolean{ if (_utmv){ return (true); }; return (false); } private function _createUMTK():void{ _utmk = new UTMK(); _utmk.proxy = this; } public function hasUTMZ():Boolean{ if (_utmz){ return (true); }; return (false); } private function _createUMTV():void{ _utmv = new UTMV(); _utmv.proxy = this; } 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); } 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; }; } 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; }; } 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 251
//DocumentInfo (com.google.analytics.core.DocumentInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; public class DocumentInfo { private var _config:Configuration; private var _utmr:String; private var _adSense:AdSenseGlobals; private var _info:Environment; private var _pageURL:String; 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; _local1 = toVariables(); return (_local1.toString()); } private function _renderPageURL(_arg1:String=""):String{ var _local2:String; var _local3:String; _local2 = _info.locationPath; _local3 = _info.locationSearch; if (((!(_arg1)) || ((_arg1 == "")))){ _arg1 = (_local2 + unescape(_local3)); }; return (_arg1); } public function get utmp():String{ return (_renderPageURL(_pageURL)); } 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 get utmhid():String{ return (String(_generateHitId())); } public function toVariables():Variables{ var _local1:Variables; _local1 = 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 252
//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 253
//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 254
//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 _isEventHit:Boolean; private var _ext10:X10; 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; _local1 = 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; _local1 = new Variables(); _local1.URIencode = true; if (_isEventHit){ _local1.utmt = utmt; }; _local1.utme = utme; return (_local1); } } }//package com.google.analytics.core
Section 255
//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 256
//ga_internal (com.google.analytics.core.ga_internal) package com.google.analytics.core { public namespace ga_internal; }//package com.google.analytics.core
Section 257
//GIFRequest (com.google.analytics.core.GIFRequest) package com.google.analytics.core { import flash.events.*; import flash.display.*; 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 258
//IdleTimer (com.google.analytics.core.IdleTimer) package com.google.analytics.core { import flash.events.*; import flash.display.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.utils.*; public class IdleTimer { private var _loop:Timer; private var _stage:Stage; private var _lastMove:int; private var _debug:DebugConfiguration; private var _session:Timer; private var _inactivity:Number; private var _buffer:Buffer; public function IdleTimer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:DisplayObject, _arg4:Buffer){ var _local5:Number; var _local6:Number; var _local7:Number; super(); _local5 = _arg1.idleLoop; _local6 = _arg1.idleTimeout; _local7 = _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; _local2 = getTimer(); if ((_local2 - _lastMove) >= _inactivity){ if (!_session.running){ _debug.info("session timer start", VisualDebugMode.geek); _session.start(); }; }; } } }//package com.google.analytics.core
Section 259
//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 getKeywordValue(_arg1:OrganicReferrer, _arg2:String):String{ var _local3:String; _local3 = _arg1.keyword; return (getKeywordValueFromPath(_local3, _arg2)); } public function isIgnoredKeyword(_arg1:String):Boolean{ if (_ignoredKeywordsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function isIgnoredReferral(_arg1:String):Boolean{ if (_ignoredReferralsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function clear():void{ clearEngines(); clearIgnoredReferrals(); clearIgnoredKeywords(); } 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 get count():int{ return (_sources.length); } public function addSource(_arg1:String, _arg2:String):void{ var _local3:OrganicReferrer; _local3 = 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 clearIgnoredKeywords():void{ _ignoredKeywords = []; _ignoredKeywordsCache = {}; } 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 260
//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 set engine(_arg1:String):void{ _engine = _arg1.toLowerCase(); } public function get keyword():String{ return (_keyword); } public function toString():String{ return (((engine + "?") + keyword)); } public function get engine():String{ return (_engine); } public function set keyword(_arg1:String):void{ _keyword = _arg1.toLowerCase(); } } }//package com.google.analytics.core
Section 261
//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 request:URLRequest; public var end:int; public function RequestObject(_arg1:URLRequest){ start = getTimer(); this.request = _arg1; } public function toString():String{ var _local1:Array; _local1 = []; _local1.push((("duration: " + duration) + "ms")); _local1.push(("url: " + request.url)); return ((("{ " + _local1.join(", ")) + " }")); } public function get duration():int{ if (!hasCompleted()){ return (0); }; return ((end - start)); } public function hasCompleted():Boolean{ return ((end > 0)); } public function complete():void{ end = getTimer(); } } }//package com.google.analytics.core
Section 262
//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 263
//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 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 setVar(_arg1:String):void{ enqueue("setVar", _arg1); } public function clearIgnoredOrganic():void{ enqueue("clearIgnoredOrganic"); } 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):Object{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment.")); }; return (null); } 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 264
//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 265
//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 _local3:Array; var _local4:String; var _local5:int; var _local6:int; var _local7:int; if (_arg1 == ""){ return (""); }; _local3 = [" ", "\n", "\r", "\t"]; _local4 = _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 _local2:int; var _local3:int; var _local4:int; var _local5:int; _local2 = 1; _local3 = 0; 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; _local2 = /^UA-[0-9]*-[0-9]*$/; return (_local2.test(_arg1)); } } }//package com.google.analytics.core
Section 266
//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 267
//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 268
//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 269
//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 set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function get domainHash():Number{ return (_domainHash); } } }//package com.google.analytics.data
Section 270
//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; private var _timespan:Number; protected var fields:Array; 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 _local1:int; var _local2:String; var _local3:int; _local1 = 0; _local3 = 0; 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); } protected function update():void{ resetTimestamp(); if (proxy){ proxy.update(name, toSharedObject()); }; } public function fromSharedObject(_arg1:Object):void{ var _local2:String; var _local3:int; var _local4:int; _local3 = fields.length; _local4 = 0; 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; var _local2:Number; _local1 = new Date(); _local2 = (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 reset():void{ var _local1:String; var _local2:int; _local2 = 0; 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 valueOf():String{ var _local1:Array; var _local2:String; var _local3:*; var _local4:int; _local1 = []; _local4 = 0; while (_local4 < fields.length) { _local2 = fields[_local4]; _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); }; }; }; }; _local4++; }; return (("" + _local1.join("."))); } public function resetTimestamp(_arg1:Number=NaN):void{ if (!isNaN(_arg1)){ _timespan = _arg1; }; _creation = null; _expiration = null; _timestamp(_timespan); } public function get expiration():Date{ if (_expiration){ return (_expiration); }; return (new Date((new Date().valueOf() + 1000))); } public function toURLString():String{ return (((inURL + "=") + valueOf())); } public function toSharedObject():Object{ var _local1:Object; var _local2:String; var _local3:*; var _local4:int; _local1 = {}; _local4 = 0; 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 _local2:Array; var _local3:String; var _local4:*; var _local5:int; var _local6:int; var _local7:String; _local2 = []; _local5 = fields.length; _local6 = 0; 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)); }; }; }; }; _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 271
//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 272
//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; } override public function toURLString():String{ return (((inURL + "=") + encodeURI(valueOf()))); } 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 273
//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 274
//X10 (com.google.analytics.data.X10) package com.google.analytics.data { public class X10 { private var _delimEnd:String;// = ")" 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 _projectData:Object; private var _hasData:int; private var _escapeCharMap:Object; private var _minimum:int; private var _value:String;// = "v" public function X10(){ _key = "k"; _value = "v"; _set = [_key, _value]; _delimBegin = "("; _delimEnd = ")"; _delimSet = "*"; _delimNumValue = "!"; _escapeChar = "'"; super(); _projectData = {}; _escapeCharMap = {}; _escapeCharMap[_escapeChar] = "'0"; _escapeCharMap[_delimEnd] = "'1"; _escapeCharMap[_delimSet] = "'2"; _escapeCharMap[_delimNumValue] = "'3"; _minimum = 1; } 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 hasData():Boolean{ return ((_hasData > 0)); } 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); } 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 _local2:Array; var _local3:String; var _local4:int; _local2 = []; _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 clearValue(_arg1:Number):void{ _clearInternal(_arg1, _value); } public function renderMergedUrlString(_arg1:X10=null):String{ var _local2:Array; var _local3:String; if (!_arg1){ return (renderUrlString()); }; _local2 = [_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 _local1:Array; var _local2:String; _local1 = []; 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 getValue(_arg1:Number, _arg2:Number){ var _local3:*; _local3 = _getInternal(_arg1, _value, _arg2); if (_local3 == null){ return (null); }; return (Number(_local3)); } private function _renderProject(_arg1:Object):String{ var _local2:String; var _local3:Boolean; var _local4:int; var _local5:Array; var _local6:int; _local2 = ""; _local3 = false; _local6 = _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); } private function _escapeExtensibleValue(_arg1:String):String{ var _local2:String; var _local3:int; var _local4:String; var _local5:String; _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 275
//_Style (com.google.analytics.debug._Style) package com.google.analytics.debug { import flash.text.*; import flash.net.*; public class _Style { public var borderColor:uint; public var backgroundColor:uint; private var _sheet:StyleSheet; public var roundedCorner:uint; public var alertColor:uint; public var infoColor:uint; public var successColor:uint; private var _loader:URLLoader; public var failureColor:uint; private var _defaultSheet:String; public var warningColor:uint; 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 276
//Alert (com.google.analytics.debug.Alert) package com.google.analytics.debug { import flash.events.*; public class Alert extends Label { public var actionOnNextLine:Boolean;// = true public var autoClose: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){ var _local8:int; autoClose = true; actionOnNextLine = 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 = []; _local8 = 0; while (_local8 < _arg2.length) { _arg2[_local8].container = this; _actions.push(_arg2[_local8]); _local8++; }; } protected function getAction(_arg1:String):AlertAction{ var _local2:int; _local2 = 0; while (_local2 < _actions.length) { if (_arg1 == _actions[_local2].activator){ return (_actions[_local2]); }; _local2++; }; return (null); } override protected function layout():void{ super.layout(); _defineActions(); } protected function spaces(_arg1:int):String{ var _local2:String; var _local3:String; var _local4:int; _local2 = ""; _local3 = " "; _local4 = 0; 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(); }; } protected function isValidAction(_arg1:String):Boolean{ var _local2:int; _local2 = 0; while (_local2 < _actions.length) { if (_arg1 == _actions[_local2].activator){ return (true); }; _local2++; }; return (false); } private function _defineActions():void{ var _local1:String; var _local2:Array; var _local3:AlertAction; var _local4:int; _local1 = ""; if (actionOnNextLine){ _local1 = (_local1 + "\n"); } else { _local1 = (_local1 + " |"); }; _local1 = (_local1 + " "); _local2 = []; _local4 = 0; 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"); } public function close():void{ if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 277
//AlertAction (com.google.analytics.debug.AlertAction) package com.google.analytics.debug { public class AlertAction { public var container:Alert; private var _callback; public var name:String; public var activator: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 278
//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 279
//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; _local7 = 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 280
//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 = 0; 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); //unresolved jump }; return (super.forcedWidth); } 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 281
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration) package com.google.analytics.debug { import flash.ui.*; import com.google.analytics.core.*; import flash.net.*; import flash.utils.*; 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 282
//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; var _local5:Boolean; var _local6:Boolean; _local4 = Align.bottomLeft; _local5 = true; _local6 = false; 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 283
//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 284
//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 createWarning(_arg1:String):void; function addToStage(_arg1:DisplayObject):void; function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):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 createAlert(_arg1:String):void; function destroy():void; function bringToFront(_arg1:DisplayObject):void; function isAvailable():Boolean; } }//package com.google.analytics.debug
Section 285
//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 onComplete(_arg1:TimerEvent):void{ close(); } override public function onLink(_arg1:TextEvent):void{ switch (_arg1.text){ case "hide": close(); break; }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 286
//Label (com.google.analytics.debug.Label) package com.google.analytics.debug { import flash.events.*; import flash.display.*; 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 287
//Layout (com.google.analytics.debug.Layout) package com.google.analytics.debug { import flash.events.*; import flash.display.*; 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 288
//Margin (com.google.analytics.debug.Margin) package com.google.analytics.debug { public class Margin { public var bottom:int; public var top:int; public var right:int; public var left: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 289
//Panel (com.google.analytics.debug.Panel) package com.google.analytics.debug { import flash.events.*; import flash.display.*; 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 290
//Style (com.google.analytics.debug.Style) package com.google.analytics.debug { public const Style:_Style = new _Style(); }//package com.google.analytics.debug
Section 291
//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; var _local5:Boolean; var _local6:Boolean; _local4 = Align.bottomLeft; _local5 = true; _local6 = false; 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 292
//UISprite (com.google.analytics.debug.UISprite) package com.google.analytics.debug { import flash.events.*; import flash.display.*; public class UISprite extends Sprite { private var _forcedHeight:uint; protected var listenResize:Boolean; public var alignement:Align; private var _forcedWidth:uint; public var margin:Margin; protected var alignTarget:DisplayObject; 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); } protected function dispose():void{ var _local1:DisplayObject; var _local2:int; _local2 = 0; while (_local2 < numChildren) { _local1 = getChildAt(_local2); if (_local1){ removeChild(_local1); }; _local2++; }; } protected function layout():void{ } public function get forcedHeight():uint{ if (_forcedHeight){ return (_forcedHeight); }; return (height); } 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; } public function get forcedWidth():uint{ if (_forcedWidth){ return (_forcedWidth); }; return (width); } protected function onResize(_arg1:Event):void{ resize(); } 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); }; } private function _onAddedToStage(_arg1:Event):void{ layout(); resize(); } public function set forcedHeight(_arg1:uint):void{ _forcedHeight = _arg1; } public function set forcedWidth(_arg1:uint):void{ _forcedWidth = _arg1; } } }//package com.google.analytics.debug
Section 293
//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 onComplete(_arg1:TimerEvent):void{ close(); } override public function onLink(_arg1:TextEvent):void{ switch (_arg1.text){ case "hide": close(); break; }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 294
//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 295
//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 296
//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){ _gaGlobalVerified = false; 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 get dh():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.dh")); } public function get gaGlobal():Object{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal")); } public function set hid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.hid", _arg1); } public function get sid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.sid")); } private function _verify():void{ if (!_gaGlobalVerified){ executeBlock(gaGlobal_js); _gaGlobalVerified = true; }; } public function get vid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.vid")); } public function set sid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.sid", _arg1); } } }//package com.google.analytics.external
Section 297
//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 _protocol:String; private var _host:String; private var _location:String; private var _pathname:String; private var _title:String; private var _characterSet:String; private var _search:String; private var _language: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 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 cacheProperties():void{ var _local1:Object; if (!isAvailable()){ return; }; _local1 = 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 colorDepth():String{ if (_colorDepth){ return (_colorDepth); }; if (!isAvailable()){ return (null); }; _colorDepth = getProperty("window.screen.colorDepth"); return (_colorDepth); } public function get title():String{ if (_title){ return (_title); }; if (!isAvailable()){ return (null); }; _title = getProperty("document.title"); return (_title); } 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{ var _local1:String; if (_characterSet){ return (_characterSet); }; if (!isAvailable()){ return (null); }; _local1 = getProperty("document.characterSet"); if (_local1 == null){ _local1 = getProperty("document.charset"); }; _characterSet = _local1; return (_characterSet); } public function get language():String{ var _local1:String; if (_language){ return (_language); }; if (!isAvailable()){ return (null); }; _local1 = getProperty("navigator.language"); if (_local1 == null){ _local1 = getProperty("navigator.browserLanguage"); }; _language = _local1; return (_language); } } }//package com.google.analytics.external
Section 298
//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){ _notAvailableWarning = true; super(); _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; _local1 = 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 299
//Environment (com.google.analytics.utils.Environment) package com.google.analytics.utils { import com.google.analytics.core.*; 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 playerType():String{ return (Capabilities.playerType); } public function get locationSearch():String{ var _local1:String; _local1 = _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; _local1 = Version.fromString(Capabilities.version.split(" ")[1], ","); return (_local1); } public function get screenWidth():Number{ return (Capabilities.screenResolutionX); } 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; var _local2:String; switch (Capabilities.screenColor){ case "bw": _local1 = "1"; break; case "gray": _local1 = "2"; break; case "color": default: _local1 = "24"; }; _local2 = _dom.colorDepth; if (_local2){ _local1 = _local2; }; return (_local1); } private function _findProtocol():void{ var _local1:Protocols; var _local2:String; var _local3:String; var _local4:String; var _local5:String; _local1 = 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; }; }; _local2 = _dom.protocol; _local3 = (_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; _local1 = 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; } public function get userAgent():UserAgent{ if (!_userAgent){ _userAgent = new UserAgent(this, appName, appVersion.toString(4)); }; return (_userAgent); } ga_internal function set url(_arg1:String):void{ _url = _arg1; } public function get referrer():String{ var _local1:String; _local1 = _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; var _local2:String; _local1 = _dom.language; _local2 = 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; _local1 = _dom.pathname; if (_local1){ return (_local1); }; return (""); } public function get documentTitle():String{ var _local1:String; _local1 = _dom.title; if (_local1){ return (_local1); }; return (""); } public function get appVersion():Version{ return (_appVersion); } } }//package com.google.analytics.utils
Section 300
//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 301
//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 302
//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 303
//UserAgent (com.google.analytics.utils.UserAgent) package com.google.analytics.utils { import com.google.analytics.core.*; import flash.system.*; public class UserAgent { private var _version:Version; private var _localInfo:Environment; private var _applicationProduct:String; 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 set applicationProduct(_arg1:String):void{ _applicationProduct = _arg1; } public function get applicationVersion():String{ return (_version.toString(2)); } public function get applicationProductToken():String{ var _local1:String; _local1 = applicationProduct; if (applicationVersion != ""){ _local1 = (_local1 + ("/" + applicationVersion)); }; return (_local1); } public function get vendorProductToken():String{ var _local1:String; _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:String; _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 = []; _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 applicationProduct():String{ return (_applicationProduct); } } }//package com.google.analytics.utils
Section 304
//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.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 305
//Version (com.google.analytics.utils.Version) package com.google.analytics.utils { public class Version { private var _maxBuild:uint;// = 0xFF private var _maxMinor:uint;// = 15 private var _maxMajor:uint;// = 15 private var _revision:uint; private var _separator:String;// = "." private var _maxRevision:uint;// = 0xFFFF private var _build:uint; private var _minor:uint; private var _major:uint; public function Version(_arg1:uint=0, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0){ var _local5:Version; _maxMajor = 15; _maxMinor = 15; _maxBuild = 0xFF; _maxRevision = 0xFFFF; _separator = "."; 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 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); } public function valueOf():uint{ return (((((major << 28) | (minor << 24)) | (build << 16)) | revision)); } public function get major():uint{ return (_major); } public function set revision(_arg1:uint):void{ _revision = Math.min(_arg1, _maxRevision); } private function getFields():int{ var _local1:int; _local1 = 4; if (revision == 0){ _local1--; }; if ((((_local1 == 3)) && ((build == 0)))){ _local1--; }; if ((((_local1 == 2)) && ((minor == 0)))){ _local1--; }; return (_local1); } 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 _local3:Version; var _local4:Array; _local3 = 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; _local2 = 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 306
//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); } private function _linkTrackingObject(_arg1:String):void{ _proxy.call(_linkTrackingObject_js, _jsContainer, _arg1); } 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 setClientInfo(_arg1:Boolean):void{ _debug.info((("setClientInfo( " + _arg1) + " )")); _call("_setClientInfo", _arg1); } public function trackTrans():void{ _debug.info("trackTrans()"); _call("_trackTrans"); } 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); } public function getClientInfo():Boolean{ _debug.info("getClientInfo()"); return (_call("_getClientInfo")); } 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")); } 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):Object{ _debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " )")); _call("_addTrans", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); return (null); } 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 307
//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 allowLocalTracking:Boolean;// = true public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif" public var hasSiteOverlay:Boolean;// = false 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; private var _trackingLimitPerSession:int;// = 500 private var _domain:Domain; public var allowAnchor:Boolean;// = false 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){ _version = "4.3as"; _sampleRate = 1; _trackingLimitPerSession = 500; _organic = new Organic(); googleCsePath = "cse"; googleSearchParam = "q"; google = "google"; _cookieName = "analytics"; allowDomainHash = true; allowAnchor = false; allowLinker = false; hasSiteOverlay = false; tokenRate = 0.2; conversionTimeout = Timespan.sixmonths; sessionTimeout = Timespan.thirtyminutes; idleLoop = 30; idleTimeout = 60; maxOutboundLinkExamined = 1000; tokenCliff = 10; bucketCapacity = 10; detectClientInfo = true; detectFlash = true; detectTitle = true; campaignKey = new CampaignKey(); campaignTracking = true; isTrackOutboundSubdomains = false; serverMode = ServerOperationMode.remote; localGIFpath = "/__utm.gif"; remoteGIFpath = "http://www.google-analytics.com/__utm.gif"; secureRemoteGIFpath = "https://ssl.google-analytics.com/__utm.gif"; cookiePath = "/"; transactionFieldDelim = "|"; domainName = ""; allowLocalTracking = true; super(); _debug = _arg1; _domain = new Domain(DomainNameMode.auto, "", _debug); serverMode = ServerOperationMode.remote; _initOrganicSources(); } public function get organic():Organic{ return (_organic); } 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 get cookieName():String{ return (_cookieName); } 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 308
//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 getServiceMode():ServerOperationMode; function resetSession():void; function setLocalServerMode():void; function setCampContentKey(_arg1:String):void; function addOrganic(_arg1:String, _arg2:String):void; function setDetectFlash(_arg1:Boolean):void; function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object; function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean; function setCampTermKey(_arg1:String):void; function setCampNameKey(_arg1:String):void; function addIgnoredOrganic(_arg1:String):void; function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void; function setAllowLinker(_arg1:Boolean):void; function getClientInfo():Boolean; 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 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 clearIgnoredRef():void; function setDomainName(_arg1:String):void; function setDetectTitle(_arg1:Boolean):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 setLocalRemoteServerMode():void; function cookiePathCopy(_arg1:String):void; function getDetectTitle():Boolean; } }//package com.google.analytics.v4
Section 309
//Tracker (com.google.analytics.v4.Tracker) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; import com.google.analytics.data.*; 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 _account:String; public function Tracker(_arg1:String, _arg2:Configuration, _arg3:DebugConfiguration, _arg4:Environment, _arg5:Buffer, _arg6:GIFRequest, _arg7:AdSenseGlobals){ var _local8:String; super(); _account = _arg1; _config = _arg2; _debug = _arg3; _info = _arg4; _buffer = _arg5; _gifRequest = _arg6; _adSense = _arg7; if (!Utils.validateAccount(_arg1)){ _local8 = (("Account \"" + _arg1) + "\" is not valid."); _debug.warning(_local8); throw (new Error(_local8)); }; _initData(); } 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 trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ 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) && (!((_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{ _debug.warning("trackTrans() not implemented"); } 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( " + [_arg1, _arg2].join(", ")) + " ) not implemented")); } 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); }; }; _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; _initData(); 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{ _debug.warning((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " ) not implemented")); } 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 = _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):Object{ _debug.warning((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " ) not implemented")); return (null); } 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){ }; 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{ _debug.warning((("link( " + [_arg1, _arg2].join(", ")) + " ) not implemented")); } public function setRemoteServerMode():void{ _config.serverMode = ServerOperationMode.remote; _debug.info("setRemoteServerMode()"); } } }//package com.google.analytics.v4
Section 310
//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 config(_arg1:Configuration):void; function isReady():Boolean; function get mode():String; function set debug(_arg1:DebugConfiguration):void; function get account():String; function set mode(_arg1:String):void; function get config():Configuration; function get debug():DebugConfiguration; function set account(_arg1:String):void; function get visualDebug():Boolean; function set visualDebug(_arg1:Boolean):void; } }//package com.google.analytics
Section 311
//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 312
//GATracker (com.google.analytics.GATracker) package com.google.analytics { import flash.events.*; import flash.display.*; import com.google.analytics.core.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; 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 _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){ _ready = false; super(); _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{ return (_tracker.trackEvent(_arg1, _arg2, _arg3, _arg4)); } public function setCookieTimeout(_arg1:int):void{ _tracker.setCookieTimeout(_arg1); } public function trackTrans():void{ _tracker.trackTrans(); } public function trackPageview(_arg1:String=""):void{ _tracker.trackPageview(_arg1); } public function getClientInfo():Boolean{ return (_tracker.getClientInfo()); } 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 addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } 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 setDomainName(_arg1:String):void{ _tracker.setDomainName(_arg1); } public function createEventTracker(_arg1:String):EventTracker{ return (_tracker.createEventTracker(_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):Object{ return (_tracker.addTrans(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8)); } public function setCampSourceKey(_arg1:String):void{ _tracker.setCampSourceKey(_arg1); } 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 setCampNOKey(_arg1:String):void{ _tracker.setCampNOKey(_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; var _local2:TrackerCache; _jsproxy = new JavascriptProxy(debug); if (visualDebug){ debug.layout = new Layout(debug, _display); debug.active = visualDebug; }; _local2 = (_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); _env.url = _display.stage.loaderInfo.url; return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense)); } public function setDetectTitle(_arg1:Boolean):void{ _tracker.setDetectTitle(_arg1); } public function getServiceMode():ServerOperationMode{ return (_tracker.getServiceMode()); } 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 set visualDebug(_arg1:Boolean):void{ _visualDebug = _arg1; } public function setCampMediumKey(_arg1:String):void{ _tracker.setCampMediumKey(_arg1); } public function setSessionTimeout(_arg1:int):void{ _tracker.setSessionTimeout(_arg1); } public function getDetectFlash():Boolean{ return (_tracker.getDetectFlash()); } public function get visualDebug():Boolean{ return (_visualDebug); } public function getAccount():String{ return (_tracker.getAccount()); } public function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public function setRemoteServerMode():void{ _tracker.setRemoteServerMode(); } } var _local1:* = ServerOperationMode; return (_local1); }//package com.google.analytics
Section 313
//Back (gs.easing.Back) package gs.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } } }//package gs.easing
Section 314
//Expo (gs.easing.Expo) package gs.easing { public class Expo { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : ((_arg3 * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2)); }; --_arg1; return ((((_arg3 / 2) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } } }//package gs.easing
Section 315
//Quart (gs.easing.Quart) package gs.easing { public class Quart { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } } }//package gs.easing
Section 316
//TweenEvent (gs.events.TweenEvent) package gs.events { import flash.events.*; public class TweenEvent extends Event { public var info:Object; public static const UPDATE:String = "update"; public static const START:String = "start"; public static const version:Number = 0.9; public static const COMPLETE:String = "complete"; public function TweenEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.info = _arg2; } override public function clone():Event{ return (new TweenEvent(this.type, this.info, this.bubbles, this.cancelable)); } } }//package gs.events
Section 317
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin) package gs.plugins { import flash.display.*; import gs.*; public class AutoAlphaPlugin extends TweenPlugin { protected var _tweenVisible:Boolean; protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function AutoAlphaPlugin(){ this.propName = "autoAlpha"; this.overwriteProps = ["alpha", "visible"]; this.onComplete = onCompleteTween; } override public function killProps(_arg1:Object):void{ super.killProps(_arg1); _tweenVisible = !(Boolean(("visible" in _arg1))); } public function onCompleteTween():void{ if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(!((_arg2 == 0))); _tweenVisible = true; addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (((!((_target.visible == true))) && (_tweenVisible))){ _target.visible = true; }; } } }//package gs.plugins
Section 318
//BevelFilterPlugin (gs.plugins.BevelFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BevelFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BevelFilterPlugin(){ this.propName = "bevelFilter"; this.overwriteProps = ["bevelFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BevelFilter; initFilter(_arg2, new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.plugins
Section 319
//BezierPlugin (gs.plugins.BezierPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class BezierPlugin extends TweenPlugin { protected var _future:Object; protected var _orient:Boolean; protected var _orientData:Array; protected var _target:Object; protected var _beziers:Object; protected static const _RAD2DEG:Number = 57.2957795130823; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function BezierPlugin(){ _future = {}; super(); this.propName = "bezier"; this.overwriteProps = []; } override public function killProps(_arg1:Object):void{ var _local2:String; for (_local2 in _beziers) { if ((_local2 in _arg1)){ delete _beziers[_local2]; }; }; super.killProps(_arg1); } protected function init(_arg1:TweenLite, _arg2:Array, _arg3:Boolean):void{ var _local5:int; var _local6:String; _target = _arg1.target; if (_arg1.exposedVars.orientToBezier == true){ _orientData = [["x", "y", "rotation", 0]]; _orient = true; } else { if ((_arg1.exposedVars.orientToBezier is Array)){ _orientData = _arg1.exposedVars.orientToBezier; _orient = true; }; }; var _local4:Object = {}; _local5 = 0; while (_local5 < _arg2.length) { for (_local6 in _arg2[_local5]) { if (_local4[_local6] == undefined){ _local4[_local6] = [_arg1.target[_local6]]; }; if (typeof(_arg2[_local5][_local6]) == "number"){ _local4[_local6].push(_arg2[_local5][_local6]); } else { _local4[_local6].push((_arg1.target[_local6] + Number(_arg2[_local5][_local6]))); }; }; _local5++; }; for (_local6 in _local4) { this.overwriteProps[this.overwriteProps.length] = _local6; if (_arg1.exposedVars[_local6] != undefined){ if (typeof(_arg1.exposedVars[_local6]) == "number"){ _local4[_local6].push(_arg1.exposedVars[_local6]); } else { _local4[_local6].push((_arg1.target[_local6] + Number(_arg1.exposedVars[_local6]))); }; delete _arg1.exposedVars[_local6]; _local5 = (_arg1.tweens.length - 1); while (_local5 > -1) { if (_arg1.tweens[_local5].name == _local6){ _arg1.tweens.splice(_local5, 1); }; _local5--; }; }; }; _beziers = parseBeziers(_local4, _arg3); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), false); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:String; var _local4:Object; var _local5:Number; var _local6:uint; var _local7:Number; var _local8:int; var _local9:Object; var _local10:Boolean; var _local11:Number; var _local12:Number; var _local13:Array; var _local14:Number; if (_arg1 == 1){ for (_local3 in _beziers) { _local2 = (_beziers[_local3].length - 1); _target[_local3] = _beziers[_local3][_local2][2]; }; } else { for (_local3 in _beziers) { _local6 = _beziers[_local3].length; if (_arg1 < 0){ _local2 = 0; } else { if (_arg1 >= 1){ _local2 = (_local6 - 1); } else { _local2 = int((_local6 * _arg1)); }; }; _local5 = ((_arg1 - (_local2 * (1 / _local6))) * _local6); _local4 = _beziers[_local3][_local2]; if (this.round){ _local7 = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); _local8 = ((_local7)<0) ? -1 : 1; _target[_local3] = ((((_local7 % 1) * _local8))>0.5) ? (int(_local7) + _local8) : int(_local7); } else { _target[_local3] = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); }; }; }; if (_orient){ _local9 = _target; _local10 = this.round; _target = _future; this.round = false; _orient = false; this.changeFactor = (_arg1 + 0.01); _target = _local9; this.round = _local10; _orient = true; _local2 = 0; while (_local2 < _orientData.length) { _local13 = _orientData[_local2]; _local14 = ((_local13[3]) || (0)); _local11 = (_future[_local13[0]] - _target[_local13[0]]); _local12 = (_future[_local13[1]] - _target[_local13[1]]); _target[_local13[2]] = ((Math.atan2(_local12, _local11) * _RAD2DEG) + _local14); _local2++; }; }; } public static function parseBeziers(_arg1:Object, _arg2:Boolean=false):Object{ var _local3:int; var _local4:Array; var _local5:Object; var _local6:String; var _local7:Object = {}; if (_arg2){ for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 2){ _local5[_local5.length] = [_local4[0], (_local4[1] - ((_local4[2] - _local4[0]) / 4)), _local4[1]]; _local3 = 1; while (_local3 < (_local4.length - 1)) { _local5[_local5.length] = [_local4[_local3], (_local4[_local3] + (_local4[_local3] - _local5[(_local3 - 1)][1])), _local4[(_local3 + 1)]]; _local3++; }; } else { _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; } else { for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 3){ _local5[_local5.length] = [_local4[0], _local4[1], ((_local4[1] + _local4[2]) / 2)]; _local3 = 2; while (_local3 < (_local4.length - 2)) { _local5[_local5.length] = [_local5[(_local3 - 2)][2], _local4[_local3], ((_local4[_local3] + _local4[(_local3 + 1)]) / 2)]; _local3++; }; _local5[_local5.length] = [_local5[(_local5.length - 1)][2], _local4[(_local4.length - 2)], _local4[(_local4.length - 1)]]; } else { if (_local4.length == 3){ _local5[_local5.length] = [_local4[0], _local4[1], _local4[2]]; } else { if (_local4.length == 2){ _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; }; }; }; return (_local7); } } }//package gs.plugins
Section 320
//BezierThroughPlugin (gs.plugins.BezierThroughPlugin) package gs.plugins { import gs.*; public class BezierThroughPlugin extends BezierPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BezierThroughPlugin(){ this.propName = "bezierThrough"; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), true); return (true); } } }//package gs.plugins
Section 321
//BlurFilterPlugin (gs.plugins.BlurFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BlurFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BlurFilterPlugin(){ this.propName = "blurFilter"; this.overwriteProps = ["blurFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BlurFilter; initFilter(_arg2, new BlurFilter(0, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.plugins
Section 322
//ColorMatrixFilterPlugin (gs.plugins.ColorMatrixFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class ColorMatrixFilterPlugin extends FilterPlugin { protected var _matrix:Array; protected var _matrixTween:EndArrayPlugin; public static const API:Number = 1; public static const VERSION:Number = 1.1; protected static var _lumG:Number = 0.71516; protected static var _lumR:Number = 0.212671; protected static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; protected static var _lumB:Number = 0.072169; public function ColorMatrixFilterPlugin(){ this.propName = "colorMatrixFilter"; this.overwriteProps = ["colorMatrixFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = ColorMatrixFilter; var _local4:Object = _arg2; initFilter({remove:_arg2.remove, index:_arg2.index, addFilter:_arg2.addFilter}, new ColorMatrixFilter(_idMatrix.slice())); _matrix = ColorMatrixFilter(_filter).matrix; var _local5:Array = []; if (((!((_local4.matrix == null))) && ((_local4.matrix is Array)))){ _local5 = _local4.matrix; } else { if (_local4.relative == true){ _local5 = _matrix.slice(); } else { _local5 = _idMatrix.slice(); }; _local5 = setBrightness(_local5, _local4.brightness); _local5 = setContrast(_local5, _local4.contrast); _local5 = setHue(_local5, _local4.hue); _local5 = setSaturation(_local5, _local4.saturation); _local5 = setThreshold(_local5, _local4.threshold); if (!isNaN(_local4.colorize)){ _local5 = colorize(_local5, _local4.colorize, _local4.amount); }; }; _matrixTween = new EndArrayPlugin(); _matrixTween.init(_matrix, _local5); return (true); } override public function set changeFactor(_arg1:Number):void{ _matrixTween.changeFactor = _arg1; ColorMatrixFilter(_filter).matrix = _matrix; super.changeFactor = _arg1; } public static function setSaturation(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Number = (1 - _arg2); var _local4:Number = (_local3 * _lumR); var _local5:Number = (_local3 * _lumG); var _local6:Number = (_local3 * _lumB); var _local7:Array = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local7, _arg1)); } public static function setHue(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 * (Math.PI / 180)); var _local3:Number = Math.cos(_arg2); var _local4:Number = Math.sin(_arg2); var _local5:Array = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; return (applyMatrix(_local5, _arg1)); } public static function setThreshold(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Array = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function applyMatrix(_arg1:Array, _arg2:Array):Array{ var _local6:int; var _local7:int; if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (_arg2); }; var _local3:Array = []; var _local4:int; var _local5:int; _local6 = 0; while (_local6 < 4) { _local7 = 0; while (_local7 < 5) { if (_local7 == 4){ _local5 = _arg1[(_local4 + 4)]; } else { _local5 = 0; }; _local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5); _local7++; }; _local4 = (_local4 + 5); _local6++; }; return (_local3); } public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{ if (isNaN(_arg2)){ return (_arg1); }; if (isNaN(_arg3)){ _arg3 = 1; }; var _local4:Number = (((_arg2 >> 16) & 0xFF) / 0xFF); var _local5:Number = (((_arg2 >> 8) & 0xFF) / 0xFF); var _local6:Number = ((_arg2 & 0xFF) / 0xFF); var _local7:Number = (1 - _arg3); var _local8:Array = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local8, _arg1)); } public static function setBrightness(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = ((_arg2 * 100) - 100); return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1)); } public static function setContrast(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 + 0.01); var _local3:Array = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } } }//package gs.plugins
Section 323
//DropShadowFilterPlugin (gs.plugins.DropShadowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class DropShadowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function DropShadowFilterPlugin(){ this.propName = "dropShadowFilter"; this.overwriteProps = ["dropShadowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = DropShadowFilter; initFilter(_arg2, new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout, _arg2.hideObject)); return (true); } } }//package gs.plugins
Section 324
//EndArrayPlugin (gs.plugins.EndArrayPlugin) package gs.plugins { import flash.display.*; import gs.*; import gs.utils.tween.*; public class EndArrayPlugin extends TweenPlugin { protected var _a:Array; protected var _info:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function EndArrayPlugin(){ _info = []; super(); this.propName = "endArray"; this.overwriteProps = ["endArray"]; } public function init(_arg1:Array, _arg2:Array):void{ _a = _arg1; var _local3:int = (_arg2.length - 1); while (_local3 > -1) { if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){ _info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3])); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (false); }; init((_arg1 as Array), _arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:ArrayTweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _a[_local3.index] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } } }//package gs.plugins
Section 325
//FilterPlugin (gs.plugins.FilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; import gs.utils.tween.*; public class FilterPlugin extends TweenPlugin { protected var _remove:Boolean; protected var _target:Object; protected var _index:int; protected var _filter:BitmapFilter; protected var _type:Class; public static const VERSION:Number = 1.03; public static const API:Number = 1; public function onCompleteTween():void{ var _local1:int; var _local2:Array; if (_remove){ _local2 = _target.filters; if (!(_local2[_index] is _type)){ _local1 = (_local2.length - 1); while (_local1 > -1) { if ((_local2[_local1] is _type)){ _local2.splice(_local1, 1); break; }; _local1--; }; } else { _local2.splice(_index, 1); }; _target.filters = _local2; }; } protected function initFilter(_arg1:Object, _arg2:BitmapFilter):void{ var _local4:String; var _local5:int; var _local6:HexColorsPlugin; var _local3:Array = _target.filters; _index = -1; if (_arg1.index != null){ _index = _arg1.index; } else { _local5 = (_local3.length - 1); while (_local5 > -1) { if ((_local3[_local5] is _type)){ _index = _local5; break; }; _local5--; }; }; if ((((((_index == -1)) || ((_local3[_index] == null)))) || ((_arg1.addFilter == true)))){ _index = ((_arg1.index)!=null) ? _arg1.index : _local3.length; _local3[_index] = _arg2; _target.filters = _local3; }; _filter = _local3[_index]; _remove = Boolean((_arg1.remove == true)); if (_remove){ this.onComplete = onCompleteTween; }; var _local7:Object = ((_arg1.isTV)==true) ? _arg1.exposedVars : _arg1; for (_local4 in _local7) { if (((((((((!((_local4 in _filter))) || ((_filter[_local4] == _local7[_local4])))) || ((_local4 == "remove")))) || ((_local4 == "index")))) || ((_local4 == "addFilter")))){ } else { if ((((((_local4 == "color")) || ((_local4 == "highlightColor")))) || ((_local4 == "shadowColor")))){ _local6 = new HexColorsPlugin(); _local6.initColor(_filter, _local4, _filter[_local4], _local7[_local4]); _tweens[_tweens.length] = new TweenInfo(_local6, "changeFactor", 0, 1, _local4, false); } else { if ((((((((_local4 == "quality")) || ((_local4 == "inner")))) || ((_local4 == "knockout")))) || ((_local4 == "hideObject")))){ _filter[_local4] = _local7[_local4]; } else { addTween(_filter, _local4, _filter[_local4], _local7[_local4], _local4); }; }; }; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Array = _target.filters; _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; if (!(_local4[_index] is _type)){ _index = (_local4.length - 1); _local2 = (_local4.length - 1); while (_local2 > -1) { if ((_local4[_local2] is _type)){ _index = _local2; break; }; _local2--; }; }; _local4[_index] = _filter; _target.filters = _local4; } } }//package gs.plugins
Section 326
//FramePlugin (gs.plugins.FramePlugin) package gs.plugins { import flash.display.*; import gs.*; public class FramePlugin extends TweenPlugin { protected var _target:MovieClip; public var frame:int; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function FramePlugin(){ this.propName = "frame"; this.overwriteProps = ["frame"]; this.round = true; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; addTween(this, "frame", this.frame, _arg2, "frame"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } } }//package gs.plugins
Section 327
//GlowFilterPlugin (gs.plugins.GlowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class GlowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function GlowFilterPlugin(){ this.propName = "glowFilter"; this.overwriteProps = ["glowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = GlowFilter; initFilter(_arg2, new GlowFilter(0xFFFFFF, 0, 0, 0, ((_arg2.strength) || (1)), ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout)); return (true); } } }//package gs.plugins
Section 328
//HexColorsPlugin (gs.plugins.HexColorsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class HexColorsPlugin extends TweenPlugin { protected var _colors:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function HexColorsPlugin(){ this.propName = "hexColors"; this.overwriteProps = []; _colors = []; } override public function killProps(_arg1:Object):void{ var _local2:int = (_colors.length - 1); while (_local2 > -1) { if (_arg1[_colors[_local2][1]] != undefined){ _colors.splice(_local2, 1); }; _local2--; }; super.killProps(_arg1); } public function initColor(_arg1:Object, _arg2:String, _arg3:uint, _arg4:uint):void{ var _local5:Number; var _local6:Number; var _local7:Number; if (_arg3 != _arg4){ _local5 = (_arg3 >> 16); _local6 = ((_arg3 >> 8) & 0xFF); _local7 = (_arg3 & 0xFF); _colors[_colors.length] = [_arg1, _arg2, _local5, ((_arg4 >> 16) - _local5), _local6, (((_arg4 >> 8) & 0xFF) - _local6), _local7, ((_arg4 & 0xFF) - _local7)]; this.overwriteProps[this.overwriteProps.length] = _arg2; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:Array; _local2 = (_colors.length - 1); while (_local2 > -1) { _local3 = _colors[_local2]; _local3[0][_local3[1]] = ((((_local3[2] + (_arg1 * _local3[3])) << 16) | ((_local3[4] + (_arg1 * _local3[5])) << 8)) | (_local3[6] + (_arg1 * _local3[7]))); _local2--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; for (_local4 in _arg2) { initColor(_arg1, _local4, uint(_arg1[_local4]), uint(_arg2[_local4])); }; return (true); } } }//package gs.plugins
Section 329
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin) package gs.plugins { public class RemoveTintPlugin extends TintPlugin { public static const VERSION:Number = 1.01; public static const API:Number = 1; public function RemoveTintPlugin(){ this.propName = "removeTint"; } } }//package gs.plugins
Section 330
//RoundPropsPlugin (gs.plugins.RoundPropsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class RoundPropsPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function RoundPropsPlugin(){ this.propName = "roundProps"; this.overwriteProps = []; this.round = true; } public function add(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ addTween(_arg1, _arg2, _arg3, (_arg3 + _arg4), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.plugins
Section 331
//ShortRotationPlugin (gs.plugins.ShortRotationPlugin) package gs.plugins { import flash.display.*; import gs.*; public class ShortRotationPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function ShortRotationPlugin(){ this.propName = "shortRotation"; this.overwriteProps = []; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; if (typeof(_arg2) == "number"){ trace("WARNING: You appear to be using the old shortRotation syntax. Instead of passing a number, please pass an object with properties that correspond to the rotations values For example, TweenMax.to(mc, 2, {shortRotation:{rotationX:-170, rotationY:25}})"); return (false); }; for (_local4 in _arg2) { initRotation(_arg1, _local4, _arg1[_local4], _arg2[_local4]); }; return (true); } public function initRotation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ var _local5:Number = ((_arg4 - _arg3) % 360); if (((_arg4 - _arg3) % 360) != (_local5 % 180)){ _local5 = ((_local5)<0) ? (_local5 + 360) : (_local5 - 360); }; addTween(_arg1, _arg2, _arg3, (_arg3 + _local5), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.plugins
Section 332
//TintPlugin (gs.plugins.TintPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.geom.*; import gs.utils.tween.*; public class TintPlugin extends TweenPlugin { protected var _target:DisplayObject; protected var _ct:ColorTransform; protected var _ignoreAlpha:Boolean; public static const VERSION:Number = 1.1; public static const API:Number = 1; protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"]; public function TintPlugin(){ this.propName = "tint"; this.overwriteProps = ["tint"]; } public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{ var _local3:int; var _local4:String; _target = _arg1; _ct = _target.transform.colorTransform; _local3 = (_props.length - 1); while (_local3 > -1) { _local4 = _props[_local3]; if (_ct[_local4] != _arg2[_local4]){ _tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg1 is DisplayObject)){ return (false); }; var _local4:ColorTransform = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:ColorTransform; updateTweens(_arg1); if (_ignoreAlpha){ _local2 = _target.transform.colorTransform; _ct.alphaMultiplier = _local2.alphaMultiplier; _ct.alphaOffset = _local2.alphaOffset; }; _target.transform.colorTransform = _ct; } } }//package gs.plugins
Section 333
//TweenPlugin (gs.plugins.TweenPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class TweenPlugin { public var overwriteProps:Array; protected var _tweens:Array; public var propName:String; public var onComplete:Function; public var round:Boolean; protected var _changeFactor:Number;// = 0 public static const VERSION:Number = 1.03; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; super(); } protected function updateTweens(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _changeFactor = _arg1; } protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{ var _local6:Number; if (_arg4 != null){ _local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4); if (_local6 != 0){ _tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false); }; }; } public function killProps(_arg1:Object):void{ var _local2:int; _local2 = (this.overwriteProps.length - 1); while (_local2 > -1) { if ((this.overwriteProps[_local2] in _arg1)){ this.overwriteProps.splice(_local2, 1); }; _local2--; }; _local2 = (_tweens.length - 1); while (_local2 > -1) { if ((_tweens[_local2].name in _arg1)){ _tweens.splice(_local2, 1); }; _local2--; }; } public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName); return (true); } public function get changeFactor():Number{ return (_changeFactor); } public static function activate(_arg1:Array):Boolean{ var _local2:int; var _local3:Object; _local2 = (_arg1.length - 1); while (_local2 > -1) { _local3 = new (_arg1[_local2]); TweenLite.plugins[_local3.propName] = _arg1[_local2]; _local2--; }; return (true); } } }//package gs.plugins
Section 334
//VisiblePlugin (gs.plugins.VisiblePlugin) package gs.plugins { import flash.display.*; import gs.*; public class VisiblePlugin extends TweenPlugin { protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; this.onComplete = onCompleteTween; } public function onCompleteTween():void{ if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(_arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ if (_target.visible != true){ _target.visible = true; }; } } }//package gs.plugins
Section 335
//VolumePlugin (gs.plugins.VolumePlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.media.*; public class VolumePlugin extends TweenPlugin { protected var _target:Object; protected var _st:SoundTransform; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function VolumePlugin(){ this.propName = "volume"; this.overwriteProps = ["volume"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){ return (false); }; _target = _arg1; _st = _target.soundTransform; addTween(_st, "volume", _st.volume, _arg2, "volume"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } } }//package gs.plugins
Section 336
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo) package gs.utils.tween { public class ArrayTweenInfo { public var change:Number; public var start:Number; public var index:uint; public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } } }//package gs.utils.tween
Section 337
//TweenInfo (gs.utils.tween.TweenInfo) package gs.utils.tween { public class TweenInfo { public var start:Number; public var name:String; public var change:Number; public var target:Object; public var property:String; public var isPlugin:Boolean; public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; } } }//package gs.utils.tween
Section 338
//OverwriteManager (gs.OverwriteManager) package gs { import flash.utils.*; import gs.utils.tween.*; import flash.errors.*; public class OverwriteManager { public static const ALL:int = 1; public static const NONE:int = 0; public static const AUTO:int = 2; public static const CONCURRENT:int = 3; public static const version:Number = 3.12; public static var mode:int; public static var enabled:Boolean; public static function killVars(_arg1:Object, _arg2:Object, _arg3:Array):void{ var _local4:int; var _local5:String; var _local6:TweenInfo; _local4 = (_arg3.length - 1); while (_local4 > -1) { _local6 = _arg3[_local4]; if ((_local6.name in _arg1)){ _arg3.splice(_local4, 1); } else { if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){ _local6.target.killProps(_arg1); if (_local6.target.overwriteProps.length == 0){ _arg3.splice(_local4, 1); }; }; }; _local4--; }; for (_local5 in _arg1) { delete _arg2[_local5]; }; } public static function manageOverwrites(_arg1:TweenLite, _arg2:Array):void{ var _local7:int; var _local8:TweenLite; var _local10:Array; var _local11:Object; var _local12:int; var _local13:TweenInfo; var _local14:Array; var _local3:Object = _arg1.vars; var _local4:int = ((_local3.overwrite)==undefined) ? mode : int(_local3.overwrite); if ((((_local4 < 2)) || ((_arg2 == null)))){ return; }; var _local5:Number = _arg1.startTime; var _local6:Array = []; var _local9 = -1; _local7 = (_arg2.length - 1); while (_local7 > -1) { _local8 = _arg2[_local7]; if (_local8 == _arg1){ _local9 = _local7; } else { if ((((((_local7 < _local9)) && ((_local8.startTime <= _local5)))) && (((_local8.startTime + ((_local8.duration * 1000) / _local8.combinedTimeScale)) > _local5)))){ _local6[_local6.length] = _local8; }; }; _local7--; }; if ((((_local6.length == 0)) || ((_arg1.tweens.length == 0)))){ return; }; if (_local4 == AUTO){ _local10 = _arg1.tweens; _local11 = {}; _local7 = (_local10.length - 1); while (_local7 > -1) { _local13 = _local10[_local7]; if (_local13.isPlugin){ if (_local13.name == "_MULTIPLE_"){ _local14 = _local13.target.overwriteProps; _local12 = (_local14.length - 1); while (_local12 > -1) { _local11[_local14[_local12]] = true; _local12--; }; } else { _local11[_local13.name] = true; }; _local11[_local13.target.propName] = true; } else { _local11[_local13.name] = true; }; _local7--; }; _local7 = (_local6.length - 1); while (_local7 > -1) { killVars(_local11, _local6[_local7].exposedVars, _local6[_local7].tweens); _local7--; }; } else { _local7 = (_local6.length - 1); while (_local7 > -1) { _local6[_local7].enabled = false; _local7--; }; }; } public static function init(_arg1:int=2):int{ if (TweenLite.version < 10.09){ trace("TweenLite warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com."); }; TweenLite.overwriteManager = OverwriteManager; mode = _arg1; enabled = true; return (mode); } } }//package gs
Section 339
//TweenLite (gs.TweenLite) package gs { import flash.events.*; import flash.display.*; import flash.utils.*; import gs.plugins.*; import gs.utils.tween.*; public class TweenLite { public var started:Boolean; public var delay:Number; protected var _hasUpdate:Boolean; protected var _hasPlugins:Boolean; public var initted:Boolean; public var active:Boolean; public var startTime:Number; public var target:Object; public var duration:Number; public var gc:Boolean; public var tweens:Array; public var vars:Object; public var ease:Function; public var exposedVars:Object; public var initTime:Number; public var combinedTimeScale:Number; public static const version:Number = 10.092; private static var _timer:Timer = new Timer(2000); public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var currentTime:uint; public static var masterList:Dictionary = new Dictionary(false); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1}; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var timingSprite:Sprite = new Sprite(); public static var overwriteManager:Object; private static var _tlInitted:Boolean; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ if (_arg1 == null){ return; }; if (!_tlInitted){ TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]); currentTime = getTimer(); timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; _timer.addEventListener("timer", killGarbage, false, 0, true); _timer.start(); _tlInitted = true; }; this.vars = _arg3; this.duration = ((_arg2) || (0.001)); this.delay = ((_arg3.delay) || (0)); this.combinedTimeScale = ((_arg3.timeScale) || (1)); this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0)))); this.target = _arg1; if (typeof(this.vars.ease) != "function"){ this.vars.ease = defaultEase; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; this.ease = this.vars.ease; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars; this.tweens = []; this.initTime = currentTime; this.startTime = (this.initTime + (this.delay * 1000)); var _local4:int = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if (((!((_arg1 in masterList))) || ((_local4 == 1)))){ masterList[_arg1] = [this]; } else { masterList[_arg1].push(this); }; if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){ initTweenVals(); if (this.active){ render((this.startTime + 1)); } else { render(this.startTime); }; if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){ this.target.visible = this.exposedVars.visible; }; }; } public function get enabled():Boolean{ return ((this.gc) ? false : true); } public function set enabled(_arg1:Boolean):void{ var _local2:Array; var _local3:Boolean; var _local4:int; if (_arg1){ if (!(this.target in masterList)){ masterList[this.target] = [this]; } else { _local2 = masterList[this.target]; _local4 = (_local2.length - 1); while (_local4 > -1) { if (_local2[_local4] == this){ _local3 = true; break; }; _local4--; }; if (!_local3){ _local2[_local2.length] = this; }; }; }; this.gc = (_arg1) ? false : true; if (this.gc){ this.active = false; } else { this.active = this.started; }; } public function clear():void{ this.tweens = []; this.vars = (this.exposedVars = {ease:this.vars.ease}); _hasUpdate = false; } public function render(_arg1:uint):void{ var _local3:Number; var _local4:TweenInfo; var _local5:int; var _local2:Number = ((_arg1 - this.startTime) * 0.001); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function activate():void{ this.started = (this.active = true); if (!this.initted){ initTweenVals(); }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; } public function initTweenVals():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:TweenInfo; if (((!((this.exposedVars.timeScale == undefined))) && (this.target.hasOwnProperty("timeScale")))){ this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false); }; for (_local1 in this.exposedVars) { if ((_local1 in _reservedProps)){ } else { if ((_local1 in plugins)){ _local3 = new (plugins[_local1]); if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){ this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); } else { this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true); _hasPlugins = true; }; } else { this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); }; }; }; if (this.vars.runBackwards == true){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local4 = this.tweens[_local2]; this.tweens[_local2].start = (_local4.start + _local4.change); _local4.change = -(_local4.change); _local2--; }; }; if (this.vars.onUpdate != null){ _hasUpdate = true; }; if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){ overwriteManager.manageOverwrites(this, masterList[this.target]); }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function killVars(_arg1:Object):void{ if (overwriteManager.enabled){ overwriteManager.killVars(_arg1, this.exposedVars, this.tweens); }; } public function complete(_arg1:Boolean=false):void{ var _local2:int; if (!_arg1){ if (!this.initted){ initTweenVals(); }; this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale)); render(currentTime); return; }; if (_hasPlugins){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){ this.tweens[_local2].target.onComplete(); }; _local2--; }; }; if (this.vars.persist != true){ this.enabled = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public static function updateAll(_arg1:Event=null):void{ var _local4:Array; var _local5:int; var _local6:TweenLite; var _local2:uint = (currentTime = getTimer()); var _local3:Dictionary = masterList; for each (_local4 in _local3) { _local5 = (_local4.length - 1); while (_local5 > -1) { _local6 = _local4[_local5]; if (_local6.active){ _local6.render(_local2); } else { if (_local6.gc){ _local4.splice(_local5, 1); } else { if (_local2 >= _local6.startTime){ _local6.activate(); _local6.render(_local2); }; }; }; _local5--; }; }; } public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{ if (_arg1 != null){ if (_arg2){ _arg1.clear(); }; _arg1.enabled = false; }; } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:TweenLite; if (((!((_arg1 == null))) && ((_arg1 in masterList)))){ _local3 = masterList[_arg1]; _local4 = (_local3.length - 1); while (_local4 > -1) { _local5 = _local3[_local4]; if (((_arg2) && (!(_local5.gc)))){ _local5.complete(false); }; _local5.clear(); _local4--; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } protected static function killGarbage(_arg1:TimerEvent):void{ var _local3:Object; var _local2:Dictionary = masterList; for (_local3 in _local2) { if (_local2[_local3].length == 0){ delete _local2[_local3]; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0})); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gs
Section 340
//TweenMax (gs.TweenMax) package gs { import flash.events.*; import flash.utils.*; import gs.plugins.*; import gs.utils.tween.*; import gs.events.*; public class TweenMax extends TweenLite implements IEventDispatcher { protected var _dispatcher:EventDispatcher; protected var _callbacks:Object; public var pauseTime:Number; protected var _repeatCount:Number; protected var _timeScale:Number; public static const version:Number = 10.12; public static var removeTween:Function = TweenLite.removeTween; private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init(); ; protected static var _pausedTweens:Dictionary = new Dictionary(false); protected static var _globalTimeScale:Number = 1; public static var killTweensOf:Function = TweenLite.killTweensOf; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _activatedPlugins:Boolean = TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin, HexColorsPlugin, BlurFilterPlugin, ColorMatrixFilterPlugin, BevelFilterPlugin, DropShadowFilterPlugin, GlowFilterPlugin, RoundPropsPlugin, BezierPlugin, BezierThroughPlugin, ShortRotationPlugin]); public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){ super(_arg1, _arg2, _arg3); if (TweenLite.version < 10.092){ trace("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com."); }; if (((!((this.combinedTimeScale == 1))) && ((this.target is TweenMax)))){ _timeScale = 1; this.combinedTimeScale = _globalTimeScale; } else { _timeScale = this.combinedTimeScale; this.combinedTimeScale = (this.combinedTimeScale * _globalTimeScale); }; if (((!((this.combinedTimeScale == 1))) && (!((this.delay == 0))))){ this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale))); }; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ initDispatcher(); if ((((_arg2 == 0)) && ((this.delay == 0)))){ onUpdateDispatcher(); onCompleteDispatcher(); }; }; _repeatCount = 0; if (((!(isNaN(this.vars.yoyo))) || (!(isNaN(this.vars.loop))))){ this.vars.persist = true; }; if ((((this.delay == 0)) && (!((this.vars.startAt == null))))){ this.vars.startAt.overwrite = 0; new TweenMax(this.target, 0, this.vars.startAt); }; } public function dispatchEvent(_arg1:Event):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.dispatchEvent(_arg1)); } public function get reversed():Boolean{ return ((this.ease == reverseEase)); } public function set reversed(_arg1:Boolean):void{ if (this.reversed != _arg1){ reverse(); }; } public function get progress():Number{ var _local1:Number = (isNaN(this.pauseTime)) ? currentTime : this.pauseTime; var _local2:Number = (((((_local1 - this.initTime) * 0.001) - (this.delay / this.combinedTimeScale)) / this.duration) * this.combinedTimeScale); if (_local2 > 1){ return (1); }; if (_local2 < 0){ return (0); }; return (_local2); } override public function set enabled(_arg1:Boolean):void{ if (!_arg1){ _pausedTweens[this] = null; delete _pausedTweens[this]; }; super.enabled = _arg1; if (_arg1){ this.combinedTimeScale = (_timeScale * _globalTimeScale); }; } protected function onStartDispatcher(... _args):void{ if (_callbacks.onStart != null){ _callbacks.onStart.apply(null, this.vars.onStartParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START)); } public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{ var _local5:int; var _local6:TweenInfo; var _local7:Object; var _local8:Object; var _local9:Array; var _local10:Boolean; var _local11:Array; var _local12:Object; var _local4:Number = this.progress; if (this.initted){ if (!_arg3){ _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local6 = this.tweens[_local5]; if (_local6.name == _arg1){ _local6.target[_local6.property] = _local6.start; }; _local5--; }; }; _local7 = this.vars; _local8 = this.exposedVars; _local9 = this.tweens; _local10 = _hasPlugins; this.tweens = []; this.vars = (this.exposedVars = {}); this.vars[_arg1] = _arg2; initTweenVals(); if (((!((this.ease == reverseEase))) && ((_local7.ease is Function)))){ this.ease = _local7.ease; }; if (((_arg3) && (!((_local4 == 0))))){ adjustStartValues(); }; _local11 = this.tweens; this.vars = _local7; this.exposedVars = _local8; this.tweens = _local9; _local12 = {}; _local12[_arg1] = true; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local6 = this.tweens[_local5]; if (_local6.name == _arg1){ this.tweens.splice(_local5, 1); } else { if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){ _local6.target.killProps(_local12); if (_local6.target.overwriteProps.length == 0){ this.tweens.splice(_local5, 1); }; }; }; _local5--; }; this.tweens = this.tweens.concat(_local11); _hasPlugins = Boolean(((_local10) || (_hasPlugins))); }; this.vars[_arg1] = (this.exposedVars[_arg1] = _arg2); } override public function initTweenVals():void{ var _local1:int; var _local2:int; var _local3:String; var _local4:String; var _local5:Array; var _local6:Object; var _local7:TweenInfo; if (((!((this.vars.startAt == null))) && (!((this.delay == 0))))){ this.vars.startAt.overwrite = 0; new TweenMax(this.target, 0, this.vars.startAt); }; super.initTweenVals(); if ((((this.exposedVars.roundProps is Array)) && (!((TweenLite.plugins.roundProps == null))))){ _local5 = this.exposedVars.roundProps; _local1 = (_local5.length - 1); while (_local1 > -1) { _local3 = _local5[_local1]; _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local7 = this.tweens[_local2]; if (_local7.name == _local3){ if (_local7.isPlugin){ _local7.target.round = true; } else { if (_local6 == null){ _local6 = new TweenLite.plugins.roundProps(); _local6.add(_local7.target, _local3, _local7.start, _local7.change); _hasPlugins = true; this.tweens[_local2] = new TweenInfo(_local6, "changeFactor", 0, 1, _local3, true); } else { _local6.add(_local7.target, _local3, _local7.start, _local7.change); this.tweens.splice(_local2, 1); }; }; } else { if (((((_local7.isPlugin) && ((_local7.name == "_MULTIPLE_")))) && (!(_local7.target.round)))){ _local4 = ((" " + _local7.target.overwriteProps.join(" ")) + " "); if (_local4.indexOf(((" " + _local3) + " ")) != -1){ _local7.target.round = true; }; }; }; _local2--; }; _local1--; }; }; } public function restart(_arg1:Boolean=false):void{ if (_arg1){ this.initTime = currentTime; this.startTime = (currentTime + (this.delay * (1000 / this.combinedTimeScale))); } else { this.startTime = currentTime; this.initTime = (currentTime - (this.delay * (1000 / this.combinedTimeScale))); }; _repeatCount = 0; if (this.target != this.vars.onComplete){ render(this.startTime); }; this.pauseTime = NaN; _pausedTweens[this] = null; delete _pausedTweens[this]; this.enabled = true; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (_dispatcher != null){ _dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (_dispatcher == null){ initDispatcher(); }; if ((((_arg1 == TweenEvent.UPDATE)) && (!((this.vars.onUpdate == onUpdateDispatcher))))){ this.vars.onUpdate = onUpdateDispatcher; _hasUpdate = true; }; _dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } protected function adjustStartValues():void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:TweenInfo; var _local6:int; var _local1:Number = this.progress; if (_local1 != 0){ _local2 = this.ease(_local1, 0, 1, 1); _local3 = (1 / (1 - _local2)); _local6 = (this.tweens.length - 1); while (_local6 > -1) { _local5 = this.tweens[_local6]; _local4 = (_local5.start + _local5.change); if (_local5.isPlugin){ _local5.change = ((_local4 - _local2) * _local3); } else { _local5.change = ((_local4 - _local5.target[_local5.property]) * _local3); }; _local5.start = (_local4 - _local5.change); _local6--; }; }; } override public function render(_arg1:uint):void{ var _local3:Number; var _local4:TweenInfo; var _local5:int; var _local2:Number = (((_arg1 - this.startTime) * 0.001) * this.combinedTimeScale); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } protected function initDispatcher():void{ var _local1:Object; var _local2:String; if (_dispatcher == null){ _dispatcher = new EventDispatcher(this); _callbacks = {onStart:this.vars.onStart, onUpdate:this.vars.onUpdate, onComplete:this.vars.onComplete}; if (this.vars.isTV == true){ this.vars = this.vars.clone(); } else { _local1 = {}; for (_local2 in this.vars) { _local1[_local2] = this.vars[_local2]; }; this.vars = _local1; }; this.vars.onStart = onStartDispatcher; this.vars.onComplete = onCompleteDispatcher; if ((this.vars.onStartListener is Function)){ _dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true); }; if ((this.vars.onUpdateListener is Function)){ _dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true); this.vars.onUpdate = onUpdateDispatcher; _hasUpdate = true; }; if ((this.vars.onCompleteListener is Function)){ _dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true); }; }; } public function willTrigger(_arg1:String):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.willTrigger(_arg1)); } public function get repeatCount():Number{ return (_repeatCount); } public function reverse(_arg1:Boolean=true, _arg2:Boolean=true):void{ this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease; var _local3:Number = this.progress; if (((_arg1) && ((_local3 > 0)))){ this.startTime = (currentTime - ((((1 - _local3) * this.duration) * 1000) / this.combinedTimeScale)); this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); }; if (_arg2 != false){ if (_local3 < 1){ resume(); } else { restart(); }; }; } protected function onUpdateDispatcher(... _args):void{ if (_callbacks.onUpdate != null){ _callbacks.onUpdate.apply(null, this.vars.onUpdateParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE)); } public function set paused(_arg1:Boolean):void{ if (_arg1){ pause(); } else { resume(); }; } public function resume():void{ this.enabled = true; if (!isNaN(this.pauseTime)){ this.initTime = (this.initTime + (currentTime - this.pauseTime)); this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale))); this.pauseTime = NaN; if (((!(this.started)) && ((currentTime >= this.startTime)))){ activate(); } else { this.active = this.started; }; _pausedTweens[this] = null; delete _pausedTweens[this]; }; } public function get paused():Boolean{ return (!(isNaN(this.pauseTime))); } public function set repeatCount(_arg1:Number):void{ _repeatCount = _arg1; } public function reverseEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.ease((_arg4 - _arg1), _arg2, _arg3, _arg4)); } public function killProperties(_arg1:Array):void{ var _local3:int; var _local2:Object = {}; _local3 = (_arg1.length - 1); while (_local3 > -1) { _local2[_arg1[_local3]] = true; _local3--; }; killVars(_local2); } public function set progress(_arg1:Number):void{ this.startTime = (currentTime - ((this.duration * _arg1) * 1000)); this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); if (!this.started){ activate(); }; render(currentTime); if (!isNaN(this.pauseTime)){ this.pauseTime = currentTime; this.startTime = 999999999999999; this.active = false; }; } public function hasEventListener(_arg1:String):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.hasEventListener(_arg1)); } public function pause():void{ if (isNaN(this.pauseTime)){ this.pauseTime = currentTime; this.startTime = 999999999999999; this.enabled = false; _pausedTweens[this] = this; }; } override public function complete(_arg1:Boolean=false):void{ if (((((!(isNaN(this.vars.yoyo))) && ((((_repeatCount < this.vars.yoyo)) || ((this.vars.yoyo == 0)))))) || (((!(isNaN(this.vars.loop))) && ((((_repeatCount < this.vars.loop)) || ((this.vars.loop == 0)))))))){ _repeatCount++; if (!isNaN(this.vars.yoyo)){ this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease; }; this.startTime = (_arg1) ? (this.startTime + (this.duration * (1000 / this.combinedTimeScale))) : currentTime; this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); } else { if (this.vars.persist == true){ pause(); }; }; super.complete(_arg1); } public function set timeScale(_arg1:Number):void{ if (_arg1 < 1E-5){ _arg1 = (_timeScale = 1E-5); } else { _timeScale = _arg1; _arg1 = (_arg1 * _globalTimeScale); }; this.initTime = ((currentTime - ((((currentTime - this.initTime) - (this.delay * (1000 / this.combinedTimeScale))) * this.combinedTimeScale) * (1 / _arg1))) - (this.delay * (1000 / _arg1))); if (this.startTime != 999999999999999){ this.startTime = (this.initTime + (this.delay * (1000 / _arg1))); }; this.combinedTimeScale = _arg1; } public function invalidate(_arg1:Boolean=true):void{ var _local2:Number; if (this.initted){ _local2 = this.progress; if (((!(_arg1)) && (!((_local2 == 0))))){ this.progress = 0; }; this.tweens = []; _hasPlugins = false; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars; initTweenVals(); _timeScale = ((this.vars.timeScale) || (1)); this.combinedTimeScale = (_timeScale * _globalTimeScale); this.delay = ((this.vars.delay) || (0)); if (isNaN(this.pauseTime)){ this.startTime = (this.initTime + ((this.delay * 1000) / this.combinedTimeScale)); }; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ if (_dispatcher != null){ this.vars.onStart = _callbacks.onStart; this.vars.onUpdate = _callbacks.onUpdate; this.vars.onComplete = _callbacks.onComplete; _dispatcher = null; }; initDispatcher(); }; if (_local2 != 0){ if (_arg1){ adjustStartValues(); } else { this.progress = _local2; }; }; }; } public function get timeScale():Number{ return (_timeScale); } protected function onCompleteDispatcher(... _args):void{ if (_callbacks.onComplete != null){ _callbacks.onComplete.apply(null, this.vars.onCompleteParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); } public static function set globalTimeScale(_arg1:Number):void{ setGlobalTimeScale(_arg1); } public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(true, _arg1, _arg2); } public static function killAllDelayedCalls(_arg1:Boolean=false):void{ killAll(_arg1, false, true); } public static function setGlobalTimeScale(_arg1:Number):void{ var _local3:int; var _local4:Array; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; var _local2:Dictionary = masterList; _globalTimeScale = _arg1; for each (_local4 in _local2) { _local3 = (_local4.length - 1); while (_local3 > -1) { if ((_local4[_local3] is TweenMax)){ _local4[_local3].timeScale = (_local4[_local3].timeScale * 1); }; _local3--; }; }; } public static function get globalTimeScale():Number{ return (_globalTimeScale); } public static function getTweensOf(_arg1:Object):Array{ var _local4:TweenLite; var _local5:int; var _local2:Array = masterList[_arg1]; var _local3:Array = []; if (_local2 != null){ _local5 = (_local2.length - 1); while (_local5 > -1) { if (!_local2[_local5].gc){ _local3[_local3.length] = _local2[_local5]; }; _local5--; }; }; for each (_local4 in _pausedTweens) { if (_local4.target == _arg1){ _local3[_local3.length] = _local4; }; }; return (_local3); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{ return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, persist:_arg4, overwrite:0})); } public static function isTweening(_arg1:Object):Boolean{ var _local2:Array = getTweensOf(_arg1); var _local3:int = (_local2.length - 1); while (_local3 > -1) { if (((((_local2[_local3].active) || ((_local2[_local3].startTime == currentTime)))) && (!(_local2[_local3].gc)))){ return (true); }; _local3--; }; return (false); } public static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{ var _local5:Boolean; var _local4:Array = getAllTweens(); var _local6:int = (_local4.length - 1); while (_local6 > -1) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local4[_local6] is TweenMax)) && ((((_local5 == _arg3)) || (!((_local5 == _arg2))))))){ _local4[_local6].paused = _arg1; }; _local6--; }; } public static function killAllTweens(_arg1:Boolean=false):void{ killAll(_arg1, true, false); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ _arg3.runBackwards = true; return (new TweenMax(_arg1, _arg2, _arg3)); } public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{ var _local5:Boolean; var _local6:int; var _local4:Array = getAllTweens(); _local6 = (_local4.length - 1); while (_local6 > -1) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){ if (_arg1){ _local4[_local6].complete(false); _local4[_local6].clear(); } else { TweenLite.removeTween(_local4[_local6], true); }; }; _local6--; }; } public static function getAllTweens():Array{ var _local3:Array; var _local4:int; var _local5:TweenLite; var _local1:Dictionary = masterList; var _local2:Array = []; for each (_local3 in _local1) { _local4 = (_local3.length - 1); while (_local4 > -1) { if (!_local3[_local4].gc){ _local2[_local2.length] = _local3[_local4]; }; _local4--; }; }; for each (_local5 in _pausedTweens) { _local2[_local2.length] = _local5; }; return (_local2); } public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(false, _arg1, _arg2); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ return (new TweenMax(_arg1, _arg2, _arg3)); } } }//package gs
Section 341
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.net.*; import flash.utils.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (_local2); }; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var clip:Object; var mc:MovieClip; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!(clip is DisplayObject)){ trace("Warning: Object passed as container clip not a descendant of the DisplayObject type"); return (null); }; if (MovieClip(clip).stage == null){ trace("Warning: Container clip for ad is not attached to the stage"); return (null); }; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; } else { trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal"); }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{ trace("[MochiAds] Blocked URL"); }); if (!options.skip){ loader.load(req); }; mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }, progress_override:function (_arg1:Object):Number{ return (NaN); }, bar_offset:0}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; if (options.skip){ ad_timeout = 0; }; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = (10 + options.bar_offset); bar.y = (h - 20); }; var bar_w:Number = ((w - bar.x) - 10); var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo(bar_w, 0); backing.lineTo(bar_w, 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo(bar_w, 0); inside.lineTo(bar_w, 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo(bar_w, 0); outline.lineTo(bar_w, 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var progress:Number = Math.min(1, options.progress_override(clip)); var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; if (!isNaN(progress)){ complete = (progress == 1); } else { if (clip.loaderInfo.bytesLoaded == clip.loaderInfo.bytesTotal){ complete = true; } else { if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; } else { clip.loaderInfo.addEventListener(Event.COMPLETE, f); }; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local12:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; var _local7:Number = Math.min(1, options.progress_override(_local1)); if (_local7 == 1){ complete = true; }; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local8:Number = ((100 * _local6) / _local5); if (!isNaN(_local7)){ _local8 = (100 * _local7); }; var _local9:Number = ((100 * _local3) / chk.ad_msec); var _local10:Object = this._mochiad_bar._inside; var _local11:Number = Math.min(100, Math.min(((_local8) || (0)), _local9)); _local11 = Math.max(this.last_pcnt, _local11); this.last_pcnt = _local11; _local10.scaleX = (_local11 * 0.01); options.ad_progress(_local11); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local8}); if (_local8 >= 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local12 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local12 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local8 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (unloaded){ MochiAd.unload(_local1); } else { if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi.as3
Section 342
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; public static var _inventory:MochiInventory; public static function triggerEvent(_arg1:String, _arg2:Object):void{ MochiSocial.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ MochiSocial.addEventListener(_arg1, _arg2); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(_arg1:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:_arg1}, null, null); } public static function showItem(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:_arg1}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(_arg1:Object=null):void{ if (((!(_arg1)) || (!((typeof(_arg1.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:_arg1}, null, null); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _inventory = new MochiInventory(); }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 343
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function set value(_arg1:Number):void{ setValue(_arg1); } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function get value():Number{ return (Number(this.toString())); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 344
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ eventTable = {}; } public function triggerEvent(_arg1:String, _arg2:Object):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ return; }; for (_local3 in eventTable[_arg1]) { var _local6 = eventTable[_arg1]; _local6[_local3](_arg2); }; } public function removeEventListener(_arg1:String, _arg2:Function):void{ var _local3:Object; if (eventTable[_arg1] == undefined){ eventTable[_arg1] = []; return; }; for (_local3 in eventTable[_arg1]) { if (eventTable[_arg1][_local3] != _arg2){ } else { eventTable[_arg1].splice(Number(_local3), 1); }; }; } public function addEventListener(_arg1:String, _arg2:Function):void{ removeEventListener(_arg1, _arg2); eventTable[_arg1].push(_arg2); } } }//package mochi.as3
Section 345
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public static function endPlay():void{ MochiServices.send("events_clearRoundID", null, null, null); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function trackEvent(_arg1:String, _arg2=null):void{ MochiServices.send("events_trackEvent", {tag:_arg1, value:_arg2}, null, null); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function startSession(_arg1:String):void{ MochiServices.send("events_beginSession", {achievementID:_arg1}, null, null); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function setNotifications(_arg1:MovieClip, _arg2:Object):void{ var _local4:Object; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; _local3.clip = _arg1; MochiServices.send("events_setNotifications", _local3, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startPlay(_arg1:String="gameplay"):void{ MochiServices.send("events_setRoundID", {tag:String(_arg1)}, null, null); } } }//package mochi.as3
Section 346
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _syncID:Number; private var _consumableProperties:Object; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(_arg1:Object):void{ if (!this[(_arg1.id + KEY_SALT)]){ this[(_arg1.id + KEY_SALT)] = 0; }; if (!this[_arg1.id]){ this[_arg1.id] = 0; }; this[(_arg1.id + KEY_SALT)] = (this[(_arg1.id + KEY_SALT)] + _arg1.count); this[_arg1.id] = (this[_arg1.id] + _arg1.count); if (_arg1.privateProperties.consumable){ if (!this[_arg1.privateProperties.tag]){ this[_arg1.privateProperties.tag] = 0; }; this[_arg1.privateProperties.tag] = (this[_arg1.privateProperties.tag] + (_arg1.privateProperties.inc * _arg1.count)); }; } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[_arg1]){ return (MochiDigits(_consumableProperties[_arg1]).value); }; return (undefined); } private function loggedIn(_arg1:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(_arg1):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[_arg1] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(_arg1:int):int{ return (((_arg1)>=_names.length) ? 0 : (_arg1 + 1)); } private function putConsumableBag(_arg1:MochiUserData):void{ _syncPending = false; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(_arg2 is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:_arg2}); return; }; if (_consumableProperties[_arg1]){ _local3 = MochiDigits(_consumableProperties[_arg1]); if (_local3.value == _arg2){ return; }; _local3.value = _arg2; } else { _names.push(_arg1); _consumableProperties[_arg1] = new MochiDigits(_arg2); }; _syncID++; } private function itemOwned(_arg1:Object):void{ _storeSync[_arg1.id] = {properties:_arg1.properties, count:_arg1.count}; } private function sync(_arg1:Event=null):void{ var _local3:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; var _local2:Object = {}; for (_local3 in _consumableProperties) { _local2[_local3] = MochiDigits(_consumableProperties[_local3]).value; }; MochiUserData.put(CONSUMER_KEY, _local2, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(_arg1:int):String{ return (_names[(_arg1 - 1)]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(_arg1):Boolean{ if (!_consumableProperties[_arg1]){ return (false); }; _names.splice(_names.indexOf(_arg1), 1); delete _consumableProperties[_arg1]; return (true); } private function getConsumableBag(_arg1:MochiUserData):void{ var _local2:String; var _local3:Number; if (_arg1.error){ triggerEvent(ERROR, {type:IO_ERROR, error:_arg1.error}); return; }; _consumableProperties = {}; _names = new Array(); if (_arg1.data){ for (_local2 in _arg1.data) { _names.push(_local2); _consumableProperties[_local2] = new MochiDigits(_arg1.data[_local2]); }; }; for (_local2 in _storeSync) { _local3 = _storeSync[_local2].count; if (_consumableProperties[(_local2 + KEY_SALT)]){ _local3 = (_local3 - _consumableProperties[_local2]); }; if (_local3 == 0){ } else { newItems({id:_local2, count:_local3, properties:_storeSync[_local2].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(_arg1:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } } }//package mochi.as3
Section 347
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; var _local2:Object = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(_arg1)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(_arg1) != _arg1){ trace((("WARNING: Submitted score '" + String(_arg1)) + "' will be truncated")); }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (((((_arg1) && ((_arg1.error == true)))) && (onErrorHandler))){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiServices.warnID(_arg1, true); MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 348
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; import flash.utils.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _queue:Array; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _nextCallbackID:Number; private static var _clip:MovieClip; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _loader:Loader; private static var _callbacks:Object; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(_arg1:Object):void{ var methodName:String; var pkg = _arg1; var cb:String = pkg.callbackID; var cblst:Object = _callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { trace(((("Error invoking callback method '" + methodName) + "': ") + error.toString())); }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { trace(("Error invoking method on object: " + error.toString())); }; }; }; delete _callbacks[cb]; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + _arg1)); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _queue.push({methodName:_arg1, args:_arg2, callbackID:_nextCallbackID}); }; if (_clip != null){ if (_callbacks != null){ _callbacks[_nextCallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _nextCallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local4:int; var _local14:Loader; var _local3:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var _local5:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var _local6:Array = [0, 64, 0, 0, 0]; var _local7:MovieClip = new MovieClip(); var _local8:LocalConnection = new LocalConnection(); var _local9:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); var _local10:ByteArray = new ByteArray(); var _local11:ByteArray = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); var _local12:uint = ((_local3.length + _local11.length) + 4); var _local13:uint = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); var _local2:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _mochiLocalConnection.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.8 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } public static function warnID(_arg1:String, _arg2:Boolean):void{ _arg1 = _arg1.toLowerCase(); if (_arg1.length != 16){ trace((("WARNING: " + (_arg2) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (_arg1 == "1e113c7239048b3f"){ if (_arg2){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (_arg1 == "84993a1de4031cd8"){ if (_arg2){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var _local3:Number = 0; while (_local3 < _arg1.length) { switch (_arg1.charAt(_local3)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + _arg1)); return; }; _local3++; }; } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (((_clip) && (_queue))){ while (_queue.length > 0) { _local2 = _queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _callbacks[_local2.callbackID]; }; delete _callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(_arg1:Object):void{ var _local2:String = _arg1.target; var _local3:String = _arg1.event; switch (_local2){ case "events": MochiEvents.triggerEvent(_arg1.event, _arg1.args); break; case "coins": MochiCoins.triggerEvent(_arg1.event, _arg1.args); break; case "sync": servicesSync.triggerEvent(_arg1.event, _arg1.args); break; }; } private static function urlOptions(_arg1:Object):Object{ var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; var _local2:Object = {}; if (_arg1.stage){ _local3 = _arg1.stage.loaderInfo.parameters.mochiad_options; } else { _local3 = _arg1.loaderInfo.parameters.mochiad_options; }; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_clip.parent){ _clip.parent.removeChild(_clip); }; if (_arg1 != null){ if ((_arg1 is DisplayObjectContainer)){ _container = _arg1; }; }; if (_arg2){ if ((_container is DisplayObjectContainer)){ DisplayObjectContainer(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function loadError(_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift()); }; }; } private static function loadLCBridge(_arg1:Object):void{ var loader:Loader; var clip = _arg1; loader = new Loader(); var mochiLCURL:String = (_servURL + _mochiLC); var req:URLRequest = new URLRequest(mochiLCURL); var complete:Function = function (_arg1:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(_arg2).servURL){ _servURL = urlOptions(_arg2).servURL; }; var _local3:String = (_servURL + _services); if (urlOptions(_arg2).servicesURL){ _local3 = urlOptions(_arg2).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(_local3); _clip = new MovieClip(); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var _local4:URLRequest = new URLRequest(_local3); var _local5:URLVariables = new URLVariables(); _local5.listenLC = _listenChannelName; _local5.mochiad_options = _arg2.loaderInfo.parameters.mochiad_options; _local5.api_version = getVersion(); if (widget){ _local5.widget = true; }; _local4.data = _local5; _loader.load(_local4); _clip.addChild(_loader); _sendChannel = new LocalConnection(); _queue = []; _nextCallbackID = 0; _callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ trace(_arg1); }; }; }; } public static function updateCopy(_arg1:Object):void{ MochiServices.send("coins_updateCopy", _arg1, null, null); } public static function bringToTop(_arg1:Event=null):void{ var e = _arg1; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 349
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_SHOWN:String = "LoginShown"; public static const LOGIN_HIDE:String = "LoginHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _user_info:Object = null; public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(_arg1:Object):void{ MochiServices.send("coins_saveUserProperties", _arg1); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function triggerEvent(_arg1:String, _arg2:Object):void{ _dispatcher.triggerEvent(_arg1, _arg2); } public static function addEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.addEventListener(_arg1, _arg2); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function showLoginWidget(_arg1:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:_arg1}); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ _dispatcher.removeEventListener(_arg1, _arg2); } public static function requestLogin():void{ MochiServices.send("coins_requestLogin"); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (_arg1:Object):void{ _user_info = _arg1; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (_arg1:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 350
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ _syncContainer = {}; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ if (_syncContainer[_arg1] == _arg2){ return; }; var _local3:String = _arg1.toString(); _syncContainer[_local3] = _arg2; MochiServices.send("sync_propUpdate", {name:_local3, value:_arg2}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (_syncContainer[_arg1]); } public function triggerEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[_arg2.name] = _arg2.value; break; }; } } }//package mochi.as3
Section 351
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.net.*; import flash.utils.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var operation:String;// = null public var error:Event;// = null public var data;// = null public var _loader:URLLoader; public var key:String;// = null public function MochiUserData(_arg1:String="", _arg2:Function=null){ this.key = _arg1; this.callback = _arg2; } public function serialize(_arg1):ByteArray{ var _local2:ByteArray = new ByteArray(); _local2.objectEncoding = ObjectEncoding.AMF3; _local2.writeObject(_arg1); _local2.compress(); return (_local2); } public function errorHandler(_arg1:IOErrorEvent):void{ data = null; error = _arg1; if (callback != null){ performCallback(); } else { dispatchEvent(_arg1); }; close(); } public function putEvent(_arg1):void{ request("put", serialize(_arg1)); } public function deserialize(_arg1:ByteArray){ _arg1.objectEncoding = ObjectEncoding.AMF3; _arg1.uncompress(); return (_arg1.readObject()); } public function securityErrorHandler(_arg1:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _arg1.toString()))); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function performCallback():void{ try { callback(this); } catch(e:Error) { trace(("[MochiUserData] exception during callback: " + e)); }; } public function request(_arg1:String, _arg2:ByteArray):void{ var _operation = _arg1; var _data = _arg2; operation = _operation; var api_url:String = MochiSocial.getAPIURL(); var api_token:String = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); var args:URLVariables = new URLVariables(); args.op = _operation; args.key = key; var req:URLRequest = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); try { _loader.load(req); } catch(e:SecurityError) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + e.toString()))); }; } public function completeHandler(_arg1:Event):void{ var event = _arg1; try { if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; } catch(e:Error) { errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + e.toString()))); return; }; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public static function get(_arg1:String, _arg2:Function):void{ var _local3:MochiUserData = new MochiUserData(_arg1, _arg2); _local3.getEvent(); } public static function put(_arg1:String, _arg2, _arg3:Function):void{ var _local4:MochiUserData = new MochiUserData(_arg1, _arg3); _local4.putEvent(_arg2); } } }//package mochi.as3
Section 352
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.4.0.9271"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//package mx.core
Section 353
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.4.0.9271"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 354
//FontAsset (mx.core.FontAsset) package mx.core { import flash.text.*; public class FontAsset extends Font implements IFlexAsset { mx_internal static const VERSION:String = "3.4.0.9271"; } }//package mx.core
Section 355
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 356
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 357
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 358
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 359
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.4.0.9271"; } }//package mx.core
Section 360
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import mx.core.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.4.0.9271"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = _arg1; try { o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; } catch(e:SecurityError) { }; return (result); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 361
//Action (org.flintparticles.common.actions.Action) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.behaviours.*; public interface Action extends Behaviour { function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void; } }//package org.flintparticles.common.actions
Section 362
//ActionBase (org.flintparticles.common.actions.ActionBase) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class ActionBase implements Action { protected var _priority:int;// = 0 public function set priority(_arg1:int):void{ _priority = _arg1; } public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ } public function removedFromEmitter(_arg1:Emitter):void{ } public function addedToEmitter(_arg1:Emitter):void{ } public function get priority():int{ return (_priority); } } }//package org.flintparticles.common.actions
Section 363
//Age (org.flintparticles.common.actions.Age) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.energyEasing.*; public class Age extends ActionBase { private var _easing:Function; public function Age(_arg1:Function=null){ if (_arg1 == null){ _easing = Linear.easeNone; } else { _easing = _arg1; }; } public function set easing(_arg1:Function):void{ _easing = _arg1; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ _arg2.age = (_arg2.age + _arg3); if (_arg2.age >= _arg2.lifetime){ _arg2.energy = 0; _arg2.isDead = true; } else { _arg2.energy = _easing(_arg2.age, _arg2.lifetime); }; } public function get easing():Function{ return (_easing); } } }//package org.flintparticles.common.actions
Section 364
//Fade (org.flintparticles.common.actions.Fade) package org.flintparticles.common.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class Fade extends ActionBase { private var _endAlpha:Number; private var _diffAlpha:Number; public function Fade(_arg1:Number=1, _arg2:Number=0){ priority = -5; _diffAlpha = (_arg1 - _arg2); _endAlpha = _arg2; } public function get endAlpha():Number{ return (_endAlpha); } public function set endAlpha(_arg1:Number):void{ _diffAlpha = ((_endAlpha + _diffAlpha) - _arg1); _endAlpha = _arg1; } public function set startAlpha(_arg1:Number):void{ _diffAlpha = (_arg1 - _endAlpha); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Number = (_endAlpha + (_diffAlpha * _arg2.energy)); _arg2.color = ((_arg2.color & 0xFFFFFF) | (Math.round((_local4 * 0xFF)) << 24)); } public function get startAlpha():Number{ return ((_endAlpha + _diffAlpha)); } } }//package org.flintparticles.common.actions
Section 365
//Activity (org.flintparticles.common.activities.Activity) package org.flintparticles.common.activities { import org.flintparticles.common.emitters.*; import org.flintparticles.common.behaviours.*; public interface Activity extends Behaviour { function initialize(_arg1:Emitter):void; function update(_arg1:Emitter, _arg2:Number):void; } }//package org.flintparticles.common.activities
Section 366
//Behaviour (org.flintparticles.common.behaviours.Behaviour) package org.flintparticles.common.behaviours { import org.flintparticles.common.emitters.*; public interface Behaviour { function set priority(_arg1:int):void; function addedToEmitter(_arg1:Emitter):void; function get priority():int; function removedFromEmitter(_arg1:Emitter):void; } }//package org.flintparticles.common.behaviours
Section 367
//BehaviourArrayUtils (org.flintparticles.common.behaviours.BehaviourArrayUtils) package org.flintparticles.common.behaviours { public class BehaviourArrayUtils { public static function add(_arg1:Array, _arg2:Behaviour):uint{ var _local3:uint = _arg1.length; var _local4:uint; while (_local4 < _local3) { if (Behaviour(_arg1[_local4]).priority < _arg2.priority){ break; }; _local4++; }; _arg1.splice(_local4, 0, _arg2); return ((_local3 + 1)); } public static function remove(_arg1:Array, _arg2:Behaviour):Boolean{ var _local3:int = _arg1.indexOf(_arg2); if (_local3 != -1){ _arg1.splice(_local3, 1); return (true); }; return (false); } public static function removeAt(_arg1:Array, _arg2:uint):Behaviour{ var _local3:Behaviour = (_arg1[_arg2] as Behaviour); _arg1.splice(_arg2, 1); return (_local3); } public static function containsType(_arg1:Array, _arg2:Class):Boolean{ var _local3:uint = _arg1.length; var _local4:uint; while (_local4 < _local3) { if ((_arg1[_local4] is _arg2)){ return (true); }; _local4++; }; return (false); } public static function sortArray(_arg1:Array):void{ _arg1.sortOn("priority", Array.NUMERIC); } public static function clear(_arg1:Array):void{ _arg1.length = 0; } public static function contains(_arg1:Array, _arg2:Behaviour):Boolean{ return (!((_arg1.indexOf(_arg2) == -1))); } } }//package org.flintparticles.common.behaviours
Section 368
//Blast (org.flintparticles.common.counters.Blast) package org.flintparticles.common.counters { import org.flintparticles.common.emitters.*; public class Blast implements Counter { private var _done:Boolean;// = false private var _startCount:uint; public function Blast(_arg1:uint=0){ _startCount = _arg1; } public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{ return (0); } public function startEmitter(_arg1:Emitter):uint{ _arg1.dispatchCounterComplete(); return (_startCount); } public function resume():void{ } public function stop():void{ } public function get startCount():Number{ return (_startCount); } public function get complete():Boolean{ return (_done); } public function set startCount(_arg1:Number):void{ _startCount = _arg1; } } }//package org.flintparticles.common.counters
Section 369
//Counter (org.flintparticles.common.counters.Counter) package org.flintparticles.common.counters { import org.flintparticles.common.emitters.*; public interface Counter { function stop():void; function updateEmitter(_arg1:Emitter, _arg2:Number):uint; function get complete():Boolean; function startEmitter(_arg1:Emitter):uint; function resume():void; } }//package org.flintparticles.common.counters
Section 370
//Steady (org.flintparticles.common.counters.Steady) package org.flintparticles.common.counters { import org.flintparticles.common.emitters.*; public class Steady implements Counter { private var _stop:Boolean; private var _rateInv:Number; private var _timeToNext:Number; private var _rate:Number; public function Steady(_arg1:Number=0){ _stop = false; _rate = _arg1; _rateInv = (1 / _rate); } public function get rate():Number{ return (_rate); } public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{ if (_stop){ return (0); }; var _local3:uint; _timeToNext = (_timeToNext - _arg2); while (_timeToNext <= 0) { _local3++; _timeToNext = (_timeToNext + _rateInv); }; return (_local3); } public function set rate(_arg1:Number):void{ _rate = _arg1; _rateInv = (1 / _arg1); } public function stop():void{ _stop = true; } public function startEmitter(_arg1:Emitter):uint{ _timeToNext = _rateInv; return (0); } public function resume():void{ _stop = false; } public function get complete():Boolean{ return (false); } } }//package org.flintparticles.common.counters
Section 371
//ZeroCounter (org.flintparticles.common.counters.ZeroCounter) package org.flintparticles.common.counters { import org.flintparticles.common.emitters.*; public class ZeroCounter implements Counter { public function get complete():Boolean{ return (true); } public function stop():void{ } public function updateEmitter(_arg1:Emitter, _arg2:Number):uint{ return (0); } public function startEmitter(_arg1:Emitter):uint{ return (0); } public function resume():void{ } } }//package org.flintparticles.common.counters
Section 372
//Dot (org.flintparticles.common.displayObjects.Dot) package org.flintparticles.common.displayObjects { import flash.display.*; public class Dot extends Shape { private var _radius:Number; private var _color:uint; public function Dot(_arg1:Number=1, _arg2:uint=0xFFFFFF, _arg3:String="normal"){ _radius = _arg1; _color = _arg2; draw(); blendMode = _arg3; } public function set color(_arg1:uint):void{ _color = _arg1; draw(); } public function get radius():Number{ return (_radius); } public function get color():uint{ return (_color); } private function draw():void{ graphics.clear(); graphics.beginFill(_color); graphics.drawCircle(0, 0, _radius); graphics.endFill(); } public function set radius(_arg1:Number):void{ _radius = _arg1; draw(); } } }//package org.flintparticles.common.displayObjects
Section 373
//Line (org.flintparticles.common.displayObjects.Line) package org.flintparticles.common.displayObjects { import flash.display.*; public class Line extends Shape { private var _color:uint; private var _length:Number; public function Line(_arg1:Number=1, _arg2:uint=0xFFFFFF, _arg3:String="normal"){ _length = _arg1; _color = _arg2; draw(); blendMode = _arg3; } public function get color():uint{ return (_color); } public function get length():Number{ return (_length); } private function draw():void{ graphics.clear(); graphics.lineStyle(1, _color); graphics.moveTo((-(_length) * 0.5), 0); graphics.lineTo((_length * 0.5), 0); } public function set length(_arg1:Number):void{ _length = _arg1; draw(); } public function set color(_arg1:uint):void{ _color = _arg1; draw(); } } }//package org.flintparticles.common.displayObjects
Section 374
//RadialDot (org.flintparticles.common.displayObjects.RadialDot) package org.flintparticles.common.displayObjects { import flash.display.*; import flash.geom.*; public class RadialDot extends Shape { private var _radius:Number; private var _color:uint; public function RadialDot(_arg1:Number=1, _arg2:uint=0xFFFFFF, _arg3:String="normal"){ _radius = _arg1; _color = _arg2; draw(); blendMode = _arg3; } public function set color(_arg1:uint):void{ _color = _arg1; draw(); } public function get radius():Number{ return (_radius); } public function get color():uint{ return (_color); } private function draw():void{ graphics.clear(); var _local1:Matrix = new Matrix(); _local1.createGradientBox((_radius * 2), (_radius * 2), 0, -(_radius), -(_radius)); graphics.beginGradientFill(GradientType.RADIAL, [_color, _color], [1, 0], [0, 0xFF], _local1); graphics.drawCircle(0, 0, _radius); graphics.endFill(); } public function set radius(_arg1:Number):void{ _radius = _arg1; draw(); } } }//package org.flintparticles.common.displayObjects
Section 375
//Emitter (org.flintparticles.common.emitters.Emitter) package org.flintparticles.common.emitters { import flash.events.*; import org.flintparticles.common.events.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.initializers.*; import org.flintparticles.common.actions.*; import org.flintparticles.common.activities.*; import org.flintparticles.common.counters.*; import org.flintparticles.common.behaviours.*; import org.flintparticles.common.utils.*; public class Emitter extends EventDispatcher { protected var _running:Boolean;// = false protected var _activities:Array; protected var _particles:Array; protected var _initializers:Array; protected var _dispatchCounterComplete:Boolean;// = false protected var _counter:Counter; protected var _started:Boolean;// = false protected var _actions:Array; protected var _useInternalTick:Boolean;// = true protected var _particleFactory:ParticleFactory; protected var _fixedFrameTime:Number;// = 0 protected var _maximumFrameTime:Number;// = 0.1 public function Emitter(){ _particles = new Array(); _actions = new Array(); _initializers = new Array(); _activities = new Array(); _counter = new ZeroCounter(); } public function addInitializer(_arg1:Initializer):void{ BehaviourArrayUtils.add(_initializers, _arg1); _arg1.addedToEmitter(this); } public function stop():void{ if (_useInternalTick){ FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener); }; _started = false; killAllParticles(); } public function pause():void{ _running = false; } public function killAllParticles():void{ var _local1:int = _particles.length; var _local2:int; while (_local2 < _local1) { dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _particles[_local2])); _particleFactory.disposeParticle(_particles[_local2]); _local2++; }; _particles.length = 0; } public function runAhead(_arg1:Number, _arg2:Number=10):void{ var _local3:Number = _maximumFrameTime; var _local4:Number = (1 / _arg2); _maximumFrameTime = _local4; while (_arg1 > 0) { _arg1 = (_arg1 - _local4); update(_local4); }; _maximumFrameTime = _local3; } public function set fixedFrameTime(_arg1:Number):void{ _fixedFrameTime = _arg1; } public function get maximumFrameTime():Number{ return (_maximumFrameTime); } public function set particles(_arg1:Array):void{ killAllParticles(); addExistingParticles(_arg1, false); } public function get useInternalTick():Boolean{ return (_useInternalTick); } public function set initializers(_arg1:Array):void{ var _local2:Initializer; for each (_local2 in _initializers) { _local2.removedFromEmitter(this); }; _initializers = _arg1.slice(); BehaviourArrayUtils.sortArray(_initializers); for each (_local2 in _arg1) { _local2.addedToEmitter(this); }; } public function get particleFactory():ParticleFactory{ return (_particleFactory); } private function updateEventListener(_arg1:UpdateEvent):void{ if (_fixedFrameTime){ update(_fixedFrameTime); } else { update(_arg1.time); }; } protected function createParticle():Particle{ var _local1:Particle = _particleFactory.createParticle(); var _local2:int = _initializers.length; initParticle(_local1); var _local3:int; while (_local3 < _local2) { Initializer(_initializers[_local3]).initialize(this, _local1); _local3++; }; _particles.push(_local1); dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_CREATED, _local1)); return (_local1); } public function get particles():Array{ return (_particles); } protected function sortParticles():void{ } public function removeActivity(_arg1:Activity):void{ if (BehaviourArrayUtils.remove(_activities, _arg1)){ _arg1.removedFromEmitter(this); }; } public function set maximumFrameTime(_arg1:Number):void{ _maximumFrameTime = _arg1; } protected function initParticle(_arg1:Particle):void{ } public function addAction(_arg1:Action):void{ BehaviourArrayUtils.add(_actions, _arg1); _arg1.addedToEmitter(this); } public function hasInitializerOfType(_arg1:Class):Boolean{ return (BehaviourArrayUtils.containsType(_initializers, _arg1)); } public function removeInitializer(_arg1:Initializer):void{ if (BehaviourArrayUtils.remove(_initializers, _arg1)){ _arg1.removedFromEmitter(this); }; } public function get running():Boolean{ return (_running); } public function hasActionOfType(_arg1:Class):Boolean{ return (BehaviourArrayUtils.containsType(_actions, _arg1)); } public function get fixedFrameTime():Number{ return (_fixedFrameTime); } public function set particleFactory(_arg1:ParticleFactory):void{ _particleFactory = _arg1; } public function set useInternalTick(_arg1:Boolean):void{ if (_useInternalTick != _arg1){ _useInternalTick = _arg1; if (_started){ if (_useInternalTick){ FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener, false, 0, true); } else { FrameUpdater.instance.removeEventListener(UpdateEvent.UPDATE, updateEventListener); }; }; }; } public function resume():void{ _running = true; } public function addActivity(_arg1:Activity):void{ BehaviourArrayUtils.add(_activities, _arg1); _arg1.addedToEmitter(this); } public function get initializers():Array{ return (_initializers); } public function addExistingParticles(_arg1:Array, _arg2:Boolean=false):void{ var _local4:int; var _local5:int; var _local6:int; var _local3:int = _arg1.length; if (_arg2){ _local5 = _initializers.length; _local6 = 0; while (_local6 < _local5) { _local4 = 0; while (_local4 < _local3) { Initializer(_initializers[_local6]).initialize(this, _arg1[_local4]); _local4++; }; _local6++; }; }; _local4 = 0; while (_local4 < _local3) { _particles.push(_arg1[_local4]); dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_ADDED, _arg1[_local4])); _local4++; }; } public function hasActivityOfType(_arg1:Class):Boolean{ return (BehaviourArrayUtils.containsType(_activities, _arg1)); } public function set activities(_arg1:Array):void{ var _local2:Activity; for each (_local2 in _activities) { _local2.removedFromEmitter(this); }; _activities = _arg1.slice(); BehaviourArrayUtils.sortArray(_activities); for each (_local2 in _activities) { _local2.addedToEmitter(this); }; } public function hasInitializer(_arg1:Initializer):Boolean{ return (BehaviourArrayUtils.contains(_initializers, _arg1)); } public function removeAction(_arg1:Action):void{ if (BehaviourArrayUtils.remove(_actions, _arg1)){ _arg1.removedFromEmitter(this); }; } public function hasActivity(_arg1:Activity):Boolean{ return (BehaviourArrayUtils.contains(_activities, _arg1)); } public function get activities():Array{ return (_activities); } public function hasAction(_arg1:Action):Boolean{ return (BehaviourArrayUtils.contains(_actions, _arg1)); } public function start():void{ if (_useInternalTick){ FrameUpdater.instance.addEventListener(UpdateEvent.UPDATE, updateEventListener, false, 0, true); }; _started = true; _running = true; var _local1:int = _activities.length; var _local2:int; while (_local2 < _local1) { Activity(_activities[_local2]).initialize(this); _local2++; }; _local1 = _counter.startEmitter(this); _local2 = 0; while (_local2 < _local1) { createParticle(); _local2++; }; } public function update(_arg1:Number):void{ var _local2:int; var _local3:Particle; var _local5:Action; var _local6:int; var _local7:int; if (!_running){ return; }; if (_arg1 > _maximumFrameTime){ _arg1 = _maximumFrameTime; }; var _local4:int = _counter.updateEmitter(this, _arg1); _local2 = 0; while (_local2 < _local4) { createParticle(); _local2++; }; sortParticles(); _local4 = _activities.length; _local2 = 0; while (_local2 < _local4) { Activity(_activities[_local2]).update(this, _arg1); _local2++; }; if (_particles.length > 0){ _local4 = _actions.length; _local6 = _particles.length; _local7 = 0; while (_local7 < _local4) { _local5 = _actions[_local7]; _local2 = 0; while (_local2 < _local6) { _local3 = _particles[_local2]; _local5.update(this, _local3, _arg1); _local2++; }; _local7++; }; _local2 = _local6; while (_local2--) { _local3 = _particles[_local2]; if (_local3.isDead){ dispatchEvent(new ParticleEvent(ParticleEvent.PARTICLE_DEAD, _local3)); _particleFactory.disposeParticle(_local3); _particles.splice(_local2, 1); }; }; } else { dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_EMPTY)); }; dispatchEvent(new EmitterEvent(EmitterEvent.EMITTER_UPDATED)); if (_dispatchCounterComplete){ _dispatchCounterComplete = false; dispatchEvent(new EmitterEvent(EmitterEvent.COUNTER_COMPLETE)); }; } public function set counter(_arg1:Counter):void{ _counter = _arg1; if (running){ _counter.startEmitter(this); }; } public function set actions(_arg1:Array):void{ var _local2:Action; for each (_local2 in _actions) { _local2.removedFromEmitter(this); }; _actions = _arg1.slice(); BehaviourArrayUtils.sortArray(_actions); for each (_local2 in _arg1) { _local2.addedToEmitter(this); }; } public function dispatchCounterComplete():void{ _dispatchCounterComplete = true; } public function get counter():Counter{ return (_counter); } public function get actions():Array{ return (_actions); } } }//package org.flintparticles.common.emitters
Section 376
//Linear (org.flintparticles.common.energyEasing.Linear) package org.flintparticles.common.energyEasing { public class Linear { public static function easeOut(_arg1:Number, _arg2:Number):Number{ return ((1 - (_arg1 / _arg2))); } public static function easeIn(_arg1:Number, _arg2:Number):Number{ return ((1 - (_arg1 / _arg2))); } public static function easeInOut(_arg1:Number, _arg2:Number):Number{ return ((1 - (_arg1 / _arg2))); } public static function easeNone(_arg1:Number, _arg2:Number):Number{ return ((1 - (_arg1 / _arg2))); } } }//package org.flintparticles.common.energyEasing
Section 377
//EmitterEvent (org.flintparticles.common.events.EmitterEvent) package org.flintparticles.common.events { import flash.events.*; public class EmitterEvent extends Event { public static var COUNTER_COMPLETE:String = "counterComplete"; public static var EMITTER_UPDATED:String = "emitterUpdated"; public static var EMITTER_EMPTY:String = "emitterEmpty"; public function EmitterEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package org.flintparticles.common.events
Section 378
//ParticleEvent (org.flintparticles.common.events.ParticleEvent) package org.flintparticles.common.events { import flash.events.*; import org.flintparticles.common.particles.*; public class ParticleEvent extends Event { public var particle:Particle; public var otherObject; public static var PARTICLES_COLLISION:String = "particlesCollision"; public static var PARTICLE_ADDED:String = "particleAdded"; public static var PARTICLE_DEAD:String = "particleDead"; public static var PARTICLE_CREATED:String = "particleCreated"; public function ParticleEvent(_arg1:String, _arg2:Particle=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.particle = _arg2; } override public function clone():Event{ var _local1:ParticleEvent = new ParticleEvent(type, particle, bubbles, cancelable); _local1.otherObject = otherObject; return (_local1); } } }//package org.flintparticles.common.events
Section 379
//UpdateEvent (org.flintparticles.common.events.UpdateEvent) package org.flintparticles.common.events { import flash.events.*; public class UpdateEvent extends Event { public var time:Number; public static var UPDATE:String = "update"; public function UpdateEvent(_arg1:String, _arg2:Number=NaN, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.time = _arg2; } override public function clone():Event{ return (new UpdateEvent(type, time, bubbles, cancelable)); } } }//package org.flintparticles.common.events
Section 380
//ImageClass (org.flintparticles.common.initializers.ImageClass) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.utils.*; public class ImageClass extends InitializerBase { private var _parameters:Array; private var _imageClass:Class; public function ImageClass(_arg1:Class=null, ... _args){ _imageClass = _arg1; _parameters = _args; } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ _arg2.image = construct(_imageClass, _parameters); } public function get parameters():Array{ return (_parameters); } public function set parameters(_arg1:Array):void{ _parameters = _arg1; } public function set imageClass(_arg1:Class):void{ _imageClass = _arg1; } public function get imageClass():Class{ return (_imageClass); } } }//package org.flintparticles.common.initializers
Section 381
//Initializer (org.flintparticles.common.initializers.Initializer) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.behaviours.*; public interface Initializer extends Behaviour { function initialize(_arg1:Emitter, _arg2:Particle):void; } }//package org.flintparticles.common.initializers
Section 382
//InitializerBase (org.flintparticles.common.initializers.InitializerBase) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class InitializerBase implements Initializer { protected var _priority:int;// = 0 public function set priority(_arg1:int):void{ _priority = _arg1; } public function initialize(_arg1:Emitter, _arg2:Particle):void{ } public function removedFromEmitter(_arg1:Emitter):void{ } public function addedToEmitter(_arg1:Emitter):void{ } public function get priority():int{ return (_priority); } } }//package org.flintparticles.common.initializers
Section 383
//Lifetime (org.flintparticles.common.initializers.Lifetime) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class Lifetime extends InitializerBase { private var _max:Number; private var _min:Number; public function Lifetime(_arg1:Number=1.79769313486232E308, _arg2:Number=NaN){ _max = _arg2; _min = _arg1; } public function get lifetime():Number{ return (((_min == _max)) ? _min : ((_max + _min) * 0.5)); } public function get maxLifetime():Number{ return (_max); } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ if (isNaN(_max)){ _arg2.lifetime = _min; } else { _arg2.lifetime = (_min + (Math.random() * (_max - _min))); }; } public function set lifetime(_arg1:Number):void{ _max = (_min = _arg1); } public function set minLifetime(_arg1:Number):void{ _min = _arg1; } public function set maxLifetime(_arg1:Number):void{ _max = _arg1; } public function get minLifetime():Number{ return (_min); } } }//package org.flintparticles.common.initializers
Section 384
//ScaleImageInit (org.flintparticles.common.initializers.ScaleImageInit) package org.flintparticles.common.initializers { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class ScaleImageInit extends InitializerBase { private var _max:Number; private var _min:Number; public function ScaleImageInit(_arg1:Number=1, _arg2:Number=NaN){ _min = _arg1; if (isNaN(_arg2)){ _max = _min; } else { _max = _arg2; }; } public function get scale():Number{ return (((_min == _max)) ? _min : ((_max + _min) / 2)); } public function set maxScale(_arg1:Number):void{ _max = _arg1; } public function get maxScale():Number{ return (_max); } public function set minScale(_arg1:Number):void{ _min = _arg1; } public function set scale(_arg1:Number):void{ _max = (_min = _arg1); } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ if (_max == _min){ _arg2.scale = _min; } else { _arg2.scale = (_min + (Math.random() * (_max - _min))); }; } public function get minScale():Number{ return (_min); } } }//package org.flintparticles.common.initializers
Section 385
//SharedImage (org.flintparticles.common.initializers.SharedImage) package org.flintparticles.common.initializers { import flash.display.*; import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; public class SharedImage extends InitializerBase { private var _image:DisplayObject; public function SharedImage(_arg1:DisplayObject=null){ _image = _arg1; } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ _arg2.image = _image; } public function set image(_arg1:DisplayObject):void{ _image = _arg1; } public function get image():DisplayObject{ return (_image); } } }//package org.flintparticles.common.initializers
Section 386
//Particle (org.flintparticles.common.particles.Particle) package org.flintparticles.common.particles { import flash.geom.*; import flash.utils.*; public class Particle { public var energy:Number;// = 1 public var lifetime:Number;// = 0 public var scale:Number;// = 1 public var image;// = null public var color:uint;// = 4294967295 public var collisionRadius:Number;// = 1 private var _colorTransform:ColorTransform;// = null private var _previousColor:uint; public var isDead:Boolean;// = false public var mass:Number;// = 1 private var _dictionary:Dictionary;// = null public var age:Number;// = 0 public function get dictionary():Dictionary{ if (_dictionary == null){ _dictionary = new Dictionary(true); }; return (_dictionary); } public function get colorTransform():ColorTransform{ if (((!(_colorTransform)) || (!((_previousColor == color))))){ _colorTransform = new ColorTransform((((color >>> 16) & 0xFF) / 0xFF), (((color >>> 8) & 0xFF) / 0xFF), ((color & 0xFF) / 0xFF), (((color >>> 24) & 0xFF) / 0xFF), 0, 0, 0, 0); _previousColor = color; }; return (_colorTransform); } protected function cloneInto(_arg1:Particle):Particle{ var _local2:Object; _arg1.color = color; _arg1.scale = scale; _arg1.mass = mass; _arg1.collisionRadius = collisionRadius; _arg1.lifetime = lifetime; _arg1.age = age; _arg1.energy = energy; _arg1.isDead = isDead; _arg1.image = image; if (_dictionary){ _arg1._dictionary = new Dictionary(true); for (_local2 in _dictionary) { _arg1._dictionary[_local2] = _dictionary[_local2]; }; }; return (_arg1); } public function get alpha():Number{ return ((((color & 4278190080) >>> 24) / 0xFF)); } public function initialize():void{ color = 4294967295; scale = 1; mass = 1; collisionRadius = 1; lifetime = 0; age = 0; energy = 1; isDead = false; image = null; _dictionary = null; _colorTransform = null; } public function clone(_arg1:ParticleFactory=null):Particle{ var _local2:Particle; if (_arg1){ _local2 = _arg1.createParticle(); } else { _local2 = new Particle(); }; return (cloneInto(_local2)); } } }//package org.flintparticles.common.particles
Section 387
//ParticleFactory (org.flintparticles.common.particles.ParticleFactory) package org.flintparticles.common.particles { public interface ParticleFactory { function clearAllParticles():void; function createParticle():Particle; function disposeParticle(_arg1:Particle):void; } }//package org.flintparticles.common.particles
Section 388
//Renderer (org.flintparticles.common.renderers.Renderer) package org.flintparticles.common.renderers { import org.flintparticles.common.emitters.*; public interface Renderer { function removeEmitter(_arg1:Emitter):void; function addEmitter(_arg1:Emitter):void; } }//package org.flintparticles.common.renderers
Section 389
//SpriteRendererBase (org.flintparticles.common.renderers.SpriteRendererBase) package org.flintparticles.common.renderers { import flash.events.*; import flash.display.*; import org.flintparticles.common.emitters.*; import org.flintparticles.common.events.*; import org.flintparticles.common.particles.*; public class SpriteRendererBase extends Sprite implements Renderer { protected var _emitters:Array; public function SpriteRendererBase(){ _emitters = new Array(); mouseEnabled = false; mouseChildren = false; addEventListener(Event.ADDED_TO_STAGE, addedToStage, false, 0, true); } private function particleAdded(_arg1:ParticleEvent):void{ addParticle(_arg1.particle); if (stage){ stage.invalidate(); }; } public function set emitters(_arg1:Array):void{ var _local2:Emitter; for each (_local2 in _emitters) { removeEmitter(_local2); }; for each (_local2 in _arg1) { addEmitter(_local2); }; } private function addedToStage(_arg1:Event):void{ if (stage){ stage.invalidate(); }; } public function get emitters():Array{ return (_emitters); } protected function addParticle(_arg1:Particle):void{ } protected function updateParticles(_arg1:Event):void{ var _local2:Array = new Array(); var _local3:int; while (_local3 < _emitters.length) { _local2 = _local2.concat(Emitter(_emitters[_local3]).particles); _local3++; }; renderParticles(_local2); } protected function emitterUpdated(_arg1:EmitterEvent):void{ if (stage){ stage.invalidate(); }; } public function removeEmitter(_arg1:Emitter):void{ var _local3:Particle; var _local2:int; while (_local2 < _emitters.length) { if (_emitters[_local2] == _arg1){ _emitters.splice(_local2, 1); _arg1.removeEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated); _arg1.removeEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded); _arg1.removeEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded); _arg1.removeEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved); for each (_local3 in _arg1.particles) { removeParticle(_local3); }; if (_emitters.length == 0){ removeEventListener(Event.RENDER, updateParticles); renderParticles([]); } else { if (stage){ stage.invalidate(); }; }; return; }; _local2++; }; } protected function renderParticles(_arg1:Array):void{ } protected function removeParticle(_arg1:Particle):void{ } private function particleRemoved(_arg1:ParticleEvent):void{ removeParticle(_arg1.particle); if (stage){ stage.invalidate(); }; } public function addEmitter(_arg1:Emitter):void{ var _local2:Particle; _emitters.push(_arg1); if (stage){ stage.invalidate(); }; _arg1.addEventListener(EmitterEvent.EMITTER_UPDATED, emitterUpdated, false, 0, true); _arg1.addEventListener(ParticleEvent.PARTICLE_CREATED, particleAdded, false, 0, true); _arg1.addEventListener(ParticleEvent.PARTICLE_ADDED, particleAdded, false, 0, true); _arg1.addEventListener(ParticleEvent.PARTICLE_DEAD, particleRemoved, false, 0, true); for each (_local2 in _arg1.particles) { addParticle(_local2); }; if (_emitters.length == 1){ addEventListener(Event.RENDER, updateParticles, false, 0, true); }; } } }//package org.flintparticles.common.renderers
Section 390
//construct (org.flintparticles.common.utils.construct) package org.flintparticles.common.utils { public function construct(_arg1:Class, _arg2:Array){ switch (_arg2.length){ case 0: return (new (_arg1)); case 1: return (new _arg1(_arg2[0])); case 2: return (new _arg1(_arg2[0], _arg2[1])); case 3: return (new _arg1(_arg2[0], _arg2[1], _arg2[2])); case 4: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3])); case 5: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4])); case 6: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5])); case 7: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6])); case 8: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7])); case 9: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8])); case 10: return (new _arg1(_arg2[0], _arg2[1], _arg2[2], _arg2[3], _arg2[4], _arg2[5], _arg2[6], _arg2[7], _arg2[8], _arg2[9])); default: return (null); }; } }//package org.flintparticles.common.utils
Section 391
//FrameUpdater (org.flintparticles.common.utils.FrameUpdater) package org.flintparticles.common.utils { import flash.events.*; import flash.display.*; import org.flintparticles.common.events.*; import flash.utils.*; public class FrameUpdater extends EventDispatcher { private var _shape:Shape; private var _running:Boolean;// = false private var _time:Number; private static var _instance:FrameUpdater; public function FrameUpdater(){ _shape = new Shape(); } private function startTimer():void{ _shape.addEventListener(Event.ENTER_FRAME, frameUpdate, false, 0, true); _time = getTimer(); _running = true; } private function stopTimer():void{ _shape.removeEventListener(Event.ENTER_FRAME, frameUpdate); _running = false; } override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ super.removeEventListener(_arg1, _arg2, _arg3); if (((_running) && (!(hasEventListener(UpdateEvent.UPDATE))))){ stopTimer(); }; } override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); if (((!(_running)) && (hasEventListener(UpdateEvent.UPDATE)))){ startTimer(); }; } private function frameUpdate(_arg1:Event):void{ var _local2:int = _time; _time = getTimer(); var _local3:Number = ((_time - _local2) * 0.001); dispatchEvent(new UpdateEvent(UpdateEvent.UPDATE, _local3)); } public static function get instance():FrameUpdater{ if (_instance == null){ _instance = new (FrameUpdater); }; return (_instance); } } }//package org.flintparticles.common.utils
Section 392
//Maths (org.flintparticles.common.utils.Maths) package org.flintparticles.common.utils { public class Maths { private static const DEGTORAD:Number = (Math.PI / 180); private static const RADTODEG:Number = (180 / Math.PI); public static function asRadians(_arg1:Number):Number{ return ((_arg1 * DEGTORAD)); } public static function asDegrees(_arg1:Number):Number{ return ((_arg1 * RADTODEG)); } } }//package org.flintparticles.common.utils
Section 393
//Accelerate (org.flintparticles.twoD.actions.Accelerate) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.particles.*; public class Accelerate extends ActionBase { private var _x:Number; private var _y:Number; public function Accelerate(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } public function set x(_arg1:Number):void{ _x = _arg1; } public function get y():Number{ return (_y); } public function get x():Number{ return (_x); } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D; _local4 = Particle2D(_arg2); Particle2D(_arg2).velX = (_local4.velX + (_x * _arg3)); _local4.velY = (_local4.velY + (_y * _arg3)); } public function set y(_arg1:Number):void{ _y = _arg1; } } }//package org.flintparticles.twoD.actions
Section 394
//DeathZone (org.flintparticles.twoD.actions.DeathZone) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.particles.*; public class DeathZone extends ActionBase { private var _invertZone:Boolean; private var _zone:Zone2D; private var p:Particle2D; private var inside:Boolean; public function DeathZone(_arg1:Zone2D=null, _arg2:Boolean=false){ priority = -20; this.zone = _arg1; this.zoneIsSafe = _arg2; } public function get zoneIsSafe():Boolean{ return (_invertZone); } public function set zoneIsSafe(_arg1:Boolean):void{ _invertZone = _arg1; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ p = Particle2D(_arg2); inside = _zone.contains(p.x, p.y); if (_invertZone){ if (!inside){ p.isDead = true; }; } else { if (inside){ p.isDead = true; }; }; } public function get zone():Zone2D{ return (_zone); } public function set zone(_arg1:Zone2D):void{ _zone = _arg1; } } }//package org.flintparticles.twoD.actions
Section 395
//Move (org.flintparticles.twoD.actions.Move) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.particles.*; public class Move extends ActionBase { public function Move(){ priority = -10; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D = Particle2D(_arg2); Particle2D(_arg2).previousX = _local4.x; _local4.previousY = _local4.y; _local4.x = (_local4.x + (_local4.velX * _arg3)); _local4.y = (_local4.y + (_local4.velY * _arg3)); } } }//package org.flintparticles.twoD.actions
Section 396
//RandomDrift (org.flintparticles.twoD.actions.RandomDrift) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.particles.*; public class RandomDrift extends ActionBase { private var _sizeX:Number; private var _sizeY:Number; public function RandomDrift(_arg1:Number=0, _arg2:Number=0){ this.driftX = _arg1; this.driftY = _arg2; } override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D; _local4 = Particle2D(_arg2); Particle2D(_arg2).velX = (_local4.velX + (((Math.random() - 0.5) * _sizeX) * _arg3)); _local4.velY = (_local4.velY + (((Math.random() - 0.5) * _sizeY) * _arg3)); } public function get driftY():Number{ return ((_sizeY / 2)); } public function set driftY(_arg1:Number):void{ _sizeY = (_arg1 * 2); } public function set driftX(_arg1:Number):void{ _sizeX = (_arg1 * 2); } public function get driftX():Number{ return ((_sizeX / 2)); } } }//package org.flintparticles.twoD.actions
Section 397
//RotateToDirection (org.flintparticles.twoD.actions.RotateToDirection) package org.flintparticles.twoD.actions { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.actions.*; import org.flintparticles.twoD.particles.*; public class RotateToDirection extends ActionBase { override public function update(_arg1:Emitter, _arg2:Particle, _arg3:Number):void{ var _local4:Particle2D = Particle2D(_arg2); _local4.rotation = Math.atan2(_local4.velY, _local4.velX); } } }//package org.flintparticles.twoD.actions
Section 398
//Emitter2D (org.flintparticles.twoD.emitters.Emitter2D) package org.flintparticles.twoD.emitters { import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.utils.*; import org.flintparticles.twoD.particles.*; public class Emitter2D extends Emitter { protected var _y:Number;// = 0 public var spaceSort:Boolean;// = false public var spaceSortedX:Array; protected var _x:Number;// = 0 protected var _rotation:Number;// = 0 protected static var _creator:ParticleCreator2D = new ParticleCreator2D(); public function Emitter2D(){ _particleFactory = _creator; } public function get y():Number{ return (_y); } override protected function initParticle(_arg1:Particle):void{ var _local2:Particle2D = Particle2D(_arg1); _local2.x = _x; _local2.y = _y; _local2.previousX = _x; _local2.previousY = _y; _local2.rotation = _rotation; } override protected function sortParticles():void{ var _local1:int; var _local2:int; if (spaceSort){ spaceSortedX = _particles.sortOn("x", (Array.NUMERIC | Array.RETURNINDEXEDARRAY)); _local1 = _particles.length; _local2 = 0; while (_local2 < _local1) { Particle2D(_particles[spaceSortedX[_local2]]).sortID = _local2; _local2++; }; }; } public function set x(_arg1:Number):void{ _x = _arg1; } public function set rotRadians(_arg1:Number):void{ _rotation = _arg1; } public function get x():Number{ return (_x); } public function get rotRadians():Number{ return (_rotation); } public function set rotation(_arg1:Number):void{ _rotation = Maths.asRadians(_arg1); } public function get rotation():Number{ return (Maths.asDegrees(_rotation)); } public function set y(_arg1:Number):void{ _y = _arg1; } public static function get defaultParticleFactory():ParticleFactory{ return (_creator); } } }//package org.flintparticles.twoD.emitters
Section 399
//Position (org.flintparticles.twoD.initializers.Position) package org.flintparticles.twoD.initializers { import flash.geom.*; import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.initializers.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.particles.*; public class Position extends InitializerBase { private var _zone:Zone2D; public function Position(_arg1:Zone2D=null){ this.zone = _arg1; } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ var _local3:Particle2D; var _local5:Number; var _local6:Number; _local3 = Particle2D(_arg2); var _local4:Point = _zone.getLocation(); if (_local3.rotation == 0){ _local3.x = (_local3.x + _local4.x); _local3.y = (_local3.y + _local4.y); } else { _local5 = Math.sin(_local3.rotation); _local6 = Math.cos(_local3.rotation); _local3.x = (_local3.x + ((_local6 * _local4.x) - (_local5 * _local4.y))); _local3.y = (_local3.y + ((_local6 * _local4.y) + (_local5 * _local4.x))); }; _local3.previousX = _local3.x; _local3.previousY = _local3.y; } public function set zone(_arg1:Zone2D):void{ _zone = _arg1; } public function get zone():Zone2D{ return (_zone); } } }//package org.flintparticles.twoD.initializers
Section 400
//Velocity (org.flintparticles.twoD.initializers.Velocity) package org.flintparticles.twoD.initializers { import flash.geom.*; import org.flintparticles.common.emitters.*; import org.flintparticles.common.particles.*; import org.flintparticles.common.initializers.*; import org.flintparticles.twoD.zones.*; import org.flintparticles.twoD.particles.*; public class Velocity extends InitializerBase { private var _zone:Zone2D; public function Velocity(_arg1:Zone2D=null){ this.zone = _arg1; } override public function initialize(_arg1:Emitter, _arg2:Particle):void{ var _local5:Number; var _local6:Number; var _local3:Particle2D = Particle2D(_arg2); var _local4:Point = _zone.getLocation(); if (_local3.rotation == 0){ _local3.velX = _local4.x; _local3.velY = _local4.y; } else { _local5 = Math.sin(_local3.rotation); _local6 = Math.cos(_local3.rotation); _local3.velX = ((_local6 * _local4.x) - (_local5 * _local4.y)); _local3.velY = ((_local6 * _local4.y) + (_local5 * _local4.x)); }; } public function set zone(_arg1:Zone2D):void{ _zone = _arg1; } public function get zone():Zone2D{ return (_zone); } } }//package org.flintparticles.twoD.initializers
Section 401
//Particle2D (org.flintparticles.twoD.particles.Particle2D) package org.flintparticles.twoD.particles { import flash.geom.*; import org.flintparticles.common.particles.*; public class Particle2D extends Particle { public var y:Number;// = 0 public var previousX:Number;// = 0 public var previousY:Number;// = 0 private var _previousRadius:Number; public var angVelocity:Number;// = 0 public var velX:Number;// = 0 public var velY:Number;// = 0 private var _previousMass:Number; public var x:Number;// = 0 public var sortID:int;// = -1 private var _inertia:Number; public var rotation:Number;// = 0 override public function clone(_arg1:ParticleFactory=null):Particle{ var _local2:Particle2D; if (_arg1){ _local2 = (_arg1.createParticle() as Particle2D); } else { _local2 = new Particle2D(); }; cloneInto(_local2); _local2.x = x; _local2.y = y; _local2.velX = velX; _local2.velY = velY; _local2.rotation = rotation; _local2.angVelocity = angVelocity; return (_local2); } override public function initialize():void{ super.initialize(); x = 0; y = 0; previousX = 0; previousY = 0; velX = 0; velY = 0; rotation = 0; angVelocity = 0; sortID = -1; } public function get matrixTransform():Matrix{ var _local1:Number = (scale * Math.cos(rotation)); var _local2:Number = (scale * Math.sin(rotation)); return (new Matrix(_local1, _local2, -(_local2), _local1, x, y)); } public function get inertia():Number{ if (((!((mass == _previousMass))) || (!((collisionRadius == _previousRadius))))){ _inertia = (((mass * collisionRadius) * collisionRadius) * 0.5); _previousMass = mass; _previousRadius = collisionRadius; }; return (_inertia); } } }//package org.flintparticles.twoD.particles
Section 402
//ParticleCreator2D (org.flintparticles.twoD.particles.ParticleCreator2D) package org.flintparticles.twoD.particles { import org.flintparticles.common.particles.*; public class ParticleCreator2D implements ParticleFactory { private var _particles:Array; public function ParticleCreator2D(){ _particles = new Array(); } public function clearAllParticles():void{ _particles = new Array(); } public function disposeParticle(_arg1:Particle):void{ if ((_arg1 is Particle2D)){ _arg1.initialize(); _particles.push(_arg1); }; } public function createParticle():Particle{ if (_particles.length){ return (_particles.pop()); }; return (new Particle2D()); } } }//package org.flintparticles.twoD.particles
Section 403
//BitmapRenderer (org.flintparticles.twoD.renderers.BitmapRenderer) package org.flintparticles.twoD.renderers { import flash.display.*; import flash.filters.*; import flash.geom.*; import org.flintparticles.twoD.particles.*; import org.flintparticles.common.renderers.*; public class BitmapRenderer extends SpriteRendererBase { protected var _bitmap:Bitmap; protected var _bitmapData:BitmapData; protected var _clearBetweenFrames:Boolean; protected var _colorMap:Array; protected var _smoothing:Boolean; protected var _canvas:Rectangle; protected var _postFilters:Array; protected var _preFilters:Array; protected static var ZERO_POINT:Point = new Point(0, 0); public function BitmapRenderer(_arg1:Rectangle, _arg2:Boolean=false){ mouseEnabled = false; mouseChildren = false; _smoothing = _arg2; _preFilters = new Array(); _postFilters = new Array(); _canvas = _arg1; createBitmap(); _clearBetweenFrames = true; } public function get clearBetweenFrames():Boolean{ return (_clearBetweenFrames); } public function set clearBetweenFrames(_arg1:Boolean):void{ _clearBetweenFrames = _arg1; } override protected function renderParticles(_arg1:Array):void{ var _local2:int; var _local3:int; if (!_bitmap){ return; }; _bitmapData.lock(); _local3 = _preFilters.length; _local2 = 0; while (_local2 < _local3) { _bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _preFilters[_local2]); _local2++; }; if (((_clearBetweenFrames) && ((_local3 == 0)))){ _bitmapData.fillRect(_bitmap.bitmapData.rect, 0); }; _local3 = _arg1.length; if (_local3){ _local2 = _local3; while (_local2--) { drawParticle(_arg1[_local2]); }; }; _local3 = _postFilters.length; _local2 = 0; while (_local2 < _local3) { _bitmapData.applyFilter(_bitmapData, _bitmapData.rect, BitmapRenderer.ZERO_POINT, _postFilters[_local2]); _local2++; }; if (_colorMap){ _bitmapData.paletteMap(_bitmapData, _bitmapData.rect, ZERO_POINT, _colorMap[1], _colorMap[2], _colorMap[3], _colorMap[0]); }; _bitmapData.unlock(); } protected function createBitmap():void{ if (!_canvas){ return; }; if (((_bitmap) && (_bitmapData))){ _bitmapData.dispose(); _bitmapData = null; }; if (_bitmap){ removeChild(_bitmap); _bitmap = null; }; _bitmap = new Bitmap(null, "auto", _smoothing); _bitmapData = new BitmapData(Math.ceil(_canvas.width), Math.ceil(_canvas.height), true, 0); _bitmap.bitmapData = _bitmapData; addChild(_bitmap); _bitmap.x = _canvas.x; _bitmap.y = _canvas.y; } public function get bitmapData():BitmapData{ return (_bitmapData); } public function set canvas(_arg1:Rectangle):void{ _canvas = _arg1; createBitmap(); } public function clearPaletteMap():void{ _colorMap = null; } public function get preFilters():Array{ return (_preFilters.slice()); } public function removeFilter(_arg1:BitmapFilter):void{ var _local2:int; while (_local2 < _preFilters.length) { if (_preFilters[_local2] == _arg1){ _preFilters.splice(_local2, 1); return; }; _local2++; }; _local2 = 0; while (_local2 < _postFilters.length) { if (_postFilters[_local2] == _arg1){ _postFilters.splice(_local2, 1); return; }; _local2++; }; } public function set smoothing(_arg1:Boolean):void{ _smoothing = _arg1; if (_bitmap){ _bitmap.smoothing = _arg1; }; } public function set preFilters(_arg1:Array):void{ var _local2:BitmapFilter; for each (_local2 in _preFilters) { removeFilter(_local2); }; for each (_local2 in _arg1) { addFilter(_local2, false); }; } protected function drawParticle(_arg1:Particle2D):void{ var _local2:Matrix; _local2 = _arg1.matrixTransform; _local2.translate(-(_canvas.x), -(_canvas.y)); _bitmapData.draw(_arg1.image, _local2, _arg1.colorTransform, DisplayObject(_arg1.image).blendMode, null, _smoothing); } public function setPaletteMap(_arg1:Array=null, _arg2:Array=null, _arg3:Array=null, _arg4:Array=null):void{ _colorMap = new Array(4); _colorMap[0] = _arg4; _colorMap[1] = _arg1; _colorMap[2] = _arg2; _colorMap[3] = _arg3; } public function get smoothing():Boolean{ return (_smoothing); } public function set postFilters(_arg1:Array):void{ var _local2:BitmapFilter; for each (_local2 in _postFilters) { removeFilter(_local2); }; for each (_local2 in _arg1) { addFilter(_local2, true); }; } public function addFilter(_arg1:BitmapFilter, _arg2:Boolean=false):void{ if (_arg2){ _postFilters.push(_arg1); } else { _preFilters.push(_arg1); }; } public function get canvas():Rectangle{ return (_canvas); } public function get postFilters():Array{ return (_postFilters.slice()); } } }//package org.flintparticles.twoD.renderers
Section 404
//DisplayObjectRenderer (org.flintparticles.twoD.renderers.DisplayObjectRenderer) package org.flintparticles.twoD.renderers { import flash.display.*; import org.flintparticles.common.particles.*; import org.flintparticles.twoD.particles.*; import org.flintparticles.common.renderers.*; public class DisplayObjectRenderer extends SpriteRendererBase { override protected function removeParticle(_arg1:Particle):void{ removeChild(_arg1.image); } override protected function addParticle(_arg1:Particle):void{ var _local2:Particle2D = (_arg1 as Particle2D); addChildAt(_local2.image, 0); var _local3:DisplayObject = _local2.image; _local3.transform.colorTransform = _local2.colorTransform; _local3.transform.matrix = _local2.matrixTransform; } override protected function renderParticles(_arg1:Array):void{ var _local2:Particle2D; var _local3:DisplayObject; var _local4:int = _arg1.length; var _local5:int; while (_local5 < _local4) { _local2 = _arg1[_local5]; _local3 = _local2.image; _local3.transform.colorTransform = _local2.colorTransform; _local3.transform.matrix = _local2.matrixTransform; _local5++; }; } } }//package org.flintparticles.twoD.renderers
Section 405
//LineZone (org.flintparticles.twoD.zones.LineZone) package org.flintparticles.twoD.zones { import flash.geom.*; public class LineZone implements Zone2D { private var _start:Point; private var _length:Point; private var _end:Point; public function LineZone(_arg1:Point=null, _arg2:Point=null){ if (_arg1 == null){ _start = new Point(0, 0); } else { _start = _arg1; }; if (_arg2 == null){ _end = new Point(0, 0); } else { _end = _arg2; }; _length = _end.subtract(_start); } public function get start():Point{ return (_start); } public function set start(_arg1:Point):void{ _start = _arg1; _length = _end.subtract(_start); } public function set endY(_arg1:Number):void{ _end.y = _arg1; _length = _end.subtract(_start); } public function set startX(_arg1:Number):void{ _start.x = _arg1; _length = _end.subtract(_start); } public function set startY(_arg1:Number):void{ _start.y = _arg1; _length = _end.subtract(_start); } public function getArea():Number{ return (_length.length); } public function getLocation():Point{ var _local1:Point = _start.clone(); var _local2:Number = Math.random(); _local1.x = (_local1.x + (_length.x * _local2)); _local1.y = (_local1.y + (_length.y * _local2)); return (_local1); } public function get endX():Number{ return (_end.x); } public function set end(_arg1:Point):void{ _end = _arg1; _length = _end.subtract(_start); } public function get startY():Number{ return (_start.y); } public function set endX(_arg1:Number):void{ _end.x = _arg1; _length = _end.subtract(_start); } public function get end():Point{ return (_end); } public function get startX():Number{ return (_start.x); } public function get endY():Number{ return (_end.y); } public function contains(_arg1:Number, _arg2:Number):Boolean{ if ((((_arg1 - _start.x) * _length.y) - ((_arg2 - _start.y) * _length.x)) != 0){ return (false); }; return (((((_arg1 - _start.x) * (_arg1 - _end.x)) + ((_arg2 - _start.y) * (_arg2 - _end.y))) <= 0)); } } }//package org.flintparticles.twoD.zones
Section 406
//PointZone (org.flintparticles.twoD.zones.PointZone) package org.flintparticles.twoD.zones { import flash.geom.*; public class PointZone implements Zone2D { private var _point:Point; public function PointZone(_arg1:Point=null){ if (_arg1 == null){ _point = new Point(0, 0); } else { _point = _arg1; }; } public function set point(_arg1:Point):void{ _point = _arg1; } public function getArea():Number{ return (1); } public function getLocation():Point{ return (_point.clone()); } public function get point():Point{ return (_point); } public function set y(_arg1:Number):void{ _point.y = _arg1; } public function set x(_arg1:Number):void{ _point.x = _arg1; } public function get x():Number{ return (_point.x); } public function get y():Number{ return (_point.y); } public function contains(_arg1:Number, _arg2:Number):Boolean{ return ((((_point.x == _arg1)) && ((_point.y == _arg2)))); } } }//package org.flintparticles.twoD.zones
Section 407
//RectangleZone (org.flintparticles.twoD.zones.RectangleZone) package org.flintparticles.twoD.zones { import flash.geom.*; public class RectangleZone implements Zone2D { private var _height:Number; private var _width:Number; private var _bottom:Number; private var _right:Number; private var _top:Number; private var _left:Number; public function RectangleZone(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ _left = _arg1; _top = _arg2; _right = _arg3; _bottom = _arg4; _width = (_arg3 - _arg1); _height = (_arg4 - _arg2); } public function getArea():Number{ return ((_width * _height)); } public function get top():Number{ return (_top); } public function set bottom(_arg1:Number):void{ _bottom = _arg1; if (((!(isNaN(_top))) && (!(isNaN(_bottom))))){ _height = (bottom - top); }; } public function get right():Number{ return (_right); } public function set left(_arg1:Number):void{ _left = _arg1; if (((!(isNaN(_right))) && (!(isNaN(_left))))){ _width = (right - left); }; } public function get left():Number{ return (_left); } public function set top(_arg1:Number):void{ _top = _arg1; if (((!(isNaN(_top))) && (!(isNaN(_bottom))))){ _height = (bottom - top); }; } public function contains(_arg1:Number, _arg2:Number):Boolean{ return ((((((((_arg1 >= _left)) && ((_arg1 <= _right)))) && ((_arg2 >= _top)))) && ((_arg2 <= _bottom)))); } public function get bottom():Number{ return (_bottom); } public function set right(_arg1:Number):void{ _right = _arg1; if (((!(isNaN(_right))) && (!(isNaN(_left))))){ _width = (right - left); }; } public function getLocation():Point{ return (new Point((_left + (Math.random() * _width)), (_top + (Math.random() * _height)))); } } }//package org.flintparticles.twoD.zones
Section 408
//Zone2D (org.flintparticles.twoD.zones.Zone2D) package org.flintparticles.twoD.zones { import flash.geom.*; public interface Zone2D { function getArea():Number; function getLocation():Point; function contains(_arg1:Number, _arg2:Number):Boolean; } }//package org.flintparticles.twoD.zones
Section 409
//Background (Background) package { import flash.display.*; public dynamic class Background extends Sprite { } }//package
Section 410
//Front (Front) package { import flash.display.*; public dynamic class Front extends MovieClip { } }//package
Section 411
//I6introsmall (I6introsmall) package { import flash.display.*; public dynamic class I6introsmall extends MovieClip { } }//package
Section 412
//Level10Terrain (Level10Terrain) package { import flash.display.*; public dynamic class Level10Terrain extends Sprite { } }//package
Section 413
//Level11Terrain (Level11Terrain) package { import flash.display.*; public dynamic class Level11Terrain extends Sprite { } }//package
Section 414
//Level12Terrain (Level12Terrain) package { import flash.display.*; public dynamic class Level12Terrain extends Sprite { } }//package
Section 415
//Level13Terrain (Level13Terrain) package { import flash.display.*; public dynamic class Level13Terrain extends Sprite { } }//package
Section 416
//Level14Terrain (Level14Terrain) package { import flash.display.*; public dynamic class Level14Terrain extends Sprite { } }//package
Section 417
//Level1Terrain (Level1Terrain) package { import flash.display.*; public dynamic class Level1Terrain extends Sprite { } }//package
Section 418
//Level2Terrain (Level2Terrain) package { import flash.display.*; public dynamic class Level2Terrain extends Sprite { } }//package
Section 419
//Level3Terrain (Level3Terrain) package { import flash.display.*; public dynamic class Level3Terrain extends Sprite { } }//package
Section 420
//Level4Terrain (Level4Terrain) package { import flash.display.*; public dynamic class Level4Terrain extends Sprite { } }//package
Section 421
//Level5Terrain (Level5Terrain) package { import flash.display.*; public dynamic class Level5Terrain extends Sprite { } }//package
Section 422
//Level6Terrain (Level6Terrain) package { import flash.display.*; public dynamic class Level6Terrain extends Sprite { } }//package
Section 423
//level7Back (level7Back) package { import flash.display.*; public dynamic class level7Back extends Sprite { } }//package
Section 424
//Level7Terrain (Level7Terrain) package { import flash.display.*; public dynamic class Level7Terrain extends Sprite { } }//package
Section 425
//Level8Back (Level8Back) package { import flash.display.*; public dynamic class Level8Back extends Sprite { } }//package
Section 426
//Level8Terrain (Level8Terrain) package { import flash.display.*; public dynamic class Level8Terrain extends Sprite { } }//package
Section 427
//Level9Terrain (Level9Terrain) package { import flash.display.*; public dynamic class Level9Terrain extends Sprite { } }//package
Section 428
//LevelSelector (LevelSelector) package { import flash.display.*; public class LevelSelector extends Sprite { public function generateLevel14Background():Sprite{ var _local1:Level14Terrain = new Level14Terrain(); return (_local1); } public function generateLevel7BackgroundBack():Sprite{ var _local1:level7Back = new level7Back(); return (_local1); } public function generateLevel8BackgroundBack():Sprite{ var _local1:Level8Back = new Level8Back(); return (_local1); } public function generateLevel1Background():Sprite{ var _local1:Level1Terrain = new Level1Terrain(); return (_local1); } public function generateLevel2Background():Sprite{ var _local1:Level2Terrain = new Level2Terrain(); return (_local1); } public function generateLevel3Background():Sprite{ var _local1:Level3Terrain = new Level3Terrain(); return (_local1); } public function generateLevel4Background():Sprite{ var _local1:Level4Terrain = new Level4Terrain(); return (_local1); } public function generateLevel5Background():Sprite{ var _local1:Level5Terrain = new Level5Terrain(); return (_local1); } public function generateLevel6Background():Sprite{ var _local1:Level6Terrain = new Level6Terrain(); return (_local1); } public function generateLevel7Background():Sprite{ var _local1:Level7Terrain = new Level7Terrain(); return (_local1); } public function generateLevel8Background():Sprite{ var _local1:Level8Terrain = new Level8Terrain(); return (_local1); } public function generateLevel9Background():Sprite{ var _local1:Level9Terrain = new Level9Terrain(); return (_local1); } public function generateLevel10Background():Sprite{ var _local1:Level10Terrain = new Level10Terrain(); return (_local1); } public function generateLevel11Background():Sprite{ var _local1:Level11Terrain = new Level11Terrain(); return (_local1); } public function generateLevel12Background():Sprite{ var _local1:Level12Terrain = new Level12Terrain(); return (_local1); } public function generateLevel13Background():Sprite{ var _local1:Level13Terrain = new Level13Terrain(); return (_local1); } } }//package
Section 429
//Main (Main) package { import flash.events.*; import flash.display.*; import gs.*; import mochi.as3.*; import flash.net.*; import Clases.Game.LevelSelection.*; import Clases.Button.*; import gs.easing.*; import Clases.Button.ButtonEfects.*; import Clases.Game.Levels.AllLevels.Resources.*; import Clases.Game.Backgrounds.*; public dynamic class Main extends MovieClip { private var soundResources:ResourceSound; private var scores:GameButton; private var objArray:Array; private var resources:ResourcesScreen; private var myButton:GameButton; public static var currentScore:int = 0; public static var sounOption:Boolean = true; public static var gameMode:String; public static var actualLevel:int = 0; public static var actualLives:int = 0; private static var local_data:SharedObject = SharedObject.getLocal("user_data_Snow_truck_version_4"); public function Main():void{ resources = new ResourcesScreen(); soundResources = new ResourceSound(); super(); if (stage){ init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); }; } private function easy_display(_arg1:MouseEvent):void{ MochiEvents.startPlay(); actualLives = 6; currentScore = 0; gameMode = "easy"; levelSelection(); } private function init(_arg1:Event=null):void{ MochiServices.connect("2750d69ebfb4853f", root); removeEventListener(Event.ADDED_TO_STAGE, init); soundResources.playMainMusic(); actualLevel = 1; actualLives = 5; currentScore = 0; createTitle(); myButton = new GameButton({y:10, width:200, height:40, texto:"Play", size:30, skins:new ButtonResource(), efect:new ButtonEfectOne()}); addChild(myButton); myButton.x = 400; myButton.y = 115; myButton.addEventListener(MouseEvent.CLICK, easy_norma_insane_display, false, 0, true); TweenMax.to(myButton, 3, {glowFilter:{color:46524, alpha:0.7, blurX:5, blurY:5}}); var _local2:GameButton = new GameButton({y:10, width:200, height:40, texto:"Continue", size:30, skins:new ButtonResource(), efect:new ButtonEfectOne()}); addChild(_local2); _local2.x = 400; _local2.y = ((myButton.y + myButton.height) + 1); _local2.addEventListener(MouseEvent.CLICK, continue_the_last_played_game, false, 0, true); if (local_data.data.actualLevel){ _local2.alpha = 1; } else { _local2.alpha = 0.2; }; scores = new GameButton({y:14, width:200, height:25, texto:"Top Players", size:20, skins:new ButtonResource(), efect:new ButtonEfectOne()}); addChild(scores); scores.x = 400; scores.y = ((_local2.y + _local2.height) + 1); scores.addEventListener(MouseEvent.CLICK, displat_Score, false, 0, true); var _local3:GameButtonFreeGames = new GameButtonFreeGames({y:14, width:200, height:25, texto:"More Games", size:20, skins:new ButtonResource(), efect:new ButtonEfectOne(), padre:this}); addChild(_local3); _local3.x = 400; _local3.y = ((scores.y + scores.height) + 1); var _local4:GameButtonMoreGamesForYourSite = new GameButtonMoreGamesForYourSite({y:16, width:200, height:25, texto:"Free Games For Your Site", size:12, skins:new ButtonResource(), efect:new ButtonEfectOne(), padre:this}); addChild(_local4); _local4.x = 400; _local4.y = ((_local3.y + _local3.height) + 1); } private function displat_Medium_Score(_arg1:MouseEvent):void{ var e = _arg1; var o:Object = {n:[6, 3, 11, 13, 14, 1, 12, 4, 4, 11, 10, 14, 13, 14, 9, 5], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, "17d1f9616ef1911b"); MochiScores.showLeaderboard({boardID:boardID}); } public function createMain():void{ init(); } private function displat_Easy_Score(_arg1:MouseEvent):void{ var e = _arg1; var o:Object = {n:[6, 3, 11, 13, 14, 1, 12, 4, 4, 11, 10, 14, 13, 14, 9, 5], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, "c7b92dec013eb44b"); MochiScores.showLeaderboard({boardID:boardID}); } private function continue_the_last_played_game(_arg1:MouseEvent):void{ if (local_data.data.actualLevel){ actualLevel = local_data.data.actualLevel; currentScore = local_data.data.currentScore; actualLives = local_data.data.actualLives; gameMode = local_data.data.gameMode; levelSelection(); }; } private function removeMain():void{ var _local1:Array = new Array(); var _local2:int; while (_local2 < this.numChildren) { _local1.push(this.getChildAt(_local2)); _local2++; }; _local2 = 0; while (_local2 < _local1.length) { _local1[_local2].parent.removeChild(_local1[_local2]); trace(_local1[_local2]); _local1[_local2] = null; _local2++; }; } private function easy_norma_insane_display(_arg1:Event):void{ removeChild(myButton); var _local2:GameButton = new GameButton({y:5, width:100, height:20, texto:"Easy", size:15, skins:new ButtonResourceSmall(), efect:new ButtonEfectOne()}); addChild(_local2); _local2.x = 350; _local2.y = (myButton.y + 13); _local2.addEventListener(MouseEvent.CLICK, easy_display, false, 0, true); TweenMax.to(_local2, 0.01, {colorMatrixFilter:{colorize:0x1EFF00, amount:1}}); var _local3:GameButton = new GameButton({y:5, width:100, height:20, texto:"Normal", size:15, skins:new ButtonResourceSmall(), efect:new ButtonEfectOne()}); addChild(_local3); _local3.x = (_local2.x + _local2.width); _local3.y = _local2.y; _local3.addEventListener(MouseEvent.CLICK, normal_display, false, 0, true); TweenMax.to(_local3, 0.01, {colorMatrixFilter:{colorize:0xFFF600, amount:1}}); var _local4:GameButton = new GameButton({y:5, width:100, height:20, texto:"Insane", size:15, skins:new ButtonResourceSmall(), efect:new ButtonEfectOne()}); addChild(_local4); _local4.x = (_local3.x + _local3.width); _local4.y = _local2.y; _local4.addEventListener(MouseEvent.CLICK, insane_display, false, 0, true); TweenMax.to(_local4, 0.01, {colorMatrixFilter:{colorize:0xFF0000, amount:1}}); } private function levelSelection():void{ removeMain(); soundResources.stopMainMusic(); var _local1:LevelSelection = new LevelSelection(); addChild(_local1); _local1.init(stage, this); } private function normal_display(_arg1:MouseEvent):void{ MochiEvents.startPlay(); actualLives = 3; currentScore = 0; gameMode = "normal"; levelSelection(); } private function insane_display(_arg1:MouseEvent):void{ MochiEvents.startPlay(); actualLives = 1; currentScore = 0; gameMode = "insane"; levelSelection(); soundResources.playShit(); } private function displat_Score(_arg1:MouseEvent):void{ removeChild(scores); var _local2:GameButton = new GameButton({y:5, width:100, height:20, texto:"Easy", size:15, skins:new ButtonResourceSmall(), efect:new ButtonEfectOne()}); addChild(_local2); _local2.x = 350; _local2.y = (scores.y + 13); _local2.addEventListener(MouseEvent.CLICK, displat_Easy_Score, false, 0, true); TweenMax.to(_local2, 0.01, {colorMatrixFilter:{colorize:0x1EFF00, amount:1}}); var _local3:GameButton = new GameButton({y:5, width:100, height:20, texto:"Normal", size:15, skins:new ButtonResourceSmall(), efect:new ButtonEfectOne()}); addChild(_local3); _local3.x = (_local2.x + _local2.width); _local3.y = _local2.y; TweenMax.to(_local3, 0.01, {colorMatrixFilter:{colorize:0xFFF600, amount:1}}); _local3.addEventListener(MouseEvent.CLICK, displat_Medium_Score, false, 0, true); var _local4:GameButton = new GameButton({y:5, width:100, height:20, texto:"Insane", size:15, skins:new ButtonResourceSmall(), efect:new ButtonEfectOne()}); addChild(_local4); _local4.x = (_local3.x + _local3.width); _local4.y = _local2.y; TweenMax.to(_local4, 0.01, {colorMatrixFilter:{colorize:0xFF0000, amount:1}}); _local4.addEventListener(MouseEvent.CLICK, displat_Insane_Score, false, 0, true); } public function saveActualProgress():void{ local_data.data.actualLevel = actualLevel; local_data.data.currentScore = currentScore; local_data.data.actualLives = actualLives; local_data.data.gameMode = gameMode; } private function createTitle():void{ var title:Bitmap; var efectBack:Function; efectBack = function ():void{ TweenMax.to(title, 1, {x:75, glowFilter:{color:0xFF, alpha:0.51, blurX:5, blurY:5}}); }; var back:Bitmap = resources.create_Main_Back_Back(); addChild(back); var snow:SnowBackgound = new SnowBackgound(); addChild(snow); snow.init({cant:30}); var front:Bitmap = resources.create_Main_Back_Front(); addChild(front); var lineBack:Bitmap = resources.create_Main_Title_Line(); addChild(lineBack); lineBack.x = 1500; lineBack.y = 35; TweenMax.to(lineBack, 1.5, {x:-75, ease:Quart.easeOut}); title = resources.create_Main_Title(); addChild(title); title.x = -1500; title.y = 15; TweenMax.to(title, 1.5, {x:75, ease:Quart.easeOut, onComplete:efectBack}); var logo:Bitmap = resources.create_Main_Logo(); addChild(logo); logo.y = 372; logo.x = 553; } private function displat_Insane_Score(_arg1:MouseEvent):void{ var e = _arg1; var o:Object = {n:[8, 1, 6, 5, 11, 4, 4, 4, 13, 15, 10, 2, 3, 12, 10, 6], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; var boardID:String = o.f(0, "7268c50d9ad38a7d"); MochiScores.showLeaderboard({boardID:boardID}); } public static function reset_saved_data():void{ local_data.data.actualLevel = null; local_data.data.currentScore = null; local_data.data.actualLives = null; local_data.data.gameMode = null; } } }//package
Section 430
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 431
//Preloader (Preloader) package { import flash.events.*; import flash.display.*; import gs.*; import mochi.as3.*; import flash.net.*; import Clases.Game.System.*; import Clases.TrakingCode.*; import Clases.Button.*; import gs.easing.*; import Clases.Button.ButtonEfects.*; public dynamic class Preloader extends MovieClip { private var did_load:Boolean; private var preLoadBar:ProgBar; private var listOfELementos:Array; private var googleCode:GoogleTrackingCode; private var preloader:PreloaderBar; public static var GAME_OPTIONS:Object = {id:"", res:"660x420", no_progress_bar:true, no_bg:true}; public static var MAIN_CLASS:String = "Main"; public function Preloader(){ var preloaderClick:Function; var k:String; listOfELementos = new Array(); preloader = new PreloaderBar(); preLoadBar = new ProgBar({width:654, height:35, x:0, y:295, borderWidth:3, borderColor:39167, borderShadow:0, round:10, color:0xFFFF00, maxValue:100, showTextField:false, textColor:0}); super(); preloaderClick = function (_arg1:Event):void{ googleCode.Preloader_click(); var _local2:URLRequest = new URLRequest("http://www.i6.com/?utm_source=games&utm_medium=snowtruckpr"); navigateToURL(_local2, "_blank"); }; MochiBot.track(this, "c48acba9"); MochiServices.connect("920a5e8cee7a602a", root); googleCode = new GoogleTrackingCode(this, "UA-4982430-6"); googleCode.mainPageTraking(); var puelogames:PueloGamesCredits = new PueloGamesCredits(); puelogames.init(this); this.contextMenu = puelogames.getMenuContext(); var preloaderBackground:Background = new Background(); addChild(preloaderBackground); listOfELementos.push(preloaderBackground); var i6Imagen:I6introsmall = new I6introsmall(); addChild(i6Imagen); i6Imagen.width = 200; i6Imagen.height = 200; i6Imagen.x = 250; i6Imagen.y = 50; listOfELementos.push(i6Imagen); var i6Imagen2:I6introsmall = new I6introsmall(); addChild(i6Imagen2); i6Imagen2.width = 50; i6Imagen2.height = 50; i6Imagen2.x = 605; i6Imagen2.y = 365; listOfELementos.push(i6Imagen2); addChild(preLoadBar); var front:Front = new Front(); front.alpha = 0; addChild(front); front.addEventListener(MouseEvent.CLICK, preloaderClick); preLoadBar.alpha = 0.2; var f:Function = function (_arg1:IOErrorEvent):void{ }; loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); var opts:Object = {}; for (k in GAME_OPTIONS) { opts[k] = GAME_OPTIONS[k]; }; opts.ad_started = function ():void{ did_load = true; }; opts.ad_progress = function (_arg1:Number):void{ preLoadBar.updateValue(_arg1); }; opts.ad_finished = function ():void{ var getButtonStart:Function; getButtonStart = function ():void{ var _local1:GameButton = new GameButton({y:10, width:200, height:40, texto:"Play", size:30, skins:new ButtonResource(), efect:new ButtonEfectOne()}); addChild(_local1); _local1.x = 250; _local1.y = 450; _local1.addEventListener(MouseEvent.CLICK, startGame, false, 0, true); TweenMax.to(_local1, 1, {y:370}); listOfELementos.push(_local1); }; TweenMax.to(preLoadBar, 4, {x:800, ease:Back.easeIn, onComplete:getButtonStart}); }; opts.clip = this; MochiAd.showPreGameAd(opts); } private function startGame(_arg1:MouseEvent):void{ removeAllButton(); stop(); var _local2:Main = new Main(); addChild(_local2); } private function checkDomain():Boolean{ var _local1:String = stage.loaderInfo.url; var _local2:Number = (_local1.indexOf("://") + 3); var _local3:Number = _local1.indexOf("/", _local2); var _local4:String = _local1.substring(_local2, _local3); var _local5:Number = (_local4.lastIndexOf(".") - 1); var _local6:Number = (_local4.lastIndexOf(".", _local5) + 1); _local4 = _local4.substring(_local6, _local4.length); if (_local4 != "i6.com"){ return (false); }; return (true); } private function removeAllButton():void{ var _local1:int; while (_local1 < listOfELementos.length) { removeChild(listOfELementos[_local1]); listOfELementos[_local1] = null; _local1++; }; } } }//package
Section 432
//PreloaderBar (PreloaderBar) package { import flash.display.*; import gs.*; public class PreloaderBar extends Sprite { private const PreloaderBitmap:Class; private const PRELOADER_PRECEMT_START:int = 10; private const PRELOADER_COLOR:int = 16716055; private var frontSkinPreloader:Bitmap; private var preloaderInside:Shape; private var vars:Object; public function PreloaderBar(){ PreloaderBitmap = PreloaderBar_PreloaderBitmap; super(); } private function generate():void{ frontSkinPreloader = (new PreloaderBitmap() as Bitmap); preloaderInside = new Shape(); addChild(preloaderInside); preloaderInside.graphics.beginFill(PRELOADER_COLOR); preloaderInside.graphics.drawRoundRect(0, 0, ((frontSkinPreloader.width * PRELOADER_PRECEMT_START) / 100), frontSkinPreloader.height, 50, 50); preloaderInside.graphics.endFill(); TweenMax.to(preloaderInside, 0, {bevelFilter:{blurX:10, blurY:10, strength:1, distance:10}}); addChild(frontSkinPreloader); frontSkinPreloader.smoothing = true; } public function init(_arg1:Object=null):void{ vars = _arg1; generate(); } public function actualizar(_arg1:Number):void{ preloaderInside.graphics.beginFill(PRELOADER_COLOR); if (((frontSkinPreloader.width * _arg1) / 100) > ((frontSkinPreloader.width * PRELOADER_PRECEMT_START) / 100)){ preloaderInside.graphics.drawRoundRect(0, 0, ((frontSkinPreloader.width * _arg1) / 100), frontSkinPreloader.height, 50, 50); }; preloaderInside.graphics.endFill(); } } }//package
Section 433
//PreloaderBar_PreloaderBitmap (PreloaderBar_PreloaderBitmap) package { import mx.core.*; public class PreloaderBar_PreloaderBitmap extends BitmapAsset { } }//package
Section 434
//PueloGamesCredits (PueloGamesCredits) package { import flash.events.*; import flash.display.*; import flash.ui.*; import flash.net.*; public class PueloGamesCredits { private var fm_menu:ContextMenu; private var copyright:ContextMenuItem; private var credit:ContextMenuItem; public function PueloGamesCredits(){ fm_menu = new ContextMenu(); copyright = new ContextMenuItem("Copyright © Puelo Games"); credit = new ContextMenuItem("www.puelogames.com"); super(); copyright.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visit_flashmo); credit.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, visit_flashmo); credit.separatorBefore = false; fm_menu.hideBuiltInItems(); fm_menu.customItems.push(copyright, credit); } public function init(_arg1:Sprite):void{ } public function getMenuContext():ContextMenu{ return (fm_menu); } private function visit_flashmo(_arg1:Event):void{ var _local2:URLRequest = new URLRequest("http://www.puelogames.com"); navigateToURL(_local2, "_blank"); } } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 ButtonUses:1Used by:3
Symbol 3 MovieClip {Front} [Front]Uses:2
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClip {Background} [Background]Uses:4
Symbol 6 GraphicUsed by:13
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:13
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClipUses:9Used by:13
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClipUses:11Used by:13
Symbol 13 MovieClip {I6introsmall} [I6introsmall]Uses:6 8 10 12
Symbol 14 Sound {Clases.Game.Levels.AllLevels.Resources.ResourceSound_GameOutOfScreen} [Clases.Game.Levels.AllLevels.Resources.ResourceSound_GameOutOfScreen]
Symbol 15 Sound {Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundLevelMusic} [Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundLevelMusic]
Symbol 16 Sound {Clases.Game.Levels.AllLevels.Resources.ResourceSound_CabinHit} [Clases.Game.Levels.AllLevels.Resources.ResourceSound_CabinHit]
Symbol 17 Sound {Clases.Game.Levels.AllLevels.Resources.ResourceSound_EndLEvel} [Clases.Game.Levels.AllLevels.Resources.ResourceSound_EndLEvel]
Symbol 18 Sound {Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundMain} [Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundMain]
Symbol 19 Sound {Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundClick} [Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundClick]
Symbol 20 Sound {Clases.Game.Levels.AllLevels.Resources.ResourceSound_Shit} [Clases.Game.Levels.AllLevels.Resources.ResourceSound_Shit]
Symbol 21 MovieClip {LevelSelector} [LevelSelector]
Symbol 22 BitmapUsed by:23 25 27 30 33 35 36 39 41 42 45 47 49 51 53 56 59 61
Symbol 23 GraphicUses:22Used by:24
Symbol 24 MovieClip {Level7Terrain} [Level7Terrain]Uses:23
Symbol 25 GraphicUses:22Used by:26
Symbol 26 MovieClip {Level6Terrain} [Level6Terrain]Uses:25
Symbol 27 GraphicUses:22Used by:28
Symbol 28 MovieClip {Level14Terrain} [Level14Terrain]Uses:27
Symbol 29 GraphicUsed by:32
Symbol 30 GraphicUses:22Used by:31
Symbol 31 MovieClipUses:30Used by:32
Symbol 32 MovieClip {Level8Back} [Level8Back]Uses:29 31
Symbol 33 GraphicUses:22Used by:34
Symbol 34 MovieClip {Level5Terrain} [Level5Terrain]Uses:33
Symbol 35 GraphicUses:22Used by:38
Symbol 36 GraphicUses:22Used by:37
Symbol 37 MovieClipUses:36Used by:38
Symbol 38 MovieClip {Level10Terrain} [Level10Terrain]Uses:35 37
Symbol 39 GraphicUses:22Used by:40
Symbol 40 MovieClip {Level11Terrain} [Level11Terrain]Uses:39
Symbol 41 GraphicUses:22Used by:44
Symbol 42 GraphicUses:22Used by:43
Symbol 43 MovieClipUses:42Used by:44
Symbol 44 MovieClip {Level8Terrain} [Level8Terrain]Uses:41 43
Symbol 45 GraphicUses:22Used by:46
Symbol 46 MovieClip {Level1Terrain} [Level1Terrain]Uses:45
Symbol 47 GraphicUses:22Used by:48
Symbol 48 MovieClip {Level2Terrain} [Level2Terrain]Uses:47
Symbol 49 GraphicUses:22Used by:50
Symbol 50 MovieClip {Level13Terrain} [Level13Terrain]Uses:49
Symbol 51 GraphicUses:22Used by:52
Symbol 52 MovieClip {Level4Terrain} [Level4Terrain]Uses:51
Symbol 53 GraphicUses:22Used by:54
Symbol 54 MovieClip {Level3Terrain} [Level3Terrain]Uses:53
Symbol 55 GraphicUsed by:58
Symbol 56 GraphicUses:22Used by:57
Symbol 57 MovieClipUses:56Used by:58
Symbol 58 MovieClip {level7Back} [level7Back]Uses:55 57
Symbol 59 GraphicUses:22Used by:60
Symbol 60 MovieClip {Level12Terrain} [Level12Terrain]Uses:59
Symbol 61 GraphicUses:22Used by:62
Symbol 62 MovieClip {Level9Terrain} [Level9Terrain]Uses:61
Symbol 63 Sound {Clases.Game.Veicle.SoundEngine_SoundEngineClass} [Clases.Game.Veicle.SoundEngine_SoundEngineClass]
Symbol 64 Bitmap {Clases.Game.Levels.LevelElements.LevelBackgroundResources_Down_sky}
Symbol 65 Bitmap {Clases.BasicScreens.ClassResources.OnButtonResources_OVER_bitmap}
Symbol 66 Bitmap {Clases.BasicScreens.ClassResources.OnButtonResources_UP_bitmap}
Symbol 67 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level5_b}
Symbol 68 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level4_a}
Symbol 69 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level5_a}
Symbol 70 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level4_b}
Symbol 71 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesBack_Btmap_Backtround}
Symbol 72 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level6_b}
Symbol 73 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level6_a}
Symbol 74 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level3_a}
Symbol 75 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_BolaNieve}
Symbol 76 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level3_b}
Symbol 77 Bitmap {Clases.Game.Levels.AllLevels.Resources.BackgroundImageLevel1A}
Symbol 78 Bitmap {Clases.Game.Levels.AllLevels.Resources.BackgroundImageLevel1B}
Symbol 79 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14a1}
Symbol 80 Bitmap {Clases.Button.ButtonResourceSmall_OVER_bitmap}
Symbol 81 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level2_a}
Symbol 82 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level2_b}
Symbol 83 Bitmap {Clases.Button.ButtonResourceSmall_UP_bitmap}
Symbol 84 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level11_b}
Symbol 85 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level11_a}
Symbol 86 Bitmap {Clases.Game.Levels.LevelElements.LevelBackgroundResources_MoutainUp}
Symbol 87 Bitmap {Clases.Game.Levels.LevelElements.LevelBackgroundResources_UpWater}
Symbol 88 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level10_b}
Symbol 89 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_TramoPuente}
Symbol 90 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level10_a}
Symbol 91 Bitmap {Clases.Button.ButtonResource_OVER_bitmap}
Symbol 92 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level9_a}
Symbol 93 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level9_b}
Symbol 94 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_13b}
Symbol 95 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_13a}
Symbol 96 Bitmap {Clases.Game.Levels.LevelElements.LevelBackgroundResources_Up_sky}
Symbol 97 Bitmap {Clases.Game.Veicle.VeicleResources_EslabonBitmap}
Symbol 98 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level8_a}
Symbol 99 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level8_b}
Symbol 100 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level7_b}
Symbol 101 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level7_a}
Symbol 102 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Btmap_Main}
Symbol 103 Bitmap {Clases.BasicScreens.ClassResources.OffButtonResources_OVER_bitmap}
Symbol 104 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14c}
Symbol 105 Bitmap {Clases.Game.Levels.LevelElements.LevelBackgroundResources_DownWater}
Symbol 106 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Btmap_Main_Front}
Symbol 107 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Title_Main}
Symbol 108 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_Cubo}
Symbol 109 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_HorizontalHieloFlotante}
Symbol 110 Bitmap {Clases.Game.Veicle.VeicleResources_Wheel}
Symbol 111 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_HorizontalIceBridge}
Symbol 112 Bitmap {PreloaderBar_PreloaderBitmap}
Symbol 113 Bitmap {Clases.Button.ButtonResource_DOWN_bitmap}
Symbol 114 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_VerticalBridge}
Symbol 115 Bitmap {Clases.BasicScreens.ClassResources.OffButtonResources_UP_bitmap}
Symbol 116 Bitmap {Clases.Game.Levels.LevelElements.LevelBackgroundResources_Midle_sky}
Symbol 117 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_Estaca}
Symbol 118 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level12_b}
Symbol 119 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level12_a}
Symbol 120 Font {Clases.Font.FontResources_FirstFont}
Symbol 121 Bitmap {Clases.BasicScreens.ClassResources.OffButtonResources_DOWN_bitmap}
Symbol 122 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_HorizontalBridge}
Symbol 123 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_HorizontalIceBridgeBig}
Symbol 124 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Logo}
Symbol 125 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14a2}
Symbol 126 Bitmap {Clases.Button.ButtonResource_UP_bitmap}
Symbol 127 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesScreen_Title_Main_Back}
Symbol 128 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14b2}
Symbol 129 Bitmap {Clases.Game.Levels.AllLevels.Resources.ResourcesLevel1_btmap_level_14b1}
Symbol 130 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_EstalactitaClass}
Symbol 131 Bitmap {Clases.Game.Levels.LevelElements.LevelElementsResource_Rock}
Symbol 132 Bitmap {Clases.Game.Levels.LevelElements.LevelBackgroundResources_MoutainDown}
Symbol 133 Bitmap {Clases.Game.Veicle.VeicleResources_Carroceria}
Symbol 134 Bitmap {Clases.BasicScreens.ClassResources.OnButtonResources_DOWN_bitmap}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 3 as "Front"
ExportAssets (56)Timeline Frame 1Symbol 5 as "Background"
ExportAssets (56)Timeline Frame 1Symbol 13 as "I6introsmall"
ExportAssets (56)Timeline Frame 1Symbol 14 as "Clases.Game.Levels.AllLevels.Resources.ResourceSound_GameOutOfScreen"
ExportAssets (56)Timeline Frame 1Symbol 15 as "Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundLevelMusic"
ExportAssets (56)Timeline Frame 1Symbol 16 as "Clases.Game.Levels.AllLevels.Resources.ResourceSound_CabinHit"
ExportAssets (56)Timeline Frame 1Symbol 17 as "Clases.Game.Levels.AllLevels.Resources.ResourceSound_EndLEvel"
ExportAssets (56)Timeline Frame 1Symbol 18 as "Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundMain"
ExportAssets (56)Timeline Frame 1Symbol 19 as "Clases.Game.Levels.AllLevels.Resources.ResourceSound_SoundClick"
ExportAssets (56)Timeline Frame 1Symbol 20 as "Clases.Game.Levels.AllLevels.Resources.ResourceSound_Shit"
ExportAssets (56)Timeline Frame 1Symbol 21 as "LevelSelector"
ExportAssets (56)Timeline Frame 1Symbol 24 as "Level7Terrain"
ExportAssets (56)Timeline Frame 1Symbol 26 as "Level6Terrain"
ExportAssets (56)Timeline Frame 1Symbol 28 as "Level14Terrain"
ExportAssets (56)Timeline Frame 1Symbol 32 as "Level8Back"
ExportAssets (56)Timeline Frame 1Symbol 34 as "Level5Terrain"
ExportAssets (56)Timeline Frame 1Symbol 38 as "Level10Terrain"
ExportAssets (56)Timeline Frame 1Symbol 40 as "Level11Terrain"
ExportAssets (56)Timeline Frame 1Symbol 44 as "Level8Terrain"
ExportAssets (56)Timeline Frame 1Symbol 46 as "Level1Terrain"
ExportAssets (56)Timeline Frame 1Symbol 48 as "Level2Terrain"
ExportAssets (56)Timeline Frame 1Symbol 50 as "Level13Terrain"
ExportAssets (56)Timeline Frame 1Symbol 52 as "Level4Terrain"
ExportAssets (56)Timeline Frame 1Symbol 54 as "Level3Terrain"
ExportAssets (56)Timeline Frame 1Symbol 58 as "level7Back"
ExportAssets (56)Timeline Frame 1Symbol 60 as "Level12Terrain"
ExportAssets (56)Timeline Frame 1Symbol 62 as "Level9Terrain"
ExportAssets (56)Timeline Frame 1Symbol 63 as "Clases.Game.Veicle.SoundEngine_SoundEngineClass"
SerialNumber (41)Timeline Frame 1

Labels

"Preloader"Frame 1




http://swfchan.com/27/131236/info.shtml
Created: 21/2 -2019 13:23:14 Last modified: 21/2 -2019 13:23:14 Server time: 28/04 -2024 23:13:11