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

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

1288038183203.swf

This is the info page for
Flash #88036

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


Text
This site does not support this game.
Please visit King.com to play.

Developed By

5

0

Back to Main Menu

Easy:

Medium:

Hard:

Impossible:

Level

Total Score: 0

Best Score: 0

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

Sponsored By

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

Game Over

See Solution

See Solution

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
//DrawSine (com.midasplayer.extras.DrawSine) package com.midasplayer.extras { import flash.display.*; public class DrawSine extends MovieClip { private var target_mc:MovieClip; private var step_x:Number; private var my_height:Number; private var stroke_color:Number;// = 0 private var draw_fill:Boolean;// = false private var stroke_weight:Number;// = 1 private var fill_alpha:Number; private var fill_height:Number; private var draw_array:Array; private var steps:Number; private var fill_color:Number;// = 0xFF0000 private var my_width:Number; public function DrawSine(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number){ draw_array = new Array(); super(); target_mc = _arg1; my_width = _arg2; my_height = _arg3; steps = _arg4; step_x = (_arg2 / steps); var _local5:int; while (_local5 < steps) { draw_array.push({x:(step_x * _local5), y:0}); _local5++; }; } public function set_fill(_arg1:Boolean, _arg2:Number, _arg3:Number):void{ draw_fill = _arg1; fill_color = (stroke_color = _arg2); fill_alpha = _arg3; } public function set_stroke(_arg1:Number, _arg2:Number):void{ stroke_weight = _arg1; stroke_color = _arg2; } public function draw_waves(_arg1:Array):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local2:Number = draw_array.length; var _local3:Number = _arg1.length; var _local4:Number = 0; while (_local4 < _local3) { _local6 = (((_arg1[_local4].cycles * Math.PI) * 2) / steps); _local7 = 0; while (_local7 < _local2) { if (_local4 == 0){ draw_array[_local7].y = (Math.sin((_arg1[_local4].phase + (_local6 * _local7))) * _arg1[_local4].radius); } else { draw_array[_local7].y = (draw_array[_local7].y + (Math.sin((_arg1[_local4].phase + (_local6 * _local7))) * _arg1[_local4].radius)); }; _local7++; }; _local4++; }; target_mc.graphics.clear(); if (stroke_weight > 0){ target_mc.graphics.lineStyle(stroke_weight, stroke_color); }; if (draw_fill){ target_mc.graphics.beginFill(fill_color, fill_alpha); }; target_mc.graphics.moveTo(draw_array[0].x, draw_array[0].y); var _local5:Number = 1; while (_local5 < _local2) { _local8 = draw_array[_local5].x; _local9 = draw_array[_local5].y; target_mc.graphics.lineTo(_local8, _local9); _local5++; }; if (draw_fill){ target_mc.graphics.lineTo(_local8, (my_height / 2)); target_mc.graphics.lineTo(0, (my_height / 2)); target_mc.graphics.lineTo(0, draw_array[0].y); target_mc.graphics.endFill(); }; } } }//package com.midasplayer.extras
Section 83
//md5 (com.midasplayer.extras.md5) package com.midasplayer.extras { public class md5 { public static const HEX_FORMAT_LOWERCASE:uint = 0; public static const HEX_FORMAT_UPPERCASE:uint = 1; public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = ""; public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "="; public static var hexcase:uint = 0; public static var b64pad:String = ""; public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3)); } public static function binl_md5(_arg1:Array, _arg2:Number):Array{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; var _local3:Number = 1732584193; var _local4:Number = -271733879; var _local5:Number = -1732584194; var _local6:Number = 271733878; var _local7:Number = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function hex_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function binl2rstr(_arg1:Array):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2binl(_arg1:String):Array{ var _local2:Number = 0; var _local3:Array = new Array((_arg1.length >> 2)); _local2 = 0; while (_local2 < _local3.length) { _local3[_local2] = 0; _local2++; }; _local2 = 0; while (_local2 < (_arg1.length * 8)) { _local3[(_local2 >> 5)] = (_local3[(_local2 >> 5)] | ((_arg1.charCodeAt((_local2 / 8)) & 0xFF) << (_local2 % 32))); _local2 = (_local2 + 8); }; return (_local3); } public static function md5_vm_test():Boolean{ return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72")); } public static function b64_md5(_arg1:String):String{ return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1)))); } public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{ return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3)); } public static function hex_md5(_arg1:String):String{ return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1)))); } public static function bit_rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function encrypt(_arg1:String):String{ return (hex_md5(_arg1)); } public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2hex(_arg1:String):String{ var _local4:Number; var _local2:String = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; var _local3 = ""; var _local5:Number = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function any_md5(_arg1:String, _arg2:String):String{ return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2)); } public static function b64_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function rstr2b64(_arg1:String):String{ var _local6:Number; var _local7:Number; var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var _local3 = ""; var _local4:Number = _arg1.length; var _local5:Number = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); var _local4:Number = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function str2rstr_utf8(_arg1:String):String{ var _local4:Number; var _local5:Number; var _local2 = ""; var _local3:Number = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; var _local4:Array = new Array(16); var _local5:Array = new Array(16); var _local6:Number = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; var _local7:Array = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local3:Number = _arg2.length; var _local4:Array = []; var _local9:Array = ((_arg1.length / 2) as Array); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; var _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } } }//package com.midasplayer.extras
Section 84
//MochiBot (com.midasplayer.extras.MochiBot) package com.midasplayer.extras { import flash.display.*; import flash.system.*; import flash.net.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package com.midasplayer.extras
Section 85
//SimpleParticle (com.midasplayer.extras.SimpleParticle) package com.midasplayer.extras { import flash.display.*; public dynamic class SimpleParticle extends Shape { private var _color:Number;// = 0 private var _size:Number;// = 1 private var _type:String;// = "rect" public static var RECT:String = "rect"; public static var CIRCLE:String = "circle"; public function get size():Number{ return (_size); } public function set size(_arg1:Number):void{ _size = _arg1; draw(); } public function get color():Number{ return (_color); } public function set color(_arg1:Number):void{ _color = _arg1; draw(); } public function get type():String{ return (_type); } private function draw():void{ clear(); graphics.beginFill(_color, 1); switch (type){ case RECT: graphics.drawRect((-(size) / 2), (-(size) / 2), size, size); break; case CIRCLE: graphics.drawCircle((-(size) / 2), (-(size) / 2), size); break; }; graphics.endFill(); } public function clear():void{ graphics.clear(); } public function set type(_arg1:String):void{ _type = _arg1; draw(); } } }//package com.midasplayer.extras
Section 86
//SineWave (com.midasplayer.extras.SineWave) package com.midasplayer.extras { public class SineWave { private var my_cycles:Number; private var my_radius:Number; private var my_phase:Number; private var my_inc:Number; public function SineWave(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ my_phase = _arg1; my_cycles = _arg2; my_radius = _arg3; my_inc = _arg4; } public function set radius(_arg1:Number):void{ my_radius = _arg1; } public function get cycles():Number{ return (my_cycles); } public function get radius():Number{ return (my_radius); } public function set cycles(_arg1:Number):void{ my_cycles = _arg1; } public function get phase():Number{ return (my_phase); } public function set inc(_arg1:Number):void{ my_inc = _arg1; } public function set phase(_arg1:Number):void{ my_phase = _arg1; } public function get inc():Number{ return (my_inc); } } }//package com.midasplayer.extras
Section 87
//Water (com.midasplayer.extras.Water) package com.midasplayer.extras { import flash.display.*; public class Water extends MovieClip { private var m_lines:Array; public function Water(){ m_lines = new Array(); super(); } public function decrThickness(_arg1:Boolean):Boolean{ var _local2:int; var _local3:Boolean; var _local4:int; var _local5:Boolean; if (_arg1){ _local2 = 0; while (_local2 < m_lines.length) { _local3 = false; if (m_lines[_local2].decrThickness()){ _local3 = true; } else { return (false); }; _local2++; }; return (_local3); //unresolved jump }; _local4 = 0; while (_local4 < m_lines.length) { _local5 = false; if (m_lines[_local4].incrThickness()){ _local5 = true; } else { return (false); }; _local4++; }; return (_local5); } public function init(_arg1:Number, _arg2:Number):void{ var _local3:WaterLine; var _local5:int; var _local4:uint = 0xFF0000; if (this.name == "RED"){ _local4 = 0xFF0000; _local5 = 1; }; if (this.name == "GREEN"){ _local4 = 0xFF00; _local5 = 1; }; if (this.name == "BLUE"){ _local4 = 2782939; _local5 = 1; }; var _local6:Number = 0; while (_local6 < _local5) { _local3 = new WaterLine(); _local3.addParams(_local4, _arg1, _arg2); _local3.x = (_local6 * 1.5); addChild(_local3); m_lines.push(_local3); _local6++; }; } } }//package com.midasplayer.extras
Section 88
//WaterHolderB (com.midasplayer.extras.WaterHolderB) package com.midasplayer.extras { import flash.display.*; public class WaterHolderB extends MovieClip { public var BLUE:Water; public function WaterHolderB(){ BLUE = new Water(); super(); BLUE.name = "BLUE"; addChild(BLUE); } } }//package com.midasplayer.extras
Section 89
//WaterHolderG (com.midasplayer.extras.WaterHolderG) package com.midasplayer.extras { import flash.display.*; public class WaterHolderG extends MovieClip { public var GREEN:Water; public function WaterHolderG(){ GREEN = new Water(); super(); GREEN.name = "GREEN"; addChild(GREEN); } } }//package com.midasplayer.extras
Section 90
//WaterHolderR (com.midasplayer.extras.WaterHolderR) package com.midasplayer.extras { import flash.display.*; public class WaterHolderR extends MovieClip { public var RED:Water; public function WaterHolderR(){ RED = new Water(); super(); RED.name = "RED"; addChild(RED); } } }//package com.midasplayer.extras
Section 91
//WaterLine (com.midasplayer.extras.WaterLine) package com.midasplayer.extras { import flash.events.*; import flash.display.*; public class WaterLine extends MovieClip { private var _height:Number;// = 400 private var _line:Shape; private var _particlesQuantity:Number;// = 20 private var _color:uint; private var _bubbles:Array; private var _step:Number; private var _particles:Array; private var _lineSize:Number; public function WaterLine(){ trace("WaterLine()"); } public function incrThickness():Boolean{ _lineSize = (_lineSize + 0.5); if (_lineSize >= 5){ return (true); }; return (false); } public function get randomDirection():Number{ return (((Math.round((Math.random() * 1)) * 2) - 1)); } public function addParams(_arg1:uint, _arg2:Number, _arg3:Number):void{ _color = _arg1; _height = _arg2; _lineSize = _arg3; init(); } private function createBubbles():void{ var _local2:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:*; var _local1:Array = [_color, _color]; var _local3:Number = 0; while (_local3 < 5) { _local2 = new SimpleParticle(); _local2.type = SimpleParticle.CIRCLE; _local2.size = 0.8; _local2.color = _local1[Math.round((Math.random() * (_local1.length - 1)))]; _local2.alpha = 1; addChild(_local2); _bubbles.push(_local2); _local3++; }; for (_local6 in _bubbles) { _local2 = _bubbles[_local6]; if (!_local2.isOut){ _local2.y = (_local2.y + ((Math.random() * 5) + 10)); _local4 = Math.floor((_local2.y / this._step)); _local2.x = (_local2.x + (((_particles[_local4].x + ((Math.random() * 1) * randomDirection)) - _local2.x) * 0.8)); _local5 = Math.sqrt((Math.pow((mouseX - _local2.x), 2) + Math.pow((mouseY - _local2.y), 2))); if ((((_local5 < 4)) && (!(_local2.isOut)))){ }; } else { _local2.y = (_local2.y + _local2.speedY); _local2.speedY = (_local2.speedY + 3); _local2.x = (_local2.x + _local2.speedX); _local2.alpha = (_local2.alpha - 0.005); }; if ((((_local2.y > _height)) || ((_local2.alpha < 0)))){ _bubbles.splice(_local6, 1); _local2.parent.removeChild(_local2); _local2 = null; }; }; } private function createLine():void{ var _local1:SimpleParticle; var _local2:Number = 0; while (_local2 < _particlesQuantity) { _local1 = new SimpleParticle(); _local1.elasticX = 0; _local1.yIni = (_local1.y = (_step * _local2)); addChild(_local1); _particles.push(_local1); _local2++; }; } private function init():void{ _line = new Shape(); _line.alpha = 0.8; addChild(_line); _bubbles = []; _particles = []; _step = (_height / (_particlesQuantity - 1)); createLine(); addEventListener(Event.ENTER_FRAME, animate); } private function animate(_arg1:Event):void{ var _local2:SimpleParticle; var _local3:SimpleParticle; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local9:Number; var _local8:Number = 10; var _local10:Number = 3; _line.graphics.clear(); _line.graphics.moveTo(_particles[0].x, _particles[0].y); _line.graphics.lineStyle(_lineSize, _color, 1); var _local11:int; while (_local11 < _particles.length) { _local3 = _particles[_local11]; if (_local11 == 0){ _local3.x = (_local3.x + ((((Math.random() * _local10) * randomDirection) - _local3.x) * 0.9)); }; _local2 = ((_local11)>0) ? _particles[(_local11 - 1)] : _local3; _local7 = Math.sqrt((Math.pow((mouseX - 0), 2) + Math.pow((mouseY - _local3.yIni), 2))); if (_local7 < _local8){ } else { _local5 = _local2.x; _local3.elasticX = ((_local3.elasticX * 0.4) + ((_local5 - _local3.x) * 0.4)); _local3.x = (_local3.x + _local3.elasticX); }; if (_local11 > 0){ _line.graphics.curveTo(_local2.x, _local2.y, ((_local2.x + _local3.x) / 2), ((_local2.y + _local3.y) / 2)); }; _local11++; }; } private function spreadBubble(_arg1:SimpleParticle):void{ _arg1.isOut = true; parent.parent.addChild(_arg1); _arg1.size = 1.2; _arg1.alpha = 0.35; _arg1.x = (parent.x + _arg1.x); _arg1.y = (parent.y + _arg1.y); _arg1.speedY = (-5 - (Math.random() * 10)); _arg1.speedX = (((Math.random() * 15) + 1) * randomDirection); } public function decrThickness():Boolean{ _lineSize--; if (_lineSize <= 0){ return (true); }; return (false); } } }//package com.midasplayer.extras
Section 92
//WaveEngine (com.midasplayer.extras.WaveEngine) package com.midasplayer.extras { import flash.events.*; import flash.display.*; public class WaveEngine extends MovieClip { private var m_wave:DrawSine; private var m_fillColor:uint; private var m_num_waves:int;// = 3 private var m_waveHolder:MovieClip; private var m_sinArr:Array; private var m_rootRef:MovieClip; public function WaveEngine(_arg1:MovieClip, _arg2:int, _arg3:int, _arg4:uint, _arg5:uint, _arg6:MovieClip){ m_waveHolder = new MovieClip(); m_sinArr = new Array(); super(); m_rootRef = _arg1; m_waveHolder = _arg6; m_wave = new DrawSine(m_waveHolder, _arg2, _arg3, 100); var _local7:int; while (_local7 < m_num_waves) { m_sinArr.push(new SineWave(((Math.random() * Math.PI) * 1.5), (Math.random() * 1.5), ((Math.random() * 1.5) + 1), (Math.random() - 0.5))); _local7++; }; m_wave.set_stroke(3, _arg5); m_wave.set_fill(true, _arg4, 100); m_fillColor = _arg4; } public function startWave():void{ m_rootRef.addEventListener(Event.ENTER_FRAME, update); } public function getWave():MovieClip{ return (m_waveHolder); } private function update(_arg1:Event):void{ var _local2:*; for (_local2 in m_sinArr) { m_sinArr[_local2].phase = (m_sinArr[_local2].phase + m_sinArr[_local2].inc); }; m_wave.set_fill(true, m_fillColor, 1); m_wave.draw_waves(m_sinArr); } public function stopWave():void{ m_rootRef.removeEventListener(Event.ENTER_FRAME, update); } public function colorUpdate(_arg1:uint):void{ var _local2:String = ("0x" + _arg1.toString(16)); m_fillColor = uint(_local2); } } }//package com.midasplayer.extras
Section 93
//KingAPI (com.midasplayer.KingAPI) package com.midasplayer { import flash.events.*; import com.midasplayer.extras.*; import flash.net.*; import flash.external.*; public class KingAPI { public static const LINK_TYPE_RIGHT_CLICK:String = "rightclick"; public static const USER_TYPE_SUBSCRIPTION:int = 3; public static const LINK_TYPE_HIGHSCORES:String = "highscores"; public static const LINK_TYPE_SIGN:String = "sign"; public static const INITIALIZED_EVENT:String = "initialized"; public static const LINK_TYPE_OTHER_GAMES:String = "other_games"; public static const USER_TYPE_REGISTERED:int = 1; private static const SAK:String = "ggfd7sday923mdsfd8csfds34"; private static const loadHomeParametersURL:String = "http://www.king.com/servlet/FreeGameServlet?action=load"; public static const LINK_TYPE_LOADER_MOVIE:String = "loader_movie"; private static const bounceURL:String = "http://www.mygame.com/king/bounce.jsp"; public static const LINK_TYPE_PROTECT:String = "protect"; public static const LINK_TYPE_ADD_GAME:String = "add_game"; public static const USER_TYPE_GOLD:int = 2; public static const USER_TYPE_UNREGISTERED:int = 0; public static const HOST_BANNED_EVENT:String = "hostBanned"; private static const SK:String = "vf78hxcsjak77cxzhjkwad87s"; private static const loadCountURL:String = "http://www.mygame.com/king/loadcount.jsp"; public static const LINK_TYPE_LOADER_PROGRESS:String = "loader_progress"; private static var check:String = null; public static var gameName:String; public static var banned:Boolean = false; protected static var dispatcher:EventDispatcher; public static var isHome:Boolean = false; private static var sessionID:String; private static var iscore:int = 123; public static var fromURL:String; private static var SSK:String = "ng43ui54hy35tdsnd6f54rews"; private static function loadUrlErrorHandler(_arg1:Event):void{ trace(("Unable to load url: " + _arg1)); } public static function resetScore():void{ iscore = 123; check = null; } public static function openOfflineProtectionLink():void{ openKingPage(LINK_TYPE_PROTECT); } public static function init(_arg1:String, _arg2:String):void{ var so:SharedObject; var rnd1:Number; var rnd2:Number; var name = _arg1; var from = _arg2; gameName = name; fromURL = from; var loadCounter:URLLoader = new URLLoader(); var reqvars:URLVariables = new URLVariables(); reqvars.game = gameName; reqvars.from = fromURL; try { so = SharedObject.getLocal("sessionId"); if (so.data.sessionID == null){ rnd1 = Math.abs(Math.floor((Math.random() * 4294967295))); rnd2 = Math.abs(Math.floor((Math.random() * 4294967295))); so.data.sessionID = (rnd1.toString(16) + rnd2.toString(16)); so.flush(); }; sessionID = so.data.sessionID; } catch(e:Error) { sessionID = "error"; }; reqvars.session = sessionID; var request:URLRequest = new URLRequest(((loadCountURL + "?") + reqvars.toString())); loadCounter.addEventListener(Event.COMPLETE, loadCountHandler); loadCounter.addEventListener(IOErrorEvent.IO_ERROR, loadUrlErrorHandler); loadCounter.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadUrlErrorHandler); try { loadCounter.load(request); } catch(error:Error) { trace(("Unable to load loadcount url: " + loadCountURL)); trace(error.message); }; } private static function loadHomeParametersHandler(_arg1:Event):void{ var _local2:URLLoader = URLLoader(_arg1.target); trace(("loadCounter.data" + _local2.data)); } public static function submitInternalScore():void{ checkScore(); var _local1:int = ((iscore - 123) / 2); submitScore(_local1); } public static function openOtherGamesLink():void{ openKingPage(LINK_TYPE_OTHER_GAMES); } public static function openKingPage(_arg1:String, _arg2:String=null):void{ var _local3:URLVariables = new URLVariables(); _local3.game = gameName; _local3.from = fromURL; _local3.type = _arg1; _local3.session = sessionID; if (_arg2 != null){ _local3.redirect = _arg2; }; var _local4 = "_blank"; if (isHome){ _local4 = "_top"; }; navigateToURL(new URLRequest(((bounceURL + "?") + _local3.toString())), _local4); } private static function loadCountHandler(_arg1:Event):void{ var vars:URLVariables; var event = _arg1; var loadCounter:URLLoader = URLLoader(event.target); trace(("loadCounter.data :" + loadCounter.data)); try { vars = new URLVariables(loadCounter.data); if (vars.h == "true"){ isHome = true; }; if (vars.b == "true"){ banned = true; dispatcher.dispatchEvent(new Event(HOST_BANNED_EVENT)); } else { dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; trace((("::" + vars.h) + "::")); trace((("::" + vars.b) + "::")); } catch(e:Error) { trace(("Error reading data from loadcount url: " + e)); dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(); }; dispatcher.addEventListener(_arg1, _arg2); } public static function openLoaderMovieLink():void{ openKingPage(LINK_TYPE_LOADER_MOVIE); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ return; }; dispatcher.removeEventListener(_arg1, _arg2); } public static function submitScore(_arg1:int):void{ var score = _arg1; var hash:String = md5.encrypt(((((score + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitScore", score, hash); } else { openKingPage(LINK_TYPE_HIGHSCORES, ((((("game/" + gameName) + "/submit/") + score) + ":") + hash)); }; } catch(e:Error) { trace(e); }; } public static function submitLevel(_arg1:int):void{ var level = _arg1; var hash:String = md5.encrypt(((((level + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitLevel", level, hash); }; } catch(e:Error) { trace(e); }; } public static function openHighscoresLink():void{ openKingPage(LINK_TYPE_HIGHSCORES, (("game/" + gameName) + "/highscores")); } public static function openSignLink():void{ if (!isHome){ openKingPage(LINK_TYPE_SIGN); }; } public static function openRightClickLink():void{ openKingPage(LINK_TYPE_RIGHT_CLICK); } private static function checkScore():void{ if (check != null){ if (check != md5.encrypt(((((iscore + ":") + gameName) + ":") + SK))){ SSK = "ng41ui54hy35tdsnd6f54rews"; }; }; } public static function addScore(_arg1:int):int{ checkScore(); var _local2:int = ((iscore - 123) / 2); _local2 = (_local2 + _arg1); iscore = ((_local2 * 2) + 123); check = md5.encrypt(((((iscore + ":") + gameName) + ":") + SK)); return (_local2); } public static function openLoaderProgressLink():void{ openKingPage(LINK_TYPE_LOADER_PROGRESS); } public static function openAddToWebsiteLink():void{ openKingPage(LINK_TYPE_ADD_GAME, "website_content.jsp"); } public static function submitAchievement(_arg1:String):void{ var achievement = _arg1; var hash:String = md5.encrypt(((((achievement + ":") + gameName) + ":") + SAK)); try { if (isHome){ ExternalInterface.call("submitAchievement", achievement, hash); }; } catch(e:Error) { trace(e); }; } } }//package com.midasplayer
Section 94
//MainLoader (com.midasplayer.MainLoader) package com.midasplayer { import flash.events.*; import fl.transitions.*; import flash.geom.*; import com.midasplayer.extras.*; import flash.display.*; import flash.utils.*; import flash.media.*; import fl.transitions.easing.*; public class MainLoader extends MovieClip { private var STAGE_WIDTH:Number;// = 640 private var m_waveEngineCrown:WaveEngine; private var m_streamBlue:Boolean;// = false private var m_clsRed:Water; private var m_ferryGreen:MovieClip; private var m_overBtn:Boolean;// = false private var m_tween:Tween; private var m_startColor:ColorTransform; private var m_dist:Number; private var m_ferryBlue:MovieClip; private var m_yellowDest:Number; private var m_logoHolder:Sprite; private var m_prevPerc:Number;// = -1 private var m_tweenBounceLogo:Tween; private var m_bg:Sprite; private var m_streamHeight:Number; private var m_step:Number; private var m_logoFill:Boolean;// = true private var m_isLoaded:Boolean;// = false private var m_waveHolderLogo:MovieClip; private var m_maskRown:MovieClip; private var m_sun:Sprite; private var m_mask:MovieClip; private var m_rootRef:MovieClip; private var m_crownFill:Boolean;// = false private var m_clsGreen:Water; private var m_GREEN:MovieClip; private var m_loaderContent:Array; private var m_bounce:Boolean;// = false private var m_colorOff:Boolean;// = false private var m_RED:MovieClip; private var m_streamGreen:Boolean;// = true private var MOCHI:String;// = "89534194" private var m_otherGames:Sprite; private var m_streamRed:Boolean;// = false private var STAGE_HEIGHT:Number;// = 480 private var m_ferryRed:MovieClip; private var m_pressBtn:Boolean;// = false private var GAME_NAME:String;// = "level-editor" private var m_count:Number;// = 0 private var m_play:Sprite; private var m_sampleLoadPerc:Number;// = -1 private var m_gameFrameRate:int; private var m_clsBlue:Water; private var m_endColor:ColorTransform; private var m_waveHolderCrown:MovieClip; private var m_BLUE:MovieClip; private var m_greenDest:Number; private var m_waveEngineLogo:WaveEngine; public function MainLoader(){ m_loaderContent = new Array(); m_waveHolderLogo = new MovieClip(); m_waveHolderCrown = new MovieClip(); m_mask = new MovieClip(); m_maskRown = new MovieClip(); m_ferryGreen = new ferryGreen(); m_ferryRed = new ferryRed(); m_ferryBlue = new ferryBlue(); super(); trace("MainLoader()"); stop(); m_RED = new WaterHolderR(); m_GREEN = new WaterHolderG(); m_BLUE = new WaterHolderB(); m_rootRef = this; m_bg = new Sprite(); m_bg.graphics.beginFill(0x333333, 1); m_bg.graphics.drawRect(0, 0, STAGE_WIDTH, STAGE_HEIGHT); m_bg.addEventListener(MouseEvent.CLICK, openKingPage); m_rootRef.addChild(m_bg); m_loaderContent.push(m_bg); stage.scaleMode = StageScaleMode.NO_SCALE; KingAPI.addEventListener(KingAPI.INITIALIZED_EVENT, onKingApiInit); KingAPI.addEventListener(KingAPI.HOST_BANNED_EVENT, onKingApiInit); KingAPI.init(GAME_NAME, root.loaderInfo.url); } private function playLoaderMovie():void{ var _local1:MovieClip = new mcFerryLine(); m_rootRef.addChild(m_ferryGreen); m_rootRef.addChild(m_ferryRed); m_rootRef.addChild(m_ferryBlue); m_ferryGreen.x = ((STAGE_WIDTH / 2) - 2); m_ferryRed.x = ((m_ferryGreen.x - (m_ferryGreen.width / 2)) + 15); m_ferryBlue.x = ((m_ferryGreen.x + (m_ferryGreen.width / 2)) - 17); m_ferryBlue.y = (m_ferryGreen.y = (m_ferryRed.y = (m_bg.y + 15))); m_loaderContent.push(m_ferryGreen); m_loaderContent.push(m_ferryRed); m_loaderContent.push(m_ferryBlue); _local1.x = (STAGE_WIDTH / 2); _local1.y = ((m_ferryGreen.y + m_ferryGreen.height) - 9); m_streamHeight = ((STAGE_HEIGHT / 2) - 40); m_clsRed = m_RED.RED; m_clsRed.init(m_streamHeight, 1); m_clsGreen = m_GREEN.GREEN; m_clsGreen.init(m_streamHeight, 1); m_clsBlue = m_BLUE.BLUE; m_clsBlue.init(m_streamHeight, 1); m_RED.alpha = (m_GREEN.alpha = (m_BLUE.alpha = 0)); m_rootRef.addChild(m_RED); m_rootRef.addChild(m_GREEN); m_rootRef.addChild(m_BLUE); m_loaderContent.push(m_RED); m_loaderContent.push(m_GREEN); m_loaderContent.push(m_BLUE); m_RED.x = ((STAGE_WIDTH / 2) - 22); m_GREEN.x = ((STAGE_WIDTH / 2) - 4); m_BLUE.x = ((STAGE_WIDTH / 2) + 16); m_RED.y = (m_GREEN.y = (m_BLUE.y = _local1.y)); m_waveEngineLogo = new WaveEngine(m_rootRef, 205.8, 120, 0xFF00, 0xFF00, m_waveHolderLogo); m_waveHolderLogo = m_waveEngineLogo.getWave(); m_rootRef.addChild(m_waveHolderLogo); m_loaderContent.push(m_waveHolderLogo); m_waveEngineCrown = new WaveEngine(m_rootRef, 67.5, 100, 0xFFAA00, 0xFFAA00, m_waveHolderCrown); m_waveHolderCrown = m_waveEngineCrown.getWave(); m_rootRef.addChild(m_waveHolderCrown); m_loaderContent.push(m_waveHolderCrown); m_logoHolder = new mcLogoHolder(); m_logoHolder.x = (STAGE_WIDTH / 2); m_logoHolder.y = ((STAGE_HEIGHT / 2) - 2); m_logoHolder.mouseEnabled = false; m_rootRef.addChild(m_logoHolder); m_loaderContent.push(m_logoHolder); m_mask = new mcLogoMask(); m_mask.x = m_logoHolder.x; m_mask.y = m_logoHolder.y; m_rootRef.addChild(m_mask); m_loaderContent.push(m_mask); m_maskRown = new mcCrownMask(); m_maskRown.x = m_logoHolder.x; m_maskRown.y = m_logoHolder.y; m_rootRef.addChild(m_maskRown); m_loaderContent.push(m_maskRown); m_waveHolderLogo.mask = m_mask; m_waveHolderLogo.x = ((STAGE_WIDTH / 2) - (m_mask.width / 2)); m_waveHolderLogo.y = (((STAGE_HEIGHT / 2) + (m_mask.height / 2)) + 15); m_waveHolderCrown.mask = m_maskRown; m_waveHolderCrown.x = (m_logoHolder.x - (m_maskRown.width / 2)); m_waveHolderCrown.y = (m_logoHolder.y + 4); m_waveEngineLogo.startWave(); m_waveEngineCrown.startWave(); m_greenDest = ((m_waveHolderLogo.y - (120 / 2)) - 10); m_yellowDest = (m_waveHolderCrown.y - (100 / 2)); m_dist = (m_waveHolderCrown.y - m_yellowDest); m_startColor = new ColorTransform(); m_startColor.color = 0xFF00; m_endColor = new ColorTransform(); m_endColor.color = 35886; m_play = new mcPlay(); m_play.x = (STAGE_WIDTH / 2); m_play.y = ((m_logoHolder.y + m_logoHolder.height) - 5); m_play.buttonMode = true; m_play.alpha = 0; m_play.visible = false; m_play.addEventListener(MouseEvent.MOUSE_UP, onPlayReleased); m_play.addEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_play.addEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_rootRef.addChild(m_play); m_loaderContent.push(m_play); m_otherGames = new mcOtherGames(); m_otherGames.x = (STAGE_WIDTH / 2); m_otherGames.y = ((m_play.y + m_play.height) + 15); m_otherGames.buttonMode = true; m_otherGames.alpha = 0; m_otherGames.visible = false; m_otherGames.addEventListener(MouseEvent.MOUSE_UP, onOtherReleased); m_otherGames.addEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_otherGames.addEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_rootRef.addChild(m_otherGames); m_loaderContent.push(m_otherGames); m_rootRef.addEventListener(Event.ENTER_FRAME, update); } private function completeListener(_arg1:Event=null):void{ stop(); var _local2:Class = (getDefinitionByName("main.Root") as Class); addChild((new _local2(stage) as DisplayObject)); } private function onLoaderMovieFinished():void{ trace("onGameLoaded()"); m_tween.removeEventListener(TweenEvent.MOTION_CHANGE, tweenTransformCrown); m_rootRef.removeEventListener(Event.ENTER_FRAME, update); } private function onPlayReleased(_arg1:MouseEvent):void{ cleanUp(); gotoGame(); } private function openKingPage(_arg1:Event):void{ trace(("openKingPage() " + _arg1)); KingAPI.openLoaderMovieLink(); } private function onBtnOut(_arg1:MouseEvent):void{ _arg1.target.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); if (m_pressBtn){ _arg1.target.x = (_arg1.target.x - 1); _arg1.target.y = (_arg1.target.y - 2); m_pressBtn = false; }; } private function onBtnPress(_arg1:MouseEvent):void{ m_pressBtn = true; _arg1.target.x = (_arg1.target.x + 1); _arg1.target.y = (_arg1.target.y + 2); } private function onKingApiInit(_arg1:Event):void{ trace(("onKingApiInit() :" + _arg1.type)); if (MOCHI != ""){ MochiBot.track(this, MOCHI); }; m_gameFrameRate = root.stage.frameRate; root.stage.frameRate = 30; if (KingAPI.banned){ showBannedScreen(); return; }; if (KingAPI.isHome){ gotoGame(); } else { playLoaderMovie(); }; } private function checkFrame(_arg1:Event):void{ if (currentFrame == totalFrames){ removeEventListener(Event.ENTER_FRAME, checkFrame); completeListener(); }; } private function onBtnOver(_arg1:MouseEvent):void{ _arg1.target.addEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); } private function tweenTransformLogo(_arg1:TweenEvent):void{ m_waveEngineLogo.colorUpdate(interpolateColor(m_startColor, m_endColor, m_tween.position).color); } private function cleanUp():void{ m_otherGames.removeEventListener(MouseEvent.MOUSE_UP, onOtherReleased); m_otherGames.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); m_otherGames.removeEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_otherGames.removeEventListener(MouseEvent.MOUSE_OUT, onBtnOut); m_play.removeEventListener(MouseEvent.MOUSE_UP, onPlayReleased); m_play.removeEventListener(MouseEvent.MOUSE_DOWN, onBtnPress); m_play.removeEventListener(MouseEvent.MOUSE_OVER, onBtnOver); m_play.removeEventListener(MouseEvent.MOUSE_OUT, onBtnOut); var _local1:int; while (_local1 < m_loaderContent.length) { m_rootRef.removeChild(m_loaderContent[_local1]); m_loaderContent[_local1] = null; _local1++; }; } private function showBannedScreen():void{ var _local1:Sprite = new mcBannedSign(); _local1.buttonMode = true; _local1.addEventListener(MouseEvent.CLICK, openKingPage); m_rootRef.addChild(_local1); } private function update(_arg1:Event):void{ var _local2:int; var _local3:int; var _local4:MovieClip; var _local5:Sound; var _local6:Sound; if ((((stage.loaderInfo.bytesLoaded == stage.loaderInfo.bytesTotal)) && (!(m_isLoaded)))){ m_isLoaded = true; trace("LOADED COMPLETE"); }; m_count++; if (m_streamGreen){ if (m_count == 1){ m_GREEN.height = (m_GREEN.height - m_GREEN.height); m_GREEN.alpha = 1; m_ferryGreen.gotoAndStop("on"); }; m_GREEN.height = (m_GREEN.height + 20); if (m_GREEN.height >= m_streamHeight){ m_GREEN.height = m_streamHeight; if (m_clsGreen.decrThickness(false)){ m_streamGreen = false; m_streamBlue = true; m_count = 0; }; }; }; if (m_streamBlue){ if (m_count >= 40){ if (m_count == 40){ m_BLUE.height = (m_BLUE.height - m_BLUE.height); m_BLUE.alpha = 1; m_ferryBlue.gotoAndStop("on"); m_tween = new Tween(m_waveHolderLogo, "", None.easeNone, 0, 1, 2, true); m_tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransformLogo); }; m_BLUE.height = (m_BLUE.height + 20); if (m_BLUE.height >= m_streamHeight){ m_BLUE.height = m_streamHeight; if (m_clsBlue.decrThickness(false)){ m_streamBlue = false; }; }; }; }; if (m_logoFill){ if (m_waveHolderLogo.y > m_greenDest){ m_waveHolderLogo.y = (m_waveHolderLogo.y - 0.3); } else { m_waveHolderLogo.y = m_greenDest; if (!m_streamBlue){ m_colorOff = true; m_waveEngineLogo.stopWave(); }; }; }; if (m_colorOff){ if (m_logoFill){ if (m_clsBlue.decrThickness(true)){ if (m_BLUE.rotation != 180){ m_BLUE.rotation = 180; m_BLUE.y = (STAGE_HEIGHT / 2); m_ferryBlue.gotoAndStop("off"); }; m_BLUE.scaleY = (m_BLUE.scaleY - 0.1); if (m_BLUE.scaleY < 0){ m_BLUE.alpha = 0; m_colorOff = false; m_logoFill = false; m_count = 0; m_crownFill = true; m_streamRed = true; m_startColor = new ColorTransform(); m_startColor.color = 0xFF00; m_endColor = new ColorTransform(); m_endColor.color = 0xFFAA00; m_tween.removeEventListener(TweenEvent.MOTION_CHANGE, tweenTransformLogo); m_tween = new Tween(m_waveHolderCrown, "", None.easeNone, 0, 1, 2, true); m_tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransformCrown); }; }; }; if (m_crownFill){ if (((m_clsRed.decrThickness(true)) && (m_clsGreen.decrThickness(true)))){ if (m_GREEN.rotation != 180){ m_GREEN.rotation = 180; m_RED.rotation = 180; m_GREEN.y = (STAGE_HEIGHT / 2); m_RED.y = (STAGE_HEIGHT / 2); m_ferryGreen.gotoAndStop("off"); m_ferryRed.gotoAndStop("off"); }; m_GREEN.scaleY = (m_GREEN.scaleY - 0.1); m_RED.scaleY = (m_RED.scaleY - 0.1); if ((((m_GREEN.scaleY < 0)) && ((m_RED.scaleY < 0)))){ m_GREEN.alpha = 0; m_RED.alpha = 0; m_colorOff = false; m_crownFill = false; m_bounce = true; m_count = 0; }; }; }; }; if (m_crownFill){ if (m_sampleLoadPerc == -1){ m_sampleLoadPerc = (100 - (100 * (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal))); m_step = (m_dist / 100); }; _local2 = (100 - (100 * (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal))); _local2 = ((100 * (m_sampleLoadPerc - _local2)) / m_sampleLoadPerc); if (m_waveHolderCrown.y > m_yellowDest){ if ((m_waveHolderCrown.y - m_step) < m_yellowDest){ m_waveHolderCrown.y = m_yellowDest; } else { if (m_isLoaded){ m_waveHolderCrown.y = (m_waveHolderCrown.y - 0.5); } else { trace(m_prevPerc, _local2); if (m_prevPerc != _local2){ _local3 = (_local2 - m_prevPerc); m_waveHolderCrown.y = (m_waveHolderCrown.y - m_step); m_prevPerc = _local2; }; }; }; } else { m_colorOff = true; m_waveEngineCrown.stopWave(); }; }; if (m_streamRed){ if (m_count >= 20){ if (m_count == 20){ m_RED.height = (m_RED.height - m_RED.height); m_RED.alpha = 1; m_ferryRed.gotoAndStop("on"); }; m_RED.height = (m_RED.height + 20); if (m_RED.height >= m_streamHeight){ m_RED.height = m_streamHeight; if (m_clsRed.decrThickness(false)){ m_streamRed = false; }; }; }; }; if (m_bounce){ if (m_count == 1){ _local4 = new mcWaterRing(); _local4.x = (STAGE_WIDTH / 2); _local4.y = ((STAGE_HEIGHT / 2) + 30); m_rootRef.addChild(_local4); m_loaderContent.push(_local4); }; if (m_count == 2){ _local5 = new sfxBounce(); _local5.play(); }; if (m_count < 3){ m_logoHolder.y = (m_logoHolder.y + 1); m_waveHolderCrown.y = (m_waveHolderCrown.y + 1); m_waveHolderLogo.y = (m_waveHolderLogo.y + 1); m_maskRown.y = (m_maskRown.y + 1); m_mask.y = (m_mask.y + 1); }; if ((((m_count > 2)) && ((m_count < 4)))){ m_logoHolder.y = (m_logoHolder.y - 1); m_waveHolderCrown.y = (m_waveHolderCrown.y - 1); m_waveHolderLogo.y = (m_waveHolderLogo.y - 1); m_maskRown.y = (m_maskRown.y - 1); m_mask.y = (m_mask.y - 1); }; if (m_count == 4){ _local6 = new sfxBell(); _local6.play(); }; if (m_count == 30){ m_play.visible = true; m_otherGames.visible = true; }; if (m_count > 30){ m_play.alpha = (m_play.alpha + 0.05); if (m_count > 40){ m_otherGames.alpha = (m_otherGames.alpha + 0.05); }; if ((((m_play.alpha >= 1)) && ((m_otherGames.alpha >= 1)))){ m_bounce = false; onLoaderMovieFinished(); }; }; }; } private function onOtherReleased(_arg1:MouseEvent):void{ cleanUp(); KingAPI.openOtherGamesLink(); } private function interpolateColor(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:ColorTransform = new ColorTransform(); _local4.redMultiplier = (_arg1.redMultiplier + ((_arg2.redMultiplier - _arg1.redMultiplier) * _arg3)); _local4.greenMultiplier = (_arg1.greenMultiplier + ((_arg2.greenMultiplier - _arg1.greenMultiplier) * _arg3)); _local4.blueMultiplier = (_arg1.blueMultiplier + ((_arg2.blueMultiplier - _arg1.blueMultiplier) * _arg3)); _local4.alphaMultiplier = (_arg1.alphaMultiplier + ((_arg2.alphaMultiplier - _arg1.alphaMultiplier) * _arg3)); _local4.redOffset = (_arg1.redOffset + ((_arg2.redOffset - _arg1.redOffset) * _arg3)); _local4.greenOffset = (_arg1.greenOffset + ((_arg2.greenOffset - _arg1.greenOffset) * _arg3)); _local4.blueOffset = (_arg1.blueOffset + ((_arg2.blueOffset - _arg1.blueOffset) * _arg3)); _local4.alphaOffset = (_arg1.alphaOffset + ((_arg2.alphaOffset - _arg1.alphaOffset) * _arg3)); return (_local4); } private function gotoGame():void{ addEventListener(Event.ENTER_FRAME, checkFrame); play(); } private function tweenTransformCrown(_arg1:TweenEvent):void{ m_waveEngineCrown.colorUpdate(interpolateColor(m_startColor, m_endColor, m_tween.position).color); } } }//package com.midasplayer
Section 95
//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 96
//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 97
//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 98
//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 99
//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 100
//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 101
//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 102
//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 103
//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 104
//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 105
//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 106
//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 107
//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 108
//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 109
//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 110
//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 111
//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 112
//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 113
//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 114
//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 115
//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 116
//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 117
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 118
//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 119
//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 120
//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 121
//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 122
//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 123
//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 124
//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 125
//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 126
//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 127
//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 128
//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 129
//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 130
//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 131
//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 132
//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 133
//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 134
//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 135
//Tween (fl.transitions.Tween) package fl.transitions { import flash.events.*; import flash.display.*; 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 136
//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 137
//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 138
//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 139
//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 140
//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 141
//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 142
//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 143
//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 144
//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 145
//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 146
//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 147
//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 148
//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 149
//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 150
//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 151
//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 152
//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 153
//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 154
//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 155
//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 156
//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 157
//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 158
//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 159
//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 160
//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 161
//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 162
//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 163
//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 164
//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 165
//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 166
//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 167
//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 168
//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 169
//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 170
//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 171
//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 172
//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 173
//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 174
//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 175
//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 176
//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 177
//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 178
//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 179
//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 180
//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 181
//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 182
//Credits (main.menu.Credits) package main.menu { import flash.events.*; import main.*; import flash.net.*; public class Credits extends BasicMenu { private var menu:CreditsSprite; public function Credits(){ menu = new CreditsSprite(); addChild(menu); } override public function lockButtons():void{ menu.btnMainMenu.removeEventListener(MouseEvent.MOUSE_DOWN, mainMenu); menu.btnKing.removeEventListener(MouseEvent.MOUSE_DOWN, gotoKing); } private function mainMenu(_arg1:MouseEvent):void{ hide(); Root.link.showMainMenu(); } public function gotoKing(_arg1:MouseEvent):void{ navigateToURL(KingURL.sponsorURL, "_blank"); } override public function unlockButtons():void{ menu.btnMainMenu.addEventListener(MouseEvent.MOUSE_DOWN, mainMenu); menu.btnKing.addEventListener(MouseEvent.MOUSE_DOWN, gotoKing); } } }//package main.menu
Section 183
//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 184
//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 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 185
//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); } public function showStars(_arg1:int):void{ menu.stars.gotoAndStop(_arg1); } public function gotoKing(_arg1:MouseEvent):void{ navigateToURL(KingURL.sponsorURL, "_blank"); } public function resetStars():void{ menu.stars.gotoAndStop(1); } override public function lockButtons():void{ menu.btnMainMenu.removeEventListener(MouseEvent.MOUSE_DOWN, mainMenu); menu.btnKing.removeEventListener(MouseEvent.MOUSE_DOWN, gotoKing); } 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); menu.btnKing.addEventListener(MouseEvent.MOUSE_DOWN, gotoKing); } 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 186
//MainMenu (main.menu.MainMenu) package main.menu { import flash.events.*; import main.*; import flash.net.*; import com.midasplayer.*; 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 credits(_arg1:MouseEvent):void{ hide(); Root.link.showCredits(); } private function hiScores(_arg1:MouseEvent):void{ KingAPI.openHighscoresLink(); } 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(KingURL.moreGamesURL, "_blank"); } private function levelEditor(_arg1:MouseEvent):void{ hide(); Root.link.selectLevel(true); } 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); btnKing.removeEventListener(MouseEvent.MOUSE_DOWN, gotoKing); }; } public function hostThisGame(_arg1:MouseEvent):void{ navigateToURL(KingURL.hostGameURL); } public function gotoKing(_arg1:MouseEvent):void{ navigateToURL(KingURL.sponsorURL); } private function switchSound(_arg1:MouseEvent):void{ var event = _arg1; var _local3 = Root.link; with (_local3) { if (sound){ sound = false; } else { sound = true; }; }; refresh(); } 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); btnKing.addEventListener(MouseEvent.MOUSE_DOWN, gotoKing); }; } } }//package main.menu
Section 187
//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 188
//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 189
//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 190
//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 _local4:BitmapData; var _local6:DisplayObjectContainer; var _local7:int; var _local3:Rectangle = _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 191
//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 192
//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 193
//FinalWindow (main.windows.FinalWindow) package main.windows { import flash.events.*; import main.*; import flash.net.*; import com.midasplayer.*; public class FinalWindow extends SimpleWindow { public var window:FinalWindowSprite; public function FinalWindow(){ window = new FinalWindowSprite(); addChild(window); window.btnSubmit.addEventListener(MouseEvent.CLICK, submitScore); window.btnKing.addEventListener(MouseEvent.CLICK, gotoKing); } public function submitScore(_arg1:MouseEvent):void{ KingAPI.submitScore(Root.link.score.total); Root.link.stopGame(); } public function refresh():void{ window.fldTotal.text = ("Total Score: " + Root.link.score.total); } public function gotoKing():void{ navigateToURL(KingURL.sponsorURL, "_blank"); } } }//package main.windows
Section 194
//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.addEventListener(MouseEvent.CLICK, seeSolution); } 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 195
//GamePanel (main.windows.GamePanel) package main.windows { import flash.display.*; import flash.events.*; import main.*; import main.menu.*; import flash.net.*; 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(); }; panel.btnKing.addEventListener(MouseEvent.MOUSE_DOWN, gotoKing); } 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 timerTick():void{ levelTime++; timer--; panel.time.text = timer; } public function refreshTimer():void{ panel.time.text = timer; } public function gotoKing(_arg1:MouseEvent):void{ navigateToURL(KingURL.sponsorURL, "_blank"); } } }//package main.windows
Section 196
//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 197
//StatWindow (main.windows.StatWindow) package main.windows { import flash.events.*; import main.game.*; import main.*; import flash.net.*; 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); window.btnKing.addEventListener(MouseEvent.CLICK, gotoKing); } 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 gotoKing():void{ navigateToURL(KingURL.sponsorURL, "_blank"); } 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 198
//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 199
//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 main.editor.panels.*; import main.render.*; import fl.transitions.easing.*; 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 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 intro:SigmaIntro; public var editor:Sprite; public var second:int;// = 0 public var testMode:Boolean; 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 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 function Root(_arg1:Stage){ _arg1.stageFocusRect = false; _arg1.frameRate = 38; this.gameStage = _arg1; link = this; intro = new SigmaIntro(); addChild(intro); intro.addEventListener(Event.ENTER_FRAME, endOfIntro); Sounds.intro.play(); } 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 playBgAnimation():void{ var _local1 = 1; while (_local1 <= 11) { background[("clip_" + _local1)].play(); _local1++; }; } 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 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 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(); } public function addEditorEvents():void{ addEventListener(Event.ENTER_FRAME, editorProgress); addEventListener(MouseEvent.MOUSE_DOWN, editorClick); gameStage.addEventListener(KeyboardEvent.KEY_DOWN, editorKeyPress); } 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 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 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 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 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 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 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 endOfIntro(_arg1:Event):void{ if (intro.currentFrame == intro.totalFrames){ music = new Music(); score = new ScoreSystem(); intro.removeEventListener(Event.ENTER_FRAME, endOfIntro); removeChild(intro); initGame(); mainMenu.menu.btnEditor.visible = false; }; } 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 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 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 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 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 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 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 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 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 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 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 200
//Preview_69 (Menu_fla.Preview_69) 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_69 extends MovieClip { public function Preview_69(){ 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 201
//Stars_Big_70 (Menu_fla.Stars_Big_70) 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_70 extends MovieClip { public function Stars_Big_70(){ 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 202
//Stars_Mini_41 (Menu_fla.Stars_Mini_41) 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_41 extends MovieClip { public function Stars_Mini_41(){ 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 203
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 204
//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 205
//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 206
//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 207
//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 208
//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 209
//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 210
//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 211
//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 212
//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 213
//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 214
//Back_1 (Back_1) package { import main.display.*; public dynamic class Back_1 extends DecoSprite { } }//package
Section 215
//Back_2 (Back_2) package { import main.display.*; public dynamic class Back_2 extends DecoSprite { } }//package
Section 216
//Back_3 (Back_3) package { import main.display.*; public dynamic class Back_3 extends DecoSprite { } }//package
Section 217
//Back_4 (Back_4) package { import main.display.*; public dynamic class Back_4 extends DecoSprite { } }//package
Section 218
//Back_5 (Back_5) package { import main.display.*; public dynamic class Back_5 extends DecoSprite { } }//package
Section 219
//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 220
//BackWindowSprite (BackWindowSprite) package { import flash.display.*; public dynamic class BackWindowSprite extends MovieClip { public var btnAgain:SimpleButton; public var btnEditor:SimpleButton; } }//package
Section 221
//BasicSprite (BasicSprite) package { import flash.display.*; public dynamic class BasicSprite extends MovieClip { } }//package
Section 222
//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 223
//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 224
//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 225
//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 226
//Border (Border) package { import flash.display.*; public dynamic class Border extends MovieClip { } }//package
Section 227
//Bush_1 (Bush_1) package { import main.display.*; public dynamic class Bush_1 extends DecoSprite { } }//package
Section 228
//Bush_2 (Bush_2) package { import main.display.*; public dynamic class Bush_2 extends DecoSprite { } }//package
Section 229
//Bush_3 (Bush_3) package { import main.display.*; public dynamic class Bush_3 extends DecoSprite { } }//package
Section 230
//Bush_4 (Bush_4) package { import main.display.*; public dynamic class Bush_4 extends DecoSprite { } }//package
Section 231
//Bush_5 (Bush_5) package { import main.display.*; public dynamic class Bush_5 extends DecoSprite { } }//package
Section 232
//Bush_6 (Bush_6) package { import main.display.*; public dynamic class Bush_6 extends DecoSprite { } }//package
Section 233
//Button_disabledSkin (Button_disabledSkin) package { import flash.display.*; public dynamic class Button_disabledSkin extends MovieClip { } }//package
Section 234
//Button_downSkin (Button_downSkin) package { import flash.display.*; public dynamic class Button_downSkin extends MovieClip { } }//package
Section 235
//Button_emphasizedSkin (Button_emphasizedSkin) package { import flash.display.*; public dynamic class Button_emphasizedSkin extends MovieClip { } }//package
Section 236
//Button_overSkin (Button_overSkin) package { import flash.display.*; public dynamic class Button_overSkin extends MovieClip { } }//package
Section 237
//Button_selectedDisabledSkin (Button_selectedDisabledSkin) package { import flash.display.*; public dynamic class Button_selectedDisabledSkin extends MovieClip { } }//package
Section 238
//Button_selectedDownSkin (Button_selectedDownSkin) package { import flash.display.*; public dynamic class Button_selectedDownSkin extends MovieClip { } }//package
Section 239
//Button_selectedOverSkin (Button_selectedOverSkin) package { import flash.display.*; public dynamic class Button_selectedOverSkin extends MovieClip { } }//package
Section 240
//Button_selectedUpSkin (Button_selectedUpSkin) package { import flash.display.*; public dynamic class Button_selectedUpSkin extends MovieClip { } }//package
Section 241
//Button_upSkin (Button_upSkin) package { import flash.display.*; public dynamic class Button_upSkin extends MovieClip { } }//package
Section 242
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 243
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 244
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 245
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 246
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 247
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 248
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 249
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 250
//CheckBox_disabledIcon (CheckBox_disabledIcon) package { import flash.display.*; public dynamic class CheckBox_disabledIcon extends MovieClip { } }//package
Section 251
//CheckBox_downIcon (CheckBox_downIcon) package { import flash.display.*; public dynamic class CheckBox_downIcon extends MovieClip { } }//package
Section 252
//CheckBox_overIcon (CheckBox_overIcon) package { import flash.display.*; public dynamic class CheckBox_overIcon extends MovieClip { } }//package
Section 253
//CheckBox_selectedDisabledIcon (CheckBox_selectedDisabledIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDisabledIcon extends MovieClip { } }//package
Section 254
//CheckBox_selectedDownIcon (CheckBox_selectedDownIcon) package { import flash.display.*; public dynamic class CheckBox_selectedDownIcon extends MovieClip { } }//package
Section 255
//CheckBox_selectedOverIcon (CheckBox_selectedOverIcon) package { import flash.display.*; public dynamic class CheckBox_selectedOverIcon extends MovieClip { } }//package
Section 256
//CheckBox_selectedUpIcon (CheckBox_selectedUpIcon) package { import flash.display.*; public dynamic class CheckBox_selectedUpIcon extends MovieClip { } }//package
Section 257
//CheckBox_upIcon (CheckBox_upIcon) package { import flash.display.*; public dynamic class CheckBox_upIcon extends MovieClip { } }//package
Section 258
//Cloud_1 (Cloud_1) package { import main.display.*; public dynamic class Cloud_1 extends DecoSprite { } }//package
Section 259
//Cloud_2 (Cloud_2) package { import main.display.*; public dynamic class Cloud_2 extends DecoSprite { } }//package
Section 260
//Cloud_3 (Cloud_3) package { import main.display.*; public dynamic class Cloud_3 extends DecoSprite { } }//package
Section 261
//Cloud_4 (Cloud_4) package { import main.display.*; public dynamic class Cloud_4 extends DecoSprite { } }//package
Section 262
//Cloud_5 (Cloud_5) package { import main.display.*; public dynamic class Cloud_5 extends DecoSprite { } }//package
Section 263
//Cloud_6 (Cloud_6) package { import main.display.*; public dynamic class Cloud_6 extends DecoSprite { } }//package
Section 264
//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 265
//CoinSprite (CoinSprite) package { import flash.display.*; public dynamic class CoinSprite extends MovieClip { } }//package
Section 266
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 267
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 268
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 269
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 270
//CreditsSprite (CreditsSprite) package { import flash.display.*; public dynamic class CreditsSprite extends MovieClip { public var btnKing:SimpleButton; public var btnMainMenu:SimpleButton; } }//package
Section 271
//DecoPanelSprite (DecoPanelSprite) package { import flash.display.*; public dynamic class DecoPanelSprite extends MovieClip { public var preview:MovieClip; } }//package
Section 272
//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 273
//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 274
//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 275
//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 276
//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 277
//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 278
//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 279
//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 280
//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 281
//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 282
//Erase (Erase) package { import flash.display.*; public dynamic class Erase extends MovieClip { } }//package
Section 283
//ExitSprite (ExitSprite) package { import flash.display.*; public dynamic class ExitSprite extends MovieClip { } }//package
Section 284
//ferryBlue (ferryBlue) package { import flash.display.*; public dynamic class ferryBlue extends MovieClip { public function ferryBlue(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 285
//ferryGreen (ferryGreen) package { import flash.display.*; public dynamic class ferryGreen extends MovieClip { public function ferryGreen(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 286
//ferryRed (ferryRed) package { import flash.display.*; public dynamic class ferryRed extends MovieClip { public function ferryRed(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 287
//FinalWindowSprite (FinalWindowSprite) package { import flash.display.*; import flash.text.*; public dynamic class FinalWindowSprite extends MovieClip { public var btnKing:SimpleButton; public var fldTotal:TextField; public var btnSubmit:SimpleButton; } }//package
Section 288
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 289
//GameOverSprite (GameOverSprite) package { import flash.display.*; public dynamic class GameOverSprite extends MovieClip { public var btnSolution:SimpleButton; public var btnAgain:SimpleButton; } }//package
Section 290
//GamePanelSprite (GamePanelSprite) package { import flash.display.*; import flash.text.*; public dynamic class GamePanelSprite extends MovieClip { public var btnKing:SimpleButton; public var levelNum:TextField; public var time:TextField; } }//package
Section 291
//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 292
//KeySprite (KeySprite) package { import flash.display.*; public dynamic class KeySprite extends MovieClip { public var color:MovieClip; } }//package
Section 293
//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 294
//LevelMenuSprite (LevelMenuSprite) package { import flash.display.*; import flash.text.*; public dynamic class LevelMenuSprite extends MovieClip { public var btnKing:SimpleButton; public var btnMainMenu:SimpleButton; public var stars:MovieClip; public var fldTotal:TextField; public var fldLevel:TextField; public var preview:MovieClip; public var fldScore:TextField; } }//package
Section 295
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 296
//MainMenuSprite (MainMenuSprite) package { import flash.display.*; public dynamic class MainMenuSprite extends MovieClip { public var btnHiScores:SimpleButton; public var btnKing:SimpleButton; public var btnSound:SimpleButton; public var btnMusic:SimpleButton; public var btnHost:SimpleButton; public var btnMoreGames:SimpleButton; public var btnStartGame:SimpleButton; public var btnCredits:SimpleButton; public var btnEditor:SimpleButton; } }//package
Section 297
//mcBannedSign (mcBannedSign) package { import flash.display.*; public dynamic class mcBannedSign extends MovieClip { public var bg:MovieClip; } }//package
Section 298
//mcCrownMask (mcCrownMask) package { import flash.display.*; public dynamic class mcCrownMask extends MovieClip { } }//package
Section 299
//mcFerryLine (mcFerryLine) package { import flash.display.*; public dynamic class mcFerryLine extends MovieClip { } }//package
Section 300
//mcLogoHolder (mcLogoHolder) package { import flash.display.*; public dynamic class mcLogoHolder extends MovieClip { } }//package
Section 301
//mcLogoMask (mcLogoMask) package { import flash.display.*; public dynamic class mcLogoMask extends MovieClip { } }//package
Section 302
//mcOtherGames (mcOtherGames) package { import flash.display.*; public dynamic class mcOtherGames extends MovieClip { } }//package
Section 303
//mcPlay (mcPlay) package { import flash.display.*; public dynamic class mcPlay extends MovieClip { } }//package
Section 304
//mcWaterRing (mcWaterRing) package { import flash.display.*; public dynamic class mcWaterRing extends MovieClip { public function mcWaterRing(){ addFrameScript(39, frame40); } function frame40(){ stop(); } } }//package
Section 305
//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 306
//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 307
//NumericStepperDownArrow_disabledSkin (NumericStepperDownArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_disabledSkin extends MovieClip { } }//package
Section 308
//NumericStepperDownArrow_downSkin (NumericStepperDownArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_downSkin extends MovieClip { } }//package
Section 309
//NumericStepperDownArrow_overSkin (NumericStepperDownArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_overSkin extends MovieClip { } }//package
Section 310
//NumericStepperDownArrow_upSkin (NumericStepperDownArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperDownArrow_upSkin extends MovieClip { } }//package
Section 311
//NumericStepperUpArrow_disabledSkin (NumericStepperUpArrow_disabledSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_disabledSkin extends MovieClip { } }//package
Section 312
//NumericStepperUpArrow_downSkin (NumericStepperUpArrow_downSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_downSkin extends MovieClip { } }//package
Section 313
//NumericStepperUpArrow_overSkin (NumericStepperUpArrow_overSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_overSkin extends MovieClip { } }//package
Section 314
//NumericStepperUpArrow_upSkin (NumericStepperUpArrow_upSkin) package { import flash.display.*; public dynamic class NumericStepperUpArrow_upSkin extends MovieClip { } }//package
Section 315
//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 316
//Palm_1 (Palm_1) package { import main.display.*; public dynamic class Palm_1 extends DecoSprite { } }//package
Section 317
//Palm_2 (Palm_2) package { import main.display.*; public dynamic class Palm_2 extends DecoSprite { } }//package
Section 318
//Palm_3 (Palm_3) package { import main.display.*; public dynamic class Palm_3 extends DecoSprite { } }//package
Section 319
//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 320
//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 321
//ReplacePreview (ReplacePreview) package { import flash.display.*; public dynamic class ReplacePreview extends MovieClip { } }//package
Section 322
//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 323
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 324
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 325
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 326
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 327
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 328
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 329
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 330
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 331
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 332
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 333
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 334
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 335
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 336
//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 337
//sfxBell (sfxBell) package { import flash.media.*; public dynamic class sfxBell extends Sound { } }//package
Section 338
//sfxBounce (sfxBounce) package { import flash.media.*; public dynamic class sfxBounce extends Sound { } }//package
Section 339
//SigmaIntro (SigmaIntro) package { import flash.display.*; public dynamic class SigmaIntro extends MovieClip { } }//package
Section 340
//SimplePreview (SimplePreview) package { import flash.display.*; public dynamic class SimplePreview extends MovieClip { } }//package
Section 341
//Sky (Sky) package { import flash.display.*; public dynamic class Sky extends MovieClip { } }//package
Section 342
//sndBlowing (sndBlowing) package { import flash.media.*; public dynamic class sndBlowing extends Sound { } }//package
Section 343
//sndBonus (sndBonus) package { import flash.media.*; public dynamic class sndBonus extends Sound { } }//package
Section 344
//sndCrumble (sndCrumble) package { import flash.media.*; public dynamic class sndCrumble extends Sound { } }//package
Section 345
//sndDead (sndDead) package { import flash.media.*; public dynamic class sndDead extends Sound { } }//package
Section 346
//sndDoor (sndDoor) package { import flash.media.*; public dynamic class sndDoor extends Sound { } }//package
Section 347
//sndFinish (sndFinish) package { import flash.media.*; public dynamic class sndFinish extends Sound { } }//package
Section 348
//sndGameOver (sndGameOver) package { import flash.media.*; public dynamic class sndGameOver extends Sound { } }//package
Section 349
//sndIntro (sndIntro) package { import flash.media.*; public dynamic class sndIntro extends Sound { } }//package
Section 350
//sndJump (sndJump) package { import flash.media.*; public dynamic class sndJump extends Sound { } }//package
Section 351
//sndKick (sndKick) package { import flash.media.*; public dynamic class sndKick extends Sound { } }//package
Section 352
//sndScream (sndScream) package { import flash.media.*; public dynamic class sndScream extends Sound { } }//package
Section 353
//sndStep (sndStep) package { import flash.media.*; public dynamic class sndStep extends Sound { } }//package
Section 354
//sndThornsHide (sndThornsHide) package { import flash.media.*; public dynamic class sndThornsHide extends Sound { } }//package
Section 355
//sndThornsShow (sndThornsShow) package { import flash.media.*; public dynamic class sndThornsShow extends Sound { } }//package
Section 356
//StatWindowSprite (StatWindowSprite) package { import flash.display.*; import flash.text.*; public dynamic class StatWindowSprite extends MovieClip { public var btnKing:SimpleButton; public var statistic:TextField; public var btnNext:SimpleButton; public var btnSelect:SimpleButton; } }//package
Section 357
//Sun (Sun) package { import main.display.*; public dynamic class Sun extends DecoSprite { } }//package
Section 358
//TextArea_disabledSkin (TextArea_disabledSkin) package { import flash.display.*; public dynamic class TextArea_disabledSkin extends MovieClip { } }//package
Section 359
//TextArea_upSkin (TextArea_upSkin) package { import flash.display.*; public dynamic class TextArea_upSkin extends MovieClip { } }//package
Section 360
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 361
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 362
//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 363
//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 364
//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 365
//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 366
//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 367
//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 368
//ThornsPreview (ThornsPreview) package { import flash.display.*; public dynamic class ThornsPreview extends MovieClip { } }//package
Section 369
//ThornsSprite (ThornsSprite) package { import flash.display.*; public dynamic class ThornsSprite extends MovieClip { } }//package
Section 370
//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 371
//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 372
//ToolTip (ToolTip) package { import flash.display.*; import flash.text.*; public dynamic class ToolTip extends MovieClip { public var caption:TextField; } }//package
Section 373
//Tree_1 (Tree_1) package { import main.display.*; public dynamic class Tree_1 extends DecoSprite { } }//package
Section 374
//Tree_2 (Tree_2) package { import main.display.*; public dynamic class Tree_2 extends DecoSprite { } }//package
Section 375
//Tree_3 (Tree_3) package { import main.display.*; public dynamic class Tree_3 extends DecoSprite { } }//package
Section 376
//Tree_4 (Tree_4) package { import main.display.*; public dynamic class Tree_4 extends DecoSprite { } }//package
Section 377
//Tree_5 (Tree_5) package { import main.display.*; public dynamic class Tree_5 extends DecoSprite { } }//package
Section 378
//Tutorial_1 (Tutorial_1) package { import main.display.*; public dynamic class Tutorial_1 extends DecoSprite { } }//package
Section 379
//Tutorial_2 (Tutorial_2) package { import main.display.*; public dynamic class Tutorial_2 extends DecoSprite { } }//package
Section 380
//Tutorial_3 (Tutorial_3) package { import main.display.*; public dynamic class Tutorial_3 extends DecoSprite { } }//package
Section 381
//Tutorial_4 (Tutorial_4) package { import main.display.*; public dynamic class Tutorial_4 extends DecoSprite { } }//package
Section 382
//Tutorial_5 (Tutorial_5) package { import main.display.*; public dynamic class Tutorial_5 extends DecoSprite { } }//package
Section 383
//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:2
Symbol 2 MovieClipUses:1Used by:7 32 37
Symbol 3 BitmapUsed by:4
Symbol 4 GraphicUses:3Used by:7
Symbol 5 BitmapUsed by:6
Symbol 6 GraphicUses:5Used by:7
Symbol 7 MovieClip {ferryBlue} [ferryBlue]Uses:2 4 6
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClip {mcFerryLine} [mcFerryLine]Uses:8
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClip {mcWaterRing} [mcWaterRing]Uses:10
Symbol 12 GraphicUsed by:13
Symbol 13 MovieClipUses:12Used by:16
Symbol 14 FontUsed by:15
Symbol 15 EditableTextUses:14Used by:16
Symbol 16 MovieClip {mcBannedSign} [mcBannedSign]Uses:13 15
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClip {mcLogoMask} [mcLogoMask]Uses:17
Symbol 19 BitmapUsed by:20
Symbol 20 GraphicUses:19Used by:21
Symbol 21 MovieClip {mcOtherGames} [mcOtherGames]Uses:20
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClip {mcCrownMask} [mcCrownMask]Uses:22
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClipUses:24Used by:26
Symbol 26 MovieClip {mcLogoHolder} [mcLogoHolder]Uses:25
Symbol 27 Sound {sfxBounce} [sfxBounce]
Symbol 28 BitmapUsed by:29
Symbol 29 GraphicUses:28Used by:32
Symbol 30 BitmapUsed by:31
Symbol 31 GraphicUses:30Used by:32
Symbol 32 MovieClip {ferryGreen} [ferryGreen]Uses:2 29 31
Symbol 33 BitmapUsed by:34
Symbol 34 GraphicUses:33Used by:37
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:35Used by:37
Symbol 37 MovieClip {ferryRed} [ferryRed]Uses:2 34 36
Symbol 38 BitmapUsed by:39
Symbol 39 GraphicUses:38Used by:40
Symbol 40 MovieClip {mcPlay} [mcPlay]Uses:39
Symbol 41 Sound {sfxBell} [sfxBell]
Symbol 42 GraphicUsed by:60
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:60
Symbol 45 FontUsed by:46
Symbol 46 TextUses:45Used by:47
Symbol 47 ButtonUses:46Used by:60
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClipUses:48Used by:60
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:60
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClipUses:52Used by:60
Symbol 54 GraphicUsed by:57
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:55Used by:57
Symbol 57 MovieClip {Intro_fla.LightMove_7} [Intro_fla.LightMove_7]Uses:54 56Used by:60
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClipUses:58Used by:60
Symbol 60 MovieClip {SigmaIntro} [SigmaIntro]Uses:42 44 47 49 51 53 57 59
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClip {main.chars.HeroPreview} [main.chars.HeroPreview]Uses:61
Symbol 63 GraphicUsed by:112
Symbol 64 GraphicUsed by:65
Symbol 65 MovieClipUses:64Used by:112
Symbol 66 GraphicUsed by:73
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67Used by:73
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:69Used by:73
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:73
Symbol 73 MovieClipUses:66 68 70 72Used by:112
Symbol 74 GraphicUsed by:78
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:78
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:74 76 77Used by:112
Symbol 79 GraphicUsed by:80
Symbol 80 MovieClipUses:79Used by:81
Symbol 81 MovieClipUses:80Used by:112
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClipUses:82Used by:84
Symbol 84 MovieClipUses:83Used by:112
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:87
Symbol 87 MovieClipUses:86Used by:112
Symbol 88 GraphicUsed by:89
Symbol 89 MovieClipUses:88Used by:90
Symbol 90 MovieClipUses:89Used by:112
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClipUses:91Used by:93
Symbol 93 MovieClipUses:92Used by:112
Symbol 94 GraphicUsed by:95
Symbol 95 MovieClipUses:94Used by:96 101
Symbol 96 MovieClipUses:95Used by:112
Symbol 97 GraphicUsed by:98
Symbol 98 MovieClipUses:97Used by:99 100 102
Symbol 99 MovieClipUses:98Used by:112
Symbol 100 MovieClipUses:98Used by:112
Symbol 101 MovieClipUses:95Used by:112
Symbol 102 MovieClipUses:98Used by:112
Symbol 103 BitmapUsed by:104 1656
Symbol 104 GraphicUses:103Used by:105
Symbol 105 MovieClipUses:104Used by:109
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:108
Symbol 108 MovieClipUses:107Used by:109
Symbol 109 MovieClipUses:105 108Used by:112
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:112
Symbol 112 MovieClip {Background} [Background]Uses:63 65 73 78 81 84 87 90 93 96 99 100 101 102 109 111
Symbol 113 GraphicUsed by:114 181 262
Symbol 114 MovieClipUses:113Used by:129 130
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClipUses:115Used by:129 130 402
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClipUses:117Used by:129 130 402
Symbol 119 GraphicUsed by:123
Symbol 120 GraphicUsed by:123
Symbol 121 GraphicUsed by:123
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21]Uses:119 120 121 122Used by:129 130 402
Symbol 124 GraphicUsed by:128
Symbol 125 GraphicUsed by:128
Symbol 126 GraphicUsed by:128
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22]Uses:124 125 126 127Used by:129 130 402
Symbol 129 MovieClip {DoorSpriteH} [DoorSpriteH]Uses:114 116 118 123 128
Symbol 130 MovieClip {DoorSpriteV} [DoorSpriteV]Uses:114 116 118 123 128
Symbol 131 GraphicUsed by:132
Symbol 132 MovieClip {BasicSprite} [BasicSprite]Uses:131Used by:181 182 262 263 378 928 939 942 945 948
Symbol 133 GraphicUsed by:181 262
Symbol 134 GraphicUsed by:181
Symbol 135 GraphicUsed by:181 262
Symbol 136 GraphicUsed by:181 262
Symbol 137 GraphicUsed by:181 262
Symbol 138 GraphicUsed by:181 262
Symbol 139 GraphicUsed by:181 262
Symbol 140 GraphicUsed by:181 262
Symbol 141 GraphicUsed by:181 262
Symbol 142 GraphicUsed by:181 262
Symbol 143 GraphicUsed by:181 262
Symbol 144 GraphicUsed by:181 262
Symbol 145 GraphicUsed by:181 262
Symbol 146 GraphicUsed by:181 262
Symbol 147 GraphicUsed by:181 262
Symbol 148 GraphicUsed by:181 262
Symbol 149 GraphicUsed by:181 262
Symbol 150 GraphicUsed by:181 262
Symbol 151 GraphicUsed by:181 262
Symbol 152 GraphicUsed by:181 262
Symbol 153 GraphicUsed by:181 262
Symbol 154 GraphicUsed by:181 262
Symbol 155 GraphicUsed by:181 262
Symbol 156 GraphicUsed by:181 262
Symbol 157 GraphicUsed by:181 262
Symbol 158 GraphicUsed by:181 262
Symbol 159 GraphicUsed by:181 262
Symbol 160 GraphicUsed by:181 262
Symbol 161 GraphicUsed by:181 262
Symbol 162 GraphicUsed by:181 262
Symbol 163 GraphicUsed by:181 262
Symbol 164 GraphicUsed by:181 262
Symbol 165 GraphicUsed by:181 262
Symbol 166 GraphicUsed by:181 262
Symbol 167 GraphicUsed by:181 262
Symbol 168 GraphicUsed by:181 262
Symbol 169 GraphicUsed by:181 262
Symbol 170 GraphicUsed by:181 262
Symbol 171 GraphicUsed by:181 262
Symbol 172 GraphicUsed by:181 262
Symbol 173 GraphicUsed by:181 262
Symbol 174 GraphicUsed by:181 262
Symbol 175 GraphicUsed by:181 262
Symbol 176 GraphicUsed by:181 262
Symbol 177 GraphicUsed by:181 262
Symbol 178 GraphicUsed by:181 262
Symbol 179 GraphicUsed by:181 262
Symbol 180 GraphicUsed by:181 262
Symbol 181 MovieClip {BlockExplode} [BlockExplode]Uses:132 133 134 135 136 137 113 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180Used by:182
Symbol 182 MovieClip {ReplaceSprite} [ReplaceSprite]Uses:132 181
Symbol 183 GraphicUsed by:194
Symbol 184 GraphicUsed by:187
Symbol 185 GraphicUsed by:186
Symbol 186 MovieClipUses:185Used by:187 190 193 219
Symbol 187 MovieClipUses:184 186Used by:194
Symbol 188 GraphicUsed by:194
Symbol 189 GraphicUsed by:190
Symbol 190 MovieClipUses:189 186Used by:194
Symbol 191 GraphicUsed by:194
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192 186Used by:194
Symbol 194 MovieClip {EnemySprite} [EnemySprite]Uses:183 187 188 190 191 193
Symbol 195 GraphicUsed by:198
Symbol 196 GraphicUsed by:198
Symbol 197 GraphicUsed by:198
Symbol 198 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3]Uses:195 196 197Used by:219
Symbol 199 GraphicUsed by:202
Symbol 200 GraphicUsed by:202
Symbol 201 GraphicUsed by:202
Symbol 202 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4]Uses:199 200 201Used by:219
Symbol 203 GraphicUsed by:206
Symbol 204 GraphicUsed by:206
Symbol 205 GraphicUsed by:206
Symbol 206 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5]Uses:203 204 205Used by:219
Symbol 207 GraphicUsed by:210
Symbol 208 GraphicUsed by:210
Symbol 209 GraphicUsed by:210
Symbol 210 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6]Uses:207 208 209Used by:219
Symbol 211 GraphicUsed by:214
Symbol 212 GraphicUsed by:214
Symbol 213 GraphicUsed by:214
Symbol 214 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7]Uses:211 212 213Used by:219
Symbol 215 GraphicUsed by:218
Symbol 216 GraphicUsed by:218
Symbol 217 GraphicUsed by:218
Symbol 218 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8]Uses:215 216 217Used by:219
Symbol 219 MovieClip {EnemyBlowing} [EnemyBlowing]Uses:186 198 202 206 210 214 218
Symbol 220 BitmapUsed by:221 403
Symbol 221 GraphicUses:220Used by:255
Symbol 222 BitmapUsed by:223
Symbol 223 GraphicUses:222Used by:254
Symbol 224 BitmapUsed by:225
Symbol 225 GraphicUses:224Used by:254
Symbol 226 BitmapUsed by:227
Symbol 227 GraphicUses:226Used by:254
Symbol 228 BitmapUsed by:229
Symbol 229 GraphicUses:228Used by:254
Symbol 230 BitmapUsed by:231
Symbol 231 GraphicUses:230Used by:254
Symbol 232 BitmapUsed by:233
Symbol 233 GraphicUses:232Used by:254
Symbol 234 BitmapUsed by:235
Symbol 235 GraphicUses:234Used by:254
Symbol 236 BitmapUsed by:237
Symbol 237 GraphicUses:236Used by:254
Symbol 238 BitmapUsed by:239
Symbol 239 GraphicUses:238Used by:254
Symbol 240 BitmapUsed by:241
Symbol 241 GraphicUses:240Used by:254
Symbol 242 BitmapUsed by:243
Symbol 243 GraphicUses:242Used by:254
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:254
Symbol 246 BitmapUsed by:247
Symbol 247 GraphicUses:246Used by:254
Symbol 248 BitmapUsed by:249
Symbol 249 GraphicUses:248Used by:254
Symbol 250 BitmapUsed by:251
Symbol 251 GraphicUses:250Used by:254
Symbol 252 BitmapUsed by:253
Symbol 253 GraphicUses:252Used by:254
Symbol 254 MovieClipUses:223 225 227 229 231 233 235 237 239 241 243 245 247 249 251 253Used by:255
Symbol 255 MovieClip {CoinSprite} [CoinSprite]Uses:221 254
Symbol 256 GraphicUsed by:257
Symbol 257 MovieClip {ExitSprite} [ExitSprite]Uses:256
Symbol 258 FontUsed by:259 260
Symbol 259 EditableTextUses:258Used by:263
Symbol 260 EditableTextUses:258Used by:262
Symbol 261 GraphicUsed by:262
Symbol 262 MovieClip {Tiles_fla.BlockCrumble_with_number_7} [Tiles_fla.BlockCrumble_with_number_7]Uses:132 260 133 261 135 136 137 113 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180Used by:263
Symbol 263 MovieClip {TimeoutSprite} [TimeoutSprite]Uses:132 259 262
Symbol 264 GraphicUsed by:265
Symbol 265 MovieClipUses:264Used by:373
Symbol 266 GraphicUsed by:267
Symbol 267 MovieClipUses:266Used by:373 386 979
Symbol 268 GraphicUsed by:269 273
Symbol 269 MovieClipUses:268Used by:273
Symbol 270 FontUsed by:271 274 275 276 277 361 362 363 379 380 383 384 951 955 956 957 958 959 960 961 962 963 964 965 966 967 968 970 971 972 974 975 977 978 982 983 984 986 987 989 1007 1009 1011 1013 1015 1027 1036 1037 1038 1102 1103 1105 1107 1108 1111 1112 1114 1126 1127 1128 1129 1130 1131 1133 1139 1140 1142 1148 1150 1158 1160 1161 1614 1615 1616 1619 1638 1652 1659 1660 1662 1663 1665 1666
Symbol 271 TextUses:270Used by:273
Symbol 272 GraphicUsed by:273 385 952 973 976 985 988 1008 1010 1012 1014 1016 1028 1617 1661 1664 1667
Symbol 273 ButtonUses:269 271 268 272Used by:373
Symbol 274 TextUses:270Used by:373
Symbol 275 TextUses:270Used by:373
Symbol 276 TextUses:270Used by:373
Symbol 277 TextUses:270Used by:373
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:360
Symbol 280 GraphicUsed by:360
Symbol 281 BitmapUsed by:282
Symbol 282 GraphicUses:281Used by:360
Symbol 283 BitmapUsed by:284
Symbol 284 GraphicUses:283Used by:360
Symbol 285 BitmapUsed by:286
Symbol 286 GraphicUses:285Used by:360
Symbol 287 BitmapUsed by:288
Symbol 288 GraphicUses:287Used by:360
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:360
Symbol 291 BitmapUsed by:292
Symbol 292 GraphicUses:291Used by:360
Symbol 293 BitmapUsed by:294
Symbol 294 GraphicUses:293Used by:360
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:360
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:360
Symbol 299 BitmapUsed by:300
Symbol 300 GraphicUses:299Used by:360
Symbol 301 BitmapUsed by:302
Symbol 302 GraphicUses:301Used by:360
Symbol 303 BitmapUsed by:304
Symbol 304 GraphicUses:303Used by:360
Symbol 305 BitmapUsed by:306
Symbol 306 GraphicUses:305Used by:360
Symbol 307 BitmapUsed by:308
Symbol 308 GraphicUses:307Used by:360
Symbol 309 BitmapUsed by:310
Symbol 310 GraphicUses:309Used by:360
Symbol 311 BitmapUsed by:312
Symbol 312 GraphicUses:311Used by:360
Symbol 313 BitmapUsed by:314
Symbol 314 GraphicUses:313Used by:360
Symbol 315 BitmapUsed by:316
Symbol 316 GraphicUses:315Used by:360
Symbol 317 BitmapUsed by:318
Symbol 318 GraphicUses:317Used by:360
Symbol 319 BitmapUsed by:320
Symbol 320 GraphicUses:319Used by:360
Symbol 321 BitmapUsed by:322
Symbol 322 GraphicUses:321Used by:360
Symbol 323 BitmapUsed by:324
Symbol 324 GraphicUses:323Used by:360
Symbol 325 BitmapUsed by:326
Symbol 326 GraphicUses:325Used by:360
Symbol 327 BitmapUsed by:328
Symbol 328 GraphicUses:327Used by:360
Symbol 329 BitmapUsed by:330
Symbol 330 GraphicUses:329Used by:360
Symbol 331 BitmapUsed by:332
Symbol 332 GraphicUses:331Used by:360
Symbol 333 BitmapUsed by:334
Symbol 334 GraphicUses:333Used by:360
Symbol 335 BitmapUsed by:336
Symbol 336 GraphicUses:335Used by:360
Symbol 337 BitmapUsed by:338
Symbol 338 GraphicUses:337Used by:360
Symbol 339 BitmapUsed by:340
Symbol 340 GraphicUses:339Used by:360
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:341Used by:360
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:343Used by:360
Symbol 345 BitmapUsed by:346
Symbol 346 GraphicUses:345Used by:360
Symbol 347 BitmapUsed by:348
Symbol 348 GraphicUses:347Used by:360
Symbol 349 BitmapUsed by:350
Symbol 350 GraphicUses:349Used by:360
Symbol 351 BitmapUsed by:352
Symbol 352 GraphicUses:351Used by:360
Symbol 353 BitmapUsed by:354
Symbol 354 GraphicUses:353Used by:360
Symbol 355 BitmapUsed by:356
Symbol 356 GraphicUses:355Used by:360
Symbol 357 BitmapUsed by:358
Symbol 358 GraphicUses:357Used by:360
Symbol 359 GraphicUsed by:360
Symbol 360 MovieClip {Menu_fla.Preview_69} [Menu_fla.Preview_69]Uses:279 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 340 342 344 346 348 350 352 354 356 358 359Used by:373
Symbol 361 EditableTextUses:270Used by:373
Symbol 362 EditableTextUses:270Used by:373
Symbol 363 EditableTextUses:270Used by:373
Symbol 364 GraphicUsed by:368
Symbol 365 GraphicUsed by:368
Symbol 366 GraphicUsed by:368
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClip {Menu_fla.Stars_Big_70} [Menu_fla.Stars_Big_70]Uses:364 365 366 367Used by:373
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClipUses:369Used by:372
Symbol 371 GraphicUsed by:372
Symbol 372 ButtonUses:370 371Used by:373 386 969 979 1029 1039
Symbol 373 MovieClip {LevelMenuSprite} [LevelMenuSprite]Uses:265 267 273 274 275 276 277 360 361 362 363 368 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 MovieClip {MovingSprite} [MovingSprite]Uses:132 375 377
Symbol 379 TextUses:270Used by:386
Symbol 380 EditableTextUses:270Used by:386
Symbol 381 GraphicUsed by:382 385 952 973 976 985 988 1008 1010 1012 1014 1016 1028 1617
Symbol 382 MovieClipUses:381Used by:385 952 973 976 985 988 1008 1010 1012 1014 1016 1028 1617 1653
Symbol 383 TextUses:270Used by:385
Symbol 384 TextUses:270Used by:385
Symbol 385 ButtonUses:382 383 384 381 272Used by:386
Symbol 386 MovieClip {FinalWindowSprite} [FinalWindowSprite]Uses:267 372 379 380 385
Symbol 387 GraphicUsed by:388
Symbol 388 MovieClip {Border} [Border]Uses:387
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClipUses:389Used by:393
Symbol 391 GraphicUsed by:392
Symbol 392 MovieClipUses:391Used by:393
Symbol 393 MovieClipUses:390 392Used by:395
Symbol 394 GraphicUsed by:395
Symbol 395 MovieClip {Thorns} [Thorns]Uses:393 394
Symbol 396 GraphicUsed by:401
Symbol 397 GraphicUsed by:401
Symbol 398 GraphicUsed by:401
Symbol 399 GraphicUsed by:401
Symbol 400 GraphicUsed by:401
Symbol 401 MovieClip {Tiles_fla.Sizecopy_35} [Tiles_fla.Sizecopy_35]Uses:396 397 398 399 400Used by:402
Symbol 402 MovieClip {DoorPreview} [DoorPreview]Uses:401 116 118 123 128
Symbol 403 GraphicUses:220Used by:801
Symbol 404 BitmapUsed by:405
Symbol 405 GraphicUses:404Used by:502
Symbol 406 BitmapUsed by:407
Symbol 407 GraphicUses:406Used by:502
Symbol 408 BitmapUsed by:409
Symbol 409 GraphicUses:408Used by:502
Symbol 410 BitmapUsed by:411
Symbol 411 GraphicUses:410Used by:502
Symbol 412 BitmapUsed by:413
Symbol 413 GraphicUses:412Used by:502
Symbol 414 BitmapUsed by:415
Symbol 415 GraphicUses:414Used by:502
Symbol 416 BitmapUsed by:417
Symbol 417 GraphicUses:416Used by:502
Symbol 418 BitmapUsed by:419
Symbol 419 GraphicUses:418Used by:502
Symbol 420 BitmapUsed by:421
Symbol 421 GraphicUses:420Used by:502
Symbol 422 BitmapUsed by:423
Symbol 423 GraphicUses:422Used by:502
Symbol 424 BitmapUsed by:425
Symbol 425 GraphicUses:424Used by:502
Symbol 426 BitmapUsed by:427
Symbol 427 GraphicUses:426Used by:502
Symbol 428 BitmapUsed by:429
Symbol 429 GraphicUses:428Used by:502
Symbol 430 BitmapUsed by:431
Symbol 431 GraphicUses:430Used by:502
Symbol 432 BitmapUsed by:433
Symbol 433 GraphicUses:432Used by:502
Symbol 434 BitmapUsed by:435
Symbol 435 GraphicUses:434Used by:502
Symbol 436 BitmapUsed by:437
Symbol 437 GraphicUses:436Used by:502
Symbol 438 BitmapUsed by:439
Symbol 439 GraphicUses:438Used by:502
Symbol 440 BitmapUsed by:441
Symbol 441 GraphicUses:440Used by:502
Symbol 442 BitmapUsed by:443
Symbol 443 GraphicUses:442Used by:502
Symbol 444 BitmapUsed by:445
Symbol 445 GraphicUses:444Used by:502
Symbol 446 BitmapUsed by:447
Symbol 447 GraphicUses:446Used by:502
Symbol 448 BitmapUsed by:449
Symbol 449 GraphicUses:448Used by:502
Symbol 450 BitmapUsed by:451
Symbol 451 GraphicUses:450Used by:502
Symbol 452 BitmapUsed by:453
Symbol 453 GraphicUses:452Used by:502
Symbol 454 BitmapUsed by:455
Symbol 455 GraphicUses:454Used by:502
Symbol 456 BitmapUsed by:457
Symbol 457 GraphicUses:456Used by:502
Symbol 458 BitmapUsed by:459
Symbol 459 GraphicUses:458Used by:502
Symbol 460 BitmapUsed by:461
Symbol 461 GraphicUses:460Used by:502
Symbol 462 BitmapUsed by:463
Symbol 463 GraphicUses:462Used by:502
Symbol 464 BitmapUsed by:465
Symbol 465 GraphicUses:464Used by:502
Symbol 466 BitmapUsed by:467
Symbol 467 GraphicUses:466Used by:502
Symbol 468 BitmapUsed by:469
Symbol 469 GraphicUses:468Used by:502
Symbol 470 BitmapUsed by:471
Symbol 471 GraphicUses:470Used by:502
Symbol 472 BitmapUsed by:473
Symbol 473 GraphicUses:472Used by:502
Symbol 474 BitmapUsed by:475
Symbol 475 GraphicUses:474Used by:502
Symbol 476 BitmapUsed by:477
Symbol 477 GraphicUses:476Used by:502
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:478Used by:502
Symbol 480 BitmapUsed by:481
Symbol 481 GraphicUses:480Used by:502
Symbol 482 BitmapUsed by:483
Symbol 483 GraphicUses:482Used by:502
Symbol 484 BitmapUsed by:485
Symbol 485 GraphicUses:484Used by:502
Symbol 486 BitmapUsed by:487
Symbol 487 GraphicUses:486Used by:502
Symbol 488 BitmapUsed by:489
Symbol 489 GraphicUses:488Used by:502
Symbol 490 BitmapUsed by:491
Symbol 491 GraphicUses:490Used by:502
Symbol 492 BitmapUsed by:493
Symbol 493 GraphicUses:492Used by:502
Symbol 494 BitmapUsed by:495
Symbol 495 GraphicUses:494Used by:502
Symbol 496 BitmapUsed by:497
Symbol 497 GraphicUses:496Used by:502
Symbol 498 BitmapUsed by:499
Symbol 499 GraphicUses:498Used by:502
Symbol 500 BitmapUsed by:501
Symbol 501 GraphicUses:500Used by:502
Symbol 502 MovieClipUses:405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 465 467 469 471 473 475 477 479 481 483 485 487 489 491 493 495 497 499 501Used by:800
Symbol 503 BitmapUsed by:504
Symbol 504 GraphicUses:503Used by:601
Symbol 505 BitmapUsed by:506
Symbol 506 GraphicUses:505Used by:601
Symbol 507 BitmapUsed by:508
Symbol 508 GraphicUses:507Used by:601
Symbol 509 BitmapUsed by:510
Symbol 510 GraphicUses:509Used by:601
Symbol 511 BitmapUsed by:512
Symbol 512 GraphicUses:511Used by:601
Symbol 513 BitmapUsed by:514
Symbol 514 GraphicUses:513Used by:601
Symbol 515 BitmapUsed by:516
Symbol 516 GraphicUses:515Used by:601
Symbol 517 BitmapUsed by:518
Symbol 518 GraphicUses:517Used by:601
Symbol 519 BitmapUsed by:520
Symbol 520 GraphicUses:519Used by:601
Symbol 521 BitmapUsed by:522
Symbol 522 GraphicUses:521Used by:601
Symbol 523 BitmapUsed by:524
Symbol 524 GraphicUses:523Used by:601
Symbol 525 BitmapUsed by:526
Symbol 526 GraphicUses:525Used by:601
Symbol 527 BitmapUsed by:528
Symbol 528 GraphicUses:527Used by:601
Symbol 529 BitmapUsed by:530
Symbol 530 GraphicUses:529Used by:601
Symbol 531 BitmapUsed by:532
Symbol 532 GraphicUses:531Used by:601
Symbol 533 BitmapUsed by:534
Symbol 534 GraphicUses:533Used by:601
Symbol 535 BitmapUsed by:536
Symbol 536 GraphicUses:535Used by:601
Symbol 537 BitmapUsed by:538
Symbol 538 GraphicUses:537Used by:601
Symbol 539 BitmapUsed by:540
Symbol 540 GraphicUses:539Used by:601
Symbol 541 BitmapUsed by:542
Symbol 542 GraphicUses:541Used by:601
Symbol 543 BitmapUsed by:544
Symbol 544 GraphicUses:543Used by:601
Symbol 545 BitmapUsed by:546
Symbol 546 GraphicUses:545Used by:601
Symbol 547 BitmapUsed by:548
Symbol 548 GraphicUses:547Used by:601
Symbol 549 BitmapUsed by:550
Symbol 550 GraphicUses:549Used by:601
Symbol 551 BitmapUsed by:552
Symbol 552 GraphicUses:551Used by:601
Symbol 553 BitmapUsed by:554
Symbol 554 GraphicUses:553Used by:601
Symbol 555 BitmapUsed by:556
Symbol 556 GraphicUses:555Used by:601
Symbol 557 BitmapUsed by:558
Symbol 558 GraphicUses:557Used by:601
Symbol 559 BitmapUsed by:560
Symbol 560 GraphicUses:559Used by:601
Symbol 561 BitmapUsed by:562
Symbol 562 GraphicUses:561Used by:601
Symbol 563 BitmapUsed by:564
Symbol 564 GraphicUses:563Used by:601
Symbol 565 BitmapUsed by:566
Symbol 566 GraphicUses:565Used by:601
Symbol 567 BitmapUsed by:568
Symbol 568 GraphicUses:567Used by:601
Symbol 569 BitmapUsed by:570
Symbol 570 GraphicUses:569Used by:601
Symbol 571 BitmapUsed by:572
Symbol 572 GraphicUses:571Used by:601
Symbol 573 BitmapUsed by:574
Symbol 574 GraphicUses:573Used by:601
Symbol 575 BitmapUsed by:576
Symbol 576 GraphicUses:575Used by:601
Symbol 577 BitmapUsed by:578
Symbol 578 GraphicUses:577Used by:601
Symbol 579 BitmapUsed by:580
Symbol 580 GraphicUses:579Used by:601
Symbol 581 BitmapUsed by:582
Symbol 582 GraphicUses:581Used by:601
Symbol 583 BitmapUsed by:584
Symbol 584 GraphicUses:583Used by:601
Symbol 585 BitmapUsed by:586
Symbol 586 GraphicUses:585Used by:601
Symbol 587 BitmapUsed by:588
Symbol 588 GraphicUses:587Used by:601
Symbol 589 BitmapUsed by:590
Symbol 590 GraphicUses:589Used by:601
Symbol 591 BitmapUsed by:592
Symbol 592 GraphicUses:591Used by:601
Symbol 593 BitmapUsed by:594
Symbol 594 GraphicUses:593Used by:601
Symbol 595 BitmapUsed by:596
Symbol 596 GraphicUses:595Used by:601
Symbol 597 BitmapUsed by:598
Symbol 598 GraphicUses:597Used by:601
Symbol 599 BitmapUsed by:600
Symbol 600 GraphicUses:599Used by:601
Symbol 601 MovieClipUses:504 506 508 510 512 514 516 518 520 522 524 526 528 530 532 534 536 538 540 542 544 546 548 550 552 554 556 558 560 562 564 566 568 570 572 574 576 578 580 582 584 586 588 590 592 594 596 598 600Used by:800
Symbol 602 BitmapUsed by:603
Symbol 603 GraphicUses:602Used by:700
Symbol 604 BitmapUsed by:605
Symbol 605 GraphicUses:604Used by:700
Symbol 606 BitmapUsed by:607
Symbol 607 GraphicUses:606Used by:700
Symbol 608 BitmapUsed by:609
Symbol 609 GraphicUses:608Used by:700
Symbol 610 BitmapUsed by:611
Symbol 611 GraphicUses:610Used by:700
Symbol 612 BitmapUsed by:613
Symbol 613 GraphicUses:612Used by:700
Symbol 614 BitmapUsed by:615
Symbol 615 GraphicUses:614Used by:700
Symbol 616 BitmapUsed by:617
Symbol 617 GraphicUses:616Used by:700
Symbol 618 BitmapUsed by:619
Symbol 619 GraphicUses:618Used by:700
Symbol 620 BitmapUsed by:621
Symbol 621 GraphicUses:620Used by:700
Symbol 622 BitmapUsed by:623
Symbol 623 GraphicUses:622Used by:700
Symbol 624 BitmapUsed by:625
Symbol 625 GraphicUses:624Used by:700
Symbol 626 BitmapUsed by:627
Symbol 627 GraphicUses:626Used by:700
Symbol 628 BitmapUsed by:629
Symbol 629 GraphicUses:628Used by:700
Symbol 630 BitmapUsed by:631
Symbol 631 GraphicUses:630Used by:700
Symbol 632 BitmapUsed by:633
Symbol 633 GraphicUses:632Used by:700
Symbol 634 BitmapUsed by:635
Symbol 635 GraphicUses:634Used by:700
Symbol 636 BitmapUsed by:637
Symbol 637 GraphicUses:636Used by:700
Symbol 638 BitmapUsed by:639
Symbol 639 GraphicUses:638Used by:700
Symbol 640 BitmapUsed by:641
Symbol 641 GraphicUses:640Used by:700
Symbol 642 BitmapUsed by:643
Symbol 643 GraphicUses:642Used by:700
Symbol 644 BitmapUsed by:645
Symbol 645 GraphicUses:644Used by:700
Symbol 646 BitmapUsed by:647
Symbol 647 GraphicUses:646Used by:700
Symbol 648 BitmapUsed by:649
Symbol 649 GraphicUses:648Used by:700
Symbol 650 BitmapUsed by:651
Symbol 651 GraphicUses:650Used by:700
Symbol 652 BitmapUsed by:653
Symbol 653 GraphicUses:652Used by:700
Symbol 654 BitmapUsed by:655
Symbol 655 GraphicUses:654Used by:700
Symbol 656 BitmapUsed by:657
Symbol 657 GraphicUses:656Used by:700
Symbol 658 BitmapUsed by:659
Symbol 659 GraphicUses:658Used by:700
Symbol 660 BitmapUsed by:661
Symbol 661 GraphicUses:660Used by:700
Symbol 662 BitmapUsed by:663
Symbol 663 GraphicUses:662Used by:700
Symbol 664 BitmapUsed by:665
Symbol 665 GraphicUses:664Used by:700
Symbol 666 BitmapUsed by:667
Symbol 667 GraphicUses:666Used by:700
Symbol 668 BitmapUsed by:669
Symbol 669 GraphicUses:668Used by:700
Symbol 670 BitmapUsed by:671
Symbol 671 GraphicUses:670Used by:700
Symbol 672 BitmapUsed by:673
Symbol 673 GraphicUses:672Used by:700
Symbol 674 BitmapUsed by:675
Symbol 675 GraphicUses:674Used by:700
Symbol 676 BitmapUsed by:677
Symbol 677 GraphicUses:676Used by:700
Symbol 678 BitmapUsed by:679
Symbol 679 GraphicUses:678Used by:700
Symbol 680 BitmapUsed by:681
Symbol 681 GraphicUses:680Used by:700
Symbol 682 BitmapUsed by:683
Symbol 683 GraphicUses:682Used by:700
Symbol 684 BitmapUsed by:685
Symbol 685 GraphicUses:684Used by:700
Symbol 686 BitmapUsed by:687
Symbol 687 GraphicUses:686Used by:700
Symbol 688 BitmapUsed by:689
Symbol 689 GraphicUses:688Used by:700
Symbol 690 BitmapUsed by:691
Symbol 691 GraphicUses:690Used by:700
Symbol 692 BitmapUsed by:693
Symbol 693 GraphicUses:692Used by:700
Symbol 694 BitmapUsed by:695
Symbol 695 GraphicUses:694Used by:700
Symbol 696 BitmapUsed by:697
Symbol 697 GraphicUses:696Used by:700
Symbol 698 BitmapUsed by:699
Symbol 699 GraphicUses:698Used by:700
Symbol 700 MovieClipUses:603 605 607 609 611 613 615 617 619 621 623 625 627 629 631 633 635 637 639 641 643 645 647 649 651 653 655 657 659 661 663 665 667 669 671 673 675 677 679 681 683 685 687 689 691 693 695 697 699Used by:800
Symbol 701 BitmapUsed by:702
Symbol 702 GraphicUses:701Used by:799
Symbol 703 BitmapUsed by:704
Symbol 704 GraphicUses:703Used by:799
Symbol 705 BitmapUsed by:706
Symbol 706 GraphicUses:705Used by:799
Symbol 707 BitmapUsed by:708
Symbol 708 GraphicUses:707Used by:799
Symbol 709 BitmapUsed by:710
Symbol 710 GraphicUses:709Used by:799
Symbol 711 BitmapUsed by:712
Symbol 712 GraphicUses:711Used by:799
Symbol 713 BitmapUsed by:714
Symbol 714 GraphicUses:713Used by:799
Symbol 715 BitmapUsed by:716
Symbol 716 GraphicUses:715Used by:799
Symbol 717 BitmapUsed by:718
Symbol 718 GraphicUses:717Used by:799
Symbol 719 BitmapUsed by:720
Symbol 720 GraphicUses:719Used by:799
Symbol 721 BitmapUsed by:722
Symbol 722 GraphicUses:721Used by:799
Symbol 723 BitmapUsed by:724
Symbol 724 GraphicUses:723Used by:799
Symbol 725 BitmapUsed by:726
Symbol 726 GraphicUses:725Used by:799
Symbol 727 BitmapUsed by:728
Symbol 728 GraphicUses:727Used by:799
Symbol 729 BitmapUsed by:730
Symbol 730 GraphicUses:729Used by:799
Symbol 731 BitmapUsed by:732
Symbol 732 GraphicUses:731Used by:799
Symbol 733 BitmapUsed by:734
Symbol 734 GraphicUses:733Used by:799
Symbol 735 BitmapUsed by:736
Symbol 736 GraphicUses:735Used by:799
Symbol 737 BitmapUsed by:738
Symbol 738 GraphicUses:737Used by:799
Symbol 739 BitmapUsed by:740
Symbol 740 GraphicUses:739Used by:799
Symbol 741 BitmapUsed by:742
Symbol 742 GraphicUses:741Used by:799
Symbol 743 BitmapUsed by:744
Symbol 744 GraphicUses:743Used by:799
Symbol 745 BitmapUsed by:746
Symbol 746 GraphicUses:745Used by:799
Symbol 747 BitmapUsed by:748
Symbol 748 GraphicUses:747Used by:799
Symbol 749 BitmapUsed by:750
Symbol 750 GraphicUses:749Used by:799
Symbol 751 BitmapUsed by:752
Symbol 752 GraphicUses:751Used by:799
Symbol 753 BitmapUsed by:754
Symbol 754 GraphicUses:753Used by:799
Symbol 755 BitmapUsed by:756
Symbol 756 GraphicUses:755Used by:799
Symbol 757 BitmapUsed by:758
Symbol 758 GraphicUses:757Used by:799
Symbol 759 BitmapUsed by:760
Symbol 760 GraphicUses:759Used by:799
Symbol 761 BitmapUsed by:762
Symbol 762 GraphicUses:761Used by:799
Symbol 763 BitmapUsed by:764
Symbol 764 GraphicUses:763Used by:799
Symbol 765 BitmapUsed by:766
Symbol 766 GraphicUses:765Used by:799
Symbol 767 BitmapUsed by:768
Symbol 768 GraphicUses:767Used by:799
Symbol 769 BitmapUsed by:770
Symbol 770 GraphicUses:769Used by:799
Symbol 771 BitmapUsed by:772
Symbol 772 GraphicUses:771Used by:799
Symbol 773 BitmapUsed by:774
Symbol 774 GraphicUses:773Used by:799
Symbol 775 BitmapUsed by:776
Symbol 776 GraphicUses:775Used by:799
Symbol 777 BitmapUsed by:778
Symbol 778 GraphicUses:777Used by:799
Symbol 779 BitmapUsed by:780
Symbol 780 GraphicUses:779Used by:799
Symbol 781 BitmapUsed by:782
Symbol 782 GraphicUses:781Used by:799
Symbol 783 BitmapUsed by:784
Symbol 784 GraphicUses:783Used by:799
Symbol 785 BitmapUsed by:786
Symbol 786 GraphicUses:785Used by:799
Symbol 787 BitmapUsed by:788
Symbol 788 GraphicUses:787Used by:799
Symbol 789 BitmapUsed by:790
Symbol 790 GraphicUses:789Used by:799
Symbol 791 BitmapUsed by:792
Symbol 792 GraphicUses:791Used by:799
Symbol 793 BitmapUsed by:794
Symbol 794 GraphicUses:793Used by:799
Symbol 795 BitmapUsed by:796
Symbol 796 GraphicUses:795Used by:799
Symbol 797 BitmapUsed by:798
Symbol 798 GraphicUses:797Used by:799
Symbol 799 MovieClipUses:702 704 706 708 710 712 714 716 718 720 722 724 726 728 730 732 734 736 738 740 742 744 746 748 750 752 754 756 758 760 762 764 766 768 770 772 774 776 778 780 782 784 786 788 790 792 794 796 798Used by:800
Symbol 800 MovieClip {Items_fla.Key_2} [Items_fla.Key_2]Uses:502 601 700 799Used by:801
Symbol 801 MovieClip {KeySprite} [KeySprite]Uses:403 800
Symbol 802 GraphicUsed by:805
Symbol 803 GraphicUsed by:805
Symbol 804 GraphicUsed by:805
Symbol 805 MovieClip {EnemyPreview} [EnemyPreview]Uses:802 803 804Used by:1751
Symbol 806 GraphicUsed by:807
Symbol 807 MovieClip {Erase} [Erase]Uses:806
Symbol 808 GraphicUsed by:837
Symbol 809 GraphicUsed by:837
Symbol 810 GraphicUsed by:837
Symbol 811 GraphicUsed by:837
Symbol 812 GraphicUsed by:837
Symbol 813 GraphicUsed by:837
Symbol 814 GraphicUsed by:837
Symbol 815 GraphicUsed by:837
Symbol 816 GraphicUsed by:837
Symbol 817 GraphicUsed by:837
Symbol 818 GraphicUsed by:837
Symbol 819 GraphicUsed by:837
Symbol 820 GraphicUsed by:837
Symbol 821 GraphicUsed by:837 865
Symbol 822 GraphicUsed by:837 865
Symbol 823 GraphicUsed by:837
Symbol 824 GraphicUsed by:837
Symbol 825 GraphicUsed by:837
Symbol 826 GraphicUsed by:837
Symbol 827 GraphicUsed by:837
Symbol 828 GraphicUsed by:837
Symbol 829 GraphicUsed by:837 921
Symbol 830 GraphicUsed by:837
Symbol 831 GraphicUsed by:837 921
Symbol 832 GraphicUsed by:837
Symbol 833 GraphicUsed by:837
Symbol 834 GraphicUsed by:837
Symbol 835 GraphicUsed by:837
Symbol 836 GraphicUsed by:837
Symbol 837 MovieClip {Tiles_fla.LU_Block_30} [Tiles_fla.LU_Block_30]Uses:808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836Used by:922
Symbol 838 GraphicUsed by:865
Symbol 839 GraphicUsed by:865
Symbol 840 GraphicUsed by:865
Symbol 841 GraphicUsed by:865
Symbol 842 GraphicUsed by:865
Symbol 843 GraphicUsed by:865
Symbol 844 GraphicUsed by:865
Symbol 845 GraphicUsed by:865
Symbol 846 GraphicUsed by:865
Symbol 847 GraphicUsed by:865
Symbol 848 GraphicUsed by:865
Symbol 849 GraphicUsed by:865
Symbol 850 GraphicUsed by:865
Symbol 851 GraphicUsed by:865
Symbol 852 GraphicUsed by:865
Symbol 853 GraphicUsed by:865
Symbol 854 GraphicUsed by:865
Symbol 855 GraphicUsed by:865
Symbol 856 GraphicUsed by:865
Symbol 857 GraphicUsed by:865 893
Symbol 858 GraphicUsed by:865
Symbol 859 GraphicUsed by:865 893
Symbol 860 GraphicUsed by:865
Symbol 861 GraphicUsed by:865
Symbol 862 GraphicUsed by:865
Symbol 863 GraphicUsed by:865
Symbol 864 GraphicUsed by:865
Symbol 865 MovieClip {Tiles_fla.LD_Block_31} [Tiles_fla.LD_Block_31]Uses:838 839 840 841 842 843 844 845 846 847 848 849 850 821 822 851 852 853 854 855 856 857 858 859 860 861 862 863 864Used by:922
Symbol 866 GraphicUsed by:893
Symbol 867 GraphicUsed by:893
Symbol 868 GraphicUsed by:893
Symbol 869 GraphicUsed by:893
Symbol 870 GraphicUsed by:893
Symbol 871 GraphicUsed by:893
Symbol 872 GraphicUsed by:893
Symbol 873 GraphicUsed by:893
Symbol 874 GraphicUsed by:893
Symbol 875 GraphicUsed by:893
Symbol 876 GraphicUsed by:893
Symbol 877 GraphicUsed by:893
Symbol 878 GraphicUsed by:893
Symbol 879 GraphicUsed by:893
Symbol 880 GraphicUsed by:893
Symbol 881 GraphicUsed by:893
Symbol 882 GraphicUsed by:893
Symbol 883 GraphicUsed by:893
Symbol 884 GraphicUsed by:893
Symbol 885 GraphicUsed by:893
Symbol 886 GraphicUsed by:893
Symbol 887 GraphicUsed by:893
Symbol 888 GraphicUsed by:893
Symbol 889 GraphicUsed by:893
Symbol 890 GraphicUsed by:893
Symbol 891 GraphicUsed by:893
Symbol 892 GraphicUsed by:893
Symbol 893 MovieClip {Tiles_fla.RD_Block_32} [Tiles_fla.RD_Block_32]Uses:866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 857 887 859 888 889 890 891 892Used by:922
Symbol 894 GraphicUsed by:921
Symbol 895 GraphicUsed by:921
Symbol 896 GraphicUsed by:921
Symbol 897 GraphicUsed by:921
Symbol 898 GraphicUsed by:921
Symbol 899 GraphicUsed by:921
Symbol 900 GraphicUsed by:921
Symbol 901 GraphicUsed by:921
Symbol 902 GraphicUsed by:921
Symbol 903 GraphicUsed by:921
Symbol 904 GraphicUsed by:921
Symbol 905 GraphicUsed by:921
Symbol 906 GraphicUsed by:921
Symbol 907 GraphicUsed by:921
Symbol 908 GraphicUsed by:921
Symbol 909 GraphicUsed by:921
Symbol 910 GraphicUsed by:921
Symbol 911 GraphicUsed by:921
Symbol 912 GraphicUsed by:921
Symbol 913 GraphicUsed by:921
Symbol 914 GraphicUsed by:921
Symbol 915 GraphicUsed by:921
Symbol 916 GraphicUsed by:921
Symbol 917 GraphicUsed by:921
Symbol 918 GraphicUsed by:921
Symbol 919 GraphicUsed by:921
Symbol 920 GraphicUsed by:921
Symbol 921 MovieClip {Tiles_fla.RU_Block_33} [Tiles_fla.RU_Block_33]Uses:894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 829 915 831 916 917 918 919 920Used by:922
Symbol 922 MovieClip {main.field.Block} [main.field.Block]Uses:837 865 893 921
Symbol 923 GraphicUsed by:928 939 942 945 948
Symbol 924 GraphicUsed by:925
Symbol 925 MovieClipUses:924Used by:928 939 942 945 948
Symbol 926 GraphicUsed by:927
Symbol 927 MovieClipUses:926Used by:928 939 942 945 948
Symbol 928 MovieClip {ThornsSprite} [ThornsSprite]Uses:132 923 925 927
Symbol 929 GraphicUsed by:939 942 945 948
Symbol 930 ShapeTweeningUsed by:939
Symbol 931 GraphicUsed by:939 942 945 948
Symbol 932 GraphicUsed by:939 942 945 948
Symbol 933 GraphicUsed by:939 942 945 948
Symbol 934 GraphicUsed by:939 942 945 948
Symbol 935 GraphicUsed by:939 942 945 948
Symbol 936 GraphicUsed by:939 942 945 948
Symbol 937 GraphicUsed by:939 942 945 948
Symbol 938 ShapeTweeningUsed by:939
Symbol 939 MovieClip {Thorns_800} [Thorns_800]Uses:132 929 930 931 925 927 932 933 934 935 936 923 937 938
Symbol 940 ShapeTweeningUsed by:942
Symbol 941 ShapeTweeningUsed by:942
Symbol 942 MovieClip {Thorns_1000} [Thorns_1000]Uses:132 929 940 931 925 927 932 933 934 935 936 923 937 941
Symbol 943 ShapeTweeningUsed by:945
Symbol 944 ShapeTweeningUsed by:945
Symbol 945 MovieClip {Thorns_400} [Thorns_400]Uses:132 929 943 931 925 927 932 933 934 935 936 923 937 944
Symbol 946 ShapeTweeningUsed by:948
Symbol 947 ShapeTweeningUsed by:948
Symbol 948 MovieClip {Thorns_600} [Thorns_600]Uses:132 929 946 931 925 927 932 933 934 935 936 923 937 947
Symbol 949 GraphicUsed by:950
Symbol 950 MovieClipUses:949Used by:969 1029
Symbol 951 TextUses:270Used by:952
Symbol 952 ButtonUses:382 951 381 272Used by:969
Symbol 953 GraphicUsed by:954
Symbol 954 MovieClipUses:953Used by:969
Symbol 955 TextUses:270Used by:969
Symbol 956 TextUses:270Used by:969
Symbol 957 TextUses:270Used by:969
Symbol 958 TextUses:270Used by:969
Symbol 959 TextUses:270Used by:969
Symbol 960 TextUses:270Used by:969
Symbol 961 TextUses:270Used by:969
Symbol 962 TextUses:270Used by:969
Symbol 963 TextUses:270Used by:969
Symbol 964 TextUses:270Used by:969
Symbol 965 TextUses:270Used by:969
Symbol 966 TextUses:270Used by:969
Symbol 967 TextUses:270Used by:969
Symbol 968 TextUses:270Used by:969
Symbol 969 MovieClip {CreditsSprite} [CreditsSprite]Uses:950 952 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 372
Symbol 970 TextUses:270Used by:979
Symbol 971 TextUses:270Used by:973
Symbol 972 TextUses:270Used by:973
Symbol 973 ButtonUses:382 971 972 381 272Used by:979
Symbol 974 TextUses:270Used by:976
Symbol 975 TextUses:270Used by:976
Symbol 976 ButtonUses:382 974 975 381 272Used by:979
Symbol 977 EditableTextUses:270Used by:979
Symbol 978 TextUses:270Used by:979
Symbol 979 MovieClip {StatWindowSprite} [StatWindowSprite]Uses:267 970 973 976 977 978 372
Symbol 980 GraphicUsed by:981
Symbol 981 MovieClipUses:980Used by:990 1618
Symbol 982 TextUses:270Used by:990
Symbol 983 TextUses:270Used by:985
Symbol 984 TextUses:270Used by:985
Symbol 985 ButtonUses:382 983 984 381 272Used by:990 1618
Symbol 986 TextUses:270Used by:988
Symbol 987 TextUses:270Used by:988
Symbol 988 ButtonUses:382 986 987 381 272Used by:990
Symbol 989 TextUses:270Used by:990 1618
Symbol 990 MovieClip {BackWindowSprite} [BackWindowSprite]Uses:981 982 985 988 989
Symbol 991 Sound {sndGameOver} [sndGameOver]
Symbol 992 Sound {sndScream} [sndScream]
Symbol 993 Sound {sndFinish} [sndFinish]
Symbol 994 Sound {sndKick} [sndKick]
Symbol 995 Sound {sndBonus} [sndBonus]
Symbol 996 Sound {sndThornsShow} [sndThornsShow]
Symbol 997 Sound {sndDead} [sndDead]
Symbol 998 Sound {sndStep} [sndStep]
Symbol 999 Sound {sndIntro} [sndIntro]
Symbol 1000 Sound {sndJump} [sndJump]
Symbol 1001 Sound {sndDoor} [sndDoor]
Symbol 1002 Sound {sndThornsHide} [sndThornsHide]
Symbol 1003 Sound {sndBlowing} [sndBlowing]
Symbol 1004 Sound {sndCrumble} [sndCrumble]
Symbol 1005 FontUsed by:1006
Symbol 1006 TextUses:1005Used by:1029
Symbol 1007 TextUses:270Used by:1008
Symbol 1008 ButtonUses:382 1007 381 272Used by:1029
Symbol 1009 TextUses:270Used by:1010
Symbol 1010 ButtonUses:382 1009 381 272Used by:1029
Symbol 1011 TextUses:270Used by:1012
Symbol 1012 ButtonUses:382 1011 381 272Used by:1029
Symbol 1013 TextUses:270Used by:1014
Symbol 1014 ButtonUses:382 1013 381 272Used by:1029
Symbol 1015 TextUses:270Used by:1016
Symbol 1016 ButtonUses:382 1015 381 272Used by:1029
Symbol 1017 GraphicUsed by:1018
Symbol 1018 MovieClipUses:1017Used by:1021
Symbol 1019 GraphicUsed by:1021
Symbol 1020 GraphicUsed by:1021
Symbol 1021 ButtonUses:1018 1019 1020Used by:1029 1668
Symbol 1022 GraphicUsed by:1023
Symbol 1023 MovieClipUses:1022Used by:1026
Symbol 1024 GraphicUsed by:1026
Symbol 1025 GraphicUsed by:1026 1627
Symbol 1026 ButtonUses:1023 1024 1025Used by:1029 1668
Symbol 1027 TextUses:270Used by:1028
Symbol 1028 ButtonUses:382 1027 381 272Used by:1029
Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite]Uses:1006 950 1008 1010 1012 1014 1016 1021 1026 372 1028
Symbol 1030 GraphicUsed by:1031
Symbol 1031 MovieClipUses:1030Used by:1039
Symbol 1032 GraphicUsed by:1033 1661 1664 1667
Symbol 1033 MovieClipUses:1032Used by:1039 1661 1664 1667 1668
Symbol 1034 GraphicUsed by:1035
Symbol 1035 MovieClipUses:1034Used by:1039
Symbol 1036 EditableTextUses:270Used by:1039
Symbol 1037 TextUses:270Used by:1039
Symbol 1038 EditableTextUses:270Used by:1039
Symbol 1039 MovieClip {GamePanelSprite} [GamePanelSprite]Uses:1031 1033 1035 1036 1037 1038 372
Symbol 1040 GraphicUsed by:1099
Symbol 1041 GraphicUsed by:1042
Symbol 1042 MovieClipUses:1041Used by:1078 1079 1098 1689 1692 1725 1726 1743
Symbol 1043 MovieClip {fl.core.ComponentShim} [fl.core.ComponentShim]Used by:1078 1079 1098 1689 1692 1723 1724 1725 1726 1743
Symbol 1044 GraphicUsed by:1045 1690
Symbol 1045 MovieClip {TextArea_disabledSkin} [TextArea_disabledSkin]Uses:1044Used by:1079
Symbol 1046 GraphicUsed by:1047 1691
Symbol 1047 MovieClip {TextArea_upSkin} [TextArea_upSkin]Uses:1046Used by:1079
Symbol 1048 GraphicUsed by:1049
Symbol 1049 MovieClip {focusRectSkin} [focusRectSkin]Uses:1048Used by:1078 1079 1098 1689 1692 1724 1725 1726 1743
Symbol 1050 GraphicUsed by:1051
Symbol 1051 MovieClip {ScrollTrack_skin} [ScrollTrack_skin]Uses:1050Used by:1078 1724
Symbol 1052 GraphicUsed by:1055
Symbol 1053 GraphicUsed by:1054 1057 1061 1071 1728 1730 1732 1734 1736 1738 1740 1742
Symbol 1054 MovieClipUses:1053Used by:1055 1065 1067
Symbol 1055 MovieClip {ScrollArrowUp_downSkin} [ScrollArrowUp_downSkin]Uses:1052 1054Used by:1078 1724
Symbol 1056 GraphicUsed by:1057
Symbol 1057 MovieClip {ScrollArrowDown_downSkin} [ScrollArrowDown_downSkin]Uses:1056 1053Used by:1078 1724
Symbol 1058 GraphicUsed by:1059
Symbol 1059 MovieClip {ScrollThumb_downSkin} [ScrollThumb_downSkin]Uses:1058Used by:1078 1724
Symbol 1060 GraphicUsed by:1061
Symbol 1061 MovieClip {ScrollArrowDown_overSkin} [ScrollArrowDown_overSkin]Uses:1060 1053Used by:1078 1724
Symbol 1062 GraphicUsed by:1063
Symbol 1063 MovieClip {ScrollThumb_overSkin} [ScrollThumb_overSkin]Uses:1062Used by:1078 1724
Symbol 1064 GraphicUsed by:1065
Symbol 1065 MovieClip {ScrollArrowUp_overSkin} [ScrollArrowUp_overSkin]Uses:1064 1054Used by:1078 1724
Symbol 1066 GraphicUsed by:1067
Symbol 1067 MovieClip {ScrollArrowUp_upSkin} [ScrollArrowUp_upSkin]Uses:1066 1054Used by:1078 1724
Symbol 1068 GraphicUsed by:1069
Symbol 1069 MovieClip {ScrollThumb_upSkin} [ScrollThumb_upSkin]Uses:1068Used by:1078 1724
Symbol 1070 GraphicUsed by:1071
Symbol 1071 MovieClip {ScrollArrowDown_upSkin} [ScrollArrowDown_upSkin]Uses:1070 1053Used by:1078 1724
Symbol 1072 GraphicUsed by:1073
Symbol 1073 MovieClip {ScrollArrowDown_disabledSkin} [ScrollArrowDown_disabledSkin]Uses:1072Used by:1078 1724
Symbol 1074 GraphicUsed by:1075
Symbol 1075 MovieClip {ScrollArrowUp_disabledSkin} [ScrollArrowUp_disabledSkin]Uses:1074Used by:1078 1724
Symbol 1076 GraphicUsed by:1077
Symbol 1077 MovieClip {ScrollBar_thumbIcon} [ScrollBar_thumbIcon]Uses:1076Used by:1078 1724
Symbol 1078 MovieClip {fl.controls.UIScrollBar} [fl.controls.UIScrollBar]Uses:1042 1043 1049 1051 1055 1057 1059 1061 1063 1065 1067 1069 1071 1073 1075 1077Used by:1079
Symbol 1079 MovieClip {fl.controls.TextArea} [fl.controls.TextArea]Uses:1042 1043 1045 1047 1049 1078Used by:1099
Symbol 1080 GraphicUsed by:1081
Symbol 1081 MovieClip {Button_disabledSkin} [Button_disabledSkin]Uses:1080Used by:1098
Symbol 1082 GraphicUsed by:1083
Symbol 1083 MovieClip {Button_downSkin} [Button_downSkin]Uses:1082Used by:1098
Symbol 1084 GraphicUsed by:1085
Symbol 1085 MovieClip {Button_emphasizedSkin} [Button_emphasizedSkin]Uses:1084Used by:1098
Symbol 1086 GraphicUsed by:1087
Symbol 1087 MovieClip {Button_overSkin} [Button_overSkin]Uses:1086Used by:1098
Symbol 1088 GraphicUsed by:1089
Symbol 1089 MovieClip {Button_selectedDisabledSkin} [Button_selectedDisabledSkin]Uses:1088Used by:1098
Symbol 1090 GraphicUsed by:1091
Symbol 1091 MovieClip {Button_selectedDownSkin} [Button_selectedDownSkin]Uses:1090Used by:1098
Symbol 1092 GraphicUsed by:1093
Symbol 1093 MovieClip {Button_selectedOverSkin} [Button_selectedOverSkin]Uses:1092Used by:1098
Symbol 1094 GraphicUsed by:1095
Symbol 1095 MovieClip {Button_selectedUpSkin} [Button_selectedUpSkin]Uses:1094Used by:1098
Symbol 1096 GraphicUsed by:1097
Symbol 1097 MovieClip {Button_upSkin} [Button_upSkin]Uses:1096Used by:1098
Symbol 1098 MovieClip {fl.controls.Button} [fl.controls.Button]Uses:1042 1043 1081 1083 1085 1087 1089 1091 1093 1095 1097 1049Used by:1099 1693 1750
Symbol 1099 MovieClip {CodePanelSprite} [CodePanelSprite]Uses:1040 1079 1098
Symbol 1100 GraphicUsed by:1101
Symbol 1101 MovieClip {Sky} [Sky]Uses:1100
Symbol 1102 TextUses:270Used by:1115
Symbol 1103 TextUses:270Used by:1115
Symbol 1104 GraphicUsed by:1115
Symbol 1105 TextUses:270Used by:1115
Symbol 1106 GraphicUsed by:1115
Symbol 1107 TextUses:270Used by:1115 1135
Symbol 1108 TextUses:270Used by:1115
Symbol 1109 GraphicUsed by:1110
Symbol 1110 MovieClipUses:1109Used by:1115 1135
Symbol 1111 TextUses:270Used by:1115 1135
Symbol 1112 TextUses:270Used by:1115
Symbol 1113 GraphicUsed by:1115
Symbol 1114 TextUses:270Used by:1115
Symbol 1115 MovieClipUses:1102 1103 1104 1105 1106 1107 1108 1110 1111 1112 1113 1114Used by:1116
Symbol 1116 MovieClip {Tutorial_2} [Tutorial_2]Uses:1115
Symbol 1117 GraphicUsed by:1118
Symbol 1118 MovieClip {Cloud_2} [Cloud_2]Uses:1117
Symbol 1119 GraphicUsed by:1120
Symbol 1120 MovieClip {Back_4} [Back_4]Uses:1119
Symbol 1121 GraphicUsed by:1122
Symbol 1122 MovieClip {Cloud_3} [Cloud_3]Uses:1121
Symbol 1123 GraphicUsed by:1124
Symbol 1124 MovieClip {Back_5} [Back_5]Uses:1123
Symbol 1125 GraphicUsed by:1135
Symbol 1126 TextUses:270Used by:1135
Symbol 1127 TextUses:270Used by:1135
Symbol 1128 TextUses:270Used by:1135
Symbol 1129 TextUses:270Used by:1135
Symbol 1130 TextUses:270Used by:1135
Symbol 1131 TextUses:270Used by:1135
Symbol 1132 GraphicUsed by:1135
Symbol 1133 TextUses:270Used by:1135
Symbol 1134 GraphicUsed by:1135
Symbol 1135 MovieClipUses:1125 1126 1127 1110 1111 1128 1129 1130 1107 1131 1132 1133 1134Used by:1136
Symbol 1136 MovieClip {Tutorial_1} [Tutorial_1]Uses:1135
Symbol 1137 GraphicUsed by:1138
Symbol 1138 MovieClip {Cloud_4} [Cloud_4]Uses:1137
Symbol 1139 TextUses:270Used by:1144
Symbol 1140 TextUses:270Used by:1144
Symbol 1141 GraphicUsed by:1144
Symbol 1142 TextUses:270Used by:1144
Symbol 1143 GraphicUsed by:1144
Symbol 1144 MovieClipUses:1139 1140 1141 1142 1143Used by:1145
Symbol 1145 MovieClip {Tutorial_4} [Tutorial_4]Uses:1144
Symbol 1146 GraphicUsed by:1147
Symbol 1147 MovieClip {Cloud_5} [Cloud_5]Uses:1146
Symbol 1148 TextUses:270Used by:1152
Symbol 1149 GraphicUsed by:1152
Symbol 1150 TextUses:270Used by:1152
Symbol 1151 GraphicUsed by:1152
Symbol 1152 MovieClipUses:1148 1149 1150 1151Used by:1153
Symbol 1153 MovieClip {Tutorial_3} [Tutorial_3]Uses:1152
Symbol 1154 GraphicUsed by:1155
Symbol 1155 MovieClip {Cloud_6} [Cloud_6]Uses:1154
Symbol 1156 GraphicUsed by:1157
Symbol 1157 MovieClip {Back_1} [Back_1]Uses:1156
Symbol 1158 TextUses:270Used by:1162
Symbol 1159 GraphicUsed by:1162
Symbol 1160 TextUses:270Used by:1162
Symbol 1161 TextUses:270Used by:1162
Symbol 1162 ButtonUses:1158 1159 1160 1161Used by:1163
Symbol 1163 MovieClip {Tutorial_5} [Tutorial_5]Uses:1162
Symbol 1164 GraphicUsed by:1165
Symbol 1165 MovieClip {Back_2} [Back_2]Uses:1164
Symbol 1166 GraphicUsed by:1167
Symbol 1167 MovieClip {Back_3} [Back_3]Uses:1166
Symbol 1168 GraphicUsed by:1169
Symbol 1169 MovieClip {Cloud_1} [Cloud_1]Uses:1168
Symbol 1170 BitmapUsed by:1171
Symbol 1171 GraphicUses:1170Used by:1514
Symbol 1172 BitmapUsed by:1173 1512
Symbol 1173 GraphicUses:1172Used by:1513
Symbol 1174 BitmapUsed by:1175
Symbol 1175 GraphicUses:1174Used by:1513
Symbol 1176 BitmapUsed by:1177
Symbol 1177 GraphicUses:1176Used by:1513
Symbol 1178 BitmapUsed by:1179
Symbol 1179 GraphicUses:1178Used by:1513
Symbol 1180 BitmapUsed by:1181
Symbol 1181 GraphicUses:1180Used by:1513
Symbol 1182 BitmapUsed by:1183
Symbol 1183 GraphicUses:1182Used by:1513
Symbol 1184 BitmapUsed by:1185
Symbol 1185 GraphicUses:1184Used by:1513
Symbol 1186 BitmapUsed by:1187
Symbol 1187 GraphicUses:1186Used by:1513
Symbol 1188 BitmapUsed by:1189
Symbol 1189 GraphicUses:1188Used by:1513
Symbol 1190 BitmapUsed by:1191
Symbol 1191 GraphicUses:1190Used by:1513
Symbol 1192 BitmapUsed by:1193
Symbol 1193 GraphicUses:1192Used by:1513
Symbol 1194 BitmapUsed by:1195
Symbol 1195 GraphicUses:1194Used by:1513
Symbol 1196 BitmapUsed by:1197
Symbol 1197 GraphicUses:1196Used by:1513
Symbol 1198 BitmapUsed by:1199
Symbol 1199 GraphicUses:1198Used by:1513
Symbol 1200 BitmapUsed by:1201
Symbol 1201 GraphicUses:1200Used by:1513
Symbol 1202 BitmapUsed by:1203
Symbol 1203 GraphicUses:1202Used by:1513
Symbol 1204 BitmapUsed by:1205
Symbol 1205 GraphicUses:1204Used by:1513
Symbol 1206 BitmapUsed by:1207
Symbol 1207 GraphicUses:1206Used by:1513
Symbol 1208 BitmapUsed by:1209
Symbol 1209 GraphicUses:1208Used by:1513
Symbol 1210 BitmapUsed by:1211
Symbol 1211 GraphicUses:1210Used by:1513
Symbol 1212 BitmapUsed by:1213
Symbol 1213 GraphicUses:1212Used by:1513
Symbol 1214 BitmapUsed by:1215
Symbol 1215 GraphicUses:1214Used by:1513
Symbol 1216 BitmapUsed by:1217
Symbol 1217 GraphicUses:1216Used by:1513
Symbol 1218 BitmapUsed by:1219
Symbol 1219 GraphicUses:1218Used by:1513
Symbol 1220 BitmapUsed by:1221
Symbol 1221 GraphicUses:1220Used by:1513
Symbol 1222 BitmapUsed by:1223
Symbol 1223 GraphicUses:1222Used by:1513
Symbol 1224 BitmapUsed by:1225
Symbol 1225 GraphicUses:1224Used by:1513
Symbol 1226 BitmapUsed by:1227
Symbol 1227 GraphicUses:1226Used by:1513
Symbol 1228 BitmapUsed by:1229
Symbol 1229 GraphicUses:1228Used by:1513
Symbol 1230 BitmapUsed by:1231
Symbol 1231 GraphicUses:1230Used by:1513
Symbol 1232 BitmapUsed by:1233
Symbol 1233 GraphicUses:1232Used by:1513
Symbol 1234 BitmapUsed by:1235
Symbol 1235 GraphicUses:1234Used by:1513
Symbol 1236 BitmapUsed by:1237
Symbol 1237 GraphicUses:1236Used by:1513
Symbol 1238 BitmapUsed by:1239
Symbol 1239 GraphicUses:1238Used by:1513
Symbol 1240 BitmapUsed by:1241
Symbol 1241 GraphicUses:1240Used by:1513
Symbol 1242 BitmapUsed by:1243
Symbol 1243 GraphicUses:1242Used by:1513
Symbol 1244 BitmapUsed by:1245
Symbol 1245 GraphicUses:1244Used by:1513
Symbol 1246 BitmapUsed by:1247
Symbol 1247 GraphicUses:1246Used by:1513
Symbol 1248 BitmapUsed by:1249
Symbol 1249 GraphicUses:1248Used by:1513
Symbol 1250 BitmapUsed by:1251
Symbol 1251 GraphicUses:1250Used by:1513
Symbol 1252 BitmapUsed by:1253
Symbol 1253 GraphicUses:1252Used by:1513
Symbol 1254 BitmapUsed by:1255
Symbol 1255 GraphicUses:1254Used by:1513
Symbol 1256 BitmapUsed by:1257
Symbol 1257 GraphicUses:1256Used by:1513
Symbol 1258 BitmapUsed by:1259
Symbol 1259 GraphicUses:1258Used by:1513
Symbol 1260 BitmapUsed by:1261
Symbol 1261 GraphicUses:1260Used by:1513
Symbol 1262 BitmapUsed by:1263
Symbol 1263 GraphicUses:1262Used by:1513
Symbol 1264 BitmapUsed by:1265
Symbol 1265 GraphicUses:1264Used by:1513
Symbol 1266 BitmapUsed by:1267
Symbol 1267 GraphicUses:1266Used by:1513
Symbol 1268 BitmapUsed by:1269
Symbol 1269 GraphicUses:1268Used by:1513
Symbol 1270 BitmapUsed by:1271
Symbol 1271 GraphicUses:1270Used by:1513
Symbol 1272 BitmapUsed by:1273
Symbol 1273 GraphicUses:1272Used by:1513
Symbol 1274 BitmapUsed by:1275
Symbol 1275 GraphicUses:1274Used by:1513
Symbol 1276 BitmapUsed by:1277
Symbol 1277 GraphicUses:1276Used by:1513
Symbol 1278 BitmapUsed by:1279
Symbol 1279 GraphicUses:1278Used by:1513
Symbol 1280 BitmapUsed by:1281
Symbol 1281 GraphicUses:1280Used by:1513
Symbol 1282 BitmapUsed by:1283
Symbol 1283 GraphicUses:1282Used by:1513
Symbol 1284 BitmapUsed by:1285
Symbol 1285 GraphicUses:1284Used by:1513
Symbol 1286 BitmapUsed by:1287
Symbol 1287 GraphicUses:1286Used by:1513
Symbol 1288 BitmapUsed by:1289
Symbol 1289 GraphicUses:1288Used by:1513
Symbol 1290 BitmapUsed by:1291
Symbol 1291 GraphicUses:1290Used by:1513
Symbol 1292 BitmapUsed by:1293
Symbol 1293 GraphicUses:1292Used by:1513
Symbol 1294 BitmapUsed by:1295
Symbol 1295 GraphicUses:1294Used by:1513
Symbol 1296 BitmapUsed by:1297
Symbol 1297 GraphicUses:1296Used by:1513
Symbol 1298 BitmapUsed by:1299
Symbol 1299 GraphicUses:1298Used by:1513
Symbol 1300 BitmapUsed by:1301
Symbol 1301 GraphicUses:1300Used by:1513
Symbol 1302 BitmapUsed by:1303
Symbol 1303 GraphicUses:1302Used by:1513
Symbol 1304 BitmapUsed by:1305
Symbol 1305 GraphicUses:1304Used by:1513
Symbol 1306 BitmapUsed by:1307
Symbol 1307 GraphicUses:1306Used by:1513
Symbol 1308 BitmapUsed by:1309
Symbol 1309 GraphicUses:1308Used by:1513
Symbol 1310 BitmapUsed by:1311
Symbol 1311 GraphicUses:1310Used by:1513
Symbol 1312 BitmapUsed by:1313
Symbol 1313 GraphicUses:1312Used by:1513
Symbol 1314 BitmapUsed by:1315
Symbol 1315 GraphicUses:1314Used by:1513
Symbol 1316 BitmapUsed by:1317
Symbol 1317 GraphicUses:1316Used by:1513
Symbol 1318 BitmapUsed by:1319
Symbol 1319 GraphicUses:1318Used by:1513
Symbol 1320 BitmapUsed by:1321
Symbol 1321 GraphicUses:1320Used by:1513
Symbol 1322 BitmapUsed by:1323
Symbol 1323 GraphicUses:1322Used by:1513
Symbol 1324 BitmapUsed by:1325
Symbol 1325 GraphicUses:1324Used by:1513
Symbol 1326 BitmapUsed by:1327
Symbol 1327 GraphicUses:1326Used by:1513
Symbol 1328 BitmapUsed by:1329
Symbol 1329 GraphicUses:1328Used by:1513
Symbol 1330 BitmapUsed by:1331
Symbol 1331 GraphicUses:1330Used by:1513
Symbol 1332 BitmapUsed by:1333
Symbol 1333 GraphicUses:1332Used by:1513
Symbol 1334 BitmapUsed by:1335
Symbol 1335 GraphicUses:1334Used by:1513
Symbol 1336 BitmapUsed by:1337
Symbol 1337 GraphicUses:1336Used by:1513
Symbol 1338 BitmapUsed by:1339
Symbol 1339 GraphicUses:1338Used by:1513
Symbol 1340 BitmapUsed by:1341
Symbol 1341 GraphicUses:1340Used by:1513
Symbol 1342 BitmapUsed by:1343
Symbol 1343 GraphicUses:1342Used by:1513
Symbol 1344 BitmapUsed by:1345
Symbol 1345 GraphicUses:1344Used by:1513
Symbol 1346 BitmapUsed by:1347
Symbol 1347 GraphicUses:1346Used by:1513
Symbol 1348 BitmapUsed by:1349
Symbol 1349 GraphicUses:1348Used by:1513
Symbol 1350 BitmapUsed by:1351
Symbol 1351 GraphicUses:1350Used by:1513
Symbol 1352 BitmapUsed by:1353
Symbol 1353 GraphicUses:1352Used by:1513
Symbol 1354 BitmapUsed by:1355
Symbol 1355 GraphicUses:1354Used by:1513
Symbol 1356 BitmapUsed by:1357
Symbol 1357 GraphicUses:1356Used by:1513
Symbol 1358 BitmapUsed by:1359
Symbol 1359 GraphicUses:1358Used by:1513
Symbol 1360 BitmapUsed by:1361
Symbol 1361 GraphicUses:1360Used by:1513
Symbol 1362 BitmapUsed by:1363
Symbol 1363 GraphicUses:1362Used by:1513
Symbol 1364 BitmapUsed by:1365
Symbol 1365 GraphicUses:1364Used by:1513
Symbol 1366 BitmapUsed by:1367
Symbol 1367 GraphicUses:1366Used by:1513
Symbol 1368 BitmapUsed by:1369
Symbol 1369 GraphicUses:1368Used by:1513
Symbol 1370 BitmapUsed by:1371
Symbol 1371 GraphicUses:1370Used by:1513
Symbol 1372 BitmapUsed by:1373
Symbol 1373 GraphicUses:1372Used by:1513
Symbol 1374 BitmapUsed by:1375
Symbol 1375 GraphicUses:1374Used by:1513
Symbol 1376 BitmapUsed by:1377
Symbol 1377 GraphicUses:1376Used by:1513
Symbol 1378 BitmapUsed by:1379
Symbol 1379 GraphicUses:1378Used by:1513
Symbol 1380 BitmapUsed by:1381
Symbol 1381 GraphicUses:1380Used by:1513
Symbol 1382 BitmapUsed by:1383
Symbol 1383 GraphicUses:1382Used by:1513
Symbol 1384 BitmapUsed by:1385
Symbol 1385 GraphicUses:1384Used by:1513
Symbol 1386 BitmapUsed by:1387
Symbol 1387 GraphicUses:1386Used by:1513
Symbol 1388 BitmapUsed by:1389
Symbol 1389 GraphicUses:1388Used by:1513
Symbol 1390 BitmapUsed by:1391
Symbol 1391 GraphicUses:1390Used by:1513
Symbol 1392 BitmapUsed by:1393
Symbol 1393 GraphicUses:1392Used by:1513
Symbol 1394 BitmapUsed by:1395
Symbol 1395 GraphicUses:1394Used by:1513
Symbol 1396 BitmapUsed by:1397
Symbol 1397 GraphicUses:1396Used by:1513
Symbol 1398 BitmapUsed by:1399
Symbol 1399 GraphicUses:1398Used by:1513
Symbol 1400 BitmapUsed by:1401
Symbol 1401 GraphicUses:1400Used by:1513
Symbol 1402 BitmapUsed by:1403
Symbol 1403 GraphicUses:1402Used by:1513
Symbol 1404 BitmapUsed by:1405
Symbol 1405 GraphicUses:1404Used by:1513
Symbol 1406 BitmapUsed by:1407
Symbol 1407 GraphicUses:1406Used by:1513
Symbol 1408 BitmapUsed by:1409
Symbol 1409 GraphicUses:1408Used by:1513
Symbol 1410 BitmapUsed by:1411
Symbol 1411 GraphicUses:1410Used by:1513
Symbol 1412 BitmapUsed by:1413
Symbol 1413 GraphicUses:1412Used by:1513
Symbol 1414 BitmapUsed by:1415
Symbol 1415 GraphicUses:1414Used by:1513
Symbol 1416 BitmapUsed by:1417
Symbol 1417 GraphicUses:1416Used by:1513
Symbol 1418 BitmapUsed by:1419
Symbol 1419 GraphicUses:1418Used by:1513
Symbol 1420 BitmapUsed by:1421
Symbol 1421 GraphicUses:1420Used by:1513
Symbol 1422 BitmapUsed by:1423
Symbol 1423 GraphicUses:1422Used by:1513
Symbol 1424 BitmapUsed by:1425
Symbol 1425 GraphicUses:1424Used by:1513
Symbol 1426 BitmapUsed by:1427
Symbol 1427 GraphicUses:1426Used by:1513
Symbol 1428 BitmapUsed by:1429
Symbol 1429 GraphicUses:1428Used by:1513
Symbol 1430 BitmapUsed by:1431
Symbol 1431 GraphicUses:1430Used by:1513
Symbol 1432 BitmapUsed by:1433
Symbol 1433 GraphicUses:1432Used by:1513
Symbol 1434 BitmapUsed by:1435
Symbol 1435 GraphicUses:1434Used by:1513
Symbol 1436 BitmapUsed by:1437
Symbol 1437 GraphicUses:1436Used by:1513
Symbol 1438 BitmapUsed by:1439
Symbol 1439 GraphicUses:1438Used by:1513
Symbol 1440 BitmapUsed by:1441
Symbol 1441 GraphicUses:1440Used by:1513
Symbol 1442 BitmapUsed by:1443
Symbol 1443 GraphicUses:1442Used by:1513
Symbol 1444 BitmapUsed by:1445
Symbol 1445 GraphicUses:1444Used by:1513
Symbol 1446 BitmapUsed by:1447
Symbol 1447 GraphicUses:1446Used by:1513
Symbol 1448 BitmapUsed by:1449
Symbol 1449 GraphicUses:1448Used by:1513
Symbol 1450 BitmapUsed by:1451
Symbol 1451 GraphicUses:1450Used by:1513
Symbol 1452 BitmapUsed by:1453
Symbol 1453 GraphicUses:1452Used by:1513
Symbol 1454 BitmapUsed by:1455
Symbol 1455 GraphicUses:1454Used by:1513
Symbol 1456 BitmapUsed by:1457
Symbol 1457 GraphicUses:1456Used by:1513
Symbol 1458 BitmapUsed by:1459
Symbol 1459 GraphicUses:1458Used by:1513
Symbol 1460 BitmapUsed by:1461
Symbol 1461 GraphicUses:1460Used by:1513
Symbol 1462 BitmapUsed by:1463
Symbol 1463 GraphicUses:1462Used by:1513
Symbol 1464 BitmapUsed by:1465
Symbol 1465 GraphicUses:1464Used by:1513
Symbol 1466 BitmapUsed by:1467
Symbol 1467 GraphicUses:1466Used by:1513
Symbol 1468 BitmapUsed by:1469
Symbol 1469 GraphicUses:1468Used by:1513
Symbol 1470 BitmapUsed by:1471
Symbol 1471 GraphicUses:1470Used by:1513
Symbol 1472 BitmapUsed by:1473
Symbol 1473 GraphicUses:1472Used by:1513
Symbol 1474 BitmapUsed by:1475
Symbol 1475 GraphicUses:1474Used by:1513
Symbol 1476 BitmapUsed by:1477
Symbol 1477 GraphicUses:1476Used by:1513
Symbol 1478 BitmapUsed by:1479
Symbol 1479 GraphicUses:1478Used by:1513
Symbol 1480 BitmapUsed by:1481
Symbol 1481 GraphicUses:1480Used by:1513
Symbol 1482 BitmapUsed by:1483
Symbol 1483 GraphicUses:1482Used by:1513
Symbol 1484 BitmapUsed by:1485
Symbol 1485 GraphicUses:1484Used by:1513
Symbol 1486 BitmapUsed by:1487
Symbol 1487 GraphicUses:1486Used by:1513
Symbol 1488 BitmapUsed by:1489
Symbol 1489 GraphicUses:1488Used by:1513
Symbol 1490 BitmapUsed by:1491
Symbol 1491 GraphicUses:1490Used by:1513
Symbol 1492 BitmapUsed by:1493
Symbol 1493 GraphicUses:1492Used by:1513
Symbol 1494 BitmapUsed by:1495
Symbol 1495 GraphicUses:1494Used by:1513
Symbol 1496 BitmapUsed by:1497
Symbol 1497 GraphicUses:1496Used by:1513
Symbol 1498 BitmapUsed by:1499
Symbol 1499 GraphicUses:1498Used by:1513
Symbol 1500 BitmapUsed by:1501
Symbol 1501 GraphicUses:1500Used by:1513
Symbol 1502 BitmapUsed by:1503
Symbol 1503 GraphicUses:1502Used by:1513
Symbol 1504 BitmapUsed by:1505
Symbol 1505 GraphicUses:1504Used by:1513
Symbol 1506 BitmapUsed by:1507
Symbol 1507 GraphicUses:1506Used by:1513
Symbol 1508 BitmapUsed by:1509
Symbol 1509 GraphicUses:1508Used by:1513
Symbol 1510 BitmapUsed by:1511
Symbol 1511 GraphicUses:1510Used by:1513
Symbol 1512 GraphicUses:1172Used by:1513
Symbol 1513 MovieClipUses:1173 1175 1177 1179 1181 1183 1185 1187 1189 1191 1193 1195 1197 1199 1201 1203 1205 1207 1209 1211 1213 1215 1217 1219 1221 1223 1225 1227 1229 1231 1233 1235 1237 1239 1241 1243 1245 1247 1249 1251 1253 1255 1257 1259 1261 1263 1265 1267 1269 1271 1273 1275 1277 1279 1281 1283 1285 1287 1289 1291 1293 1295 1297 1299 1301 1303 1305 1307 1309 1311 1313 1315 1317 1319 1321 1323 1325 1327 1329 1331 1333 1335 1337 1339 1341 1343 1345 1347 1349 1351 1353 1355 1357 1359 1361 1363 1365 1367 1369 1371 1373 1375 1377 1379 1381 1383 1385 1387 1389 1391 1393 1395 1397 1399 1401 1403 1405 1407 1409 1411 1413 1415 1417 1419 1421 1423 1425 1427 1429 1431 1433 1435 1437 1439 1441 1443 1445 1447 1449 1451 1453 1455 1457 1459 1461 1463 1465 1467 1469 1471 1473 1475 1477 1479 1481 1483 1485 1487 1489 1491 1493 1495 1497 1499 1501 1503 1505 1507 1509 1511 1512Used by:1514
Symbol 1514 MovieClip {Sun} [Sun]Uses:1171 1513
Symbol 1515 GraphicUsed by:1516
Symbol 1516 MovieClip {Tree_2} [Tree_2]Uses:1515
Symbol 1517 GraphicUsed by:1518
Symbol 1518 MovieClip {Tree_1} [Tree_1]Uses:1517
Symbol 1519 GraphicUsed by:1520
Symbol 1520 MovieClip {Bush_2} [Bush_2]Uses:1519
Symbol 1521 GraphicUsed by:1522
Symbol 1522 MovieClip {Tree_4} [Tree_4]Uses:1521
Symbol 1523 GraphicUsed by:1524
Symbol 1524 MovieClip {Tree_3} [Tree_3]Uses:1523
Symbol 1525 GraphicUsed by:1526
Symbol 1526 MovieClip {Bush_1} [Bush_1]Uses:1525
Symbol 1527 GraphicUsed by:1528
Symbol 1528 MovieClip {Bush_4} [Bush_4]Uses:1527
Symbol 1529 GraphicUsed by:1530
Symbol 1530 MovieClip {Bush_3} [Bush_3]Uses:1529
Symbol 1531 GraphicUsed by:1532
Symbol 1532 MovieClip {Tree_5} [Tree_5]Uses:1531
Symbol 1533 GraphicUsed by:1534
Symbol 1534 MovieClip {Bush_6} [Bush_6]Uses:1533
Symbol 1535 GraphicUsed by:1536
Symbol 1536 MovieClip {Bush_5} [Bush_5]Uses:1535
Symbol 1537 GraphicUsed by:1538
Symbol 1538 MovieClip {Palm_3} [Palm_3]Uses:1537
Symbol 1539 GraphicUsed by:1540
Symbol 1540 MovieClip {Palm_2} [Palm_2]Uses:1539
Symbol 1541 GraphicUsed by:1542
Symbol 1542 MovieClip {Palm_1} [Palm_1]Uses:1541
Symbol 1543 GraphicUsed by:1544
Symbol 1544 MovieClipUses:1543Used by:1566 1567
Symbol 1545 GraphicUsed by:1546
Symbol 1546 MovieClipUses:1545Used by:1566 1567
Symbol 1547 GraphicUsed by:1548
Symbol 1548 MovieClipUses:1547Used by:1566 1567
Symbol 1549 GraphicUsed by:1550
Symbol 1550 MovieClipUses:1549Used by:1566 1567
Symbol 1551 GraphicUsed by:1552
Symbol 1552 MovieClipUses:1551Used by:1566 1567
Symbol 1553 GraphicUsed by:1554
Symbol 1554 MovieClipUses:1553Used by:1566 1567
Symbol 1555 GraphicUsed by:1556
Symbol 1556 MovieClipUses:1555Used by:1566 1567
Symbol 1557 GraphicUsed by:1558
Symbol 1558 MovieClipUses:1557Used by:1566 1567
Symbol 1559 GraphicUsed by:1560
Symbol 1560 MovieClipUses:1559Used by:1566 1567
Symbol 1561 GraphicUsed by:1562
Symbol 1562 MovieClipUses:1561Used by:1566 1567
Symbol 1563 GraphicUsed by:1564
Symbol 1564 MovieClipUses:1563Used by:1566 1567
Symbol 1565 MovieClipUsed by:1566 1567
Symbol 1566 MovieClip {RagdollR} [RagdollR]Uses:1544 1546 1548 1550 1552 1554 1556 1558 1560 1562 1564 1565Used by:1591
Symbol 1567 MovieClip {RagdollL} [RagdollL]Uses:1544 1546 1548 1550 1552 1554 1556 1558 1560 1562 1564 1565Used by:1591
Symbol 1568 GraphicUsed by:1569
Symbol 1569 MovieClipUses:1568Used by:1588 1589 1590
Symbol 1570 GraphicUsed by:1571
Symbol 1571 MovieClipUses:1570Used by:1588 1589 1590
Symbol 1572 GraphicUsed by:1573
Symbol 1573 MovieClipUses:1572Used by:1588 1589 1590
Symbol 1574 GraphicUsed by:1575
Symbol 1575 MovieClipUses:1574Used by:1588 1589 1590
Symbol 1576 GraphicUsed by:1577
Symbol 1577 MovieClipUses:1576Used by:1588 1589 1590
Symbol 1578 GraphicUsed by:1579
Symbol 1579 MovieClipUses:1578Used by:1588 1589 1590
Symbol 1580 GraphicUsed by:1581
Symbol 1581 MovieClipUses:1580Used by:1588 1589 1590
Symbol 1582 GraphicUsed by:1583
Symbol 1583 MovieClipUses:1582Used by:1588 1589 1590
Symbol 1584 GraphicUsed by:1585
Symbol 1585 MovieClipUses:1584Used by:1588 1589 1590
Symbol 1586 GraphicUsed by:1587
Symbol 1587 MovieClipUses:1586Used by:1588 1589 1590
Symbol 1588 MovieClipUses:1569 1571 1573 1575 1577 1579 1581 1583 1585 1587Used by:1591
Symbol 1589 MovieClip {Chars_fla.Hero_Run_40} [Chars_fla.Hero_Run_40]Uses:1569 1571 1577 1579 1581 1573 1575 1583 1585 1587Used by:1591
Symbol 1590 MovieClipUses:1569 1571 1577 1579 1581 1573 1575 1583 1585 1587Used by:1591
Symbol 1591 MovieClip {HeroSprite} [HeroSprite]Uses:1588 1589 1590 1567 1566
Symbol 1592 Sound {main.effects.Music_Track_1} [main.effects.Music_Track_1]
Symbol 1593 Sound {main.effects.Music_Track_2} [main.effects.Music_Track_2]
Symbol 1594 Sound {main.effects.Music_Track_3} [main.effects.Music_Track_3]
Symbol 1595 GraphicUsed by:1596 1600 1607
Symbol 1596 MovieClipUses:1595Used by:1600 1607
Symbol 1597 FontUsed by:1598 1599 1605 1606 1670 1671 1672 1696 1744 1745 1746 1747 1748 1749 1756 1757 1758 1759 1760 1763 1766 1768 1769 1773
Symbol 1598 TextUses:1597Used by:1600
Symbol 1599 TextUses:1597Used by:1600
Symbol 1600 ButtonUses:1596 1598 1599 1595Used by:1613 1767
Symbol 1601 GraphicUsed by:1604
Symbol 1602 GraphicUsed by:1604
Symbol 1603 GraphicUsed by:1604
Symbol 1604 ButtonUses:1601 1602 1603Used by:1610 1613 1695
Symbol 1605 TextUses:1597Used by:1607
Symbol 1606 TextUses:1597Used by:1607
Symbol 1607 ButtonUses:1596 1605 1606 1595Used by:1613
Symbol 1608 GraphicUsed by:1613
Symbol 1609 GraphicUsed by:1610
Symbol 1610 MovieClip {BlockPanelSprite} [BlockPanelSprite]Uses:1604 1609Used by:1611
Symbol 1611 MovieClipUses:1610Used by:1613
Symbol 1612 GraphicUsed by:1613
Symbol 1613 MovieClip {EditorSprite} [EditorSprite]Uses:1600 1604 1607 1608 1611 1612
Symbol 1614 TextUses:270Used by:1618
Symbol 1615 TextUses:270Used by:1617
Symbol 1616 TextUses:270Used by:1617
Symbol 1617 ButtonUses:382 1615 1616 381 272Used by:1618
Symbol 1618 MovieClip {GameOverSprite} [GameOverSprite]Uses:981 1614 985 1617 989
Symbol 1619 EditableTextUses:270Used by:1629
Symbol 1620 GraphicUsed by:1624
Symbol 1621 GraphicUsed by:1624
Symbol 1622 GraphicUsed by:1624
Symbol 1623 GraphicUsed by:1624
Symbol 1624 MovieClip {Menu_fla.Stars_Mini_41} [Menu_fla.Stars_Mini_41]Uses:1620 1621 1622 1623Used by:1629
Symbol 1625 GraphicUsed by:1627
Symbol 1626 GraphicUsed by:1627
Symbol 1627 ButtonUses:1625 1626 1025Used by:1629
Symbol 1628 GraphicUsed by:1629
Symbol 1629 MovieClip {LevelButtonSprite} [LevelButtonSprite]Uses:1619 1624 1627 1628
Symbol 1630 GraphicUsed by:1631
Symbol 1631 MovieClip {ThornsPreview} [ThornsPreview]Uses:1630Used by:1765
Symbol 1632 GraphicUsed by:1633
Symbol 1633 MovieClip {SimplePreview} [SimplePreview]Uses:1632Used by:1635 1646 1651 1765
Symbol 1634 GraphicUsed by:1635
Symbol 1635 MovieClip {ReplacePreview} [ReplacePreview]Uses:1633 1634Used by:1765
Symbol 1636 GraphicUsed by:1637
Symbol 1637 MovieClipUses:1636Used by:1639
Symbol 1638 EditableTextUses:270Used by:1639
Symbol 1639 MovieClip {BlockButtonSprite} [BlockButtonSprite]Uses:1637 1638
Symbol 1640 FontUsed by:1641 1642 1643 1644 1645
Symbol 1641 TextUses:1640Used by:1646
Symbol 1642 TextUses:1640Used by:1646
Symbol 1643 TextUses:1640Used by:1646
Symbol 1644 TextUses:1640Used by:1646
Symbol 1645 TextUses:1640Used by:1646
Symbol 1646 MovieClip {TimeoutPreview} [TimeoutPreview]Uses:1633 1641 1642 1643 1644 1645Used by:1765
Symbol 1647 GraphicUsed by:1648
Symbol 1648 MovieClipUses:1647Used by:1651
Symbol 1649 GraphicUsed by:1650
Symbol 1650 MovieClipUses:1649Used by:1651
Symbol 1651 MovieClip {MovingPreview} [MovingPreview]Uses:1633 1648 1650Used by:1765
Symbol 1652 EditableTextUses:270Used by:1653
Symbol 1653 MovieClip {ToolTip} [ToolTip]Uses:382 1652
Symbol 1654 BitmapUsed by:1655
Symbol 1655 GraphicUses:1654Used by:1668
Symbol 1656 GraphicUses:103Used by:1657
Symbol 1657 MovieClipUses:1656Used by:1668
Symbol 1658 GraphicUsed by:1668
Symbol 1659 TextUses:270Used by:1661
Symbol 1660 TextUses:270Used by:1661
Symbol 1661 ButtonUses:1033 1659 1660 1032 272Used by:1668
Symbol 1662 TextUses:270Used by:1664
Symbol 1663 TextUses:270Used by:1664
Symbol 1664 ButtonUses:1033 1662 1663 1032 272Used by:1668
Symbol 1665 TextUses:270Used by:1667
Symbol 1666 TextUses:270Used by:1667
Symbol 1667 ButtonUses:1033 1665 1666 1032 272Used by:1668
Symbol 1668 MovieClip {WindowSprite} [WindowSprite]Uses:1655 1657 1658 1661 1664 1667 1033 1021 1026
Symbol 1669 GraphicUsed by:1693 1751 1772 1787
Symbol 1670 TextUses:1597Used by:1693
Symbol 1671 TextUses:1597Used by:1693
Symbol 1672 TextUses:1597Used by:1693
Symbol 1673 GraphicUsed by:1674
Symbol 1674 MovieClip {CheckBox_upIcon} [CheckBox_upIcon]Uses:1673Used by:1689
Symbol 1675 GraphicUsed by:1676 1685
Symbol 1676 MovieClip {CheckBox_overIcon} [CheckBox_overIcon]Uses:1675Used by:1689
Symbol 1677 GraphicUsed by:1678 1686
Symbol 1678 MovieClip {CheckBox_downIcon} [CheckBox_downIcon]Uses:1677Used by:1689
Symbol 1679 GraphicUsed by:1680
Symbol 1680 MovieClip {CheckBox_disabledIcon} [CheckBox_disabledIcon]Uses:1679Used by:1689
Symbol 1681 GraphicUsed by:1684
Symbol 1682 GraphicUsed by:1683
Symbol 1683 MovieClipUses:1682Used by:1684 1685 1686 1688
Symbol 1684 MovieClip {CheckBox_selectedUpIcon} [CheckBox_selectedUpIcon]Uses:1681 1683Used by:1689
Symbol 1685 MovieClip {CheckBox_selectedOverIcon} [CheckBox_selectedOverIcon]Uses:1675 1683Used by:1689
Symbol 1686 MovieClip {CheckBox_selectedDownIcon} [CheckBox_selectedDownIcon]Uses:1677 1683Used by:1689
Symbol 1687 GraphicUsed by:1688
Symbol 1688 MovieClip {CheckBox_selectedDisabledIcon} [CheckBox_selectedDisabledIcon]Uses:1687 1683Used by:1689
Symbol 1689 MovieClip {fl.controls.CheckBox} [fl.controls.CheckBox]Uses:1042 1043 1674 1676 1678 1680 1684 1685 1686 1688 1049Used by:1693 1751
Symbol 1690 MovieClip {TextInput_disabledSkin} [TextInput_disabledSkin]Uses:1044Used by:1692
Symbol 1691 MovieClip {TextInput_upSkin} [TextInput_upSkin]Uses:1046Used by:1692
Symbol 1692 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]Uses:1042 1043 1690 1691 1049Used by:1693 1726 1743 1750
Symbol 1693 MovieClip {ObjectPanelSprite} [ObjectPanelSprite]Uses:1669 1670 1671 1672 1689 1692 1098
Symbol 1694 GraphicUsed by:1695
Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite]Uses:1604 1694
Symbol 1696 TextUses:1597Used by:1751
Symbol 1697 GraphicUsed by:1698
Symbol 1698 MovieClip {ComboBox_upSkin} [ComboBox_upSkin]Uses:1697Used by:1726
Symbol 1699 GraphicUsed by:1700
Symbol 1700 MovieClip {ComboBox_disabledSkin} [ComboBox_disabledSkin]Uses:1699Used by:1726
Symbol 1701 GraphicUsed by:1702
Symbol 1702 MovieClip {ComboBox_overSkin} [ComboBox_overSkin]Uses:1701Used by:1726
Symbol 1703 GraphicUsed by:1704
Symbol 1704 MovieClip {ComboBox_downSkin} [ComboBox_downSkin]Uses:1703Used by:1726
Symbol 1705 GraphicUsed by:1706
Symbol 1706 MovieClip {List_skin} [List_skin]Uses:1705Used by:1725
Symbol 1707 GraphicUsed by:1708
Symbol 1708 MovieClip {CellRenderer_upSkin} [CellRenderer_upSkin]Uses:1707Used by:1723
Symbol 1709 GraphicUsed by:1710
Symbol 1710 MovieClip {CellRenderer_disabledSkin} [CellRenderer_disabledSkin]Uses:1709Used by:1723
Symbol 1711 GraphicUsed by:1712
Symbol 1712 MovieClip {CellRenderer_downSkin} [CellRenderer_downSkin]Uses:1711Used by:1723
Symbol 1713 GraphicUsed by:1714
Symbol 1714 MovieClip {CellRenderer_overSkin} [CellRenderer_overSkin]Uses:1713Used by:1723
Symbol 1715 GraphicUsed by:1716
Symbol 1716 MovieClip {CellRenderer_selectedDisabledSkin} [CellRenderer_selectedDisabledSkin]Uses:1715Used by:1723
Symbol 1717 GraphicUsed by:1718
Symbol 1718 MovieClip {CellRenderer_selectedDownSkin} [CellRenderer_selectedDownSkin]Uses:1717Used by:1723
Symbol 1719 GraphicUsed by:1720
Symbol 1720 MovieClip {CellRenderer_selectedOverSkin} [CellRenderer_selectedOverSkin]Uses:1719Used by:1723
Symbol 1721 GraphicUsed by:1722
Symbol 1722 MovieClip {CellRenderer_selectedUpSkin} [CellRenderer_selectedUpSkin]Uses:1721Used by:1723
Symbol 1723 MovieClip {fl.controls.listClasses.CellRenderer} [fl.controls.listClasses.CellRenderer]Uses:1708 1043 1710 1712 1714 1716 1718 1720 1722Used by:1725
Symbol 1724 MovieClip {fl.controls.ScrollBar} [fl.controls.ScrollBar]Uses:1051 1043 1049 1055 1057 1059 1061 1063 1065 1067 1069 1071 1073 1075 1077Used by:1725
Symbol 1725 MovieClip {fl.controls.List} [fl.controls.List]Uses:1042 1043 1706 1723 1049 1724Used by:1726
Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]Uses:1042 1043 1049 1698 1700 1702 1704 1692 1725Used by:1751 1767 1787
Symbol 1727 GraphicUsed by:1728
Symbol 1728 MovieClip {NumericStepperDownArrow_disabledSkin} [NumericStepperDownArrow_disabledSkin]Uses:1727 1053Used by:1743
Symbol 1729 GraphicUsed by:1730
Symbol 1730 MovieClip {NumericStepperDownArrow_downSkin} [NumericStepperDownArrow_downSkin]Uses:1729 1053Used by:1743
Symbol 1731 GraphicUsed by:1732
Symbol 1732 MovieClip {NumericStepperDownArrow_overSkin} [NumericStepperDownArrow_overSkin]Uses:1731 1053Used by:1743
Symbol 1733 GraphicUsed by:1734
Symbol 1734 MovieClip {NumericStepperDownArrow_upSkin} [NumericStepperDownArrow_upSkin]Uses:1733 1053Used by:1743
Symbol 1735 GraphicUsed by:1736
Symbol 1736 MovieClip {NumericStepperUpArrow_disabledSkin} [NumericStepperUpArrow_disabledSkin]Uses:1735 1053Used by:1743
Symbol 1737 GraphicUsed by:1738
Symbol 1738 MovieClip {NumericStepperUpArrow_downSkin} [NumericStepperUpArrow_downSkin]Uses:1737 1053Used by:1743
Symbol 1739 GraphicUsed by:1740
Symbol 1740 MovieClip {NumericStepperUpArrow_overSkin} [NumericStepperUpArrow_overSkin]Uses:1739 1053Used by:1743
Symbol 1741 GraphicUsed by:1742
Symbol 1742 MovieClip {NumericStepperUpArrow_upSkin} [NumericStepperUpArrow_upSkin]Uses:1741 1053Used by:1743
Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]Uses:1042 1043 1049 1728 1730 1732 1734 1736 1738 1740 1742 1692Used by:1751 1767
Symbol 1744 TextUses:1597Used by:1751
Symbol 1745 TextUses:1597Used by:1751 1787
Symbol 1746 TextUses:1597Used by:1751
Symbol 1747 TextUses:1597Used by:1751
Symbol 1748 TextUses:1597Used by:1750
Symbol 1749 TextUses:1597Used by:1750
Symbol 1750 MovieClip {Editor_fla.options_90} [Editor_fla.options_90]Uses:1748 1749 1692 1098Used by:1751
Symbol 1751 MovieClip {EnemyPanelSprite} [EnemyPanelSprite]Uses:1669 1696 1726 1743 1744 1745 1746 1747 1689 1750 805
Symbol 1752 GraphicUsed by:1767
Symbol 1753 GraphicUsed by:1754
Symbol 1754 MovieClipUses:1753Used by:1767
Symbol 1755 GraphicUsed by:1767
Symbol 1756 TextUses:1597Used by:1767
Symbol 1757 TextUses:1597Used by:1767
Symbol 1758 TextUses:1597Used by:1767
Symbol 1759 TextUses:1597Used by:1767
Symbol 1760 TextUses:1597Used by:1767
Symbol 1761 GraphicUsed by:1762
Symbol 1762 MovieClipUses:1761Used by:1767
Symbol 1763 TextUses:1597Used by:1767
Symbol 1764 GraphicUsed by:1765
Symbol 1765 MovieClip {BlockType} [BlockType]Uses:1764 1633 1646 1651 1635 1631Used by:1767
Symbol 1766 TextUses:1597Used by:1767
Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite]Uses:1752 1754 1755 1726 1743 1600 1756 1757 1758 1759 1760 1762 1763 1765 1766
Symbol 1768 TextUses:1597Used by:1772
Symbol 1769 TextUses:1597Used by:1772
Symbol 1770 GraphicUsed by:1771
Symbol 1771 MovieClipUses:1770Used by:1772
Symbol 1772 MovieClip {DecoPanelSprite} [DecoPanelSprite]Uses:1669 1768 1769 1771
Symbol 1773 TextUses:1597Used by:1787
Symbol 1774 GraphicUsed by:1786
Symbol 1775 GraphicUsed by:1779
Symbol 1776 GraphicUsed by:1779
Symbol 1777 GraphicUsed by:1779
Symbol 1778 GraphicUsed by:1779
Symbol 1779 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76]Uses:1775 1776 1777 1778Used by:1786
Symbol 1780 GraphicUsed by:1784
Symbol 1781 GraphicUsed by:1784
Symbol 1782 GraphicUsed by:1784
Symbol 1783 GraphicUsed by:1784
Symbol 1784 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77]Uses:1780 1781 1782 1783Used by:1786
Symbol 1785 GraphicUsed by:1786
Symbol 1786 MovieClip {Doors} [Doors]Uses:1774 1779 1784 1785Used by:1787
Symbol 1787 MovieClip {DoorPanelSprite} [DoorPanelSprite]Uses:1669 1726 1745 1773 1786

Instance Names

"bg"Symbol 16 MovieClip {mcBannedSign} [mcBannedSign] Frame 1Symbol 13 MovieClip
"clip_1"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 78 MovieClip
"clip_3"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 81 MovieClip
"clip_2"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 84 MovieClip
"clip_4"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 87 MovieClip
"clip_5"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 90 MovieClip
"clip_6"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 93 MovieClip
"clip_9"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 96 MovieClip
"clip_11"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 99 MovieClip
"clip_7"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 100 MovieClip
"clip_10"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 101 MovieClip
"clip_8"Symbol 112 MovieClip {Background} [Background] Frame 1Symbol 102 MovieClip
"size"Symbol 129 MovieClip {DoorSpriteH} [DoorSpriteH] Frame 1Symbol 114 MovieClip
"dnColor"Symbol 129 MovieClip {DoorSpriteH} [DoorSpriteH] Frame 1Symbol 123 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21]
"upColor"Symbol 129 MovieClip {DoorSpriteH} [DoorSpriteH] Frame 1Symbol 128 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22]
"size"Symbol 130 MovieClip {DoorSpriteV} [DoorSpriteV] Frame 1Symbol 114 MovieClip
"dnColor"Symbol 130 MovieClip {DoorSpriteV} [DoorSpriteV] Frame 1Symbol 123 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21]
"upColor"Symbol 130 MovieClip {DoorSpriteV} [DoorSpriteV] Frame 1Symbol 128 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22]
"thorns"Symbol 194 MovieClip {EnemySprite} [EnemySprite] Frame 1Symbol 187 MovieClip
"thorns"Symbol 194 MovieClip {EnemySprite} [EnemySprite] Frame 2Symbol 190 MovieClip
"thorns"Symbol 194 MovieClip {EnemySprite} [EnemySprite] Frame 3Symbol 193 MovieClip
"part_6"Symbol 219 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 198 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3]
"part_5"Symbol 219 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 202 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4]
"part_4"Symbol 219 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 206 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5]
"part_3"Symbol 219 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 210 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6]
"part_2"Symbol 219 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 214 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7]
"part_1"Symbol 219 MovieClip {EnemyBlowing} [EnemyBlowing] Frame 1Symbol 218 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8]
"time"Symbol 263 MovieClip {TimeoutSprite} [TimeoutSprite] Frame 1Symbol 259 EditableText
"btnMainMenu"Symbol 373 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 273 Button
"preview"Symbol 373 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 360 MovieClip {Menu_fla.Preview_69} [Menu_fla.Preview_69]
"fldLevel"Symbol 373 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 361 EditableText
"fldTotal"Symbol 373 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 362 EditableText
"fldScore"Symbol 373 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 363 EditableText
"stars"Symbol 373 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 368 MovieClip {Menu_fla.Stars_Big_70} [Menu_fla.Stars_Big_70]
"btnKing"Symbol 373 MovieClip {LevelMenuSprite} [LevelMenuSprite] Frame 1Symbol 372 Button
"btnKing"Symbol 386 MovieClip {FinalWindowSprite} [FinalWindowSprite] Frame 1Symbol 372 Button
"fldTotal"Symbol 386 MovieClip {FinalWindowSprite} [FinalWindowSprite] Frame 1Symbol 380 EditableText
"btnSubmit"Symbol 386 MovieClip {FinalWindowSprite} [FinalWindowSprite] Frame 1Symbol 385 Button
"size"Symbol 402 MovieClip {DoorPreview} [DoorPreview] Frame 1Symbol 401 MovieClip {Tiles_fla.Sizecopy_35} [Tiles_fla.Sizecopy_35]
"dnColor"Symbol 402 MovieClip {DoorPreview} [DoorPreview] Frame 1Symbol 123 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21]
"upColor"Symbol 402 MovieClip {DoorPreview} [DoorPreview] Frame 1Symbol 128 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22]
"color"Symbol 801 MovieClip {KeySprite} [KeySprite] Frame 1Symbol 800 MovieClip {Items_fla.Key_2} [Items_fla.Key_2]
"LU"Symbol 922 MovieClip {main.field.Block} [main.field.Block] Frame 1Symbol 837 MovieClip {Tiles_fla.LU_Block_30} [Tiles_fla.LU_Block_30]
"LD"Symbol 922 MovieClip {main.field.Block} [main.field.Block] Frame 1Symbol 865 MovieClip {Tiles_fla.LD_Block_31} [Tiles_fla.LD_Block_31]
"RD"Symbol 922 MovieClip {main.field.Block} [main.field.Block] Frame 1Symbol 893 MovieClip {Tiles_fla.RD_Block_32} [Tiles_fla.RD_Block_32]
"RU"Symbol 922 MovieClip {main.field.Block} [main.field.Block] Frame 1Symbol 921 MovieClip {Tiles_fla.RU_Block_33} [Tiles_fla.RU_Block_33]
"btnMainMenu"Symbol 969 MovieClip {CreditsSprite} [CreditsSprite] Frame 1Symbol 952 Button
"btnKing"Symbol 969 MovieClip {CreditsSprite} [CreditsSprite] Frame 1Symbol 372 Button
"btnNext"Symbol 979 MovieClip {StatWindowSprite} [StatWindowSprite] Frame 1Symbol 973 Button
"btnSelect"Symbol 979 MovieClip {StatWindowSprite} [StatWindowSprite] Frame 1Symbol 976 Button
"statistic"Symbol 979 MovieClip {StatWindowSprite} [StatWindowSprite] Frame 1Symbol 977 EditableText
"btnKing"Symbol 979 MovieClip {StatWindowSprite} [StatWindowSprite] Frame 1Symbol 372 Button
"btnAgain"Symbol 990 MovieClip {BackWindowSprite} [BackWindowSprite] Frame 1Symbol 985 Button
"btnEditor"Symbol 990 MovieClip {BackWindowSprite} [BackWindowSprite] Frame 1Symbol 988 Button
"btnStartGame"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1008 Button
"btnHiScores"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1010 Button
"btnMoreGames"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1012 Button
"btnCredits"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1014 Button
"btnEditor"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1016 Button
"btnMusic"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1021 Button
"btnSound"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1026 Button
"btnKing"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 372 Button
"btnHost"Symbol 1029 MovieClip {MainMenuSprite} [MainMenuSprite] Frame 1Symbol 1028 Button
"levelNum"Symbol 1039 MovieClip {GamePanelSprite} [GamePanelSprite] Frame 1Symbol 1036 EditableText
"time"Symbol 1039 MovieClip {GamePanelSprite} [GamePanelSprite] Frame 1Symbol 1038 EditableText
"btnKing"Symbol 1039 MovieClip {GamePanelSprite} [GamePanelSprite] Frame 1Symbol 372 Button
"textArea"Symbol 1099 MovieClip {CodePanelSprite} [CodePanelSprite] Frame 1Symbol 1079 MovieClip {fl.controls.TextArea} [fl.controls.TextArea]
"btnClose"Symbol 1099 MovieClip {CodePanelSprite} [CodePanelSprite] Frame 1Symbol 1098 MovieClip {fl.controls.Button} [fl.controls.Button]
"LUHand"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1544 MovieClip
"LDHand"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1546 MovieClip
"LULeg"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1548 MovieClip
"Head"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1550 MovieClip
"UPBody"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1552 MovieClip
"DNBody"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1554 MovieClip
"LDLeg"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1556 MovieClip
"RULeg"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1558 MovieClip
"RUHand"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1560 MovieClip
"RDHand"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1562 MovieClip
"RDLeg"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1564 MovieClip
"jRUHand"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"jLUHand"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"jLDHand"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"jRDHand"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"jHead"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"jHer"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"jLDLeg"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"jRDLeg"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"jBody"Symbol 1566 MovieClip {RagdollR} [RagdollR] Frame 1Symbol 1565 MovieClip
"LUHand"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1544 MovieClip
"LDHand"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1546 MovieClip
"LULeg"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1548 MovieClip
"Head"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1550 MovieClip
"UPBody"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1552 MovieClip
"DNBody"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1554 MovieClip
"LDLeg"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1556 MovieClip
"RULeg"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1558 MovieClip
"RUHand"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1560 MovieClip
"RDHand"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1562 MovieClip
"RDLeg"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1564 MovieClip
"jRUHand"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"jLUHand"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"jLDHand"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"jRDHand"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"jHead"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"jHer"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"jLDLeg"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"jRDLeg"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"jBody"Symbol 1567 MovieClip {RagdollL} [RagdollL] Frame 1Symbol 1565 MovieClip
"anim"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 1Symbol 1588 MovieClip
"anim"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 8Symbol 1589 MovieClip {Chars_fla.Hero_Run_40} [Chars_fla.Hero_Run_40]
"anim"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 15Symbol 1590 MovieClip
"anim"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 22Symbol 1567 MovieClip {RagdollL} [RagdollL]
"anim"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 30Symbol 1566 MovieClip {RagdollR} [RagdollR]
"btnBlock_0"Symbol 1610 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1604 Button
"btnBlock_1"Symbol 1610 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1604 Button
"btnBlock_2"Symbol 1610 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1604 Button
"btnBlock_4"Symbol 1610 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1604 Button
"btnBlock_3"Symbol 1610 MovieClip {BlockPanelSprite} [BlockPanelSprite] Frame 1Symbol 1604 Button
"btnGetMap"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1600 Button
"btnCursor"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1604 Button
"btnEraser"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1604 Button
"btnBlock"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1604 Button
"btnThorns"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1604 Button
"btnDeco"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1604 Button
"btnEnemy"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1604 Button
"btnTest"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1607 Button
"btnDoors"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1604 Button
"btnBonus"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1604 Button
"panel"Symbol 1613 MovieClip {EditorSprite} [EditorSprite] Frame 1Symbol 1611 MovieClip
"btnAgain"Symbol 1618 MovieClip {GameOverSprite} [GameOverSprite] Frame 1Symbol 985 Button
"btnSolution"Symbol 1618 MovieClip {GameOverSprite} [GameOverSprite] Frame 1Symbol 1617 Button
"num"Symbol 1629 MovieClip {LevelButtonSprite} [LevelButtonSprite] Frame 1Symbol 1619 EditableText
"stars"Symbol 1629 MovieClip {LevelButtonSprite} [LevelButtonSprite] Frame 1Symbol 1624 MovieClip {Menu_fla.Stars_Mini_41} [Menu_fla.Stars_Mini_41]
"btn"Symbol 1629 MovieClip {LevelButtonSprite} [LevelButtonSprite] Frame 1Symbol 1627 Button
"border"Symbol 1639 MovieClip {BlockButtonSprite} [BlockButtonSprite] Frame 1Symbol 1637 MovieClip
"amount"Symbol 1639 MovieClip {BlockButtonSprite} [BlockButtonSprite] Frame 1Symbol 1638 EditableText
"caption"Symbol 1653 MovieClip {ToolTip} [ToolTip] Frame 1Symbol 1652 EditableText
"btnEditor"Symbol 1668 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1661 Button
"btnLevels"Symbol 1668 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1664 Button
"btnRestart"Symbol 1668 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1667 Button
"switchBack"Symbol 1668 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1033 MovieClip
"btnMusic"Symbol 1668 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1021 Button
"btnSound"Symbol 1668 MovieClip {WindowSprite} [WindowSprite] Frame 1Symbol 1026 Button
"flip"Symbol 1693 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1689 MovieClip {fl.controls.CheckBox} [fl.controls.CheckBox]
"xPos"Symbol 1693 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1692 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]
"yPos"Symbol 1693 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1692 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]
"btnRemove"Symbol 1693 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1098 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnToFront"Symbol 1693 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1098 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnToBack"Symbol 1693 MovieClip {ObjectPanelSprite} [ObjectPanelSprite] Frame 1Symbol 1098 MovieClip {fl.controls.Button} [fl.controls.Button]
"btnThorn_1"Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1604 Button
"btnThorn_5"Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1604 Button
"btnThorn_2"Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1604 Button
"btnThorn_6"Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1604 Button
"btnThorn_4"Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1604 Button
"btnThorn_8"Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1604 Button
"btnThorn_3"Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1604 Button
"btnThorn_7"Symbol 1695 MovieClip {ThornPanelSprite} [ThornPanelSprite] Frame 1Symbol 1604 Button
"xPos"Symbol 1750 MovieClip {Editor_fla.options_90} [Editor_fla.options_90] Frame 1Symbol 1692 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]
"yPos"Symbol 1750 MovieClip {Editor_fla.options_90} [Editor_fla.options_90] Frame 1Symbol 1692 MovieClip {fl.controls.TextInput} [fl.controls.TextInput]
"btnRemove"Symbol 1750 MovieClip {Editor_fla.options_90} [Editor_fla.options_90] Frame 1Symbol 1098 MovieClip {fl.controls.Button} [fl.controls.Button]
"color"Symbol 1751 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"speed"Symbol 1751 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"jump"Symbol 1751 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"attack"Symbol 1751 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1689 MovieClip {fl.controls.CheckBox} [fl.controls.CheckBox]
"wait"Symbol 1751 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1689 MovieClip {fl.controls.CheckBox} [fl.controls.CheckBox]
"options"Symbol 1751 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 1750 MovieClip {Editor_fla.options_90} [Editor_fla.options_90]
"preview"Symbol 1751 MovieClip {EnemyPanelSprite} [EnemyPanelSprite] Frame 1Symbol 805 MovieClip {EnemyPreview} [EnemyPreview]
"block"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 2Symbol 1633 MovieClip {SimplePreview} [SimplePreview]
"block"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 3Symbol 1646 MovieClip {TimeoutPreview} [TimeoutPreview]
"block"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 4Symbol 1651 MovieClip {MovingPreview} [MovingPreview]
"block"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 5Symbol 1635 MovieClip {ReplacePreview} [ReplacePreview]
"block"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 6Symbol 1631 MovieClip {ThornsPreview} [ThornsPreview]
"type_4"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"type_3"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"type_2"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"type_1"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"options_4"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"options_3"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"options_2"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"options_1"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"levelTime"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"amount_1"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"amount_2"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"amount_3"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"amount_4"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"levelTrack"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1743 MovieClip {fl.controls.NumericStepper} [fl.controls.NumericStepper]
"btnSave"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1600 Button
"preview_1"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1765 MovieClip {BlockType} [BlockType]
"preview_2"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1765 MovieClip {BlockType} [BlockType]
"preview_3"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1765 MovieClip {BlockType} [BlockType]
"preview_4"Symbol 1767 MovieClip {SetupPanelSprite} [SetupPanelSprite] Frame 1Symbol 1765 MovieClip {BlockType} [BlockType]
"preview"Symbol 1772 MovieClip {DecoPanelSprite} [DecoPanelSprite] Frame 1Symbol 1771 MovieClip
"dnColor"Symbol 1786 MovieClip {Doors} [Doors] Frame 1Symbol 1779 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76]
"upColor"Symbol 1786 MovieClip {Doors} [Doors] Frame 1Symbol 1784 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77]
"color"Symbol 1787 MovieClip {DoorPanelSprite} [DoorPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"orient"Symbol 1787 MovieClip {DoorPanelSprite} [DoorPanelSprite] Frame 1Symbol 1726 MovieClip {fl.controls.ComboBox} [fl.controls.ComboBox]
"preview"Symbol 1787 MovieClip {DoorPanelSprite} [DoorPanelSprite] Frame 1Symbol 1786 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 7 as "ferryBlue"
ExportAssets (56)Timeline Frame 1Symbol 9 as "mcFerryLine"
ExportAssets (56)Timeline Frame 1Symbol 11 as "mcWaterRing"
ExportAssets (56)Timeline Frame 1Symbol 16 as "mcBannedSign"
ExportAssets (56)Timeline Frame 1Symbol 18 as "mcLogoMask"
ExportAssets (56)Timeline Frame 1Symbol 21 as "mcOtherGames"
ExportAssets (56)Timeline Frame 1Symbol 23 as "mcCrownMask"
ExportAssets (56)Timeline Frame 1Symbol 26 as "mcLogoHolder"
ExportAssets (56)Timeline Frame 1Symbol 27 as "sfxBounce"
ExportAssets (56)Timeline Frame 1Symbol 32 as "ferryGreen"
ExportAssets (56)Timeline Frame 1Symbol 37 as "ferryRed"
ExportAssets (56)Timeline Frame 1Symbol 40 as "mcPlay"
ExportAssets (56)Timeline Frame 1Symbol 41 as "sfxBell"
ExportAssets (56)Timeline Frame 2Symbol 60 as "SigmaIntro"
ExportAssets (56)Timeline Frame 2Symbol 62 as "main.chars.HeroPreview"
ExportAssets (56)Timeline Frame 2Symbol 112 as "Background"
ExportAssets (56)Timeline Frame 2Symbol 129 as "DoorSpriteH"
ExportAssets (56)Timeline Frame 2Symbol 130 as "DoorSpriteV"
ExportAssets (56)Timeline Frame 2Symbol 182 as "ReplaceSprite"
ExportAssets (56)Timeline Frame 2Symbol 194 as "EnemySprite"
ExportAssets (56)Timeline Frame 2Symbol 219 as "EnemyBlowing"
ExportAssets (56)Timeline Frame 2Symbol 255 as "CoinSprite"
ExportAssets (56)Timeline Frame 2Symbol 257 as "ExitSprite"
ExportAssets (56)Timeline Frame 2Symbol 263 as "TimeoutSprite"
ExportAssets (56)Timeline Frame 2Symbol 57 as "Intro_fla.LightMove_7"
ExportAssets (56)Timeline Frame 2Symbol 373 as "LevelMenuSprite"
ExportAssets (56)Timeline Frame 2Symbol 378 as "MovingSprite"
ExportAssets (56)Timeline Frame 2Symbol 386 as "FinalWindowSprite"
ExportAssets (56)Timeline Frame 2Symbol 388 as "Border"
ExportAssets (56)Timeline Frame 2Symbol 395 as "Thorns"
ExportAssets (56)Timeline Frame 2Symbol 402 as "DoorPreview"
ExportAssets (56)Timeline Frame 2Symbol 132 as "BasicSprite"
ExportAssets (56)Timeline Frame 2Symbol 801 as "KeySprite"
ExportAssets (56)Timeline Frame 2Symbol 805 as "EnemyPreview"
ExportAssets (56)Timeline Frame 2Symbol 807 as "Erase"
ExportAssets (56)Timeline Frame 2Symbol 922 as "main.field.Block"
ExportAssets (56)Timeline Frame 2Symbol 928 as "ThornsSprite"
ExportAssets (56)Timeline Frame 2Symbol 939 as "Thorns_800"
ExportAssets (56)Timeline Frame 2Symbol 942 as "Thorns_1000"
ExportAssets (56)Timeline Frame 2Symbol 945 as "Thorns_400"
ExportAssets (56)Timeline Frame 2Symbol 948 as "Thorns_600"
ExportAssets (56)Timeline Frame 2Symbol 969 as "CreditsSprite"
ExportAssets (56)Timeline Frame 2Symbol 979 as "StatWindowSprite"
ExportAssets (56)Timeline Frame 2Symbol 990 as "BackWindowSprite"
ExportAssets (56)Timeline Frame 2Symbol 991 as "sndGameOver"
ExportAssets (56)Timeline Frame 2Symbol 992 as "sndScream"
ExportAssets (56)Timeline Frame 2Symbol 993 as "sndFinish"
ExportAssets (56)Timeline Frame 2Symbol 994 as "sndKick"
ExportAssets (56)Timeline Frame 2Symbol 995 as "sndBonus"
ExportAssets (56)Timeline Frame 2Symbol 996 as "sndThornsShow"
ExportAssets (56)Timeline Frame 2Symbol 997 as "sndDead"
ExportAssets (56)Timeline Frame 2Symbol 998 as "sndStep"
ExportAssets (56)Timeline Frame 2Symbol 999 as "sndIntro"
ExportAssets (56)Timeline Frame 2Symbol 1000 as "sndJump"
ExportAssets (56)Timeline Frame 2Symbol 1001 as "sndDoor"
ExportAssets (56)Timeline Frame 2Symbol 1002 as "sndThornsHide"
ExportAssets (56)Timeline Frame 2Symbol 1003 as "sndBlowing"
ExportAssets (56)Timeline Frame 2Symbol 1004 as "sndCrumble"
ExportAssets (56)Timeline Frame 2Symbol 1029 as "MainMenuSprite"
ExportAssets (56)Timeline Frame 2Symbol 1039 as "GamePanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1099 as "CodePanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1101 as "Sky"
ExportAssets (56)Timeline Frame 2Symbol 1116 as "Tutorial_2"
ExportAssets (56)Timeline Frame 2Symbol 1118 as "Cloud_2"
ExportAssets (56)Timeline Frame 2Symbol 1120 as "Back_4"
ExportAssets (56)Timeline Frame 2Symbol 1122 as "Cloud_3"
ExportAssets (56)Timeline Frame 2Symbol 1124 as "Back_5"
ExportAssets (56)Timeline Frame 2Symbol 1136 as "Tutorial_1"
ExportAssets (56)Timeline Frame 2Symbol 1138 as "Cloud_4"
ExportAssets (56)Timeline Frame 2Symbol 1145 as "Tutorial_4"
ExportAssets (56)Timeline Frame 2Symbol 1147 as "Cloud_5"
ExportAssets (56)Timeline Frame 2Symbol 1153 as "Tutorial_3"
ExportAssets (56)Timeline Frame 2Symbol 1155 as "Cloud_6"
ExportAssets (56)Timeline Frame 2Symbol 1157 as "Back_1"
ExportAssets (56)Timeline Frame 2Symbol 1163 as "Tutorial_5"
ExportAssets (56)Timeline Frame 2Symbol 1165 as "Back_2"
ExportAssets (56)Timeline Frame 2Symbol 1167 as "Back_3"
ExportAssets (56)Timeline Frame 2Symbol 1169 as "Cloud_1"
ExportAssets (56)Timeline Frame 2Symbol 1514 as "Sun"
ExportAssets (56)Timeline Frame 2Symbol 1516 as "Tree_2"
ExportAssets (56)Timeline Frame 2Symbol 1518 as "Tree_1"
ExportAssets (56)Timeline Frame 2Symbol 1520 as "Bush_2"
ExportAssets (56)Timeline Frame 2Symbol 1522 as "Tree_4"
ExportAssets (56)Timeline Frame 2Symbol 1524 as "Tree_3"
ExportAssets (56)Timeline Frame 2Symbol 1526 as "Bush_1"
ExportAssets (56)Timeline Frame 2Symbol 1528 as "Bush_4"
ExportAssets (56)Timeline Frame 2Symbol 1530 as "Bush_3"
ExportAssets (56)Timeline Frame 2Symbol 1532 as "Tree_5"
ExportAssets (56)Timeline Frame 2Symbol 1534 as "Bush_6"
ExportAssets (56)Timeline Frame 2Symbol 1536 as "Bush_5"
ExportAssets (56)Timeline Frame 2Symbol 1538 as "Palm_3"
ExportAssets (56)Timeline Frame 2Symbol 1540 as "Palm_2"
ExportAssets (56)Timeline Frame 2Symbol 1542 as "Palm_1"
ExportAssets (56)Timeline Frame 2Symbol 1566 as "RagdollR"
ExportAssets (56)Timeline Frame 2Symbol 1567 as "RagdollL"
ExportAssets (56)Timeline Frame 2Symbol 1591 as "HeroSprite"
ExportAssets (56)Timeline Frame 2Symbol 1592 as "main.effects.Music_Track_1"
ExportAssets (56)Timeline Frame 2Symbol 1593 as "main.effects.Music_Track_2"
ExportAssets (56)Timeline Frame 2Symbol 1594 as "main.effects.Music_Track_3"
ExportAssets (56)Timeline Frame 2Symbol 1613 as "EditorSprite"
ExportAssets (56)Timeline Frame 2Symbol 1618 as "GameOverSprite"
ExportAssets (56)Timeline Frame 2Symbol 123 as "Tiles_fla.Lock_Down_21"
ExportAssets (56)Timeline Frame 2Symbol 128 as "Tiles_fla.Lock_Up_22"
ExportAssets (56)Timeline Frame 2Symbol 181 as "BlockExplode"
ExportAssets (56)Timeline Frame 2Symbol 214 as "Chars_fla.Part_2_7"
ExportAssets (56)Timeline Frame 2Symbol 210 as "Chars_fla.Part_3_6"
ExportAssets (56)Timeline Frame 2Symbol 198 as "Chars_fla.Part_6_3"
ExportAssets (56)Timeline Frame 2Symbol 202 as "Chars_fla.Part_5_4"
ExportAssets (56)Timeline Frame 2Symbol 206 as "Chars_fla.Part_4_5"
ExportAssets (56)Timeline Frame 2Symbol 218 as "Chars_fla.Part_1_8"
ExportAssets (56)Timeline Frame 2Symbol 262 as "Tiles_fla.BlockCrumble_with_number_7"
ExportAssets (56)Timeline Frame 2Symbol 368 as "Menu_fla.Stars_Big_70"
ExportAssets (56)Timeline Frame 2Symbol 360 as "Menu_fla.Preview_69"
ExportAssets (56)Timeline Frame 2Symbol 1629 as "LevelButtonSprite"
ExportAssets (56)Timeline Frame 2Symbol 401 as "Tiles_fla.Sizecopy_35"
ExportAssets (56)Timeline Frame 2Symbol 1631 as "ThornsPreview"
ExportAssets (56)Timeline Frame 2Symbol 1633 as "SimplePreview"
ExportAssets (56)Timeline Frame 2Symbol 1635 as "ReplacePreview"
ExportAssets (56)Timeline Frame 2Symbol 1639 as "BlockButtonSprite"
ExportAssets (56)Timeline Frame 2Symbol 1646 as "TimeoutPreview"
ExportAssets (56)Timeline Frame 2Symbol 1651 as "MovingPreview"
ExportAssets (56)Timeline Frame 2Symbol 1653 as "ToolTip"
ExportAssets (56)Timeline Frame 2Symbol 800 as "Items_fla.Key_2"
ExportAssets (56)Timeline Frame 2Symbol 893 as "Tiles_fla.RD_Block_32"
ExportAssets (56)Timeline Frame 2Symbol 865 as "Tiles_fla.LD_Block_31"
ExportAssets (56)Timeline Frame 2Symbol 837 as "Tiles_fla.LU_Block_30"
ExportAssets (56)Timeline Frame 2Symbol 921 as "Tiles_fla.RU_Block_33"
ExportAssets (56)Timeline Frame 2Symbol 1079 as "fl.controls.TextArea"
ExportAssets (56)Timeline Frame 2Symbol 1098 as "fl.controls.Button"
ExportAssets (56)Timeline Frame 2Symbol 1668 as "WindowSprite"
ExportAssets (56)Timeline Frame 2Symbol 1589 as "Chars_fla.Hero_Run_40"
ExportAssets (56)Timeline Frame 2Symbol 1693 as "ObjectPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1695 as "ThornPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1751 as "EnemyPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1610 as "BlockPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1767 as "SetupPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1726 as "fl.controls.ComboBox"
ExportAssets (56)Timeline Frame 2Symbol 1772 as "DecoPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1787 as "DoorPanelSprite"
ExportAssets (56)Timeline Frame 2Symbol 1624 as "Menu_fla.Stars_Mini_41"
ExportAssets (56)Timeline Frame 2Symbol 1049 as "focusRectSkin"
ExportAssets (56)Timeline Frame 2Symbol 1724 as "fl.controls.ScrollBar"
ExportAssets (56)Timeline Frame 2Symbol 1047 as "TextArea_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1045 as "TextArea_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1043 as "fl.core.ComponentShim"
ExportAssets (56)Timeline Frame 2Symbol 1078 as "fl.controls.UIScrollBar"
ExportAssets (56)Timeline Frame 2Symbol 1081 as "Button_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1097 as "Button_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1091 as "Button_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1095 as "Button_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1085 as "Button_emphasizedSkin"
ExportAssets (56)Timeline Frame 2Symbol 1089 as "Button_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1087 as "Button_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1083 as "Button_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1093 as "Button_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1692 as "fl.controls.TextInput"
ExportAssets (56)Timeline Frame 2Symbol 1689 as "fl.controls.CheckBox"
ExportAssets (56)Timeline Frame 2Symbol 1750 as "Editor_fla.options_90"
ExportAssets (56)Timeline Frame 2Symbol 1743 as "fl.controls.NumericStepper"
ExportAssets (56)Timeline Frame 2Symbol 1765 as "BlockType"
ExportAssets (56)Timeline Frame 2Symbol 1704 as "ComboBox_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1702 as "ComboBox_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1698 as "ComboBox_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1725 as "fl.controls.List"
ExportAssets (56)Timeline Frame 2Symbol 1700 as "ComboBox_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1786 as "Doors"
ExportAssets (56)Timeline Frame 2Symbol 1075 as "ScrollArrowUp_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1063 as "ScrollThumb_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1069 as "ScrollThumb_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1059 as "ScrollThumb_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1067 as "ScrollArrowUp_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1057 as "ScrollArrowDown_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1073 as "ScrollArrowDown_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1065 as "ScrollArrowUp_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1071 as "ScrollArrowDown_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1077 as "ScrollBar_thumbIcon"
ExportAssets (56)Timeline Frame 2Symbol 1061 as "ScrollArrowDown_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1055 as "ScrollArrowUp_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1051 as "ScrollTrack_skin"
ExportAssets (56)Timeline Frame 2Symbol 1691 as "TextInput_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1690 as "TextInput_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1680 as "CheckBox_disabledIcon"
ExportAssets (56)Timeline Frame 2Symbol 1678 as "CheckBox_downIcon"
ExportAssets (56)Timeline Frame 2Symbol 1685 as "CheckBox_selectedOverIcon"
ExportAssets (56)Timeline Frame 2Symbol 1674 as "CheckBox_upIcon"
ExportAssets (56)Timeline Frame 2Symbol 1676 as "CheckBox_overIcon"
ExportAssets (56)Timeline Frame 2Symbol 1684 as "CheckBox_selectedUpIcon"
ExportAssets (56)Timeline Frame 2Symbol 1686 as "CheckBox_selectedDownIcon"
ExportAssets (56)Timeline Frame 2Symbol 1688 as "CheckBox_selectedDisabledIcon"
ExportAssets (56)Timeline Frame 2Symbol 1728 as "NumericStepperDownArrow_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1730 as "NumericStepperDownArrow_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1740 as "NumericStepperUpArrow_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1736 as "NumericStepperUpArrow_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1734 as "NumericStepperDownArrow_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1742 as "NumericStepperUpArrow_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1732 as "NumericStepperDownArrow_overSkin"
ExportAssets (56)Timeline Frame 2Symbol 1738 as "NumericStepperUpArrow_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1723 as "fl.controls.listClasses.CellRenderer"
ExportAssets (56)Timeline Frame 2Symbol 1706 as "List_skin"
ExportAssets (56)Timeline Frame 2Symbol 1784 as "Editor_fla.Lock_Up_77"
ExportAssets (56)Timeline Frame 2Symbol 1779 as "Editor_fla.Lock_Down_76"
ExportAssets (56)Timeline Frame 2Symbol 1716 as "CellRenderer_selectedDisabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1720 as "CellRenderer_selectedOverSkin"
ExportAssets (56)Timeline Frame 2Symbol 1712 as "CellRenderer_downSkin"
ExportAssets (56)Timeline Frame 2Symbol 1722 as "CellRenderer_selectedUpSkin"
ExportAssets (56)Timeline Frame 2Symbol 1708 as "CellRenderer_upSkin"
ExportAssets (56)Timeline Frame 2Symbol 1718 as "CellRenderer_selectedDownSkin"
ExportAssets (56)Timeline Frame 2Symbol 1710 as "CellRenderer_disabledSkin"
ExportAssets (56)Timeline Frame 2Symbol 1714 as "CellRenderer_overSkin"
SerialNumber (41)Timeline Frame 1

Labels

"com_midasplayer_MainLoader"Frame 1
"start"Frame 2
"off"Symbol 7 MovieClip {ferryBlue} [ferryBlue] Frame 1
"on"Symbol 7 MovieClip {ferryBlue} [ferryBlue] Frame 2
"off"Symbol 32 MovieClip {ferryGreen} [ferryGreen] Frame 1
"on"Symbol 32 MovieClip {ferryGreen} [ferryGreen] Frame 2
"off"Symbol 37 MovieClip {ferryRed} [ferryRed] Frame 1
"on"Symbol 37 MovieClip {ferryRed} [ferryRed] Frame 2
"Orange"Symbol 123 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21] Frame 1
"Yellow"Symbol 123 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21] Frame 2
"Green"Symbol 123 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21] Frame 3
"Red"Symbol 123 MovieClip {Tiles_fla.Lock_Down_21} [Tiles_fla.Lock_Down_21] Frame 4
"Orange"Symbol 128 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22] Frame 1
"Yellow"Symbol 128 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22] Frame 2
"Green"Symbol 128 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22] Frame 3
"Red"Symbol 128 MovieClip {Tiles_fla.Lock_Up_22} [Tiles_fla.Lock_Up_22] Frame 4
"Orange"Symbol 194 MovieClip {EnemySprite} [EnemySprite] Frame 1
"Green"Symbol 194 MovieClip {EnemySprite} [EnemySprite] Frame 2
"Red"Symbol 194 MovieClip {EnemySprite} [EnemySprite] Frame 3
"Orange"Symbol 198 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3] Frame 1
"Green"Symbol 198 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3] Frame 2
"Red"Symbol 198 MovieClip {Chars_fla.Part_6_3} [Chars_fla.Part_6_3] Frame 3
"Orange"Symbol 202 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4] Frame 1
"Green"Symbol 202 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4] Frame 2
"Red"Symbol 202 MovieClip {Chars_fla.Part_5_4} [Chars_fla.Part_5_4] Frame 3
"Orange"Symbol 206 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5] Frame 1
"Green"Symbol 206 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5] Frame 2
"Red"Symbol 206 MovieClip {Chars_fla.Part_4_5} [Chars_fla.Part_4_5] Frame 3
"Orange"Symbol 210 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6] Frame 1
"Green"Symbol 210 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6] Frame 2
"Red"Symbol 210 MovieClip {Chars_fla.Part_3_6} [Chars_fla.Part_3_6] Frame 3
"Orange"Symbol 214 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7] Frame 1
"Green"Symbol 214 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7] Frame 2
"Red"Symbol 214 MovieClip {Chars_fla.Part_2_7} [Chars_fla.Part_2_7] Frame 3
"Orange"Symbol 218 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8] Frame 1
"Green"Symbol 218 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8] Frame 2
"Red"Symbol 218 MovieClip {Chars_fla.Part_1_8} [Chars_fla.Part_1_8] Frame 3
"Preview"Symbol 360 MovieClip {Menu_fla.Preview_69} [Menu_fla.Preview_69] Frame 41
"Vertical"Symbol 402 MovieClip {DoorPreview} [DoorPreview] Frame 1
"Horisontal"Symbol 402 MovieClip {DoorPreview} [DoorPreview] Frame 2
"Orange"Symbol 800 MovieClip {Items_fla.Key_2} [Items_fla.Key_2] Frame 1
"Yellow"Symbol 800 MovieClip {Items_fla.Key_2} [Items_fla.Key_2] Frame 2
"Green"Symbol 800 MovieClip {Items_fla.Key_2} [Items_fla.Key_2] Frame 3
"Red"Symbol 800 MovieClip {Items_fla.Key_2} [Items_fla.Key_2] Frame 4
"Orange"Symbol 805 MovieClip {EnemyPreview} [EnemyPreview] Frame 1
"Green"Symbol 805 MovieClip {EnemyPreview} [EnemyPreview] Frame 2
"Red"Symbol 805 MovieClip {EnemyPreview} [EnemyPreview] Frame 3
"Stand"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 1
"Run"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 8
"Jump"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 15
"RagdollL"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 22
"RagdollR"Symbol 1591 MovieClip {HeroSprite} [HeroSprite] Frame 30
"None"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 1
"Simple"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 2
"Timeout"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 3
"Moving"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 4
"Replace"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 5
"Thorn"Symbol 1765 MovieClip {BlockType} [BlockType] Frame 6
"Orange"Symbol 1779 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76] Frame 1
"Yellow"Symbol 1779 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76] Frame 2
"Green"Symbol 1779 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76] Frame 3
"Red"Symbol 1779 MovieClip {Editor_fla.Lock_Down_76} [Editor_fla.Lock_Down_76] Frame 4
"Orange"Symbol 1784 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77] Frame 1
"Yellow"Symbol 1784 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77] Frame 2
"Green"Symbol 1784 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77] Frame 3
"Red"Symbol 1784 MovieClip {Editor_fla.Lock_Up_77} [Editor_fla.Lock_Up_77] Frame 4
"Vertical"Symbol 1786 MovieClip {Doors} [Doors] Frame 1
"Horisontal"Symbol 1786 MovieClip {Doors} [Doors] Frame 2




http://swfchan.com/18/88036/info.shtml
Created: 29/3 -2019 16:46:33 Last modified: 29/3 -2019 16:46:33 Server time: 25/04 -2024 12:37:12