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

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

armorgames level-editor-4888.swf

This is the info page for
Flash #263490

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


Text
Loading

Developed By

5

0

Back to Main Menu

Easy:

Medium:

Hard:

Impossible:

Level

Total Score: 0

Best Score: 0

Erase scores

Congratulations!
Game completed!

Total Score: 0

Submit Score

Submit Score

Main Menu

Developed By

Box2D AS3.0 Port

Physic Engine

www.soundsnap.com

Sound

Mary Detkova

Graphics

Olga Bogdanova

Level Design

Max Derevyagin

Programming

Radio Mall

Music

Level Complete

Next Level

Next Level

Level Select

Level Select

Time Left +50
All Coins Bonus + 25
Killed Enemies + 20

Level Score: 40
Total Score: 500

Press 'Spacebar' to play next level

Level Complete

Play Again

Play Again

Back to Editor

Back to Editor

Press 'R' to restart level

Level Editor: The Game

Start Game

Hi-Scores

More Games

Credits

Level Editor

Host this game

Level 12

Time:

150

Collect the coins to
increase the level time

Put the block here

...and here

Use

to jump

W

SPACE

or

Use

for moving

A

S

D

for select block

Put blocks here

You can press

SHIFT

... just for fun

This is the ENEMY,
be careful !

Put the moving
block here

You can use the moving blocks
to get rid of an enemies

First block

Second block

Save Map

Save Map

Test

Test

See Solution

See Solution

Game Over

20

x 2

1

2

3

4

5

Replaceable Block

Editor

Editor

Levels

Levels

Restart

Restart

x

y

Flip

Speed

Jump

Color

Attack

Fall

x

y

Block 4

Block 3

Block 2

Block 1

Time:

Set Level Blocks

Music:

Type

SubType

Orient

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.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; 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
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; 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 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; 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_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int; public function b2ShapeDef(){ type = b2Shape.e_unknownShape; filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = 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 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = 0; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - ((_local15 * _local19) + (_local16 * _local20))) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(((_local13 * _local13) + (_local14 * _local14))); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local7) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { import Box2D.Common.*; public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { import Box2D.Common.*; public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { import Box2D.Common.*; public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { import Box2D.Common.*; public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 8; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; 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 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; 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); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; 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 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.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 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; 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 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Collision.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Collision.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; import Box2D.Common.Math.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var motorSpeed:Number; 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 setAngleLimit(_arg1:Number, _arg2:Number):void{ upperAngle = (_arg1 / (180 / Math.PI)); lowerAngle = (_arg2 / (180 / Math.PI)); } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var classLink; 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 bodyName:uint; public var m_linearDamping:Number; public var m_shapeCount:int; public var isDynamic:Boolean; 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=0):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; 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 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import flash.display.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; 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_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Common.*; 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 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; 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 SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//Hero_Run_40 (Chars_fla.Hero_Run_40) package Chars_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Hero_Run_40 extends MovieClip { public function Hero_Run_40(){ addFrameScript(7, frame8, 20, frame21); } function frame8(){ parent.parent.step(); } function frame21(){ parent.parent.step(); } } }//package Chars_fla
Section 76
//Part_1_8 (Chars_fla.Part_1_8) package Chars_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Part_1_8 extends MovieClip { public function Part_1_8(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Chars_fla
Section 77
//Part_2_7 (Chars_fla.Part_2_7) package Chars_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Part_2_7 extends MovieClip { public function Part_2_7(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Chars_fla
Section 78
//Part_3_6 (Chars_fla.Part_3_6) package Chars_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Part_3_6 extends MovieClip { public function Part_3_6(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Chars_fla
Section 79
//Part_4_5 (Chars_fla.Part_4_5) package Chars_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Part_4_5 extends MovieClip { public function Part_4_5(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Chars_fla
Section 80
//Part_5_4 (Chars_fla.Part_5_4) package Chars_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Part_5_4 extends MovieClip { public function Part_5_4(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Chars_fla
Section 81
//Part_6_3 (Chars_fla.Part_6_3) package Chars_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Part_6_3 extends MovieClip { public function Part_6_3(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Chars_fla
Section 82
//Lock_Down_76 (Editor_fla.Lock_Down_76) package Editor_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Lock_Down_76 extends MovieClip { public function Lock_Down_76(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package Editor_fla
Section 83
//Lock_Up_77 (Editor_fla.Lock_Up_77) package Editor_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Lock_Up_77 extends MovieClip { public function Lock_Up_77(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package Editor_fla
Section 84
//options_90 (Editor_fla.options_90) package Editor_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.controls.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class options_90 extends MovieClip { public var btnRemove:Button; public var yPos:TextInput; public var xPos:TextInput; public function options_90(){ __setProp_xPos_options_Layer1_1(); __setProp_yPos_options_Layer1_1(); __setProp_btnRemove_options_Layer1_1(); } function __setProp_btnRemove_options_Layer1_1(){ try { btnRemove["componentInspectorSetting"] = true; } catch(e:Error) { }; btnRemove.emphasized = false; btnRemove.enabled = true; btnRemove.label = "Remove"; btnRemove.labelPlacement = "right"; btnRemove.selected = false; btnRemove.toggle = false; btnRemove.visible = true; try { btnRemove["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_yPos_options_Layer1_1(){ try { yPos["componentInspectorSetting"] = true; } catch(e:Error) { }; yPos.displayAsPassword = false; yPos.editable = true; yPos.enabled = true; yPos.maxChars = 0; yPos.restrict = ""; yPos.text = "0"; yPos.visible = true; try { yPos["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_xPos_options_Layer1_1(){ try { xPos["componentInspectorSetting"] = true; } catch(e:Error) { }; xPos.displayAsPassword = false; xPos.editable = true; xPos.enabled = true; xPos.maxChars = 0; xPos.restrict = ""; xPos.text = "0"; xPos.visible = true; try { xPos["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package Editor_fla
Section 85
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.core.*; import fl.controls.*; import fl.events.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 86
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import flash.events.*; import fl.controls.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 87
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 88
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 89
//BaseButton (fl.controls.BaseButton) package fl.controls { import flash.display.*; import flash.events.*; import fl.core.*; import fl.events.*; import flash.utils.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 90
//Button (fl.controls.Button) package fl.controls { import flash.display.*; import fl.managers.*; import fl.core.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 91
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 92
//CheckBox (fl.controls.CheckBox) package fl.controls { import flash.display.*; public class CheckBox extends LabelButton { private static var defaultStyles:Object = {icon:null, upIcon:"CheckBox_upIcon", downIcon:"CheckBox_downIcon", overIcon:"CheckBox_overIcon", disabledIcon:"CheckBox_disabledIcon", selectedDisabledIcon:"CheckBox_selectedDisabledIcon", focusRectSkin:null, focusRectPadding:null, selectedUpIcon:"CheckBox_selectedUpIcon", selectedDownIcon:"CheckBox_selectedDownIcon", selectedOverIcon:"CheckBox_selectedOverIcon", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public static var createAccessibilityImplementation:Function; override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = (background.x - _local2); uiFocusRect.y = (background.y - _local2); uiFocusRect.width = (background.width + (_local2 << 1)); uiFocusRect.height = (background.height + (_local2 << 1)); }; } override public function get autoRepeat():Boolean{ return (false); } override public function set autoRepeat(_arg1:Boolean):void{ } override public function set toggle(_arg1:Boolean):void{ throw (new Error("Warning: You cannot change a CheckBox's toggle.")); } override public function get toggle():Boolean{ return (true); } override protected function configUI():void{ var _local1:Shape; var _local2:Graphics; super.configUI(); super.toggle = true; _local1 = new Shape(); _local2 = _local1.graphics; _local2.beginFill(0, 0); _local2.drawRect(0, 0, 100, 100); _local2.endFill(); background = (_local1 as DisplayObject); addChildAt(background, 0); } override protected function drawLayout():void{ var _local1:Number; super.drawLayout(); _local1 = Number(getStyleValue("textPadding")); switch (_labelPlacement){ case ButtonLabelPlacement.RIGHT: icon.x = _local1; textField.x = (icon.x + (icon.width + _local1)); background.width = ((textField.x + textField.width) + _local1); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.LEFT: icon.x = ((width - icon.width) - _local1); textField.x = (((width - icon.width) - (_local1 * 2)) - textField.width); background.width = ((textField.width + icon.width) + (_local1 * 3)); background.height = (Math.max(textField.height, icon.height) + (_local1 * 2)); break; case ButtonLabelPlacement.TOP: case ButtonLabelPlacement.BOTTOM: background.width = (Math.max(textField.width, icon.width) + (_local1 * 2)); background.height = ((textField.height + icon.height) + (_local1 * 3)); break; }; background.x = Math.min((icon.x - _local1), (textField.x - _local1)); background.y = Math.min((icon.y - _local1), (textField.y - _local1)); } override protected function drawBackground():void{ } override protected function initializeAccessibility():void{ if (CheckBox.createAccessibilityImplementation != null){ CheckBox.createAccessibilityImplementation(this); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 93
//ComboBox (fl.controls.ComboBox) package fl.controls { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.managers.*; import fl.core.*; import flash.text.*; import fl.events.*; import fl.data.*; import fl.controls.listClasses.*; import flash.ui.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var _dropdownWidth:Number; protected var highlightedCell:int;// = -1 protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var currentIndex:int; protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var inputField:TextInput; protected var listOverIndex:uint; protected var editableValue:String; protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; public function ComboBox(){ _rowCount = 5; _editable = false; isOpen = false; highlightedCell = -1; isKeyDown = false; super(); } protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function get dropdown():List{ return (list); } public function get dropdownWidth():Number{ return (list.width); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } public function get selectedItem():Object{ return (list.selectedItem); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function get labelField():String{ return (list.labelField); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:uint; var _local4:Number; var _local5:int; isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); _local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); _local3 = selectedIndex; _local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function onListItemUp(_arg1:MouseEvent):void{ var _local2:*; stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; _local2 = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } protected function showPrompt():void{ inputField.text = _prompt; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function get restrict():String{ return (inputField.restrict); } protected function setEmbedFonts():void{ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function get length():int{ return (list.length); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } public function get labelFunction():Function{ return (list.labelFunction); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get selectedIndex():int{ return (list.selectedIndex); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } public function get text():String{ return (inputField.text); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } override protected function draw():void{ var _local1:*; _local1 = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } protected function positionList():void{ var _local1:Point; _local1 = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } public function get prompt():String{ return (_prompt); } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (getStyleValue("buttonWidth") as Number); _local2 = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get textField():TextInput{ return (inputField); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function drawTextFormat():void{ var _local1:TextFormat; _local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controls
Section 94
//LabelButton (fl.controls.LabelButton) package fl.controls { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.core.*; import flash.text.*; import fl.events.*; import flash.ui.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 95
//List (fl.controls.List) package fl.controls { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.managers.*; import fl.core.*; import fl.controls.listClasses.*; import flash.utils.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * length); if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 96
//NumericStepper (fl.controls.NumericStepper) package fl.controls { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.core.*; import fl.events.*; import flash.ui.*; public class NumericStepper extends UIComponent implements IFocusManagerComponent { protected var upArrow:BaseButton; protected var _stepSize:Number;// = 1 protected var downArrow:BaseButton; protected var _value:Number;// = 1 protected var _minimum:Number;// = 0 protected var _maximum:Number;// = 10 protected var _precision:Number; protected var inputField:TextInput; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TEXT_INPUT_STYLES:Object = {upSkin:"upSkin", disabledSkin:"disabledSkin", textPadding:"textPadding", textFormat:"textFormat", disabledTextFormat:"disabledTextFormat", embedFonts:"embedFonts"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"NumericStepperDownArrow_disabledSkin", downArrowDownSkin:"NumericStepperDownArrow_downSkin", downArrowOverSkin:"NumericStepperDownArrow_overSkin", downArrowUpSkin:"NumericStepperDownArrow_upSkin", upArrowDisabledSkin:"NumericStepperUpArrow_disabledSkin", upArrowDownSkin:"NumericStepperUpArrow_downSkin", upArrowOverSkin:"NumericStepperUpArrow_overSkin", upArrowUpSkin:"NumericStepperUpArrow_upSkin", upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRect:null, focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35, embedFonts:false}; public function NumericStepper(){ _maximum = 10; _minimum = 0; _value = 1; _stepSize = 1; super(); setStyles(); stepSize = _stepSize; } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); }; } public function get minimum():Number{ return (_minimum); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function set minimum(_arg1:Number):void{ _minimum = _arg1; if (_value < _minimum){ setValue(_minimum, false); }; } public function get maximum():Number{ return (_maximum); } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == inputField)) || (super.isOurFocus(_arg1)))); } public function get nextValue():Number{ var _local1:Number; _local1 = (_value + _stepSize); return ((inRange(_local1)) ? _local1 : _value); } public function set maximum(_arg1:Number):void{ _maximum = _arg1; if (_value > _maximum){ setValue(_maximum, false); }; } protected function setValue(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; if (_arg1 == _value){ return; }; _local3 = _value; _value = getValidValue(_arg1); inputField.text = _value.toString(); if (_arg2){ dispatchEvent(new Event(Event.CHANGE, true)); }; } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:Number; if (!enabled){ return; }; _arg1.stopImmediatePropagation(); _local2 = Number(inputField.text); switch (_arg1.keyCode){ case Keyboard.END: setValue(maximum); break; case Keyboard.HOME: setValue(minimum); break; case Keyboard.UP: setValue(nextValue); break; case Keyboard.DOWN: setValue(previousValue); break; case Keyboard.ENTER: setValue(_local2); break; }; } override public function set enabled(_arg1:Boolean):void{ if (_arg1 == enabled){ return; }; super.enabled = _arg1; upArrow.enabled = (downArrow.enabled = (inputField.enabled = _arg1)); } protected function onTextChange(_arg1:Event):void{ _arg1.stopImmediatePropagation(); } public function get previousValue():Number{ var _local1:Number; _local1 = (_value - _stepSize); return ((inRange(_local1)) ? _local1 : _value); } protected function getValidValue(_arg1:Number):Number{ var _local2:Number; if (isNaN(_arg1)){ return (_value); }; _local2 = Number((_stepSize * Math.round((_arg1 / _stepSize))).toFixed(_precision)); if (_local2 > maximum){ return (maximum); }; if (_local2 < minimum){ return (minimum); }; return (_local2); } public function set value(_arg1:Number):void{ setValue(_arg1, false); } public function get stepSize():Number{ return (_stepSize); } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } protected function stepperPressHandler(_arg1:ComponentEvent):void{ setValue(Number(inputField.text), false); switch (_arg1.currentTarget){ case upArrow: setValue(nextValue); break; case downArrow: setValue(previousValue); }; inputField.setFocus(); inputField.textField.setSelection(0, 0); } override protected function focusOutHandler(_arg1:FocusEvent):void{ if (_arg1.eventPhase == 3){ setValue(Number(inputField.text)); }; super.focusOutHandler(_arg1); } protected function inRange(_arg1:Number):Boolean{ return ((((_arg1 >= _minimum)) && ((_arg1 <= _maximum)))); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; validate(); } override protected function configUI():void{ super.configUI(); upArrow = new BaseButton(); copyStylesToChild(upArrow, UP_ARROW_STYLES); upArrow.autoRepeat = true; upArrow.setSize(21, 12); upArrow.focusEnabled = false; addChild(upArrow); downArrow = new BaseButton(); copyStylesToChild(downArrow, DOWN_ARROW_STYLES); downArrow.autoRepeat = true; downArrow.setSize(21, 12); downArrow.focusEnabled = false; addChild(downArrow); inputField = new TextInput(); copyStylesToChild(inputField, TEXT_INPUT_STYLES); inputField.restrict = "0-9\\-\\.\\,"; inputField.text = _value.toString(); inputField.setSize(21, 24); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(FocusEvent.FOCUS_IN, passEvent); inputField.addEventListener(FocusEvent.FOCUS_OUT, passEvent); addChild(inputField); inputField.addEventListener(Event.CHANGE, onTextChange, false, 0, true); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, stepperPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, stepperPressHandler, false, 0, true); } public function get value():Number{ return (_value); } protected function inStep(_arg1:Number):Boolean{ return ((((_arg1 - _minimum) % _stepSize) == 0)); } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (width - upArrow.width); _local2 = (height / 2); inputField.setSize(_local1, height); upArrow.height = _local2; downArrow.height = Math.floor(_local2); downArrow.move(_local1, _local2); upArrow.move(_local1, 0); downArrow.drawNow(); upArrow.drawNow(); inputField.drawNow(); } override public function setFocus():void{ if (stage){ stage.focus = inputField.textField; }; } protected function getPrecision():Number{ var _local1:String; _local1 = _stepSize.toString(); if (_local1.indexOf(".") == -1){ return (0); }; return (_local1.split(".").pop().length); } public function get textField():TextInput{ return (inputField); } public function set stepSize(_arg1:Number):void{ _stepSize = _arg1; _precision = getPrecision(); setValue(_value); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); copyStylesToChild(inputField, TEXT_INPUT_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 97
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import flash.events.*; import fl.core.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 98
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 99
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 100
//SelectableList (fl.controls.SelectableList) package fl.controls { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.core.*; import fl.events.*; import fl.data.*; import fl.controls.listClasses.*; import flash.utils.*; import fl.containers.*; import flash.ui.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 101
//TextArea (fl.controls.TextArea) package fl.controls { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.core.*; import flash.text.*; import fl.events.*; import flash.ui.*; import flash.system.*; public class TextArea extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _verticalScrollBar:UIScrollBar; protected var _savedHTML:String; protected var background:DisplayObject; protected var _horizontalScrollBar:UIScrollBar; protected var _horizontalScrollPolicy:String;// = "auto" protected var _editable:Boolean;// = true protected var textHasChanged:Boolean;// = false public var textField:TextField; protected var _wordWrap:Boolean;// = true protected var _verticalScrollPolicy:String;// = "auto" protected static const SCROLL_BAR_STYLES:Object = {downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {upSkin:"TextArea_upSkin", disabledSkin:"TextArea_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextArea(){ _editable = true; _wordWrap = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; _html = false; textHasChanged = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } protected function handleWheel(_arg1:MouseEvent):void{ if (((!(enabled)) || (!(_verticalScrollBar.visible)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * _verticalScrollBar.lineScrollSize)); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, (_arg1.delta * _verticalScrollBar.lineScrollSize), _verticalScrollBar.scrollPosition)); } public function get verticalScrollPosition():Number{ return (textField.scrollV); } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); textField.scrollV = _arg1; } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ return; }; textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); textHasChanged = true; } protected function updateTextFieldType():void{ textField.type = (((enabled) && (_editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; textField.wordWrap = _wordWrap; textField.multiline = true; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; setIMEMode(true); if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (_local2){ if (editable){ _local2.showFocusIndicator = true; }; _local2.defaultButtonEnabled = false; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get wordWrap():Boolean{ return (_wordWrap); } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function get horizontalScrollBar():UIScrollBar{ return (_horizontalScrollBar); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseChildren = enabled; invalidate(InvalidationType.STATE); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():Number{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; invalidate(InvalidationType.DATA); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function get maxVerticalScrollPosition():int{ return (textField.maxScrollV); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); textField.scrollH = _arg1; } public function get textHeight():Number{ drawNow(); return (textField.textHeight); } public function get textWidth():Number{ drawNow(); return (textField.textWidth); } public function get restrict():String{ return (textField.restrict); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; invalidate(InvalidationType.STATE); } protected function updateScrollBars(){ _horizontalScrollBar.update(); _verticalScrollBar.update(); _verticalScrollBar.enabled = enabled; _horizontalScrollBar.enabled = enabled; _horizontalScrollBar.drawNow(); _verticalScrollBar.drawNow(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():Number{ return (textField.text.length); } public function set wordWrap(_arg1:Boolean):void{ _wordWrap = _arg1; invalidate(InvalidationType.STATE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (IME.conversionMode); } protected function handleScroll(_arg1:ScrollEvent):void{ dispatchEvent(_arg1); } override protected function focusOutHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; _local2 = focusManager; if (_local2){ _local2.defaultButtonEnabled = true; }; setSelection(0, 0); super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } protected function delayedLayoutUpdate(_arg1:Event):void{ if (textHasChanged){ textHasChanged = false; drawLayout(); return; }; removeEventListener(Event.ENTER_FRAME, delayedLayoutUpdate); } public function set htmlText(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ return; }; if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); textHasChanged = true; } public function get text():String{ return (textField.text); } public function get verticalScrollBar():UIScrollBar{ return (_verticalScrollBar); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } override protected function draw():void{ if (isInvalid(InvalidationType.STATE)){ updateTextFieldType(); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFont(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); _verticalScrollBar = new UIScrollBar(); _verticalScrollBar.name = "V"; _verticalScrollBar.visible = false; _verticalScrollBar.focusEnabled = false; copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); addChild(_verticalScrollBar); _horizontalScrollBar = new UIScrollBar(); _horizontalScrollBar.name = "H"; _horizontalScrollBar.visible = false; _horizontalScrollBar.focusEnabled = false; _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); addChild(_horizontalScrollBar); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); _horizontalScrollBar.scrollTarget = textField; _verticalScrollBar.scrollTarget = textField; addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function setTextSize(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number; var _local5:Number; _local4 = (_arg1 - (_arg3 * 2)); _local5 = (_arg2 - (_arg3 * 2)); if (_local4 != textField.width){ textField.width = _local4; }; if (_local5 != textField.height){ textField.height = _local5; }; } public function appendText(_arg1:String):void{ textField.appendText(_arg1); invalidate(InvalidationType.DATA); } protected function needVScroll():Boolean{ if (_verticalScrollPolicy == ScrollPolicy.OFF){ return (false); }; if (_verticalScrollPolicy == ScrollPolicy.ON){ return (true); }; return ((textField.maxScrollV > 1)); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } public function get htmlText():String{ return (textField.htmlText); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background != null){ addChildAt(background, 0); }; if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Boolean; var _local4:Number; var _local5:Boolean; _local1 = Number(getStyleValue("textPadding")); textField.x = (textField.y = _local1); background.width = width; background.height = height; _local2 = height; _local3 = needVScroll(); _local4 = (width - (_local3) ? _verticalScrollBar.width : 0); _local5 = needHScroll(); if (_local5){ _local2 = (_local2 - _horizontalScrollBar.height); }; setTextSize(_local4, _local2, _local1); if (((((_local5) && (!(_local3)))) && (needVScroll()))){ _local3 = true; _local4 = (_local4 - _verticalScrollBar.width); setTextSize(_local4, _local2, _local1); }; if (_local3){ _verticalScrollBar.visible = true; _verticalScrollBar.x = (width - _verticalScrollBar.width); _verticalScrollBar.height = _local2; _verticalScrollBar.visible = true; _verticalScrollBar.enabled = enabled; } else { _verticalScrollBar.visible = false; }; if (_local5){ _horizontalScrollBar.visible = true; _horizontalScrollBar.y = (height - _horizontalScrollBar.height); _horizontalScrollBar.width = _local4; _horizontalScrollBar.visible = true; _horizontalScrollBar.enabled = enabled; } else { _horizontalScrollBar.visible = false; }; updateScrollBars(); addEventListener(Event.ENTER_FRAME, delayedLayoutUpdate, false, 0, true); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function needHScroll():Boolean{ if (_horizontalScrollPolicy == ScrollPolicy.OFF){ return (false); }; if (_horizontalScrollPolicy == ScrollPolicy.ON){ return (true); }; return ((textField.maxScrollH > 0)); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); invalidate(InvalidationType.DATA); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 102
//TextInput (fl.controls.TextInput) package fl.controls { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.core.*; import flash.text.*; import fl.events.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 103
//UIScrollBar (fl.controls.UIScrollBar) package fl.controls { import flash.events.*; import fl.core.*; import flash.text.*; import fl.events.*; public class UIScrollBar extends ScrollBar { protected var inScroll:Boolean;// = false protected var _scrollTarget:TextField; protected var inEdit:Boolean;// = false private static var defaultStyles:Object = {}; public function UIScrollBar(){ inEdit = false; inScroll = false; super(); } protected function handleTargetScroll(_arg1:Event):void{ if (inDrag){ return; }; if (!enabled){ return; }; inEdit = true; updateScrollTargetProperties(); scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV; inEdit = false; } override public function set minScrollPosition(_arg1:Number):void{ super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1; } override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ super.setScrollPosition(_arg1, _arg2); if (!_scrollTarget){ inScroll = false; return; }; updateTargetScroll(); } override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ var _local5:Number; var _local6:Number; _local5 = _arg3; _local6 = ((_arg2)<0) ? 0 : _arg2; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5; } else { _local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5; }; }; super.setScrollProperties(_arg1, _local6, _local5, _arg4); } public function get scrollTargetName():String{ return (_scrollTarget.name); } public function get scrollTarget():TextField{ return (_scrollTarget); } protected function updateScrollTargetProperties():void{ var _local1:Boolean; var _local2:Number; if (_scrollTarget == null){ setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize); scrollPosition = 0; } else { _local1 = (direction == ScrollBarDirection.HORIZONTAL); _local2 = (_local1) ? _scrollTarget.width : 10; setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize); scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV; }; } public function update():void{ inEdit = true; updateScrollTargetProperties(); inEdit = false; } public function set scrollTargetName(_arg1:String):void{ var target = _arg1; try { scrollTarget = (parent.getChildByName(target) as TextField); } catch(error:Error) { throw (new Error("ScrollTarget not found, or is not a TextField")); }; } override public function set direction(_arg1:String):void{ if (isLivePreview){ return; }; super.direction = _arg1; updateScrollTargetProperties(); } protected function handleTargetChange(_arg1:Event):void{ inEdit = true; setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true); updateScrollTargetProperties(); inEdit = false; } override public function set maxScrollPosition(_arg1:Number):void{ var _local2:Number; _local2 = _arg1; if (_scrollTarget != null){ if (direction == ScrollBarDirection.HORIZONTAL){ _local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2; } else { _local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2; }; }; super.maxScrollPosition = _local2; } protected function updateTargetScroll(_arg1:ScrollEvent=null):void{ if (inEdit){ return; }; if (direction == ScrollBarDirection.HORIZONTAL){ _scrollTarget.scrollH = scrollPosition; } else { _scrollTarget.scrollV = scrollPosition; }; } override protected function draw():void{ if (isInvalid(InvalidationType.DATA)){ updateScrollTargetProperties(); }; super.draw(); } public function set scrollTarget(_arg1:TextField):void{ if (_scrollTarget != null){ _scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false); _scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false); _scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false); removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false); }; _scrollTarget = _arg1; if (_scrollTarget != null){ _scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true); _scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true); addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true); }; invalidate(InvalidationType.DATA); } override public function get direction():String{ return (super.direction); } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 104
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 105
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 106
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import fl.managers.*; import flash.text.*; import fl.events.*; import flash.utils.*; import flash.system.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 107
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); //unresolved jump }; if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; throw (new TypeError((("Error: Type Coercion failed: cannot convert " + _arg1) + " to Array or DataProvider."))); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 108
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 109
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 110
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 111
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 112
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 113
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 114
//FocusManager (fl.managers.FocusManager) package fl.managers { import flash.display.*; import flash.events.*; import fl.core.*; import fl.controls.*; import flash.text.*; import flash.utils.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 115
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import flash.display.*; import fl.controls.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 116
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 117
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 118
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 119
//Back (fl.transitions.easing.Back) package fl.transitions.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _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=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _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=0):Number{ if (!_arg5){ _arg5 = 1.70158; }; _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 fl.transitions.easing
Section 120
//Elastic (fl.transitions.easing.Elastic) package fl.transitions.easing { public class Elastic { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) + _arg3) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * (0.3 * 1.5)); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) * 0.5) + _arg3) + _arg2)); } } }//package fl.transitions.easing
Section 121
//None (fl.transitions.easing.None) package fl.transitions.easing { public class None { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.transitions.easing
Section 122
//Tween (fl.transitions.Tween) package fl.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false private var _fps:Number;// = NAN private var _time:Number;// = NAN public var begin:Number;// = NAN private var _finish:Number;// = NAN public var change:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function get position():Number{ return (this.getPosition(this._time)); } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 123
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var position:Number;// = NAN public var time:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 124
//LightMove_7 (Intro_fla.LightMove_7) package Intro_fla { import flash.display.*; public dynamic class LightMove_7 extends MovieClip { public function LightMove_7(){ addFrameScript(34, frame35); } function frame35(){ stop(); } } }//package Intro_fla
Section 125
//Key_2 (Items_fla.Key_2) package Items_fla { import flash.display.*; public dynamic class Key_2 extends MovieClip { public function Key_2(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Items_fla
Section 126
//BasicBlock (main.blocks.BasicBlock) package main.blocks { import flash.display.*; import Box2D.Dynamics.*; import main.physic.*; import main.field.*; import flash.geom.*; import main.*; public class BasicBlock extends Sprite { public var body:b2Body; public function BasicBlock(_arg1:Cell=null){ x = _arg1.cellX; y = _arg1.cellY; var _local2:BodyShape = new BodyShape("box", [Root.CELL_SIZE, Root.CELL_SIZE, new Point()]); body = Root.link.createBody(0, _local2, _arg1.cellX, _arg1.cellY, this, this); } } }//package main.blocks
Section 127
//MovingBlock (main.blocks.MovingBlock) package main.blocks { import flash.events.*; import main.field.*; import Box2D.Common.Math.*; import main.*; public class MovingBlock extends BasicBlock { public var block:MovingSprite; public var xSpeed:Number;// = 0 public var twoSides:Boolean; public var ySpeed:Number;// = 0 public var side:int; public var field:Field; public static const FIELD_HT:int = 480; public static const FIELD_WH:int = 540; public static const SPEED:Number = 0.05; public function MovingBlock(_arg1:Cell, _arg2:int){ super(_arg1); field = Root.link.field; block = new MovingSprite(); block.gotoAndStop(_arg2); addChild(block); body.isDynamic = true; body.bodyName = 8; switch (_arg2){ case 1: side = 0; ySpeed = -(SPEED); break; case 2: side = 1; ySpeed = SPEED; break; case 3: if ((y + 18) < (FIELD_HT / 2)){ side = 1; ySpeed = SPEED; } else { side = 0; ySpeed = -(SPEED); }; twoSides = true; break; case 4: side = 2; xSpeed = -(SPEED); break; case 5: side = 3; xSpeed = SPEED; break; case 6: if ((x + 18) < (FIELD_WH / 2)){ side = 3; xSpeed = SPEED; } else { side = 2; xSpeed = -(SPEED); }; twoSides = true; break; }; addEventListener(Event.ENTER_FRAME, moving); } public function moving(_arg1:Event):void{ var _local2:b2Vec2; _local2 = body.GetPosition(); _local2.x = (_local2.x + xSpeed); _local2.y = (_local2.y + ySpeed); body.SetXForm(_local2); var _local3:int = ((x + 13) / Root.CELL_SIZE); var _local4:int = ((y + 13) / Root.CELL_SIZE); var _local5:Cell = field.cell[_local3][_local4].area[side]; if (((((!(_local5)) || (_local5.block))) || (_local5.door))){ if (twoSides){ xSpeed = (xSpeed * -1); ySpeed = (ySpeed * -1); switch (side){ case 0: side = 1; break; case 1: side = 0; break; case 2: side = 3; break; case 3: side = 2; break; }; _local2.x = (_local2.x + (2 * xSpeed)); _local2.y = (_local2.y + (2 * ySpeed)); body.SetXForm(_local2); } else { xSpeed = 0; ySpeed = 0; removeEventListener(Event.ENTER_FRAME, moving); }; }; } } }//package main.blocks
Section 128
//ReplaceBlock (main.blocks.ReplaceBlock) package main.blocks { import main.field.*; import main.*; import main.effects.*; public class ReplaceBlock extends BasicBlock { public var block:ReplaceSprite; public function ReplaceBlock(_arg1:Cell){ block = new ReplaceSprite(); addChild(block); super(_arg1); } public function removeBlock():void{ if (Root.link.sound){ Sounds.crumble.play(); }; block.nextFrame(); Root.link.destroyBody(body); } } }//package main.blocks
Section 129
//ThornsBlock (main.blocks.ThornsBlock) package main.blocks { import Box2D.Dynamics.*; import main.physic.*; import main.field.*; import flash.geom.*; import main.*; import main.effects.*; public class ThornsBlock extends BasicBlock { public var shape:BodyShape; public var nullBody:b2Body; public var block; public var yPos:int; public var xPos:int; public var thornsBody:b2Body; public function ThornsBlock(_arg1:Cell, _arg2:int){ switch (_arg2){ case 1: block = new Thorns_1000(); break; case 2: block = new Thorns_800(); break; case 3: block = new Thorns_600(); break; case 4: block = new Thorns_400(); break; }; addChild(block); super(_arg1); initBody(); } public function showThorns():void{ if (Root.link.sound){ Sounds.thornsShow.play(); }; thornsBody = Root.link.createBody(3, shape, xPos, yPos); } public function hideThorns():void{ if (Root.link.sound){ Sounds.thornsHide.play(); }; if (thornsBody){ Root.link.destroyBody(thornsBody); }; } public function initBody():void{ var _local1:int = Root.CELL_SIZE; xPos = (x - (_local1 / 2)); yPos = (y - (_local1 / 2)); shape = new BodyShape("box", [_local1, (_local1 * 2), new Point((_local1 / 2), 0)]); shape.create("box", [(_local1 * 2), _local1, new Point(0, (_local1 / 2))]); shape.shapes[0].isSensor = true; shape.shapes[1].isSensor = true; nullBody = Root.link.createBody(0, shape, xPos, yPos); } } }//package main.blocks
Section 130
//TimeoutBlock (main.blocks.TimeoutBlock) package main.blocks { import flash.events.*; import main.field.*; import main.*; import main.effects.*; public class TimeoutBlock extends BasicBlock { public var second:int;// = 0 public var timer:int; public var block:TimeoutSprite; public function TimeoutBlock(_arg1:Cell, _arg2:int){ block = new TimeoutSprite(); addChild(block); super(_arg1); timer = _arg2; block.time.text = timer; addEventListener(Event.ENTER_FRAME, timerTick); } public function timerTick(_arg1:Event):void{ second++; if (second == Root.FPS){ second = 0; timer--; block.time.text = timer; if (timer == 0){ removeBlock(); }; }; } public function removeBlock():void{ removeEventListener(Event.ENTER_FRAME, timerTick); if (!parent){ return; }; if (Root.link.sound){ Sounds.crumble.play(); }; block.nextFrame(); Root.link.destroyBody(body); } } }//package main.blocks
Section 131
//Enemy (main.chars.Enemy) package main.chars { import flash.display.*; import flash.events.*; import Box2D.Dynamics.*; import main.physic.*; import Box2D.Common.Math.*; import flash.geom.*; import main.*; import Box2D.Dynamics.Contacts.*; import main.effects.*; import flash.media.*; public class Enemy extends MovieClip { public var hero:Sprite; public var sprite:EnemySprite; public var speed:Number;// = 0.2 public var attack:Boolean; public var sound:SoundChannel; public var rad:Number;// = 15 public var wt:Number;// = 5 public var body:b2Body; public var color:String; public var jump:Number;// = 0 public var wait:Boolean; public var trigger:Boolean; public var isDead:Boolean; public var yWakeUp:Boolean; public static const FALL_EDGE:int = 40; public static const FALL_IMPULSE:int = 20; public static const ATTACK_EDGE:int = 20; public function Enemy(_arg1:Object){ if (_arg1.trigger){ trigger = true; }; if (_arg1.yWakeUp){ yWakeUp = true; }; initBody(new Point(_arg1.x, _arg1.y)); hero = Root.link.hero; jump = _arg1.jump; speed = _arg1.speed; wait = _arg1.wait; attack = _arg1.attack; color = _arg1.color; if (wait){ body.PutToSleep(); }; sprite = new EnemySprite(); sprite.name = "Enemy"; sprite.gotoAndStop(color); addChild(sprite); } public function initBody(_arg1:Point):void{ x = _arg1.x; y = _arg1.y; var _local2:BodyShape = new BodyShape("ball", [rad, new Point()], wt, 0.5, 0.2); body = Root.link.createBody(2, _local2, _arg1.x, _arg1.y, this, this); body.isDynamic = true; body.AllowSleeping(false); } public function completeSound(_arg1:Event):void{ sound.removeEventListener(Event.SOUND_COMPLETE, completeSound); sound = null; } public function dead():void{ var _local1:EnemyBlowing; var _local2:int; if (!isDead){ Root.link.kills++; isDead = true; _local1 = new EnemyBlowing(); _local1.x = x; _local1.y = y; _local2 = 1; while (_local2 <= 6) { _local1[("part_" + _local2)].gotoAndStop(color); _local2++; }; Root.link.game.items.addChild(_local1); Root.link.destroyBody(body); parent.removeChild(this); if (((trigger) && ((Root.link.game.chars.numChildren == 0)))){ Root.link.trigger(); }; }; } public function deadKickSound():void{ var _local1:b2Vec2 = body.GetLinearVelocity(); _local1.Abs(); if ((((((_local1.x >= 5)) || ((_local1.y >= 5)))) && (!(sound)))){ sound = Sounds.kick.play(0); sound.addEventListener(Event.SOUND_COMPLETE, completeSound); }; } public function moving():void{ var _local4:Number; if (wait){ if (yWakeUp){ if (Math.abs((y - hero.y)) < 30){ wait = false; }; } else { if ((((y < hero.y)) && ((Math.abs((x - hero.x)) < FALL_EDGE)))){ body.WakeUp(); body.AllowSleeping(false); body.ApplyImpulse(new b2Vec2(0, FALL_IMPULSE), body.GetPosition()); wait = false; }; }; return; }; var _local1:b2Vec2 = body.GetPosition(); var _local2:b2Vec2 = body.GetLinearVelocity(); var _local3:b2ContactEdge = body.m_contactList; if (((attack) || ((Math.abs((y - hero.y)) < 30)))){ if (x < hero.x){ _local4 = speed; if (_local2.x < 0){ _local4 = (_local4 * 2); }; } else { _local4 = -(speed); if (_local2.x > 0){ _local4 = (_local4 * 2); }; }; body.ApplyImpulse(new b2Vec2(_local4, 0), _local1); } else { if (_local2.x >= 0.1){ _local2.x = (_local2.x - 0.1); } else { if (_local2.x <= -0.1){ _local2.x = (_local2.x + 0.1); } else { _local2.x = 0; }; }; body.SetLinearVelocity(_local2); }; if ((((((jump > 0)) && ((hero.y < y)))) && ((Math.abs((x - hero.x)) < (Math.abs((_local2.x * 4)) + ATTACK_EDGE))))){ if (((((_local3) && (_local3.other))) && ((Math.abs(_local2.y) < 0.1)))){ body.ApplyImpulse(new b2Vec2(0, -(jump)), _local1); }; }; while (_local3) { switch (_local3.other.bodyName){ case 1: if (Root.link.sound){ kickSound(); }; hero.dead(this); break; case 3: if (Root.link.sound){ Sounds.blowing.play(); }; dead(); break; case 4: if (Root.link.sound){ deadKickSound(); }; break; }; _local3 = _local3.next; }; } public function kickSound():void{ sound = Sounds.kick.play(); sound.addEventListener(Event.SOUND_COMPLETE, completeSound); } } }//package main.chars
Section 132
//Hero (main.chars.Hero) package main.chars { import flash.display.*; import flash.events.*; import Box2D.Dynamics.*; import main.physic.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import flash.geom.*; import main.*; import Box2D.Dynamics.Contacts.*; import main.effects.*; import flash.ui.*; public class Hero extends MovieClip { public var ht:int;// = 45 public var newSide:Boolean; public var body:b2Body; public var rightKey:Boolean; public var gameStage:Stage; public var jump:Number;// = 85 public var speed:Number;// = 0.11 public var upKey:Boolean; public var isDead:Boolean; public var wh:int;// = 10 public var limb:Array; public var side:Boolean; public var wt:int;// = 20 public var leftKey:Boolean; public var ragdoll:Sprite; public var deadImpulse:b2Vec2; public var status:String; public var hero:HeroSprite; public static const DN_BODY_H:Number = 11; public static const UP_BODY:int = 5; public static const UP_BODY_H:Number = 9; public static const LD_HAND:int = 1; public static const LIMB_H:Number = 8; public static const RD_HAND:int = 10; public static const HEAD:int = 4; public static const RD_LEG:int = 8; public static const LU_HAND:int = 0; public static const LD_LEG:int = 3; public static const LIMB_W:Number = 1.5; public static const RU_HAND:int = 9; public static const RU_LEG:int = 7; public static const HEAD_R:Number = 5.5; public static const DN_BODY:int = 6; public static const LU_LEG:int = 2; public static const BODY_W:Number = 3.5; public function Hero(_arg1:Object, _arg2:Stage){ limb = ["LUHand", "LDHand", "LULeg", "LDLeg", "Head", "UPBody", "DNBody", "RULeg", "RDLeg", "RUHand", "RDHand"]; super(); hero = new HeroSprite(); addChild(hero); initBody(_arg1); if (_arg1.flip){ setOrient(true); }; setStatus("Stand"); this.gameStage = _arg2; this.tabChildren = false; _arg2.focus = this; _arg2.addEventListener(KeyboardEvent.KEY_DOWN, keyPress); _arg2.addEventListener(KeyboardEvent.KEY_UP, keyRelease); } public function eraseHeroInfo(_arg1:Boolean=false):void{ var _local2:int; if (_arg1){ gameStage.removeEventListener(KeyboardEvent.KEY_DOWN, keyPress); }; removeKeyEvents(); removeEventListener(Event.ENTER_FRAME, ragdollXY); setStatus("Stand"); if (body != null){ Root.link.destroyBody(body); body = null; }; if ((limb[0] as b2Body)){ _local2 = 0; while (_local2 < limb.length) { Root.link.destroyBody(limb[_local2]); limb[_local2] = 0; _local2++; }; }; } public function makeRagdoll():void{ var _local1:BodyShape; var _local2:int; var _local3:int; var _local5:Sprite; var _local6:Number; var _local7:Number; var _local8:b2Body; if (side){ ragdoll = new RagdollR(); } else { ragdoll = new RagdollL(); }; ragdoll.x = x; ragdoll.y = y; addChild(ragdoll); var _local4:int; while (_local4 < limb.length) { _local5 = ragdoll[limb[_local4]]; _local6 = ((_local5.rotation * Math.PI) / 180); _local7 = 0.5; _local5.rotation = 0; switch (limb[_local4]){ case "UPBody": _local1 = new BodyShape("limb", [BODY_W, UP_BODY_H, new Point()], 3, _local7, _local7); break; case "DNBody": _local1 = new BodyShape("limb", [BODY_W, DN_BODY_H, new Point()], 3, _local7, _local7); break; case "Head": _local1 = new BodyShape("ball", [HEAD_R, new Point()], 2, _local7, _local7); break; default: _local1 = new BodyShape("limb", [LIMB_W, LIMB_H, new Point()], 2, _local7, _local7); break; }; _local2 = (x + _local5.x); _local3 = (y + _local5.y); _local8 = Root.link.createBody(4, _local1, _local2, _local3, _local5, this); limb[_local4] = _local8; _local8.isDynamic = true; _local8.AllowSleeping(true); _local8.SetXForm(_local8.GetPosition(), _local6); _local8.SetLinearVelocity(deadImpulse); _local8.WakeUp(); _local5.x = _local2; _local5.y = _local3; Root.link.game.chars.addChild(_local5); _local4++; }; ragdollJoints(); } private function ragdollXY(_arg1:Event):void{ x = limb[HEAD].m_userData.x; y = limb[HEAD].m_userData.y; } private function keyRelease(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.SPACE: case 87: case Keyboard.UP: upKey = false; break; case 68: case Keyboard.RIGHT: rightKey = false; break; case 65: case Keyboard.LEFT: leftKey = false; break; }; if (getStatus() == "Run"){ setStatus("Stand"); }; } public function setPosition(_arg1:Object):void{ x = _arg1.x; y = _arg1.y; if (_arg1.flip){ setOrient(true); }; body.SetXForm(new b2Vec2((_arg1.x / 30), (_arg1.y / 30))); } public function removeKeyEvents():void{ gameStage.removeEventListener(KeyboardEvent.KEY_UP, keyRelease); } private function keyPress(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.SPACE: case 87: case Keyboard.UP: upKey = true; break; case 68: case Keyboard.RIGHT: rightKey = true; break; case 65: case Keyboard.LEFT: leftKey = true; break; case Keyboard.SHIFT: dead(); break; case 82: Root.link.restartLevel(); break; }; } public function keyListener():void{ var velo:b2Vec2; var vector:*; if (isDead){ return; }; var ySpeed:Number = body.GetLinearVelocity().y; if (((rightKey) || (leftKey))){ velo = body.GetPosition(); if (rightKey){ if (!side){ setOrient(true); }; velo.x = (velo.x + speed); } else { if (leftKey){ if (side){ setOrient(false); }; velo.x = (velo.x + -(speed)); }; }; body.SetXForm(velo); if (getStatus() == "Stand"){ setStatus("Run"); }; }; if (upKey){ if (((((!((body.m_contactList == null))) && ((ySpeed == 0)))) && (!((getStatus() == "Jump"))))){ setStatus("Jump"); if (Root.link.sound){ Sounds.jump.play(); }; body.SetLinearVelocity(new b2Vec2(body.GetLinearVelocity().x, 0)); body.ApplyImpulse(new b2Vec2(0, -(jump)), body.GetPosition()); }; }; if (ySpeed != 0){ if (getStatus() != "Jump"){ setStatus("Jump"); }; } else { if ((((getStatus() == "Jump")) && (body.m_contactList))){ setStatus("Stand"); }; }; var contact:b2ContactEdge = body.m_contactList; while (contact) { var _local2 = contact.other; with (_local2) { switch (bodyName){ case 5: if (Root.link.sound){ Sounds.bonus.play(); }; classLink.openDoor(); break; case 3: if (Root.link.sound){ Sounds.dead.play(); }; dead(); break; case 7: classLink.removeItem(); Root.link.changeScore(); if (Root.link.sound){ Sounds.bonus.play(); }; break; case 8: if (classLink.y > y){ vector = body.GetPosition(); vector.x = (vector.x + classLink.xSpeed); vector.y = (vector.y + classLink.ySpeed); body.SetXForm(vector); }; break; case 6: Root.link.finishLevel(); break; }; }; contact = contact.next; }; if (y > 500){ if (Root.link.sound){ Sounds.scream.play(); }; dead(); }; } private function setJoint(_arg1:b2RevoluteJointDef, _arg2:Sprite, _arg3:b2Body, _arg4:b2Body):void{ _arg1.Initialize(_arg3, _arg4, new b2Vec2(((x + _arg2.x) / 30), ((y + _arg2.y) / 30))); Root.link.createJoint(_arg1); } public function step():void{ if (Root.link.sound){ Sounds.step.play(); }; } private function setOrient(_arg1:Boolean):void{ side = _arg1; if (side){ hero.scaleX = -(scaleX); } else { hero.scaleX = scaleX; }; } public function initBody(_arg1:Object):void{ x = _arg1.x; y = _arg1.y; var _local2:BodyShape = new BodyShape("box", [wh, ht, new Point((-(wh) / 2), (-(ht) / 2))], wt); body = Root.link.createBody(1, _local2, _arg1.x, _arg1.y, this, this); body.isDynamic = true; body.AllowSleeping(false); } private function getStatus():String{ return (hero.currentLabel); } private function ragdollJoints():void{ var point:Sprite; var joint:b2RevoluteJointDef = new b2RevoluteJointDef(); joint.enableLimit = true; var _local2 = ragdoll; with (_local2) { if (side){ joint.setAngleLimit(15, -40); } else { joint.setAngleLimit(40, -15); }; setJoint(joint, jHead, limb[UP_BODY], limb[HEAD]); joint.setAngleLimit(35, -35); setJoint(joint, jBody, limb[UP_BODY], limb[DN_BODY]); joint.setAngleLimit(170, -170); setJoint(joint, jRUHand, limb[UP_BODY], limb[RU_HAND]); setJoint(joint, jLUHand, limb[UP_BODY], limb[LU_HAND]); if (side){ joint.setAngleLimit(20, -130); } else { joint.setAngleLimit(130, -20); }; setJoint(joint, jRDHand, limb[RU_HAND], limb[RD_HAND]); setJoint(joint, jLDHand, limb[LU_HAND], limb[LD_HAND]); if (side){ joint.setAngleLimit(30, -90); } else { joint.setAngleLimit(90, -30); }; setJoint(joint, jHer, limb[DN_BODY], limb[RU_LEG]); setJoint(joint, jHer, limb[DN_BODY], limb[LU_LEG]); if (side){ joint.setAngleLimit(30, -80); } else { joint.setAngleLimit(80, -30); }; setJoint(joint, jRDLeg, limb[RD_LEG], limb[RU_LEG]); setJoint(joint, jLDLeg, limb[LD_LEG], limb[LU_LEG]); }; parent.removeChild(this); addEventListener(Event.ENTER_FRAME, ragdollXY); } public function dead(_arg1:Enemy=null):void{ if (!isDead){ Root.link.levelFail(); if (_arg1){ deadImpulse = new b2Vec2(((x - _arg1.x) / 30), ((y - _arg1.y) / 30)); } else { deadImpulse = body.GetLinearVelocity(); deadImpulse.x = (deadImpulse.x / 2); deadImpulse.y = (deadImpulse.y / 2); }; isDead = true; eraseHeroInfo(); removeChild(hero); makeRagdoll(); Root.link.gameStage.focus = Root.link; }; } private function setStatus(_arg1:String):void{ status = _arg1; hero.gotoAndStop(status); } } }//package main.chars
Section 133
//HeroPreview (main.chars.HeroPreview) package main.chars { import flash.display.*; public class HeroPreview extends Sprite { public var flip:Boolean; public function eraseHeroInfo(_arg1:Boolean=false):void{ } public function setPosition(_arg1:Object):void{ if (_arg1.flip){ flip = true; scaleX = -1; }; x = _arg1.x; y = _arg1.y; } } }//package main.chars
Section 134
//BitmapSprite (main.display.BitmapSprite) package main.display { import flash.display.*; import main.render.*; public class BitmapSprite extends Sprite { public var bmdAlpha:Boolean; public var bitmapData:BitmapData; public var sprite:Sprite; public function BitmapSprite(_arg1:Boolean=true){ this.bmdAlpha = _arg1; sprite = new Sprite(); addChild(sprite); } public function render():void{ if (sprite.numChildren > 0){ bitmapData = Render.spriteRender(sprite, bmdAlpha); }; } public function drawChild(_arg1:DecoSprite):void{ sprite.addChild(_arg1); } public function eraseLayer():void{ while (sprite.numChildren > 0) { sprite.removeChildAt(0); }; if (bitmapData){ bitmapData.dispose(); }; removeChildAt(0); addChild(sprite); } } }//package main.display
Section 135
//DecoSprite (main.display.DecoSprite) package main.display { import flash.display.*; public class DecoSprite extends MovieClip { public var flip:Boolean;// = false public function DecoSprite(){ name = "Deco"; } } }//package main.display
Section 136
//DisplayList (main.display.DisplayList) package main.display { import flash.display.*; import main.windows.*; public class DisplayList extends Sprite { public var items:SimpleSprite; public var windowLayer:Sprite; public var doors:SimpleSprite; public var blocks:SimpleSprite; public var hiLayer:SimpleSprite; public var bcgStatic:BitmapSprite; public var chars:SimpleSprite; public var sky:Sky; public var lowLayer:SimpleSprite; public var midLayer:SimpleSprite; public var panelLayer:SimpleSprite; public var window:Window; public var bcgAnimate:SimpleSprite; public var gameLayer:SimpleSprite; public function DisplayList(){ gameLayer = new SimpleSprite(); addChild(gameLayer); lowLayer = new SimpleSprite(); gameLayer.addChild(lowLayer); sky = new Sky(); bcgStatic = new BitmapSprite(); bcgAnimate = new SimpleSprite(); midLayer = new SimpleSprite(); gameLayer.addChild(midLayer); hiLayer = new SimpleSprite(); gameLayer.addChild(hiLayer); windowLayer = new Sprite(); addChild(windowLayer); window = new Window(); windowLayer.addChild(window); panelLayer = new SimpleSprite(); addChild(panelLayer); items = new SimpleSprite(); chars = new SimpleSprite(); doors = new SimpleSprite(); blocks = new SimpleSprite(); addChildLayers(); visible = false; } public function eraseLayers():void{ lowLayer.eraseLayer(); midLayer.eraseLayer(); hiLayer.eraseLayer(); panelLayer.eraseLayer(); addChildLayers(); } public function addChildLayers():void{ lowLayer.addChild(bcgAnimate); lowLayer.addChild(bcgStatic); midLayer.addChild(chars); midLayer.addChild(doors); midLayer.addChild(blocks); hiLayer.addChild(items); bcgAnimate.addChildAt(sky, 0); } } }//package main.display
Section 137
//SimpleSprite (main.display.SimpleSprite) package main.display { import flash.display.*; import main.blocks.*; public class SimpleSprite extends Sprite { public function eraseLayer():void{ var _local1:*; while (numChildren > 0) { _local1 = getChildAt(0); if ((_local1 is ThornsBlock)){ _local1.block.stop(); }; if ((((_local1 as SimpleSprite)) || ((_local1 as BitmapSprite)))){ _local1.eraseLayer(); }; removeChildAt(0); }; } } }//package main.display
Section 138
//ActiveObject (main.editor.panels.ActiveObject) package main.editor.panels { import flash.display.*; import flash.events.*; import main.*; import flash.filters.*; public class ActiveObject extends Sprite { public var activeObject; public function setActiveObject(_arg1):void{ if (activeObject){ activeObject.filters = null; }; activeObject = _arg1; activeObject.filters = [new GlowFilter(0xFFCC00, 1, 5, 5, 0xFF, 1)]; refresh(); dragObject(); refreshInfo(); } public function refreshInfo():void{ } public function dropObject(_arg1:MouseEvent):void{ var event = _arg1; activeObject.stopDrag(); var _local3 = Root.link.gameStage; with (_local3) { removeEventListener(Event.ENTER_FRAME, draging); removeEventListener(MouseEvent.MOUSE_UP, dropObject); }; } public function standartValues():void{ } public function removeActiveObject():void{ if (activeObject){ activeObject.filters = null; activeObject = null; standartValues(); }; } public function draging(_arg1:Event):void{ refreshXY(); } public function dragObject():void{ activeObject.startDrag(); var _local2 = Root.link.gameStage; with (_local2) { addEventListener(Event.ENTER_FRAME, draging); addEventListener(MouseEvent.MOUSE_UP, dropObject); }; } public function refresh():void{ } public function refreshXY():void{ } } }//package main.editor.panels
Section 139
//BlockPanel (main.editor.panels.BlockPanel) package main.editor.panels { import flash.display.*; import flash.events.*; import main.field.*; import main.*; public class BlockPanel extends Sprite { public var selected:int;// = 0 private var panel:BlockPanelSprite; public var border:Border; public function BlockPanel(){ border = new Border(); super(); panel = new BlockPanelSprite(); addChild(panel); panel.addChild(border); var _local2 = panel; with (_local2) { btnBlock_0.addEventListener(MouseEvent.MOUSE_DOWN, addBlock_0); btnBlock_1.addEventListener(MouseEvent.MOUSE_DOWN, addBlock_1); btnBlock_2.addEventListener(MouseEvent.MOUSE_DOWN, addBlock_2); btnBlock_3.addEventListener(MouseEvent.MOUSE_DOWN, addBlock_3); btnBlock_4.addEventListener(MouseEvent.MOUSE_DOWN, addBlock_4); }; refresh(); } public function addBlock_3(_arg1:MouseEvent):void{ setBlockType(3); } public function addBlock_4(_arg1:MouseEvent):void{ setBlockType(4); } public function setBlockType(_arg1:int):void{ selected = _arg1; border.x = panel[("btnBlock_" + _arg1)].x; border.y = panel[("btnBlock_" + _arg1)].y; Root.link.cursor.setBlock(TileType.TILES[_arg1], _arg1); } public function refresh():void{ setBlockType(selected); } public function addBlock_0(_arg1:MouseEvent):void{ setBlockType(0); } public function addBlock_1(_arg1:MouseEvent):void{ setBlockType(1); } public function addBlock_2(_arg1:MouseEvent):void{ setBlockType(2); } } }//package main.editor.panels
Section 140
//CodePanel (main.editor.panels.CodePanel) package main.editor.panels { import flash.display.*; import flash.events.*; import main.*; import flash.text.*; public class CodePanel extends Sprite { public var panel:CodePanelSprite; public function CodePanel(_arg1:String){ panel = new CodePanelSprite(); addChild(panel); var _local2:TextFormat = new TextFormat(); _local2.font = "Courier New"; _local2.size = 12; _local2.leftMargin = 15; panel.textArea.textField.text = _arg1; panel.textArea.setStyle("textFormat", _local2); panel.btnClose.addEventListener(MouseEvent.CLICK, closePanel); } public function closePanel(_arg1:MouseEvent):void{ Root.link.addEditorEvents(); panel.btnClose.removeEventListener(MouseEvent.CLICK, closePanel); removeChild(panel); parent.removeChild(this); } } }//package main.editor.panels
Section 141
//DecoPanel (main.editor.panels.DecoPanel) package main.editor.panels { import flash.display.*; import flash.events.*; import main.*; import fl.controls.*; import fl.data.*; import flash.utils.*; public class DecoPanel extends Sprite { public var subType:ComboBox; public var panel:DecoPanelSprite; public var sprite:Sprite; public var animateData:DataProvider; public var activeDeco:Class; public var staticData:DataProvider; public var type:ComboBox; public static const PREVIEW_W:int = 80; public static const PREVIEW_H:int = 97; public static var staticDeco:Array = [Bush_1, Bush_2, Bush_3, Bush_4, Bush_5, Bush_6, Palm_1, Palm_2, Palm_3, Tree_1, Tree_2, Tree_3, Tree_4, Tree_5, Cloud_1, Cloud_2, Cloud_3, Cloud_4, Cloud_5, Cloud_6, Back_1, Back_2, Back_3, Back_4, Back_5, Tutorial_1, Tutorial_2, Tutorial_3, Tutorial_4, Tutorial_5]; public static var animateDeco:Array = [Sun]; public function DecoPanel(){ var _local1:String; super(); panel = new DecoPanelSprite(); addChild(panel); activeDeco = staticDeco[0]; staticData = new DataProvider(); var _local2:int; while (_local2 < staticDeco.length) { _local1 = getQualifiedClassName(staticDeco[_local2]); staticData.addItem({label:_local1, data:staticDeco[_local2]}); _local2++; }; animateData = new DataProvider(); _local2 = 0; while (_local2 < animateDeco.length) { _local1 = getQualifiedClassName(animateDeco[_local2]); animateData.addItem({label:_local1, data:animateDeco[_local2]}); _local2++; }; type = new ComboBox(); type.move(6, 24); type.width = 75; type.rowCount = 2; panel.addChild(type); type.addItem({label:"Animate", data:animateData}); type.addItem({label:"Static", data:staticData}); type.selectedIndex = 1; type.addEventListener(Event.CHANGE, changeType); subType = new ComboBox(); subType.move(6, 69); subType.width = 75; subType.rowCount = 15; subType.dataProvider = staticData; panel.addChild(subType); subType.addEventListener(Event.CHANGE, changeSubType); } public function changeType(_arg1:Event):void{ subType.dataProvider = type.selectedItem.data; activeDeco = subType.dataProvider.getItemAt(0).data; refresh(); } public function changeSubType(_arg1:Event):void{ activeDeco = subType.selectedItem.data; refresh(); } public function refresh():void{ sprite = (new activeDeco() as Sprite); if (sprite.width > PREVIEW_W){ sprite.width = PREVIEW_W; sprite.scaleY = sprite.scaleX; }; if (sprite.height > PREVIEW_H){ sprite.height = PREVIEW_H; sprite.scaleX = sprite.scaleY; }; var _local2 = panel; with (_local2) { if (preview.numChildren > 0){ preview.removeChildAt(0); }; preview.addChild(sprite); }; Root.link.cursor.setDeco(activeDeco, type.selectedIndex); } } }//package main.editor.panels
Section 142
//DoorPanel (main.editor.panels.DoorPanel) package main.editor.panels { import flash.display.*; import flash.events.*; import main.*; public class DoorPanel extends Sprite { private var panel:DoorPanelSprite; public function DoorPanel(){ panel = new DoorPanelSprite(); addChild(panel); panel.preview.gotoAndStop(1); panel.color.addEventListener(Event.CHANGE, changeColor); panel.orient.addEventListener(Event.CHANGE, changeOrient); } public function refresh():void{ var _local1:String = panel.preview.upColor.currentLabel; var _local2:int = panel.preview.currentFrame; Root.link.cursor.setDoor(_local1, _local2); } public function changeColor(_arg1:Event):void{ panel.preview.upColor.gotoAndStop(panel.color.selectedItem.data); panel.preview.dnColor.gotoAndStop(panel.color.selectedItem.data); refresh(); } public function changeOrient(_arg1:Event):void{ panel.preview.gotoAndStop(panel.orient.selectedItem.data); refresh(); } } }//package main.editor.panels
Section 143
//EmptyPanel (main.editor.panels.EmptyPanel) package main.editor.panels { import flash.display.*; public class EmptyPanel extends Sprite { public function refresh():void{ } } }//package main.editor.panels
Section 144
//EnemyPanel (main.editor.panels.EnemyPanel) package main.editor.panels { import flash.events.*; import main.*; import main.chars.*; public class EnemyPanel extends ActiveObject { private var panel:EnemyPanelSprite; public function EnemyPanel(){ super(); panel = new EnemyPanelSprite(); panel.stop(); addChild(panel); var _local2 = panel; with (_local2) { options.xPos.maxChars = 3; options.yPos.maxChars = 3; options.xPos.restrict = "0123456789"; options.yPos.restrict = "0123456789"; options.xPos.addEventListener(Event.CHANGE, changePos); options.yPos.addEventListener(Event.CHANGE, changePos); preview.gotoAndStop(1); speed.addEventListener(Event.CHANGE, changeSpeed); jump.addEventListener(Event.CHANGE, changeJump); attack.addEventListener(Event.CHANGE, changeAttack); wait.addEventListener(Event.CHANGE, changeWait); color.addEventListener(Event.CHANGE, changeColor); options.btnRemove.addEventListener(MouseEvent.CLICK, removeEnemy); }; } override public function refreshXY():void{ panel.options.xPos.text = activeObject.x; panel.options.yPos.text = activeObject.y; } public function changeWait(_arg1:Event):void{ if (activeObject){ activeObject.wait = panel.wait.selected; } else { refresh(); }; } override public function refreshInfo():void{ var _local2 = panel; with (_local2) { speed.value = (activeObject.speed * 100); jump.value = activeObject.jump; wait.selected = activeObject.wait; attack.selected = activeObject.attack; color.selectedIndex = (activeObject.sprite.currentFrame - 1); }; } public function removeEnemy(_arg1:MouseEvent):void{ activeObject.parent.removeChild(activeObject); activeObject = null; refresh(); Root.link.editor.showCursor(null); } override public function standartValues():void{ var _local2 = panel; with (_local2) { speed.value = 30; jump.value = 0; wait.selected = false; attack.selected = false; color.selectedIndex = 0; }; } public function changeSpeed(_arg1:Event):void{ if (activeObject){ activeObject.speed = (panel.speed.value / 100); } else { refresh(); }; } public function changeAttack(_arg1:Event):void{ if (activeObject){ activeObject.attack = panel.attack.selected; } else { refresh(); }; } public function changeColor(_arg1:Event):void{ var _local2:String = panel.color.selectedItem.data; if (activeObject){ activeObject.color = _local2; activeObject.sprite.gotoAndStop(_local2); } else { panel.preview.gotoAndStop(_local2); }; refresh(); } override public function refresh():void{ var options:Object; if (activeObject){ panel.options.visible = true; panel.preview.visible = false; refreshXY(); } else { panel.options.visible = false; panel.preview.visible = true; var _local2 = panel; with (_local2) { options = {x:0, y:0, speed:(speed.value / 100), jump:jump.value, wait:wait.selected, attack:attack.selected, color:preview.currentLabel}; }; Root.link.cursor.setEnemy(options); }; } public function changePos(_arg1:Event):void{ activeObject.x = panel.options.xPos.text; activeObject.y = panel.options.yPos.text; } public function changeJump(_arg1:Event):void{ if (activeObject){ activeObject.jump = panel.jump.value; } else { refresh(); }; } } }//package main.editor.panels
Section 145
//ObjectPanel (main.editor.panels.ObjectPanel) package main.editor.panels { import flash.events.*; import main.game.*; import main.chars.*; import main.display.*; import flash.utils.*; import main.items.*; public class ObjectPanel extends ActiveObject { private var panel:ObjectPanelSprite; public function ObjectPanel(){ super(); panel = new ObjectPanelSprite(); addChild(panel); var _local2 = panel; with (_local2) { xPos.maxChars = 3; yPos.maxChars = 3; xPos.restrict = "0123456789"; yPos.restrict = "0123456789"; xPos.addEventListener(Event.CHANGE, changePos); yPos.addEventListener(Event.CHANGE, changePos); flip.addEventListener(Event.CHANGE, changeFlip); btnToFront.addEventListener(MouseEvent.CLICK, toFront); btnToBack.addEventListener(MouseEvent.CLICK, toBack); btnRemove.addEventListener(MouseEvent.CLICK, removeObject); }; } public function toBack(_arg1:MouseEvent):void{ var _local2:int = activeObject.parent.getChildIndex(activeObject); if (_local2 > 0){ activeObject.parent.setChildIndex(activeObject, (_local2 - 1)); }; } public function changePos(_arg1:Event):void{ activeObject.x = panel.xPos.text; activeObject.y = panel.yPos.text; } public function toFront(_arg1:MouseEvent):void{ var _local2:int = activeObject.parent.getChildIndex(activeObject); var _local3:int = (activeObject.parent.numChildren - 1); if (_local2 < _local3){ activeObject.parent.setChildIndex(activeObject, (_local2 + 1)); }; } public function removeObject(_arg1:MouseEvent):void{ if ((((((activeObject is Exit)) || ((activeObject is Key)))) || ((activeObject is HeroPreview)))){ return; }; activeObject.parent.removeChild(activeObject); activeObject = null; } override public function refresh():void{ if (activeObject){ panel.xPos.text = activeObject.x; panel.yPos.text = activeObject.y; var _local2 = panel; with (_local2) { if ((activeObject is DecoSprite)){ btnToFront.enabled = true; btnToBack.enabled = true; btnRemove.enabled = true; flip.enabled = true; flip.selected = activeObject.flip; } else { if ((activeObject is HeroPreview)){ btnToFront.enabled = false; btnToBack.enabled = false; btnRemove.enabled = false; flip.enabled = true; flip.selected = activeObject.flip; } else { if ((activeObject is Coin)){ btnToFront.enabled = false; btnToBack.enabled = false; btnRemove.enabled = true; flip.enabled = false; } else { if ((((activeObject is Exit)) || ((activeObject is Key)))){ btnToFront.enabled = false; btnToBack.enabled = false; btnRemove.enabled = false; flip.enabled = false; }; }; }; }; }; }; } public function changeFlip(_arg1:Event):void{ if (activeObject){ activeObject.flip = !(activeObject.flip); activeObject.scaleX = -(activeObject.scaleX); }; } override public function refreshXY():void{ panel.xPos.text = activeObject.x; panel.yPos.text = activeObject.y; } } }//package main.editor.panels
Section 146
//SetupPanel (main.editor.panels.SetupPanel) package main.editor.panels { import flash.display.*; import flash.events.*; import main.*; import fl.data.*; public class SetupPanel extends Sprite { public var panel:SetupPanelSprite; public var thornsOptions:DataProvider; public var typeData:DataProvider; public var movingOptions:DataProvider; public var state:String; public var option:int;// = 0 public var nullOptions:DataProvider; public var timeoutOptions:DataProvider; public static const types:Object = {None:0, Simple:1, Timeout:2, Moving:3, Replace:4, Thorn:5}; public function SetupPanel(){ typeData = new DataProvider(); nullOptions = new DataProvider(); timeoutOptions = new DataProvider(); movingOptions = new DataProvider(); thornsOptions = new DataProvider(); super(); panel = new SetupPanelSprite(); addChild(panel); var _local2 = nullOptions; with (_local2) { nullOptions.addItem({label:"---", data:0}); }; _local2 = timeoutOptions; with (_local2) { addItem({label:"1 second", data:1}); addItem({label:"2 second", data:2}); addItem({label:"3 second", data:3}); addItem({label:"4 second", data:4}); addItem({label:"5 second", data:5}); }; _local2 = movingOptions; with (_local2) { addItem({label:"Up", data:1}); addItem({label:"Down", data:2}); addItem({label:"Up & Down", data:3}); addItem({label:"Left", data:4}); addItem({label:"Right", data:5}); addItem({label:"Left & Right", data:6}); }; _local2 = thornsOptions; with (_local2) { addItem({label:"1000 ms", data:1}); addItem({label:"800 ms", data:2}); addItem({label:"600 ms", data:3}); addItem({label:"400 ms", data:4}); }; _local2 = typeData; with (_local2) { addItem({label:"None", data:nullOptions}); addItem({label:"Simple", data:nullOptions}); addItem({label:"Timeout", data:timeoutOptions}); addItem({label:"Moving", data:movingOptions}); addItem({label:"Replace", data:nullOptions}); addItem({label:"Thorn", data:thornsOptions}); }; var i = 1; while (i <= 4) { panel[("preview_" + i)].gotoAndStop(1); panel[("type_" + i)].dataProvider = typeData; panel[("type_" + i)].addEventListener(Event.CHANGE, changeType(i)); panel[("options_" + i)].addEventListener(Event.CHANGE, changeOptions(i)); i = (i + 1); }; panel.btnSave.addEventListener(MouseEvent.CLICK, saveMap); } public function changeOptions(_arg1:int):Function{ var num = _arg1; return (function (_arg1:Event=null):void{ var event = _arg1; var _local3 = panel[("options_" + num)]; with (_local3) { if ((((dataProvider == timeoutOptions)) || ((dataProvider == movingOptions)))){ panel[("preview_" + num)].block.gotoAndStop(selectedItem.data); }; }; }); } public function changeType(_arg1:int):Function{ var num = _arg1; return (function (_arg1:Event=null):void{ var _local2:* = panel[("type_" + num)].selectedItem.label; var _local3:* = panel[("type_" + num)].selectedItem.data; panel[("preview_" + num)].gotoAndStop(_local2); panel[("options_" + num)].dataProvider = _local3; panel[("options_" + num)].selectedIndex = option; }); } public function refresh():void{ var _local1:Array = new Array(); if (Root.link.level){ panel.levelTime.value = Root.link.level.time; } else { panel.levelTime.value = 100; }; if (Root.link.blocks){ _local1 = Root.link.blocks; } else { if (Root.link.level){ _local1 = Root.link.level.blocks; }; }; var _local2:int; while (_local2 < 4) { if (_local2 < _local1.length){ option = (_local1[_local2].options - 1); panel[("type_" + (_local2 + 1))].selectedIndex = types[_local1[_local2].type]; changeType((_local2 + 1)).apply(); panel[("amount_" + (_local2 + 1))].value = _local1[_local2].amount; } else { panel[("preview_" + (_local2 + 1))].gotoAndStop(1); panel[("options_" + (_local2 + 1))].dataProvider = nullOptions; panel[("amount_" + (_local2 + 1))].value = 1; }; _local2++; }; option = 0; } public function saveMap(_arg1:MouseEvent):void{ var _local3:String; var _local4:int; var _local5:int; Root.link.blocks = []; var _local2 = 1; while (_local2 <= 4) { _local3 = panel[("type_" + _local2)].selectedItem.label; _local4 = panel[("amount_" + _local2)].value; _local5 = panel[("options_" + _local2)].selectedItem.data; if (_local3 != "None"){ Root.link.blocks.push({type:_local3, amount:_local4, options:_local5}); }; _local2++; }; Root.link.time = panel.levelTime.value; parent.removeChild(this); Root.link.editor.enableEditor(); switch (state){ case "test": Root.link.testLevel(); break; case "save": Root.link.getMap(); break; }; } } }//package main.editor.panels
Section 147
//ThornPanel (main.editor.panels.ThornPanel) package main.editor.panels { import flash.display.*; import flash.events.*; import main.*; public class ThornPanel extends Sprite { public var selected:int;// = 4 private var panel:ThornPanelSprite; public var border:Border; public function ThornPanel(){ border = new Border(); super(); panel = new ThornPanelSprite(); addChild(panel); panel.addChild(border); border.visible = true; var _local2 = panel; with (_local2) { btnThorn_1.addEventListener(MouseEvent.MOUSE_DOWN, addThorn_1); btnThorn_2.addEventListener(MouseEvent.MOUSE_DOWN, addThorn_2); btnThorn_3.addEventListener(MouseEvent.MOUSE_DOWN, addThorn_3); btnThorn_4.addEventListener(MouseEvent.MOUSE_DOWN, addThorn_4); btnThorn_5.addEventListener(MouseEvent.MOUSE_DOWN, addThorn_5); btnThorn_6.addEventListener(MouseEvent.MOUSE_DOWN, addThorn_6); btnThorn_7.addEventListener(MouseEvent.MOUSE_DOWN, addThorn_7); btnThorn_8.addEventListener(MouseEvent.MOUSE_DOWN, addThorn_8); }; } public function addThorn_8(_arg1:MouseEvent):void{ setThornType(8); } public function addThorn_1(_arg1:MouseEvent):void{ setThornType(1); } public function addThorn_2(_arg1:MouseEvent):void{ setThornType(2); } public function addThorn_3(_arg1:MouseEvent):void{ setThornType(3); } public function addThorn_4(_arg1:MouseEvent):void{ setThornType(4); } public function addThorn_6(_arg1:MouseEvent):void{ setThornType(6); } public function addThorn_5(_arg1:MouseEvent):void{ setThornType(5); } public function addThorn_7(_arg1:MouseEvent):void{ setThornType(7); } public function refresh():void{ setThornType(selected); } public function setThornType(_arg1:int):void{ selected = _arg1; border.x = panel[("btnThorn_" + _arg1)].x; border.y = panel[("btnThorn_" + _arg1)].y; Root.link.cursor.setThorn(_arg1); } } }//package main.editor.panels
Section 148
//Cursor (main.editor.Cursor) package main.editor { import flash.display.*; import main.field.*; import main.windows.*; import main.game.*; import main.*; import flash.filters.*; public class Cursor extends Sprite { public var container:Sprite; public var error:Erase; public var block:BlockButton; public var tileType:TileType; public var item; public var options:Object; public var cell:Cell; public var tileShape:int; public var cellCors:Boolean; public var status:String; public function Cursor(_arg1:int){ status = "Block"; cellCors = true; container = new Sprite(); container.alpha = 0.6; container.cacheAsBitmap = true; addChild(container); border = new Border(); border.x = -3; border.y = -3; addChild(border); error = new Erase(); error.alpha = 0.5; error.visible = false; addChild(error); } public function setEnemy(_arg1:Object):void{ refresh(); status = "Enemy"; cellCors = false; border.visible = false; options = _arg1; item = new EnemyPreview(); item.gotoAndStop(options.color); container.addChild(item); } public function setBlock(_arg1:TileType, _arg2:int):void{ refresh(); status = "Block"; cellCors = true; tileShape = _arg2; tileType = _arg1; item = new Block(); item.setFromTileType(_arg1); container.addChild(item); } public function setEraser():void{ refresh(); status = "Erase"; cellCors = true; tileType = null; item = new Erase(); container.addChild(item); } public function setDoorSize():void{ var _local1:Object; if (cell.free){ _local1 = Door.getDoorSize(cell, item.currentFrame); if (_local1){ border.visible = false; switch (item.currentFrame){ case 1: item.y = _local1.shift; break; case 2: item.x = _local1.shift; break; }; item.size.gotoAndStop(_local1.length); options = {flag:true, col:cell.col, row:cell.row, x:((cell.cellX + item.x) + (Root.CELL_SIZE / 2)), y:((cell.cellY + item.y) + (Root.CELL_SIZE / 2)), color:item.upColor.currentLabel, orient:item.currentFrame, length:(_local1.length - 1)}; } else { resetDoorSize(); }; } else { resetDoorSize(); }; } public function setCoin():void{ refresh(); status = "Coin"; cellCors = false; border.visible = false; item = new CoinSprite(); container.addChild(item); } public function setDoorKey(_arg1:Door):void{ refresh(); status = "Key"; cellCors = false; border.visible = false; options = {door:_arg1}; item = new KeySprite(); item.color.gotoAndStop(options.door.color); container.addChild(item); } public function setCursor():void{ refresh(); status = "Cursor"; border.visible = false; } public function refresh():void{ if (item){ container.removeChildAt(0); item = null; options = null; }; border.visible = true; } public function setDoor(_arg1:String, _arg2:int):void{ refresh(); status = "Door"; cellCors = true; item = new DoorPreview(); item.upColor.gotoAndStop(_arg1); item.dnColor.gotoAndStop(_arg1); item.size.gotoAndStop(1); item.gotoAndStop(_arg2); container.addChild(item); } public function setFreeMode():void{ refresh(); status = "None"; block = null; border.visible = false; } public function setThorn(_arg1:int):void{ refresh(); status = "Thorn"; cellCors = true; item = new Thorns(); item.gotoAndStop(_arg1); container.addChild(item); } public function setDeco(_arg1:Class, _arg2:int):void{ refresh(); status = "Deco"; cellCors = false; border.visible = false; options = {type:_arg1, layer:_arg2}; item = new (_arg1); item.filters = [new GlowFilter(0xFFCC00, 1, 5, 5, 0xFF, 1)]; container.addChild(item); } public function setGameBlock(_arg1:BlockButton):void{ this.block = _arg1; refresh(); status = _arg1.type; cellCors = true; tileShape = 0; tileType = TileType.SOLID; switch (_arg1.type){ case "Simple": case "Replace": item = new BasicSprite(); break; case "Thorn": item = new ThornsSprite(); break; case "Timeout": item = new TimeoutSprite(); item.time.text = _arg1.options; break; case "Moving": item = new MovingSprite(); item.gotoAndStop(_arg1.options); break; }; container.addChild(item); } public function resetDoorSize():void{ options = {flag:false}; border.visible = true; item.size.gotoAndStop(1); item.x = 0; item.y = 0; } } }//package main.editor
Section 149
//Editor (main.editor.Editor) package main.editor { import flash.display.*; import flash.events.*; import main.field.*; import main.*; import main.editor.panels.*; public class Editor extends Sprite { public var panel:EditorSprite; public var objectPanel:ObjectPanel; public var setupPanel:SetupPanel; public var thornPanel:ThornPanel; public var decoPanel:DecoPanel; public var enemyPanel:EnemyPanel; public var doorPanel:DoorPanel; public var blockPanel:BlockPanel; public var border:Border; public var emptyPanel:EmptyPanel; public static const BUTTON_STEP:int = 50; public function Editor(_arg1:int, _arg2:int){ border = new Border(); emptyPanel = new EmptyPanel(); blockPanel = new BlockPanel(); thornPanel = new ThornPanel(); doorPanel = new DoorPanel(); decoPanel = new DecoPanel(); enemyPanel = new EnemyPanel(); objectPanel = new ObjectPanel(); setupPanel = new SetupPanel(); super(); panel = new EditorSprite(); addChild(panel); x = _arg1; y = _arg2; border.x = panel.btnBlock.x; border.y = panel.btnBlock.y; addChild(border); enableEditor(); addBlock(null); } public function addDeco(_arg1:MouseEvent):void{ border.x = panel.btnDeco.x; border.y = panel.btnDeco.y; refresh(); showPanel(decoPanel); } public function showPanel(_arg1):void{ _arg1.refresh(); panel.panel.removeChildAt(0); panel.panel.addChild(_arg1); } public function enableEditor():void{ border.visible = true; var _local2 = panel; with (_local2) { btnCursor.addEventListener(MouseEvent.CLICK, showCursor); btnEraser.addEventListener(MouseEvent.CLICK, showEraser); btnBlock.addEventListener(MouseEvent.CLICK, addBlock); btnThorns.addEventListener(MouseEvent.CLICK, addThorns); btnDoors.addEventListener(MouseEvent.CLICK, addDoor); btnBonus.addEventListener(MouseEvent.CLICK, addBonus); btnDeco.addEventListener(MouseEvent.CLICK, addDeco); btnEnemy.addEventListener(MouseEvent.CLICK, addEnemy); btnGetMap.addEventListener(MouseEvent.CLICK, getMap); btnTest.addEventListener(MouseEvent.CLICK, testLevel); }; } public function testLevel(_arg1:MouseEvent):void{ refresh(); disableEditor(); setupPanel.state = "test"; setupPanel.refresh(); Root.link.gameStage.addChild(setupPanel); } public function addBonus(_arg1:MouseEvent):void{ border.x = panel.btnBonus.x; border.y = panel.btnBonus.y; showPanel(emptyPanel); Root.link.cursor.setCoin(); refresh(); } public function addBlock(_arg1:MouseEvent):void{ border.x = panel.btnBlock.x; border.y = panel.btnBlock.y; refresh(); showPanel(blockPanel); } public function refresh():void{ enemyPanel.removeActiveObject(); objectPanel.removeActiveObject(); } public function addThorns(_arg1:MouseEvent):void{ border.x = panel.btnThorns.x; border.y = panel.btnThorns.y; refresh(); showPanel(thornPanel); } public function getMap(_arg1:MouseEvent):void{ refresh(); disableEditor(); setupPanel.state = "save"; setupPanel.refresh(); Root.link.gameStage.addChild(setupPanel); } public function addEnemy(_arg1:MouseEvent):void{ border.x = panel.btnEnemy.x; border.y = panel.btnEnemy.y; refresh(); showPanel(enemyPanel); } public function showEraser(_arg1:MouseEvent):void{ border.x = panel.btnEraser.x; border.y = panel.btnEraser.y; refresh(); showPanel(emptyPanel); Root.link.cursor.setEraser(); } public function addDoor(_arg1:MouseEvent):void{ border.x = panel.btnDoors.x; border.y = panel.btnDoors.y; refresh(); showPanel(doorPanel); } public function showCursor(_arg1:MouseEvent=null):void{ border.x = panel.btnCursor.x; border.y = panel.btnCursor.y; refresh(); showPanel(emptyPanel); Root.link.cursor.setCursor(); } public function disableEditor():void{ border.visible = false; var _local2 = panel; with (_local2) { btnCursor.removeEventListener(MouseEvent.CLICK, showCursor); btnEraser.removeEventListener(MouseEvent.CLICK, showEraser); btnBlock.removeEventListener(MouseEvent.CLICK, addBlock); btnThorns.removeEventListener(MouseEvent.CLICK, addThorns); btnDoors.removeEventListener(MouseEvent.CLICK, addDoor); btnBonus.removeEventListener(MouseEvent.CLICK, addBonus); btnDeco.removeEventListener(MouseEvent.CLICK, addDeco); btnEnemy.removeEventListener(MouseEvent.CLICK, addEnemy); btnGetMap.removeEventListener(MouseEvent.CLICK, getMap); btnTest.removeEventListener(MouseEvent.CLICK, testLevel); }; } } }//package main.editor
Section 150
//Music (main.effects.Music) package main.effects { import flash.display.*; import flash.events.*; import flash.media.*; public class Music extends Sprite { public var enabled:Boolean;// = true public var currentTrack:int;// = 0 public var volume:Number;// = 1 public var musicChannel:SoundChannel; public static const FADE:Number = 0.025; public static var Track_1:Class = Music_Track_1; public static var track_2:Sound = (new Track_2() as Sound); public static var Track_3:Class = Music_Track_3; public static var Track_2:Class = Music_Track_2; public static var track_1:Sound = (new Track_1() as Sound); public static var track_3:Sound = (new Track_3() as Sound); public function playCurrentTrack():void{ volume = 1; musicChannel = Music[("track_" + currentTrack)].play(0, 99); musicChannel.soundTransform = new SoundTransform(volume); } public function fadeMusic(_arg1:Event):void{ volume = (volume - FADE); musicChannel.soundTransform = new SoundTransform(volume); if (volume <= 0.2){ musicChannel.stop(); playCurrentTrack(); removeEventListener(Event.ENTER_FRAME, fadeMusic); }; } public function switchMusic(_arg1:Boolean):void{ if (((enabled) && (!(_arg1)))){ musicChannel.stop(); } else { if (((!(enabled)) && (_arg1))){ playCurrentTrack(); }; }; enabled = _arg1; } public function playTrack(_arg1:int):void{ if (enabled){ if (currentTrack == 0){ currentTrack = _arg1; playCurrentTrack(); } else { if (_arg1 != currentTrack){ currentTrack = _arg1; addEventListener(Event.ENTER_FRAME, fadeMusic); }; }; } else { currentTrack = _arg1; }; } } }//package main.effects
Section 151
//Music_Track_1 (main.effects.Music_Track_1) package main.effects { import mx.core.*; public class Music_Track_1 extends SoundAsset { } }//package main.effects
Section 152
//Music_Track_2 (main.effects.Music_Track_2) package main.effects { import mx.core.*; public class Music_Track_2 extends SoundAsset { } }//package main.effects
Section 153
//Music_Track_3 (main.effects.Music_Track_3) package main.effects { import mx.core.*; public class Music_Track_3 extends SoundAsset { } }//package main.effects
Section 154
//Sounds (main.effects.Sounds) package main.effects { import flash.media.*; public class Sounds { public static var kick:Sound = (new sndKick() as Sound); public static var step:Sound = (new sndStep() as Sound); public static var finish:Sound = (new sndFinish() as Sound); public static var bonus:Sound = (new sndBonus() as Sound); public static var dead:Sound = (new sndDead() as Sound); public static var gameOver:Sound = (new sndGameOver() as Sound); public static var intro:Sound = (new sndIntro() as Sound); public static var door:Sound = (new sndDoor() as Sound); public static var scream:Sound = (new sndScream() as Sound); public static var blowing:Sound = (new sndBlowing() as Sound); public static var crumble:Sound = (new sndCrumble() as Sound); public static var jump:Sound = (new sndJump() as Sound); public static var thornsShow:Sound = (new sndThornsShow() as Sound); public static var thornsHide:Sound = (new sndThornsHide() as Sound); } }//package main.effects
Section 155
//Block (main.field.Block) package main.field { import flash.display.*; public class Block extends MovieClip { public var RD:MovieClip; public var RU:MovieClip; public var LD:MovieClip; public var LU:MovieClip; public function Block(){ addFrameScript(0, frame1); gotoAndStop(1); } public function setFromTileType(_arg1:TileType):void{ LU.gotoAndStop(_arg1.LU); LD.gotoAndStop(_arg1.LD); RU.gotoAndStop(_arg1.RU); RD.gotoAndStop(_arg1.RD); } function frame1(){ stop(); } } }//package main.field
Section 156
//Cell (main.field.Cell) package main.field { import flash.display.*; import Box2D.Dynamics.*; import main.physic.*; import flash.geom.*; import main.game.*; import main.*; public class Cell extends Sprite { public var col:int; public var tileType:TileType; public var area:Array; public var tileShape:int;// = -1 public var block:Sprite; public var row:int; public var body:b2Body; public var scanned:Boolean; public var free:Boolean;// = true public var cellX:int; public var cellY:int; public var door:Door; public var thorn:Sprite; public static const THORN_WH:Number = (Root.CELL_SIZE / 5); public static var thornShapes:Array = [new BodyShape("box", [THORN_WH, Root.CELL_SIZE, new Point()]), new BodyShape("box", [THORN_WH, Root.CELL_SIZE, new Point((Root.CELL_SIZE - THORN_WH), 0)]), new BodyShape("box", [Root.CELL_SIZE, THORN_WH, new Point()]), new BodyShape("box", [Root.CELL_SIZE, THORN_WH, new Point(0, (Root.CELL_SIZE - THORN_WH))]), new BodyShape("box", [THORN_WH, Root.CELL_SIZE, new Point((Root.CELL_SIZE / 2), 0)]), new BodyShape("box", [THORN_WH, Root.CELL_SIZE, new Point(((Root.CELL_SIZE / 2) - THORN_WH), 0)]), new BodyShape("box", [Root.CELL_SIZE, THORN_WH, new Point(0, (Root.CELL_SIZE / 2))]), new BodyShape("box", [Root.CELL_SIZE, THORN_WH, new Point(0, ((Root.CELL_SIZE / 2) - THORN_WH))])]; public static var shapes:Array = [new BodyShape("box", [Root.CELL_SIZE, Root.CELL_SIZE, new Point()]), new BodyShape("box", [(Root.CELL_SIZE / 2), Root.CELL_SIZE, new Point()]), new BodyShape("box", [(Root.CELL_SIZE / 2), Root.CELL_SIZE, new Point((Root.CELL_SIZE / 2), 0)]), new BodyShape("box", [Root.CELL_SIZE, (Root.CELL_SIZE / 2), new Point()]), new BodyShape("box", [Root.CELL_SIZE, (Root.CELL_SIZE / 2), new Point(0, (Root.CELL_SIZE / 2))])]; public function Cell(_arg1:int=0, _arg2:int=0):void{ area = new Array(); this.row = _arg2; this.col = _arg1; x = (_arg1 * Root.CELL_SIZE); y = (_arg2 * Root.CELL_SIZE); cellX = (Root.FIELD_POS.x + x); cellY = (Root.FIELD_POS.y + y); } public function getBlockName(_arg1:Sprite):String{ return (CellNames.names[_arg1.currentFrame].substr(0, 2)); } public function setBlock(_arg1:TileType, _arg2:int, _arg3:Boolean=false):void{ if (((thorn) || (door))){ return; }; free = false; tileType = _arg1; tileShape = _arg2; if (block){ removeChild(block); }; block = new Block(); setBlockInCell(this); setBlockArea(); addChild(block); block.cacheAsBitmap = true; if (_arg3){ if (body){ Root.link.destroyBody(body); }; body = Root.link.createBody(0, shapes[tileShape], cellX, cellY); }; } public function setBlockInCell(_arg1:Cell):void{ var cell = _arg1; var _local3 = cell; with (_local3) { setBlockPart(cell, "LU", area[2], area[0], area[4], "RU", "LD", "RD"); setBlockPart(cell, "LD", area[2], area[1], area[6], "RD", "LU", "RU"); setBlockPart(cell, "RU", area[3], area[0], area[5], "LU", "RD", "LD"); setBlockPart(cell, "RD", area[3], area[1], area[7], "LD", "RU", "LU"); }; } public function addThorn(_arg1:int, _arg2:Boolean=false):void{ var _local3:int; if (door){ return; }; free = false; thorn = new Thorns(); thorn.gotoAndStop(_arg1); addChild(thorn); Root.link.createBody(3, thornShapes[(_arg1 - 1)], (5 + x), (5 + y)); if (_arg2){ _local3 = (parent.numChildren - 1); parent.setChildIndex(this, _local3); }; } public function setBlockPart(_arg1:Cell, _arg2:String, _arg3:Cell, _arg4:Cell, _arg5:Cell, _arg6:String, _arg7:String, _arg8:String):void{ var _local9:String; var _local10:String = CellNames.names[_arg1.tileType[_arg2]]; var _local11:String = _local10; if (_local11 == "NO"){ _arg1.block[_arg2].gotoAndStop(CellNames[_local11]); return; }; if (_arg3){ if (_arg3.block){ switch (getBlockName(_arg3.block[_arg6])){ case "FL": _local11 = (_local11 + "_HO"); break; case "VH": _local11 = (_local11 + "_HO"); break; case "HH": if (_local10 == "HH"){ _local11 = (_local11 + "_HO"); } else { _local11 = (_local11 + "_HH"); }; break; }; }; } else { _local11 = (_local11 + "_HO"); }; if (_arg4){ if (_arg4.block){ switch (getBlockName(_arg4.block[_arg7])){ case "FL": _local11 = (_local11 + "_VO"); break; case "HH": _local11 = (_local11 + "_VO"); break; case "VH": if (_local10 == "VH"){ _local11 = (_local11 + "_VO"); } else { _local11 = (_local11 + "_VH"); }; break; }; }; } else { _local11 = (_local11 + "_VO"); }; if (((!(_arg5)) || (((_arg5.block) && (!((getBlockName(_arg5.block[_arg8]) == "NO"))))))){ if (_local11.length == 8){ _local11 = (_local11 + "_DO"); }; }; _arg1.block[_arg2].gotoAndStop(CellNames[_local11]); } public function eraseCell():void{ if (door){ door.removeDoor(); } else { if (thorn){ removeChild(thorn); thorn = null; if (!block){ free = true; }; } else { if (block){ removeChild(block); block = null; tileType = null; tileShape = -1; setBlockArea(); free = true; }; }; }; if (body){ Root.link.destroyBody(body); body = null; }; } public function setBlockArea():void{ var _local1:int; while (_local1 < area.length) { if (((area[_local1]) && (area[_local1].block))){ setBlockInCell(area[_local1]); }; _local1++; }; } public function setThorn(_arg1:int):void{ var _local2:Cell; if (_arg1 <= 4){ switch (_arg1){ case 1: _local2 = area[2]; break; case 2: _local2 = area[3]; break; case 3: _local2 = area[0]; break; case 4: _local2 = area[1]; break; }; if (((!(_local2)) || ((_local2.tileShape >= 0)))){ addThorn(_arg1, true); }; } else { if (tileShape == (_arg1 - 4)){ addThorn(_arg1); }; }; } public function setDoor(_arg1:Door):void{ free = false; this.door = _arg1; } } }//package main.field
Section 157
//CellNames (main.field.CellNames) package main.field { public class CellNames { public static const HH:int = 14; public static const VH_HO_VO_DO:int = 26; public static const VH_HH_VO:int = 28; public static const FL_HH_VH_DO:int = 13; public static const FL_HH_VH:int = 12; public static const FL_HH:int = 6; public static const FL_HH_VO:int = 10; public static const FL_HO:int = 2; public static const HH_HO:int = 15; public static const VH_HH:int = 27; public static const FL_HO_VH:int = 8; public static const VH_HO_VO:int = 25; public static const VH_HO:int = 23; public static const FL_HO_VO:int = 4; public static const VH:int = 22; public static const FL_HH_VO_DO:int = 11; public static const VH_HH_VO_DO:int = 29; public static const FL:int = 1; public static const FL_VH:int = 7; public static const NO:int = 30; public static const HH_VH:int = 19; public static const FL_VO:int = 3; public static const HH_VO:int = 16; public static const FL_HO_VH_DO:int = 9; public static const HH_HO_VH_DO:int = 21; public static const VH_VO:int = 24; public static const HH_HO_VH:int = 20; public static const HH_HO_VO:int = 17; public static const HH_HO_VO_DO:int = 18; public static const FL_HO_VO_DO:int = 5; public static var names:Array = ["0", "FL", "FL_HO", "FL_VO", "FL_HO_VO", "FL_HO_VO_DO", "FL_HH", "FL_VH", "FL_HO_VH", "FL_HO_VH_DO", "FL_HH_VO", "FL_HH_VO_DO", "FL_HH_VH", "FL_HH_VH_DO", "HH", "HH_HO", "HH_VO", "HH_HO_VO", "HH_HO_VO_DO", "HH_VH", "HH_HO_VH", "HH_HO_VH_DO", "VH", "VH_HO", "VH_VO", "VH_HO_VO", "VH_HO_VO_DO", "VH_HH", "VH_HH_VO", "VH_HH_VO_DO", "NO"]; } }//package main.field
Section 158
//Field (main.field.Field) package main.field { import Box2D.Dynamics.*; import main.physic.*; import flash.geom.*; import main.*; import main.display.*; import flash.utils.*; import main.items.*; public class Field extends SimpleSprite { public var bodies:Array; public var cell:Array; public static var symbols:Array = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C"]; public function Field(_arg1:Point){ cell = new Array(); bodies = new Array(); super(); x = _arg1.x; y = _arg1.y; initField(); } public function getMap(_arg1:Root):String{ var map:String; var child:*; var childName:String; var symbol:int; var link = _arg1; map = ""; map = (map + ("hero:{x:" + link.hero.x)); map = (map + (", y:" + link.hero.y)); map = (map + ((", flip:" + link.hero.flip) + "},\n")); map = (map + (("time:" + link.time) + ",\n")); map = (map + "music:2,\n"); map = (map + ("exit:{x:" + link.exit.x)); map = (map + ((", y:" + link.exit.y) + "},\n")); map = (map + "enemies:\n[\n"); var i:int; while (i < link.enemies.length) { map = (map + ("\t{x:" + link.enemies[i].x)); map = (map + (",y:" + link.enemies[i].y)); map = (map + (",speed:" + link.enemies[i].speed)); map = (map + (",jump:" + link.enemies[i].jump)); map = (map + (",wait:" + link.enemies[i].wait)); map = (map + (",attack:" + link.enemies[i].attack)); map = (map + ((",color:'" + link.enemies[i].color) + "'},\n")); i = (i + 1); }; map = (map + "],\nblocks:\n[\n"); i = 0; while (i < link.blocks.length) { if (link.blocks[i].type != "None"){ map = (map + ("\t{type:'" + link.blocks[i].type)); map = (map + ("',amount:" + link.blocks[i].amount)); map = (map + ((",options:" + link.blocks[i].options) + "},\n")); }; i = (i + 1); }; map = (map + "],\nmap:\n[\n"); var j:int; while (j < Root.FIELD_ROWS) { map = (map + "\t\""); i = 0; while (i < Root.FIELD_COLS) { symbol = cell[i][j].tileShape; if (symbol >= 0){ if (cell[i][j].thorn){ symbol = (symbol + 8); }; map = (map + symbols[symbol]); } else { if (cell[i][j].thorn){ symbol = (4 + cell[i][j].thorn.currentFrame); map = (map + symbols[symbol]); } else { map = (map + "-"); }; }; i = (i + 1); }; map = (map + "\",\n"); j = (j + 1); }; map = (map + "],\ndoors:\n[\n"); var _local3 = link.game.doors; with (_local3) { if (numChildren > 0){ i = 0; while (i < numChildren) { child = getChildAt(i); map = (map + ("\t{col:" + child.cell.col)); map = (map + (", row:" + child.cell.row)); map = (map + (", x:" + child.x)); map = (map + (", y:" + child.y)); map = (map + (", orient:" + child.orient)); map = (map + (", color:'" + child.color)); map = (map + ("', length:" + child.length)); map = (map + (", keyX:" + child.key.x)); map = (map + ((", keyY:" + child.key.y) + "},\n")); i++; }; }; }; map = (map + "],\ncoins:\n[\n"); _local3 = link.game.items; with (_local3) { if (numChildren > 0){ i = 0; while (i < numChildren) { child = getChildAt(i); if ((child is Coin)){ map = (map + (((("\t{x:" + child.x) + ", y:") + child.y) + "},\n")); }; i++; }; }; }; map = (map + "],\nanimateBcg:\n[\n"); _local3 = link.game.bcgAnimate; with (_local3) { if (numChildren > 1){ i = 1; while (i < numChildren) { child = getChildAt(i); childName = getQualifiedClassName(child); map = (map + ("\t{type:" + childName)); map = (map + (", x:" + child.x)); map = (map + (", y:" + child.y)); map = (map + ((", flip:" + child.flip) + "},\n")); i++; }; }; }; map = (map + "],\nstaticBcg:\n[\n"); _local3 = link.game.bcgStatic.sprite; with (_local3) { if (numChildren > 0){ i = 0; while (i < numChildren) { child = getChildAt(i); childName = getQualifiedClassName(child); map = (map + ("\t{type:" + childName)); map = (map + (", x:" + child.x)); map = (map + (", y:" + child.y)); map = (map + ((", flip:" + child.flip) + "},\n")); i++; }; }; }; map = (map + "]"); return (map); } public function initField():void{ var _local2:int; var _local3:Array; var _local1:int; while (_local1 < Root.FIELD_COLS) { cell[_local1] = []; _local2 = 0; while (_local2 < Root.FIELD_ROWS) { cell[_local1][_local2] = new Cell(_local1, _local2); addChild(cell[_local1][_local2]); _local2++; }; _local1++; }; _local1 = 0; while (_local1 < Root.FIELD_COLS) { _local2 = 0; while (_local2 < Root.FIELD_ROWS) { _local3 = cell[_local1][_local2].area; _local3.push(getCell(_local1, (_local2 - 1))); _local3.push(getCell(_local1, (_local2 + 1))); _local3.push(getCell((_local1 - 1), _local2)); _local3.push(getCell((_local1 + 1), _local2)); _local3.push(getCell((_local1 - 1), (_local2 - 1))); _local3.push(getCell((_local1 + 1), (_local2 - 1))); _local3.push(getCell((_local1 - 1), (_local2 + 1))); _local3.push(getCell((_local1 + 1), (_local2 + 1))); _local2++; }; _local1++; }; } public function buildMap(_arg1:Array):void{ var _local2:String; var _local4:int; var _local5:int; var _local3:int; while (_local3 < _arg1.length) { _local2 = _arg1[_local3]; _local4 = 0; while (_local4 < _local2.length) { if (_local2.charAt(_local4) != "-"){ _local5 = getSymbol(_local2.charAt(_local4)); if (_local5 <= 4){ cell[_local4][_local3].setBlock(TileType.TILES[_local5], _local5); } else { if (_local5 <= 8){ cell[_local4][_local3].addThorn((_local5 - 4), true); } else { if (_local5 <= 12){ cell[_local4][_local3].setBlock(TileType.TILES[(_local5 - 8)], (_local5 - 8)); cell[_local4][_local3].addThorn((_local5 - 4)); }; }; }; }; _local4++; }; _local3++; }; } public function eraseField():void{ var _local2:int; var _local3:Cell; var _local1:int; while (_local1 < Root.FIELD_COLS) { _local2 = 0; while (_local2 < Root.FIELD_ROWS) { _local3 = cell[_local1][_local2]; if (_local3.block){ _local3.block.parent.removeChild(_local3.block); }; _local3.block = null; _local3.tileType = null; _local3.body = null; _local3.area = null; _local3 = null; _local2++; }; _local1++; }; initField(); } public function getSymbol(_arg1:String):int{ switch (_arg1){ case "A": return (10); case "B": return (11); case "C": return (12); default: return (_arg1); }; } public function getCell(_arg1:int, _arg2:int):Cell{ if ((((((((_arg1 >= 0)) && ((_arg1 < Root.FIELD_COLS)))) && ((_arg2 >= 0)))) && ((_arg2 < Root.FIELD_ROWS)))){ return (cell[_arg1][_arg2]); }; return (null); } public function buildPhysicBodies():void{ var _local1:Cell; var _local2:Cell; var _local3:int; var _local4:int; var _local5:int; var _local7:Boolean; var _local8:Boolean; var _local10:int; var _local11:int; var _local6 = 3; var _local9:int; while (_local9 < Root.FIELD_COLS) { _local10 = 0; while (_local10 < Root.FIELD_ROWS) { if (((!(cell[_local9][_local10].scanned)) && (cell[_local9][_local10].block))){ _local1 = cell[_local9][_local10]; _local2 = cell[_local9][_local10]; _local8 = true; _local7 = false; _local3 = _local10; switch (_local1.tileShape){ case 1: _local7 = true; break; case 2: _local7 = true; break; case 3: _local8 = false; break; }; while (_local8) { if (((_local8) && (((_local3 + 1) < Root.FIELD_ROWS)))){ if (_local7){ _local4 = _local1.tileShape; } else { _local4 = cell[_local9][(_local3 + 1)].tileShape; if (((!((_local4 == _local6))) && (!((_local4 == 0))))){ _local8 = false; }; }; _local11 = _local10; while (_local11 <= (_local3 + 1)) { if (((!(cell[_local9][_local11].block)) || (cell[_local9][_local11].scanned))){ _local8 = false; } else { if (_local11 == (_local3 + 1)){ _local5 = cell[_local9][_local11].tileShape; if (_local5 != _local4){ _local8 = false; } else { if (((_local7) && (!((_local5 == _local4))))){ _local8 = false; }; }; }; }; _local11++; }; if (_local8){ _local3++; if (_local5 == _local6){ _local8 = false; }; }; } else { _local8 = false; }; _local2 = cell[_local9][_local3]; }; addFieldBody(_local1, _local2); }; _local10++; }; _local9++; }; } public function addFieldBody(_arg1:Cell, _arg2:Cell):void{ var _local3:Number = Root.CELL_SIZE; var _local4:Number = (((_arg2.row - _arg1.row) + 1) * Root.CELL_SIZE); var _local5:int = (x + _arg1.x); var _local6:int = (y + _arg1.y); switch (_arg1.tileShape){ case 1: _local3 = (_local3 - (Root.CELL_SIZE / 2)); break; case 2: _local3 = (_local3 - (Root.CELL_SIZE / 2)); _local5 = (_local5 + (Root.CELL_SIZE / 2)); break; case 3: _local4 = (_local4 - (Root.CELL_SIZE / 2)); break; case 4: _local4 = (_local4 - (Root.CELL_SIZE / 2)); _local6 = (_local6 + (Root.CELL_SIZE / 2)); break; }; if ((((_arg2.tileShape == 3)) && (!((_arg1.row == _arg2.row))))){ _local4 = (_local4 - (Root.CELL_SIZE / 2)); }; var _local7:BodyShape = new BodyShape("box", [_local3, _local4, new Point()]); var _local8:b2Body = Root.link.createBody(0, _local7, _local5, _local6); var _local9:int = _arg1.row; while (_local9 <= _arg2.row) { cell[_arg1.col][_local9].scanned = true; cell[_arg1.col][_local9].body = _local8; _local9++; }; bodies.push(_local8); } } }//package main.field
Section 159
//TileType (main.field.TileType) package main.field { public class TileType { public var RD:int; public var RU:int; public var LD:int; public var LU:int; public static const VL_HALF:TileType = new TileType([22, 22, 30, 30]); ; public static const HR_HALF:TileType = new TileType([30, 14, 30, 14]); ; public static const SOLID:TileType = new TileType([1, 1, 1, 1]); ; public static const HL_HALF:TileType = new TileType([14, 30, 14, 30]); ; public static const VR_HALF:TileType = new TileType([30, 30, 22, 22]); ; public static var TILES:Array = [SOLID, VL_HALF, VR_HALF, HL_HALF, HR_HALF]; public function TileType(_arg1:Array){ LU = _arg1[0]; LD = _arg1[1]; RU = _arg1[2]; RD = _arg1[3]; } } }//package main.field
Section 160
//Door (main.game.Door) package main.game { import flash.display.*; import Box2D.Dynamics.*; import main.physic.*; import main.field.*; import flash.geom.*; import main.*; import main.effects.*; import main.items.*; public class Door extends Sprite { public var cell:Cell; public var color:String; public var sprite:Sprite; public var body:b2Body; public var orient:int; public var doorCells:Array; public var length:int; public var key:Key; public static const DOOR_SIZE_25:int = 4; public static const DOOR_SIZE_15:int = 2; public static const DOOR_WIDTH:int = 16; public static const DOOR_SIZE_20:int = 3; public static const DOOR_SIZE_30:int = 5; public function Door(_arg1:Object){ cell = Root.link.field.cell[_arg1.col][_arg1.row]; orient = _arg1.orient; color = _arg1.color; length = _arg1.length; x = _arg1.x; y = _arg1.y; switch (orient){ case 1: sprite = new DoorSpriteV(); break; case 2: sprite = new DoorSpriteH(); break; }; sprite.upColor.gotoAndStop(color); sprite.dnColor.gotoAndStop(color); sprite.size.gotoAndStop(length); addChild(sprite); setDoorToCells(); } public function doorSound():void{ if (Root.link.sound){ Sounds.door.play(); }; } public function setDoorToCells():void{ doorCells = [cell]; cell.setDoor(this); switch (orient){ case 1: movingTo(0, 3); movingTo(1, 4); break; case 2: movingTo(2, 1); movingTo(3, 2); break; }; } public function movingTo(_arg1:int, _arg2:int):void{ var _local3:Cell = cell.area[_arg1]; while (_local3) { if (_local3.free){ doorCells.push(_local3); _local3.setDoor(this); _local3 = _local3.area[_arg1]; } else { if (_local3.tileShape == _arg2){ doorCells.push(_local3); _local3.setDoor(this); _local3 = null; } else { _local3 = null; }; }; }; } public function removeDoor():void{ removeChild(sprite); parent.removeChild(this); key.removeItem(); var i:int; while (i < doorCells.length) { var _local2 = doorCells[i]; with (_local2) { door = null; if (((!(block)) && (!(thorn)))){ free = true; }; }; i = (i + 1); }; } public function open():void{ var _local1:int; while (_local1 < doorCells.length) { doorCells[_local1].door = null; _local1++; }; Root.link.destroyBody(body); sprite.play(); } public function initBody():void{ var _local1:BodyShape; var _local2:Point; var _local3:int; switch (length){ case 1: _local3 = 65; break; case 2: _local3 = 80; break; case 3: _local3 = 95; break; case 4: _local3 = 115; break; }; switch (orient){ case 1: _local2 = new Point((-(DOOR_WIDTH) / 2), (-(_local3) / 2)); _local1 = new BodyShape("box", [DOOR_WIDTH, _local3, _local2]); break; case 2: _local2 = new Point((-(_local3) / 2), (-(DOOR_WIDTH) / 2)); _local1 = new BodyShape("box", [_local3, DOOR_WIDTH, _local2]); break; }; body = Root.link.createBody(0, _local1, x, y); } public static function getDoorSize(_arg1:Cell, _arg2:int):Object{ var _local4:Array; var _local5:Object; var _local6:Object; var _local7:int; var _local8:Number; var _local9:Number; var _local3 = 10; switch (_arg2){ case 1: _local5 = {side:0, cell:null, shape:{first:3, second:4}, len:0}; _local6 = {side:1, cell:null, shape:{first:4, second:3}, len:0}; break; case 2: _local5 = {side:2, cell:null, shape:{first:1, second:2}, len:0}; _local6 = {side:3, cell:null, shape:{first:2, second:1}, len:0}; break; }; _local5.cell = _arg1.area[_local5.side]; _local6.cell = _arg1.area[_local6.side]; _local4 = [_local5, _local6]; while (((_local5.cell) || (_local6.cell))) { if (_local3 > 30){ return (null); }; _local7 = 0; while (_local7 < 2) { if (_local4[_local7].cell){ if (_local4[_local7].cell.free){ _local4[_local7].cell = _local4[_local7].cell.area[_local4[_local7].side]; _local4[_local7].len = (_local4[_local7].len + 1); _local3 = (_local3 + 10); } else { switch (_local4[_local7].cell.tileShape){ case _local4[_local7].shape.first: if (_local4[_local7].cell.thorn){ return (null); }; _local4[_local7].len = (_local4[_local7].len + 0.5); _local3 = (_local3 + 5); break; case _local4[_local7].shape.second: case 0: break; default: return (null); }; _local4[_local7].cell = null; }; }; _local7++; }; }; if (_local3 >= 15){ _local8 = Door[("DOOR_SIZE_" + _local3)]; _local9 = (Root.CELL_SIZE * ((_local6.len - _local5.len) / 2)); return ({length:_local8, shift:_local9}); }; return (null); } } }//package main.game
Section 161
//Exit (main.game.Exit) package main.game { import flash.display.*; import Box2D.Dynamics.*; import main.physic.*; import flash.geom.*; import main.*; public class Exit extends Sprite { public var body:b2Body; public var sprite:Sprite; public static const DOOR_WIDTH:int = 2; public function Exit(_arg1:Object){ setPosition(_arg1); sprite = new ExitSprite(); sprite.name = "Exit"; addChild(sprite); } public function initBody():void{ var _local1:BodyShape = new BodyShape("ball", [DOOR_WIDTH, new Point()]); _local1.shapes[0].isSensor = true; body = Root.link.createBody(6, _local1, x, y); _local1 = new BodyShape("box", [36, 56, new Point(-18, -28)]); _local1.shapes[0].isSensor = true; Root.link.createBody(0, _local1, x, y); } public function setPosition(_arg1:Object):void{ x = _arg1.x; y = _arg1.y; } } }//package main.game
Section 162
//Level (main.game.Level) package main.game { public class Level { public static var LEVEL_27:Object = {hero:{x:250, y:130, flip:false}, time:25, best:71, music:2, exit:{x:480, y:413}, enemies:[{x:448, y:131, speed:0.35, jump:32, wait:false, attack:true, color:"Red"}], blocks:[{type:"Timeout", amount:3, options:2}], map:["---------------", "---------------", "---------------", "---------------", "--33300000333--", "---------------", "03-----------30", "0-------------0", "0000000--000000", "0000----------2", "0000----------2", "0000----------2", "000000888800000"], doors:[{col:10, row:10, x:383, y:383, orient:1, color:"Orange", length:4, keyX:183, keyY:407}, {col:7, row:8, x:293, y:311, orient:2, color:"Yellow", length:2, keyX:477, keyY:267}], coins:[{x:385, y:130}, {x:165, y:127}, {x:58, y:268}, {x:239, y:266}, {x:350, y:265}, {x:292, y:384}], animateBcg:[{type:Sun, x:152, y:74, flip:false}], staticBcg:[{type:Back_4, x:262, y:276, flip:false}, {type:Tree_5, x:145, y:235, flip:false}, {type:Tree_4, x:413, y:235, flip:false}, {type:Bush_5, x:225, y:282, flip:false}, {type:Bush_5, x:350, y:283, flip:false}, {type:Bush_3, x:248, y:133, flip:false}, {type:Bush_2, x:519, y:199, flip:false}, {type:Cloud_1, x:408, y:78, flip:false}, {type:Cloud_2, x:36, y:104, flip:false}, {type:Bush_4, x:427, y:427, flip:false}]}; public static var LEVEL_28:Object = {hero:{x:527, y:324, flip:false}, time:25, best:76, music:3, exit:{x:47, y:91}, enemies:[{x:310, y:37, speed:0.35, jump:0, wait:true, attack:true, color:"Green"}], blocks:[{type:"Timeout", amount:4, options:3}, {type:"Moving", amount:1, options:1}], map:["333----333-----", "---------------", "---------------", "00BB333--------", "1--------------", "1--------------", "1---3333333----", "1--------------", "1--------------", "1-------------4", "1-------------2", "1-------------2", "000CCCCCCCCCC00"], doors:[{col:2, row:1, x:95, y:68, orient:1, color:"Orange", length:3, keyX:60, keyY:395}], coins:[{x:385, y:340}, {x:276, y:339}, {x:168, y:339}, {x:224, y:200}, {x:330, y:200}, {x:166, y:88}], animateBcg:[], staticBcg:[{type:Bush_1, x:496, y:409, flip:false}, {type:Cloud_5, x:209, y:50, flip:false}, {type:Back_4, x:264, y:341, flip:false}, {type:Cloud_4, x:462, y:71, flip:false}, {type:Bush_5, x:90, y:425, flip:false}, {type:Tree_3, x:365, y:157, flip:false}, {type:Bush_4, x:142, y:104, flip:false}, {type:Bush_6, x:272, y:203, flip:false}]}; public static var LEVEL_29:Object = {hero:{x:520, y:339, flip:false}, time:25, best:90, music:3, exit:{x:508, y:90}, enemies:[{x:458, y:425, speed:0.35, jump:50, wait:false, attack:true, color:"Red"}, {x:350, y:425, speed:0.35, jump:50, wait:false, attack:true, color:"Red"}, {x:242, y:425, speed:0.35, jump:50, wait:false, attack:true, color:"Red"}], blocks:[{type:"Timeout", amount:4, options:1}], map:["---------------", "---------------", "---------------", "------------333", "------44-------", "------21-------", "----40000000000", "---------------", "44-------------", "0--------------", "0CCC00-00-00-00", "000000-00-00-00", "000000000000000"], doors:[{col:12, row:1, x:455, y:59, orient:1, color:"Yellow", length:4, keyX:507, keyY:181}], coins:[{x:401, y:334}, {x:290, y:334}, {x:184, y:335}, {x:203, y:190}, {x:314, y:188}, {x:0x0101, y:135}], animateBcg:[{type:Sun, x:269, y:63, flip:false}], staticBcg:[{type:Back_3, x:267, y:194, flip:false}, {type:Cloud_2, x:381, y:55, flip:false}, {type:Cloud_1, x:181, y:122, flip:false}, {type:Cloud_2, x:66, y:59, flip:true}, {type:Bush_3, x:292, y:345, flip:false}, {type:Bush_4, x:400, y:354, flip:false}, {type:Tree_2, x:47, y:0x0100, flip:false}, {type:Bush_2, x:187, y:340, flip:false}, {type:Bush_4, x:261, y:154, flip:false}]}; public static var LEVEL_1:Object = {hero:{x:134, y:306, flip:true}, time:20, best:56, music:2, exit:{x:508, y:306}, enemies:[], blocks:[{type:"Simple", amount:5, options:0}], map:["---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "00000-----00000", "000---------000", "00-----------00", "00-----------00"], doors:[], coins:[{x:203, y:303}, {x:275, y:302}, {x:348, y:302}], animateBcg:[{type:Sun, x:80, y:70, flip:false}], staticBcg:[{type:Back_5, x:245, y:285, flip:false}, {type:Tree_3, x:68, y:264, flip:false}, {type:Tree_5, x:428, y:268, flip:false}, {type:Tutorial_1, x:325, y:239, flip:false}]}; public static var LEVEL_2:Object = {hero:{x:23, y:306, flip:true}, time:20, best:70, music:2, exit:{x:511, y:305}, enemies:[], blocks:[{type:"Timeout", amount:2, options:5}], map:["---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "0-----00-----00", "0-----00-----00", "0-----00-----00", "088888008888800"], doors:[], coins:[{x:130, y:303}, {x:78, y:236}, {x:186, y:235}, {x:330, y:235}, {x:383, y:302}, {x:437, y:234}], animateBcg:[{type:Sun, x:81, y:74, flip:false}], staticBcg:[{type:Back_3, x:277, y:275, flip:false}, {type:Palm_3, x:261, y:272, flip:false}, {type:Tutorial_2, x:249, y:286, flip:false}]}; public static var LEVEL_3:Object = {hero:{x:41, y:289, flip:true}, time:20, best:59, music:2, exit:{x:480, y:126}, enemies:[{x:221, y:187, speed:0.8, jump:0, wait:false, attack:false, color:"Orange"}], blocks:[{type:"Timeout", amount:1, options:3}, {type:"Moving", amount:1, options:1}], map:["-----------0000", "--------------2", "--------------2", "--------------2", "----------00000", "----4444------0", "--------------0", "--------------0", "44------------0", "0-------------0", "0-------------0", "0-------------0", "000088888000000"], doors:[{col:11, row:2, x:419, y:95, orient:1, color:"Orange", length:4, keyX:473, keyY:400}], coins:[{x:60, y:410}, {x:239, y:377}, {x:347, y:302}, {x:347, y:199}, {x:347, y:86}], animateBcg:[{type:Sun, x:84, y:69, flip:false}], staticBcg:[{type:Back_1, x:301, y:284, flip:false}, {type:Bush_1, x:384, y:409, flip:false}, {type:Tree_2, x:108, y:381, flip:false}, {type:Bush_5, x:269, y:192, flip:false}, {type:Bush_4, x:172, y:196, flip:false}, {type:Tutorial_3, x:258, y:269, flip:false}]}; public static var LEVEL_4:Object = {hero:{x:111, y:90, flip:true}, time:20, best:86, music:3, exit:{x:492, y:413}, enemies:[{x:166, y:163, speed:0.4, jump:0, wait:true, attack:true, color:"Green"}, {x:493, y:275, speed:0.5, jump:0, wait:false, attack:false, color:"Red"}], blocks:[{type:"Moving", amount:1, options:1}, {type:"Moving", amount:1, options:5}], map:["---------------", "---------------", "---------------", "0000000000---00", "0------------00", "0------------00", "0------------00", "0-------------0", "0---00000000000", "0--------------", "0--------------", "0--------------", "000000000000000"], doors:[], coins:[{x:383, y:385}, {x:240, y:384}, {x:240, y:239}, {x:385, y:240}, {x:131, y:384}, {x:132, y:240}], animateBcg:[{type:Sun, x:446, y:60, flip:false}], staticBcg:[{type:Back_1, x:289, y:211, flip:false}, {type:Bush_1, x:510, y:89, flip:false}, {type:Palm_3, x:93, y:378, flip:false}, {type:Palm_2, x:311, y:389, flip:false}, {type:Bush_5, x:435, y:284, flip:false}, {type:Bush_6, x:189, y:424, flip:false}, {type:Bush_3, x:221, y:94, flip:false}, {type:Bush_4, x:314, y:104, flip:false}, {type:Tree_2, x:44, y:60, flip:false}, {type:Tutorial_5, x:259, y:149, flip:false}]}; public static var LEVEL_5:Object = {hero:{x:338, y:161, flip:false}, time:20, best:62, music:3, exit:{x:114, y:125}, enemies:[], blocks:[{type:"Moving", amount:1, options:3}, {type:"Moving", amount:1, options:3}], map:["---------------", "---------------", "---------------", "---------------", "0033-----------", "0--------1-----", "0--------1-----", "0--------1-----", "0-------21-----", "0-------21-----", "0-------21-----", "0-------21-----", "000000000000000"], doors:[], coins:[{x:290, y:414}, {x:218, y:415}, {x:138, y:413}, {x:61, y:413}, {x:415, y:416}, {x:484, y:416}], animateBcg:[{type:Sun, x:468, y:67, flip:false}], staticBcg:[{type:Back_5, x:307, y:228, flip:false}, {type:Tree_4, x:47, y:88, flip:false}, {type:Tree_3, x:101, y:378, flip:false}, {type:Tree_5, x:258, y:375, flip:false}, {type:Tree_1, x:376, y:388, flip:false}, {type:Tree_2, x:510, y:389, flip:false}, {type:Tree_4, x:457, y:375, flip:false}, {type:Tree_2, x:178, y:380, flip:false}, {type:Tutorial_4, x:296, y:76, flip:false}]}; public static var LEVEL_6:Object = {hero:{x:472, y:92, flip:false}, time:20, best:70, music:3, exit:{x:322, y:378}, enemies:[{x:165, y:208, speed:0.45, jump:15, wait:false, attack:false, color:"Red"}], blocks:[{type:"Timeout", amount:3, options:3}], map:["---------------", "---------------", "---------------", "-----------0000", "---------------", "---------------", "--000000000---0", "--00000---0---0", "--BBBB3---08880", "----------00000", "----------00000", "000-0-000000000", "000C0C000000000"], doors:[{col:6, row:9, x:239, y:356, orient:1, color:"Orange", length:3, keyX:167, keyY:57}], coins:[{x:347, y:168}, {x:238, y:166}, {x:347, y:61}, {x:40, y:240}, {x:40, y:313}], animateBcg:[], staticBcg:[{type:Cloud_5, x:298, y:54, flip:false}, {type:Cloud_4, x:63, y:85, flip:false}, {type:Tree_3, x:0x0200, y:52, flip:false}, {type:Tree_5, x:110, y:163, flip:false}, {type:Bush_6, x:48, y:385, flip:false}, {type:Bush_3, x:301, y:207, flip:false}, {type:Bush_2, x:277, y:377, flip:false}, {type:Bush_5, x:529, y:210, flip:false}]}; public static var LEVEL_7:Object = {hero:{x:513, y:324, flip:false}, time:20, best:86, music:3, exit:{x:458, y:126}, enemies:[{x:432, y:182, speed:0.5, jump:0, wait:true, attack:true, color:"Green"}, {x:251, y:182, speed:0.5, jump:0, wait:true, attack:true, color:"Green"}], blocks:[{type:"Timeout", amount:2, options:1}], map:["---------------", "---------------", "---------------", "---------------", "---000330003300", "---00----------", "---00----------", "---------------", "0--------------", "0------------44", "0------------20", "0------------20", "000000000000000"], doors:[], coins:[{x:420, y:406}, {x:274, y:407}, {x:133, y:405}, {x:241, y:119}, {x:346, y:118}, {x:56, y:193}], animateBcg:[{type:Sun, x:98, y:59, flip:false}], staticBcg:[{type:Back_2, x:288, y:264, flip:true}, {type:Tree_2, x:504, y:94, flip:false}, {type:Bush_1, x:162, y:121, flip:false}, {type:Bush_2, x:409, y:123, flip:false}, {type:Bush_3, x:368, y:417, flip:false}, {type:Palm_2, x:121, y:392, flip:false}, {type:Bush_4, x:283, y:137, flip:false}]}; public static var LEVEL_8:Object = {hero:{x:50, y:126, flip:true}, time:20, best:57, music:1, exit:{x:503, y:305}, enemies:[{x:491, y:366, speed:0.25, jump:0, wait:false, attack:false, color:"Orange"}, {x:258, y:170, speed:0.4, jump:25, wait:false, attack:true, color:"Red"}, {x:383, y:360, speed:0.3, jump:0, wait:true, attack:true, color:"Green"}], blocks:[{type:"Timeout", amount:1, options:3}, {type:"Thorn", amount:1, options:1}, {type:"Moving", amount:1, options:6}, {type:"Moving", amount:1, options:3}], map:["---------------", "---------------", "---------------", "---------------", "-1-23-12232----", "-1-23-02232----", "-0020-2020201--", "---------------", "---------------", "23201--00231031", "23210--212-1041", "20201212120102-", "---------------"], doors:[], coins:[{x:131, y:294}, {x:293, y:294}, {x:439, y:294}, {x:151, y:115}, {x:366, y:115}], animateBcg:[{type:Sun, x:110, y:52, flip:false}], staticBcg:[{type:Back_5, x:248, y:0x0100, flip:false}, {type:Tree_1, x:219, y:345, flip:false}, {type:Palm_2, x:230, y:104, flip:false}, {type:Bush_5, x:430, y:210, flip:false}, {type:Bush_4, x:384, y:392, flip:false}, {type:Bush_4, x:160, y:137, flip:false}, {type:Bush_6, x:381, y:314, flip:false}, {type:Bush_1, x:87, y:195, flip:false}, {type:Tree_3, x:395, y:86, flip:false}, {type:Bush_2, x:52, y:306, flip:false}]}; public static var LEVEL_9:Object = {hero:{x:400, y:200, flip:false}, time:20, best:56, music:1, exit:{x:499, y:413}, enemies:[{x:128, y:277, speed:0.35, jump:0, wait:false, attack:false, color:"Orange"}, {x:96, y:422, speed:0.35, jump:0, wait:false, attack:false, color:"Orange"}], blocks:[{type:"Replace", amount:2, options:0}], map:["---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------330000", "------------000", "0003--------000", "00------------2", "00------------2", "00------------2", "0000000-----000"], doors:[{col:12, row:10, x:455, y:383, orient:1, color:"Orange", length:4, keyX:41, keyY:267}], coins:[{x:436, y:195}, {x:140, y:410}, {x:345, y:410}, {x:240, y:409}], animateBcg:[{type:Sun, x:166, y:69, flip:false}], staticBcg:[{type:Back_1, x:258, y:208, flip:false}, {type:Cloud_1, x:75, y:123, flip:false}, {type:Cloud_2, x:379, y:59, flip:false}, {type:Palm_2, x:80, y:247, flip:false}, {type:Tree_3, x:484, y:155, flip:false}, {type:Tree_2, x:170, y:380, flip:false}, {type:Bush_2, x:111, y:412, flip:false}, {type:Bush_3, x:223, y:423, flip:false}, {type:Bush_4, x:362, y:211, flip:false}]}; public static var LEVEL_30:Object = {hero:{x:495, y:414, flip:false}, time:30, best:91, music:3, exit:{x:71, y:55}, enemies:[{x:384, y:259, speed:0.55, jump:35, wait:false, attack:true, color:"Red"}, {x:168, y:260, speed:0.55, jump:35, wait:false, attack:true, color:"Red"}, {x:276, y:116, speed:0.35, jump:0, wait:true, attack:true, color:"Green"}], blocks:[{type:"Moving", amount:1, options:4}, {type:"Moving", amount:1, options:1}, {type:"Timeout", amount:3, options:2}], map:["------777------", "---------------", "000000---000000", "---------------", "---------------", "---------------", "---------------", "---040---040---", "---333---333---", "---------------", "---------------", "---------------", "000088808880000"], doors:[{col:7, row:2, x:275, y:95, orient:2, color:"Orange", length:4, keyX:59, keyY:134}, {col:5, row:0, x:203, y:41, orient:1, color:"Yellow", length:2, keyX:492, keyY:131}], coins:[{x:490, y:310}, {x:491, y:204}, {x:59, y:203}, {x:274, y:312}, {x:275, y:204}], animateBcg:[], staticBcg:[{type:Tree_5, x:274, y:375, flip:false}, {type:Bush_6, x:499, y:63, flip:false}, {type:Bush_6, x:46, y:423, flip:false}, {type:Bush_5, x:149, y:68, flip:false}, {type:Bush_5, x:523, y:427, flip:false}, {type:Bush_4, x:362, y:69, flip:false}]}; public static var LEVEL_31:Object = {hero:{x:33, y:90, flip:true}, time:20, best:76, music:3, exit:{x:493, y:414}, enemies:[{x:41, y:170, speed:0.6, jump:0, wait:true, attack:true, color:"Red", trigger:Boolean, yWakeUp:Boolean}, {x:224, y:240, speed:0.6, jump:0, wait:true, attack:true, color:"Red", trigger:Boolean, yWakeUp:Boolean}, {x:41, y:350, speed:0.6, jump:0, wait:true, attack:true, color:"Red", trigger:Boolean, yWakeUp:Boolean}], blocks:[{type:"Moving", amount:1, options:2}], map:["-----00--------", "-----00--------", "-----00--------", "00--600--------", "1---600--------", "00---00--------", "005---2--------", "005--00--------", "00--600--------", "1--------------", "00-------------", "00-------------", "00CCC0000000000"], doors:[{col:6, row:10, x:239, y:383, orient:1, color:"Orange", length:4, keyX:128, keyY:-45}], coins:[{x:133, y:97}, {x:131, y:205}, {x:131, y:313}], animateBcg:[{type:Sun, x:413, y:49, flip:false}], staticBcg:[{type:Bush_4, x:31, y:104, flip:false}, {type:Bush_4, x:216, y:246, flip:false}, {type:Bush_3, x:207, y:417, flip:false}, {type:Bush_2, x:319, y:410, flip:false}, {type:Back_5, x:274, y:248, flip:false}, {type:Cloud_5, x:513, y:58, flip:false}, {type:Cloud_4, x:315, y:102, flip:false}, {type:Cloud_3, x:87, y:24, flip:false}, {type:Tree_2, x:395, y:382, flip:false}]}; public static var LEVEL_32:Object = {hero:{x:530, y:128, flip:false}, time:30, best:101, music:1, exit:{x:471, y:414}, enemies:[{x:132, y:109, speed:0.6, jump:0, wait:false, attack:false, color:"Orange"}, {x:204, y:108, speed:0.6, jump:0, wait:false, attack:false, color:"Orange"}, {x:168, y:109, speed:0.6, jump:0, wait:false, attack:false, color:"Orange"}, {x:167, y:36, speed:0.4, jump:0, wait:true, attack:false, color:"Green"}], blocks:[{type:"Timeout", amount:1, options:2}], map:["--033300000----", "--0---00000----", "--0---00000----", "--0---00000----", "--------------0", "--------------0", "--0000000000CC0", "---------------", "---------------", "---------------", "---------------", "---------------", "CCC000CC0CC0000"], doors:[{col:4, row:3, x:167, y:131, orient:2, color:"Orange", length:4, keyX:250, keyY:186}], coins:[{x:467, y:57}, {x:348, y:186}, {x:131, y:185}, {x:167, y:378}, {x:311, y:377}], animateBcg:[{type:Sun, x:467, y:57, flip:false}], staticBcg:[{type:Bush_1, x:412, y:195, flip:false}, {type:Bush_4, x:106, y:215, flip:false}, {type:Bush_5, x:324, y:212, flip:false}, {type:Bush_3, x:206, y:204, flip:false}, {type:Back_3, x:281, y:335, flip:false}, {type:Tree_5, x:529, y:378, flip:false}]}; public static var LEVEL_34:Object = {hero:{x:244, y:413, flip:false}, time:30, best:62, music:1, exit:{x:273, y:53}, enemies:[{x:292, y:241, speed:0.45, jump:30, wait:false, attack:false, color:"Red"}], blocks:[{type:"Timeout", amount:9, options:2}], map:["-----21--------", "-----21--------", "-----2000------", "---------------", "003---------300", "00-----------00", "---------------", "------000------", "---------------", "003---------300", "77-------------", "---------------", "0-00--000------"], doors:[{col:8, row:1, x:311, y:41, orient:1, color:"Orange", length:2, keyX:25, keyY:284}, {col:13, row:7, x:491, y:275, orient:1, color:"Yellow", length:4, keyX:24, keyY:407}, {col:1, row:7, x:59, y:275, orient:1, color:"Green", length:4, keyX:523, keyY:291}, {col:2, row:10, x:95, y:392, orient:1, color:"Red", length:3, keyX:41, keyY:113}], coins:[{x:166, y:347}, {x:167, y:239}, {x:382, y:239}, {x:384, y:348}, {x:167, y:130}, {x:383, y:132}], animateBcg:[{type:Sun, x:128, y:58, flip:false}], staticBcg:[{type:Back_4, x:251, y:367, flip:false}, {type:Tree_4, x:304, y:376, flip:false}, {type:Tree_5, x:492, y:87, flip:false}, {type:Tree_2, x:244, y:202, flip:false}]}; public static var LEVEL_35:Object = {hero:{x:527, y:416, flip:false}, time:20, best:63, music:1, exit:{x:60, y:55}, enemies:[], blocks:[{type:"Replace", amount:5, options:0}], map:["---------------", "---------------", "003------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "-------------30"], doors:[], coins:[{x:418, y:310}, {x:346, y:240}, {x:275, y:168}, {x:203, y:95}, {x:130, y:24}], animateBcg:[], staticBcg:[{type:Back_5, x:259, y:386, flip:false}, {type:Bush_5, x:490, y:425, flip:false}, {type:Cloud_4, x:294, y:181, flip:false}, {type:Cloud_2, x:68, y:239, flip:false}, {type:Cloud_1, x:479, y:243, flip:false}, {type:Cloud_2, x:224, y:302, flip:true}, {type:Cloud_6, x:266, y:57, flip:false}, {type:Cloud_5, x:488, y:61, flip:false}]}; public static var LEVEL_36:Object = {hero:{x:96, y:378, flip:true}, time:25, best:66, music:2, exit:{x:95, y:125}, enemies:[{x:330, y:246, speed:0.33, jump:33, wait:false, attack:false, color:"Red"}], blocks:[{type:"Simple", amount:3, options:0}], map:["---------------", "---------------", "---------------", "---------------", "0000---0---0--0", "-------0-------", "-------0-------", "---00000000000-", "-----777-777---", "---------------", "----8---8---8--", "-0000000000000-", "--0000000000000"], doors:[{col:13, row:9, x:491, y:347, orient:1, color:"Orange", length:4, keyX:239, keyY:331}, {col:3, row:5, x:131, y:221, orient:1, color:"Yellow", length:2, keyX:383, keyY:368}], coins:[{x:420, y:96}, {x:418, y:225}, {x:276, y:97}, {x:59, y:312}, {x:528, y:96}, {x:131, y:96}], animateBcg:[{type:Sun, x:327, y:51, flip:false}], staticBcg:[{type:Back_4, x:277, y:273, flip:false}, {type:Cloud_4, x:123, y:38, flip:false}, {type:Tree_2, x:472, y:199, flip:false}, {type:Tree_3, x:50, y:84, flip:false}, {type:Cloud_1, x:383, y:44, flip:false}, {type:Palm_1, x:54, y:360, flip:false}, {type:Bush_1, x:234, y:376, flip:false}, {type:Bush_2, x:531, y:411, flip:false}, {type:Bush_3, x:398, y:381, flip:false}, {type:Bush_3, x:273, y:131, flip:false}, {type:Bush_4, x:528, y:136, flip:false}]}; public static var LEVEL_37:Object = {hero:{x:104, y:234, flip:true}, time:25, best:72, music:2, exit:{x:77, y:412}, enemies:[], blocks:[{type:"Timeout", amount:8, options:1}, {type:"Moving", amount:1, options:6}], map:["---------------", "---------------", "00000----------", "----0----------", "----0000000----", "----7777777----", "---------------", "0000-------0--0", "0000CCCCCCC0--0", "0-------------0", "0-------------0", "0-------------0", "000--------0000"], doors:[{col:13, row:7, x:473, y:275, orient:2, color:"Orange", length:2, keyX:217, keyY:118}], coins:[{x:166, y:407}, {x:0x0101, y:408}, {x:346, y:408}, {x:202, y:233}, {x:274, y:233}, {x:347, y:232}, {x:473, y:311}], animateBcg:[{type:Sun, x:327, y:45, flip:false}], staticBcg:[{type:Tree_5, x:63, y:197, flip:false}, {type:Cloud_3, x:468, y:50, flip:false}, {type:Cloud_1, x:249, y:96, flip:false}, {type:Cloud_2, x:61, y:28, flip:false}, {type:Bush_3, x:340, y:131, flip:false}, {type:Bush_5, x:140, y:68, flip:false}, {type:Tree_1, x:472, y:386, flip:false}]}; public static var LEVEL_38:Object = {hero:{x:515, y:90, flip:false}, time:45, best:36, music:3, exit:{x:496, y:414}, enemies:[], blocks:[{type:"Moving", amount:1, options:4}, {type:"Moving", amount:1, options:6}], map:["---------------", "---------------", "---------------", "03-----------30", "1-------------2", "1-------------2", "0000-------0000", "1-------------2", "1-------------2", "000---------000", "1-------------2", "1-------------2", "000888888888000"], doors:[{col:12, row:10, x:455, y:401, orient:1, color:"Orange", length:2, keyX:51, keyY:404}, {col:12, row:7, x:455, y:293, orient:1, color:"Yellow", length:2, keyX:51, keyY:297}, {col:2, row:8, x:95, y:293, orient:1, color:"Green", length:2, keyX:39, keyY:85}, {col:2, row:10, x:95, y:401, orient:1, color:"Red", length:2, keyX:497, keyY:295}], coins:[{x:203, y:96}, {x:348, y:96}, {x:204, y:292}, {x:348, y:294}, {x:204, y:386}, {x:348, y:386}], animateBcg:[], staticBcg:[{type:Cloud_6, x:280, y:52, flip:false}, {type:Back_2, x:285, y:229, flip:false}, {type:Palm_3, x:114, y:163, flip:false}, {type:Palm_2, x:438, y:176, flip:false}, {type:Bush_2, x:497, y:193, flip:false}, {type:Bush_5, x:57, y:211, flip:false}]}; public static var LEVEL_39:Object = {hero:{x:427, y:199, flip:true}, time:40, best:75, music:3, exit:{x:522, y:90}, enemies:[{x:61, y:57, speed:0.25, jump:0, wait:true, attack:false, color:"Green"}], blocks:[{type:"Moving", amount:2, options:3}, {type:"Moving", amount:1, options:6}, {type:"Timeout", amount:4, options:3}], map:["000000000000---", "1--------------", "1--------------", "1-2000000-00000", "1-21----0-0--60", "1-21----0-0--60", "1-21-0000-00-60", "1-21------0--60", "1-21------0--60", "1-200000000--60", "1--7777777---60", "1------------60", "1------------60"], doors:[{col:10, row:10, x:383, y:419, orient:1, color:"Yellow", length:4, keyX:454, keyY:422}, {col:11, row:2, x:419, y:77, orient:1, color:"Red", length:2, keyX:263, keyY:193}, {col:4, row:6, x:158, y:239, orient:2, color:"Green", length:1, keyX:380, keyY:83}], coins:[{x:456, y:282}, {x:310, y:422}, {x:168, y:420}, {x:59, y:278}, {x:294, y:85}, {x:183, y:86}], animateBcg:[], staticBcg:[{type:Cloud_4, x:212, y:35, flip:false}, {type:Back_3, x:0xFF, y:332, flip:false}, {type:Tree_1, x:160, y:276, flip:false}, {type:Bush_6, x:221, y:204, flip:false}, {type:Bush_4, x:242, y:104, flip:false}, {type:Bush_2, x:135, y:88, flip:false}, {type:Bush_3, x:326, y:311, flip:false}]}; public static var LEVEL_33:Object = {hero:{x:347, y:35, flip:false}, time:20, best:87, music:2, exit:{x:476, y:432}, enemies:[{x:483, y:96, speed:0.42, jump:35, wait:true, attack:true, color:"Red", yWakeUp:true}], blocks:[], map:["----------00000", "---------400--0", "--------------0", "--0000000000000", "--------------0", "--------------0", "444444844444--0", "333333333333--0", "--------------0", "--4844444844440", "--3333333333330", "--------------0", "444444444444440"], doors:[], coins:[{x:130, y:204}, {x:238, y:204}, {x:347, y:205}, {x:346, y:313}, {x:239, y:312}, {x:132, y:313}, {x:130, y:419}, {x:239, y:420}, {x:348, y:420}], animateBcg:[], staticBcg:[{type:Back_5, x:240, y:259, flip:false}, {type:Bush_1, x:417, y:432, flip:false}, {type:Bush_1, x:174, y:222, flip:true}, {type:Bush_3, x:393, y:227, flip:false}, {type:Bush_5, x:239, y:337, flip:false}, {type:Bush_5, x:315, y:101, flip:true}, {type:Bush_6, x:0x0101, y:439, flip:false}, {type:Bush_2, x:37, y:431, flip:false}, {type:Palm_1, x:133, y:73, flip:false}, {type:Palm_3, x:470, y:290, flip:false}]}; public static var LEVEL_40:Object = {hero:{x:531, y:384, flip:false}, time:40, best:106, music:2, exit:{x:40, y:54}, enemies:[{x:313, y:315, speed:0.55, jump:0, wait:false, attack:false, color:"Red"}, {x:63, y:171, speed:0.6, jump:30, wait:false, attack:false, color:"Red"}, {x:382, y:55, speed:0.4, jump:0, wait:true, attack:true, color:"Green"}, {x:455, y:92, speed:0.4, jump:0, wait:true, attack:true, color:"Green"}], blocks:[{type:"Thorn", amount:1, options:1}, {type:"Timeout", amount:3, options:3}, {type:"Moving", amount:1, options:3}, {type:"Moving", amount:1, options:1}], map:["---------000---", "-----------044-", "0000---------0-", "7777---------0-", "-------------0-", "000-0--------1-", "00-------------", "77-------------", "---------------", "0-000---000-0--", "000-------0----", "00088808880---0", "00000000000---0"], doors:[{col:2, row:6, x:95, y:275, orient:1, color:"Orange", length:4, keyX:239, keyY:381}, {col:5, row:9, x:239, y:347, orient:2, color:"Green", length:4, keyX:457, keyY:34}, {col:14, row:5, x:518, y:203, orient:2, color:"Red", length:1, keyX:28, keyY:162}, {col:2, row:0, x:95, y:41, orient:1, color:"Yellow", length:2, keyX:24, keyY:308}], coins:[{x:240, y:206}, {x:240, y:303}, {x:168, y:158}, {x:526, y:61}, {x:526, y:134}, {x:454, y:311}], animateBcg:[{type:Sun, x:219, y:50, flip:false}], staticBcg:[{type:Back_1, x:319, y:206, flip:false}, {type:Cloud_1, x:151, y:30, flip:false}, {type:Cloud_1, x:447, y:35, flip:false}, {type:Palm_2, x:454, y:281, flip:false}, {type:Palm_3, x:139, y:271, flip:false}, {type:Bush_1, x:528, y:373, flip:false}, {type:Bush_2, x:25, y:302, flip:false}, {type:Bush_3, x:160, y:418, flip:false}, {type:Bush_6, x:167, y:168, flip:false}]}; public static var LEVEL_10:Object = {hero:{x:25, y:380, flip:true}, time:20, best:73, music:1, exit:{x:491, y:160}, enemies:[{x:524, y:422, speed:0.49, jump:0, wait:false, attack:false, color:"Orange"}, {x:0x0101, y:308, speed:0.3, jump:0, wait:true, attack:false, color:"Green"}], blocks:[{type:"Moving", amount:2, options:3}], map:["-----------0000", "-----------0---", "---------------", "---------------", "---------------", "-----------0000", "------------000", "------00----000", "---------------", "---------------", "---------------", "00-------------", "000000CC0000000"], doors:[{col:11, row:3, x:419, y:131, orient:1, color:"Red", length:4, keyX:350, keyY:382}], coins:[{x:350, y:315}, {x:349, y:167}, {x:454, y:383}, {x:131, y:385}], animateBcg:[{type:Sun, x:198, y:66, flip:false}], staticBcg:[{type:Cloud_5, x:323, y:50, flip:false}, {type:Cloud_3, x:69, y:46, flip:false}, {type:Tree_5, x:44, y:342, flip:false}, {type:Tree_3, x:261, y:194, flip:false}, {type:Palm_3, x:460, y:127, flip:false}, {type:Palm_2, x:510, y:390, flip:false}, {type:Tree_1, x:196, y:386, flip:false}, {type:Bush_6, x:387, y:420, flip:false}, {type:Bush_3, x:533, y:166, flip:false}, {type:Bush_2, x:94, y:413, flip:false}]}; public static var LEVEL_11:Object = {hero:{x:489, y:414, flip:false}, time:20, best:67, music:1, exit:{x:44, y:125}, enemies:[], blocks:[{type:"Replace", amount:5, options:0}], map:["---------------", "---------------", "---------------", "---------------", "000--------01-2", "00---------01-2", "0----------01-2", "0----------01-2", "0----------01-2", "0----------01-2", "0----------01-2", "0----------01-2", "088088088000000"], doors:[], coins:[{x:492, y:348}, {x:491, y:276}, {x:491, y:204}, {x:491, y:131}, {x:347, y:79}, {x:168, y:80}], animateBcg:[{type:Sun, x:0xFF, y:59, flip:false}], staticBcg:[{type:Back_3, x:270, y:240, flip:false}, {type:Cloud_5, x:90, y:32, flip:false}, {type:Cloud_6, x:535, y:77, flip:false}, {type:Bush_4, x:430, y:137, flip:false}, {type:Tree_2, x:236, y:384, flip:false}, {type:Tree_3, x:133, y:374, flip:false}, {type:Tree_5, x:344, y:375, flip:false}, {type:Bush_1, x:92, y:124, flip:false}]}; public static var LEVEL_12:Object = {hero:{x:274, y:206, flip:false}, time:20, best:85, music:2, exit:{x:513, y:395}, enemies:[{x:484, y:206, speed:0.8, jump:0, wait:false, attack:true, color:"Red"}, {x:70, y:206, speed:0.8, jump:0, wait:false, attack:true, color:"Red"}], blocks:[{type:"Moving", amount:1, options:6}], map:["---------------", "---------------", "---------------", "---------------", "03-----------30", "0-------------0", "000000---000000", "000---------000", "00----------3--", "00-------------", "00-------------", "0044-------4444", "000088888880000"], doors:[{col:7, row:6, x:275, y:239, orient:2, color:"Orange", length:4, keyX:42, keyY:110}, {col:12, row:9, x:455, y:365, orient:1, color:"Yellow", length:4, keyX:112, keyY:383}], coins:[{x:348, y:194}, {x:203, y:194}, {x:483, y:121}, {x:275, y:381}, {x:274, y:133}, {x:202, y:381}, {x:347, y:381}], animateBcg:[], staticBcg:[{type:Cloud_6, x:539, y:33, flip:false}, {type:Cloud_5, x:63, y:35, flip:false}, {type:Cloud_4, x:260, y:72, flip:false}, {type:Back_5, x:262, y:349, flip:false}, {type:Bush_5, x:122, y:210, flip:false}, {type:Bush_6, x:397, y:204, flip:false}, {type:Tree_1, x:509, y:101, flip:false}, {type:Bush_5, x:38, y:137, flip:false}]}; public static var LEVEL_13:Object = {hero:{x:497, y:342, flip:false}, time:20, best:116, music:2, exit:{x:39, y:341}, enemies:[{x:383, y:199, speed:0.55, jump:0, wait:true, attack:true, color:"Green"}, {x:241, y:198, speed:0.55, jump:0, wait:true, attack:true, color:"Green"}, {x:310, y:198, speed:0.55, jump:0, wait:true, attack:true, color:"Green"}, {x:96, y:200, speed:0.55, jump:0, wait:true, attack:true, color:"Green"}, {x:165, y:200, speed:0.55, jump:0, wait:true, attack:true, color:"Green"}, {x:453, y:199, speed:0.55, jump:0, wait:true, attack:true, color:"Green"}], blocks:[{type:"Thorn", amount:3, options:1}], map:["---------------", "---------------", "---------------", "---------------", "--444-444-444--", "---------------", "---------------", "---------------", "---------------", "---------------", "00-----------00", "00-----------00", "000000000000000"], doors:[], coins:[{x:383, y:404}, {x:274, y:404}, {x:167, y:403}], animateBcg:[{type:Sun, x:156, y:56, flip:false}], staticBcg:[{type:Back_3, x:279, y:271, flip:false}, {type:Cloud_5, x:457, y:117, flip:false}, {type:Cloud_4, x:293, y:72, flip:false}, {type:Cloud_3, x:77, y:120, flip:false}, {type:Bush_6, x:276, y:149, flip:false}, {type:Bush_4, x:154, y:159, flip:false}, {type:Bush_2, x:530, y:340, flip:true}, {type:Tree_2, x:328, y:380, flip:false}, {type:Tree_1, x:207, y:384, flip:false}, {type:Bush_3, x:428, y:418, flip:false}, {type:Bush_4, x:274, y:429, flip:false}, {type:Bush_2, x:120, y:412, flip:false}]}; public static var LEVEL_14:Object = {hero:{x:275, y:414, flip:false}, time:20, best:66, music:2, exit:{x:64, y:89}, enemies:[], blocks:[{type:"Timeout", amount:1, options:4}, {type:"Timeout", amount:1, options:3}, {type:"Timeout", amount:1, options:2}, {type:"Timeout", amount:1, options:1}], map:["---------------", "---------------", "---------------", "0000001-2000000", "0000005-6000000", "0000005-6000000", "0000005-6000000", "0000005-6000000", "0000005-6000000", "0000005-6000000", "0000005-6000000", "0000005-6000000", "000000000000000"], doors:[], coins:[{x:274, y:344}, {x:275, y:269}, {x:275, y:198}, {x:276, y:125}, {x:168, y:85}, {x:382, y:84}], animateBcg:[], staticBcg:[{type:Bush_1, x:115, y:84, flip:false}, {type:Bush_2, x:428, y:86, flip:false}, {type:Bush_3, x:533, y:93, flip:false}, {type:Palm_2, x:484, y:70, flip:false}, {type:Cloud_3, x:396, y:-3, flip:false}, {type:Cloud_6, x:93, y:3, flip:true}]}; public static var LEVEL_15:Object = {hero:{x:500, y:52, flip:false}, time:20, best:106, music:2, exit:{x:469, y:415}, enemies:[{x:348, y:312, speed:0.7, jump:30, wait:true, attack:true, color:"Red", yWakeUp:true}, {x:236, y:241, speed:0.7, jump:30, wait:true, attack:true, color:"Red", yWakeUp:true}, {x:349, y:204, speed:0.7, jump:30, wait:true, attack:true, color:"Red", yWakeUp:true}, {x:237, y:130, speed:0.7, jump:30, wait:true, attack:true, color:"Red", yWakeUp:true}], blocks:[{type:"Timeout", amount:2, options:3}], map:["---------------", "---------------", "0000000--000000", "-----0---01----", "-----00--01----", "-----00---1----", "-----0---01----", "-----00--01----", "-----00---1----", "0000000--000000", "0-------------0", "0-------------0", "000000000000000"], doors:[], coins:[{x:112, y:403}, {x:222, y:402}, {x:330, y:403}, {x:429, y:403}, {x:185, y:43}, {x:114, y:42}, {x:41, y:42}], animateBcg:[], staticBcg:[{type:Back_4, x:0x0100, y:267, flip:false}, {type:Tree_2, x:0x0200, y:271, flip:false}, {type:Tree_3, x:442, y:266, flip:false}, {type:Tree_4, x:52, y:272, flip:false}, {type:Tree_5, x:135, y:269, flip:false}, {type:Bush_4, x:468, y:318, flip:false}, {type:Bush_5, x:93, y:320, flip:false}, {type:Bush_4, x:429, y:64, flip:false}, {type:Bush_2, x:277, y:413, flip:false}, {type:Bush_1, x:68, y:412, flip:false}, {type:Bush_4, x:387, y:427, flip:false}, {type:Bush_5, x:158, y:426, flip:false}, {type:Cloud_6, x:143, y:4, flip:false}, {type:Cloud_5, x:489, y:4, flip:false}, {type:Bush_6, x:136, y:60, flip:false}]}; public static var LEVEL_16:Object = {hero:{x:521, y:380, flip:false}, time:20, best:156, music:3, exit:{x:46, y:378}, enemies:[{x:418, y:37, speed:0.4, jump:0, wait:true, attack:false, color:"Green"}, {x:383, y:37, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:346, y:35, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:311, y:36, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:277, y:37, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:240, y:36, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:205, y:37, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:168, y:37, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:131, y:36, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:95, y:39, speed:0.45, jump:0, wait:true, attack:false, color:"Green"}, {x:448, y:38, speed:0.4, jump:0, wait:true, attack:false, color:"Green"}], blocks:[{type:"Timeout", amount:3, options:3}], map:["333333333333333", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "000000---000000", "000008888800000"], doors:[], coins:[{x:276, y:365}, {x:383, y:366}, {x:168, y:365}], animateBcg:[{type:Sun, x:490, y:93, flip:false}], staticBcg:[{type:Back_5, x:284, y:276, flip:false}, {type:Tree_2, x:463, y:346, flip:false}, {type:Tree_3, x:125, y:337, flip:false}, {type:Cloud_6, x:179, y:124, flip:false}, {type:Cloud_5, x:481, y:187, flip:false}]}; public static var LEVEL_17:Object = {hero:{x:536, y:271, flip:false}, time:25, best:106, music:3, exit:{x:71, y:125}, enemies:[{x:494, y:56, speed:0.25, jump:0, wait:true, attack:false, color:"Green"}, {x:454, y:57, speed:0.25, jump:0, wait:true, attack:false, color:"Green"}, {x:384, y:56, speed:0.25, jump:0, wait:true, attack:false, color:"Green"}, {x:346, y:56, speed:0.25, jump:0, wait:true, attack:false, color:"Green"}, {x:236, y:56, speed:0.25, jump:0, wait:true, attack:false, color:"Green"}, {x:275, y:57, speed:0.25, jump:0, wait:true, attack:false, color:"Green"}], blocks:[{type:"Timeout", amount:4, options:3}], map:["---000000000000", "---------------", "---------------", "---------------", "0000-----------", "0000-----------", "---------------", "---------------", "0----0880880880", "00---0000000000", "00----------600", "00----------600", "00-000000000000"], doors:[{col:3, row:9, x:131, y:347, orient:2, color:"Orange", length:4, keyX:204, keyY:271}, {col:3, row:2, x:131, y:95, orient:1, color:"Red", length:4, keyX:422, keyY:404}], coins:[{x:310, y:406}, {x:151, y:405}, {x:312, y:259}, {x:24, y:258}], animateBcg:[{type:Sun, x:93, y:39, flip:false}], staticBcg:[{type:Cloud_5, x:477, y:63, flip:false}, {type:Cloud_5, x:191, y:37, flip:false}, {type:Back_3, x:279, y:266, flip:false}, {type:Palm_3, x:207, y:233, flip:false}, {type:Tree_5, x:527, y:230, flip:false}, {type:Tree_1, x:30, y:97, flip:false}, {type:Bush_3, x:308, y:274, flip:false}, {type:Bush_5, x:435, y:422, flip:false}, {type:Bush_6, x:223, y:420, flip:false}, {type:Bush_2, x:423, y:267, flip:false}, {type:Bush_1, x:22, y:268, flip:false}, {type:Cloud_1, x:270, y:107, flip:false}]}; public static var LEVEL_18:Object = {hero:{x:491, y:91, flip:false}, time:20, best:53, music:3, exit:{x:74, y:415}, enemies:[{x:523, y:420, speed:0.35, jump:10, wait:false, attack:false, color:"Red"}, {x:58, y:163, speed:0.35, jump:0, wait:true, attack:true, color:"Green"}], blocks:[{type:"Replace", amount:3, options:0}], map:["---------------", "---------------", "---------------", "00CC000---00000", "1-----0-------2", "1-------------2", "1-------------2", "1-----0000--000", "3333333--------", "---------------", "---------------", "---------------", "00000-----00000"], doors:[{col:8, row:3, x:311, y:131, orient:2, color:"Orange", length:4, keyX:42, keyY:82}, {col:6, row:5, x:239, y:221, orient:1, color:"Yellow", length:2, keyX:495, keyY:232}, {col:10, row:7, x:401, y:275, orient:2, color:"Green", length:2, keyX:58, keyY:265}], coins:[{x:400, y:190}, {x:419, y:86}, {x:238, y:86}, {x:275, y:345}, {x:456, y:407}], animateBcg:[], staticBcg:[{type:Back_5, x:270, y:226, flip:false}, {type:Bush_1, x:185, y:265, flip:false}, {type:Bush_2, x:420, y:412, flip:false}, {type:Palm_1, x:173, y:74, flip:false}, {type:Tree_2, x:138, y:383, flip:false}, {type:Tree_3, x:491, y:375, flip:false}, {type:Cloud_2, x:349, y:52, flip:false}, {type:Cloud_1, x:77, y:45, flip:false}, {type:Bush_5, x:330, y:246, flip:false}, {type:Bush_4, x:21, y:429, flip:false}]}; public static var LEVEL_19:Object = {hero:{x:425, y:413, flip:false}, time:20, best:75, music:3, exit:{x:29, y:91}, enemies:[{x:523, y:422, speed:0.25, jump:0, wait:false, attack:false, color:"Orange"}, {x:178, y:98, speed:0.25, jump:0, wait:false, attack:false, color:"Orange"}], blocks:[{type:"Moving", amount:1, options:5}, {type:"Timeout", amount:4, options:1}], map:["---------------", "---------------", "---8-----------", "000000000000---", "---------------", "---------------", "00000000--00000", "---------------", "---------------", "0000--000000000", "---------------", "---------------", "--0000000000000"], doors:[{col:5, row:9, x:185, y:347, orient:2, color:"Orange", length:2, keyX:105, keyY:409}, {col:8, row:6, x:329, y:239, orient:2, color:"Yellow", length:2, keyX:509, keyY:296}, {col:13, row:3, x:491, y:131, orient:2, color:"Green", length:4, keyX:40, keyY:187}], coins:[{x:291, y:405}, {x:271, y:296}, {x:400, y:297}, {x:184, y:187}, {x:474, y:190}, {x:274, y:26}], animateBcg:[{type:Sun, x:496, y:57, flip:false}], staticBcg:[{type:Cloud_6, x:309, y:30, flip:false}, {type:Back_5, x:273, y:342, flip:false}, {type:Tree_4, x:98, y:54, flip:false}, {type:Tree_2, x:407, y:58, flip:false}, {type:Tree_5, x:161, y:377, flip:false}, {type:Bush_3, x:518, y:202, flip:false}, {type:Bush_3, x:37, y:311, flip:false}, {type:Bush_2, x:133, y:199, flip:false}, {type:Bush_1, x:475, y:413, flip:false}, {type:Bush_5, x:238, y:425, flip:false}, {type:Bush_5, x:346, y:315, flip:false}]}; public static var LEVEL_20:Object = {hero:{x:56, y:342, flip:true}, time:20, best:66, music:1, exit:{x:509, y:125}, enemies:[], blocks:[{type:"Moving", amount:3, options:1}], map:["000000000000000", "777777777777777", "---------------", "---------------", "-------------00", "--------------0", "--------------2", "--------------2", "--------------2", "--------------2", "03------------2", "0-------------2", "0-------------2"], doors:[], coins:[{x:166, y:347}, {x:275, y:274}, {x:384, y:203}, {x:166, y:276}, {x:275, y:203}, {x:383, y:130}], animateBcg:[], staticBcg:[{type:Back_5, x:265, y:285, flip:false}, {type:Tree_3, x:20, y:303, flip:false}]}; public static var LEVEL_21:Object = {hero:{x:96, y:197, flip:true}, time:25, best:70, music:1, exit:{x:517, y:196}, enemies:[], blocks:[{type:"Thorn", amount:2, options:1}], map:["---------------", "---------------", "---------------", "---------------", "---------------", "---------------", "0003--------300", "00-----------30", "0-------------0", "0-------------0", "0-------------0", "0-------------0", "0-------------0"], doors:[], coins:[{x:454, y:194}, {x:129, y:193}, {x:239, y:193}, {x:348, y:193}, {x:294, y:133}], animateBcg:[{type:Sun, x:294, y:46, flip:false}], staticBcg:[{type:Tree_5, x:51, y:161, flip:false}, {type:Cloud_4, x:443, y:59, flip:false}, {type:Cloud_5, x:227, y:89, flip:false}, {type:Cloud_3, x:53, y:28, flip:false}, {type:Back_1, x:280, y:0xFF, flip:false}, {type:Bush_5, x:466, y:210, flip:false}]}; public static var LEVEL_22:Object = {hero:{x:477, y:415, flip:false}, time:20, best:69, music:1, exit:{x:41, y:412}, enemies:[{x:240, y:38, speed:0.35, jump:0, wait:true, attack:true, color:"Green"}, {x:384, y:182, speed:0.35, jump:0, wait:true, attack:true, color:"Green"}, {x:76, y:201, speed:0.35, jump:0, wait:true, attack:true, color:"Green"}], blocks:[{type:"Moving", amount:1, options:3}], map:["033333333333330", "0-------------0", "0-------------0", "0-------------0", "0003-----333000", "0-------------0", "0-------------0", "0-------------0", "0-------------0", "33333---------0", "--------------0", "--------------0", "000000000000000"], doors:[{col:2, row:10, x:95, y:392, orient:1, color:"Green", length:3, keyX:472, keyY:121}, {col:3, row:10, x:131, y:392, orient:1, color:"Yellow", length:3, keyX:77, keyY:120}, {col:4, row:10, x:167, y:392, orient:1, color:"Orange", length:3, keyX:76, keyY:297}], coins:[{x:383, y:401}, {x:310, y:401}, {x:238, y:310}, {x:239, y:240}, {x:239, y:167}], animateBcg:[], staticBcg:[{type:Back_4, x:263, y:0x0101, flip:false}, {type:Tree_5, x:143, y:267, flip:false}, {type:Tree_3, x:442, y:374, flip:false}, {type:Bush_4, x:374, y:137, flip:false}, {type:Bush_5, x:104, y:320, flip:false}, {type:Bush_6, x:356, y:420, flip:false}, {type:Bush_3, x:125, y:134, flip:false}, {type:Cloud_6, x:223, y:79, flip:false}, {type:Cloud_5, x:477, y:31, flip:false}, {type:Tree_1, x:246, y:385, flip:false}]}; public static var LEVEL_23:Object = {hero:{x:510, y:53, flip:false}, time:25, best:54, music:1, exit:{x:100, y:411}, enemies:[], blocks:[{type:"Moving", amount:3, options:6}], map:["---------------", "---------------", "-------------30", "--CCCCCCCCCCCC0", "--3333333333333", "---------------", "---------------", "CCCCCCCCCCCCC--", "3333333333333--", "---------------", "---------------", "---------------", "0000CCCCCCCCCCC"], doors:[], coins:[{x:384, y:24}, {x:240, y:24}, {x:169, y:346}, {x:311, y:348}, {x:456, y:347}], animateBcg:[{type:Sun, x:75, y:50, flip:false}], staticBcg:[{type:Back_2, x:286, y:275, flip:false}, {type:Bush_6, x:333, y:263, flip:false}, {type:Bush_6, x:140, y:120, flip:false}, {type:Bush_6, x:434, y:124, flip:false}, {type:Bush_6, x:278, y:451, flip:false}, {type:Bush_6, x:483, y:442, flip:false}, {type:Bush_6, x:59, y:264, flip:false}, {type:Bush_3, x:266, y:112, flip:false}, {type:Bush_3, x:155, y:259, flip:false}, {type:Bush_3, x:381, y:443, flip:false}, {type:Bush_3, x:190, y:441, flip:true}, {type:Tree_2, x:46, y:381, flip:false}, {type:Cloud_6, x:301, y:44, flip:false}]}; public static var LEVEL_24:Object = {hero:{x:26, y:128, flip:true}, time:20, best:63, music:2, exit:{x:523, y:129}, enemies:[{x:204, y:272, speed:0.25, jump:0, wait:true, attack:false, color:"Green"}, {x:525, y:203, speed:0.36, jump:0, wait:false, attack:false, color:"Orange"}], blocks:[{type:"Moving", amount:1, options:1}, {type:"Moving", amount:1, options:5}], map:["--------0------", "--------0------", "--------0------", "--------0------", "0-------0--0000", "0--------------", "0000000------00", "-00---0-----00-", "--00-------00--", "---00-----00---", "----00---00----", "-----00-00-----", "------000------"], doors:[{col:6, row:9, x:239, y:347, orient:1, color:"Orange", length:4, keyX:420, keyY:268}, {col:10, row:4, x:365, y:167, orient:2, color:"Yellow", length:2, keyX:164, keyY:292}], coins:[{x:132, y:187}, {x:238, y:183}, {x:345, y:311}, {x:276, y:419}, {x:349, y:95}], animateBcg:[{type:Sun, x:82, y:57, flip:false}], staticBcg:[{type:Back_3, x:301, y:305, flip:false}, {type:Bush_1, x:382, y:301, flip:false}, {type:Bush_1, x:200, y:338, flip:false}, {type:Bush_2, x:423, y:124, flip:false}, {type:Palm_3, x:279, y:380, flip:false}, {type:Tree_5, x:483, y:88, flip:false}, {type:Bush_4, x:457, y:247, flip:false}, {type:Bush_5, x:524, y:210, flip:false}, {type:Bush_6, x:89, y:204, flip:false}, {type:Bush_3, x:232, y:202, flip:false}, {type:Tree_3, x:183, y:156, flip:false}, {type:Cloud_2, x:385, y:40, flip:false}, {type:Cloud_3, x:213, y:42, flip:false}, {type:Back_3, x:532, y:435, flip:false}, {type:Back_3, x:38, y:414, flip:false}]}; public static var LEVEL_25:Object = {hero:{x:276, y:415, flip:false}, time:25, best:68, music:2, exit:{x:47, y:90}, enemies:[{x:504, y:420, speed:0.4, jump:25, wait:false, attack:true, color:"Red"}, {x:23, y:422, speed:0.4, jump:25, wait:false, attack:true, color:"Red"}], blocks:[{type:"Moving", amount:1, options:4}, {type:"Moving", amount:1, options:5}, {type:"Timeout", amount:4, options:3}, {type:"Moving", amount:1, options:3}], map:["---------------", "---------------", "---------------", "000------------", "---------------", "---------------", "---------------", "---------------", "---------------", "000000---000000", "---------------", "---------------", "000000000000000"], doors:[{col:7, row:9, x:275, y:347, orient:2, color:"Orange", length:4, keyX:463, keyY:400}, {col:2, row:2, x:95, y:59, orient:1, color:"Green", length:4, keyX:462, keyY:62}], coins:[{x:76, y:402}, {x:276, y:276}, {x:456, y:277}, {x:132, y:276}], animateBcg:[{type:Sun, x:463, y:63, flip:false}], staticBcg:[{type:Back_5, x:260, y:235, flip:false}, {type:Bush_1, x:107, y:412, flip:false}, {type:Bush_2, x:391, y:411, flip:false}, {type:Bush_4, x:220, y:429, flip:false}, {type:Bush_5, x:456, y:320, flip:false}, {type:Bush_5, x:47, y:320, flip:false}, {type:Bush_6, x:180, y:315, flip:false}, {type:Palm_3, x:374, y:273, flip:false}, {type:Palm_2, x:99, y:284, flip:false}, {type:Palm_1, x:506, y:291, flip:false}, {type:Cloud_2, x:337, y:43, flip:false}, {type:Cloud_1, x:167, y:86, flip:false}]}; public static var LEVEL_26:Object = {hero:{x:16, y:54, flip:true}, time:25, best:48, music:2, exit:{x:510, y:414}, enemies:[], blocks:[{type:"Timeout", amount:2, options:3}, {type:"Moving", amount:1, options:1}, {type:"Moving", amount:1, options:6}], map:["---------000---", "---------000---", "0033-3330000---", "0--------------", "0--0000--------", "0--007---------", "0--00---0------", "0--00---0------", "7--00--00---0--", "---00-800---0--", "---00-0000000--", "00800-0000000--", "00000-000000000"], doors:[{col:5, row:3, x:203, y:122, orient:1, color:"Orange", length:1, keyX:28, keyY:377}, {col:8, row:4, x:311, y:167, orient:1, color:"Green", length:4, keyX:205, keyY:417}, {col:13, row:8, x:509, y:311, orient:2, color:"Yellow", length:2, keyX:493, keyY:56}], coins:[{x:76, y:188}, {x:76, y:297}, {x:509, y:363}, {x:221, y:259}, {x:365, y:312}], animateBcg:[{type:Sun, x:494, y:57, flip:false}], staticBcg:[{type:Cloud_2, x:250, y:22, flip:false}, {type:Cloud_1, x:30, y:25, flip:false}, {type:Palm_3, x:460, y:234, flip:false}, {type:Palm_2, x:279, y:246, flip:false}, {type:Tree_3, x:63, y:338, flip:false}, {type:Bush_1, x:383, y:52, flip:false}, {type:Bush_2, x:411, y:342, flip:false}, {type:Bush_3, x:167, y:131, flip:false}, {type:Bush_4, x:111, y:65, flip:false}, {type:Bush_5, x:357, y:353, flip:false}, {type:Bush_6, x:287, y:61, flip:false}]}; } }//package main.game
Section 163
//LevelBuilder (main.game.LevelBuilder) package main.game { import main.field.*; import main.*; import flash.utils.*; import main.items.*; public class LevelBuilder { public static function getClass(_arg1):Class{ return (getDefinitionByName(getQualifiedClassName(_arg1))); } public static function getLevel(_arg1:Root):Object{ var child:*; var className:Class; var deco:Object; var j:*; var i:*; var enemy:*; var map:*; var symbol:*; var newDoor:*; var link = _arg1; var level:Object = new Object(); var _local3 = link; with (_local3) { level.hero = {x:hero.x, y:hero.y, flip:hero.flip}; level.time = link.time; level.music = link.music.currentTrack; level.exit = {x:exit.x, y:exit.y}; level.enemies = []; var _local4 = link.game.chars; with (_local4) { if (numChildren > 0){ i = 0; while (i < numChildren) { child = getChildAt(i); var _local5 = child; with (_local5) { enemy = {x:x, y:y, speed:speed, jump:jump, wait:wait, attack:attack, color:color}; level.enemies.push(enemy); }; i++; }; }; }; level.blocks = link.blocks; level.map = []; j = 0; while (j < Root.FIELD_ROWS) { map = ""; i = 0; while (i < Root.FIELD_COLS) { symbol = field.cell[i][j].tileShape; if (symbol >= 0){ if (field.cell[i][j].thorn){ symbol = (symbol + 8); }; map = (map + Field.symbols[symbol]); } else { if (field.cell[i][j].thorn){ symbol = (4 + field.cell[i][j].thorn.currentFrame); map = (map + Field.symbols[symbol]); } else { map = (map + "-"); }; }; i++; }; level.map.push(map); j++; }; level.doors = []; _local4 = link.game.doors; with (_local4) { if (numChildren > 0){ i = 0; while (i < numChildren) { _local5 = getChildAt(i); with (_local5) { newDoor = {col:cell.col, row:cell.row, x:x, y:y, orient:orient, color:color, length:length, keyX:key.x, keyY:key.y}; }; level.doors.push(newDoor); i++; }; }; }; level.coins = []; _local4 = link.game.items; with (_local4) { if (numChildren > 0){ i = 0; while (i < numChildren) { child = getChildAt(i); if ((child is Coin)){ level.coins.push({x:child.x, y:child.y}); }; i++; }; }; }; level.animateBcg = []; _local4 = link.game.bcgAnimate; with (_local4) { if (numChildren > 1){ i = 1; while (i < numChildren) { className = getClass(getChildAt(i)); _local5 = getChildAt(i); with (_local5) { level.animateBcg.push({type:className, x:x, y:y, flip:flip}); }; i++; }; }; }; level.staticBcg = []; _local4 = link.game.bcgStatic.sprite; with (_local4) { if (numChildren > 0){ i = 0; while (i < numChildren) { className = getClass(getChildAt(i)); _local5 = getChildAt(i); with (_local5) { level.staticBcg.push({type:className, x:x, y:y, flip:flip}); }; i++; }; }; }; }; return (level); } } }//package main.game
Section 164
//ScoreSystem (main.game.ScoreSystem) package main.game { import flash.net.*; public class ScoreSystem { public var total:int;// = 0 public var solved:Array; public var opened:int; public var bestScore:Array; public var saveGame:SharedObject; public static const COINS_BONUS:int = 25; public static const KILL_BONUS:int = 10; public static const LEVELS:int = 40; public function ScoreSystem(){ bestScore = []; solved = []; super(); writeNull(); loadInfo(); updateOpened(); updateTotal(); } public function updateTotal():void{ total = 0; var _local1:int; while (_local1 < LEVELS) { total = (total + bestScore[_local1]); _local1++; }; } public function writeNull():void{ bestScore = []; solved = []; total = 0; var _local1:int; while (_local1 < LEVELS) { bestScore.push(0); solved.push(false); _local1++; }; } public function saveInfo():void{ try { saveGame.data.bestScore = bestScore; saveGame.data.solved = solved; saveGame.data.total = total; saveGame.flush(); } catch(error) { }; } public function solveLevel(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Boolean):void{ var _local6:int = (_arg1 - 1); var _local7:int = (_arg3 + (_arg4 * KILL_BONUS)); if (_arg5){ _local7 = (_local7 + COINS_BONUS); }; solved[_local6] = true; if (_local7 > bestScore[_local6]){ bestScore[_local6] = _local7; }; updateTotal(); updateOpened(); saveInfo(); } public function clear():void{ writeNull(); updateOpened(); updateTotal(); saveInfo(); } public function loadInfo():void{ try { saveGame = SharedObject.getLocal("saveGame"); if (saveGame.data.bestScore == undefined){ writeNull(); } else { bestScore = saveGame.data.bestScore; solved = saveGame.data.solved; total = saveGame.data.total; }; } catch(error) { }; } public function updateOpened():void{ opened = 0; var _local1:int; while (_local1 < LEVELS) { if (solved[_local1]){ opened++; }; _local1++; }; opened = (opened + 3); if (opened > LEVELS){ opened = LEVELS; }; } public function getSolved():int{ var _local1:int; var _local2:int; while (_local2 < LEVELS) { if (solved[_local2]){ _local1++; }; _local2++; }; return (_local1); } } }//package main.game
Section 165
//Coin (main.items.Coin) package main.items { import flash.display.*; import main.physic.*; import flash.geom.*; import main.*; public class Coin extends Item { public function Coin(){ sprite = (new CoinSprite() as Sprite); sprite.name = "Coin"; addChild(sprite); } public function initBody():void{ var _local1:BodyShape = new BodyShape("ball", [8, new Point()]); _local1.shapes[0].isSensor = true; body = Root.link.createBody(7, _local1, x, y, this, this); } } }//package main.items
Section 166
//Item (main.items.Item) package main.items { import flash.display.*; import flash.events.*; import fl.transitions.*; import Box2D.Dynamics.*; import main.*; import fl.transitions.easing.*; public class Item extends Sprite { public var body:b2Body; public var sprite:Sprite; public var tween:Tween; public var alphaTween:Tween; public function removeItem():void{ if (body){ Root.link.destroyBody(body); }; tween = new Tween(this, "y", Elastic.easeOut, y, (y - 40), 1, true); tween.start(); tween.addEventListener(TweenEvent.MOTION_FINISH, finishTween); alphaTween = new Tween(this, "alpha", None.easeIn, 1, 0, 0.8, true); alphaTween.start(); } public function finishTween(_arg1:Event):void{ tween.removeEventListener(TweenEvent.MOTION_FINISH, finishTween); tween = null; alphaTween.stop(); alphaTween = null; if (parent){ parent.removeChild(this); }; } } }//package main.items
Section 167
//Key (main.items.Key) package main.items { import flash.display.*; import main.physic.*; import flash.geom.*; import main.game.*; import main.*; public class Key extends Item { public var disable:Boolean; public var door:Door; public function Key(_arg1:Door){ this.door = _arg1; _arg1.key = this; sprite = (new KeySprite() as Sprite); sprite.name = "Key"; sprite.color.gotoAndStop(_arg1.color); addChild(sprite); } public function initBody():void{ var _local1:BodyShape = new BodyShape("ball", [8, new Point()]); _local1.shapes[0].isSensor = true; body = Root.link.createBody(5, _local1, x, y, this, this); } public function openDoor():void{ disable = true; removeItem(); door.open(); } } }//package main.items
Section 168
//BasicMenu (main.menu.BasicMenu) package main.menu { import flash.display.*; import fl.transitions.*; import fl.transitions.easing.*; public class BasicMenu extends Sprite { private var hideTween:Tween; private var showTween:Tween; public static const TWEEN_TIME:Number = 0.7; public function finishShow(_arg1:TweenEvent):void{ unlockButtons(); showTween.removeEventListener(TweenEvent.MOTION_FINISH, finishShow); showTween = null; } public function hide():void{ lockButtons(); hideTween = new Tween(this, "y", Back.easeInOut, 0, 480, TWEEN_TIME, true); hideTween.start(); hideTween.addEventListener(TweenEvent.MOTION_FINISH, finishHide); } public function show():void{ lockButtons(); showTween = new Tween(this, "y", Back.easeInOut, -480, 0, TWEEN_TIME, true); showTween.start(); showTween.addEventListener(TweenEvent.MOTION_FINISH, finishShow); } public function finishHide(_arg1:TweenEvent):void{ unlockButtons(); hideTween.removeEventListener(TweenEvent.MOTION_FINISH, finishHide); hideTween = null; if (parent){ parent.removeChild(this); }; } public function lockButtons():void{ } public function unlockButtons():void{ } } }//package main.menu
Section 169
//Credits (main.menu.Credits) package main.menu { import flash.events.*; import main.*; public class Credits extends BasicMenu { private var menu:CreditsSprite; public function Credits(){ menu = new CreditsSprite(); addChild(menu); } private function mainMenu(_arg1:MouseEvent):void{ hide(); Root.link.showMainMenu(); } override public function unlockButtons():void{ menu.btnMainMenu.addEventListener(MouseEvent.MOUSE_DOWN, mainMenu); } override public function lockButtons():void{ menu.btnMainMenu.removeEventListener(MouseEvent.MOUSE_DOWN, mainMenu); } } }//package main.menu
Section 170
//KingURL (main.menu.KingURL) package main.menu { import flash.net.*; public class KingURL { public static var moreGamesURL:URLRequest = new URLRequest("http://www.king.com/servlet/SelectServlet?partner=midas_viral&target=%2Fgame%2Fsponsored-games%3Fref%3Dlevel-editor"); public static var hostGameURL:URLRequest = new URLRequest("http://www.king.com/servlet/SelectServlet?partner=midas_viral&target=%2Fwebsite_content.jsp%3Fref%3Dlevel-editor"); public static var sponsorURL:URLRequest = new URLRequest("http://www.king.com/servlet/SelectServlet?partner=midas_viral&target=%2Fgame%2Flevel-editor%3Fref%3Dlevel-editor_logo "); public static var solutionURL:URLRequest = new URLRequest("http://www.king.com/servlet/SelectServlet?partner=midas_viral&target=%2Fgame%2Flevel-editor%3Fref%3Dlevel-editor_walkthrough"); public static var scoresURL:URLRequest; } }//package main.menu
Section 171
//LevelButton (main.menu.LevelButton) package main.menu { import flash.display.*; import flash.events.*; import main.game.*; import main.*; public class LevelButton extends MovieClip { private var levelNum:int; private var editor:LevelMenu; private var bestScore:int;// = 0 private var button:LevelButtonSprite; public function LevelButton(_arg1:LevelMenu, _arg2:int=0){ this.editor = _arg1; this.levelNum = _arg2; button = new LevelButtonSprite(); button.num.text = _arg2; addChild(button); } public function outButton(_arg1:MouseEvent):void{ editor.menu.fldLevel.text = "Level"; editor.menu.fldScore.text = "Best Score: 0"; editor.menu.preview.gotoAndStop(41); editor.resetStars(); } public function eraseResult():void{ button.gotoAndStop(1); button.stars.gotoAndStop(1); } public function solved(_arg1:int):void{ button.gotoAndStop(2); this.bestScore = _arg1; var _local2:int = Level[("LEVEL_" + levelNum)].best; var _local3 = 1; if (_arg1 >= (_local2 * 0.2)){ _local3 = 2; }; if (_arg1 >= (_local2 * 0.5)){ _local3 = 3; }; if (_arg1 >= (_local2 * 0.8)){ _local3 = 4; }; button.stars.gotoAndStop(_local3); } public function overButton(_arg1:MouseEvent):void{ editor.menu.fldLevel.text = ("Level " + levelNum); editor.menu.fldScore.text = ("Best Score: " + bestScore); editor.menu.preview.gotoAndStop(levelNum); var _local2:int = Level[("LEVEL_" + levelNum)].best; var _local3 = 1; if (bestScore >= (_local2 * 0.2)){ _local3 = 2; }; if (bestScore >= (_local2 * 0.5)){ _local3 = 3; }; if (bestScore >= (_local2 * 0.8)){ _local3 = 4; }; editor.showStars(_local3); } public function opened():void{ button.gotoAndStop(1); button.btn.addEventListener(MouseEvent.CLICK, startLevel); button.btn.addEventListener(MouseEvent.MOUSE_OVER, overButton); button.btn.addEventListener(MouseEvent.MOUSE_OUT, outButton); button.btn.enabled = true; alpha = 1; } public function closed():void{ button.btn.removeEventListener(MouseEvent.CLICK, startLevel); button.btn.removeEventListener(MouseEvent.MOUSE_OVER, overButton); button.btn.removeEventListener(MouseEvent.MOUSE_OUT, outButton); button.btn.enabled = false; alpha = 0.5; } private function startLevel(_arg1:MouseEvent):void{ Root.link.levelNum = levelNum; Root.link.removeChild(editor); var _local2:Object = Level[("LEVEL_" + levelNum)]; if (editor.editor){ Root.link.testMode = true; Root.link.editLevel(_local2); } else { Root.link.testMode = false; Root.link.startLevel(_local2); }; } } }//package main.menu
Section 172
//LevelMenu (main.menu.LevelMenu) package main.menu { import flash.events.*; import main.*; import flash.net.*; public class LevelMenu extends BasicMenu { public var buttons:Array; public var menu:LevelMenuSprite; public var editor:Boolean; public function LevelMenu(_arg1:Boolean=false){ this.editor = _arg1; menu = new LevelMenuSprite(); addChild(menu); setLevelButtons(); menu.preview.gotoAndStop(41); menu.btnErase.addEventListener(MouseEvent.MOUSE_DOWN, eraseResults); } public function showStars(_arg1:int):void{ menu.stars.gotoAndStop(_arg1); } public function gotoKing(_arg1:MouseEvent):void{ navigateToURL(KingURL.sponsorURL, "_blank"); } private function eraseResults(_arg1:MouseEvent):void{ Root.link.score.clear(); resetStars(); refresh(); var _local2:int; while (_local2 < buttons.length) { buttons[_local2].eraseResult(); _local2++; }; } public function resetStars():void{ menu.stars.gotoAndStop(1); } override public function lockButtons():void{ menu.btnMainMenu.removeEventListener(MouseEvent.MOUSE_DOWN, mainMenu); } private function mainMenu(_arg1:MouseEvent):void{ hide(); Root.link.showMainMenu(); } public function refresh():void{ var i:int; while (i < buttons.length) { buttons[i].closed(); i = (i + 1); }; i = 0; while (i < Root.link.score.opened) { buttons[i].opened(); i = (i + 1); }; var _local2 = Root.link.score; with (_local2) { i = 0; while (i < 40) { if (solved[i]){ buttons[i].solved(bestScore[i]); }; i++; }; }; menu.fldTotal.text = ("Total Score: " + Root.link.score.total); } override public function unlockButtons():void{ menu.btnMainMenu.addEventListener(MouseEvent.MOUSE_DOWN, mainMenu); } public function setLevelButtons():void{ var _local1:LevelButton; var _local3:int; var _local6:int; var _local7:int; buttons = new Array(); var _local2 = 20; _local3 = 75; var _local4 = 41; var _local5 = 82; _local6 = 0; while (_local6 < 4) { _local7 = 0; while (_local7 < 10) { _local1 = new LevelButton(this, ((_local6 * 10) + (_local7 + 1))); _local1.x = (_local2 + (_local7 * _local4)); _local1.y = (_local3 + (_local6 * _local5)); addChild(_local1); buttons.push(_local1); _local7++; }; _local6++; }; } } }//package main.menu
Section 173
//MainMenu (main.menu.MainMenu) package main.menu { import flash.events.*; import main.*; import flash.net.*; public class MainMenu extends BasicMenu { public var menu:MainMenuSprite; public function MainMenu(){ menu = new MainMenuSprite(); addChild(menu); } private function switchMusic(_arg1:MouseEvent):void{ var event = _arg1; var _local3 = Root.link.music; with (_local3) { if (enabled){ switchMusic(false); } else { switchMusic(true); }; }; refresh(); } private function hiScores(_arg1:MouseEvent):void{ Root.link.agi.initAGUI({onClose:closeHandler}); Root.link.agi.showScoreboardList(); } public function refresh():void{ var _local2 = Root.link.music; with (_local2) { if (enabled){ menu.btnMusic.alpha = 1; } else { menu.btnMusic.alpha = 0.5; }; }; _local2 = Root.link; with (_local2) { if (sound){ menu.btnSound.alpha = 1; } else { menu.btnSound.alpha = 0.5; }; }; } private function moreGames(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://armorgames.com/"), "_blank"); } private function levelEditor(_arg1:MouseEvent):void{ hide(); Root.link.selectLevel(true); } private function closeHandler():void{ } private function startGame(_arg1:MouseEvent):void{ hide(); Root.link.selectLevel(); } override public function lockButtons():void{ var _local2 = menu; with (_local2) { btnEditor.removeEventListener(MouseEvent.MOUSE_DOWN, levelEditor); btnStartGame.removeEventListener(MouseEvent.MOUSE_DOWN, startGame); btnHiScores.removeEventListener(MouseEvent.MOUSE_DOWN, hiScores); btnMoreGames.removeEventListener(MouseEvent.MOUSE_DOWN, moreGames); btnCredits.removeEventListener(MouseEvent.MOUSE_DOWN, credits); btnSound.removeEventListener(MouseEvent.MOUSE_DOWN, switchSound); btnMusic.removeEventListener(MouseEvent.MOUSE_DOWN, switchMusic); btnHost.removeEventListener(MouseEvent.MOUSE_DOWN, hostThisGame); btnArmor.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArmor); }; } public function hostThisGame(_arg1:MouseEvent):void{ navigateToURL(KingURL.hostGameURL); } private function credits(_arg1:MouseEvent):void{ hide(); Root.link.showCredits(); } private function switchSound(_arg1:MouseEvent):void{ var event = _arg1; var _local3 = Root.link; with (_local3) { if (sound){ sound = false; } else { sound = true; }; }; refresh(); } public function gotoArmor(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://armorgames.com/"), "_blank"); } override public function unlockButtons():void{ var _local2 = menu; with (_local2) { btnEditor.addEventListener(MouseEvent.MOUSE_DOWN, levelEditor); btnStartGame.addEventListener(MouseEvent.MOUSE_DOWN, startGame); btnHiScores.addEventListener(MouseEvent.MOUSE_DOWN, hiScores); btnMoreGames.addEventListener(MouseEvent.MOUSE_DOWN, moreGames); btnCredits.addEventListener(MouseEvent.MOUSE_DOWN, credits); btnSound.addEventListener(MouseEvent.MOUSE_DOWN, switchSound); btnMusic.addEventListener(MouseEvent.MOUSE_DOWN, switchMusic); btnHost.addEventListener(MouseEvent.MOUSE_DOWN, hostThisGame); btnArmor.addEventListener(MouseEvent.MOUSE_DOWN, gotoArmor); }; } } }//package main.menu
Section 174
//BodyShape (main.physic.BodyShape) package main.physic { import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; public class BodyShape { public var shapes:Array; public static const physScale:Number = 30; public function BodyShape(_arg1:String, _arg2:Array, _arg3:Number=0, _arg4:Number=1.2, _arg5:Number=0):void{ shapes = new Array(); create(_arg1, _arg2, _arg3, _arg4, _arg5); } public function create(_arg1:String, _arg2:Array, _arg3:Number=0, _arg4:Number=1.2, _arg5:Number=0):void{ var _local6:b2ShapeDef; var _local7:Number; var _local8:Number; var _local9:b2Vec2; var _local10:Number; var _local11:int; if (_arg1 == "ball"){ _local6 = new b2CircleDef(); _local6.radius = (_arg2[0] / physScale); _local6.localPosition = new b2Vec2((_arg2[1].x / physScale), (_arg2[1].y / physScale)); }; if (_arg1 == "box"){ _local7 = ((_arg2[0] / physScale) / 2); _local8 = ((_arg2[1] / physScale) / 2); _local9 = new b2Vec2((_local7 + (_arg2[2].x / physScale)), (_local8 + (_arg2[2].y / physScale))); _local6 = new b2PolygonDef(); _local6.SetAsOrientedBox(_local7, _local8, _local9); }; if (_arg1 == "limb"){ _local7 = ((_arg2[0] / physScale) / 2); _local8 = ((_arg2[1] / physScale) / 2); _local9 = new b2Vec2((_arg2[2].x / physScale), (_arg2[2].y / physScale)); _local6 = new b2PolygonDef(); _local6.SetAsOrientedBox(_local7, _local8, _local9); }; if (_arg1 == "poly"){ _local6 = new b2PolygonDef(); _local6.vertexCount = _arg2.length; _local11 = 0; while (_local11 < _arg2.length) { _local6.vertices[_local11].Set((_arg2[_local11][0] / physScale), (_arg2[_local11][1] / physScale)); _local11++; }; }; _local6.density = _arg3; _local6.friction = _arg4; _local6.restitution = _arg5; shapes.push(_local6); } } }//package main.physic
Section 175
//ContactListener (main.physic.ContactListener) package main.physic { import Box2D.Dynamics.*; import Box2D.Common.Math.*; import main.*; import Box2D.Collision.*; import main.effects.*; public class ContactListener extends b2ContactListener { public static const MAX_KICK:Number = 6.5; public function contact(_arg1:b2Body):void{ switch (_arg1.bodyName){ case 1: if (!Root.link.hero.isDead){ if (Root.link.sound){ Sounds.blowing.play(); }; Root.link.physWorld.world.m_lock = false; Root.link.hero.dead(); }; break; case 2: if (!_arg1.classLink.isDead){ if (Root.link.sound){ Sounds.blowing.play(); }; Root.link.physWorld.world.m_lock = false; _arg1.classLink.dead(); }; break; }; } override public function Add(_arg1:b2ContactPoint):void{ var _local2:b2Vec2; var _local3:b2Vec2; if ((((_arg1.shape1.GetBody().bodyName == 2)) && ((_arg1.shape2.GetBody().bodyName == 2)))){ _local2 = _arg1.shape1.GetBody().GetLinearVelocity(); _local3 = _arg1.shape2.GetBody().GetLinearVelocity(); _local2.Abs(); _local3.Abs(); if ((((((((_local2.x > MAX_KICK)) || ((_local2.y > MAX_KICK)))) || ((_local3.x > MAX_KICK)))) || ((_local3.y > MAX_KICK)))){ if (Root.link.sound){ Sounds.blowing.play(); }; Root.link.physWorld.world.m_lock = false; _arg1.shape1.GetBody().classLink.dead(); _arg1.shape2.GetBody().classLink.dead(); return; }; }; } override public function Persist(_arg1:b2ContactPoint):void{ if (_arg1.shape1.GetBody().bodyName == 8){ if (_arg1.separation < -0.2){ contact(_arg1.shape2.GetBody()); }; } else { if (_arg1.shape2.GetBody().bodyName == 8){ if (_arg1.separation < -0.2){ contact(_arg1.shape1.GetBody()); }; }; }; } } }//package main.physic
Section 176
//PhysicWorld (main.physic.PhysicWorld) package main.physic { import flash.display.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; import Box2D.Common.*; import Box2D.Collision.*; public class PhysicWorld extends MovieClip { public var world:b2World; public var debugSprite:Sprite; public var debugBack:Sprite; public static var iterations:int = 10; public static var physScale:Number = 30; public static var timeStep:Number = 0; public static var PI:Number = 57.2957795130823; public function PhysicWorld(_arg1:Number):void{ var _local2:b2AABB = new b2AABB(); var _local3:b2Vec2 = new b2Vec2(0, _arg1); var _local4:Boolean; _local2.lowerBound.Set((-1000 / physScale), (-1000 / physScale)); _local2.upperBound.Set((1000 / physScale), (1000 / physScale)); world = new b2World(_local2, _local3, _local4); var _local5:ContactListener = new ContactListener(); world.SetContactListener(_local5); } public function setDebugMode():void{ debugSprite = new Sprite(); backSprite = new Sprite(); backSprite.graphics.beginFill(0x666666, 0.5); backSprite.graphics.drawRect(5, 5, 540, 468); backSprite.graphics.endFill(); var _local1:b2DebugDraw = new b2DebugDraw(); _local1.m_sprite = debugSprite; _local1.m_drawScale = 30; _local1.m_fillAlpha = 0.5; _local1.m_lineThickness = 0; _local1.m_drawFlags = (b2DebugDraw.e_shapeBit | b2DebugDraw.e_jointBit); world.SetDebugDraw(_local1); addChild(backSprite); addChild(debugSprite); } public function worldStep():void{ var _local2:Number; var _local3:Sprite; world.Step(timeStep, iterations); var _local1:b2Body = world.m_bodyList; while (_local1) { if (_local1.isDynamic){ _local2 = (_local1.GetAngle() * PI); _local3 = _local1.m_userData; _local3.x = (_local1.GetPosition().x * physScale); _local3.y = (_local1.GetPosition().y * physScale); if ((((_local1.bodyName == 2)) && (_local3.sprite.thorns))){ _local3.sprite.thorns.rotation = _local2; } else { _local3.rotation = _local2; }; }; _local1 = _local1.m_next; }; } } }//package main.physic
Section 177
//Render (main.render.Render) package main.render { import flash.display.*; import flash.geom.*; public class Render { public static function spriteRender(_arg1:Sprite, _arg2:Boolean=false):BitmapData{ var _local3:Rectangle; var _local4:BitmapData; var _local6:DisplayObjectContainer; var _local7:int; _local3 = _arg1.getRect(_arg1); _local4 = new BitmapData(_arg1.width, _arg1.height, _arg2, 0); var _local5:Matrix = new Matrix(); _local6 = _arg1.parent; _local7 = _local6.getChildIndex(_arg1); var _local8:Shape = new Shape(); _local5.translate(-(_local3.x), -(_local3.y)); _local4.draw(_arg1, _local5, null, null, null, false); _local8.x = (_local3.x + _arg1.x); _local8.y = (_local3.y + _arg1.y); _local8.graphics.beginBitmapFill(_local4, null, false, false); _local8.graphics.drawRect(0, 0, _local3.width, _local3.height); _local8.graphics.endFill(); _local6.removeChild(_arg1); _local6.addChildAt(_local8, _local7); return (_local4); } public static function renderDisplay(_arg1:Sprite):BitmapData{ var _local2:BitmapData = new BitmapData(640, 480, false, 10346491); _local2.draw(_arg1); return (_local2); } } }//package main.render
Section 178
//BackWindow (main.windows.BackWindow) package main.windows { import flash.events.*; import main.*; public class BackWindow extends SimpleWindow { public var window:BackWindowSprite; public function BackWindow(){ window = new BackWindowSprite(); addChild(window); window.btnAgain.addEventListener(MouseEvent.CLICK, playAgain); window.btnEditor.addEventListener(MouseEvent.CLICK, backToEditor); } override public function keyPress(_arg1:KeyboardEvent):void{ if (((parent) && ((_arg1.keyCode == 82)))){ Root.link.restartLevel(); }; } public function playAgain(_arg1:MouseEvent):void{ Root.link.restartLevel(); } public function backToEditor(_arg1:MouseEvent):void{ Root.link.stopGame(true); Root.link.editLevel(Root.link.level); } } }//package main.windows
Section 179
//BlockButton (main.windows.BlockButton) package main.windows { import flash.display.*; import flash.events.*; import fl.transitions.*; import main.*; import main.blocks.*; import fl.transitions.easing.*; public class BlockButton extends Sprite { public var tooltip:ToolTip; public var hideTween:Tween; public var active:Boolean; public var block:Sprite; public var replace:ReplaceBlock; public var amount:int; public var options:int; public var showTween:Tween; public var button:BlockButtonSprite; public var type:String; public static const SHOW_TIME:Number = 0.2; public function BlockButton(_arg1:String, _arg2:int, _arg3:int){ this.type = _arg1; this.amount = _arg2; this.options = _arg3; button = new BlockButtonSprite(); button.amount.text = ("x " + _arg2); addChild(button); tooltip = new ToolTip(); tooltip.x = -5; tooltip.y = 17; tooltip.alpha = 0; addChild(tooltip); switch (_arg1){ case "Simple": block = new SimplePreview(); tooltip.caption.text = "Simple Block"; break; case "Timeout": block = new TimeoutPreview(); tooltip.caption.text = "Timeout Block"; break; case "Moving": block = new MovingPreview(); tooltip.caption.text = "Moving Block"; break; case "Thorn": block = new ThornsPreview(); tooltip.caption.text = "Spines Block"; break; case "Replace": block = new ReplacePreview(); tooltip.caption.text = "Replaceable Block"; break; }; block.x = 23; block.y = 17; block.gotoAndStop(_arg3); button.addChild(block); button.border.alpha = 0; button.addEventListener(MouseEvent.MOUSE_OVER, mouseOver); button.addEventListener(MouseEvent.MOUSE_OUT, mouseOut); button.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown); } public function setActive(_arg1:Boolean):void{ var flag = _arg1; active = flag; if (flag){ if (Root.link.editor){ var _local3 = Root.link.editor; with (_local3) { if (activeBlock != this){ activeBlock.setActive(false); setActiveBlock(this); }; }; }; button.border.alpha = 1; } else { button.border.alpha = 0; }; } public function mouseOver(_arg1:MouseEvent):void{ if (!active){ button.border.alpha = 0.5; }; showTween = new Tween(tooltip, "alpha", None.easeNone, tooltip.alpha, 1, SHOW_TIME, true); showTween.addEventListener(TweenEvent.MOTION_FINISH, stopShow); showTween.start(); if (hideTween){ hideTween.stop(); hideTween.removeEventListener(TweenEvent.MOTION_FINISH, stopHide); hideTween = null; }; } public function decrease():void{ amount--; button.amount.text = ("x " + amount); if (amount == 0){ deactivate(); }; } public function stopShow(_arg1:TweenEvent):void{ showTween.removeEventListener(TweenEvent.MOTION_FINISH, stopShow); showTween = null; } public function mouseDown(_arg1:MouseEvent):void{ setActive(true); } public function mouseOut(_arg1:MouseEvent):void{ if (!active){ button.border.alpha = 0; }; hideTween = new Tween(tooltip, "alpha", None.easeNone, tooltip.alpha, 0, SHOW_TIME, true); hideTween.addEventListener(TweenEvent.MOTION_FINISH, stopHide); hideTween.start(); if (showTween){ showTween.stop(); showTween.removeEventListener(TweenEvent.MOTION_FINISH, stopShow); showTween = null; }; } public function stopHide(_arg1:TweenEvent):void{ hideTween.removeEventListener(TweenEvent.MOTION_FINISH, stopHide); hideTween = null; } public function deactivate():void{ button.removeEventListener(MouseEvent.MOUSE_OVER, mouseOver); button.removeEventListener(MouseEvent.MOUSE_OUT, mouseOut); button.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDown); button = null; if (showTween){ showTween.removeEventListener(TweenEvent.MOTION_FINISH, stopShow); showTween = null; }; if (hideTween){ hideTween.removeEventListener(TweenEvent.MOTION_FINISH, stopHide); hideTween = null; }; parent.removeChild(this); Root.link.editor.nextActiveButton(); } } }//package main.windows
Section 180
//FinalWindow (main.windows.FinalWindow) package main.windows { import flash.events.*; import main.*; import flash.net.*; public class FinalWindow extends SimpleWindow { public var window:FinalWindowSprite; public function FinalWindow(){ window = new FinalWindowSprite(); addChild(window); window.btnSubmit.addEventListener(MouseEvent.CLICK, submitScore); window.btnArmor.addEventListener(MouseEvent.CLICK, gotoArmor); } public function submitScore(_arg1:MouseEvent):void{ Root.link.agi.showScoreboardSubmit(Root.link.score.total); Root.link.stopGame(); } public function refresh():void{ window.fldTotal.text = ("Total Score: " + Root.link.score.total); } public function gotoArmor():void{ navigateToURL(new URLRequest("http://armorgames.com/"), "_blank"); } } }//package main.windows
Section 181
//GameOverWindow (main.windows.GameOverWindow) package main.windows { import flash.events.*; import main.*; import main.menu.*; import flash.net.*; public class GameOverWindow extends SimpleWindow { public var window:GameOverSprite; public function GameOverWindow(){ solution = new URLRequest("http://sigmasgames.com/level_editor/solution.html"); window = new GameOverSprite(); addChild(window); window.btnAgain.addEventListener(MouseEvent.CLICK, playAgain); window.btnSolution.visible = false; } override public function keyPress(_arg1:KeyboardEvent):void{ if (((parent) && ((_arg1.keyCode == 82)))){ playAgain(null); }; } public function playAgain(_arg1:MouseEvent):void{ Root.link.restartLevel(); } public function seeSolution(_arg1:MouseEvent):void{ navigateToURL(KingURL.solutionURL, "_blank"); } } }//package main.windows
Section 182
//GamePanel (main.windows.GamePanel) package main.windows { import flash.display.*; import main.*; public class GamePanel extends Sprite { public var buttons:Sprite; private var panel:GamePanelSprite; public var timer:int; public var activeBlock:BlockButton; public var levelTime:int; public static const BUTTON_STEP:int = 41; public function GamePanel(_arg1:int, _arg2:int, _arg3:Array, _arg4:int, _arg5:int){ var _local6:BlockButton; super(); x = _arg1; y = _arg2; panel = new GamePanelSprite(); addChild(panel); buttons = new Sprite(); buttons.x = 6; buttons.y = 54; panel.addChild(buttons); levelTime = 0; timer = _arg4; panel.time.text = timer; panel.levelNum.text = ("Level " + _arg5); var _local7:int; while (_local7 < _arg3.length) { _local6 = new BlockButton(_arg3[_local7].type, _arg3[_local7].amount, _arg3[_local7].options); _local6.y = (_local7 * BUTTON_STEP); buttons.addChild(_local6); _local7++; }; if (_arg3.length != 0){ _local6 = buttons.getChildAt(0); _local6.setActive(true); setActiveBlock(_local6); } else { Root.link.cursor.setFreeMode(); }; } public function nextActiveButton():void{ var _local2:BlockButton; var _local1:int; while (_local1 < buttons.numChildren) { buttons.getChildAt(_local1).y = (_local1 * BUTTON_STEP); _local1++; }; if (buttons.numChildren == 0){ Root.link.cursor.setFreeMode(); } else { _local2 = buttons.getChildAt(0); setActiveBlock(_local2); _local2.setActive(true); }; } public function setActiveBlock(_arg1:BlockButton):void{ activeBlock = _arg1; Root.link.cursor.setGameBlock(_arg1); } public function refreshTimer():void{ panel.time.text = timer; } public function timerTick():void{ levelTime++; timer--; panel.time.text = timer; } } }//package main.windows
Section 183
//SimpleWindow (main.windows.SimpleWindow) package main.windows { import flash.display.*; import flash.events.*; import fl.transitions.*; import main.*; import fl.transitions.easing.*; public class SimpleWindow extends Sprite { public var tween:Tween; public function keyPress(_arg1:KeyboardEvent):void{ } public function finishTween(_arg1:TweenEvent):void{ tween.removeEventListener(TweenEvent.MOTION_FINISH, finishTween); tween = null; } public function show():void{ tween = new Tween(this, "y", Back.easeOut, -640, 0, 0.6, true); tween.start(); tween.addEventListener(TweenEvent.MOTION_FINISH, finishTween); Root.link.gameStage.addEventListener(KeyboardEvent.KEY_DOWN, keyPress); } } }//package main.windows
Section 184
//StatWindow (main.windows.StatWindow) package main.windows { import flash.events.*; import main.game.*; import main.*; import flash.ui.*; public class StatWindow extends SimpleWindow { public var window:StatWindowSprite; public function StatWindow(){ window = new StatWindowSprite(); addChild(window); window.btnNext.addEventListener(MouseEvent.CLICK, nextLevel); window.btnSelect.addEventListener(MouseEvent.CLICK, levelSelect); } public function nextLevel(_arg1:MouseEvent):void{ Root.link.nextLevel(); } override public function keyPress(_arg1:KeyboardEvent):void{ if (((parent) && ((_arg1.keyCode == Keyboard.SPACE)))){ nextLevel(null); }; } public function levelSelect(_arg1:MouseEvent):void{ Root.link.stopGame(); } public function refresh(_arg1:int, _arg2:int, _arg3:Boolean, _arg4:int):void{ var _local5:int = _arg1; if ((((_arg2 == 0)) && (!(_arg3)))){ window.statistic.text = "\n"; } else { window.statistic.text = ""; }; window.statistic.text = (window.statistic.text + (("Time Left +" + _arg1) + "\n")); if (_arg3){ _local5 = (_local5 + ScoreSystem.COINS_BONUS); window.statistic.text = (window.statistic.text + (("All Coins Bonus +" + ScoreSystem.COINS_BONUS) + "\n")); }; if (_arg2){ _local5 = (_local5 + (_arg2 * ScoreSystem.KILL_BONUS)); window.statistic.text = (window.statistic.text + ("Killed Enemies +" + (_arg2 * ScoreSystem.KILL_BONUS))); }; window.statistic.text = (window.statistic.text + "\n\n"); window.statistic.text = (window.statistic.text + (("Level Score: " + _local5) + "\n")); window.statistic.text = (window.statistic.text + ("Total Score: " + _arg4)); } } }//package main.windows
Section 185
//Window (main.windows.Window) package main.windows { import flash.display.*; import flash.events.*; import main.*; public class Window extends Sprite { private var window:WindowSprite; public function Window(){ super(); window = new WindowSprite(); addChild(window); var _local2 = window; with (_local2) { btnRestart.addEventListener(MouseEvent.CLICK, restartGame); btnLevels.addEventListener(MouseEvent.CLICK, showGameMenu); btnEditor.addEventListener(MouseEvent.CLICK, backToEditor); btnSound.addEventListener(MouseEvent.MOUSE_DOWN, switchSound); btnMusic.addEventListener(MouseEvent.MOUSE_DOWN, switchMusic); }; } public function restartGame(_arg1:MouseEvent):void{ Root.link.restartLevel(); } public function refresh():void{ var _local2 = Root.link.music; with (_local2) { if (enabled){ window.btnMusic.alpha = 1; } else { window.btnMusic.alpha = 0.5; }; }; _local2 = Root.link; with (_local2) { if (sound){ window.btnSound.alpha = 1; } else { window.btnSound.alpha = 0.5; }; }; } public function setWindowMode(_arg1:String):void{ var mode = _arg1; var _local3 = window; with (_local3) { switch (mode){ case "GamePlay": btnRestart.visible = true; btnLevels.visible = true; btnEditor.visible = false; btnSound.visible = true; btnMusic.visible = true; switchBack.visible = true; break; case "Editor": btnRestart.visible = false; btnLevels.visible = true; btnEditor.visible = false; btnSound.visible = false; btnMusic.visible = false; switchBack.visible = false; break; case "Test": btnRestart.visible = true; btnLevels.visible = false; btnEditor.visible = true; btnSound.visible = true; btnMusic.visible = true; switchBack.visible = true; break; }; }; refresh(); } private function switchMusic(_arg1:MouseEvent):void{ var event = _arg1; var _local3 = Root.link.music; with (_local3) { if (enabled){ switchMusic(false); } else { switchMusic(true); }; }; refresh(); } private function switchSound(_arg1:MouseEvent):void{ var event = _arg1; var _local3 = Root.link; with (_local3) { if (sound){ sound = false; } else { sound = true; }; }; refresh(); } public function showGameMenu(_arg1:MouseEvent):void{ Root.link.stopGame(); } public function backToEditor(_arg1:MouseEvent):void{ Root.link.stopGame(true); Root.link.editLevel(Root.link.level); } } }//package main.windows
Section 186
//Preloader (main.Preloader) package main { import flash.events.*; import flash.display.*; import flash.text.*; import flash.utils.*; import flash.system.*; public class Preloader extends MovieClip { private var preloader:PreloadBar; public static var agi_url:String = "http://agi.armorgames.com/assets/agi/AGI.swf"; public function Preloader(){ var _local1:TextField; super(); Security.allowDomain(agi_url); Security.allowInsecureDomain(agi_url); if (loaderInfo.url.indexOf("armorgames.com") != -1){ stage.displayState = "normal"; stage.frameRate = 38; stage.stageFocusRect = false; stage.scaleMode = "noScale"; addEventListener(Event.ENTER_FRAME, checkFrame); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener); preloader = new PreloadBar(); addChild(preloader); } else { _local1 = new TextField(); _local1.textColor = 0xFFFFFF; _local1.autoSize = "center"; _local1.text = "Incorrect URL"; _local1.selectable = false; _local1.x = 20; _local1.y = 20; addChild(_local1); }; } public function progressListener(_arg1:ProgressEvent):void{ var _local2:Number = _arg1.bytesLoaded; var _local3:Number = _arg1.bytesTotal; preloader.progress.scaleX = (_local2 / _local3); } private function checkFrame(_arg1:Event):void{ if (currentFrame == totalFrames){ removeEventListener(Event.ENTER_FRAME, checkFrame); completeListener(); }; } private function completeListener(_arg1:Event=null):void{ stop(); loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressListener); removeChild(preloader); var _local2:Class = (getDefinitionByName("main.Root") as Class); addChild((new _local2(stage) as DisplayObject)); } } }//package main
Section 187
//Root (main.Root) package main { import flash.display.*; import flash.events.*; import fl.transitions.*; import Box2D.Dynamics.*; import main.physic.*; import Box2D.Dynamics.Joints.*; import main.field.*; import Box2D.Common.Math.*; import flash.geom.*; import main.windows.*; import main.game.*; import main.chars.*; import Box2D.Collision.Shapes.*; import main.menu.*; import main.display.*; import main.effects.*; import flash.utils.*; import main.editor.*; import main.items.*; import main.blocks.*; import flash.net.*; import main.editor.panels.*; import fl.transitions.easing.*; import main.render.*; import flash.ui.*; import flash.filters.*; public class Root extends MovieClip { public var coins:int; public var levelMenu:LevelMenu; public var hero:Sprite; public var agi; public var sound:Boolean;// = true public var exit:Exit; public var enemies:Array; public var gameStage:Stage; public var bgTween:Tween; public var background:Background; public var bitmap:BitmapData; public var music:Music; public var timer:Timer; public var stat:StatWindow; public var cursor:Cursor; public var levelNum:int; public var testMode:Boolean; public var intro:MovieClip; public var editor:Sprite; public var second:int;// = 0 public var filterCount:int;// = 0 public var level:Object; public var blocks:Array; public var triggerKey:Key; public var score:ScoreSystem; public var physWorld:PhysicWorld; public var credits:Credits; public var mainMenu:MainMenu; public var time:int; public var editMode:Boolean; public var kills:int; public var finishMode:Boolean; public var kongregate; public var gameOver:GameOverWindow; public var game:DisplayList; public var field:Field; public var coinsInLevel:int; public static const CELL_SIZE:int = 36; public static const FINISH_DELAY:int = 100; public static const FPS:int = 38; public static const GRAVITY:Number = 12; public static const FIELD_POS:Point = new Point(5, 5); public static const FAIL_DELAY:int = 1000; public static const physScale:int = 30; public static const FIELD_ROWS:int = 13; public static const FIELD_COLS:int = 15; public static var link:Root; public static var devKey:String = "fef3f162bc9c8dc6acde04a75915ad42"; public static var gameKey:String = "level-editor"; public function Root(_arg1:Stage){ addEventListener(Event.ADDED_TO_STAGE, gameInit); _arg1.stageFocusRect = false; _arg1.frameRate = 38; this.gameStage = _arg1; link = this; } public function createJoint(_arg1:b2RevoluteJointDef):void{ physWorld.world.CreateJoint(_arg1); } public function testLevel():void{ level = LevelBuilder.getLevel(link); restartLevel(); } public function stopGame(_arg1:Boolean=false):void{ var restart = _arg1; if (editMode){ removeEditorEvents(); } else { removeGameEvents(); }; hero.eraseHeroInfo(true); field.eraseLayer(); field.eraseField(); game.eraseLayers(); var i:int; while (i < enemies.length) { enemies[i] = null; i = (i + 1); }; var _local3 = physWorld.world; with (_local3) { while (m_bodyList) { destroyBody(m_bodyList, true); }; }; hero = null; enemies = null; field = null; editor = null; if (bitmap){ filterCount = 0; bitmap.dispose(); bitmap = null; removeEventListener(Event.ENTER_FRAME, blur); }; if (timer){ timer.stop(); timer = null; }; if (!restart){ level = null; game.visible = false; selectLevel(levelMenu.editor); }; } public function playBgAnimation():void{ var _local1 = 1; while (_local1 <= 11) { background[("clip_" + _local1)].play(); _local1++; }; } public function showGameOver(_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER_COMPLETE, showGameOver); timer = null; if (sound){ Sounds.gameOver.play(); }; gameOver.show(); game.panelLayer.addChild(gameOver); } public function endOfArmorIntro(_arg1:Event):void{ if (intro.currentFrame == intro.totalFrames){ intro.removeEventListener(Event.ENTER_FRAME, endOfArmorIntro); intro.removeEventListener(MouseEvent.MOUSE_DOWN, gotoArmor); removeChild(intro); intro = new SigmaIntro(); addChild(intro); Sounds.intro.play(); intro.addEventListener(Event.ENTER_FRAME, endOfSigmaIntro); }; } private function gameInit(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, gameInit); intro = new ArmorVideo(); intro.x = 320; intro.y = 240; addChild(intro); intro.addEventListener(Event.ENTER_FRAME, endOfArmorIntro); intro.addEventListener(MouseEvent.MOUSE_DOWN, gotoArmor); } public function addEditorEvents():void{ addEventListener(Event.ENTER_FRAME, editorProgress); addEventListener(MouseEvent.MOUSE_DOWN, editorClick); gameStage.addEventListener(KeyboardEvent.KEY_DOWN, editorKeyPress); } public function initGame():void{ background = new Background(); refreshBgClouds(); cursor = new Cursor(CELL_SIZE); game = new DisplayList(); addChild(game); drawBorder(); mainMenu = new MainMenu(); levelMenu = new LevelMenu(); credits = new Credits(); levelMenu.cacheAsBitmap = true; credits.cacheAsBitmap = true; showMainMenu(); background.cacheAsBitmap = true; bgTween = new Tween(background, "alpha", None.easeNone, 0, 1, 0.4, true); bgTween.start(); bgTween.addEventListener(TweenEvent.MOTION_FINISH, finishBgShow); physWorld = new PhysicWorld(GRAVITY); stat = new StatWindow(); congrats = new FinalWindow(); gameOver = new GameOverWindow(); var _local1:URLRequest = new URLRequest(Preloader.agi_url); var _local2:Loader = new Loader(); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); _local2.load(_local1); } public function editorClick(_arg1:MouseEvent):void{ var event = _arg1; var _local3 = cursor; with (_local3) { switch (status){ case "Erase": if (cell){ cell.eraseCell(); }; break; case "Block": if (cell){ cell.setBlock(tileType, tileShape); }; break; case "Thorn": if (cell){ cell.setThorn(item.currentFrame); }; break; case "Door": if (((visible) && (options.flag))){ addDoor(); }; break; case "Key": if (visible){ addKey(); }; break; case "Coin": if (visible){ addCoin(); }; break; case "Enemy": if (visible){ addEnemy(); }; break; case "Deco": if (visible){ addDeco(); }; break; case "Cursor": if (visible){ mousePress(); }; break; }; }; } public function addDecoration():void{ var sprite:DecoSprite; var i:*; var _local2 = level; with (_local2) { i = 0; while (i < staticBcg.length) { sprite = new staticBcg[i].type(); sprite.x = staticBcg[i].x; sprite.y = staticBcg[i].y; game.bcgStatic.drawChild(sprite); if (staticBcg[i].flip){ sprite.scaleX = -1; sprite.flip = true; }; i++; }; i = 0; while (i < animateBcg.length) { sprite = (new animateBcg[i].type() as DecoSprite); sprite.x = animateBcg[i].x; sprite.y = animateBcg[i].y; game.bcgAnimate.addChild(sprite); if (animateBcg[i].flip){ sprite.scaleX = -1; sprite.flip = true; }; i++; }; }; } public function getMap():void{ removeEditorEvents(); addChild(new CodePanel(field.getMap(link))); } public function addGameEvents():void{ addEventListener(Event.ENTER_FRAME, gameProgress); addEventListener(MouseEvent.MOUSE_DOWN, gameClick); addEventListener(MouseEvent.MOUSE_UP, gameRelease); } public function loadComplete(_arg1:Event):void{ agi = _arg1.currentTarget.content; addChild(agi); agi.init(devKey, gameKey); } public function startLevel(_arg1:Object):void{ if (testMode){ game.window.setWindowMode("Test"); } else { game.window.setWindowMode("GamePlay"); }; if (!_arg1){ return; }; this.level = _arg1; editMode = false; buildWorld(); editor = new GamePanel(548, 5, _arg1.blocks, _arg1.time, levelNum); hero = new Hero({x:0, y:0}, gameStage); buildLevel(); field.buildPhysicBodies(); exit.initBody(); game.bcgStatic.render(); addGameEvents(); second = 0; } public function showDisplayList():void{ game.lowLayer.addChild(exit); game.midLayer.addChild(field); game.hiLayer.addChild(hero); game.panelLayer.addChild(editor); game.panelLayer.addChild(cursor); game.visible = true; if (level){ addWalls(); addDecoration(); addEnemies(); addDoors(); addCoins(); }; } public function gameProgress(_arg1:Event):void{ var _local3:int; var _local4:int; physWorld.worldStep(); var _local2:int; while (_local2 < enemies.length) { enemies[_local2].moving(); _local2++; }; if (!finishMode){ hero.keyListener(); _local3 = ((mouseX - FIELD_POS.x) / CELL_SIZE); _local4 = ((mouseY - FIELD_POS.y) / CELL_SIZE); if ((((((((_local3 >= 0)) && ((_local3 < FIELD_COLS)))) && ((_local4 >= 0)))) && ((_local4 < FIELD_ROWS)))){ cursor.cell = field.getCell(_local3, _local4); cursor.x = cursor.cell.cellX; cursor.y = cursor.cell.cellY; cursor.visible = true; } else { cursor.cell = null; cursor.visible = false; }; } else { if (cursor.visible){ cursor.visible = false; }; }; second++; if (second == FPS){ second = 0; if (editor.timer > 0){ editor.timerTick(); } else { levelFail(); }; }; } public function removeGameEvents():void{ removeEventListener(Event.ENTER_FRAME, gameProgress); removeEventListener(MouseEvent.MOUSE_DOWN, gameClick); removeEventListener(MouseEvent.MOUSE_UP, gameRelease); } public function nextLevel():void{ levelNum++; stopGame(); startLevel(Level[("LEVEL_" + levelNum)]); } public function finishBgShow(_arg1:TweenEvent):void{ bgTween.removeEventListener(TweenEvent.MOTION_FINISH, finishBgShow); background.cacheAsBitmap = false; } public function setDebugMode():void{ game.windowLayer.addChild(physWorld); physWorld.setDebugMode(); } public function addEnemies():void{ var _local2:Enemy; var _local1:int; while (_local1 < level.enemies.length) { _local2 = new Enemy(level.enemies[_local1]); enemies.push(_local2); game.chars.addChild(_local2); _local1++; }; } public function addEnemy():void{ cursor.options.x = mouseX; cursor.options.y = mouseY; var _local1:Enemy = new Enemy(cursor.options); enemies.push(_local1); game.chars.addChild(_local1); } public function addDoors():void{ var _local1:Door; var _local2:Key; var _local3:int; while (_local3 < level.doors.length) { _local1 = new Door(level.doors[_local3]); game.doors.addChild(_local1); _local1.initBody(); _local2 = new Key(_local1); _local2.x = level.doors[_local3].keyX; _local2.y = level.doors[_local3].keyY; game.items.addChild(_local2); _local2.initBody(); _local3++; }; } public function blur(_arg1:Event):void{ bitmap.applyFilter(bitmap, new Rectangle(0, 0, 640, 480), new Point(), new BlurFilter(2, 2, 2)); filterCount++; if (filterCount == 10){ filterCount = 0; removeEventListener(Event.ENTER_FRAME, blur); }; } public function stopBgAnimation():void{ var _local1 = 1; while (_local1 <= 11) { background[("clip_" + _local1)].stop(); _local1++; }; } public function refreshBgClouds():void{ var i = 7; while (i <= 11) { var _local2 = background[("clip_" + i)]; with (_local2) { gotoAndPlay(Math.round((Math.random() * totalFrames))); }; i = (i + 1); }; } public function renderGameLayer():void{ bitmap = Render.renderDisplay(game.gameLayer); var _local1:Sprite = new Sprite(); _local1.graphics.beginBitmapFill(bitmap); _local1.graphics.drawRect(0, 0, 640, 480); _local1.graphics.endFill(); game.hiLayer.addChild(_local1); addEventListener(Event.ENTER_FRAME, blur); } public function drawBorder():void{ var _local1:Shape = new Shape(); _local1.graphics.beginFill(0); _local1.graphics.drawRect(-320, -240, 0x0500, 960); _local1.graphics.drawRect(0, 0, 640, 480); _local1.graphics.endFill(); addChild(_local1); } public function removeEditorEvents():void{ removeEventListener(Event.ENTER_FRAME, editorProgress); removeEventListener(MouseEvent.MOUSE_DOWN, editorClick); gameStage.removeEventListener(KeyboardEvent.KEY_DOWN, editorKeyPress); } public function gotoArmor(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://armorgames.com/"), "_blank"); } public function mousePress():void{ var _local2:int; var _local1:Array = getObjectsUnderPoint(new Point(mouseX, mouseY)); _local2 = (_local1.length - 1); while (_local2 >= 0) { switch (_local1[_local2].parent.name){ case "Deco": case "Hero": editor.refresh(); editor.objectPanel.setActiveObject(_local1[_local2].parent); editor.showPanel(editor.objectPanel); return; case "Enemy": editor.refresh(); editor.enemyPanel.setActiveObject(_local1[_local2].parent.parent); editor.showPanel(editor.enemyPanel); return; case "Exit": case "Coin": case "Key": editor.refresh(); editor.objectPanel.setActiveObject(_local1[_local2].parent.parent); editor.showPanel(editor.objectPanel); return; }; _local2--; }; editor.showCursor(); } public function editLevel(_arg1:Object):void{ game.window.setWindowMode("Editor"); this.level = _arg1; editMode = true; buildWorld(); cursor.setBlock(TileType.TILES[0], 0); editor = new Editor(549, 5); hero = new HeroPreview(); hero.setPosition({x:455, y:125}); hero.name = "Hero"; buildLevel(); addEditorEvents(); } public function restartLevel():void{ stopGame(true); startLevel(level); } public function editorProgress(_arg1:Event):void{ var _local2:int = ((mouseX - FIELD_POS.x) / CELL_SIZE); var _local3:int = ((mouseY - FIELD_POS.y) / CELL_SIZE); if ((((((((_local2 >= 0)) && ((_local2 < FIELD_COLS)))) && ((_local3 >= 0)))) && ((_local3 < FIELD_ROWS)))){ if (cursor.cellCors){ cursor.cell = field.getCell(_local2, _local3); cursor.x = cursor.cell.cellX; cursor.y = cursor.cell.cellY; } else { cursor.x = mouseX; cursor.y = mouseY; }; cursor.visible = true; if (cursor.status == "Door"){ cursor.setDoorSize(); }; } else { cursor.cell = null; cursor.visible = false; }; } public function gameRelease(_arg1:MouseEvent):void{ cursor.error.visible = false; } public function buildLevel():void{ kills = 0; coins = 0; if (level){ field.buildMap(level.map); field.cacheAsBitmap = true; hero.setPosition(level.hero); exit.setPosition(level.exit); music.playTrack(level.music); } else { music.playTrack(1); }; showDisplayList(); } public function createBody(_arg1:uint, _arg2:BodyShape, _arg3:int, _arg4:int, _arg5=null, _arg6=null):b2Body{ var _local7:b2BodyDef = new b2BodyDef(); _local7.userData = _arg5; _local7.position.Set((_arg3 / physScale), (_arg4 / physScale)); if (_arg1 == 1){ _local7.fixedRotation = true; }; var _local8:b2Body = physWorld.world.CreateBody(_local7); var _local9:int; while (_local9 < _arg2.shapes.length) { _local8.CreateShape(_arg2.shapes[_local9]); _local9++; }; _local8.SetMassFromShapes(); _local8.bodyName = _arg1; _local8.classLink = _arg6; if (_arg1 == 4){ _local8.GetShapeList().m_filter.groupIndex = -1; }; return (_local8); } public function trigger():void{ triggerKey = (game.doors.getChildAt(0).key as Key); triggerKey.addEventListener(Event.ENTER_FRAME, moveKey); } public function finishLevel():void{ if (!finishMode){ finishMode = true; if (levelMenu.editor){ backToEditor(); return; }; timer = new Timer(FINISH_DELAY, 1); timer.addEventListener(TimerEvent.TIMER_COMPLETE, showStat); timer.start(); }; } public function changeScore():void{ coins++; editor.timer = (editor.timer + 5); editor.refreshTimer(); } public function destroyBody(_arg1:b2Body, _arg2:Boolean=false):void{ var _local3:*; if (!_arg1){ return; }; if (_arg2){ _local3 = _arg1.m_userData; if ((((_local3 as Sprite)) && (_local3.parent))){ _local3.parent.removeChild(_local3); }; }; physWorld.world.DestroyBody(_arg1); _arg1 = null; } public function gameClick(_arg1:MouseEvent):void{ var rBlock:*; var event = _arg1; var _local3 = cursor; with (_local3) { if (((visible) && (block))){ if (cursorUnderBody()){ error.visible = true; return; }; switch (block.type){ case "Simple": cell.setBlock(tileType, tileShape, true); break; case "Timeout": game.blocks.addChild(new TimeoutBlock(cell, block.options)); break; case "Thorn": game.blocks.addChild(new ThornsBlock(cell, block.options)); break; case "Moving": game.blocks.addChild(new MovingBlock(cell, block.options)); break; case "Replace": if (block.replace){ block.replace.removeBlock(); block.replace = null; }; rBlock = new ReplaceBlock(cell); block.replace = rBlock; game.blocks.addChild(rBlock); break; }; block.decrease(); gameStage.focus = hero; }; }; } public function addWalls():void{ var _local1:BodyShape = new BodyShape("box", [20, 480, new Point()]); createBody(0, _local1, -15, 0); createBody(0, _local1, 545, 0); } public function levelFail():void{ if (!finishMode){ finishMode = true; timer = new Timer(FAIL_DELAY, 1); timer.addEventListener(TimerEvent.TIMER_COMPLETE, showGameOver); timer.start(); }; } public function buildWorld():void{ if (background.parent){ stopBgAnimation(); removeChild(background); }; finishMode = false; cursor.visible = true; field = new Field(FIELD_POS); enemies = new Array(); exit = new Exit({x:95, y:125}); } public function moveKey(_arg1:Event):void{ triggerKey.y = (triggerKey.y + 2); var _local2:b2Vec2 = triggerKey.body.GetPosition(); _local2.y = (_local2.y + (2 / 30)); triggerKey.body.SetXForm(_local2); if (((triggerKey.disable) || ((triggerKey.y > 350)))){ triggerKey.removeEventListener(Event.ENTER_FRAME, moveKey); }; } public function backToEditor():void{ if (sound){ Sounds.finish.play(); }; removeGameEvents(); hero.eraseHeroInfo(); renderGameLayer(); var _local1:BackWindow = new BackWindow(); _local1.show(); game.panelLayer.addChild(_local1); game.blocks.eraseLayer(); } public function addCoin():void{ var _local1:Coin = new Coin(); _local1.x = mouseX; _local1.y = mouseY; game.items.addChild(_local1); } public function editorKeyPress(_arg1:KeyboardEvent):void{ var event = _arg1; if (event.keyCode == Keyboard.DELETE){ var _local3 = editor.objectPanel; with (_local3) { if (activeObject){ removeObject(null); }; }; _local3 = editor.enemyPanel; with (_local3) { if (activeObject){ removeEnemy(null); }; }; }; } public function showMainMenu():void{ addChildAt(background, 0); music.playTrack(1); addChildAt(mainMenu, 1); mainMenu.refresh(); mainMenu.show(); playBgAnimation(); } public function showCredits():void{ addChildAt(background, 0); addChildAt(credits, 1); credits.show(); playBgAnimation(); } public function addCoins():void{ var _local2:Coin; coinsInLevel = 0; var _local1:int; while (_local1 < level.coins.length) { _local2 = new Coin(); _local2.x = level.coins[_local1].x; _local2.y = level.coins[_local1].y; _local2.initBody(); game.items.addChild(_local2); coinsInLevel++; _local1++; }; } public function recordKeys():void{ var _local1:Boolean; mouseRecord = (mouseRecord + (((" " + mouseX) + "_") + mouseY)); if (hero.upKey){ if (!upKey){ record = (record + "U"); upKey = true; _local1 = false; }; } else { if (upKey){ record = (record + "u"); upKey = false; _local1 = false; }; }; if (hero.leftKey){ if (!leftKey){ record = (record + "L"); leftKey = true; _local1 = false; }; } else { if (leftKey){ record = (record + "l"); leftKey = false; _local1 = false; }; }; if (hero.rightKey){ if (!rightKey){ record = (record + "R"); rightKey = true; _local1 = false; }; } else { if (rightKey){ record = (record + "r"); rightKey = false; _local1 = false; }; }; if (_local1){ record = (record + "-"); }; if (second == 37){ record = (record + "\",\n\""); mouseRecord = (mouseRecord + " \",\n\""); }; } public function cursorUnderBody():Boolean{ var _local4:BodyShape; var _local1:int = (cursor.cell.cellX + 1); var _local2:int = (cursor.cell.cellY + 1); var _local3:int = (CELL_SIZE - 2); if (cursor.status == "Thorn"){ _local1 = (_local1 - (_local3 / 2)); _local2 = (_local2 - (_local3 / 2)); _local4 = new BodyShape("box", [_local3, (_local3 * 2), new Point((_local3 / 2), 0)], 0.01); _local4.create("box", [(_local3 * 2), _local3, new Point(0, (_local3 / 2))], 0.01); } else { _local4 = new BodyShape("box", [_local3, _local3, new Point()], 0.01); }; var _local5:b2Body = createBody(0, _local4, _local1, _local2); if (_local5.m_contactList){ destroyBody(_local5); return (true); }; destroyBody(_local5); return (false); } public function addDoor():void{ var _local1:Door = new Door(cursor.options); game.doors.addChild(_local1); cursor.setDoorKey(_local1); editor.disableEditor(); editor.showPanel(editor.emptyPanel); } public function showStat(_arg1:TimerEvent):void{ var _local2:Boolean; var _local3:Boolean; if (coins == coinsInLevel){ _local2 = true; }; if (sound){ Sounds.finish.play(); }; timer.removeEventListener(TimerEvent.TIMER_COMPLETE, showStat); timer = null; removeGameEvents(); hero.eraseHeroInfo(); renderGameLayer(); if (score.getSolved() == 39){ _local3 = true; }; score.solveLevel(levelNum, editor.levelTime, editor.timer, kills, _local2); if (((_local3) && ((score.getSolved() == 40)))){ congrats.show(); congrats.refresh(); game.panelLayer.addChild(congrats); } else { stat.show(); stat.refresh(editor.timer, kills, _local2, score.total); game.panelLayer.addChild(stat); }; game.blocks.eraseLayer(); } public function addDeco():void{ var _local1:DecoSprite = new cursor.options.type(); _local1.x = cursor.x; _local1.y = cursor.y; switch (cursor.options.layer){ case 0: game.bcgAnimate.addChild(_local1); break; case 1: game.bcgStatic.drawChild(_local1); break; }; } public function selectLevel(_arg1:Boolean=false):void{ if (_arg1){ blocks = null; }; addChildAt(background, 0); levelMenu.editor = _arg1; levelMenu.refresh(); addChildAt(levelMenu, 1); levelMenu.show(); playBgAnimation(); } public function endOfSigmaIntro(_arg1:Event):void{ if (intro.currentFrame == intro.totalFrames){ music = new Music(); score = new ScoreSystem(); intro.removeEventListener(Event.ENTER_FRAME, endOfSigmaIntro); removeChild(intro); initGame(); mainMenu.menu.btnEditor.visible = false; }; } public function addKey():void{ var _local1:Key = new Key(cursor.options.door); _local1.x = mouseX; _local1.y = mouseY; game.items.addChild(_local1); editor.showCursor(null); editor.enableEditor(); } } }//package main
Section 188
//Preview_39 (Menu_fla.Preview_39) package Menu_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Preview_39 extends MovieClip { public function Preview_39(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29, 29, frame30, 30, frame31, 31, frame32, 32, frame33, 33, frame34, 34, frame35, 35, frame36, 36, frame37, 37, frame38, 38, frame39, 39, frame40, 40, frame41); } function frame10(){ stop(); } function frame14(){ stop(); } function frame18(){ stop(); } function frame12(){ stop(); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ stop(); stop(); } function frame19(){ stop(); } function frame25(){ stop(); } function frame13(){ stop(); } function frame17(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame9(){ stop(); } function frame22(){ stop(); } function frame16(){ stop(); } function frame8(){ stop(); } function frame21(){ stop(); } function frame2(){ stop(); } function frame15(){ stop(); } function frame23(){ stop(); } function frame24(){ stop(); } function frame28(){ stop(); } function frame36(){ stop(); } function frame20(){ stop(); } function frame30(){ stop(); } function frame31(){ stop(); } function frame34(){ stop(); } function frame27(){ stop(); } function frame11(){ stop(); } function frame35(){ stop(); } function frame37(){ stop(); } function frame29(){ stop(); } function frame33(){ stop(); } function frame40(){ stop(); } function frame41(){ stop(); } function frame39(){ stop(); } function frame26(){ stop(); } function frame32(){ stop(); } function frame38(){ stop(); } } }//package Menu_fla
Section 189
//Stars_Big_40 (Menu_fla.Stars_Big_40) package Menu_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Stars_Big_40 extends MovieClip { public function Stars_Big_40(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package Menu_fla
Section 190
//Stars_Mini_8 (Menu_fla.Stars_Mini_8) package Menu_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Stars_Mini_8 extends MovieClip { public function Stars_Mini_8(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package Menu_fla
Section 191
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 192
//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 193
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.2.0.3958"; } }//package mx.core
Section 194
//BlockCrumble_with_number_7 (Tiles_fla.BlockCrumble_with_number_7) package Tiles_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class BlockCrumble_with_number_7 extends MovieClip { public function BlockCrumble_with_number_7(){ addFrameScript(26, frame27); } function frame27(){ stop(); } } }//package Tiles_fla
Section 195
//LD_Block_31 (Tiles_fla.LD_Block_31) package Tiles_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class LD_Block_31 extends MovieClip { public function LD_Block_31(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29); } function frame10(){ stop(); } function frame14(){ stop(); } function frame18(){ stop(); } function frame12(){ stop(); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ stop(); } function frame19(){ stop(); } function frame25(){ stop(); } function frame13(){ stop(); } function frame17(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame9(){ stop(); } function frame22(){ stop(); } function frame16(){ stop(); } function frame8(){ stop(); } function frame21(){ stop(); } function frame2(){ stop(); } function frame15(){ stop(); } function frame23(){ stop(); } function frame24(){ stop(); } function frame28(){ stop(); } function frame20(){ stop(); } function frame27(){ stop(); } function frame11(){ stop(); } function frame29(){ stop(); } function frame26(){ stop(); } } }//package Tiles_fla
Section 196
//Lock_Down_21 (Tiles_fla.Lock_Down_21) package Tiles_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Lock_Down_21 extends MovieClip { public function Lock_Down_21(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package Tiles_fla
Section 197
//Lock_Up_22 (Tiles_fla.Lock_Up_22) package Tiles_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Lock_Up_22 extends MovieClip { public function Lock_Up_22(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame2(){ stop(); } } }//package Tiles_fla
Section 198
//LU_Block_30 (Tiles_fla.LU_Block_30) package Tiles_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class LU_Block_30 extends MovieClip { public function LU_Block_30(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29); } function frame10(){ stop(); } function frame14(){ stop(); } function frame18(){ stop(); } function frame12(){ stop(); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ stop(); } function frame19(){ stop(); } function frame25(){ stop(); } function frame13(){ stop(); } function frame17(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame9(){ stop(); } function frame22(){ stop(); } function frame16(){ stop(); } function frame8(){ stop(); } function frame21(){ stop(); } function frame2(){ stop(); } function frame15(){ stop(); } function frame23(){ stop(); } function frame24(){ stop(); } function frame28(){ stop(); } function frame20(){ stop(); } function frame27(){ stop(); } function frame11(){ stop(); } function frame29(){ stop(); } function frame26(){ stop(); } } }//package Tiles_fla
Section 199
//RD_Block_32 (Tiles_fla.RD_Block_32) package Tiles_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class RD_Block_32 extends MovieClip { public function RD_Block_32(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29); } function frame10(){ stop(); } function frame14(){ stop(); } function frame18(){ stop(); } function frame12(){ stop(); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ stop(); } function frame19(){ stop(); } function frame25(){ stop(); } function frame13(){ stop(); } function frame17(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame9(){ stop(); } function frame22(){ stop(); } function frame16(){ stop(); } function frame8(){ stop(); } function frame21(){ stop(); } function frame2(){ stop(); } function frame15(){ stop(); } function frame23(){ stop(); } function frame24(){ stop(); } function frame28(){ stop(); } function frame20(){ stop(); } function frame27(){ stop(); } function frame11(){ stop(); } function frame29(){ stop(); } function frame26(){ stop(); } } }//package Tiles_fla
Section 200
//RU_Block_33 (Tiles_fla.RU_Block_33) package Tiles_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class RU_Block_33 extends MovieClip { public function RU_Block_33(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8, 8, frame9, 9, frame10, 10, frame11, 11, frame12, 12, frame13, 13, frame14, 14, frame15, 15, frame16, 16, frame17, 17, frame18, 18, frame19, 19, frame20, 20, frame21, 21, frame22, 22, frame23, 23, frame24, 24, frame25, 25, frame26, 26, frame27, 27, frame28, 28, frame29); } function frame10(){ stop(); } function frame14(){ stop(); } function frame18(){ stop(); } function frame12(){ stop(); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ stop(); } function frame19(){ stop(); } function frame25(){ stop(); } function frame13(){ stop(); } function frame17(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame9(){ stop(); } function frame22(){ stop(); } function frame16(){ stop(); } function frame8(){ stop(); } function frame21(){ stop(); } function frame2(){ stop(); } function frame15(){ stop(); } function frame23(){ stop(); } function frame24(){ stop(); } function frame28(){ stop(); } function frame20(){ stop(); } function frame27(){ stop(); } function frame11(){ stop(); } function frame29(){ stop(); } function frame26(){ stop(); } } }//package Tiles_fla
Section 201
//Sizecopy_35 (Tiles_fla.Sizecopy_35) package Tiles_fla { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Sizecopy_35 extends MovieClip { public function Sizecopy_35(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package Tiles_fla
Section 202
//ArmorVideo (ArmorVideo) package { import flash.display.*; public dynamic class ArmorVideo extends MovieClip { public function ArmorVideo(){ addFrameScript(0, frame1, 217, frame218); } function frame218(){ stop(); } function frame1(){ gotoAndPlay(2); } } }//package
Section 203
//Back_1 (Back_1) package { import main.display.*; public dynamic class Back_1 extends DecoSprite { } }//package
Section 204
//Back_2 (Back_2) package { import main.display.*; public dynamic class Back_2 extends DecoSprite { } }//package
Section 205
//Back_3 (Back_3) package { import main.display.*; public dynamic class Back_3 extends DecoSprite { } }//package
Section 206
//Back_4 (Back_4) package { import main.display.*; public dynamic class Back_4 extends DecoSprite { } }//package
Section 207
//Back_5 (Back_5) package { import main.display.*; public dynamic class Back_5 extends DecoSprite { } }//package
Section 208
//Background (Background) package { import flash.display.*; public dynamic class Background extends MovieClip { public var clip_4:MovieClip; public var clip_3:MovieClip; public var clip_5:MovieClip; public var clip_6:MovieClip; public var clip_2:MovieClip; public var clip_7:MovieClip; public var clip_1:MovieClip; public var clip_8:MovieClip; public var clip_9:MovieClip; public var clip_10:MovieClip; public var clip_11:MovieClip; } }//package
Section 209
//BackWindowSprite (BackWindowSprite) package { import flash.display.*; public dynamic class BackWindowSprite extends MovieClip { public var btnAgain:SimpleButton; public var btnEditor:SimpleButton; } }//package
Section 210
//BasicSprite (BasicSprite) package { import flash.display.*; public dynamic class BasicSprite extends MovieClip { } }//package
Section 211
//BlockButtonSprite (BlockButtonSprite) package { import flash.display.*; import flash.text.*; public dynamic class BlockButtonSprite extends MovieClip { public var border:MovieClip; public var amount:TextField; } }//package
Section 212
//BlockExplode (BlockExplode) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class BlockExplode extends MovieClip { public function BlockExplode(){ addFrameScript(26, frame27); } function frame27(){ stop(); } } }//package
Section 213
//BlockPanelSprite (BlockPanelSprite) package { import flash.display.*; public dynamic class BlockPanelSprite extends MovieClip { public var btnBlock_2:SimpleButton; public var btnBlock_3:SimpleButton; public var btnBlock_0:SimpleButton; public var btnBlock_4:SimpleButton; public var btnBlock_1:SimpleButton; } }//package
Section 214
//BlockType (BlockType) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class BlockType extends MovieClip { public var block:SimplePreview; public function BlockType(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } function frame3(){ stop(); } function frame6(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package
Section 215
//Border (Border) package { import flash.display.*; public dynamic class Border extends MovieClip { } }//package
Section 216
//Bush_1 (Bush_1) package { import main.display.*; public dynamic class Bush_1 extends DecoSprite { } }//package
Section 217
//Bush_2 (Bush_2) package { import main.display.*; public dynamic class Bush_2 extends DecoSprite { } }//package
Section 218
//Bush_3 (Bush_3) package { import main.display.*; public dynamic class Bush_3 extends DecoSprite { } }//package
Section 219
//Bush_4 (Bush_4) package { import main.display.*; public dynamic class Bush_4 extends DecoSprite { } }//package
Section 220
//Bush_5 (Bush_5) package { import main.display.*; public dynamic class Bush_5 extends DecoSprite { } }//package
Section 221
//Bush_6 (Bush_6) package { import main.display.*; public dynamic class Bush_6 extends DecoSprite { } }//package
Section 222
//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { } }//package
Section 223
//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { } }//package
Section 224
//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { } }//package
Section 225
//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { } }//package
Section 226
//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { } }//package
Section 227
//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { } }//package
Section 228
//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { } }//package
Section 229
//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { } }//package
Section 230
//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { } }//package
Section 231
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 232
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 233
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 234
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 235
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 236
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 237
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 238
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 239
//CheckBox_disabledIcon (CheckBox_disabledIcon) package { import flash.display.*; public dynamic class CheckBox_disabledIcon extends MovieClip { } }//package
Section 240
//CheckBox_downIcon (CheckBox_downIcon) package { import flash.display.*; public dynamic class CheckBox_downIcon extends MovieClip { } }//package
Section 241
//CheckBox_overIcon (CheckBox_overIcon) package { import flash.display.*; public dynamic class CheckBox_overIcon extends MovieClip { } }//package
Section 242
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDisabledIcon extends MovieClip { } }//package
Section 243
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDownIcon extends MovieClip { } }//package
Section 244
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon) package { import flash.display.*; public dynamic class CheckBox_selectedOverIcon extends MovieClip { } }//package
Section 245
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon) package { import flash.display.*; public dynamic class CheckBox_selectedUpIcon extends MovieClip { } }//package
Section 246
//CheckBox_upIcon (CheckBox_upIcon) package { import flash.display.*; public dynamic class CheckBox_upIcon extends MovieClip { } }//package
Section 247
//Cloud_1 (Cloud_1) package { import main.display.*; public dynamic class Cloud_1 extends DecoSprite { } }//package
Section 248
//Cloud_2 (Cloud_2) package { import main.display.*; public dynamic class Cloud_2 extends DecoSprite { } }//package
Section 249
//Cloud_3 (Cloud_3) package { import main.display.*; public dynamic class Cloud_3 extends DecoSprite { } }//package
Section 250
//Cloud_4 (Cloud_4) package { import main.display.*; public dynamic class Cloud_4 extends DecoSprite { } }//package
Section 251
//Cloud_5 (Cloud_5) package { import main.display.*; public dynamic class Cloud_5 extends DecoSprite { } }//package
Section 252
//Cloud_6 (Cloud_6) package { import main.display.*; public dynamic class Cloud_6 extends DecoSprite { } }//package
Section 253
//CodePanelSprite (CodePanelSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.controls.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class CodePanelSprite extends MovieClip { public var btnClose:Button; public var textArea:TextArea; public function CodePanelSprite(){ __setProp_btnClose_CodePanel_Layer1_1(); } function __setProp_btnClose_CodePanel_Layer1_1(){ try { btnClose["componentInspectorSetting"] = true; } catch(e:Error) { }; btnClose.emphasized = false; btnClose.enabled = true; btnClose.label = "Close Window"; btnClose.labelPlacement = "right"; btnClose.selected = false; btnClose.toggle = false; btnClose.visible = true; try { btnClose["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 254
//CoinSprite (CoinSprite) package { import flash.display.*; public dynamic class CoinSprite extends MovieClip { } }//package
Section 255
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 256
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 257
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 258
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 259
//CreditsSprite (CreditsSprite) package { import flash.display.*; public dynamic class CreditsSprite extends MovieClip { public var btnMainMenu:SimpleButton; } }//package
Section 260
//DecoPanelSprite (DecoPanelSprite) package { import flash.display.*; public dynamic class DecoPanelSprite extends MovieClip { public var preview:MovieClip; } }//package
Section 261
//DoorPanelSprite (DoorPanelSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.controls.*; import flash.text.*; import fl.data.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class DoorPanelSprite extends MovieClip { public var j2; public var j1; public var collObj1:DataProvider; public var collObj2:DataProvider; public var orient:ComboBox; public var color:ComboBox; public var collProp1:Object; public var collProp2:Object; public var itemObj2:SimpleCollectionItem; public var preview:Doors; public var itemObj1:SimpleCollectionItem; public var collProps2:Array; public var collProps1:Array; public var i1:int; public var i2:int; public function DoorPanelSprite(){ __setProp_orient_DoorPanel_Layer1_1(); __setProp_color_DoorPanel_Layer1_1(); } function __setProp_color_DoorPanel_Layer1_1(){ try { color["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj1 = new DataProvider(); collProps1 = [{label:"Orange", data:"Orange"}, {label:"Yellow", data:"Yellow"}, {label:"Green", data:"Green"}, {label:"Red", data:"Red"}]; i1 = 0; while (i1 < collProps1.length) { itemObj1 = new SimpleCollectionItem(); collProp1 = collProps1[i1]; for (j1 in collProp1) { itemObj1[j1] = collProp1[j1]; }; collObj1.addItem(itemObj1); i1++; }; color.dataProvider = collObj1; color.editable = false; color.enabled = true; color.prompt = ""; color.restrict = ""; color.rowCount = 4; color.visible = true; try { color["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_orient_DoorPanel_Layer1_1(){ try { orient["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj2 = new DataProvider(); collProps2 = [{label:"Vertical", data:"Vertical"}, {label:"Horisontal", data:"Horisontal"}]; i2 = 0; while (i2 < collProps2.length) { itemObj2 = new SimpleCollectionItem(); collProp2 = collProps2[i2]; for (j2 in collProp2) { itemObj2[j2] = collProp2[j2]; }; collObj2.addItem(itemObj2); i2++; }; orient.dataProvider = collObj2; orient.editable = false; orient.enabled = true; orient.prompt = ""; orient.restrict = ""; orient.rowCount = 3; orient.visible = true; try { orient["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 262
//DoorPreview (DoorPreview) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class DoorPreview extends MovieClip { public var size:MovieClip; public var upColor:MovieClip; public var dnColor:MovieClip; public function DoorPreview(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 263
//Doors (Doors) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Doors extends MovieClip { public var upColor:MovieClip; public var dnColor:MovieClip; public function Doors(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 264
//DoorSpriteH (DoorSpriteH) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class DoorSpriteH extends MovieClip { public var size:MovieClip; public var upColor:MovieClip; public var dnColor:MovieClip; public function DoorSpriteH(){ addFrameScript(0, frame1, 11, frame12, 54, frame55); } function frame12(){ parent.doorSound(); } function frame1(){ stop(); } function frame55(){ stop(); } } }//package
Section 265
//DoorSpriteV (DoorSpriteV) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class DoorSpriteV extends MovieClip { public var size:MovieClip; public var upColor:MovieClip; public var dnColor:MovieClip; public function DoorSpriteV(){ addFrameScript(0, frame1, 1, frame2, 44, frame45); } function frame1(){ stop(); } function frame2(){ parent.doorSound(); } function frame45(){ stop(); } } }//package
Section 266
//EditorSprite (EditorSprite) package { import flash.display.*; public dynamic class EditorSprite extends MovieClip { public var panel:MovieClip; public var btnThorns:SimpleButton; public var btnTest:SimpleButton; public var btnEraser:SimpleButton; public var btnBonus:SimpleButton; public var btnDeco:SimpleButton; public var btnDoors:SimpleButton; public var btnBlock:SimpleButton; public var btnGetMap:SimpleButton; public var btnEnemy:SimpleButton; public var btnCursor:SimpleButton; } }//package
Section 267
//EnemyBlowing (EnemyBlowing) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class EnemyBlowing extends MovieClip { public var part_1:MovieClip; public var part_2:MovieClip; public var part_4:MovieClip; public var part_5:MovieClip; public var part_3:MovieClip; public var part_6:MovieClip; public function EnemyBlowing(){ addFrameScript(12, frame13); } function frame13(){ stop(); } } }//package
Section 268
//EnemyPanelSprite (EnemyPanelSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.controls.*; import flash.text.*; import fl.data.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class EnemyPanelSprite extends MovieClip { public var j3; public var jump:NumericStepper; public var attack:CheckBox; public var speed:NumericStepper; public var color:ComboBox; public var wait:CheckBox; public var collObj3:DataProvider; public var options:MovieClip; public var collProp3:Object; public var preview:EnemyPreview; public var itemObj3:SimpleCollectionItem; public var collProps3:Array; public var i3:int; public function EnemyPanelSprite(){ __setProp_attack_EnemyPanel_Layer1_1(); __setProp_wait_EnemyPanel_Layer1_1(); __setProp_jump_EnemyPanel_Layer1_1(); __setProp_color_EnemyPanel_Layer1_1(); __setProp_speed_EnemyPanel_Layer1_1(); } function __setProp_jump_EnemyPanel_Layer1_1(){ try { jump["componentInspectorSetting"] = true; } catch(e:Error) { }; jump.enabled = true; jump.maximum = 90; jump.minimum = 0; jump.stepSize = 1; jump.value = 0; jump.visible = true; try { jump["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_attack_EnemyPanel_Layer1_1(){ try { attack["componentInspectorSetting"] = true; } catch(e:Error) { }; attack.enabled = true; attack.label = ""; attack.labelPlacement = "right"; attack.selected = false; attack.visible = true; try { attack["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_speed_EnemyPanel_Layer1_1(){ try { speed["componentInspectorSetting"] = true; } catch(e:Error) { }; speed.enabled = true; speed.maximum = 90; speed.minimum = 0; speed.stepSize = 1; speed.value = 25; speed.visible = true; try { speed["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_wait_EnemyPanel_Layer1_1(){ try { wait["componentInspectorSetting"] = true; } catch(e:Error) { }; wait.enabled = true; wait.label = ""; wait.labelPlacement = "right"; wait.selected = false; wait.visible = true; try { wait["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_color_EnemyPanel_Layer1_1(){ try { color["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj3 = new DataProvider(); collProps3 = [{label:"Orange", data:"Orange"}, {label:"Green", data:"Green"}, {label:"Red", data:"Red"}]; i3 = 0; while (i3 < collProps3.length) { itemObj3 = new SimpleCollectionItem(); collProp3 = collProps3[i3]; for (j3 in collProp3) { itemObj3[j3] = collProp3[j3]; }; collObj3.addItem(itemObj3); i3++; }; color.dataProvider = collObj3; color.editable = false; color.enabled = true; color.prompt = ""; color.restrict = ""; color.rowCount = 3; color.visible = true; try { color["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 269
//EnemyPreview (EnemyPreview) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class EnemyPreview extends MovieClip { public function EnemyPreview(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ stop(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 270
//EnemySprite (EnemySprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class EnemySprite extends MovieClip { public var thorns:MovieClip; public function EnemySprite(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ stop(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 271
//Erase (Erase) package { import flash.display.*; public dynamic class Erase extends MovieClip { } }//package
Section 272
//ExitSprite (ExitSprite) package { import flash.display.*; public dynamic class ExitSprite extends MovieClip { } }//package
Section 273
//FinalWindowSprite (FinalWindowSprite) package { import flash.display.*; import flash.text.*; public dynamic class FinalWindowSprite extends MovieClip { public var btnArmor:SimpleButton; public var fldTotal:TextField; public var btnSubmit:SimpleButton; } }//package
Section 274
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 275
//GameOverSprite (GameOverSprite) package { import flash.display.*; public dynamic class GameOverSprite extends MovieClip { public var btnSolution:SimpleButton; public var btnAgain:SimpleButton; } }//package
Section 276
//GamePanelSprite (GamePanelSprite) package { import flash.display.*; import flash.text.*; public dynamic class GamePanelSprite extends MovieClip { public var levelNum:TextField; public var time:TextField; } }//package
Section 277
//HeroSprite (HeroSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class HeroSprite extends MovieClip { public var anim:MovieClip; public function HeroSprite(){ addFrameScript(0, frame1, 7, frame8, 14, frame15, 21, frame22, 29, frame30); } function frame15(){ stop(); } function frame1(){ stop(); } function frame22(){ stop(); } function frame8(){ stop(); } function frame30(){ stop(); } } }//package
Section 278
//KeySprite (KeySprite) package { import flash.display.*; public dynamic class KeySprite extends MovieClip { public var color:MovieClip; } }//package
Section 279
//LevelButtonSprite (LevelButtonSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class LevelButtonSprite extends MovieClip { public var btn:SimpleButton; public var stars:MovieClip; public var num:TextField; public function LevelButtonSprite(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 280
//LevelMenuSprite (LevelMenuSprite) package { import flash.display.*; import flash.text.*; public dynamic class LevelMenuSprite extends MovieClip { public var btnMainMenu:SimpleButton; public var stars:MovieClip; public var fldTotal:TextField; public var btnErase:SimpleButton; public var fldLevel:TextField; public var preview:MovieClip; public var fldScore:TextField; } }//package
Section 281
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 282
//MainMenuSprite (MainMenuSprite) package { import flash.display.*; public dynamic class MainMenuSprite extends MovieClip { public var btnHiScores:SimpleButton; public var btnSound:SimpleButton; public var btnMusic:SimpleButton; public var btnHost:SimpleButton; public var btnArmor:SimpleButton; public var btnMoreGames:SimpleButton; public var btnStartGame:SimpleButton; public var btnCredits:SimpleButton; public var btnEditor:SimpleButton; } }//package
Section 283
//MovingPreview (MovingPreview) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class MovingPreview extends MovieClip { public function MovingPreview(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } function frame3(){ stop(); } function frame6(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package
Section 284
//MovingSprite (MovingSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class MovingSprite extends MovieClip { public function MovingSprite(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6); } function frame3(){ stop(); } function frame6(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package
Section 285
//NumericStepperDownArrow_disabledSkin (NumericStepperDownArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_disabledSkin extends MovieClip { } }//package
Section 286
//NumericStepperDownArrow_downSkin (NumericStepperDownArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_downSkin extends MovieClip { } }//package
Section 287
//NumericStepperDownArrow_overSkin (NumericStepperDownArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_overSkin extends MovieClip { } }//package
Section 288
//NumericStepperDownArrow_upSkin (NumericStepperDownArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_upSkin extends MovieClip { } }//package
Section 289
//NumericStepperUpArrow_disabledSkin (NumericStepperUpArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_disabledSkin extends MovieClip { } }//package
Section 290
//NumericStepperUpArrow_downSkin (NumericStepperUpArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_downSkin extends MovieClip { } }//package
Section 291
//NumericStepperUpArrow_overSkin (NumericStepperUpArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_overSkin extends MovieClip { } }//package
Section 292
//NumericStepperUpArrow_upSkin (NumericStepperUpArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_upSkin extends MovieClip { } }//package
Section 293
//ObjectPanelSprite (ObjectPanelSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.controls.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class ObjectPanelSprite extends MovieClip { public var btnRemove:Button; public var yPos:TextInput; public var flip:CheckBox; public var btnToFront:Button; public var btnToBack:Button; public var xPos:TextInput; public function ObjectPanelSprite(){ __setProp_btnToFront_ObjectPanel_Layer1_1(); __setProp_flip_ObjectPanel_Layer1_1(); __setProp_xPos_ObjectPanel_Layer1_1(); __setProp_yPos_ObjectPanel_Layer1_1(); __setProp_btnRemove_ObjectPanel_Layer1_1(); __setProp_btnToBack_ObjectPanel_Layer1_1(); } function __setProp_btnRemove_ObjectPanel_Layer1_1(){ try { btnRemove["componentInspectorSetting"] = true; } catch(e:Error) { }; btnRemove.emphasized = false; btnRemove.enabled = true; btnRemove.label = "Remove"; btnRemove.labelPlacement = "right"; btnRemove.selected = false; btnRemove.toggle = false; btnRemove.visible = true; try { btnRemove["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnToFront_ObjectPanel_Layer1_1(){ try { btnToFront["componentInspectorSetting"] = true; } catch(e:Error) { }; btnToFront.emphasized = false; btnToFront.enabled = true; btnToFront.label = "To Front"; btnToFront.labelPlacement = "right"; btnToFront.selected = false; btnToFront.toggle = false; btnToFront.visible = true; try { btnToFront["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_btnToBack_ObjectPanel_Layer1_1(){ try { btnToBack["componentInspectorSetting"] = true; } catch(e:Error) { }; btnToBack.emphasized = false; btnToBack.enabled = true; btnToBack.label = "To Back"; btnToBack.labelPlacement = "right"; btnToBack.selected = false; btnToBack.toggle = false; btnToBack.visible = true; try { btnToBack["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_flip_ObjectPanel_Layer1_1(){ try { flip["componentInspectorSetting"] = true; } catch(e:Error) { }; flip.enabled = true; flip.label = ""; flip.labelPlacement = "right"; flip.selected = false; flip.visible = true; try { flip["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_xPos_ObjectPanel_Layer1_1(){ try { xPos["componentInspectorSetting"] = true; } catch(e:Error) { }; xPos.displayAsPassword = false; xPos.editable = true; xPos.enabled = true; xPos.maxChars = 0; xPos.restrict = ""; xPos.text = "0"; xPos.visible = true; try { xPos["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_yPos_ObjectPanel_Layer1_1(){ try { yPos["componentInspectorSetting"] = true; } catch(e:Error) { }; yPos.displayAsPassword = false; yPos.editable = true; yPos.enabled = true; yPos.maxChars = 0; yPos.restrict = ""; yPos.text = "0"; yPos.visible = true; try { yPos["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 294
//Palm_1 (Palm_1) package { import main.display.*; public dynamic class Palm_1 extends DecoSprite { } }//package
Section 295
//Palm_2 (Palm_2) package { import main.display.*; public dynamic class Palm_2 extends DecoSprite { } }//package
Section 296
//Palm_3 (Palm_3) package { import main.display.*; public dynamic class Palm_3 extends DecoSprite { } }//package
Section 297
//PreloadBar (PreloadBar) package { import flash.display.*; public dynamic class PreloadBar extends MovieClip { public var progress:MovieClip; } }//package
Section 298
//RagdollL (RagdollL) package { import flash.display.*; public dynamic class RagdollL extends MovieClip { public var Head:MovieClip; public var LDHand:MovieClip; public var jBody:MovieClip; public var jRUHand:MovieClip; public var DNBody:MovieClip; public var jLDLeg:MovieClip; public var jHer:MovieClip; public var RUHand:MovieClip; public var jHead:MovieClip; public var LDLeg:MovieClip; public var RDLeg:MovieClip; public var LUHand:MovieClip; public var jLUHand:MovieClip; public var jRDLeg:MovieClip; public var RDHand:MovieClip; public var jRDHand:MovieClip; public var LULeg:MovieClip; public var RULeg:MovieClip; public var UPBody:MovieClip; public var jLDHand:MovieClip; } }//package
Section 299
//RagdollR (RagdollR) package { import flash.display.*; public dynamic class RagdollR extends MovieClip { public var Head:MovieClip; public var LDHand:MovieClip; public var jBody:MovieClip; public var jRUHand:MovieClip; public var DNBody:MovieClip; public var jLDLeg:MovieClip; public var jHer:MovieClip; public var RUHand:MovieClip; public var jHead:MovieClip; public var LDLeg:MovieClip; public var RDLeg:MovieClip; public var LUHand:MovieClip; public var jLUHand:MovieClip; public var jRDLeg:MovieClip; public var RDHand:MovieClip; public var jRDHand:MovieClip; public var LULeg:MovieClip; public var RULeg:MovieClip; public var UPBody:MovieClip; public var jLDHand:MovieClip; } }//package
Section 300
//ReplacePreview (ReplacePreview) package { import flash.display.*; public dynamic class ReplacePreview extends MovieClip { } }//package
Section 301
//ReplaceSprite (ReplaceSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class ReplaceSprite extends MovieClip { public function ReplaceSprite(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 302
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 303
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 304
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 305
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 306
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 307
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 308
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 309
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 310
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 311
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 312
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 313
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 314
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 315
//SetupPanelSprite (SetupPanelSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import fl.controls.*; import flash.text.*; import fl.data.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class SetupPanelSprite extends MovieClip { public var itemObj10:SimpleCollectionItem; public var itemObj11:SimpleCollectionItem; public var j10; public var amount_1:NumericStepper; public var amount_2:NumericStepper; public var amount_3:NumericStepper; public var amount_4:NumericStepper; public var j11; public var levelTrack:NumericStepper; public var i10:int; public var i11:int; public var type_2:ComboBox; public var type_3:ComboBox; public var type_4:ComboBox; public var levelTime:NumericStepper; public var type_1:ComboBox; public var collProp10:Object; public var collProp11:Object; public var options_1:ComboBox; public var options_2:ComboBox; public var options_3:ComboBox; public var options_4:ComboBox; public var collProps8:Array; public var collProps9:Array; public var collProps4:Array; public var collProps6:Array; public var collProps5:Array; public var i4:int; public var i6:int; public var i7:int; public var i8:int; public var i9:int; public var i5:int; public var collProps7:Array; public var collProps11:Array; public var j5; public var j7; public var j8; public var collProps10:Array; public var j4; public var j6; public var j9; public var collObj4:DataProvider; public var collObj5:DataProvider; public var collObj6:DataProvider; public var collObj7:DataProvider; public var collObj8:DataProvider; public var collObj9:DataProvider; public var preview_1:BlockType; public var preview_2:BlockType; public var preview_3:BlockType; public var preview_4:BlockType; public var collProp8:Object; public var collProp4:Object; public var collProp5:Object; public var collProp6:Object; public var collProp7:Object; public var collProp9:Object; public var collObj10:DataProvider; public var collObj11:DataProvider; public var itemObj4:SimpleCollectionItem; public var itemObj5:SimpleCollectionItem; public var itemObj7:SimpleCollectionItem; public var itemObj8:SimpleCollectionItem; public var itemObj9:SimpleCollectionItem; public var itemObj6:SimpleCollectionItem; public var btnSave:SimpleButton; public function SetupPanelSprite(){ __setProp_levelTrack_SetupPanel_Components_1(); __setProp_amount_3_SetupPanel_Components_1(); __setProp_amount_2_SetupPanel_Components_1(); __setProp_type_4_SetupPanel_Components_1(); __setProp_levelTime_SetupPanel_Components_1(); __setProp_options_3_SetupPanel_Components_1(); __setProp_options_4_SetupPanel_Components_1(); __setProp_options_1_SetupPanel_Components_1(); __setProp_type_3_SetupPanel_Components_1(); __setProp_options_2_SetupPanel_Components_1(); __setProp_type_2_SetupPanel_Components_1(); __setProp_amount_1_SetupPanel_Components_1(); __setProp_amount_4_SetupPanel_Components_1(); __setProp_type_1_SetupPanel_Components_1(); } function __setProp_levelTrack_SetupPanel_Components_1(){ try { levelTrack["componentInspectorSetting"] = true; } catch(e:Error) { }; levelTrack.enabled = true; levelTrack.maximum = 3; levelTrack.minimum = 1; levelTrack.stepSize = 1; levelTrack.value = 1; levelTrack.visible = true; try { levelTrack["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_levelTime_SetupPanel_Components_1(){ try { levelTime["componentInspectorSetting"] = true; } catch(e:Error) { }; levelTime.enabled = true; levelTime.maximum = 900; levelTime.minimum = 50; levelTime.stepSize = 10; levelTime.value = 100; levelTime.visible = true; try { levelTime["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_type_1_SetupPanel_Components_1(){ try { type_1["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj7 = new DataProvider(); collProps7 = []; i7 = 0; while (i7 < collProps7.length) { itemObj7 = new SimpleCollectionItem(); collProp7 = collProps7[i7]; for (j7 in collProp7) { itemObj7[j7] = collProp7[j7]; }; collObj7.addItem(itemObj7); i7++; }; type_1.dataProvider = collObj7; type_1.editable = false; type_1.enabled = true; type_1.prompt = ""; type_1.restrict = ""; type_1.rowCount = 6; type_1.visible = true; try { type_1["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_type_3_SetupPanel_Components_1(){ try { type_3["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj5 = new DataProvider(); collProps5 = []; i5 = 0; while (i5 < collProps5.length) { itemObj5 = new SimpleCollectionItem(); collProp5 = collProps5[i5]; for (j5 in collProp5) { itemObj5[j5] = collProp5[j5]; }; collObj5.addItem(itemObj5); i5++; }; type_3.dataProvider = collObj5; type_3.editable = false; type_3.enabled = true; type_3.prompt = ""; type_3.restrict = ""; type_3.rowCount = 6; type_3.visible = true; try { type_3["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_amount_2_SetupPanel_Components_1(){ try { amount_2["componentInspectorSetting"] = true; } catch(e:Error) { }; amount_2.enabled = true; amount_2.maximum = 15; amount_2.minimum = 1; amount_2.stepSize = 1; amount_2.value = 1; amount_2.visible = true; try { amount_2["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_options_4_SetupPanel_Components_1(){ try { options_4["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj8 = new DataProvider(); collProps8 = []; i8 = 0; while (i8 < collProps8.length) { itemObj8 = new SimpleCollectionItem(); collProp8 = collProps8[i8]; for (j8 in collProp8) { itemObj8[j8] = collProp8[j8]; }; collObj8.addItem(itemObj8); i8++; }; options_4.dataProvider = collObj8; options_4.editable = false; options_4.enabled = true; options_4.prompt = ""; options_4.restrict = ""; options_4.rowCount = 6; options_4.visible = true; try { options_4["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_amount_4_SetupPanel_Components_1(){ try { amount_4["componentInspectorSetting"] = true; } catch(e:Error) { }; amount_4.enabled = true; amount_4.maximum = 15; amount_4.minimum = 1; amount_4.stepSize = 1; amount_4.value = 1; amount_4.visible = true; try { amount_4["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_options_2_SetupPanel_Components_1(){ try { options_2["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj10 = new DataProvider(); collProps10 = []; i10 = 0; while (i10 < collProps10.length) { itemObj10 = new SimpleCollectionItem(); collProp10 = collProps10[i10]; for (j10 in collProp10) { itemObj10[j10] = collProp10[j10]; }; collObj10.addItem(itemObj10); i10++; }; options_2.dataProvider = collObj10; options_2.editable = false; options_2.enabled = true; options_2.prompt = ""; options_2.restrict = ""; options_2.rowCount = 6; options_2.visible = true; try { options_2["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_type_2_SetupPanel_Components_1(){ try { type_2["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj6 = new DataProvider(); collProps6 = []; i6 = 0; while (i6 < collProps6.length) { itemObj6 = new SimpleCollectionItem(); collProp6 = collProps6[i6]; for (j6 in collProp6) { itemObj6[j6] = collProp6[j6]; }; collObj6.addItem(itemObj6); i6++; }; type_2.dataProvider = collObj6; type_2.editable = false; type_2.enabled = true; type_2.prompt = ""; type_2.restrict = ""; type_2.rowCount = 6; type_2.visible = true; try { type_2["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_amount_1_SetupPanel_Components_1(){ try { amount_1["componentInspectorSetting"] = true; } catch(e:Error) { }; amount_1.enabled = true; amount_1.maximum = 15; amount_1.minimum = 1; amount_1.stepSize = 1; amount_1.value = 1; amount_1.visible = true; try { amount_1["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_type_4_SetupPanel_Components_1(){ try { type_4["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj4 = new DataProvider(); collProps4 = []; i4 = 0; while (i4 < collProps4.length) { itemObj4 = new SimpleCollectionItem(); collProp4 = collProps4[i4]; for (j4 in collProp4) { itemObj4[j4] = collProp4[j4]; }; collObj4.addItem(itemObj4); i4++; }; type_4.dataProvider = collObj4; type_4.editable = false; type_4.enabled = true; type_4.prompt = ""; type_4.restrict = ""; type_4.rowCount = 6; type_4.visible = true; try { type_4["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_amount_3_SetupPanel_Components_1(){ try { amount_3["componentInspectorSetting"] = true; } catch(e:Error) { }; amount_3.enabled = true; amount_3.maximum = 15; amount_3.minimum = 1; amount_3.stepSize = 1; amount_3.value = 1; amount_3.visible = true; try { amount_3["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_options_1_SetupPanel_Components_1(){ try { options_1["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj11 = new DataProvider(); collProps11 = []; i11 = 0; while (i11 < collProps11.length) { itemObj11 = new SimpleCollectionItem(); collProp11 = collProps11[i11]; for (j11 in collProp11) { itemObj11[j11] = collProp11[j11]; }; collObj11.addItem(itemObj11); i11++; }; options_1.dataProvider = collObj11; options_1.editable = false; options_1.enabled = true; options_1.prompt = ""; options_1.restrict = ""; options_1.rowCount = 6; options_1.visible = true; try { options_1["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_options_3_SetupPanel_Components_1(){ try { options_3["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj9 = new DataProvider(); collProps9 = []; i9 = 0; while (i9 < collProps9.length) { itemObj9 = new SimpleCollectionItem(); collProp9 = collProps9[i9]; for (j9 in collProp9) { itemObj9[j9] = collProp9[j9]; }; collObj9.addItem(itemObj9); i9++; }; options_3.dataProvider = collObj9; options_3.editable = false; options_3.enabled = true; options_3.prompt = ""; options_3.restrict = ""; options_3.rowCount = 6; options_3.visible = true; try { options_3["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 316
//SigmaIntro (SigmaIntro) package { import flash.display.*; public dynamic class SigmaIntro extends MovieClip { } }//package
Section 317
//SimplePreview (SimplePreview) package { import flash.display.*; public dynamic class SimplePreview extends MovieClip { } }//package
Section 318
//Sky (Sky) package { import flash.display.*; public dynamic class Sky extends MovieClip { } }//package
Section 319
//sndBlowing (sndBlowing) package { import flash.media.*; public dynamic class sndBlowing extends Sound { } }//package
Section 320
//sndBonus (sndBonus) package { import flash.media.*; public dynamic class sndBonus extends Sound { } }//package
Section 321
//sndCrumble (sndCrumble) package { import flash.media.*; public dynamic class sndCrumble extends Sound { } }//package
Section 322
//sndDead (sndDead) package { import flash.media.*; public dynamic class sndDead extends Sound { } }//package
Section 323
//sndDoor (sndDoor) package { import flash.media.*; public dynamic class sndDoor extends Sound { } }//package
Section 324
//sndFinish (sndFinish) package { import flash.media.*; public dynamic class sndFinish extends Sound { } }//package
Section 325
//sndGameOver (sndGameOver) package { import flash.media.*; public dynamic class sndGameOver extends Sound { } }//package
Section 326
//sndIntro (sndIntro) package { import flash.media.*; public dynamic class sndIntro extends Sound { } }//package
Section 327
//sndJump (sndJump) package { import flash.media.*; public dynamic class sndJump extends Sound { } }//package
Section 328
//sndKick (sndKick) package { import flash.media.*; public dynamic class sndKick extends Sound { } }//package
Section 329
//sndScream (sndScream) package { import flash.media.*; public dynamic class sndScream extends Sound { } }//package
Section 330
//sndStep (sndStep) package { import flash.media.*; public dynamic class sndStep extends Sound { } }//package
Section 331
//sndThornsHide (sndThornsHide) package { import flash.media.*; public dynamic class sndThornsHide extends Sound { } }//package
Section 332
//sndThornsShow (sndThornsShow) package { import flash.media.*; public dynamic class sndThornsShow extends Sound { } }//package
Section 333
//StatWindowSprite (StatWindowSprite) package { import flash.display.*; import flash.text.*; public dynamic class StatWindowSprite extends MovieClip { public var statistic:TextField; public var btnNext:SimpleButton; public var btnSelect:SimpleButton; } }//package
Section 334
//Sun (Sun) package { import main.display.*; public dynamic class Sun extends DecoSprite { } }//package
Section 335
//TextArea_disabledSkin (TextArea_disabledSkin) package { import flash.display.*; public dynamic class TextArea_disabledSkin extends MovieClip { } }//package
Section 336
//TextArea_upSkin (TextArea_upSkin) package { import flash.display.*; public dynamic class TextArea_upSkin extends MovieClip { } }//package
Section 337
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 338
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 339
//ThornPanelSprite (ThornPanelSprite) package { import flash.display.*; public dynamic class ThornPanelSprite extends MovieClip { public var btnThorn_7:SimpleButton; public var btnThorn_8:SimpleButton; public var btnThorn_1:SimpleButton; public var btnThorn_2:SimpleButton; public var btnThorn_3:SimpleButton; public var btnThorn_5:SimpleButton; public var btnThorn_6:SimpleButton; public var btnThorn_4:SimpleButton; } }//package
Section 340
//Thorns (Thorns) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Thorns extends MovieClip { public function Thorns(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5, 5, frame6, 6, frame7, 7, frame8); } function frame3(){ stop(); } function frame6(){ stop(); } function frame7(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame8(){ stop(); } function frame2(){ stop(); } } }//package
Section 341
//Thorns_1000 (Thorns_1000) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Thorns_1000 extends MovieClip { public function Thorns_1000(){ addFrameScript(1, frame2, 43, frame44); } function frame2(){ parent.showThorns(); } function frame44(){ parent.hideThorns(); } } }//package
Section 342
//Thorns_400 (Thorns_400) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Thorns_400 extends MovieClip { public function Thorns_400(){ addFrameScript(1, frame2, 22, frame23); } function frame23(){ parent.hideThorns(); } function frame2(){ parent.showThorns(); } } }//package
Section 343
//Thorns_600 (Thorns_600) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Thorns_600 extends MovieClip { public function Thorns_600(){ addFrameScript(1, frame2, 29, frame30); } function frame2(){ parent.showThorns(); } function frame30(){ parent.hideThorns(); } } }//package
Section 344
//Thorns_800 (Thorns_800) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class Thorns_800 extends MovieClip { public function Thorns_800(){ addFrameScript(1, frame2, 36, frame37); } function frame2(){ parent.showThorns(); } function frame37(){ parent.hideThorns(); } } }//package
Section 345
//ThornsPreview (ThornsPreview) package { import flash.display.*; public dynamic class ThornsPreview extends MovieClip { } }//package
Section 346
//ThornsSprite (ThornsSprite) package { import flash.display.*; public dynamic class ThornsSprite extends MovieClip { } }//package
Section 347
//TimeoutPreview (TimeoutPreview) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class TimeoutPreview extends MovieClip { public function TimeoutPreview(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5); } function frame3(){ stop(); } function frame1(){ stop(); } function frame4(){ stop(); } function frame5(){ stop(); } function frame2(){ stop(); } } }//package
Section 348
//TimeoutSprite (TimeoutSprite) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.media.*; import flash.net.*; import flash.ui.*; import flash.filters.*; import flash.accessibility.*; import flash.errors.*; import flash.system.*; public dynamic class TimeoutSprite extends MovieClip { public var time:TextField; public function TimeoutSprite(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 349
//ToolTip (ToolTip) package { import flash.display.*; import flash.text.*; public dynamic class ToolTip extends MovieClip { public var caption:TextField; } }//package
Section 350
//Tree_1 (Tree_1) package { import main.display.*; public dynamic class Tree_1 extends DecoSprite { } }//package
Section 351
//Tree_2 (Tree_2) package { import main.display.*; public dynamic class Tree_2 extends DecoSprite { } }//package
Section 352
//Tree_3 (Tree_3) package { import main.display.*; public dynamic class Tree_3 extends DecoSprite { } }//package
Section 353
//Tree_4 (Tree_4) package { import main.display.*; public dynamic class Tree_4 extends DecoSprite { } }//package
Section 354
//Tree_5 (Tree_5) package { import main.display.*; public dynamic class Tree_5 extends DecoSprite { } }//package
Section 355
//Tutorial_1 (Tutorial_1) package { import main.display.*; public dynamic class Tutorial_1 extends DecoSprite { } }//package
Section 356
//Tutorial_2 (Tutorial_2) package { import main.display.*; public dynamic class Tutorial_2 extends DecoSprite { } }//package
Section 357
//Tutorial_3 (Tutorial_3) package { import main.display.*; public dynamic class Tutorial_3 extends DecoSprite { } }//package
Section 358
//Tutorial_4 (Tutorial_4) package { import main.display.*; public dynamic class Tutorial_4 extends DecoSprite { } }//package
Section 359
//Tutorial_5 (Tutorial_5) package { import main.display.*; public dynamic class Tutorial_5 extends DecoSprite { } }//package
Section 360
//WindowSprite (WindowSprite) package { import flash.display.*; public dynamic class WindowSprite extends MovieClip { public var btnLevels:SimpleButton; public var btnSound:SimpleButton; public var btnRestart:SimpleButton; public var btnMusic:SimpleButton; public var switchBack:MovieClip; public var btnEditor:SimpleButton; } }//package

Library Items

Symbol 1 GraphicUsed by:6
Symbol 2 GraphicUsed by:3
Symbol 3 MovieClipUses:2Used by:6
Symbol 4 FontUsed by:5
Symbol 5 EditableTextUses:4Used by:6
Symbol 6 MovieClip {PreloadBar} [PreloadBar]Uses:1 3 5
Symbol 7 GraphicUsed by:25
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClipUses:8Used by:25
Symbol 10 FontUsed by:11
Symbol 11 TextUses:10Used by:12
Symbol 12 ButtonUses:11Used by:25
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClipUses:13Used by:25
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClipUses:15Used by:25
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClipUses:17Used by:25
Symbol 19 GraphicUsed by:22
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClipUses:20Used by:22
Symbol 22 MovieClip {Intro_fla.LightMove_7} [Intro_fla.LightMove_7]Uses:19 21Used by:25
Symbol 23 GraphicUsed by:24
Symbol 24 MovieClipUses:23Used by:25
Symbol 25 MovieClip {SigmaIntro} [SigmaIntro]Uses:7 9 12 14 16 18 22 24
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClip {main.chars.HeroPreview} [main.chars.HeroPreview]Uses:26
Symbol 28 GraphicUsed by:77
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClipUses:29Used by:77
Symbol 31 GraphicUsed by:38
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:38
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:38
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:38
Symbol 38 MovieClipUses:31 33 35 37Used by:77
Symbol 39 GraphicUsed by:43
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:43
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:39 41 42Used by:77
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClipUses:44Used by:46
Symbol 46 MovieClipUses:45Used by:77
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:49
Symbol 49 MovieClipUses:48Used by:77
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:52
Symbol 52 MovieClipUses:51Used by:77
Symbol 53 GraphicUsed by:54
Symbol 54 MovieClipUses:53Used by:55
Symbol 55 MovieClipUses:54Used by:77
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClipUses:56Used by:58
Symbol 58 MovieClipUses:57Used by:77
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClipUses:59Used by:61 66
Symbol 61 MovieClipUses:60Used by:77
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClipUses:62Used by:64 65 67
Symbol 64 MovieClipUses:63Used by:77
Symbol 65 MovieClipUses:63Used by:77
Symbol 66 MovieClipUses:60Used by:77
Symbol 67 MovieClipUses:63Used by:77
Symbol 68 BitmapUsed by:69 1639
Symbol 69 GraphicUses:68Used by:70
Symbol 70 MovieClipUses:69Used by:74
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:73
Symbol 73 MovieClipUses:72Used by:74
Symbol 74 MovieClipUses:70 73Used by:77
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:77
Symbol 77 MovieClip {Background} [Background]Uses:28 30 38 43 46 49 52 55 58 61 64 65 66 67 74 76
Symbol 78 GraphicUsed by:93
Symbol 79 SoundUsed by:93
Symbol 80 SoundUsed by:93
Symbol 81 GraphicUsed by:93
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClipUses:82Used by:93
Symbol 84 SoundUsed by:93
Symbol 85 SoundUsed by:93
Symbol 86 SoundUsed by:93
Symbol 87 GraphicUsed by:93
Symbol 88 GraphicUsed by:89
Symbol 89 ButtonUses:88Used by:93
Symbol 90 GraphicUsed by:93
Symbol 91 SoundUsed by:93
Symbol 92 SoundUsed by:93
Symbol 93 MovieClip {ArmorVideo} [ArmorVideo]Uses:78 79 80 81 83 84 85 86 87 89 90 91 92
Symbol 94 GraphicUsed by:95 162 243
Symbol 95 MovieClipUses:94Used by:110 111
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClipUses:96Used by:110 111 387
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98Used by:110 111 387
Symbol 100 GraphicUsed by:104
Symbol 101 GraphicUsed by:104
Symbol 102 GraphicUsed by:104
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21]Uses:100 101 102 103Used by:110 111 387
Symbol 105 GraphicUsed by:109
Symbol 106 GraphicUsed by:109
Symbol 107 GraphicUsed by:109
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22]Uses:105 106 107 108Used by:110 111 387
Symbol 110 MovieClip {DoorSpriteH} [DoorSpriteH]Uses:95 97 99 104 109
Symbol 111 MovieClip {DoorSpriteV} [DoorSpriteV]Uses:95 97 99 104 109
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClip {BasicSprite} [BasicSprite]Uses:112Used by:162 163 243 244 359 913 924 927 930 933
Symbol 114 GraphicUsed by:162 243
Symbol 115 GraphicUsed by:162
Symbol 116 GraphicUsed by:162 243
Symbol 117 GraphicUsed by:162 243
Symbol 118 GraphicUsed by:162 243
Symbol 119 GraphicUsed by:162 243
Symbol 120 GraphicUsed by:162 243
Symbol 121 GraphicUsed by:162 243
Symbol 122 GraphicUsed by:162 243
Symbol 123 GraphicUsed by:162 243
Symbol 124 GraphicUsed by:162 243
Symbol 125 GraphicUsed by:162 243
Symbol 126 GraphicUsed by:162 243
Symbol 127 GraphicUsed by:162 243
Symbol 128 GraphicUsed by:162 243
Symbol 129 GraphicUsed by:162 243
Symbol 130 GraphicUsed by:162 243
Symbol 131 GraphicUsed by:162 243
Symbol 132 GraphicUsed by:162 243
Symbol 133 GraphicUsed by:162 243
Symbol 134 GraphicUsed by:162 243
Symbol 135 GraphicUsed by:162 243
Symbol 136 GraphicUsed by:162 243
Symbol 137 GraphicUsed by:162 243
Symbol 138 GraphicUsed by:162 243
Symbol 139 GraphicUsed by:162 243
Symbol 140 GraphicUsed by:162 243
Symbol 141 GraphicUsed by:162 243
Symbol 142 GraphicUsed by:162 243
Symbol 143 GraphicUsed by:162 243
Symbol 144 GraphicUsed by:162 243
Symbol 145 GraphicUsed by:162 243
Symbol 146 GraphicUsed by:162 243
Symbol 147 GraphicUsed by:162 243
Symbol 148 GraphicUsed by:162 243
Symbol 149 GraphicUsed by:162 243
Symbol 150 GraphicUsed by:162 243
Symbol 151 GraphicUsed by:162 243
Symbol 152 GraphicUsed by:162 243
Symbol 153 GraphicUsed by:162 243
Symbol 154 GraphicUsed by:162 243
Symbol 155 GraphicUsed by:162 243
Symbol 156 GraphicUsed by:162 243
Symbol 157 GraphicUsed by:162 243
Symbol 158 GraphicUsed by:162 243
Symbol 159 GraphicUsed by:162 243
Symbol 160 GraphicUsed by:162 243
Symbol 161 GraphicUsed by:162 243
Symbol 162 MovieClip {BlockExplode} [BlockExplode]Uses:113 114 115 116 117 118 94 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161Used by:163
Symbol 163 MovieClip {ReplaceSprite} [ReplaceSprite]Uses:113 162
Symbol 164 GraphicUsed by:175
Symbol 165 GraphicUsed by:168
Symbol 166 GraphicUsed by:167
Symbol 167 MovieClipUses:166Used by:168 171 174 200
Symbol 168 MovieClipUses:165 167Used by:175
Symbol 169 GraphicUsed by:175
Symbol 170 GraphicUsed by:171
Symbol 171 MovieClipUses:170 167Used by:175
Symbol 172 GraphicUsed by:175
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:173 167Used by:175
Symbol 175 MovieClip {EnemySprite} [EnemySprite]Uses:164 168 169 171 172 174
Symbol 176 GraphicUsed by:179
Symbol 177 GraphicUsed by:179
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3]Uses:176 177 178Used by:200
Symbol 180 GraphicUsed by:183
Symbol 181 GraphicUsed by:183
Symbol 182 GraphicUsed by:183
Symbol 183 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4]Uses:180 181 182Used by:200
Symbol 184 GraphicUsed by:187
Symbol 185 GraphicUsed by:187
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5]Uses:184 185 186Used by:200
Symbol 188 GraphicUsed by:191
Symbol 189 GraphicUsed by:191
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6]Uses:188 189 190Used by:200
Symbol 192 GraphicUsed by:195
Symbol 193 GraphicUsed by:195
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7]Uses:192 193 194Used by:200
Symbol 196 GraphicUsed by:199
Symbol 197 GraphicUsed by:199
Symbol 198 GraphicUsed by:199
Symbol 199 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8]Uses:196 197 198Used by:200
Symbol 200 MovieClip {EnemyBlowing} [EnemyBlowing]Uses:167 179 183 187 191 195 199
Symbol 201 BitmapUsed by:202 392
Symbol 202 GraphicUses:201Used by:236
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:235
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:235
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:235
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:235
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:235
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:235
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:235
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:235
Symbol 219 BitmapUsed by:220
Symbol 220 GraphicUses:219Used by:235
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:235
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:235
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:235
Symbol 227 BitmapUsed by:228
Symbol 228 GraphicUses:227Used by:235
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:235
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231Used by:235
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:235
Symbol 235 MovieClipUses:204 206 208 210 212 214 216 218 220 222 224 226 228 230 232 234Used by:236
Symbol 236 MovieClip {CoinSprite} [CoinSprite]Uses:202 235
Symbol 237 GraphicUsed by:238
Symbol 238 MovieClip {ExitSprite} [ExitSprite]Uses:237
Symbol 239 FontUsed by:240 241
Symbol 240 EditableTextUses:239Used by:244
Symbol 241 EditableTextUses:239Used by:243
Symbol 242 GraphicUsed by:243
Symbol 243 MovieClip {Tiles_fla.BlockCrumble_with_number_7} [Tiles_fla.BlockCrumble_with_number_7]Uses:113 241 114 242 116 117 118 94 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161Used by:244
Symbol 244 MovieClip {TimeoutSprite} [TimeoutSprite]Uses:113 240 243
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:354
Symbol 247 GraphicUsed by:248
Symbol 248 MovieClipUses:247Used by:354 371 963
Symbol 249 GraphicUsed by:250 254
Symbol 250 MovieClipUses:249Used by:254
Symbol 251 FontUsed by:252 255 256 257 258 342 343 344 352 360 361 362 363 936 940 941 942 943 944 945 946 947 948 949 950 951 952 954 955 956 958 959 961 962 966 967 968 970 971 973 991 993 995 997 999 1010 1019 1020 1021 1089 1090 1092 1094 1095 1098 1099 1101 1109 1110 1111 1112 1113 1114 1116 1120 1121 1123 1129 1131 1141 1143 1144 1597 1598 1600 1602 1621 1635 1642 1643 1645 1646 1648 1649
Symbol 252 TextUses:251Used by:254
Symbol 253 GraphicUsed by:254 353 364 937 957 960 969 972 992 994 996 998 1000 1011 1599 1644 1647 1650
Symbol 254 ButtonUses:250 252 249 253Used by:354
Symbol 255 TextUses:251Used by:354
Symbol 256 TextUses:251Used by:354
Symbol 257 TextUses:251Used by:354
Symbol 258 TextUses:251Used by:354
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:341
Symbol 261 GraphicUsed by:341
Symbol 262 BitmapUsed by:263
Symbol 263 GraphicUses:262Used by:341
Symbol 264 BitmapUsed by:265
Symbol 265 GraphicUses:264Used by:341
Symbol 266 BitmapUsed by:267
Symbol 267 GraphicUses:266Used by:341
Symbol 268 BitmapUsed by:269
Symbol 269 GraphicUses:268Used by:341
Symbol 270 BitmapUsed by:271
Symbol 271 GraphicUses:270Used by:341
Symbol 272 BitmapUsed by:273
Symbol 273 GraphicUses:272Used by:341
Symbol 274 BitmapUsed by:275
Symbol 275 GraphicUses:274Used by:341
Symbol 276 BitmapUsed by:277
Symbol 277 GraphicUses:276Used by:341
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:341
Symbol 280 BitmapUsed by:281
Symbol 281 GraphicUses:280Used by:341
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:341
Symbol 284 BitmapUsed by:285
Symbol 285 GraphicUses:284Used by:341
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:341
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:341
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:341
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:341
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:341
Symbol 296 BitmapUsed by:297
Symbol 297 GraphicUses:296Used by:341
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:341
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:341
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:341
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:341
Symbol 306 BitmapUsed by:307
Symbol 307 GraphicUses:306Used by:341
Symbol 308 BitmapUsed by:309
Symbol 309 GraphicUses:308Used by:341
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:310Used by:341
Symbol 312 BitmapUsed by:313
Symbol 313 GraphicUses:312Used by:341
Symbol 314 BitmapUsed by:315
Symbol 315 GraphicUses:314Used by:341
Symbol 316 BitmapUsed by:317
Symbol 317 GraphicUses:316Used by:341
Symbol 318 BitmapUsed by:319
Symbol 319 GraphicUses:318Used by:341
Symbol 320 BitmapUsed by:321
Symbol 321 GraphicUses:320Used by:341
Symbol 322 BitmapUsed by:323
Symbol 323 GraphicUses:322Used by:341
Symbol 324 BitmapUsed by:325
Symbol 325 GraphicUses:324Used by:341
Symbol 326 BitmapUsed by:327
Symbol 327 GraphicUses:326Used by:341
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:341
Symbol 330 BitmapUsed by:331
Symbol 331 GraphicUses:330Used by:341
Symbol 332 BitmapUsed by:333
Symbol 333 GraphicUses:332Used by:341
Symbol 334 BitmapUsed by:335
Symbol 335 GraphicUses:334Used by:341
Symbol 336 BitmapUsed by:337
Symbol 337 GraphicUses:336Used by:341
Symbol 338 BitmapUsed by:339
Symbol 339 GraphicUses:338Used by:341
Symbol 340 GraphicUsed by:341
Symbol 341 MovieClip {Menu_fla.Preview_39} [Menu_fla.Preview_39]Uses:260 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 340Used by:354
Symbol 342 EditableTextUses:251Used by:354
Symbol 343 EditableTextUses:251Used by:354
Symbol 344 EditableTextUses:251Used by:354
Symbol 345 GraphicUsed by:349
Symbol 346 GraphicUsed by:349
Symbol 347 GraphicUsed by:349
Symbol 348 GraphicUsed by:349
Symbol 349 MovieClip {Menu_fla.Stars_Big_40} [Menu_fla.Stars_Big_40]Uses:345 346 347 348Used by:354
Symbol 350 GraphicUsed by:351 353 364 937 957 960 969 972 992 994 996 998 1000 1011 1599
Symbol 351 MovieClipUses:350Used by:353 364 937 957 960 969 972 992 994 996 998 1000 1011 1599 1636
Symbol 352 TextUses:251Used by:353
Symbol 353 ButtonUses:351 352 350 253Used by:354
Symbol 354 MovieClip {LevelMenuSprite} [LevelMenuSprite]Uses:246 248 254 255 256 257 258 341 342 343 344 349 353
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClipUses:355Used by:359
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClipUses:357Used by:359
Symbol 359 MovieClip {MovingSprite} [MovingSprite]Uses:113 356 358
Symbol 360 TextUses:251Used by:371
Symbol 361 EditableTextUses:251Used by:371
Symbol 362 TextUses:251Used by:364
Symbol 363 TextUses:251Used by:364
Symbol 364 ButtonUses:351 362 363 350 253Used by:371
Symbol 365 GraphicUsed by:368
Symbol 366 GraphicUsed by:368
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClipUses:365 366 367Used by:370
Symbol 369 GraphicUsed by:370 1009 1610
Symbol 370 ButtonUses:368 369Used by:371 1012
Symbol 371 MovieClip {FinalWindowSprite} [FinalWindowSprite]Uses:248 360 361 364 370
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClip {Border} [Border]Uses:372
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClipUses:374Used by:378
Symbol 376 GraphicUsed by:377
Symbol 377 MovieClipUses:376Used by:378
Symbol 378 MovieClipUses:375 377Used by:380
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClip {Thorns} [Thorns]Uses:378 379
Symbol 381 GraphicUsed by:386
Symbol 382 GraphicUsed by:386
Symbol 383 GraphicUsed by:386
Symbol 384 GraphicUsed by:386
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClip {Tiles_fla.Sizecopy_35} [Tiles_fla.Sizecopy_35]Uses:381 382 383 384 385Used by:387
Symbol 387 MovieClip {DoorPreview} [DoorPreview]Uses:386 97 99 104 109
Symbol 388 GraphicUsed by:391
Symbol 389 GraphicUsed by:391
Symbol 390 GraphicUsed by:391
Symbol 391 MovieClip {EnemyPreview} [EnemyPreview]Uses:388 389 390Used by:1734
Symbol 392 GraphicUses:201Used by:790
Symbol 393 BitmapUsed by:394
Symbol 394 GraphicUses:393Used by:491
Symbol 395 BitmapUsed by:396
Symbol 396 GraphicUses:395Used by:491
Symbol 397 BitmapUsed by:398
Symbol 398 GraphicUses:397Used by:491
Symbol 399 BitmapUsed by:400
Symbol 400 GraphicUses:399Used by:491
Symbol 401 BitmapUsed by:402
Symbol 402 GraphicUses:401Used by:491
Symbol 403 BitmapUsed by:404
Symbol 404 GraphicUses:403Used by:491
Symbol 405 BitmapUsed by:406
Symbol 406 GraphicUses:405Used by:491
Symbol 407 BitmapUsed by:408
Symbol 408 GraphicUses:407Used by:491
Symbol 409 BitmapUsed by:410
Symbol 410 GraphicUses:409Used by:491
Symbol 411 BitmapUsed by:412
Symbol 412 GraphicUses:411Used by:491
Symbol 413 BitmapUsed by:414
Symbol 414 GraphicUses:413Used by:491
Symbol 415 BitmapUsed by:416
Symbol 416 GraphicUses:415Used by:491
Symbol 417 BitmapUsed by:418
Symbol 418 GraphicUses:417Used by:491
Symbol 419 BitmapUsed by:420
Symbol 420 GraphicUses:419Used by:491
Symbol 421 BitmapUsed by:422
Symbol 422 GraphicUses:421Used by:491
Symbol 423 BitmapUsed by:424
Symbol 424 GraphicUses:423Used by:491
Symbol 425 BitmapUsed by:426
Symbol 426 GraphicUses:425Used by:491
Symbol 427 BitmapUsed by:428
Symbol 428 GraphicUses:427Used by:491
Symbol 429 BitmapUsed by:430
Symbol 430 GraphicUses:429Used by:491
Symbol 431 BitmapUsed by:432
Symbol 432 GraphicUses:431Used by:491
Symbol 433 BitmapUsed by:434
Symbol 434 GraphicUses:433Used by:491
Symbol 435 BitmapUsed by:436
Symbol 436 GraphicUses:435Used by:491
Symbol 437 BitmapUsed by:438
Symbol 438 GraphicUses:437Used by:491
Symbol 439 BitmapUsed by:440
Symbol 440 GraphicUses:439Used by:491
Symbol 441 BitmapUsed by:442
Symbol 442 GraphicUses:441Used by:491
Symbol 443 BitmapUsed by:444
Symbol 444 GraphicUses:443Used by:491
Symbol 445 BitmapUsed by:446
Symbol 446 GraphicUses:445Used by:491
Symbol 447 BitmapUsed by:448
Symbol 448 GraphicUses:447Used by:491
Symbol 449 BitmapUsed by:450
Symbol 450 GraphicUses:449Used by:491
Symbol 451 BitmapUsed by:452
Symbol 452 GraphicUses:451Used by:491
Symbol 453 BitmapUsed by:454
Symbol 454 GraphicUses:453Used by:491
Symbol 455 BitmapUsed by:456
Symbol 456 GraphicUses:455Used by:491
Symbol 457 BitmapUsed by:458
Symbol 458 GraphicUses:457Used by:491
Symbol 459 BitmapUsed by:460
Symbol 460 GraphicUses:459Used by:491
Symbol 461 BitmapUsed by:462
Symbol 462 GraphicUses:461Used by:491
Symbol 463 BitmapUsed by:464
Symbol 464 GraphicUses:463Used by:491
Symbol 465 BitmapUsed by:466
Symbol 466 GraphicUses:465Used by:491
Symbol 467 BitmapUsed by:468
Symbol 468 GraphicUses:467Used by:491
Symbol 469 BitmapUsed by:470
Symbol 470 GraphicUses:469Used by:491
Symbol 471 BitmapUsed by:472
Symbol 472 GraphicUses:471Used by:491
Symbol 473 BitmapUsed by:474
Symbol 474 GraphicUses:473Used by:491
Symbol 475 BitmapUsed by:476
Symbol 476 GraphicUses:475Used by:491
Symbol 477 BitmapUsed by:478
Symbol 478 GraphicUses:477Used by:491
Symbol 479 BitmapUsed by:480
Symbol 480 GraphicUses:479Used by:491
Symbol 481 BitmapUsed by:482
Symbol 482 GraphicUses:481Used by:491
Symbol 483 BitmapUsed by:484
Symbol 484 GraphicUses:483Used by:491
Symbol 485 BitmapUsed by:486
Symbol 486 GraphicUses:485Used by:491
Symbol 487 BitmapUsed by:488
Symbol 488 GraphicUses:487Used by:491
Symbol 489 BitmapUsed by:490
Symbol 490 GraphicUses:489Used by:491
Symbol 491 MovieClipUses:394 396 398 400 402 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 464 466 468 470 472 474 476 478 480 482 484 486 488 490Used by:789
Symbol 492 BitmapUsed by:493
Symbol 493 GraphicUses:492Used by:590
Symbol 494 BitmapUsed by:495
Symbol 495 GraphicUses:494Used by:590
Symbol 496 BitmapUsed by:497
Symbol 497 GraphicUses:496Used by:590
Symbol 498 BitmapUsed by:499
Symbol 499 GraphicUses:498Used by:590
Symbol 500 BitmapUsed by:501
Symbol 501 GraphicUses:500Used by:590
Symbol 502 BitmapUsed by:503
Symbol 503 GraphicUses:502Used by:590
Symbol 504 BitmapUsed by:505
Symbol 505 GraphicUses:504Used by:590
Symbol 506 BitmapUsed by:507
Symbol 507 GraphicUses:506Used by:590
Symbol 508 BitmapUsed by:509
Symbol 509 GraphicUses:508Used by:590
Symbol 510 BitmapUsed by:511
Symbol 511 GraphicUses:510Used by:590
Symbol 512 BitmapUsed by:513
Symbol 513 GraphicUses:512Used by:590
Symbol 514 BitmapUsed by:515
Symbol 515 GraphicUses:514Used by:590
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:590
Symbol 518 BitmapUsed by:519
Symbol 519 GraphicUses:518Used by:590
Symbol 520 BitmapUsed by:521
Symbol 521 GraphicUses:520Used by:590
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:522Used by:590
Symbol 524 BitmapUsed by:525
Symbol 525 GraphicUses:524Used by:590
Symbol 526 BitmapUsed by:527
Symbol 527 GraphicUses:526Used by:590
Symbol 528 BitmapUsed by:529
Symbol 529 GraphicUses:528Used by:590
Symbol 530 BitmapUsed by:531
Symbol 531 GraphicUses:530Used by:590
Symbol 532 BitmapUsed by:533
Symbol 533 GraphicUses:532Used by:590
Symbol 534 BitmapUsed by:535
Symbol 535 GraphicUses:534Used by:590
Symbol 536 BitmapUsed by:537
Symbol 537 GraphicUses:536Used by:590
Symbol 538 BitmapUsed by:539
Symbol 539 GraphicUses:538Used by:590
Symbol 540 BitmapUsed by:541
Symbol 541 GraphicUses:540Used by:590
Symbol 542 BitmapUsed by:543
Symbol 543 GraphicUses:542Used by:590
Symbol 544 BitmapUsed by:545
Symbol 545 GraphicUses:544Used by:590
Symbol 546 BitmapUsed by:547
Symbol 547 GraphicUses:546Used by:590
Symbol 548 BitmapUsed by:549
Symbol 549 GraphicUses:548Used by:590
Symbol 550 BitmapUsed by:551
Symbol 551 GraphicUses:550Used by:590
Symbol 552 BitmapUsed by:553
Symbol 553 GraphicUses:552Used by:590
Symbol 554 BitmapUsed by:555
Symbol 555 GraphicUses:554Used by:590
Symbol 556 BitmapUsed by:557
Symbol 557 GraphicUses:556Used by:590
Symbol 558 BitmapUsed by:559
Symbol 559 GraphicUses:558Used by:590
Symbol 560 BitmapUsed by:561
Symbol 561 GraphicUses:560Used by:590
Symbol 562 BitmapUsed by:563
Symbol 563 GraphicUses:562Used by:590
Symbol 564 BitmapUsed by:565
Symbol 565 GraphicUses:564Used by:590
Symbol 566 BitmapUsed by:567
Symbol 567 GraphicUses:566Used by:590
Symbol 568 BitmapUsed by:569
Symbol 569 GraphicUses:568Used by:590
Symbol 570 BitmapUsed by:571
Symbol 571 GraphicUses:570Used by:590
Symbol 572 BitmapUsed by:573
Symbol 573 GraphicUses:572Used by:590
Symbol 574 BitmapUsed by:575
Symbol 575 GraphicUses:574Used by:590
Symbol 576 BitmapUsed by:577
Symbol 577 GraphicUses:576Used by:590
Symbol 578 BitmapUsed by:579
Symbol 579 GraphicUses:578Used by:590
Symbol 580 BitmapUsed by:581
Symbol 581 GraphicUses:580Used by:590
Symbol 582 BitmapUsed by:583
Symbol 583 GraphicUses:582Used by:590
Symbol 584 BitmapUsed by:585
Symbol 585 GraphicUses:584Used by:590
Symbol 586 BitmapUsed by:587
Symbol 587 GraphicUses:586Used by:590
Symbol 588 BitmapUsed by:589
Symbol 589 GraphicUses:588Used by:590
Symbol 590 MovieClipUses:493 495 497 499 501 503 505 507 509 511 513 515 517 519 521 523 525 527 529 531 533 535 537 539 541 543 545 547 549 551 553 555 557 559 561 563 565 567 569 571 573 575 577 579 581 583 585 587 589Used by:789
Symbol 591 BitmapUsed by:592
Symbol 592 GraphicUses:591Used by:689
Symbol 593 BitmapUsed by:594
Symbol 594 GraphicUses:593Used by:689
Symbol 595 BitmapUsed by:596
Symbol 596 GraphicUses:595Used by:689
Symbol 597 BitmapUsed by:598
Symbol 598 GraphicUses:597Used by:689
Symbol 599 BitmapUsed by:600
Symbol 600 GraphicUses:599Used by:689
Symbol 601 BitmapUsed by:602
Symbol 602 GraphicUses:601Used by:689
Symbol 603 BitmapUsed by:604
Symbol 604 GraphicUses:603Used by:689
Symbol 605 BitmapUsed by:606
Symbol 606 GraphicUses:605Used by:689
Symbol 607 BitmapUsed by:608
Symbol 608 GraphicUses:607Used by:689
Symbol 609 BitmapUsed by:610
Symbol 610 GraphicUses:609Used by:689
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:689
Symbol 613 BitmapUsed by:614
Symbol 614 GraphicUses:613Used by:689
Symbol 615 BitmapUsed by:616
Symbol 616 GraphicUses:615Used by:689
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:689
Symbol 619 BitmapUsed by:620
Symbol 620 GraphicUses:619Used by:689
Symbol 621 BitmapUsed by:622
Symbol 622 GraphicUses:621Used by:689
Symbol 623 BitmapUsed by:624
Symbol 624 GraphicUses:623Used by:689
Symbol 625 BitmapUsed by:626
Symbol 626 GraphicUses:625Used by:689
Symbol 627 BitmapUsed by:628
Symbol 628 GraphicUses:627Used by:689
Symbol 629 BitmapUsed by:630
Symbol 630 GraphicUses:629Used by:689
Symbol 631 BitmapUsed by:632
Symbol 632 GraphicUses:631Used by:689
Symbol 633 BitmapUsed by:634
Symbol 634 GraphicUses:633Used by:689
Symbol 635 BitmapUsed by:636
Symbol 636 GraphicUses:635Used by:689
Symbol 637 BitmapUsed by:638
Symbol 638 GraphicUses:637Used by:689
Symbol 639 BitmapUsed by:640
Symbol 640 GraphicUses:639Used by:689
Symbol 641 BitmapUsed by:642
Symbol 642 GraphicUses:641Used by:689
Symbol 643 BitmapUsed by:644
Symbol 644 GraphicUses:643Used by:689
Symbol 645 BitmapUsed by:646
Symbol 646 GraphicUses:645Used by:689
Symbol 647 BitmapUsed by:648
Symbol 648 GraphicUses:647Used by:689
Symbol 649 BitmapUsed by:650
Symbol 650 GraphicUses:649Used by:689
Symbol 651 BitmapUsed by:652
Symbol 652 GraphicUses:651Used by:689
Symbol 653 BitmapUsed by:654
Symbol 654 GraphicUses:653Used by:689
Symbol 655 BitmapUsed by:656
Symbol 656 GraphicUses:655Used by:689
Symbol 657 BitmapUsed by:658
Symbol 658 GraphicUses:657Used by:689
Symbol 659 BitmapUsed by:660
Symbol 660 GraphicUses:659Used by:689
Symbol 661 BitmapUsed by:662
Symbol 662 GraphicUses:661Used by:689
Symbol 663 BitmapUsed by:664
Symbol 664 GraphicUses:663Used by:689
Symbol 665 BitmapUsed by:666
Symbol 666 GraphicUses:665Used by:689
Symbol 667 BitmapUsed by:668
Symbol 668 GraphicUses:667Used by:689
Symbol 669 BitmapUsed by:670
Symbol 670 GraphicUses:669Used by:689
Symbol 671 BitmapUsed by:672
Symbol 672 GraphicUses:671Used by:689
Symbol 673 BitmapUsed by:674
Symbol 674 GraphicUses:673Used by:689
Symbol 675 BitmapUsed by:676
Symbol 676 GraphicUses:675Used by:689
Symbol 677 BitmapUsed by:678
Symbol 678 GraphicUses:677Used by:689
Symbol 679 BitmapUsed by:680
Symbol 680 GraphicUses:679Used by:689
Symbol 681 BitmapUsed by:682
Symbol 682 GraphicUses:681Used by:689
Symbol 683 BitmapUsed by:684
Symbol 684 GraphicUses:683Used by:689
Symbol 685 BitmapUsed by:686
Symbol 686 GraphicUses:685Used by:689
Symbol 687 BitmapUsed by:688
Symbol 688 GraphicUses:687Used by:689
Symbol 689 MovieClipUses:592 594 596 598 600 602 604 606 608 610 612 614 616 618 620 622 624 626 628 630 632 634 636 638 640 642 644 646 648 650 652 654 656 658 660 662 664 666 668 670 672 674 676 678 680 682 684 686 688Used by:789
Symbol 690 BitmapUsed by:691
Symbol 691 GraphicUses:690Used by:788
Symbol 692 BitmapUsed by:693
Symbol 693 GraphicUses:692Used by:788
Symbol 694 BitmapUsed by:695
Symbol 695 GraphicUses:694Used by:788
Symbol 696 BitmapUsed by:697
Symbol 697 GraphicUses:696Used by:788
Symbol 698 BitmapUsed by:699
Symbol 699 GraphicUses:698Used by:788
Symbol 700 BitmapUsed by:701
Symbol 701 GraphicUses:700Used by:788
Symbol 702 BitmapUsed by:703
Symbol 703 GraphicUses:702Used by:788
Symbol 704 BitmapUsed by:705
Symbol 705 GraphicUses:704Used by:788
Symbol 706 BitmapUsed by:707
Symbol 707 GraphicUses:706Used by:788
Symbol 708 BitmapUsed by:709
Symbol 709 GraphicUses:708Used by:788
Symbol 710 BitmapUsed by:711
Symbol 711 GraphicUses:710Used by:788
Symbol 712 BitmapUsed by:713
Symbol 713 GraphicUses:712Used by:788
Symbol 714 BitmapUsed by:715
Symbol 715 GraphicUses:714Used by:788
Symbol 716 BitmapUsed by:717
Symbol 717 GraphicUses:716Used by:788
Symbol 718 BitmapUsed by:719
Symbol 719 GraphicUses:718Used by:788
Symbol 720 BitmapUsed by:721
Symbol 721 GraphicUses:720Used by:788
Symbol 722 BitmapUsed by:723
Symbol 723 GraphicUses:722Used by:788
Symbol 724 BitmapUsed by:725
Symbol 725 GraphicUses:724Used by:788
Symbol 726 BitmapUsed by:727
Symbol 727 GraphicUses:726Used by:788
Symbol 728 BitmapUsed by:729
Symbol 729 GraphicUses:728Used by:788
Symbol 730 BitmapUsed by:731
Symbol 731 GraphicUses:730Used by:788
Symbol 732 BitmapUsed by:733
Symbol 733 GraphicUses:732Used by:788
Symbol 734 BitmapUsed by:735
Symbol 735 GraphicUses:734Used by:788
Symbol 736 BitmapUsed by:737
Symbol 737 GraphicUses:736Used by:788
Symbol 738 BitmapUsed by:739
Symbol 739 GraphicUses:738Used by:788
Symbol 740 BitmapUsed by:741
Symbol 741 GraphicUses:740Used by:788
Symbol 742 BitmapUsed by:743
Symbol 743 GraphicUses:742Used by:788
Symbol 744 BitmapUsed by:745
Symbol 745 GraphicUses:744Used by:788
Symbol 746 BitmapUsed by:747
Symbol 747 GraphicUses:746Used by:788
Symbol 748 BitmapUsed by:749
Symbol 749 GraphicUses:748Used by:788
Symbol 750 BitmapUsed by:751
Symbol 751 GraphicUses:750Used by:788
Symbol 752 BitmapUsed by:753
Symbol 753 GraphicUses:752Used by:788
Symbol 754 BitmapUsed by:755
Symbol 755 GraphicUses:754Used by:788
Symbol 756 BitmapUsed by:757
Symbol 757 GraphicUses:756Used by:788
Symbol 758 BitmapUsed by:759
Symbol 759 GraphicUses:758Used by:788
Symbol 760 BitmapUsed by:761
Symbol 761 GraphicUses:760Used by:788
Symbol 762 BitmapUsed by:763
Symbol 763 GraphicUses:762Used by:788
Symbol 764 BitmapUsed by:765
Symbol 765 GraphicUses:764Used by:788
Symbol 766 BitmapUsed by:767
Symbol 767 GraphicUses:766Used by:788
Symbol 768 BitmapUsed by:769
Symbol 769 GraphicUses:768Used by:788
Symbol 770 BitmapUsed by:771
Symbol 771 GraphicUses:770Used by:788
Symbol 772 BitmapUsed by:773
Symbol 773 GraphicUses:772Used by:788
Symbol 774 BitmapUsed by:775
Symbol 775 GraphicUses:774Used by:788
Symbol 776 BitmapUsed by:777
Symbol 777 GraphicUses:776Used by:788
Symbol 778 BitmapUsed by:779
Symbol 779 GraphicUses:778Used by:788
Symbol 780 BitmapUsed by:781
Symbol 781 GraphicUses:780Used by:788
Symbol 782 BitmapUsed by:783
Symbol 783 GraphicUses:782Used by:788
Symbol 784 BitmapUsed by:785
Symbol 785 GraphicUses:784Used by:788
Symbol 786 BitmapUsed by:787
Symbol 787 GraphicUses:786Used by:788
Symbol 788 MovieClipUses:691 693 695 697 699 701 703 705 707 709 711 713 715 717 719 721 723 725 727 729 731 733 735 737 739 741 743 745 747 749 751 753 755 757 759 761 763 765 767 769 771 773 775 777 779 781 783 785 787Used by:789
Symbol 789 MovieClip {Items_fla.Key_2} [Items_fla.Key_2]Uses:491 590 689 788Used by:790
Symbol 790 MovieClip {KeySprite} [KeySprite]Uses:392 789
Symbol 791 GraphicUsed by:792
Symbol 792 MovieClip {Erase} [Erase]Uses:791
Symbol 793 GraphicUsed by:822
Symbol 794 GraphicUsed by:822
Symbol 795 GraphicUsed by:822
Symbol 796 GraphicUsed by:822
Symbol 797 GraphicUsed by:822
Symbol 798 GraphicUsed by:822
Symbol 799 GraphicUsed by:822
Symbol 800 GraphicUsed by:822
Symbol 801 GraphicUsed by:822
Symbol 802 GraphicUsed by:822
Symbol 803 GraphicUsed by:822
Symbol 804 GraphicUsed by:822
Symbol 805 GraphicUsed by:822
Symbol 806 GraphicUsed by:822 850
Symbol 807 GraphicUsed by:822 850
Symbol 808 GraphicUsed by:822
Symbol 809 GraphicUsed by:822
Symbol 810 GraphicUsed by:822
Symbol 811 GraphicUsed by:822
Symbol 812 GraphicUsed by:822
Symbol 813 GraphicUsed by:822
Symbol 814 GraphicUsed by:822 906
Symbol 815 GraphicUsed by:822
Symbol 816 GraphicUsed by:822 906
Symbol 817 GraphicUsed by:822
Symbol 818 GraphicUsed by:822
Symbol 819 GraphicUsed by:822
Symbol 820 GraphicUsed by:822
Symbol 821 GraphicUsed by:822
Symbol 822 MovieClip {Tiles_fla.LU_Block_30} [Tiles_fla.LU_Block_30]Uses:793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821Used by:907
Symbol 823 GraphicUsed by:850
Symbol 824 GraphicUsed by:850
Symbol 825 GraphicUsed by:850
Symbol 826 GraphicUsed by:850
Symbol 827 GraphicUsed by:850
Symbol 828 GraphicUsed by:850
Symbol 829 GraphicUsed by:850
Symbol 830 GraphicUsed by:850
Symbol 831 GraphicUsed by:850
Symbol 832 GraphicUsed by:850
Symbol 833 GraphicUsed by:850
Symbol 834 GraphicUsed by:850
Symbol 835 GraphicUsed by:850
Symbol 836 GraphicUsed by:850
Symbol 837 GraphicUsed by:850
Symbol 838 GraphicUsed by:850
Symbol 839 GraphicUsed by:850
Symbol 840 GraphicUsed by:850
Symbol 841 GraphicUsed by:850
Symbol 842 GraphicUsed by:850 878
Symbol 843 GraphicUsed by:850
Symbol 844 GraphicUsed by:850 878
Symbol 845 GraphicUsed by:850
Symbol 846 GraphicUsed by:850
Symbol 847 GraphicUsed by:850
Symbol 848 GraphicUsed by:850
Symbol 849 GraphicUsed by:850
Symbol 850 MovieClip {Tiles_fla.LD_Block_31} [Tiles_fla.LD_Block_31]Uses:823 824 825 826 827 828 829 830 831 832 833 834 835 806 807 836 837 838 839 840 841 842 843 844 845 846 847 848 849Used by:907
Symbol 851 GraphicUsed by:878
Symbol 852 GraphicUsed by:878
Symbol 853 GraphicUsed by:878
Symbol 854 GraphicUsed by:878
Symbol 855 GraphicUsed by:878
Symbol 856 GraphicUsed by:878
Symbol 857 GraphicUsed by:878
Symbol 858 GraphicUsed by:878
Symbol 859 GraphicUsed by:878
Symbol 860 GraphicUsed by:878
Symbol 861 GraphicUsed by:878
Symbol 862 GraphicUsed by:878
Symbol 863 GraphicUsed by:878
Symbol 864 GraphicUsed by:878
Symbol 865 GraphicUsed by:878
Symbol 866 GraphicUsed by:878
Symbol 867 GraphicUsed by:878
Symbol 868 GraphicUsed by:878
Symbol 869 GraphicUsed by:878
Symbol 870 GraphicUsed by:878
Symbol 871 GraphicUsed by:878
Symbol 872 GraphicUsed by:878
Symbol 873 GraphicUsed by:878
Symbol 874 GraphicUsed by:878
Symbol 875 GraphicUsed by:878
Symbol 876 GraphicUsed by:878
Symbol 877 GraphicUsed by:878
Symbol 878 MovieClip {Tiles_fla.RD_Block_32} [Tiles_fla.RD_Block_32]Uses:851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 842 872 844 873 874 875 876 877Used by:907
Symbol 879 GraphicUsed by:906
Symbol 880 GraphicUsed by:906
Symbol 881 GraphicUsed by:906
Symbol 882 GraphicUsed by:906
Symbol 883 GraphicUsed by:906
Symbol 884 GraphicUsed by:906
Symbol 885 GraphicUsed by:906
Symbol 886 GraphicUsed by:906
Symbol 887 GraphicUsed by:906
Symbol 888 GraphicUsed by:906
Symbol 889 GraphicUsed by:906
Symbol 890 GraphicUsed by:906
Symbol 891 GraphicUsed by:906
Symbol 892 GraphicUsed by:906
Symbol 893 GraphicUsed by:906
Symbol 894 GraphicUsed by:906
Symbol 895 GraphicUsed by:906
Symbol 896 GraphicUsed by:906
Symbol 897 GraphicUsed by:906
Symbol 898 GraphicUsed by:906
Symbol 899 GraphicUsed by:906
Symbol 900 GraphicUsed by:906
Symbol 901 GraphicUsed by:906
Symbol 902 GraphicUsed by:906
Symbol 903 GraphicUsed by:906
Symbol 904 GraphicUsed by:906
Symbol 905 GraphicUsed by:906
Symbol 906 MovieClip {Tiles_fla.RU_Block_33} [Tiles_fla.RU_Block_33]Uses:879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 814 900 816 901 902 903 904 905Used by:907
Symbol 907 MovieClip {main.field.Block} [main.field.Block]Uses:822 850 878 906
Symbol 908 GraphicUsed by:913 924 927 930 933
Symbol 909 GraphicUsed by:910
Symbol 910 MovieClipUses:909Used by:913 924 927 930 933
Symbol 911 GraphicUsed by:912
Symbol 912 MovieClipUses:911Used by:913 924 927 930 933
Symbol 913 MovieClip {ThornsSprite} [ThornsSprite]Uses:113 908 910 912
Symbol 914 GraphicUsed by:924 927 930 933
Symbol 915 ShapeTweeningUsed by:924
Symbol 916 GraphicUsed by:924 927 930 933
Symbol 917 GraphicUsed by:924 927 930 933
Symbol 918 GraphicUsed by:924 927 930 933
Symbol 919 GraphicUsed by:924 927 930 933
Symbol 920 GraphicUsed by:924 927 930 933
Symbol 921 GraphicUsed by:924 927 930 933
Symbol 922 GraphicUsed by:924 927 930 933
Symbol 923 ShapeTweeningUsed by:924
Symbol 924 MovieClip {Thorns_800} [Thorns_800]Uses:113 914 915 916 910 912 917 918 919 920 921 908 922 923
Symbol 925 ShapeTweeningUsed by:927
Symbol 926 ShapeTweeningUsed by:927
Symbol 927 MovieClip {Thorns_1000} [Thorns_1000]Uses:113 914 925 916 910 912 917 918 919 920 921 908 922 926
Symbol 928 ShapeTweeningUsed by:930
Symbol 929 ShapeTweeningUsed by:930
Symbol 930 MovieClip {Thorns_400} [Thorns_400]Uses:113 914 928 916 910 912 917 918 919 920 921 908 922 929
Symbol 931 ShapeTweeningUsed by:933
Symbol 932 ShapeTweeningUsed by:933
Symbol 933 MovieClip {Thorns_600} [Thorns_600]Uses:113 914 931 916 910 912 917 918 919 920 921 908 922 932
Symbol 934 GraphicUsed by:935
Symbol 935 MovieClipUses:934Used by:953 1012
Symbol 936 TextUses:251Used by:937
Symbol 937 ButtonUses:351 936 350 253Used by:953
Symbol 938 GraphicUsed by:939
Symbol 939 MovieClipUses:938Used by:953
Symbol 940 TextUses:251Used by:953
Symbol 941 TextUses:251Used by:953
Symbol 942 TextUses:251Used by:953
Symbol 943 TextUses:251Used by:953
Symbol 944 TextUses:251Used by:953
Symbol 945 TextUses:251Used by:953
Symbol 946 TextUses:251Used by:953
Symbol 947 TextUses:251Used by:953
Symbol 948 TextUses:251Used by:953
Symbol 949 TextUses:251Used by:953
Symbol 950 TextUses:251Used by:953
Symbol 951 TextUses:251Used by:953
Symbol 952 TextUses:251Used by:953
Symbol 953 MovieClip {CreditsSprite} [CreditsSprite]Uses:935 937 939 940 941 942 943 944 945 946 947 948 949 950 951 952
Symbol 954 TextUses:251Used by:963
Symbol 955 TextUses:251Used by:957
Symbol 956 TextUses:251Used by:957
Symbol 957 ButtonUses:351 955 956 350 253Used by:963
Symbol 958 TextUses:251Used by:960
Symbol 959 TextUses:251Used by:960
Symbol 960 ButtonUses:351 958 959 350 253Used by:963
Symbol 961 EditableTextUses:251Used by:963
Symbol 962 TextUses:251Used by:963
Symbol 963 MovieClip {StatWindowSprite} [StatWindowSprite]Uses:248 954 957 960 961 962
Symbol 964 GraphicUsed by:965
Symbol 965 MovieClipUses:964Used by:974 1601
Symbol 966 TextUses:251Used by:974
Symbol 967 TextUses:251Used by:969
Symbol 968 TextUses:251Used by:969
Symbol 969 ButtonUses:351 967 968 350 253Used by:974 1601
Symbol 970 TextUses:251Used by:972
Symbol 971 TextUses:251Used by:972
Symbol 972 ButtonUses:351 970 971 350 253Used by:974
Symbol 973 TextUses:251Used by:974 1601
Symbol 974 MovieClip {BackWindowSprite} [BackWindowSprite]Uses:965 966 969 972 973
Symbol 975 Sound {sndScream} [sndScream]
Symbol 976 Sound {sndGameOver} [sndGameOver]
Symbol 977 Sound {sndFinish} [sndFinish]
Symbol 978 Sound {sndKick} [sndKick]
Symbol 979 Sound {sndBonus} [sndBonus]
Symbol 980 Sound {sndThornsShow} [sndThornsShow]
Symbol 981 Sound {sndDead} [sndDead]
Symbol 982 Sound {sndStep} [sndStep]
Symbol 983 Sound {sndJump} [sndJump]
Symbol 984 Sound {sndIntro} [sndIntro]
Symbol 985 Sound {sndDoor} [sndDoor]
Symbol 986 Sound {sndThornsHide} [sndThornsHide]
Symbol 987 Sound {sndCrumble} [sndCrumble]
Symbol 988 Sound {sndBlowing} [sndBlowing]
Symbol 989 FontUsed by:990
Symbol 990 TextUses:989Used by:1012
Symbol 991 TextUses:251Used by:992
Symbol 992 ButtonUses:351 991 350 253Used by:1012
Symbol 993 TextUses:251Used by:994
Symbol 994 ButtonUses:351 993 350 253Used by:1012
Symbol 995 TextUses:251Used by:996
Symbol 996 ButtonUses:351 995 350 253Used by:1012
Symbol 997 TextUses:251Used by:998
Symbol 998 ButtonUses:351 997 350 253Used by:1012
Symbol 999 TextUses:251Used by:1000
Symbol 1000 ButtonUses:351 999 350 253Used by:1012
Symbol 1001 GraphicUsed by:1002
Symbol 1002 MovieClipUses:1001Used by:1005
Symbol 1003 GraphicUsed by:1005
Symbol 1004 GraphicUsed by:1005
Symbol 1005 ButtonUses:1002 1003 1004Used by:1012 1651
Symbol 1006 GraphicUsed by:1007
Symbol 1007 MovieClipUses:1006Used by:1009
Symbol 1008 GraphicUsed by:1009
Symbol 1009 ButtonUses:1007 1008 369Used by:1012 1651
Symbol 1010 TextUses:251Used by:1011
Symbol 1011 ButtonUses:351 1010 350 253Used by:1012
Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite]Uses:990 935 992 994 996 998 1000 1005 1009 1011 370
Symbol 1013 GraphicUsed by:1014
Symbol 1014 MovieClipUses:1013Used by:1022
Symbol 1015 GraphicUsed by:1016 1644 1647 1650
Symbol 1016 MovieClipUses:1015Used by:1022 1644 1647 1650 1651
Symbol 1017 GraphicUsed by:1018
Symbol 1018 MovieClipUses:1017Used by:1022
Symbol 1019 EditableTextUses:251Used by:1022
Symbol 1020 TextUses:251Used by:1022
Symbol 1021 EditableTextUses:251Used by:1022
Symbol 1022 MovieClip {GamePanelSprite} [GamePanelSprite]Uses:1014 1016 1018 1019 1020 1021
Symbol 1023 GraphicUsed by:1082
Symbol 1024 GraphicUsed by:1025
Symbol 1025 MovieClipUses:1024Used by:1061 1062 1081 1672 1675 1708 1709 1726
Symbol 1026 MovieClip {fl.core.ComponentShim} [fl.core.ComponentShim]Used by:1061 1062 1081 1672 1675 1706 1707 1708 1709 1726
Symbol 1027 GraphicUsed by:1028 1673
Symbol 1028 MovieClip {TextArea_disabledSkin} [TextArea_disabledSkin]Uses:1027Used by:1062
Symbol 1029 GraphicUsed by:1030 1674
Symbol 1030 MovieClip {TextArea_upSkin} [TextArea_upSkin]Uses:1029Used by:1062
Symbol 1031 GraphicUsed by:1032
Symbol 1032 MovieClip {focusRectSkin} [focusRectSkin]Uses:1031Used by:1061 1062 1081 1672 1675 1707 1708 1709 1726
Symbol 1033 GraphicUsed by:1034
Symbol 1034 MovieClip {ScrollTrack_skin} [ScrollTrack_skin]Uses:1033Used by:1061 1707
Symbol 1035 GraphicUsed by:1038
Symbol 1036 GraphicUsed by:1037 1040 1044 1054 1711 1713 1715 1717 1719 1721 1723 1725
Symbol 1037 MovieClipUses:1036Used by:1038 1048 1050
Symbol 1038 MovieClip {ScrollArrowUp_downSkin} [ScrollArrowUp_downSkin]Uses:1035 1037Used by:1061 1707
Symbol 1039 GraphicUsed by:1040
Symbol 1040 MovieClip {ScrollArrowDown_downSkin} [ScrollArrowDown_downSkin]Uses:1039 1036Used by:1061 1707
Symbol 1041 GraphicUsed by:1042
Symbol 1042 MovieClip {ScrollThumb_downSkin} [ScrollThumb_downSkin]Uses:1041Used by:1061 1707
Symbol 1043 GraphicUsed by:1044
Symbol 1044 MovieClip {ScrollArrowDown_overSkin} [ScrollArrowDown_overSkin]Uses:1043 1036Used by:1061 1707
Symbol 1045 GraphicUsed by:1046
Symbol 1046 MovieClip {ScrollThumb_overSkin} [ScrollThumb_overSkin]Uses:1045Used by:1061 1707
Symbol 1047 GraphicUsed by:1048
Symbol 1048 MovieClip {ScrollArrowUp_overSkin} [ScrollArrowUp_overSkin]Uses:1047 1037Used by:1061 1707
Symbol 1049 GraphicUsed by:1050
Symbol 1050 MovieClip {ScrollArrowUp_upSkin} [ScrollArrowUp_upSkin]Uses:1049 1037Used by:1061 1707
Symbol 1051 GraphicUsed by:1052
Symbol 1052 MovieClip {ScrollThumb_upSkin} [ScrollThumb_upSkin]Uses:1051Used by:1061 1707
Symbol 1053 GraphicUsed by:1054
Symbol 1054 MovieClip {ScrollArrowDown_upSkin} [ScrollArrowDown_upSkin]Uses:1053 1036Used by:1061 1707
Symbol 1055 GraphicUsed by:1056
Symbol 1056 MovieClip {ScrollArrowDown_disabledSkin} [ScrollArrowDown_disabledSkin]Uses:1055Used by:1061 1707
Symbol 1057 GraphicUsed by:1058
Symbol 1058 MovieClip {ScrollArrowUp_disabledSkin} [ScrollArrowUp_disabledSkin]Uses:1057Used by:1061 1707
Symbol 1059 GraphicUsed by:1060
Symbol 1060 MovieClip {ScrollBar_thumbIcon} [ScrollBar_thumbIcon]Uses:1059Used by:1061 1707
Symbol 1061 MovieClip {fl.controls.UIScrollBar} [fl.controls.UIScrollBar]Uses:1025 1026 1032 1034 1038 1040 1042 1044 1046 1048 1050 1052 1054 1056 1058 1060Used by:1062
Symbol 1062 MovieClip {fl.controls.TextArea} [fl.controls.TextArea]Uses:1025 1026 1028 1030 1032 1061Used by:1082
Symbol 1063 GraphicUsed by:1064
Symbol 1064 MovieClip {Button_disabledSkin} [Button_disabledSkin]Uses:1063Used by:1081
Symbol 1065 GraphicUsed by:1066
Symbol 1066 MovieClip {Button_downSkin} [Button_downSkin]Uses:1065Used by:1081
Symbol 1067 GraphicUsed by:1068
Symbol 1068 MovieClip {Button_emphasizedSkin} [Button_emphasizedSkin]Uses:1067Used by:1081
Symbol 1069 GraphicUsed by:1070
Symbol 1070 MovieClip {Button_overSkin} [Button_overSkin]Uses:1069Used by:1081
Symbol 1071 GraphicUsed by:1072
Symbol 1072 MovieClip {Button_selectedDisabledSkin} [Button_selectedDisabledSkin]Uses:1071Used by:1081
Symbol 1073 GraphicUsed by:1074
Symbol 1074 MovieClip {Button_selectedDownSkin} [Button_selectedDownSkin]Uses:1073Used by:1081
Symbol 1075 GraphicUsed by:1076
Symbol 1076 MovieClip {Button_selectedOverSkin} [Button_selectedOverSkin]Uses:1075Used by:1081
Symbol 1077 GraphicUsed by:1078
Symbol 1078 MovieClip {Button_selectedUpSkin} [Button_selectedUpSkin]Uses:1077Used by:1081
Symbol 1079 GraphicUsed by:1080
Symbol 1080 MovieClip {Button_upSkin} [Button_upSkin]Uses:1079Used by:1081
Symbol 1081 MovieClip {fl.controls.Button} [fl.controls.Button]Uses:1025 1026 1064 1066 1068 1070 1072 1074 1076 1078 1080 1032Used by:1082 1676 1733
Symbol 1082 MovieClip {CodePanelSprite} [CodePanelSprite]Uses:1023 1062 1081
Symbol 1083 GraphicUsed by:1084
Symbol 1084 MovieClip {Sky} [Sky]Uses:1083
Symbol 1085 GraphicUsed by:1086
Symbol 1086 MovieClip {Cloud_2} [Cloud_2]Uses:1085
Symbol 1087 GraphicUsed by:1088
Symbol 1088 MovieClip {Back_4} [Back_4]Uses:1087
Symbol 1089 TextUses:251Used by:1102
Symbol 1090 TextUses:251Used by:1102
Symbol 1091 GraphicUsed by:1102
Symbol 1092 TextUses:251Used by:1102
Symbol 1093 GraphicUsed by:1102
Symbol 1094 TextUses:251Used by:1102 1118
Symbol 1095 TextUses:251Used by:1102
Symbol 1096 GraphicUsed by:1097
Symbol 1097 MovieClipUses:1096Used by:1102 1118
Symbol 1098 TextUses:251Used by:1102 1118
Symbol 1099 TextUses:251Used by:1102
Symbol 1100 GraphicUsed by:1102
Symbol 1101 TextUses:251Used by:1102
Symbol 1102 MovieClipUses:1089 1090 1091 1092 1093 1094 1095 1097 1098 1099 1100 1101Used by:1103
Symbol 1103 MovieClip {Tutorial_2} [Tutorial_2]Uses:1102
Symbol 1104 GraphicUsed by:1105
Symbol 1105 MovieClip {Back_5} [Back_5]Uses:1104
Symbol 1106 GraphicUsed by:1107
Symbol 1107 MovieClip {Cloud_3} [Cloud_3]Uses:1106
Symbol 1108 GraphicUsed by:1118
Symbol 1109 TextUses:251Used by:1118
Symbol 1110 TextUses:251Used by:1118
Symbol 1111 TextUses:251Used by:1118
Symbol 1112 TextUses:251Used by:1118
Symbol 1113 TextUses:251Used by:1118
Symbol 1114 TextUses:251Used by:1118
Symbol 1115 GraphicUsed by:1118
Symbol 1116 TextUses:251Used by:1118
Symbol 1117 GraphicUsed by:1118
Symbol 1118 MovieClipUses:1108 1109 1110 1097 1098 1111 1112 1113 1094 1114 1115 1116 1117Used by:1119
Symbol 1119 MovieClip {Tutorial_1} [Tutorial_1]Uses:1118
Symbol 1120 TextUses:251Used by:1125
Symbol 1121 TextUses:251Used by:1125
Symbol 1122 GraphicUsed by:1125
Symbol 1123 TextUses:251Used by:1125
Symbol 1124 GraphicUsed by:1125
Symbol 1125 MovieClipUses:1120 1121 1122 1123 1124Used by:1126
Symbol 1126 MovieClip {Tutorial_4} [Tutorial_4]Uses:1125
Symbol 1127 GraphicUsed by:1128
Symbol 1128 MovieClip {Cloud_4} [Cloud_4]Uses:1127
Symbol 1129 TextUses:251Used by:1133
Symbol 1130 GraphicUsed by:1133
Symbol 1131 TextUses:251Used by:1133
Symbol 1132 GraphicUsed by:1133
Symbol 1133 MovieClipUses:1129 1130 1131 1132Used by:1134
Symbol 1134 MovieClip {Tutorial_3} [Tutorial_3]Uses:1133
Symbol 1135 GraphicUsed by:1136
Symbol 1136 MovieClip {Cloud_5} [Cloud_5]Uses:1135
Symbol 1137 GraphicUsed by:1138
Symbol 1138 MovieClip {Cloud_6} [Cloud_6]Uses:1137
Symbol 1139 GraphicUsed by:1140
Symbol 1140 MovieClip {Back_1} [Back_1]Uses:1139
Symbol 1141 TextUses:251Used by:1145
Symbol 1142 GraphicUsed by:1145
Symbol 1143 TextUses:251Used by:1145
Symbol 1144 TextUses:251Used by:1145
Symbol 1145 ButtonUses:1141 1142 1143 1144Used by:1146
Symbol 1146 MovieClip {Tutorial_5} [Tutorial_5]Uses:1145
Symbol 1147 GraphicUsed by:1148
Symbol 1148 MovieClip {Back_2} [Back_2]Uses:1147
Symbol 1149 GraphicUsed by:1150
Symbol 1150 MovieClip {Back_3} [Back_3]Uses:1149
Symbol 1151 GraphicUsed by:1152
Symbol 1152 MovieClip {Cloud_1} [Cloud_1]Uses:1151
Symbol 1153 BitmapUsed by:1154
Symbol 1154 GraphicUses:1153Used by:1497
Symbol 1155 BitmapUsed by:1156 1495
Symbol 1156 GraphicUses:1155Used by:1496
Symbol 1157 BitmapUsed by:1158
Symbol 1158 GraphicUses:1157Used by:1496
Symbol 1159 BitmapUsed by:1160
Symbol 1160 GraphicUses:1159Used by:1496
Symbol 1161 BitmapUsed by:1162
Symbol 1162 GraphicUses:1161Used by:1496
Symbol 1163 BitmapUsed by:1164
Symbol 1164 GraphicUses:1163Used by:1496
Symbol 1165 BitmapUsed by:1166
Symbol 1166 GraphicUses:1165Used by:1496
Symbol 1167 BitmapUsed by:1168
Symbol 1168 GraphicUses:1167Used by:1496
Symbol 1169 BitmapUsed by:1170
Symbol 1170 GraphicUses:1169Used by:1496
Symbol 1171 BitmapUsed by:1172
Symbol 1172 GraphicUses:1171Used by:1496
Symbol 1173 BitmapUsed by:1174
Symbol 1174 GraphicUses:1173Used by:1496
Symbol 1175 BitmapUsed by:1176
Symbol 1176 GraphicUses:1175Used by:1496
Symbol 1177 BitmapUsed by:1178
Symbol 1178 GraphicUses:1177Used by:1496
Symbol 1179 BitmapUsed by:1180
Symbol 1180 GraphicUses:1179Used by:1496
Symbol 1181 BitmapUsed by:1182
Symbol 1182 GraphicUses:1181Used by:1496
Symbol 1183 BitmapUsed by:1184
Symbol 1184 GraphicUses:1183Used by:1496
Symbol 1185 BitmapUsed by:1186
Symbol 1186 GraphicUses:1185Used by:1496
Symbol 1187 BitmapUsed by:1188
Symbol 1188 GraphicUses:1187Used by:1496
Symbol 1189 BitmapUsed by:1190
Symbol 1190 GraphicUses:1189Used by:1496
Symbol 1191 BitmapUsed by:1192
Symbol 1192 GraphicUses:1191Used by:1496
Symbol 1193 BitmapUsed by:1194
Symbol 1194 GraphicUses:1193Used by:1496
Symbol 1195 BitmapUsed by:1196
Symbol 1196 GraphicUses:1195Used by:1496
Symbol 1197 BitmapUsed by:1198
Symbol 1198 GraphicUses:1197Used by:1496
Symbol 1199 BitmapUsed by:1200
Symbol 1200 GraphicUses:1199Used by:1496
Symbol 1201 BitmapUsed by:1202
Symbol 1202 GraphicUses:1201Used by:1496
Symbol 1203 BitmapUsed by:1204
Symbol 1204 GraphicUses:1203Used by:1496
Symbol 1205 BitmapUsed by:1206
Symbol 1206 GraphicUses:1205Used by:1496
Symbol 1207 BitmapUsed by:1208
Symbol 1208 GraphicUses:1207Used by:1496
Symbol 1209 BitmapUsed by:1210
Symbol 1210 GraphicUses:1209Used by:1496
Symbol 1211 BitmapUsed by:1212
Symbol 1212 GraphicUses:1211Used by:1496
Symbol 1213 BitmapUsed by:1214
Symbol 1214 GraphicUses:1213Used by:1496
Symbol 1215 BitmapUsed by:1216
Symbol 1216 GraphicUses:1215Used by:1496
Symbol 1217 BitmapUsed by:1218
Symbol 1218 GraphicUses:1217Used by:1496
Symbol 1219 BitmapUsed by:1220
Symbol 1220 GraphicUses:1219Used by:1496
Symbol 1221 BitmapUsed by:1222
Symbol 1222 GraphicUses:1221Used by:1496
Symbol 1223 BitmapUsed by:1224
Symbol 1224 GraphicUses:1223Used by:1496
Symbol 1225 BitmapUsed by:1226
Symbol 1226 GraphicUses:1225Used by:1496
Symbol 1227 BitmapUsed by:1228
Symbol 1228 GraphicUses:1227Used by:1496
Symbol 1229 BitmapUsed by:1230
Symbol 1230 GraphicUses:1229Used by:1496
Symbol 1231 BitmapUsed by:1232
Symbol 1232 GraphicUses:1231Used by:1496
Symbol 1233 BitmapUsed by:1234
Symbol 1234 GraphicUses:1233Used by:1496
Symbol 1235 BitmapUsed by:1236
Symbol 1236 GraphicUses:1235Used by:1496
Symbol 1237 BitmapUsed by:1238
Symbol 1238 GraphicUses:1237Used by:1496
Symbol 1239 BitmapUsed by:1240
Symbol 1240 GraphicUses:1239Used by:1496
Symbol 1241 BitmapUsed by:1242
Symbol 1242 GraphicUses:1241Used by:1496
Symbol 1243 BitmapUsed by:1244
Symbol 1244 GraphicUses:1243Used by:1496
Symbol 1245 BitmapUsed by:1246
Symbol 1246 GraphicUses:1245Used by:1496
Symbol 1247 BitmapUsed by:1248
Symbol 1248 GraphicUses:1247Used by:1496
Symbol 1249 BitmapUsed by:1250
Symbol 1250 GraphicUses:1249Used by:1496
Symbol 1251 BitmapUsed by:1252
Symbol 1252 GraphicUses:1251Used by:1496
Symbol 1253 BitmapUsed by:1254
Symbol 1254 GraphicUses:1253Used by:1496
Symbol 1255 BitmapUsed by:1256
Symbol 1256 GraphicUses:1255Used by:1496
Symbol 1257 BitmapUsed by:1258
Symbol 1258 GraphicUses:1257Used by:1496
Symbol 1259 BitmapUsed by:1260
Symbol 1260 GraphicUses:1259Used by:1496
Symbol 1261 BitmapUsed by:1262
Symbol 1262 GraphicUses:1261Used by:1496
Symbol 1263 BitmapUsed by:1264
Symbol 1264 GraphicUses:1263Used by:1496
Symbol 1265 BitmapUsed by:1266
Symbol 1266 GraphicUses:1265Used by:1496
Symbol 1267 BitmapUsed by:1268
Symbol 1268 GraphicUses:1267Used by:1496
Symbol 1269 BitmapUsed by:1270
Symbol 1270 GraphicUses:1269Used by:1496
Symbol 1271 BitmapUsed by:1272
Symbol 1272 GraphicUses:1271Used by:1496
Symbol 1273 BitmapUsed by:1274
Symbol 1274 GraphicUses:1273Used by:1496
Symbol 1275 BitmapUsed by:1276
Symbol 1276 GraphicUses:1275Used by:1496
Symbol 1277 BitmapUsed by:1278
Symbol 1278 GraphicUses:1277Used by:1496
Symbol 1279 BitmapUsed by:1280
Symbol 1280 GraphicUses:1279Used by:1496
Symbol 1281 BitmapUsed by:1282
Symbol 1282 GraphicUses:1281Used by:1496
Symbol 1283 BitmapUsed by:1284
Symbol 1284 GraphicUses:1283Used by:1496
Symbol 1285 BitmapUsed by:1286
Symbol 1286 GraphicUses:1285Used by:1496
Symbol 1287 BitmapUsed by:1288
Symbol 1288 GraphicUses:1287Used by:1496
Symbol 1289 BitmapUsed by:1290
Symbol 1290 GraphicUses:1289Used by:1496
Symbol 1291 BitmapUsed by:1292
Symbol 1292 GraphicUses:1291Used by:1496
Symbol 1293 BitmapUsed by:1294
Symbol 1294 GraphicUses:1293Used by:1496
Symbol 1295 BitmapUsed by:1296
Symbol 1296 GraphicUses:1295Used by:1496
Symbol 1297 BitmapUsed by:1298
Symbol 1298 GraphicUses:1297Used by:1496
Symbol 1299 BitmapUsed by:1300
Symbol 1300 GraphicUses:1299Used by:1496
Symbol 1301 BitmapUsed by:1302
Symbol 1302 GraphicUses:1301Used by:1496
Symbol 1303 BitmapUsed by:1304
Symbol 1304 GraphicUses:1303Used by:1496
Symbol 1305 BitmapUsed by:1306
Symbol 1306 GraphicUses:1305Used by:1496
Symbol 1307 BitmapUsed by:1308
Symbol 1308 GraphicUses:1307Used by:1496
Symbol 1309 BitmapUsed by:1310
Symbol 1310 GraphicUses:1309Used by:1496
Symbol 1311 BitmapUsed by:1312
Symbol 1312 GraphicUses:1311Used by:1496
Symbol 1313 BitmapUsed by:1314
Symbol 1314 GraphicUses:1313Used by:1496
Symbol 1315 BitmapUsed by:1316
Symbol 1316 GraphicUses:1315Used by:1496
Symbol 1317 BitmapUsed by:1318
Symbol 1318 GraphicUses:1317Used by:1496
Symbol 1319 BitmapUsed by:1320
Symbol 1320 GraphicUses:1319Used by:1496
Symbol 1321 BitmapUsed by:1322
Symbol 1322 GraphicUses:1321Used by:1496
Symbol 1323 BitmapUsed by:1324
Symbol 1324 GraphicUses:1323Used by:1496
Symbol 1325 BitmapUsed by:1326
Symbol 1326 GraphicUses:1325Used by:1496
Symbol 1327 BitmapUsed by:1328
Symbol 1328 GraphicUses:1327Used by:1496
Symbol 1329 BitmapUsed by:1330
Symbol 1330 GraphicUses:1329Used by:1496
Symbol 1331 BitmapUsed by:1332
Symbol 1332 GraphicUses:1331Used by:1496
Symbol 1333 BitmapUsed by:1334
Symbol 1334 GraphicUses:1333Used by:1496
Symbol 1335 BitmapUsed by:1336
Symbol 1336 GraphicUses:1335Used by:1496
Symbol 1337 BitmapUsed by:1338
Symbol 1338 GraphicUses:1337Used by:1496
Symbol 1339 BitmapUsed by:1340
Symbol 1340 GraphicUses:1339Used by:1496
Symbol 1341 BitmapUsed by:1342
Symbol 1342 GraphicUses:1341Used by:1496
Symbol 1343 BitmapUsed by:1344
Symbol 1344 GraphicUses:1343Used by:1496
Symbol 1345 BitmapUsed by:1346
Symbol 1346 GraphicUses:1345Used by:1496
Symbol 1347 BitmapUsed by:1348
Symbol 1348 GraphicUses:1347Used by:1496
Symbol 1349 BitmapUsed by:1350
Symbol 1350 GraphicUses:1349Used by:1496
Symbol 1351 BitmapUsed by:1352
Symbol 1352 GraphicUses:1351Used by:1496
Symbol 1353 BitmapUsed by:1354
Symbol 1354 GraphicUses:1353Used by:1496
Symbol 1355 BitmapUsed by:1356
Symbol 1356 GraphicUses:1355Used by:1496
Symbol 1357 BitmapUsed by:1358
Symbol 1358 GraphicUses:1357Used by:1496
Symbol 1359 BitmapUsed by:1360
Symbol 1360 GraphicUses:1359Used by:1496
Symbol 1361 BitmapUsed by:1362
Symbol 1362 GraphicUses:1361Used by:1496
Symbol 1363 BitmapUsed by:1364
Symbol 1364 GraphicUses:1363Used by:1496
Symbol 1365 BitmapUsed by:1366
Symbol 1366 GraphicUses:1365Used by:1496
Symbol 1367 BitmapUsed by:1368
Symbol 1368 GraphicUses:1367Used by:1496
Symbol 1369 BitmapUsed by:1370
Symbol 1370 GraphicUses:1369Used by:1496
Symbol 1371 BitmapUsed by:1372
Symbol 1372 GraphicUses:1371Used by:1496
Symbol 1373 BitmapUsed by:1374
Symbol 1374 GraphicUses:1373Used by:1496
Symbol 1375 BitmapUsed by:1376
Symbol 1376 GraphicUses:1375Used by:1496
Symbol 1377 BitmapUsed by:1378
Symbol 1378 GraphicUses:1377Used by:1496
Symbol 1379 BitmapUsed by:1380
Symbol 1380 GraphicUses:1379Used by:1496
Symbol 1381 BitmapUsed by:1382
Symbol 1382 GraphicUses:1381Used by:1496
Symbol 1383 BitmapUsed by:1384
Symbol 1384 GraphicUses:1383Used by:1496
Symbol 1385 BitmapUsed by:1386
Symbol 1386 GraphicUses:1385Used by:1496
Symbol 1387 BitmapUsed by:1388
Symbol 1388 GraphicUses:1387Used by:1496
Symbol 1389 BitmapUsed by:1390
Symbol 1390 GraphicUses:1389Used by:1496
Symbol 1391 BitmapUsed by:1392
Symbol 1392 GraphicUses:1391Used by:1496
Symbol 1393 BitmapUsed by:1394
Symbol 1394 GraphicUses:1393Used by:1496
Symbol 1395 BitmapUsed by:1396
Symbol 1396 GraphicUses:1395Used by:1496
Symbol 1397 BitmapUsed by:1398
Symbol 1398 GraphicUses:1397Used by:1496
Symbol 1399 BitmapUsed by:1400
Symbol 1400 GraphicUses:1399Used by:1496
Symbol 1401 BitmapUsed by:1402
Symbol 1402 GraphicUses:1401Used by:1496
Symbol 1403 BitmapUsed by:1404
Symbol 1404 GraphicUses:1403Used by:1496
Symbol 1405 BitmapUsed by:1406
Symbol 1406 GraphicUses:1405Used by:1496
Symbol 1407 BitmapUsed by:1408
Symbol 1408 GraphicUses:1407Used by:1496
Symbol 1409 BitmapUsed by:1410
Symbol 1410 GraphicUses:1409Used by:1496
Symbol 1411 BitmapUsed by:1412
Symbol 1412 GraphicUses:1411Used by:1496
Symbol 1413 BitmapUsed by:1414
Symbol 1414 GraphicUses:1413Used by:1496
Symbol 1415 BitmapUsed by:1416
Symbol 1416 GraphicUses:1415Used by:1496
Symbol 1417 BitmapUsed by:1418
Symbol 1418 GraphicUses:1417Used by:1496
Symbol 1419 BitmapUsed by:1420
Symbol 1420 GraphicUses:1419Used by:1496
Symbol 1421 BitmapUsed by:1422
Symbol 1422 GraphicUses:1421Used by:1496
Symbol 1423 BitmapUsed by:1424
Symbol 1424 GraphicUses:1423Used by:1496
Symbol 1425 BitmapUsed by:1426
Symbol 1426 GraphicUses:1425Used by:1496
Symbol 1427 BitmapUsed by:1428
Symbol 1428 GraphicUses:1427Used by:1496
Symbol 1429 BitmapUsed by:1430
Symbol 1430 GraphicUses:1429Used by:1496
Symbol 1431 BitmapUsed by:1432
Symbol 1432 GraphicUses:1431Used by:1496
Symbol 1433 BitmapUsed by:1434
Symbol 1434 GraphicUses:1433Used by:1496
Symbol 1435 BitmapUsed by:1436
Symbol 1436 GraphicUses:1435Used by:1496
Symbol 1437 BitmapUsed by:1438
Symbol 1438 GraphicUses:1437Used by:1496
Symbol 1439 BitmapUsed by:1440
Symbol 1440 GraphicUses:1439Used by:1496
Symbol 1441 BitmapUsed by:1442
Symbol 1442 GraphicUses:1441Used by:1496
Symbol 1443 BitmapUsed by:1444
Symbol 1444 GraphicUses:1443Used by:1496
Symbol 1445 BitmapUsed by:1446
Symbol 1446 GraphicUses:1445Used by:1496
Symbol 1447 BitmapUsed by:1448
Symbol 1448 GraphicUses:1447Used by:1496
Symbol 1449 BitmapUsed by:1450
Symbol 1450 GraphicUses:1449Used by:1496
Symbol 1451 BitmapUsed by:1452
Symbol 1452 GraphicUses:1451Used by:1496
Symbol 1453 BitmapUsed by:1454
Symbol 1454 GraphicUses:1453Used by:1496
Symbol 1455 BitmapUsed by:1456
Symbol 1456 GraphicUses:1455Used by:1496
Symbol 1457 BitmapUsed by:1458
Symbol 1458 GraphicUses:1457Used by:1496
Symbol 1459 BitmapUsed by:1460
Symbol 1460 GraphicUses:1459Used by:1496
Symbol 1461 BitmapUsed by:1462
Symbol 1462 GraphicUses:1461Used by:1496
Symbol 1463 BitmapUsed by:1464
Symbol 1464 GraphicUses:1463Used by:1496
Symbol 1465 BitmapUsed by:1466
Symbol 1466 GraphicUses:1465Used by:1496
Symbol 1467 BitmapUsed by:1468
Symbol 1468 GraphicUses:1467Used by:1496
Symbol 1469 BitmapUsed by:1470
Symbol 1470 GraphicUses:1469Used by:1496
Symbol 1471 BitmapUsed by:1472
Symbol 1472 GraphicUses:1471Used by:1496
Symbol 1473 BitmapUsed by:1474
Symbol 1474 GraphicUses:1473Used by:1496
Symbol 1475 BitmapUsed by:1476
Symbol 1476 GraphicUses:1475Used by:1496
Symbol 1477 BitmapUsed by:1478
Symbol 1478 GraphicUses:1477Used by:1496
Symbol 1479 BitmapUsed by:1480
Symbol 1480 GraphicUses:1479Used by:1496
Symbol 1481 BitmapUsed by:1482
Symbol 1482 GraphicUses:1481Used by:1496
Symbol 1483 BitmapUsed by:1484
Symbol 1484 GraphicUses:1483Used by:1496
Symbol 1485 BitmapUsed by:1486
Symbol 1486 GraphicUses:1485Used by:1496
Symbol 1487 BitmapUsed by:1488
Symbol 1488 GraphicUses:1487Used by:1496
Symbol 1489 BitmapUsed by:1490
Symbol 1490 GraphicUses:1489Used by:1496
Symbol 1491 BitmapUsed by:1492
Symbol 1492 GraphicUses:1491Used by:1496
Symbol 1493 BitmapUsed by:1494
Symbol 1494 GraphicUses:1493Used by:1496
Symbol 1495 GraphicUses:1155Used by:1496
Symbol 1496 MovieClipUses:1156 1158 1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1192 1194 1196 1198 1200 1202 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 1226 1228 1230 1232 1234 1236 1238 1240 1242 1244 1246 1248 1250 1252 1254 1256 1258 1260 1262 1264 1266 1268 1270 1272 1274 1276 1278 1280 1282 1284 1286 1288 1290 1292 1294 1296 1298 1300 1302 1304 1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1332 1334 1336 1338 1340 1342 1344 1346 1348 1350 1352 1354 1356 1358 1360 1362 1364 1366 1368 1370 1372 1374 1376 1378 1380 1382 1384 1386 1388 1390 1392 1394 1396 1398 1400 1402 1404 1406 1408 1410 1412 1414 1416 1418 1420 1422 1424 1426 1428 1430 1432 1434 1436 1438 1440 1442 1444 1446 1448 1450 1452 1454 1456 1458 1460 1462 1464 1466 1468 1470 1472 1474 1476 1478 1480 1482 1484 1486 1488 1490 1492 1494 1495Used by:1497
Symbol 1497 MovieClip {Sun} [Sun]Uses:1154 1496
Symbol 1498 GraphicUsed by:1499
Symbol 1499 MovieClip {Tree_2} [Tree_2]Uses:1498
Symbol 1500 GraphicUsed by:1501
Symbol 1501 MovieClip {Tree_1} [Tree_1]Uses:1500
Symbol 1502 GraphicUsed by:1503
Symbol 1503 MovieClip {Tree_4} [Tree_4]Uses:1502
Symbol 1504 GraphicUsed by:1505
Symbol 1505 MovieClip {Bush_2} [Bush_2]Uses:1504
Symbol 1506 GraphicUsed by:1507
Symbol 1507 MovieClip {Bush_1} [Bush_1]Uses:1506
Symbol 1508 GraphicUsed by:1509
Symbol 1509 MovieClip {Tree_3} [Tree_3]Uses:1508
Symbol 1510 GraphicUsed by:1511
Symbol 1511 MovieClip {Bush_4} [Bush_4]Uses:1510
Symbol 1512 GraphicUsed by:1513
Symbol 1513 MovieClip {Bush_3} [Bush_3]Uses:1512
Symbol 1514 GraphicUsed by:1515
Symbol 1515 MovieClip {Tree_5} [Tree_5]Uses:1514
Symbol 1516 GraphicUsed by:1517
Symbol 1517 MovieClip {Bush_6} [Bush_6]Uses:1516
Symbol 1518 GraphicUsed by:1519
Symbol 1519 MovieClip {Bush_5} [Bush_5]Uses:1518
Symbol 1520 GraphicUsed by:1521
Symbol 1521 MovieClip {Palm_3} [Palm_3]Uses:1520
Symbol 1522 GraphicUsed by:1523
Symbol 1523 MovieClip {Palm_2} [Palm_2]Uses:1522
Symbol 1524 GraphicUsed by:1525
Symbol 1525 MovieClip {Palm_1} [Palm_1]Uses:1524
Symbol 1526 GraphicUsed by:1527
Symbol 1527 MovieClipUses:1526Used by:1549 1550
Symbol 1528 GraphicUsed by:1529
Symbol 1529 MovieClipUses:1528Used by:1549 1550
Symbol 1530 GraphicUsed by:1531
Symbol 1531 MovieClipUses:1530Used by:1549 1550
Symbol 1532 GraphicUsed by:1533
Symbol 1533 MovieClipUses:1532Used by:1549 1550
Symbol 1534 GraphicUsed by:1535
Symbol 1535 MovieClipUses:1534Used by:1549 1550
Symbol 1536 GraphicUsed by:1537
Symbol 1537 MovieClipUses:1536Used by:1549 1550
Symbol 1538 GraphicUsed by:1539
Symbol 1539 MovieClipUses:1538Used by:1549 1550
Symbol 1540 GraphicUsed by:1541
Symbol 1541 MovieClipUses:1540Used by:1549 1550
Symbol 1542 GraphicUsed by:1543
Symbol 1543 MovieClipUses:1542Used by:1549 1550
Symbol 1544 GraphicUsed by:1545
Symbol 1545 MovieClipUses:1544Used by:1549 1550
Symbol 1546 GraphicUsed by:1547
Symbol 1547 MovieClipUses:1546Used by:1549 1550
Symbol 1548 MovieClipUsed by:1549 1550
Symbol 1549 MovieClip {RagdollR} [RagdollR]Uses:1527 1529 1531 1533 1535 1537 1539 1541 1543 1545 1547 1548Used by:1574
Symbol 1550 MovieClip {RagdollL} [RagdollL]Uses:1527 1529 1531 1533 1535 1537 1539 1541 1543 1545 1547 1548Used by:1574
Symbol 1551 GraphicUsed by:1552
Symbol 1552 MovieClipUses:1551Used by:1571 1572 1573
Symbol 1553 GraphicUsed by:1554
Symbol 1554 MovieClipUses:1553Used by:1571 1572 1573
Symbol 1555 GraphicUsed by:1556
Symbol 1556 MovieClipUses:1555Used by:1571 1572 1573
Symbol 1557 GraphicUsed by:1558
Symbol 1558 MovieClipUses:1557Used by:1571 1572 1573
Symbol 1559 GraphicUsed by:1560
Symbol 1560 MovieClipUses:1559Used by:1571 1572 1573
Symbol 1561 GraphicUsed by:1562
Symbol 1562 MovieClipUses:1561Used by:1571 1572 1573
Symbol 1563 GraphicUsed by:1564
Symbol 1564 MovieClipUses:1563Used by:1571 1572 1573
Symbol 1565 GraphicUsed by:1566
Symbol 1566 MovieClipUses:1565Used by:1571 1572 1573
Symbol 1567 GraphicUsed by:1568
Symbol 1568 MovieClipUses:1567Used by:1571 1572 1573
Symbol 1569 GraphicUsed by:1570
Symbol 1570 MovieClipUses:1569Used by:1571 1572 1573
Symbol 1571 MovieClipUses:1552 1554 1556 1558 1560 1562 1564 1566 1568 1570Used by:1574
Symbol 1572 MovieClip {Chars_fla.Hero_Run_40} [Chars_fla.Hero_Run_40]Uses:1552 1554 1560 1562 1564 1556 1558 1566 1568 1570Used by:1574
Symbol 1573 MovieClipUses:1552 1554 1560 1562 1564 1556 1558 1566 1568 1570Used by:1574
Symbol 1574 MovieClip {HeroSprite} [HeroSprite]Uses:1571 1572 1573 1550 1549
Symbol 1575 Sound {main.effects.Music_Track_1} [main.effects.Music_Track_1]
Symbol 1576 Sound {main.effects.Music_Track_2} [main.effects.Music_Track_2]
Symbol 1577 Sound {main.effects.Music_Track_3} [main.effects.Music_Track_3]
Symbol 1578 GraphicUsed by:1579 1583 1590
Symbol 1579 MovieClipUses:1578Used by:1583 1590
Symbol 1580 FontUsed by:1581 1582 1588 1589 1653 1654 1655 1679 1727 1728 1729 1730 1731 1732 1739 1740 1741 1742 1743 1746 1749 1751 1752 1756
Symbol 1581 TextUses:1580Used by:1583
Symbol 1582 TextUses:1580Used by:1583
Symbol 1583 ButtonUses:1579 1581 1582 1578Used by:1596 1750
Symbol 1584 GraphicUsed by:1587
Symbol 1585 GraphicUsed by:1587
Symbol 1586 GraphicUsed by:1587
Symbol 1587 ButtonUses:1584 1585 1586Used by:1593 1596 1678
Symbol 1588 TextUses:1580Used by:1590
Symbol 1589 TextUses:1580Used by:1590
Symbol 1590 ButtonUses:1579 1588 1589 1578Used by:1596
Symbol 1591 GraphicUsed by:1596
Symbol 1592 GraphicUsed by:1593
Symbol 1593 MovieClip {BlockPanelSprite} [BlockPanelSprite]Uses:1587 1592Used by:1594
Symbol 1594 MovieClipUses:1593Used by:1596
Symbol 1595 GraphicUsed by:1596
Symbol 1596 MovieClip {EditorSprite} [EditorSprite]Uses:1583 1587 1590 1591 1594 1595
Symbol 1597 TextUses:251Used by:1599
Symbol 1598 TextUses:251Used by:1599
Symbol 1599 ButtonUses:351 1597 1598 350 253Used by:1601
Symbol 1600 TextUses:251Used by:1601
Symbol 1601 MovieClip {GameOverSprite} [GameOverSprite]Uses:1599 965 1600 969 973
Symbol 1602 EditableTextUses:251Used by:1612
Symbol 1603 GraphicUsed by:1607
Symbol 1604 GraphicUsed by:1607
Symbol 1605 GraphicUsed by:1607
Symbol 1606 GraphicUsed by:1607
Symbol 1607 MovieClip {Menu_fla.Stars_Mini_8} [Menu_fla.Stars_Mini_8]Uses:1603 1604 1605 1606Used by:1612
Symbol 1608 GraphicUsed by:1610
Symbol 1609 GraphicUsed by:1610
Symbol 1610 ButtonUses:1608 1609 369Used by:1612
Symbol 1611 GraphicUsed by:1612
Symbol 1612 MovieClip {LevelButtonSprite} [LevelButtonSprite]Uses:1602 1607 1610 1611
Symbol 1613 GraphicUsed by:1614
Symbol 1614 MovieClip {ThornsPreview} [ThornsPreview]Uses:1613Used by:1748
Symbol 1615 GraphicUsed by:1616
Symbol 1616 MovieClip {SimplePreview} [SimplePreview]Uses:1615Used by:1618 1627 1634 1748
Symbol 1617 GraphicUsed by:1618
Symbol 1618 MovieClip {ReplacePreview} [ReplacePreview]Uses:1616 1617Used by:1748
Symbol 1619 GraphicUsed by:1620
Symbol 1620 MovieClipUses:1619Used by:1622
Symbol 1621 EditableTextUses:251Used by:1622
Symbol 1622 MovieClip {BlockButtonSprite} [BlockButtonSprite]Uses:1620 1621
Symbol 1623 GraphicUsed by:1624
Symbol 1624 MovieClipUses:1623Used by:1627
Symbol 1625 GraphicUsed by:1626
Symbol 1626 MovieClipUses:1625Used by:1627
Symbol 1627 MovieClip {MovingPreview} [MovingPreview]Uses:1616 1624 1626Used by:1748
Symbol 1628 FontUsed by:1629 1630 1631 1632 1633
Symbol 1629 TextUses:1628Used by:1634
Symbol 1630 TextUses:1628Used by:1634
Symbol 1631 TextUses:1628Used by:1634
Symbol 1632 TextUses:1628Used by:1634
Symbol 1633 TextUses:1628Used by:1634
Symbol 1634 MovieClip {TimeoutPreview} [TimeoutPreview]Uses:1616 1629 1630 1631 1632 1633Used by:1748
Symbol 1635 EditableTextUses:251Used by:1636
Symbol 1636 MovieClip {ToolTip} [ToolTip]Uses:351 1635
Symbol 1637 BitmapUsed by:1638
Symbol 1638 GraphicUses:1637Used by:1651
Symbol 1639 GraphicUses:68Used by:1640
Symbol 1640 MovieClipUses:1639Used by:1651
Symbol 1641 GraphicUsed by:1651
Symbol 1642 TextUses:251Used by:1644
Symbol 1643 TextUses:251Used by:1644
Symbol 1644 ButtonUses:1016 1642 1643 1015 253Used by:1651
Symbol 1645 TextUses:251Used by:1647
Symbol 1646 TextUses:251Used by:1647
Symbol 1647 ButtonUses:1016 1645 1646 1015 253Used by:1651
Symbol 1648 TextUses:251Used by:1650
Symbol 1649 TextUses:251Used by:1650
Symbol 1650 ButtonUses:1016 1648 1649 1015 253Used by:1651
Symbol 1651 MovieClip {WindowSprite} [WindowSprite]Uses:1638 1640 1641 1644 1647 1650 1016 1005 1009
Symbol 1652 GraphicUsed by:1676 1734 1755 1770
Symbol 1653 TextUses:1580Used by:1676
Symbol 1654 TextUses:1580Used by:1676
Symbol 1655 TextUses:1580Used by:1676
Symbol 1656 GraphicUsed by:1657
Symbol 1657 MovieClip {CheckBox_upIcon} [CheckBox_upIcon]Uses:1656Used by:1672
Symbol 1658 GraphicUsed by:1659 1668
Symbol 1659 MovieClip {CheckBox_overIcon} [CheckBox_overIcon]Uses:1658Used by:1672
Symbol 1660 GraphicUsed by:1661 1669
Symbol 1661 MovieClip {CheckBox_downIcon} [CheckBox_downIcon]Uses:1660Used by:1672
Symbol 1662 GraphicUsed by:1663
Symbol 1663 MovieClip {CheckBox_disabledIcon} [CheckBox_disabledIcon]Uses:1662Used by:1672
Symbol 1664 GraphicUsed by:1667
Symbol 1665 GraphicUsed by:1666
Symbol 1666 MovieClipUses:1665Used by:1667 1668 1669 1671
Symbol 1667 MovieClip {CheckBox_selectedUpIcon} [CheckBox_selectedUpIcon]Uses:1664 1666Used by:1672
Symbol 1668 MovieClip {CheckBox_selectedOverIcon} [CheckBox_selectedOverIcon]Uses:1658 1666Used by:1672
Symbol 1669 MovieClip {CheckBox_selectedDownIcon} [CheckBox_selectedDownIcon]Uses:1660 1666Used by:1672
Symbol 1670 GraphicUsed by:1671
Symbol 1671 MovieClip {CheckBox_selectedDisabledIcon} [CheckBox_selectedDisabledIcon]Uses:1670 1666Used by:1672
Symbol 1672 MovieClip {fl.controls.CheckBox} [fl.controls.CheckBox]Uses:1025 1026 1657 1659 1661 1663 1667 1668 1669 1671 1032Used by:1676 1734
Symbol 1673 MovieClip {TextInput_disabledSkin} [TextInput_disabledSkin]Uses:1027Used by:1675
Symbol 1674 MovieClip {TextInput_upSkin} [TextInput_upSkin]Uses:1029Used by:1675
Symbol 1675 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]Uses:1025 1026 1673 1674 1032Used by:1676 1709 1726 1733
Symbol 1676 MovieClip {ObjectPanelSprite} [ObjectPanelSprite]Uses:1652 1653 1654 1655 1672 1675 1081
Symbol 1677 GraphicUsed by:1678
Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite]Uses:1587 1677
Symbol 1679 TextUses:1580Used by:1734
Symbol 1680 GraphicUsed by:1681
Symbol 1681 MovieClip {ComboBox_upSkin} [ComboBox_upSkin]Uses:1680Used by:1709
Symbol 1682 GraphicUsed by:1683
Symbol 1683 MovieClip {ComboBox_disabledSkin} [ComboBox_disabledSkin]Uses:1682Used by:1709
Symbol 1684 GraphicUsed by:1685
Symbol 1685 MovieClip {ComboBox_overSkin} [ComboBox_overSkin]Uses:1684Used by:1709
Symbol 1686 GraphicUsed by:1687
Symbol 1687 MovieClip {ComboBox_downSkin} [ComboBox_downSkin]Uses:1686Used by:1709
Symbol 1688 GraphicUsed by:1689
Symbol 1689 MovieClip {List_skin} [List_skin]Uses:1688Used by:1708
Symbol 1690 GraphicUsed by:1691
Symbol 1691 MovieClip {CellRenderer_upSkin} [CellRenderer_upSkin]Uses:1690Used by:1706
Symbol 1692 GraphicUsed by:1693
Symbol 1693 MovieClip {CellRenderer_disabledSkin} [CellRenderer_disabledSkin]Uses:1692Used by:1706
Symbol 1694 GraphicUsed by:1695
Symbol 1695 MovieClip {CellRenderer_downSkin} [CellRenderer_downSkin]Uses:1694Used by:1706
Symbol 1696 GraphicUsed by:1697
Symbol 1697 MovieClip {CellRenderer_overSkin} [CellRenderer_overSkin]Uses:1696Used by:1706
Symbol 1698 GraphicUsed by:1699
Symbol 1699 MovieClip {CellRenderer_selectedDisabledSkin} [CellRenderer_selectedDisabledSkin]Uses:1698Used by:1706
Symbol 1700 GraphicUsed by:1701
Symbol 1701 MovieClip {CellRenderer_selectedDownSkin} [CellRenderer_selectedDownSkin]Uses:1700Used by:1706
Symbol 1702 GraphicUsed by:1703
Symbol 1703 MovieClip {CellRenderer_selectedOverSkin} [CellRenderer_selectedOverSkin]Uses:1702Used by:1706
Symbol 1704 GraphicUsed by:1705
Symbol 1705 MovieClip {CellRenderer_selectedUpSkin} [CellRenderer_selectedUpSkin]Uses:1704Used by:1706
Symbol 1706 MovieClip {fl.controls.listClasses.CellRenderer} [fl.controls.listClasses.CellRenderer]Uses:1691 1026 1693 1695 1697 1699 1701 1703 1705Used by:1708
Symbol 1707 MovieClip {fl.controls.ScrollBar} [fl.controls.ScrollBar]Uses:1034 1026 1032 1038 1040 1042 1044 1046 1048 1050 1052 1054 1056 1058 1060Used by:1708
Symbol 1708 MovieClip {fl.controls.List} [fl.controls.List]Uses:1025 1026 1689 1706 1032 1707Used by:1709
Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]Uses:1025 1026 1032 1681 1683 1685 1687 1675 1708Used by:1734 1750 1770
Symbol 1710 GraphicUsed by:1711
Symbol 1711 MovieClip {NumericStepperDownArrow_disabledSkin} [NumericStepperDownArrow_disabledSkin]Uses:1710 1036Used by:1726
Symbol 1712 GraphicUsed by:1713
Symbol 1713 MovieClip {NumericStepperDownArrow_downSkin} [NumericStepperDownArrow_downSkin]Uses:1712 1036Used by:1726
Symbol 1714 GraphicUsed by:1715
Symbol 1715 MovieClip {NumericStepperDownArrow_overSkin} [NumericStepperDownArrow_overSkin]Uses:1714 1036Used by:1726
Symbol 1716 GraphicUsed by:1717
Symbol 1717 MovieClip {NumericStepperDownArrow_upSkin} [NumericStepperDownArrow_upSkin]Uses:1716 1036Used by:1726
Symbol 1718 GraphicUsed by:1719
Symbol 1719 MovieClip {NumericStepperUpArrow_disabledSkin} [NumericStepperUpArrow_disabledSkin]Uses:1718 1036Used by:1726
Symbol 1720 GraphicUsed by:1721
Symbol 1721 MovieClip {NumericStepperUpArrow_downSkin} [NumericStepperUpArrow_downSkin]Uses:1720 1036Used by:1726
Symbol 1722 GraphicUsed by:1723
Symbol 1723 MovieClip {NumericStepperUpArrow_overSkin} [NumericStepperUpArrow_overSkin]Uses:1722 1036Used by:1726
Symbol 1724 GraphicUsed by:1725
Symbol 1725 MovieClip {NumericStepperUpArrow_upSkin} [NumericStepperUpArrow_upSkin]Uses:1724 1036Used by:1726
Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]Uses:1025 1026 1032 1711 1713 1715 1717 1719 1721 1723 1725 1675Used by:1734 1750
Symbol 1727 TextUses:1580Used by:1734
Symbol 1728 TextUses:1580Used by:1734 1770
Symbol 1729 TextUses:1580Used by:1734
Symbol 1730 TextUses:1580Used by:1734
Symbol 1731 TextUses:1580Used by:1733
Symbol 1732 TextUses:1580Used by:1733
Symbol 1733 MovieClip {Editor_fla.options_90} [Editor_fla.options_90]Uses:1731 1732 1675 1081Used by:1734
Symbol 1734 MovieClip {EnemyPanelSprite} [EnemyPanelSprite]Uses:1652 1679 1709 1726 1727 1728 1729 1730 1672 1733 391
Symbol 1735 GraphicUsed by:1750
Symbol 1736 GraphicUsed by:1737
Symbol 1737 MovieClipUses:1736Used by:1750
Symbol 1738 GraphicUsed by:1750
Symbol 1739 TextUses:1580Used by:1750
Symbol 1740 TextUses:1580Used by:1750
Symbol 1741 TextUses:1580Used by:1750
Symbol 1742 TextUses:1580Used by:1750
Symbol 1743 TextUses:1580Used by:1750
Symbol 1744 GraphicUsed by:1745
Symbol 1745 MovieClipUses:1744Used by:1750
Symbol 1746 TextUses:1580Used by:1750
Symbol 1747 GraphicUsed by:1748
Symbol 1748 MovieClip {BlockType} [BlockType]Uses:1747 1616 1634 1627 1618 1614Used by:1750
Symbol 1749 TextUses:1580Used by:1750
Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite]Uses:1735 1737 1738 1709 1726 1583 1739 1740 1741 1742 1743 1745 1746 1748 1749
Symbol 1751 TextUses:1580Used by:1755
Symbol 1752 TextUses:1580Used by:1755
Symbol 1753 GraphicUsed by:1754
Symbol 1754 MovieClipUses:1753Used by:1755
Symbol 1755 MovieClip {DecoPanelSprite} [DecoPanelSprite]Uses:1652 1751 1752 1754
Symbol 1756 TextUses:1580Used by:1770
Symbol 1757 GraphicUsed by:1769
Symbol 1758 GraphicUsed by:1762
Symbol 1759 GraphicUsed by:1762
Symbol 1760 GraphicUsed by:1762
Symbol 1761 GraphicUsed by:1762
Symbol 1762 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76]Uses:1758 1759 1760 1761Used by:1769
Symbol 1763 GraphicUsed by:1767
Symbol 1764 GraphicUsed by:1767
Symbol 1765 GraphicUsed by:1767
Symbol 1766 GraphicUsed by:1767
Symbol 1767 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77]Uses:1763 1764 1765 1766Used by:1769
Symbol 1768 GraphicUsed by:1769
Symbol 1769 MovieClip {Doors} [Doors]Uses:1757 1762 1767 1768Used by:1770
Symbol 1770 MovieClip {DoorPanelSprite} [DoorPanelSprite]Uses:1652 1709 1728 1756 1769

Instance Names

"progress"Symbol 6 MovieClip {PreloadBar} [PreloadBar] Frame 1Symbol 3 MovieClip
"clip_1"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 43 MovieClip
"clip_3"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 46 MovieClip
"clip_2"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 49 MovieClip
"clip_4"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 52 MovieClip
"clip_5"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 55 MovieClip
"clip_6"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 58 MovieClip
"clip_9"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 61 MovieClip
"clip_11"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 64 MovieClip
"clip_7"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 65 MovieClip
"clip_10"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 66 MovieClip
"clip_8"Symbol 77 MovieClip {Background} [Background] Frame 1Symbol 67 MovieClip
"size"Symbol 110 MovieClip {DoorSpriteH} [DoorSpriteH] Frame 1Symbol 95 MovieClip
"dnColor"Symbol 110 MovieClip {DoorSpriteH} [DoorSpriteH] Frame 1Symbol 104 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21]
"upColor"Symbol 110 MovieClip {DoorSpriteH} [DoorSpriteH] Frame 1Symbol 109 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22]
"size"Symbol 111 MovieClip {DoorSpriteV} [DoorSpriteV] Frame 1Symbol 95 MovieClip
"dnColor"Symbol 111 MovieClip {DoorSpriteV} [DoorSpriteV] Frame 1Symbol 104 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21]
"upColor"Symbol 111 MovieClip {DoorSpriteV} [DoorSpriteV] Frame 1Symbol 109 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22]
"thorns"Symbol 175 MovieClip {EnemySprite} [EnemySprite] Frame 1Symbol 168 MovieClip
"thorns"Symbol 175 MovieClip {EnemySprite} [EnemySprite] Frame 2Symbol 171 MovieClip
"thorns"Symbol 175 MovieClip {EnemySprite} [EnemySprite] Frame 3Symbol 174 MovieClip
"part_6"Symbol 200 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 179 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3]
"part_5"Symbol 200 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 183 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4]
"part_4"Symbol 200 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 187 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5]
"part_3"Symbol 200 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 191 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6]
"part_2"Symbol 200 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 195 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7]
"part_1"Symbol 200 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 199 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8]
"time"Symbol 244 MovieClip {TimeoutSprite} [TimeoutSprite] Frame 1Symbol 240 EditableText
"btnMainMenu"Symbol 354 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 254 Button
"preview"Symbol 354 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 341 MovieClip {Menu_fla.Preview_39} [Menu_fla.Preview_39]
"fldLevel"Symbol 354 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 342 EditableText
"fldTotal"Symbol 354 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 343 EditableText
"fldScore"Symbol 354 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 344 EditableText
"stars"Symbol 354 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 349 MovieClip {Menu_fla.Stars_Big_40} [Menu_fla.Stars_Big_40]
"btnErase"Symbol 354 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 353 Button
"fldTotal"Symbol 371 MovieClip {FinalWindowSprite} [FinalWindowSprite] Frame 1Symbol 361 EditableText
"btnSubmit"Symbol 371 MovieClip {FinalWindowSprite} [FinalWindowSprite] Frame 1Symbol 364 Button
"btnArmor"Symbol 371 MovieClip {FinalWindowSprite} [FinalWindowSprite] Frame 1Symbol 370 Button
"size"Symbol 387 MovieClip {DoorPreview} [DoorPreview] Frame 1Symbol 386 MovieClip {Tiles_fla.Sizecopy_35} [Tiles_fla.Sizecopy_35]
"dnColor"Symbol 387 MovieClip {DoorPreview} [DoorPreview] Frame 1Symbol 104 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21]
"upColor"Symbol 387 MovieClip {DoorPreview} [DoorPreview] Frame 1Symbol 109 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22]
"color"Symbol 790 MovieClip {KeySprite} [KeySprite] Frame 1Symbol 789 MovieClip {Items_fla.Key_2} [Items_fla.Key_2]
"LU"Symbol 907 MovieClip {main.field.Block} [main.field.Block] Frame 1Symbol 822 MovieClip {Tiles_fla.LU_Block_30} [Tiles_fla.LU_Block_30]
"LD"Symbol 907 MovieClip {main.field.Block} [main.field.Block] Frame 1Symbol 850 MovieClip {Tiles_fla.LD_Block_31} [Tiles_fla.LD_Block_31]
"RD"Symbol 907 MovieClip {main.field.Block} [main.field.Block] Frame 1Symbol 878 MovieClip {Tiles_fla.RD_Block_32} [Tiles_fla.RD_Block_32]
"RU"Symbol 907 MovieClip {main.field.Block} [main.field.Block] Frame 1Symbol 906 MovieClip {Tiles_fla.RU_Block_33} [Tiles_fla.RU_Block_33]
"btnMainMenu"Symbol 953 MovieClip {CreditsSprite} [CreditsSprite] Frame 1Symbol 937 Button
"btnNext"Symbol 963 MovieClip {StatWindowSprite} [StatWindowSprite] Frame 1Symbol 957 Button
"btnSelect"Symbol 963 MovieClip {StatWindowSprite} [StatWindowSprite] Frame 1Symbol 960 Button
"statistic"Symbol 963 MovieClip {StatWindowSprite} [StatWindowSprite] Frame 1Symbol 961 EditableText
"btnAgain"Symbol 974 MovieClip {BackWindowSprite} [BackWindowSprite] Frame 1Symbol 969 Button
"btnEditor"Symbol 974 MovieClip {BackWindowSprite} [BackWindowSprite] Frame 1Symbol 972 Button
"btnStartGame"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 992 Button
"btnHiScores"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 994 Button
"btnMoreGames"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 996 Button
"btnCredits"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 998 Button
"btnEditor"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1000 Button
"btnMusic"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1005 Button
"btnSound"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1009 Button
"btnHost"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1011 Button
"btnArmor"Symbol 1012 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 370 Button
"levelNum"Symbol 1022 MovieClip {GamePanelSprite} [GamePanelSprite] Frame 1Symbol 1019 EditableText
"time"Symbol 1022 MovieClip {GamePanelSprite} [GamePanelSprite] Frame 1Symbol 1021 EditableText
"textArea"Symbol 1082 MovieClip {CodePanelSprite} [CodePanelSprite] Frame 1Symbol 1062 MovieClip {fl.controls.TextArea} [fl.controls.TextArea]
"btnClose"Symbol 1082 MovieClip {CodePanelSprite} [CodePanelSprite] Frame 1Symbol 1081 MovieClip {fl.controls.Button} [fl.controls.Button]
"LUHand"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1527 MovieClip
"LDHand"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1529 MovieClip
"LULeg"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1531 MovieClip
"Head"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1533 MovieClip
"UPBody"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1535 MovieClip
"DNBody"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1537 MovieClip
"LDLeg"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1539 MovieClip
"RULeg"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1541 MovieClip
"RUHand"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1543 MovieClip
"RDHand"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1545 MovieClip
"RDLeg"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1547 MovieClip
"jRUHand"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"jLUHand"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"jLDHand"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"jRDHand"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"jHead"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"jHer"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"jLDLeg"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"jRDLeg"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"jBody"Symbol 1549 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"LUHand"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1527 MovieClip
"LDHand"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1529 MovieClip
"LULeg"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1531 MovieClip
"Head"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1533 MovieClip
"UPBody"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1535 MovieClip
"DNBody"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1537 MovieClip
"LDLeg"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1539 MovieClip
"RULeg"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1541 MovieClip
"RUHand"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1543 MovieClip
"RDHand"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1545 MovieClip
"RDLeg"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1547 MovieClip
"jRUHand"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"jLUHand"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"jLDHand"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"jRDHand"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"jHead"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"jHer"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"jLDLeg"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"jRDLeg"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"jBody"Symbol 1550 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"anim"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 1Symbol 1571 MovieClip
"anim"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 8Symbol 1572 MovieClip {Chars_fla.Hero_Run_40} [Chars_fla.Hero_Run_40]
"anim"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 15Symbol 1573 MovieClip
"anim"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 22Symbol 1550 MovieClip {RagdollL} [RagdollL]
"anim"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 30Symbol 1549 MovieClip {RagdollR} [RagdollR]
"btnBlock_0"Symbol 1593 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1587 Button
"btnBlock_1"Symbol 1593 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1587 Button
"btnBlock_2"Symbol 1593 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1587 Button
"btnBlock_4"Symbol 1593 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1587 Button
"btnBlock_3"Symbol 1593 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1587 Button
"btnGetMap"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1583 Button
"btnCursor"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1587 Button
"btnEraser"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1587 Button
"btnBlock"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1587 Button
"btnThorns"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1587 Button
"btnDeco"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1587 Button
"btnEnemy"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1587 Button
"btnTest"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1590 Button
"btnDoors"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1587 Button
"btnBonus"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1587 Button
"panel"Symbol 1596 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1594 MovieClip
"btnSolution"Symbol 1601 MovieClip {GameOverSprite} [GameOverSprite] Frame 1Symbol 1599 Button
"btnAgain"Symbol 1601 MovieClip {GameOverSprite} [GameOverSprite] Frame 1Symbol 969 Button
"num"Symbol 1612 MovieClip {LevelButtonSprite} [LevelButtonSprite] Frame 1Symbol 1602 EditableText
"stars"Symbol 1612 MovieClip {LevelButtonSprite} [LevelButtonSprite] Frame 1Symbol 1607 MovieClip {Menu_fla.Stars_Mini_8} [Menu_fla.Stars_Mini_8]
"btn"Symbol 1612 MovieClip {LevelButtonSprite} [LevelButtonSprite] Frame 1Symbol 1610 Button
"border"Symbol 1622 MovieClip {BlockButtonSprite} [BlockButtonSprite] Frame 1Symbol 1620 MovieClip
"amount"Symbol 1622 MovieClip {BlockButtonSprite} [BlockButtonSprite] Frame 1Symbol 1621 EditableText
"caption"Symbol 1636 MovieClip {ToolTip} [ToolTip] Frame 1Symbol 1635 EditableText
"btnEditor"Symbol 1651 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1644 Button
"btnLevels"Symbol 1651 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1647 Button
"btnRestart"Symbol 1651 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1650 Button
"switchBack"Symbol 1651 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1016 MovieClip
"btnMusic"Symbol 1651 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1005 Button
"btnSound"Symbol 1651 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1009 Button
"flip"Symbol 1676 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1672 MovieClip {fl.controls.CheckBox} [fl.controls.CheckBox]
"xPos"Symbol 1676 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1675 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]
"yPos"Symbol 1676 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1675 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]
"btnRemove"Symbol 1676 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1081 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnToFront"Symbol 1676 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1081 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnToBack"Symbol 1676 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1081 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnThorn_1"Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1587 Button
"btnThorn_5"Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1587 Button
"btnThorn_2"Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1587 Button
"btnThorn_6"Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1587 Button
"btnThorn_4"Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1587 Button
"btnThorn_8"Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1587 Button
"btnThorn_3"Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1587 Button
"btnThorn_7"Symbol 1678 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1587 Button
"xPos"Symbol 1733 MovieClip {Editor_fla.options_90} [Editor_fla.options_90] Frame 1Symbol 1675 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]
"yPos"Symbol 1733 MovieClip {Editor_fla.options_90} [Editor_fla.options_90] Frame 1Symbol 1675 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]
"btnRemove"Symbol 1733 MovieClip {Editor_fla.options_90} [Editor_fla.options_90] Frame 1Symbol 1081 MovieClip {fl.controls.Button} [fl.controls.Button]
"color"Symbol 1734 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"speed"Symbol 1734 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"jump"Symbol 1734 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"attack"Symbol 1734 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1672 MovieClip {fl.controls.CheckBox} [fl.controls.CheckBox]
"wait"Symbol 1734 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1672 MovieClip {fl.controls.CheckBox} [fl.controls.CheckBox]
"options"Symbol 1734 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1733 MovieClip {Editor_fla.options_90} [Editor_fla.options_90]
"preview"Symbol 1734 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 391 MovieClip {EnemyPreview} [EnemyPreview]
"block"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 2Symbol 1616 MovieClip {SimplePreview} [SimplePreview]
"block"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 3Symbol 1634 MovieClip {TimeoutPreview} [TimeoutPreview]
"block"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 4Symbol 1627 MovieClip {MovingPreview} [MovingPreview]
"block"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 5Symbol 1618 MovieClip {ReplacePreview} [ReplacePreview]
"block"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 6Symbol 1614 MovieClip {ThornsPreview} [ThornsPreview]
"type_4"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"type_3"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"type_2"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"type_1"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"options_4"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"options_3"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"options_2"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"options_1"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"levelTime"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"amount_1"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"amount_2"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"amount_3"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"amount_4"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"levelTrack"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"btnSave"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1583 Button
"preview_1"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1748 MovieClip {BlockType} [BlockType]
"preview_2"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1748 MovieClip {BlockType} [BlockType]
"preview_3"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1748 MovieClip {BlockType} [BlockType]
"preview_4"Symbol 1750 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1748 MovieClip {BlockType} [BlockType]
"preview"Symbol 1755 MovieClip {DecoPanelSprite} [DecoPanelSprite] Frame 1Symbol 1754 MovieClip
"dnColor"Symbol 1769 MovieClip {Doors} [Doors] Frame 1Symbol 1762 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76]
"upColor"Symbol 1769 MovieClip {Doors} [Doors] Frame 1Symbol 1767 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77]
"color"Symbol 1770 MovieClip {DoorPanelSprite} [DoorPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"orient"Symbol 1770 MovieClip {DoorPanelSprite} [DoorPanelSprite] Frame 1Symbol 1709 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"preview"Symbol 1770 MovieClip {DoorPanelSprite} [DoorPanelSprite] Frame 1Symbol 1769 MovieClip {Doors} [Doors]

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 6 as "PreloadBar"
ExportAssets (56)Timeline Frame 2Symbol 25 as "SigmaIntro"
ExportAssets (56)Timeline Frame 2Symbol 27 as "main.chars.HeroPreview"
ExportAssets (56)Timeline Frame 2Symbol 77 as "Background"
ExportAssets (56)Timeline Frame 2Symbol 93 as "ArmorVideo"
ExportAssets (56)Timeline Frame 2Symbol 110 as "DoorSpriteH"
ExportAssets (56)Timeline Frame 2Symbol 111 as "DoorSpriteV"
ExportAssets (56)Timeline Frame 2Symbol 163 as "ReplaceSprite"
ExportAssets (56)Timeline Frame 2Symbol 175 as "EnemySprite"
ExportAssets (56)Timeline Frame 2Symbol 200 as "EnemyBlowing"
ExportAssets (56)Timeline Frame 2Symbol 236 as "CoinSprite"
ExportAssets (56)Timeline Frame 2Symbol 238 as "ExitSprite"
ExportAssets (56)Timeline Frame 2Symbol 244 as "TimeoutSprite"
ExportAssets (56)Timeline Frame 2Symbol 22 as "Intro_fla.LightMove_7"
ExportAssets (56)Timeline Frame 2Symbol 354 as "LevelMenuSprite"
ExportAssets (56)Timeline Frame 2Symbol 359 as "MovingSprite"
ExportAssets (56)Timeline Frame 2Symbol 371 as "FinalWindowSprite"
ExportAssets (56)Timeline Frame 2Symbol 373 as "Border"
ExportAssets (56)Timeline Frame 2Symbol 380 as "Thorns"
ExportAssets (56)Timeline Frame 2Symbol 387 as "DoorPreview"
ExportAssets (56)Timeline Frame 2Symbol 113 as "BasicSprite"
ExportAssets (56)Timeline Frame 2Symbol 391 as "EnemyPreview"
ExportAssets (56)Timeline Frame 2Symbol 790 as "KeySprite"
ExportAssets (56)Timeline Frame 2Symbol 792 as "Erase"
ExportAssets (56)Timeline Frame 2Symbol 907 as "main.field.Block"
ExportAssets (56)Timeline Frame 2Symbol 913 as "ThornsSprite"
ExportAssets (56)Timeline Frame 2Symbol 924 as "Thorns_800"
ExportAssets (56)Timeline Frame 2Symbol 927 as "Thorns_1000"
ExportAssets (56)Timeline Frame 2Symbol 930 as "Thorns_400"
ExportAssets (56)Timeline Frame 2Symbol 933 as "Thorns_600"
ExportAssets (56)Timeline Frame 2Symbol 953 as "CreditsSprite"
ExportAssets (56)Timeline Frame 2Symbol 963 as "StatWindowSprite"
ExportAssets (56)Timeline Frame 2Symbol 974 as "BackWindowSprite"
ExportAssets (56)Timeline Frame 2Symbol 975 as "sndScream"
ExportAssets (56)Timeline Frame 2Symbol 976 as "sndGameOver"
ExportAssets (56)Timeline Frame 2Symbol 977 as "sndFinish"
ExportAssets (56)Timeline Frame 2Symbol 978 as "sndKick"
ExportAssets (56)Timeline Frame 2Symbol 979 as "sndBonus"
ExportAssets (56)Timeline Frame 2Symbol 980 as "sndThornsShow"
ExportAssets (56)Timeline Frame 2Symbol 981 as "sndDead"
ExportAssets (56)Timeline Frame 2Symbol 982 as "sndStep"
ExportAssets (56)Timeline Frame 2Symbol 983 as "sndJump"
ExportAssets (56)Timeline Frame 2Symbol 984 as "sndIntro"
ExportAssets (56)Timeline Frame 2Symbol 985 as "sndDoor"
ExportAssets (56)Timeline Frame 2Symbol 986 as "sndThornsHide"
ExportAssets (56)Timeline Frame 2Symbol 987 as "sndCrumble"
ExportAssets (56)Timeline Frame 2Symbol 988 as "sndBlowing"
ExportAssets (56)Timeline Frame 2Symbol 1012 as "MainMenuSprite"
ExportAssets (56)Timeline Frame 2Symbol 1022 as "GamePanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1082 as "CodePanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1084 as "Sky"
ExportAssets (56)Timeline Frame 2Symbol 1086 as "Cloud_2"
ExportAssets (56)Timeline Frame 2Symbol 1088 as "Back_4"
ExportAssets (56)Timeline Frame 2Symbol 1103 as "Tutorial_2"
ExportAssets (56)Timeline Frame 2Symbol 1105 as "Back_5"
ExportAssets (56)Timeline Frame 2Symbol 1107 as "Cloud_3"
ExportAssets (56)Timeline Frame 2Symbol 1119 as "Tutorial_1"
ExportAssets (56)Timeline Frame 2Symbol 1126 as "Tutorial_4"
ExportAssets (56)Timeline Frame 2Symbol 1128 as "Cloud_4"
ExportAssets (56)Timeline Frame 2Symbol 1134 as "Tutorial_3"
ExportAssets (56)Timeline Frame 2Symbol 1136 as "Cloud_5"
ExportAssets (56)Timeline Frame 2Symbol 1138 as "Cloud_6"
ExportAssets (56)Timeline Frame 2Symbol 1140 as "Back_1"
ExportAssets (56)Timeline Frame 2Symbol 1146 as "Tutorial_5"
ExportAssets (56)Timeline Frame 2Symbol 1148 as "Back_2"
ExportAssets (56)Timeline Frame 2Symbol 1150 as "Back_3"
ExportAssets (56)Timeline Frame 2Symbol 1152 as "Cloud_1"
ExportAssets (56)Timeline Frame 2Symbol 1497 as "Sun"
ExportAssets (56)Timeline Frame 2Symbol 1499 as "Tree_2"
ExportAssets (56)Timeline Frame 2Symbol 1501 as "Tree_1"
ExportAssets (56)Timeline Frame 2Symbol 1503 as "Tree_4"
ExportAssets (56)Timeline Frame 2Symbol 1505 as "Bush_2"
ExportAssets (56)Timeline Frame 2Symbol 1507 as "Bush_1"
ExportAssets (56)Timeline Frame 2Symbol 1509 as "Tree_3"
ExportAssets (56)Timeline Frame 2Symbol 1511 as "Bush_4"
ExportAssets (56)Timeline Frame 2Symbol 1513 as "Bush_3"
ExportAssets (56)Timeline Frame 2Symbol 1515 as "Tree_5"
ExportAssets (56)Timeline Frame 2Symbol 1517 as "Bush_6"
ExportAssets (56)Timeline Frame 2Symbol 1519 as "Bush_5"
ExportAssets (56)Timeline Frame 2Symbol 1521 as "Palm_3"
ExportAssets (56)Timeline Frame 2Symbol 1523 as "Palm_2"
ExportAssets (56)Timeline Frame 2Symbol 1525 as "Palm_1"
ExportAssets (56)Timeline Frame 2Symbol 1549 as "RagdollR"
ExportAssets (56)Timeline Frame 2Symbol 1550 as "RagdollL"
ExportAssets (56)Timeline Frame 2Symbol 1574 as "HeroSprite"
ExportAssets (56)Timeline Frame 2Symbol 1575 as "main.effects.Music_Track_1"
ExportAssets (56)Timeline Frame 2Symbol 1576 as "main.effects.Music_Track_2"
ExportAssets (56)Timeline Frame 2Symbol 1577 as "main.effects.Music_Track_3"
ExportAssets (56)Timeline Frame 2Symbol 1596 as "EditorSprite"
ExportAssets (56)Timeline Frame 2Symbol 1601 as "GameOverSprite"
ExportAssets (56)Timeline Frame 2Symbol 104 as "Tiles_fla.Lock_Down_21"
ExportAssets (56)Timeline Frame 2Symbol 109 as "Tiles_fla.Lock_Up_22"
ExportAssets (56)Timeline Frame 2Symbol 162 as "BlockExplode"
ExportAssets (56)Timeline Frame 2Symbol 195 as "Chars_fla.Part_2_7"
ExportAssets (56)Timeline Frame 2Symbol 191 as "Chars_fla.Part_3_6"
ExportAssets (56)Timeline Frame 2Symbol 179 as "Chars_fla.Part_6_3"
ExportAssets (56)Timeline Frame 2Symbol 183 as "Chars_fla.Part_5_4"
ExportAssets (56)Timeline Frame 2Symbol 187 as "Chars_fla.Part_4_5"
ExportAssets (56)Timeline Frame 2Symbol 199 as "Chars_fla.Part_1_8"
ExportAssets (56)Timeline Frame 2Symbol 243 as "Tiles_fla.BlockCrumble_with_number_7"
ExportAssets (56)Timeline Frame 2Symbol 349 as "Menu_fla.Stars_Big_40"
ExportAssets (56)Timeline Frame 2Symbol 341 as "Menu_fla.Preview_39"
ExportAssets (56)Timeline Frame 2Symbol 1612 as "LevelButtonSprite"
ExportAssets (56)Timeline Frame 2Symbol 386 as "Tiles_fla.Sizecopy_35"
ExportAssets (56)Timeline Frame 2Symbol 1614 as "ThornsPreview"
ExportAssets (56)Timeline Frame 2Symbol 1618 as "ReplacePreview"
ExportAssets (56)Timeline Frame 2Symbol 1616 as "SimplePreview"
ExportAssets (56)Timeline Frame 2Symbol 1622 as "BlockButtonSprite"
ExportAssets (56)Timeline Frame 2Symbol 1627 as "MovingPreview"
ExportAssets (56)Timeline Frame 2Symbol 1634 as "TimeoutPreview"
ExportAssets (56)Timeline Frame 2Symbol 1636 as "ToolTip"
ExportAssets (56)Timeline Frame 2Symbol 789 as "Items_fla.Key_2"
ExportAssets (56)Timeline Frame 2Symbol 878 as "Tiles_fla.RD_Block_32"
ExportAssets (56)Timeline Frame 2Symbol 850 as "Tiles_fla.LD_Block_31"
ExportAssets (56)Timeline Frame 2Symbol 822 as "Tiles_fla.LU_Block_30"
ExportAssets (56)Timeline Frame 2Symbol 906 as "Tiles_fla.RU_Block_33"
ExportAssets (56)Timeline Frame 2Symbol 1062 as "fl.controls.TextArea"
ExportAssets (56)Timeline Frame 2Symbol 1081 as "fl.controls.Button"
ExportAssets (56)Timeline Frame 2Symbol 1651 as "WindowSprite"
ExportAssets (56)Timeline Frame 2Symbol 1572 as "Chars_fla.Hero_Run_40"
ExportAssets (56)Timeline Frame 2Symbol 1676 as "ObjectPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1678 as "ThornPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1734 as "EnemyPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1593 as "BlockPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1750 as "SetupPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1709 as "fl.controls.ComboBox"
ExportAssets (56)Timeline Frame 2Symbol 1755 as "DecoPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1770 as "DoorPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1607 as "Menu_fla.Stars_Mini_8"
ExportAssets (56)Timeline Frame 2Symbol 1032 as "focusRectSkin"
ExportAssets (56)Timeline Frame 2Symbol 1707 as "fl.controls.ScrollBar"
ExportAssets (56)Timeline Frame 2Symbol 1030 as "TextArea_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1028 as "TextArea_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1026 as "fl.core.ComponentShim"
ExportAssets (56)Timeline Frame 2Symbol 1061 as "fl.controls.UIScrollBar"
ExportAssets (56)Timeline Frame 2Symbol 1064 as "Button_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1080 as "Button_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1074 as "Button_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1078 as "Button_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1068 as "Button_emphasizedSkin"
ExportAssets (56)Timeline Frame 2Symbol 1072 as "Button_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1070 as "Button_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1066 as "Button_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1076 as "Button_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1675 as "fl.controls.TextInput"
ExportAssets (56)Timeline Frame 2Symbol 1672 as "fl.controls.CheckBox"
ExportAssets (56)Timeline Frame 2Symbol 1733 as "Editor_fla.options_90"
ExportAssets (56)Timeline Frame 2Symbol 1726 as "fl.controls.NumericStepper"
ExportAssets (56)Timeline Frame 2Symbol 1748 as "BlockType"
ExportAssets (56)Timeline Frame 2Symbol 1687 as "ComboBox_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1685 as "ComboBox_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1681 as "ComboBox_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1708 as "fl.controls.List"
ExportAssets (56)Timeline Frame 2Symbol 1683 as "ComboBox_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1769 as "Doors"
ExportAssets (56)Timeline Frame 2Symbol 1048 as "ScrollArrowUp_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1058 as "ScrollArrowUp_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1054 as "ScrollArrowDown_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1060 as "ScrollBar_thumbIcon"
ExportAssets (56)Timeline Frame 2Symbol 1046 as "ScrollThumb_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1052 as "ScrollThumb_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1044 as "ScrollArrowDown_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1042 as "ScrollThumb_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1050 as "ScrollArrowUp_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1040 as "ScrollArrowDown_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1038 as "ScrollArrowUp_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1034 as "ScrollTrack_skin"
ExportAssets (56)Timeline Frame 2Symbol 1056 as "ScrollArrowDown_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1674 as "TextInput_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1673 as "TextInput_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1663 as "CheckBox_disabledIcon"
ExportAssets (56)Timeline Frame 2Symbol 1661 as "CheckBox_downIcon"
ExportAssets (56)Timeline Frame 2Symbol 1668 as "CheckBox_selectedOverIcon"
ExportAssets (56)Timeline Frame 2Symbol 1657 as "CheckBox_upIcon"
ExportAssets (56)Timeline Frame 2Symbol 1659 as "CheckBox_overIcon"
ExportAssets (56)Timeline Frame 2Symbol 1667 as "CheckBox_selectedUpIcon"
ExportAssets (56)Timeline Frame 2Symbol 1669 as "CheckBox_selectedDownIcon"
ExportAssets (56)Timeline Frame 2Symbol 1671 as "CheckBox_selectedDisabledIcon"
ExportAssets (56)Timeline Frame 2Symbol 1711 as "NumericStepperDownArrow_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1713 as "NumericStepperDownArrow_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1723 as "NumericStepperUpArrow_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1719 as "NumericStepperUpArrow_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1717 as "NumericStepperDownArrow_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1725 as "NumericStepperUpArrow_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1715 as "NumericStepperDownArrow_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1721 as "NumericStepperUpArrow_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1706 as "fl.controls.listClasses.CellRenderer"
ExportAssets (56)Timeline Frame 2Symbol 1689 as "List_skin"
ExportAssets (56)Timeline Frame 2Symbol 1767 as "Editor_fla.Lock_Up_77"
ExportAssets (56)Timeline Frame 2Symbol 1762 as "Editor_fla.Lock_Down_76"
ExportAssets (56)Timeline Frame 2Symbol 1699 as "CellRenderer_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1703 as "CellRenderer_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1695 as "CellRenderer_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1705 as "CellRenderer_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1691 as "CellRenderer_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1701 as "CellRenderer_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1693 as "CellRenderer_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1697 as "CellRenderer_overSkin"
SerialNumber (41)Timeline Frame 1

Labels

"main_Preloader"Frame 1
"start"Frame 2
"Orange"Symbol 104 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21] Frame 1
"Yellow"Symbol 104 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21] Frame 2
"Green"Symbol 104 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21] Frame 3
"Red"Symbol 104 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21] Frame 4
"Orange"Symbol 109 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22] Frame 1
"Yellow"Symbol 109 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22] Frame 2
"Green"Symbol 109 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22] Frame 3
"Red"Symbol 109 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22] Frame 4
"Orange"Symbol 175 MovieClip {EnemySprite} [EnemySprite] Frame 1
"Green"Symbol 175 MovieClip {EnemySprite} [EnemySprite] Frame 2
"Red"Symbol 175 MovieClip {EnemySprite} [EnemySprite] Frame 3
"Orange"Symbol 179 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3] Frame 1
"Green"Symbol 179 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3] Frame 2
"Red"Symbol 179 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3] Frame 3
"Orange"Symbol 183 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4] Frame 1
"Green"Symbol 183 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4] Frame 2
"Red"Symbol 183 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4] Frame 3
"Orange"Symbol 187 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5] Frame 1
"Green"Symbol 187 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5] Frame 2
"Red"Symbol 187 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5] Frame 3
"Orange"Symbol 191 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6] Frame 1
"Green"Symbol 191 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6] Frame 2
"Red"Symbol 191 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6] Frame 3
"Orange"Symbol 195 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7] Frame 1
"Green"Symbol 195 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7] Frame 2
"Red"Symbol 195 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7] Frame 3
"Orange"Symbol 199 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8] Frame 1
"Green"Symbol 199 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8] Frame 2
"Red"Symbol 199 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8] Frame 3
"Preview"Symbol 341 MovieClip {Menu_fla.Preview_39} [Menu_fla.Preview_39] Frame 41
"Vertical"Symbol 387 MovieClip {DoorPreview} [DoorPreview] Frame 1
"Horisontal"Symbol 387 MovieClip {DoorPreview} [DoorPreview] Frame 2
"Orange"Symbol 391 MovieClip {EnemyPreview} [EnemyPreview] Frame 1
"Green"Symbol 391 MovieClip {EnemyPreview} [EnemyPreview] Frame 2
"Red"Symbol 391 MovieClip {EnemyPreview} [EnemyPreview] Frame 3
"Orange"Symbol 789 MovieClip {Items_fla.Key_2} [Items_fla.Key_2] Frame 1
"Yellow"Symbol 789 MovieClip {Items_fla.Key_2} [Items_fla.Key_2] Frame 2
"Green"Symbol 789 MovieClip {Items_fla.Key_2} [Items_fla.Key_2] Frame 3
"Red"Symbol 789 MovieClip {Items_fla.Key_2} [Items_fla.Key_2] Frame 4
"Stand"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 1
"Run"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 8
"Jump"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 15
"RagdollL"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 22
"RagdollR"Symbol 1574 MovieClip {HeroSprite} [HeroSprite] Frame 30
"None"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 1
"Simple"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 2
"Timeout"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 3
"Moving"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 4
"Replace"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 5
"Thorn"Symbol 1748 MovieClip {BlockType} [BlockType] Frame 6
"Orange"Symbol 1762 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76] Frame 1
"Yellow"Symbol 1762 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76] Frame 2
"Green"Symbol 1762 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76] Frame 3
"Red"Symbol 1762 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76] Frame 4
"Orange"Symbol 1767 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77] Frame 1
"Yellow"Symbol 1767 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77] Frame 2
"Green"Symbol 1767 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77] Frame 3
"Red"Symbol 1767 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77] Frame 4
"Vertical"Symbol 1769 MovieClip {Doors} [Doors] Frame 1
"Horisontal"Symbol 1769 MovieClip {Doors} [Doors] Frame 2




https://swfchan.com/53/263490/info.shtml
Created: 25/3 -2026 12:43:12 Last modified: 25/3 -2026 12:43:12 Server time: 05/04 -2026 07:03:26