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

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

OOP Platformer Tutorial.swf

This is the info page for
Flash #71973

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


Text
Object-oriented Platformer

Starting out

You probably noticed I am calling yet another function that I haven't yet defined. The function
actionRouting() will serve the purpose of determining what action to take based on the key presses it
sees coming across in that text variable. The reasons I am making all of these things separate
functions is for organizational purposes. Most of the time, it is bad practice to put any single function
in charge of many and varying tasks. Making your code                 like this increases the chances
that you'll be able to utilize the function for more than just one particular purpose or in one particular
area of processing.
We have also jumped pretty deep into the code before actually creating anything for the code to act
on. So, before getting to the actionRouting() function, we'll take a break and create and object we
want to act upon.

So let's get drawing and animating!

modular

modular

The platforms themselves

function myObject(clip,speed){
this.clip = clip;
this.speed = speed;
this.jumpspeed = 0;
}

Before we go any further with the actual setting and testing of the floors (I tend to get ahead of
myself sometimes) we need to get a system of gravity down for the character. We'll add a global
"gravity" value:
var gravity = 2;
This value will attempt to be added to the character's current vertical-speed value on each loop
through moveObject(). We will also need another line added to the definition of myObject:
The value jumpspeed will be the current
vertical velocity (in pixels) of the
character.

Arrow-keys control character
Click this mini-screen to reset

Moving platforms

And once again, a mini-game setup with some of the new coding we now have:
Notice that the moving floor is just going
all over the place, and you are even able
to move on the floor to the left and right
and the game just compensates without
any trouble. That is because the delta,
or change in X coordinate is added to
character clip. That clip is not forced to
adhere to an X coordinate relative to the
floor at all.

End

So, hopefully this gives at least some ideas to people without an idea how to start into making a
platformer game. And hopefully a few veterans got something out of it as well. If not... just leave me
a review and berate me for propagating bad coding and design practices. I won't mind... really.
Also as a last note... if you haven't tried the Nuke button... or the new Meteor-shower button (click
the small gray button in the bottom-right corner of the Nuke button to toggle between these options) I
would suggest doing so now. Especially if you did not like this tutorial.
I'm looking to make subsequent tutorials in this vein, where I cover how to add some more
impressive options, animations, and interactions into the base engine. Until then, take care.

The End

Dropping down

And, as a really simple example of adding extra functionality, I could also add the ability to drop from
platforms. We're already detecting the DOWN arrow key, so I'd just have to add a line to
actionRouting that affects the player ever so slightly:
if (pKey.indexOf("|4|") != -1) { activeCharacter.clip._y+=5; activeCharacter.surfaceType = ""; }
How easy is that? Now, of course, not everything is going to be that easy. Obviously, if you want
more animations and abilities, these functions change with each addition. And I am not even really
handling some of these things in the most effecient way possible. For instance, the actions of walk,
stand, and jump. In the actual engine I have built I also created an "action" object, which defines the
frame that should be played and certain other parameters surrounding each action. I didn't get
that detailed here in order to maintain some semblance of
simplicity. And this tutorial is meant more as a building-
block than as an end-all-beat-all platformer engine.

Arrow-keys control character
Space-bar jumps
Click this mini-screen to reset

function dresser(attachClip,x,y,numDrawers,color){
this.numDrawers = numDrawers;
this.drawers = new Array(numDrawers);
this.color = color;
this.affectDrawer = function(){ }
var nextY;
for(var i=1; i<=numDrawers; i++){
attachClip.attachMovie("dresser_drawer","drawer_" + i,i);
attachClip["drawer_" + i]._x = x;
nextY = y - ((i-1) * attachClip["drawer_" + i]._height * (3/4));
attachClip["drawer_" + i]._y = nextY;
}
}
function drawer(){
this.open = false;
this.content = new Array();
this.contentIndex = 0;
this.addContent = function(){ }
}
_root.myDresser = new dresser(_root,10,300,4,1);

Jump around

Click the gray-box below for code:

if(dirX>0){ obj.clip.gotoAndStop("right"); }
if(dirX !=0){ obj.clip.anim.gotoAndStop("walk"); }else{ obj.clip.anim.gotoAndStop("stand"); }
if(obj.surfaceType == "" && obj.jumpspeed != 0){ obj.clip.anim.gotoAndStop("jump"); }
if(obj.surfaceType!="moving"){
floorTest = testFloors(obj);
if(floorTest == -1 || obj.jumpspeed<0) {
obj.clip._y += obj.jumpspeed;

Next is to change the moveObject function to set the "jump" frame when it detects that the character
is not on a platform:
That should do it actually. Oddly enough, once you have the solid base of coding for a game, the
engine if you will, adding many little touches start to become fairly easy tasks. It just takes knowing
the code and knowing where to add the parts you want to add.
On the next screen will be our latest code and another mini
game to try out the new jumping ability.

function actionRouting(pKey){
var dirX = 0;
if (pKey.indexOf("|1|") != -1) { dirX = 1; }
if (pKey.indexOf("|2|") != -1) { dirX = -1; }
if (pKey.indexOf("|5|") != -1) {
if(activeCharacter.jumpspeed == 0 && activeCharacter.surfaceType != ""){
activeCharacter.surfaceType = "";
activeCharacter.jumpspeed = activeCharacter.jumpstart;
}
}
moveObject(activeCharacter,dirX,1);
}

The above takes the key-press coming out of detectKeys() and checks to make sure that
the character is standing on a platform of some sort, making sure that it would be
physically possible for him to jump. Then, it tells the system that the character is no longer
on a platform, and sets the character's jumpspeed
equal to the value we set in jumpstart. This will
make the clip jump up.

this.clip = clip;
this.speed = speed;
this.face = 0;
this.jumpspeed = 0;
this.surfaceType = "";
this.surface = null;
this.surfaceDelta = 0;
this.jumpstart = -10;
}

We'll use this jumpstart value
to initialize a jump each time
the space-bar is pressed,
and our character isn't already
jumping. Now to change
actionRouting().

Now we have the animation setup, we need to alter the code to detect a key-press that will cause the
jump, and we need a bit of coding to make the jump happen based on that key press. We'll use the
space-bar. Below, a line added to the detectKeys() function:
if (Key.isDown(Key.SPACE)) { pkey += "|5|"; }
And we also need to add a property to our myObject() class definition:

Okay, time to add jumping. First, I need a graphic that represents the character in a jump action:
My jump frame is just a static graphic, but you could use an animation, or even do
something like use the jumpspeed variable values inside frame labels, and make the
character animate slightly from jump value to jump value, and fall value to fall value.
Anybody remember tomb-raider and what happened if she fell an exceptionally long way?
You could do the same sort of thing here, having him scream and panic if his jumpspeed
became some large value indicating that he was falling very fast, and had therefore been
falling for a while. However, I'll just add this jump frame to the stickMan movie clip and give it a
corresponding frame label.

stand

walk

jump

frame labels

Once again, I haven't showed you how to add a moving floor. You could place the moving floor by
hand on the stage, then call addMovingFloor() to point at it. but I'm going to make a function that
attaches the movie to the stage, and registers it with the system all in one swipe. Whenever you
have the chance to produce greater automation with something, I say go for it! Here's the function:

function easyAddMovingFloor(tClip,eName,y,x,numFloors){
var mDex = movingFloorDex + 1;
// The above is to set into the instance name of the floor, the actual index that that floor is in the
// movingFloors array. This may come in handy down the line.
tClip.attachMovie(eName,eName + mDex,gameHeight/sectionSize*100 + mDex);
// Attach to whatever movie was passed as "tClip" (this is much like the addFloor() function) a
// movie with the export name or linkage identifier passed, and make sure that its depth falls
// outside the allotment for the regular floors (number of sections multiplied by 100)
tClip[eName + mDex]._x = x;
tClip[eName + mDex]._y = y;
// Place the newly added clip at the right X and Y coordinates on-screen.
addMovingFloor(tClip[eName + mDex],numFloors);
// Register this clip as having moving floors to the system.
}

I am going to use my "scifi_floor" to make a moving-floor clip. First, I drag a copy to the stage and
choose "Modify -> Covert to Symbol" naming the new clip "moving_scifi_floor". I have applied an
Instance name to "scifi_floor" of "floor1". I make
a guide-layer, drawing my motion-guiding line
as a sort of sine-curve, halved circles, flipped
every other one. I then tween the clip along
the line, one time forward, and one back. I
also added "ease" effects to my animation,
to make it look like it speeds up when taking
off from the ends, then slows down as it
approaches them. Really, any animation within
Flash
will work. Note that any added animated floors would
within this same clip would need named "floor2", etc.

function testMovingFloors(obj){
var compY,thisClip,fixY,i,j,thisFloor;
if(movingFloorDex>0){
// If there are even moving floors to test
compY = obj.clip._y;
// Variable holding the Y coordinate of the character clip
for(var j=0; j<movingFloorDex; j++){
// Walk through each moving floor instance
thisFloor = movingFloorSet[j];
// Variable holds current floor being tested
for(var i=1; i<=thisFloor.numInClip; i++){
// Walk through each floor in the setup clip
thisClip = thisFloor.clip["floor" + i];
// Variable holds current clip within the floor movie that is being tested
fixY = thisFloor.clip._y + thisClip._y;
// Use relative coordinates of floor clip in movie to determine global game coordinates
if(fixY>
=compY && fixY<=compY + obj.jumpspeed){
// If current placement of floor falls between where character is and where he is going
if(testMovingFloorHorizontals(obj,thisClip)){
// See below function that tests whether the characters corners lie on the moving clip
obj.surface = thisClip;
// Set objects surface property to the current movine INSIDE the animating clip.
obj.surfaceType = "moving";
// Tell the system that the floor in the property surface is a moving floor type
obj.surfaceDelta = thisClip._x;
// Record what the current X value of the clip is in the object's delta property
return fixY + thisClip._y;
// Return from the function with the global Y value of the current moving floor
// this only happens in the case that the character should hit the floor, because
// he meets both the vertical and horizontal hitting tests.
}
}
}
}
}
return -1;
// Return that no floor was found - keep falling.
}
function testMovingFloorHorizontals(obj,floorObj){
var c1 = obj.clip._x - obj.clip._width;
// Left-corner (smaller) X value of the character
var c2 = obj.clip._x;
// Right-corner (larger) X value of the character (remember the registration-point?)
var fixX = floorObj._parent._x + floorObj._x;
// Global left-hand X value of the moving floor clip, calculated using local X values
var fixX2 = fixX + floorObj._width;
// Global right-hand X value of the moving floor clip, calculated using the width of the clip
if(fixX>
=c1 && fixX<=c2 || fixX2>=c1 && fixX2<=c2 || c1>=fixX && c1<=fixX2 || c2>=fixX &&
c2<=fixX2){
// If corners of floor are between characters width, or character's corners between floor width
return true;
// Return that horizontal hit of the floor has happened!
}else{
return false;
// Return that horizontal hit of the floor has NOT happened
}
}

Below are two functions that will test moving floors, again code is thoroughly commented. Note that
the code explicitly uses the word "floor" and concatenates a numeric on it that corresponds to the
number floor in order to refer to the clip we want to test. This "floor" is part of an instance name on
the clips that I will clue you into when I show you how to make a moving floor clip. Which is next...

for(var i=0; i<floorSect[j].floorDex; i++){
aFloor = floorSect[j].floorArr[i];
if(aFloor.y>
=charY1 && aFloor.y<=charY2){
if(charX1>
=aFloor.x1 && charX1<=aFloor.x2 || charX2>=aFloor.x1 && charX2<=aFloor.x2){
obj.surface = aFloor;
obj.surfaceType = "static";
return aFloor.y;
}
}
}

The below is only to give you context as to where the change takes place within testFloors():
Ths will now give us a solid base of conditions to work with when determining what type of floor our
character is standing on, and we can make judgments as to the kinds of tests we need to complete
or not complete so that we can keep our processor-usage slimmed-down, and hopefully avoid the
on-set of lag in our game. Which hopefully allows us to use
up the remaining processor-time available to utilize
decent graphical content.

function myObject(clip,speed){
this.clip = clip;
this.speed = speed;
this.face = 0;
this.jumpspeed = 0;
this.surfaceType = "";
this.surface = null;
this.surfaceDelta = 0;
}
This means that we should change our original testFloors() routine to change the surfaceType of our
object being processed to something that means he is standing on a static floor. This determination
of what type of floor he is standing on will help to optimize
the testing and processing needing done within our game
loop.

// This will tell us what type of platform our character is on
// This will hold a reference to the actual platform
// This will hold the amount of X-coordinate change the character
//        should experience. the Y will be handled by the surface itself

This is the function that will add moving-floors to the array we set up:
function addMovingFloor(clip,numInClip){
movingFloorSet[movingFloorDex] = new movingFloor(clip,numInClip);
movingFloorDex += 1;
}
Also in order to do this, we need to establish some new coding for our object class. It needs to be
able to track what type of platform it is on, and to be able to tell how much the platform it is on has
moved in order to be "carried" by the platform. Otherwise, the platform will move right out from under
the player! Which is not what we want at this point.
On the next screen we'll see the new variables added to the
myObject() class that will help us do all of this.

We also need a function, of course, the object that is gong to represent the moving floor:
function movingFloor(clip,numInClip){
this.clip = clip;
this.numInClip = numInClip;
}
The two parameters passed to initialize the object are the clip reference, which will point to the
animating movie-clip on stage that has the floors in it, and the number of floors in that movi-clip. I'm
going to set it up so that I can test any numbr of animating floors all at once within any given movie-
clip. You could then, for instance, create a rotating wheel with 4 platforms on it, each of which is
rotating with the wheel, and all are contained in the same
movie and animation. Otherwise, it would be a pain to
have to try and synch-up 4 separate movie-clips.

Let's establish the array that will be used to hold these "moving" floors:
var movingFloorSet = new Array();
var movingFloorDex = 0;
This will work a lot like the regular floor section holder array, except that each entry in this array will
be just a referfence to the floor to be tested.
The way a moving floor will work is that there will be a movie-clip, inside of which is an animation. On
some layer of this animation will be a "floor", an invisible movie-clip that we will give an instance
name to that is easily scriptable and identifiable. This floor can dance all around the movie-clip, no
matter what the rest of the clip-contents are doing, and the
test function will simply pay attention only to the
activities of the floor clips and their current positions.

I used that new easyAddFloor() function on that last screen to make those controls add floors to the
game on the fly. It added them so that, not only does it notify the player by the visual that a platform
exists there, the game, of course, picks up on that fact as well and makes the player react to that
platform accordingly.
Next we're going to look at what it takes to create a moving-floor for the character to interact with.
Right now, our floor-processing relies on the floors being placed into a static position, within a
specific section of the screen. We don't want to have to de-register and re-register our floors as they
move around, putting them first into one section, then taking them out as they move out of that
section, and place them into a new one. That would just be a ridiculous amount of work.. Instead,
we're going to make a special function to process moving floors, and they will get their own array.
In this game, moving-floors will all be processed always,
because we never know where they are going to be in
relation to the player until we need to find out.

Here is a bit of a fun screen, using all of the coding up to now and a few controls:

Use these to pick
a floor type

Use this to select
an x,y coordinate
set for the floor

Click this button
to add the floor

Here is a function that is going to do what I described, with thorough comments to describe what
each piece is doing:

function easyAddFloor(tClip,eName,y,x){
// The 4 parameters being passed:
//        tClip - the clip to which the movie of the floor should be attached
//        eName - the export name of the floor we want attached from our library of symbols.
//        y - the Y coordinate of the floor, and where to place the attached clip
//        x - the X coordinate at which to place the attached clip, the width then determines our x2
var setDex = Math.floor(y/sectionSize);
// Get the index to the floor section where the floor we are adding will fall
var floorInSet = floorSet[setDex].floorDex;
// Get the index inside the section chosen that determines the number of floor this is in the set
tClip.attachMovie(eName,"floor_" + setDex + "_" + floorInSet,setDex*100 + floorInSet);
// The above line attaches the new movie-clip from the symbol in the library. The 3 parameters
// being passed to the attachmovie() method are:
//        1. The export name or linkage identifier of the clip
//        2. A name that will be unique to this clip, I chose to concatenate to the word "floor", both the
//            section index, and number of floor this floor is in that section. Which is a unique combo.
//        3. The depth at which the clip should be sorted. This I set to a muitiple of the index plus the
//            number floor. This number also needs to be unique. Attaching a clip with either the same
//            instance name OR depth value results in the original clip being deleted. What I have
//            done with this number is make sure that i can insert up to 100 floors in each section
//            before one section might overflow into the numbers of the next.
tClip["floor_" + setDex + "_" + floorInSet]._y = y;
tClip["floor_" + setDex + "_" + floorInSet]._x = x;
// The above lines set the x and y values of the newly attached clip.
floorSet[Math.floor(setDex)].addFloor(y,x,x+tClip["floor_" + setDex + "_" + floorInSet]._width);
// This last line finallly registers this new clip and its coordinates as a new floor object that should
// be processed in our game. note the use of the width added to the X coordinate to determine the
// parameter "x2" that gets passed to the addFloor() method.
}

To assign an export name or "linkage identifier" (which is a fancy title for a movie-clip that can be
attached to the Flash stage dynamically at run-time) find the clip you want to assign a name to in the
Library dialogue (Window -> library, or "F11"). Right-click the clip and select "properties" from the
resulting menu. If all you see are choices for "Name" and "Behavior" and a few buttons, click the
button labeled "Advanced". The box you want to type the export name into is the first in the section
labeled "Linkage", and the box itself is labeled "Identifier":
I named the tan floor drawn with vector
graphic toools "vector_floor". The one
with stalactites hanging from it is
"cave_floor". And the flying one I named
"scifi_floor".

t

ty

typ

type

type n

type na

type nam

type name

type name h

type name he

type name her

type name here

Below we have a couple different movie-clips we could use for floors:
They range from plain, to detailed, to animated. They are movie-clips, and so can contain anything
that Flash can dish out. Vector graphics, bitmaps, animation of any kind... even video!
What we're going to do with these is tell Flash which movie to attach to the stage and where, and
what it should do to turn it into a floor within our game. If it sounds complicated... its not. But one of
the main components of being able to do this is something
you may or may not be familiar with. That is, setting an
export or "linkage identifier" name for the clips.

... let's re-cap what we've done so far. We've done a lot of coding and setup:
1. Setup the movie-clip representation of our character, and placed it into a standard object class
2. Created functions that address the keys, and acquire which are pressed
3. Created a function to interpret the keys as directions to give to a function that processes moves
4. Established global gravity variable that affects the character
5. Created a system with which to setup and test floors simply and quickly
That about sums it up. though there is a lot of material in those 4 steps that we have covered.
And now... on with the show!

To define floors (at this point):
floorSet[Math.floor(80/sectionSize)].addFloor(80,16,116);
floorSet[Math.floor(190/sectionSize)].addFloor(190,0,320);
This is currently a lousy way to do it, but I haven't provided
for any easier way of communicating the need for a floor
to the functions responsible yet. As you can see, I had
to specify the Y-coordinate of the floor twice... once to
determine the index of the section to add it to, and once to actuallly pass to the addFloor() method.
This should only need passed once, to one function that takes care of both. We're also going to see
what it will take to get custom floor movie-clips to attach
themselves to the game-screen and generate floor
objects that represent the graphics. But first...

Try a few floors in this mini-game. We haven't yet given the character the abiltiy to jump, so all he
can do is fall at this point:

If you've been paying attention,
you'd be wondering right now
what it was that I left out. In this
little mini-game, we've got two
floors defined... but I never
showed you how to do so! On the
next screen we'll get this part and
the most up-to-date coding.

And for the changes to moveObject(), we need to add the test, and what to do in the case that a floor
coordinate does come back to us.

function moveObject(obj, dirX, dirY){
obj.clip._x += dirX * obj.speed;
if(dirX<0){ obj.clip.gotoAndStop("left"); }
if(dirX>
0){ obj.clip.gotoAndStop("right"); }
if(dirX !=0){ obj.clip.anim.gotoAndStop("walk"); }else{ obj.clip.anim.gotoAndStop("stand"); }
floorTest = testFloors(obj);    // Test for floors before moving in Y direction
if (floorTest == -1 || obj.jumpspeed<0) {    // If no floor found (-1) or character is going up
obj.clip._y += obj.jumpspeed;
obj.jumpspeed += gravity;
}else{
obj.clip._y = floorTest;    // If a floor WAS found then character should be placed on it.
obj.jumpspeed = 0;        // If you have landed on a platform, your falling speed should be reset
}
}

Below is the function we'll be using to test the floors. The code is thoroughly commented since this is
the largest chunk of code I have thrown at you so far. On the next screen we'll see where and how to
implement this function within our moveObject() routine.

function testFloors(obj){
var aFloor;
var charY1 = obj.clip._y;
var charY2 = obj.clip._y + obj.jumpspeed;
// The above 2 Y values represent where the character is, and where he will be on the next cycle
// of moveObject() due to falling.
var charX1 = obj.clip._x - obj.clip._width;
var charX2 = obj.clip._x;
// The above 2 X values represent the character's bottom-left and bottom-right x-coordinates.
var dex1 = Math.floor(charY1/sectionSize);
var dex2 = Math.floor(charY2/sectionSize);
// The above two indexes use our formula to determine the start and end indexes that should be
// tested between to determine if a floor appears in the character's current fall.
var floorSect = new Array((dex2-dex1) + 1);
// This line creates an array to hold the section-array objects from dex1 to dex2
for(var j=0; j<floorSect.length; j++){
// Looping through all section-array objects in the array
floorSect[j] = floorSet[dex1+j];
// place the dex1, etc. array-object into the new Array
if(floorSect[j].floorDex>
0){
// If current section object has 1 or more floors in it
for(var i=0; i<floorSect[j].floorDex; i++){
// Looping through all floors in the current section object
aFloor = floorSect[j].floorArr[i];
// Get the current floor object
if(aFloor.y>
=charY1 && aFloor.y<=charY2){
// If floor falls between the chracter's current position and fall position.
if(charX1>
=aFloor.x1 && charX1<=aFloor.x2 || charX2>=aFloor.x1 &&
charX2<=aFloor.x2){
// If either of the characters corners lie on the platform's x-span
return aFloor.y;
// Return the y-coordinate of the floor the character should hit!
}
}
}
}
}
return -1;
// Return that no floor was found, keep falling...
}

And the moveObject function needs to change as well:
function moveObject(obj, dirX, dirY){
obj.clip._x += dirX * obj.speed;
if(dirX<0){ obj.clip.gotoAndStop("left"); }
if(dirX>0){ obj.clip.gotoAndStop("right"); }
if(dirX !=0){ obj.clip.anim.gotoAndStop("walk"); }else{ obj.clip.anim.gotoAndStop("stand"); }
obj.clip._y += obj.jumpspeed;
obj.jumpspeed += gravity;
}

Currently, this code will just make the character fall like a lead
balloon. All I wanted to do here was introduce the concept
of this new variable, jumpspeed.

To obtain which section in the array of sections a given Y coordinate falls we'll use this formula:
sectionIndex = Math.floor(Y/sectionSize);
For instance, if you are in the first section (y=0 to y=20) the index returned should be 0 (zero - the
first element of the array). The Math.floor() function takes us down from our fraction result to the next
lower integer:
1/20 = 0.05        Math.floor(1/10) = 0
5/20 = 0.25        Math.floor(5/10) = 0

So, at any given moment we can plug the Y value of our
character clip (remember the registration point is at his
feet, in the bottom-right corner of the clip) into this formula
and determine which section of the screen we should be
testing the floors of. And to span several sections, we
need to know what start and end section to test through.
This is what we will build into our testing function.

cycle - n

cycle - n+1

cycle - n+2

miss!

One thing we need to keep in mind is that our character may be falling past entire sections if gravity
builds up enough, and if we don't put some sort of governance on the maximum rate at which he can
fall. A sort of terminal velocity, if you will. For instance, let's say we use the value of 2 to increase the
falling speed of any given object on each code cycle. In 10 cycles we will have hit our sectionSize
(20), and the character will start falling past entire sections without ever having a Y value that falls
WITHIN that section. Which means we can't simply test the section he is in. We may have to test
several, depending on how fast he is falling.
In the figure to the right, where the character's
feet appear is where the test would occur. You
can see how he misses the second to last
section of pixels entirely.

Here is the floor Section object and the method to add a floor to a given section:
function addFloor(y,x1,x2{
this.floorArr[this.floorDex] = new floor(y,x1,x2);
this.floorDex ++;
}
function floorSection(){
this.floorArr = new Array();
this.floorDex = 0;
this.addFloor = addFloor;
}

// An array to hold each of the floors that appear in the section
// Index to the array which is incremented with each added floor
// A reference to the addFloor method which will be contained
//     in the object definition of each section created.

// Because this function will be a member of the
// section object, we use "this" to refer to the
// section doing the calling to this function.

With the beginnings of the objects nailed down, we need
the code to test against them and make judgments
as to when our character should/shouldn't fall.

Actually, the main array is going to contain objects that will then each contain an array that willl hold
the floors present in the segment. In this way, we can have methods applied to the segment-holder
objects that will allow us to easily add a floor to the segment-holder itself. What we'll use to
determine the size of the array is the size of the stage or game-background we're working with. In
my case, I'm going to be using that background graphic you saw as my test game size. So, the size
of that is 320 X 200. And I am going to use a sectionSize of 20, though I am going to set it up so that
I can change this if I want to going forward:
var sectionSize = 20;
var gameWidth = 320;
var gameHeight = 200;

// Will define how large a section is in pixels
// Will help define how many X sections there are in total
// Will help define how many Y sections there are in total

A reason I might change that sectionSize going forward is
by lowering sectionSize it should decrease the number
of floors tested per section. Which may help lag.

What I am going to do is effectively cut the screen up into smaller sections that can be tested more
quickly and easily by the system. See the below example-screen, the lines represent the sections:

20

40

60

80

100

120

140

160

180

This screen is sliced into sections of
20 pixels. You can see that platforms
fall between segments from 60 to 80
pixels and from 100 to 120. What I am
going to setup will hold all of the floors
within a given segment as an array
within an array of all of the segments.

Enough soap-box... on with the coding! What I am going to setup is the structure through which
floors or platforms in the game will be created and tested for during gameplay. This means we'll also
be establishing gravity for our little stick-man, so that he can fall through the air, and cause a need
for us to see if he has fallen onto or hit anything that should stop him. We need a floor object:
function floor(y,x1,x2){
this.y = y;
this.x1 = x1;
this.x2 = x2;
}

While the floor object itself is pretty rudimentary, the code that is going to
setup the structure through which I am going to test for floors as the
character falls is going to be where the real meat of this part of the project
resides. In this object, a floor has a y-coordinate, a starting x coordinate
and an ending x coordinate. So, a floor rests at y from x1 to x2.

Next we look at how I am going to keep from having to test
every single floor for action on every single loop pass.
This step is also known as optimization.

Movement re-defined

Try it (Instance of "stickMan_Facings" with instance name "stickMan1"):
You're probably wondering why I keep changing the code, and
why I just don't get it right the first time and show you... the
problem with that is that the design of code is an evolutionary
process. It isn't something you just do and it's right and it
works. It is an iterative process in which you experience failure after failure, and also success after
success. I am slowly evolving the code to the end product
to try and keep you "in-the-know" throughout the whole
process... rather than just dump all on you to figure out.

Click
for
code

Changes to the code:
function moveObject(obj, dirX, dirY){
obj.clip._x += dirX * obj.speed;
if(dirX>0){ obj.clip.gotoAndStop("right"); obj.face=0; }
if(dirX<0){ obj.clip.gotoAndStop("left"); obj.face=1; }
if(dirX !=0){ obj.clip.anim.gotoAndStop("walk"); }else{ obj.clip.anim.gotoAndStop("stand"); }
}
Note the new variable in the dot-notation syntax for coordinating which frame (walk or stand) to play
to. anim is the instance name I chose to give to the movie "stickMan" inside the movie
"stickMan_Facings". I gave this name to BOTH the right and left frames. So, no matter which
direction the stick-man is facing, the correct reference to his "stickMan" movie clip is obj.clip.anim.
On the next screen we'll try this out and get the most up-to-
date, full code to copy from.

Last thing before we start experimenting in the realm of platforms is to get this guy facing the right
way. So, we will convert the "stickMan" clip into yet another movie-clip named "stickMan_Facings":

Actions are simply the command stop() at this point.

Frame label: right
Frame content: stickMan (original)

Frame label: left
Frame content: stickMan (flipped horizontally)

And we're also going to add the property face to our myObject:
function myObject(clip,speed){
this.clip = clip;
this.speed = speed;
this.face = 0;
}

Try it out:
Note that he works exactly the same, even with the changes to the
code. But also note that the code is much more robust, and much more
portable. We'll now be able to alter moveObject() and be confident that
it will work when pointed at objects besides the main character clip.
Note also that I have hard-coded a "1" in actionRouting() as the parameter dirY that is passed to
moveObject(). This is because, in this game, we will always want the Y direction to be processed as
positive, or downward, with respect to gravity. You could very well have actionRouting() detect the up
and down arrow-keys, and move the clip accordingly by passing either positive or negative values as
dirY. This would allow for 4-directional movement. You could even detect whether BOTH the
down and right arrow-keys were pressed and pass positive
numbers in BOTH parameters, causing diagonal
movement. You start to see how versatile this code is.

function actionRouting(pKey){
var dirX = 0;
if (pKey.indexOf("|1|") != -1) { dirX = 1; }
if (pKey.indexOf("|2|") != -1) { dirX = -1; }
moveObject(activeCharacter,dirX,1);
}
function moveObject(obj, dirX, dirY){
obj.clip._x += dirX * obj.speed;
if(dirX !=0){ obj.clip.gotoAndStop("walk"); }else{ obj.clip.gotoAndStop("stand"); }
}
Note that the movement has been condensed to one line affecting the _x property of the clip. This is
due to the fact that information about the direction is now
being passed to moveObject() in the form of a positive
or negative number.

function moveObject(obj, dirX, dirY){ }
The above is only a start, defining what it is we'll need to pass to the function:
obj - the object we want the function to run its processes on.
dirX - this will let us know what direction the object is headed in horizontally.
dirY - this will let us know what direction the object is headed in vertically.
That's all this function needs to get moving. now I'm going to farm some of that coding that is
currently stuck smack-dab in the middle of actionRouting() off to this function, and have
actionRouting() simply call this function up, passing the main character as the object to be
processed.

Let's get object-oriented

I'd say it's coming along. But unfortunately, the code we've just written is crap. "But it works, right?"
Yes, but it is not what is going to help us keep these functions organized, and allow the greatest re-
useability. So, I'm going to create a function that handles the changing of action/pose of the
character for us, as well as take care of incrementing or decrementing the _x property of the clip, so
that actionRouting() isn't the only place that such events can occur. Remember, actionRouting() is
reserved for reacting to key-press events, which only come from the user trying to control the main
character. But later we want to be able to control multiple objects all in the same way. objects like
enemies, boxes, balls... almost anything the character can come in contact with.
I'm going to name this new function moveObject(). Again, a generic name, because this guy is going
to be the work-horse of our coding, and its not going to matter what object we pass him... he'll
always do his job regardless.
So let's get to changing!

Now we'll alter the actionRouting() function to pick up on whether or not the clip should play the walk
frame (frame 2) or the stand frame (frame 1) of our new movie-clip:
function actionRouting(pKey){
walk = false;
if (pKey.indexOf("|1|") != -1) { activeCharacter.clip._x += activeCharacter.speed; walk=true; }
if (pKey.indexOf("|2|") != -1) { activeCharacter.clip._x -= activeCharacter.speed;  walk=true; }
if(walk){ activeCharacter.clip.gotoAndStop("walk");
}else{ activeCharacter.clip.gotoAndStop("stand"); }
}

Try it with the left/right
arrow keys!

Below is the timeline of the stickMan movie-clip:

Frame label: stand
Frame content: stickMan_stand

Frame label: walk
Frame content: stickMan_walk

stickMan_stand

stickMan_walk

Both now part of
the same clip!

Next we're going to change our object and movie-clip so that we can achieve the character either
walking OR standing still. We'll first convert the clip into another clip. one frame willl be the "walk"
frame, and one will be the "stand" frame:

stickMan

Note the registration point
this will come in handy when
platforms come into play.

Clip looks the
same, its just
the walk clip
inside another
clip at this
point. Now to
add the stand
frame.

The only other coding used on that page was to define the two objects and set the activeCharacter:
var stickObj1 = new myObject(stickMan1,3);
var stickObj2 = new myObject(stickMan2,6);
var activeCharacter = stickObj1;
And the code on the buttons to activate the corresponding character object:
Button 1: on(release){ activeCharacter = stickObj1; }
Button 2: on(release){ activeCharacter = stickObj2; }
See how easy that became? And all because we inserted
references to our objects/movies rather than
the instance names. How cool is that?

hard-coding

hard-coding

Note that I dropped the stickMan object into a variable named activeCharacter. This will be a global
variable that will be the only one that can receive key events at any one time (changes in purple):
function actionRouting(pKey){
if (pKey.indexOf("|1|") != -1) { activeCharacter.clip._x += activeCharacter.speed; }
if (pKey.indexOf("|2|") != -1) { activeCharacter.clip._x -= activeCharacter.speed; }
}
This may not seem like much of a change, but now, if I wanted to, I could have two separate
character movie-clips on screen and switch control between the two of them:
Try the buttons labeled "ACTIVATE", to
switch control with the arrow keys between
these two stick-men.

stickMan1
speed: 3

stickMan2
speed: 6

ACTIVATE!

I'm now going to start fleshing out some code that will allow us to define the character as an object.
Notice I simply named this object/function myObject. I named it generically, because my plan is to
utilize this same function to define many different objects in the game:
function myObject(clip,speed){
this.clip = clip;
this.speed = speed;
}
The above object is very simple, but it is going to make our actionRouting() much more flexible, and
be able to act on any object, associated with any clip. To define the stickMan in our previous
example using this object:
var activeCharacter = new myObject(stickMan,3);
Let's now change actionRouting() with this in mind.

Below is the instance of the "stickMan" that can be controlled by the arrow keys.  Note that there are
currently no constraints on his movement. He can walk completely off screen. He also constantly
animates. There is nothing to control the animation to make him stand still or take other action. He
also pulls off a mean moon-walk. Try the left/right arrows keys:

Click above to open code-window

He moves 3 pixels per executed frame event. That's the "+/-=3"
parts of the code. We'll call this speed. This value is an attribute
of the stick-man that
lends itself very well
to object coding.

s

st

sti

stic

stick

stickM

stickMa

stickMan

I'm not going to worry about the direction my character faces yer. He'll always just face right no
matter which direction the keys take him. We also need to give the stick-man an instance name. Find
the box to do this by clicking any movie-clip on the stage and looking in the "Properties" dialogue box
for the input box containing the default text "<instance name>". I chose "stickMan" as the instance
name. Here is the code I will place inside the "actionRouting" function which currently simply
references the "stickMan" movie clip:
function actionRouting(pKey){
if (pKey.indexOf("|1|") != -1) { stickMan._x += 3; }
if (pKey.indexOf("|2|") != -1) { stickMan._x -= 3; }
}

// If pKey contains "|1|" then move right
// If pKey contains "|2|" then move left

On the next screen I have provided a demonstration
of the code at work, plus all of the code up to this
point in a copy-able format.

I, personally, am not the strongest (nor the weakest) at drawing and animating. Below is something I
threw together for this tutorial. It is a frame-by-frame animation of a stick-man walking:

You can utilize any
animation you want to,
but this is going to be
the one I use to start
with for moving around
screen with the keys.

=

By the way, this Flash tutorial is set at 24        . In the animation, each of the above drawings occurs
every 3 frames to slow it down a bit.

On the next screen I am going to lay out some code that will
quickly translate key strokes into movement of a clip such
as the animation displayed above.

FPS

FPS

This empty movie clip is going to be the house where we build the entire coding of our game. First
we're going code something simple into this function detectKeys() and then we'll build on that:
function detectKeys(){
var pkey = "";
if (Key.isDown(Key.RIGHT)) { pkey += "|1|"; }
if (Key.isDown(Key.LEFT)) { pkey += "|2|"; }
if (Key.isDown(Key.UP)) { pkey += "|3|"; }
if (Key.isDown(Key.DOWN)) { pkey += "|4|"; }
actionRouting(pkey);
}

// If right-arrow pressed, add "|1|" to var "pKey"
// If left-arrow pressed, add "|2|" to var "pKey"
// If up-arrow pressed, add "|3|" to var "pKey"
// If down-arrow pressed, add "|4|" to var "pKey"
// Call a function that will process "pKey"

This method of representing key-presses with text wrapped in
the pipe-symbol may seem odd to some. You will soon see
that it is a simple method of determining whether or not
a key (or multiple keys) are being pressed.

Nearly every game you've ever played runs based on one consistent looping of code that checks for
changes to variables and makes adjustments based on those changes. So first, we need to setup
this loop. In Flash, one of the easiest ways to accomplish this looping is by adding a function call to
the "                          " event coding of a "controller" movie clip.
Jumping right in... create an empty movie-clip using "Insert -> Symbol" (I named mine "game") and
place it on-stage at (0,0), within it, add a layer named "Actions". In its single keyframe add the
following actions to it using the         keyword:
this.onEnterFrame = function() { detectKeys(); }

Click + F9

this

this

onEnterFrame

onEnterFrame

Intro

This tutorial is going to give you a taste of how I program these types of games, not how they should
be programmed. There probably isn't one "best" way to program them anyway, so hopefully, my
sharing will teach some newcomers how to do it at all, and others who currently have experience
some different ways of looking at things.
The method I will share here is versatile, and allows for a ton of customization in many different
ways. For some examples, take a look at my game "Bushy's Cleanup Crusade" in which many of the
things you interact with are platforms of some sort or another. For instance, the plants that the
character can grow and control each have platforms associated with them. The water is a different
kind of platform in the game that causes the character to "drown".

The functionalized processing of platforms against specifically
programmed in-game objects can make adding specialized
processing of those objects a breeze.

Press the play ( ) button to start.

Progress indicator

Scroll-controller
(Watch out for these throughout the tutorial)

Note-taking box
(Will retain text throughout tutorial)

Mouse-over blue texts
in white boxes throughout
the tutorial to see definitions
on this screen.

Forward

Backward

Nuke (?)

Loading...

Loaded.

Take notes (if you so wish) here...

ActionScript [AS1/AS2]

Frame 1
var percentLoad = Math.floor((_root.getBytesLoaded() / _root.getBytesTotal()) * 100); if (percentLoad != 100) { preloadBar.gotoAndStop(percentLoad); } else { gotoAndStop ("loaded"); }
Frame 2
gotoAndPlay (1);
Frame 3
gotoAndPlay (4);
Frame 4
function moviePlayer(movieName, frameToPlay) { this[movieName].gotoAndPlay(frameToPlay); } function screenContent(contentToPlay) { var _local2 = contentToPlay; var _local3 = screen_mover.screen.display; _local3.html = true; var _local1 = ""; switch (_local2) { case "this" : _local1 = ("<b>" + _local2) + "</b> - A keyword that automatically references the current object being acted on."; break; case "onEnterFrame" : _local1 = ("<b>" + _local2) + "</b> - An event that triggers once per frame according to the FPS of the Flash movie."; break; case "modular" : _local1 = ("<b>" + _local2) + "</b> - Comprised of sub-parts that define the whole, each of which operates in a specific mode."; break; case "FPS" : _local1 = ("<b>" + _local2) + "</b> - Acronym for \"Frames Per Second\"."; break; case "boolean" : _local1 = ("<b>" + _local2) + "</b> - A simple data-type containing either the logical value 'true' or 'false'."; break; case "hard-coding" : _local1 = ("<b>" + _local2) + "</b> - Referring to code in which the value(s) in question is not a parameter, but rather exists within the code itself."; break; default : _local1 = "fail."; } _local3.htmlText = _local1; } function withinBox(testCoordX, testCoordY, x1, y1, x2, y2) { if ((((testCoordX >= x1) && (testCoordX <= x2)) && (testCoordY >= y1)) && (testCoordY <= y2)) { return(true); } return(false); } function between(testCoord, c1, c2) { if (((testCoord - 0) >= (c1 - 0)) && ((testCoord - 0) <= (c2 - 0))) { return(true); } return(false); } function percentOverlap(sub1, sub2, sup1, sup2) { var _local1 = sub2; var _local2 = sub1; var _local3 = sup2; var sublength = (_local1 - _local2); var suplength = (_local3 - sup1); if (sublength < suplength) { if ((_local2 <= sup1) && (_local1 >= sup1)) { return((_local1 - sup1) / sublength); } if ((_local2 <= _local3) && (_local1 >= _local3)) { return((_local3 - _local2) / sublength); } if ((_local2 >= sup1) && (_local1 <= _local3)) { return(1); } } else { if ((sup1 <= _local2) && (_local3 >= _local2)) { return((_local3 - _local2) / suplength); } if ((sup1 <= _local1) && (_local3 >= _local1)) { return((_local1 - sup1) / suplength); } if ((sup1 >= _local2) && (_local3 <= _local1)) { return(1); } } return(0); } function resetRootDisplay() { rootDisplay.rootText.text = ""; rootDisplay._visible = false; rootDisplay.gotoAndPlay(1); } function loadRootDisplayText(theText) { rootDisplay._visible = true; rootDisplay.gotoAndPlay("open"); rootDisplay.theText = theText; } function textClearCheck() { var _local1 = new Date().getTime(); if ((_local1 - textClearStamp) > 7000) { screen_mover.screen.display.htmlText = ""; clearInterval(textClearInterval); } } function blankContent() { if (textClearInterval != null) { clearInterval(textClearInterval); } textClearStamp = new Date().getTime(); textClearInterval = setInterval(textClearCheck, 50); } function loadContent(num) { screens.screen_front.tutScreen_front.removeMovieClip(); screens.screen_front.tutScreen_back.removeMovieClip(); screens.screen_front.attachMovie("tutorialScreen" + num, "tutScreen_front", 0); screens.screen_back.attachMovie("tutorialScreen" + (num + 1), "tutScreen_back", 0); } function backScreen() { if (canMoveForward && (currentScreen > 0)) { currentScreen = currentScreen - 1; indicateProgress(); loadContent(currentScreen); } } function indicateProgress() { perComplete = Math.floor((currentScreen / maxScreens) * 100); progress_mover.progressor.gotoAndStop(perComplete); } function nextScreen() { var i; var perComplete; resetRootDisplay(); if (currentScreen != maxScreens) { currentScreen = currentScreen + 1; indicateProgress(); screens.play(); } else { canMoveForward = true; } } function swapScreens() { loadContent(currentScreen); } function nuke() { disasterType = "nuke"; missle.jet.gotoAndPlay("start"); missle.onEnterFrame = function () { this.trackTarget(); }; } function randomBounded(lowerBound, upperBound) { var _local2 = (upperBound - lowerBound) + 1; var _local1 = Math.random() * _local2; return(lowerBound + parseInt(_local1)); } function bumped() { if (!buttonsDestroyed) { button_mover.gotoAndPlay("meteor"); } if (!screenDestroyed) { screen_mover.gotoAndPlay("meteor"); } if (!barDestroyed) { progress_mover.gotoAndPlay("meteor"); } border_mover.gotoAndPlay("meteor"); lines_mover.gotoAndPlay("meteor"); notesMove.gotoAndPlay("meteor"); } function meteor() { meteorDex = 1; disasterType = "meteor"; exploders.attachMovie("meteor_click_clip", "meteor_click", 0); meteorInterval = setInterval(meteorShower, 50); } function meteorObj(targetX, targetY) { var _local1 = this; exploders.meteor_click.attachMovie("meteor", "meteor" + meteorDex, 1000 + meteorDex); _local1.clip = exploders.meteor_click["meteor" + meteorDex]; _local1.scale = randomBounded(10, 30); _local1.clip._xscale = _local1.scale; _local1.clip._yscale = _local1.scale; _local1.clip._x = Stage.width + _local1.clip._width; _local1.clip._y = randomBounded(0, Stage.height + (2 * _local1.clip._height)) - _local1.clip._height; _local1.z = randomBounded(3, 5); _local1.clip._x = _local1.x; _local1.clip._y = _local1.y; _local1.clip._xscale = _local1.clip._xscale * _local1.z; _local1.clip._yscale = _local1.clip._yscale * _local1.z; _local1.targetX = targetX; _local1.targetY = targetY; _local1.active = true; _local1.stepsToTarget = randomBounded(4, 8); _local1.stepsExecuted = 0; _local1.zStep = (_local1.scale - _local1.clip._xscale) / _local1.stepsToTarget; _local1.xStep = (_local1.targetX - _local1.clip._x) / _local1.stepsToTarget; _local1.yStep = (_local1.targetY - _local1.clip._y) / _local1.stepsToTarget; } function launchMeteor() { if (exploders.meteor_click["crater" + mAttachTrack]) { exploders.meteor_click["crater" + mAttachTrack].play(); exploders.meteor_click["cracks" + mAttachTrack].play(); } meteorArray[meteorDex] = new meteorObj(_xmouse, _ymouse); meteorDex++; } function meteorShower() { var m; var _local2; var _local1 = false; if (meteorTimeCount != 0) { _local2 = new Date().getTime(); if ((_local2 - meteorTimeCount) >= 5000) { meteorTimeCount = 0; fall_in_repair.play(); } } i = lowDex; while (i < meteorDex) { if (meteorArray[i].active) { if (!_local1) { lowDex = i; _local1 = true; } meteorArray[i].clip._xscale = meteorArray[i].clip._xscale + meteorArray[i].zStep; meteorArray[i].clip._yscale = meteorArray[i].clip._yscale + meteorArray[i].zStep; meteorArray[i].clip._x = meteorArray[i].clip._x + meteorArray[i].xStep; meteorArray[i].clip._y = meteorArray[i].clip._y + meteorArray[i].yStep; meteorArray[i].stepsExecuted = meteorArray[i].stepsExecuted + 1; if (meteorArray[i].clip._xscale <= meteorArray[i].scale) { attachCrater(meteorArray[i].clip._x, meteorArray[i].clip._y, (meteorArray[i].scale / 20) * 100); attachExplosion(meteorArray[i].clip._x, meteorArray[i].clip._y, (500 + (i * 10)) + 1); meteorArray[i].active = false; if (i == 1) { screens.blip.attachMovie("blip_clip", "blip_clip0", 999); lines_mover.gotoAndPlay("nuked"); meteorTimeCount = new Date().getTime(); } if (i == 5) { fall_in_repair.play(); meteorTimeCount = 0; } if (!screenDestroyed) { if (withinBox(meteorArray[i].clip._x, meteorArray[i].clip._y, 5.5, 265.95, 194.5, 394.95)) { screenDestroyed = true; screen_mover.gotoAndPlay("nuked"); } } if (!barDestroyed) { if (percentOverlap(meteorArray[i].clip._x - (meteorArray[i].clip._width / 2), meteorArray[i].clip._x + (meteorArray[i].clip._width / 2), 2, 302)) { if (percentOverlap(2, 12, meteorArray[i].clip._y - (meteorArray[i].clip._height / 2), meteorArray[i].clip._y + (meteorArray[i].clip._height / 2))) { barDestroyed = true; progress_mover.gotoAndPlay("nuked"); } } } if (!buttonsDestroyed) { if (withinBox(meteorArray[i].clip._x, meteorArray[i].clip._y, button_mover._x, button_mover._y, button_mover._x + button_mover._width, button_mover._y + button_mover._height)) { buttonsDestroyed = true; button_mover.gotoAndPlay("nuked"); } } meteorArray[i].clip.removeMovieClip(); bumped(); } } i++; } } function attachExplosion(x, y, theDepth) { var _local1 = theDepth; var _local2 = this; _local2.attachMovie("explosion", "explosion" + _local1, _local1); _local2["explosion" + _local1]._xscale = 200; _local2["explosion" + _local1]._yscale = 200; _local2["explosion" + _local1]._x = x; _local2["explosion" + _local1]._y = y; } function attachCrater(x, y, scale) { var _local1 = scale; exploders.meteor_click.attachMovie("meteor_crater_clip", "crater" + mAttachTrack, mAttachTrack + 100); exploders.meteor_click["crater" + mAttachTrack]._xscale = _local1; exploders.meteor_click["crater" + mAttachTrack]._yscale = _local1; exploders.meteor_click["crater" + mAttachTrack]._x = x; exploders.meteor_click["crater" + mAttachTrack]._y = y; exploders.meteor_click.attachMovie("meteor_crack_clip", "cracks" + mAttachTrack, mAttachTrack); exploders.meteor_click["cracks" + mAttachTrack]._xscale = _local1; exploders.meteor_click["cracks" + mAttachTrack]._yscale = _local1; exploders.meteor_click["cracks" + mAttachTrack]._x = x; exploders.meteor_click["cracks" + mAttachTrack]._y = y; mAttachTrack = mAttachTrack + 1; if (mAttachTrack >= 12) { mAttachTrack = 0; } } function startTheMayhem() { button_mover.gotoAndPlay("nuked"); screen_mover.gotoAndPlay("nuked"); progress_mover.gotoAndPlay("nuked"); border_mover.gotoAndPlay("nuked"); lines_mover.gotoAndPlay("nuked"); notesMove.gotoAndPlay("nuked"); screens.blip.attachMovie("blip_clip", "blip_clip0", 999); } var currentScreen = 0; var textClearInterval = null; var textClearStamp = null; var canMoveForward = true; var screenDestroyed = false; var barDestroyed = false; var buttonsDestroyed = false; var maxScreens = 54; var meteorArray = new Array(); var meteorDex = 0; var mAttachTrack = 0; var meteorInterval = null; var meteorTimeCount = 0; var lowDex = 0; var disasterType = "nuke"; loadContent(currentScreen); resetRootDisplay(); stop();
Symbol 37 Button
on (rollOver) { _parent._parent._parent.screenContent("modular"); } on (rollOut) { _parent._parent._parent.blankContent(); }
Symbol 50 MovieClip Frame 1
stop();
Symbol 51 MovieClip Frame 1
function adjustScroll(minY, maxY, scrollWhat, scrollBar) { var _local1 = scrollWhat; var _local2 = scrollBar; if (dragging) { spinFrame = spinFrame + 1; if (spinFrame > 59) { spinFrame = 1; } _local2.gotoAndStop(spinFrame); if (((_local1.minProgY == null) || (_local1.minProgY == undefined)) || ((_local1.minProgY + "") == "")) { _local1.minProgY = _local1._y - (_local1._height * 0.75); _local1.maxProgY = _local1._y; _local1.curScrollPos = _local2._y; } var _local3; if (_local2._y != _local1.curScrollPos) { _local3 = Math.abs((_local2._y - minY) / (maxY - minY)); newY = _local1.maxProgY - (_local3 * (_local1.maxProgY - _local1.minProgY)); if ((newY > _local1.minProgY) && (newY < _local1.maxProgY)) { _local1._y = newY; } else { if (newY <= _local1.minProgY) { _local1._y = _local1.minProgY; } if (newY >= _local1.maxProgY) { _local1._y = _local1.maxProgY; } } _local1.curScrollPos = _local2._y; } } } var spinFrame = 1; var dragging = false;
Instance of Symbol 50 MovieClip "scrollHandle" in Symbol 51 MovieClip Frame 1
on (press) { _parent.dragging = true; this.startDrag(false, 261, 76, 261, 145); } on (release) { _parent.dragging = false; this.stopDrag(); } onClipEvent (mouseMove) { _parent.adjustScroll(76, 145, _parent._parent._parent.notesMove.notesHolder.scrollText, this); }
Symbol 77 MovieClip Frame 1
stop();
Symbol 77 MovieClip Frame 2
stop();
Symbol 77 MovieClip Frame 3
stop();
Symbol 78 MovieClip Frame 1
stop();
Symbol 78 MovieClip Frame 2
stop();
Symbol 80 MovieClip Frame 1
function myObject(clip, speed) { var _local1 = this; _local1.clip = clip; _local1.speed = speed; _local1.face = 0; _local1.jumpspeed = 0; _local1.surfaceType = ""; _local1.surface = null; _local1.surfaceDelta = 0; } function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } actionRouting(_local1); } function actionRouting(pKey) { var _local1 = 0; if (pKey.indexOf("|1|") != -1) { _local1 = 1; } if (pKey.indexOf("|2|") != -1) { _local1 = -1; } moveObject(activeCharacter, _local1, 1); } function moveObject(obj, dirX, dirY) { var _local1 = obj; var _local2 = dirX; _local1.clip._x = _local1.clip._x + (_local2 * _local1.speed); if (_local2 < 0) { _local1.clip.gotoAndStop("left"); } if (_local2 > 0) { _local1.clip.gotoAndStop("right"); } if (_local2 != 0) { _local1.clip.anim.gotoAndStop("walk"); } else { _local1.clip.anim.gotoAndStop("stand"); } if (_local1.surfaceType != "moving") { floorTest = testFloors(_local1); if ((floorTest == -1) || (_local1.jumpspeed < 0)) { _local1.clip._y = _local1.clip._y + _local1.jumpspeed; _local1.jumpspeed = _local1.jumpspeed + gravity; } else { _local1.clip._y = floorTest; _local1.jumpspeed = 0; } if ((floorTest == -1) && (_local1.jumpspeed >= 0)) { floorTest = testMovingFloors(_local1); if (floorTest != -1) { _local1.clip._y = floorTest; _local1.jumpspeed = 0; } } } else if (!testMovingFloorHorizontals(_local1, _local1.surface)) { _local1.surfaceType = ""; } else { _local1.clip._y = _local1.surface._y + _local1.surface._parent._y; if ((_local1.surface._x != _local1.surfaceDelta) && (_local1.surfaceDelta != 0)) { _local1.clip._x = _local1.clip._x + (_local1.surface._x - _local1.surfaceDelta); _local1.surfaceDelta = _local1.surface._x; } } } function testFloors(obj) { var _local1; var charY1 = obj.clip._y; var charY2 = (obj.clip._y + obj.jumpspeed); var charX1 = (obj.clip._x - obj.clip._width); var charX2 = obj.clip._x; var dex1 = Math.floor(charY1 / sectionSize); var dex2 = Math.floor(charY2 / sectionSize); var floorSect = new Array((dex2 - dex1) + 1); var _local2 = 0; while (_local2 < floorSect.length) { floorSect[_local2] = floorSet[dex1 + _local2]; if (floorSect[_local2].floorDex > 0) { var _local3 = 0; while (_local3 < floorSect[_local2].floorDex) { _local1 = floorSect[_local2].floorArr[_local3]; if ((_local1.y >= charY1) && (_local1.y <= charY2)) { if (((charX1 >= _local1.x1) && (charX1 <= _local1.x2)) || ((charX2 >= _local1.x1) && (charX2 <= _local1.x2))) { obj.surface = _local1; obj.surfaceType = "static"; return(_local1.y); } } _local3++; } } _local2++; } return(-1); } function floor(y, x1, x2) { var _local1 = this; _local1.y = y; _local1.x1 = x1; _local1.x2 = x2; } function addFloor(y, x1, x2) { var _local1 = this; _local1.floorArr[_local1.floorDex] = new floor(y, x1, x2); _local1.floorDex++; } function floorSection() { var _local1 = this; _local1.floorArr = new Array(); _local1.floorDex = 0; _local1.addFloor = addFloor; } function testMovingFloorHorizontals(obj, floorObj) { var _local3 = obj.clip._x - obj.clip._width; var _local2 = obj.clip._x; var _local1 = floorObj._parent._x + floorObj._x; var fixX2 = (_local1 + floorObj._width); if (((((_local1 >= _local3) && (_local1 <= _local2)) || ((fixX2 >= _local3) && (fixX2 <= _local2))) || ((_local3 >= _local1) && (_local3 <= fixX2))) || ((_local2 >= _local1) && (_local2 <= fixX2))) { return(true); } return(false); } function testMovingFloors(obj) { var _local2 = obj; var compY; var _local1; var fixY; var _local3; var j; var thisFloor; if (movingFloorDex > 0) { compY = _local2.clip._y; var j = 0; while (j <= movingFloorDex) { thisFloor = movingFloorSet[j]; _local3 = 1; while (_local3 <= thisFloor.numInClip) { _local1 = thisFloor.clip["floor" + _local3]; fixY = thisFloor.clip._y + _local1._y; if ((fixY >= compY) && (fixY <= (compY + _local2.jumpspeed))) { if (testMovingFloorHorizontals(_local2, _local1)) { _local2.surface = _local1; _local2.surfaceType = "moving"; _local2.surfaceDelta = _local1._x; return(fixY + _local1._y); } } _local3++; } j++; } } return(-1); } function addMovingFloor(clip, numInClip) { movingFloorSet[movingFloorDex] = new movingFloor(clip, numInClip); movingFloorDex = movingFloorDex + 1; } function movingFloor(clip, numInClip) { this.clip = clip; this.numInClip = numInClip; } function easyAddFloor(tClip, eName, y, x) { var _local3 = tClip; var _local1 = Math.floor(y / sectionSize); var _local2 = floorSet[_local1].floorDex; _local3.attachMovie(eName, (("floor_" + _local1) + "_") + _local2, (_local1 * 100) + _local2); _local3[(("floor_" + _local1) + "_") + _local2]._y = y; _local3[(("floor_" + _local1) + "_") + _local2]._x = x; floorSet[Math.floor(_local1)].addFloor(y, x, x + _local3[(("floor_" + _local1) + "_") + _local2]._width); } function easyAddMovingFloor(tClip, eName, y, x, numFloors) { var _local2 = eName; var _local3 = tClip; var _local1 = movingFloorDex + 1; _local3.attachMovie(_local2, _local2 + _local1, ((gameHeight / sectionSize) * 100) + _local1); _local3[_local2 + _local1]._x = x; _local3[_local2 + _local1]._y = y; addMovingFloor(_local3[_local2 + _local1], numFloors); } function deleteFloors() { var _local1; var _local2; _local1 = 0; while (_local1 < floorSet.length) { _local2 = 0; while (_local2 < floorSet[_local1].floorDex) { attachClip[(("floor_" + _local1) + "_") + _local2].removeMovieClip(); _local2++; } floorSet[_local1].floorDex = 0; _local1++; } _local1 = 0; while (_local1 < movingFloorDex) { movingFloorSet[_local1].clip.removeMovieClip(); _local1++; } movingFloorDex = 0; floorSet[Math.floor(80 / sectionSize)].addFloor(80, 16, 116); floorSet[Math.floor(190 / sectionSize)].addFloor(190, 0, 320); easyAddMovingFloor(attachClip, "moving_scifi_floor", 107, 104, 1); stickMan1._x = origX; stickMan1._y = origY; } this.onEnterFrame = function () { detectKeys(); }; var stickObj1 = new myObject(stickMan1, 3); var activeCharacter = stickObj1; var origX = stickMan1._x; var origY = stickMan1._y; var sectionSize = 20; var gameWidth = 320; var gameHeight = 200; var gravity = 2; var i; var floorSet = new Array(Math.floor(gameHeight / sectionSize) + 1); i = 0; while (i < floorSet.length) { floorSet[i] = new floorSection(); i++; } var movingFloorSet = new Array(); var movingFloorDex = 0; floorSet[Math.floor(80 / sectionSize)].addFloor(80, 16, 116); floorSet[Math.floor(190 / sectionSize)].addFloor(190, 0, 320); easyAddMovingFloor(attachClip, "moving_scifi_floor", 107, 104, 1);
Instance of Symbol 80 MovieClip in Symbol 83 MovieClip [tutorialScreen47] Frame 1
on (release) { this.deleteFloors(); }
Symbol 92 MovieClip Frame 1
function myObject(clip, speed) { var _local1 = this; _local1.clip = clip; _local1.speed = speed; _local1.face = 0; _local1.jumpspeed = 0; _local1.surfaceType = ""; _local1.surface = null; _local1.surfaceDelta = 0; _local1.jumpstart = -15; } function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } if (Key.isDown(32)) { _local1 = _local1 + "|5|"; } actionRouting(_local1); } function actionRouting(pKey) { var _local2 = pKey; var _local1 = 0; if (_local2.indexOf("|1|") != -1) { _local1 = 1; } if (_local2.indexOf("|2|") != -1) { _local1 = -1; } if (_local2.indexOf("|5|") != -1) { if ((activeCharacter.jumpspeed == 0) && (activeCharacter.surfaceType != "")) { activeCharacter.surfaceType = ""; activeCharacter.jumpspeed = activeCharacter.jumpstart; } } moveObject(activeCharacter, _local1, 1); } function moveObject(obj, dirX, dirY) { var _local1 = obj; var _local2 = dirX; _local1.clip._x = _local1.clip._x + (_local2 * _local1.speed); if (_local2 < 0) { _local1.clip.gotoAndStop("left"); } if (_local2 > 0) { _local1.clip.gotoAndStop("right"); } if (_local2 != 0) { _local1.clip.anim.gotoAndStop("walk"); } else { _local1.clip.anim.gotoAndStop("stand"); } if ((_local1.surfaceType == "") && (_local1.jumpspeed != 0)) { _local1.clip.anim.gotoAndStop("jump"); } if (_local1.surfaceType != "moving") { floorTest = testFloors(_local1); if ((floorTest == -1) || (_local1.jumpspeed < 0)) { _local1.clip._y = _local1.clip._y + _local1.jumpspeed; _local1.jumpspeed = _local1.jumpspeed + gravity; } else { _local1.clip._y = floorTest; _local1.jumpspeed = 0; } if ((floorTest == -1) && (_local1.jumpspeed >= 0)) { floorTest = testMovingFloors(_local1); if (floorTest != -1) { _local1.clip._y = floorTest; _local1.jumpspeed = 0; } } } else if (!testMovingFloorHorizontals(_local1, _local1.surface)) { _local1.surfaceType = ""; } else { _local1.clip._y = _local1.surface._y + _local1.surface._parent._y; if ((_local1.surface._x != _local1.surfaceDelta) && (_local1.surfaceDelta != 0)) { _local1.clip._x = _local1.clip._x + (_local1.surface._x - _local1.surfaceDelta); _local1.surfaceDelta = _local1.surface._x; } } } function testFloors(obj) { var _local1; var charY1 = obj.clip._y; var charY2 = (obj.clip._y + obj.jumpspeed); var charX1 = (obj.clip._x - obj.clip._width); var charX2 = obj.clip._x; var dex1 = Math.floor(charY1 / sectionSize); var dex2 = Math.floor(charY2 / sectionSize); var floorSect = new Array((dex2 - dex1) + 1); var _local2 = 0; while (_local2 < floorSect.length) { floorSect[_local2] = floorSet[dex1 + _local2]; if (floorSect[_local2].floorDex > 0) { var _local3 = 0; while (_local3 < floorSect[_local2].floorDex) { _local1 = floorSect[_local2].floorArr[_local3]; if ((_local1.y >= charY1) && (_local1.y <= charY2)) { if (((charX1 >= _local1.x1) && (charX1 <= _local1.x2)) || ((charX2 >= _local1.x1) && (charX2 <= _local1.x2))) { obj.surface = _local1; obj.surfaceType = "static"; return(_local1.y); } } _local3++; } } _local2++; } return(-1); } function floor(y, x1, x2) { var _local1 = this; _local1.y = y; _local1.x1 = x1; _local1.x2 = x2; } function addFloor(y, x1, x2) { var _local1 = this; _local1.floorArr[_local1.floorDex] = new floor(y, x1, x2); _local1.floorDex++; } function floorSection() { var _local1 = this; _local1.floorArr = new Array(); _local1.floorDex = 0; _local1.addFloor = addFloor; } function testMovingFloorHorizontals(obj, floorObj) { var _local3 = obj.clip._x - obj.clip._width; var _local2 = obj.clip._x; var _local1 = floorObj._parent._x + floorObj._x; var fixX2 = (_local1 + floorObj._width); if (((((_local1 >= _local3) && (_local1 <= _local2)) || ((fixX2 >= _local3) && (fixX2 <= _local2))) || ((_local3 >= _local1) && (_local3 <= fixX2))) || ((_local2 >= _local1) && (_local2 <= fixX2))) { return(true); } return(false); } function testMovingFloors(obj) { var _local2 = obj; var compY; var _local1; var fixY; var _local3; var j; var thisFloor; if (movingFloorDex > 0) { compY = _local2.clip._y; var j = 0; while (j < movingFloorDex) { thisFloor = movingFloorSet[j]; _local3 = 1; while (_local3 <= thisFloor.numInClip) { _local1 = thisFloor.clip["floor" + _local3]; fixY = thisFloor.clip._y + _local1._y; if ((fixY >= compY) && (fixY <= (compY + _local2.jumpspeed))) { if (testMovingFloorHorizontals(_local2, _local1)) { _local2.surface = _local1; _local2.surfaceType = "moving"; _local2.surfaceDelta = _local1._x; return(fixY + _local1._y); } } _local3++; } j++; } } return(-1); } function addMovingFloor(clip, numInClip) { movingFloorSet[movingFloorDex] = new movingFloor(clip, numInClip); movingFloorDex = movingFloorDex + 1; } function movingFloor(clip, numInClip) { this.clip = clip; this.numInClip = numInClip; } function easyAddFloor(tClip, eName, y, x) { var _local3 = tClip; var _local1 = Math.floor(y / sectionSize); var _local2 = floorSet[_local1].floorDex; _local3.attachMovie(eName, (("floor_" + _local1) + "_") + _local2, (_local1 * 100) + _local2); _local3[(("floor_" + _local1) + "_") + _local2]._y = y; _local3[(("floor_" + _local1) + "_") + _local2]._x = x; floorSet[Math.floor(_local1)].addFloor(y, x, x + _local3[(("floor_" + _local1) + "_") + _local2]._width); } function easyAddMovingFloor(tClip, eName, y, x, numFloors) { var _local2 = eName; var _local3 = tClip; var _local1 = movingFloorDex + 1; _local3.attachMovie(_local2, _local2 + _local1, ((gameHeight / sectionSize) * 100) + _local1); _local3[_local2 + _local1]._x = x; _local3[_local2 + _local1]._y = y; addMovingFloor(_local3[_local2 + _local1], numFloors); } function deleteFloors() { var _local1; var _local2; _local1 = 0; while (_local1 < floorSet.length) { _local2 = 0; while (_local2 < floorSet[_local1].floorDex) { attachClip[(("floor_" + _local1) + "_") + _local2].removeMovieClip(); _local2++; } floorSet[_local1].floorDex = 0; _local1++; } _local1 = 0; while (_local1 < movingFloorDex) { movingFloorSet[_local1].clip.removeMovieClip(); _local1++; } movingFloorDex = 0; floorSet[Math.floor(190 / sectionSize)].addFloor(190, 0, 320); easyAddMovingFloor(attachClip, "moving_scifi_floor", 107, 104, 1); easyAddFloor(attachClip, "cave_floor", 80, 16); easyAddFloor(attachClip, "cave_floor", 130, 16); stickMan1._x = origX; stickMan1._y = origY; } this.onEnterFrame = function () { detectKeys(); }; var stickObj1 = new myObject(stickMan1, 3); var activeCharacter = stickObj1; var origX = stickMan1._x; var origY = stickMan1._y; var sectionSize = 20; var gameWidth = 320; var gameHeight = 200; var gravity = 2; var i; var floorSet = new Array(Math.floor(gameHeight / sectionSize) + 1); i = 0; while (i < floorSet.length) { floorSet[i] = new floorSection(); i++; } var movingFloorSet = new Array(); var movingFloorDex = 0; floorSet[Math.floor(190 / sectionSize)].addFloor(190, 0, 320); easyAddMovingFloor(attachClip, "moving_scifi_floor", 107, 104, 1); easyAddFloor(attachClip, "cave_floor", 80, 16); easyAddFloor(attachClip, "cave_floor", 130, 16);
Symbol 95 Button
on (release) { _parent._parent._parent.loadRootDisplayText(targetText); }
Symbol 98 MovieClip [tutorialScreen52] Frame 1
var targetText = "this.onEnterFrame = function() { detectKeys(); }\n"; targetText = targetText + "function myObject(clip,speed){\n"; targetText = targetText + " this.clip = clip;\n"; targetText = targetText + " this.speed = speed;\n"; targetText = targetText + " this.face = 0;\n"; targetText = targetText + " this.jumpspeed = 0;\n"; targetText = targetText + " this.surfaceType = \"\";\n"; targetText = targetText + " this.surface = null;\n"; targetText = targetText + " this.surfaceDelta = 0;\n"; targetText = targetText + "\tthis.jumpstart = -15;\n"; targetText = targetText + "}\n"; targetText = targetText + "var stickObj1 = new myObject(stickMan1,3);\n"; targetText = targetText + "var activeCharacter = stickObj1;\n"; targetText = targetText + "function detectKeys(){\n"; targetText = targetText + " var pkey = \"\";\n"; targetText = targetText + " if (Key.isDown(Key.RIGHT)) { pkey += \"|1|\"; } \n"; targetText = targetText + " if (Key.isDown(Key.LEFT)) { pkey += \"|2|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.UP)) { pkey += \"|3|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.DOWN)) { pkey += \"|4|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.SPACE)) { pkey += \"|5|\"; }\n"; targetText = targetText + " actionRouting(pkey);\n"; targetText = targetText + "}\n"; targetText = targetText + "function actionRouting(pKey){\n"; targetText = targetText + " var dirX = 0;\n"; targetText = targetText + " if (pKey.indexOf(\"|1|\") != -1) { dirX = 1; }\n"; targetText = targetText + " if (pKey.indexOf(\"|2|\") != -1) { dirX = -1; }\n"; targetText = targetText + " if (pKey.indexOf(\"|5|\") != -1) {\n"; targetText = targetText + " if(activeCharacter.jumpspeed == 0 && activeCharacter.surfaceType != \"\"){\n"; targetText = targetText + " activeCharacter.surfaceType = \"\";\n"; targetText = targetText + " activeCharacter.jumpspeed = activeCharacter.jumpstart;\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " moveObject(activeCharacter,dirX,1);\n"; targetText = targetText + "}\n"; targetText = targetText + "function moveObject(obj, dirX, dirY){\n"; targetText = targetText + " obj.clip._x += dirX * obj.speed;\n"; targetText = targetText + " if(dirX<0){ obj.clip.gotoAndStop(\"left\"); }\n"; targetText = targetText + " if(dirX>0){ obj.clip.gotoAndStop(\"right\"); }\n"; targetText = targetText + " if(dirX !=0){ obj.clip.anim.gotoAndStop(\"walk\"); }else{ obj.clip.anim.gotoAndStop(\"stand\"); }\n"; targetText = targetText + " if(obj.surfaceType == \"\" && obj.jumpspeed != 0){ obj.clip.anim.gotoAndStop(\"jump\"); }\n"; targetText = targetText + " if(obj.surfaceType!=\"moving\"){\n"; targetText = targetText + " floorTest = testFloors(obj);\n"; targetText = targetText + " if(floorTest == -1 || obj.jumpspeed<0) {\n"; targetText = targetText + " obj.clip._y += obj.jumpspeed;\n"; targetText = targetText + " obj.jumpspeed += gravity;\n"; targetText = targetText + " }else{\n"; targetText = targetText + " obj.clip._y = floorTest;\n"; targetText = targetText + " obj.jumpspeed = 0;\n"; targetText = targetText + " }\n"; targetText = targetText + " if(floorTest == -1 && obj.jumpspeed>=0){\n"; targetText = targetText + " floorTest = testMovingFloors(obj);\n"; targetText = targetText + " if(floorTest != -1){\n"; targetText = targetText + " obj.clip._y = floorTest;\n"; targetText = targetText + " obj.jumpspeed = 0;\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }else{\n"; targetText = targetText + " if(!testMovingFloorHorizontals(obj,obj.surface)){\n"; targetText = targetText + " obj.surfaceType=\"\";\n"; targetText = targetText + " }else{\n"; targetText = targetText + " obj.clip._y = obj.surface._y + obj.surface._parent._y;\n"; targetText = targetText + " if(obj.surface._x!=obj.surfaceDelta && obj.surfaceDelta!=0){\n"; targetText = targetText + " obj.clip._x += obj.surface._x - obj.surfaceDelta;\n"; targetText = targetText + " obj.surfaceDelta = obj.surface._x;\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + "}\n"; targetText = targetText + "function testFloors(obj){\n"; targetText = targetText + " var aFloor;\n"; targetText = targetText + " var charY1 = obj.clip._y;\n"; targetText = targetText + " var charY2 = obj.clip._y + obj.jumpspeed;\n"; targetText = targetText + " var charX1 = obj.clip._x - obj.clip._width;\n"; targetText = targetText + " var charX2 = obj.clip._x;\n"; targetText = targetText + " var dex1 = Math.floor(charY1/sectionSize);\n"; targetText = targetText + " var dex2 = Math.floor(charY2/sectionSize);\n"; targetText = targetText + " var floorSect = new Array((dex2-dex1) + 1);\n"; targetText = targetText + " for(var j=0; j<floorSect.length; j++){\n"; targetText = targetText + " floorSect[j] = floorSet[dex1+j];\n"; targetText = targetText + " if(floorSect[j].floorDex>0){\n"; targetText = targetText + " for(var i=0; i<floorSect[j].floorDex; i++){\n"; targetText = targetText + " aFloor = floorSect[j].floorArr[i];\n"; targetText = targetText + " if(aFloor.y>=charY1 && aFloor.y<=charY2){\n"; targetText = targetText + " if(charX1>=aFloor.x1 && charX1<=aFloor.x2 || charX2>=aFloor.x1 && charX2<=aFloor.x2){\n"; targetText = targetText + " obj.surface = aFloor;\n"; targetText = targetText + " obj.surfaceType = \"static\";\n"; targetText = targetText + " return aFloor.y;\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " return -1;\n"; targetText = targetText + "}\n"; targetText = targetText + "function floor(y,x1,x2){\n"; targetText = targetText + " this.y = y;\n"; targetText = targetText + " this.x1 = x1;\n"; targetText = targetText + " this.x2 = x2;\n"; targetText = targetText + "}\n"; targetText = targetText + "function addFloor(y,x1,x2){\n"; targetText = targetText + "\tthis.floorArr[this.floorDex] = new floor(y,x1,x2);\n"; targetText = targetText + "\tthis.floorDex ++;\n"; targetText = targetText + "}\n"; targetText = targetText + "function floorSection(){\n"; targetText = targetText + "\tthis.floorArr = new Array();\n"; targetText = targetText + "\tthis.floorDex = 0;\n"; targetText = targetText + "\tthis.addFloor = addFloor;\n"; targetText = targetText + "}\n"; targetText = targetText + "function testMovingFloorHorizontals(obj,floorObj){\n"; targetText = targetText + " var c1 = obj.clip._x - obj.clip._width;\n"; targetText = targetText + " var c2 = obj.clip._x;\n"; targetText = targetText + "\tvar fixX = floorObj._parent._x + floorObj._x;\n"; targetText = targetText + "\tvar fixX2 = fixX + floorObj._width;\n"; targetText = targetText + "\tif(fixX>=c1 && fixX<=c2 || fixX2>=c1 && fixX2<=c2 || c1>=fixX && c1<=fixX2 || c2>=fixX && c2<=fixX2){\n"; targetText = targetText + "\t\treturn true;\n"; targetText = targetText + "\t}else{\n"; targetText = targetText + "\t\treturn false;\n"; targetText = targetText + "\t}\n"; targetText = targetText + "}\n"; targetText = targetText + "function testMovingFloors(obj){\n"; targetText = targetText + " var compY,thisClip,fixY,i,j,thisFloor;\n"; targetText = targetText + " if(movingFloorDex>0){\n"; targetText = targetText + " compY = obj.clip._y;\n"; targetText = targetText + " for(var j=0; j<movingFloorDex; j++){\n"; targetText = targetText + " thisFloor = movingFloorSet[j];\n"; targetText = targetText + " for(var i=1; i<=thisFloor.numInClip; i++){\n"; targetText = targetText + " thisClip = thisFloor.clip[\"floor\" + i];\n"; targetText = targetText + " fixY = thisFloor.clip._y + thisClip._y;\n"; targetText = targetText + " if(fixY>=compY && fixY<=compY + obj.jumpspeed){\n"; targetText = targetText + " if(testMovingFloorHorizontals(obj,thisClip)){\n"; targetText = targetText + " obj.surface = thisClip;\n"; targetText = targetText + " obj.surfaceType = \"moving\";\n"; targetText = targetText + " obj.surfaceDelta = thisClip._x;\n"; targetText = targetText + " return fixY + thisClip._y;\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " return -1;\n"; targetText = targetText + "}\n"; targetText = targetText + "function addMovingFloor(clip,numInClip){\n"; targetText = targetText + " movingFloorSet[movingFloorDex] = new movingFloor(clip,numInClip);\n"; targetText = targetText + " movingFloorDex += 1;\n"; targetText = targetText + "}\n"; targetText = targetText + "function movingFloor(clip,numInClip){\n"; targetText = targetText + " this.clip = clip;\n"; targetText = targetText + " this.numInClip = numInClip;\n"; targetText = targetText + "}\n"; targetText = targetText + "var sectionSize = 20;\n"; targetText = targetText + "var gameWidth = 320;\n"; targetText = targetText + "var gameHeight = 200;\n"; targetText = targetText + "var gravity = 2;\n"; targetText = targetText + "var i;\n"; targetText = targetText + "var floorSet = new Array(Math.floor(gameHeight/sectionSize)+1);\n"; targetText = targetText + "for (i=0; i<floorSet.length; i++) {\n"; targetText = targetText + "\tfloorSet[i] = new floorSection();\n"; targetText = targetText + "}\n"; targetText = targetText + "var movingFloorSet = new Array();\n"; targetText = targetText + "var movingFloorDex = 0;\n"; targetText = targetText + "function easyAddFloor(tClip,eName,y,x){\n"; targetText = targetText + " var setDex = Math.floor(y/sectionSize);\n"; targetText = targetText + " var floorInSet = floorSet[setDex].floorDex;\n"; targetText = targetText + " tClip.attachMovie(eName,\"floor_\" + setDex + \"_\" + floorInSet,setDex*100 + floorInSet);\n"; targetText = targetText + " tClip[\"floor_\" + setDex + \"_\" + floorInSet]._y = y;\n"; targetText = targetText + " tClip[\"floor_\" + setDex + \"_\" + floorInSet]._x = x;\n"; targetText = targetText + " floorSet[Math.floor(setDex)].addFloor(y,x,x+tClip[\"floor_\" + setDex + \"_\" + floorInSet]._width);\n"; targetText = targetText + "}\n"; targetText = targetText + "function easyAddMovingFloor(tClip,eName,y,x,numFloors){\n"; targetText = targetText + " var mDex = movingFloorDex + 1;\n"; targetText = targetText + " tClip.attachMovie(eName,eName + mDex,gameHeight/sectionSize*100 + mDex);\n"; targetText = targetText + " tClip[eName + mDex]._x = x;\n"; targetText = targetText + " tClip[eName + mDex]._y = y;\n"; targetText = targetText + " addMovingFloor(tClip[eName + mDex],numFloors);\n"; targetText = targetText + "}\n"; targetText = targetText + "floorSet[Math.floor(190/sectionSize)].addFloor(190,0,320);\n"; targetText = targetText + "easyAddMovingFloor(attachClip,\"moving_scifi_floor\",107,104,1);\n"; targetText = targetText + "easyAddFloor(attachClip,\"cave_floor\",80,16);\n"; targetText = targetText + "easyAddFloor(attachClip,\"cave_floor\",130,16);\n";
Instance of Symbol 92 MovieClip in Symbol 98 MovieClip [tutorialScreen52] Frame 1
on (release) { this.deleteFloors(); }
Symbol 126 MovieClip Frame 1
function adjustScroll(minY, maxY, scrollWhat, scrollBar) { var _local1 = scrollWhat; var _local2 = scrollBar; if (dragging) { spinFrame = spinFrame + 1; if (spinFrame > 59) { spinFrame = 1; } _local2.gotoAndStop(spinFrame); if (((_local1.minProgY == null) || (_local1.minProgY == undefined)) || ((_local1.minProgY + "") == "")) { _local1.minProgY = _local1._y - (_local1._height * 0.75); _local1.maxProgY = _local1._y; _local1.curScrollPos = _local2._y; } var _local3; if (_local2._y != _local1.curScrollPos) { _local3 = Math.abs((_local2._y - minY) / (maxY - minY)); newY = _local1.maxProgY - (_local3 * (_local1.maxProgY - _local1.minProgY)); if ((newY > _local1.minProgY) && (newY < _local1.maxProgY)) { _local1._y = newY; } else { if (newY <= _local1.minProgY) { _local1._y = _local1.minProgY; } if (newY >= _local1.maxProgY) { _local1._y = _local1.maxProgY; } } _local1.curScrollPos = _local2._y; } } } var spinFrame = 1; var dragging = false;
Instance of Symbol 50 MovieClip "scrollHandle" in Symbol 126 MovieClip Frame 1
on (press) { _parent.dragging = true; this.startDrag(false, 522.7, 18, 522.7, 141.5); } on (release) { _parent.dragging = false; this.stopDrag(); } onClipEvent (mouseMove) { _parent.adjustScroll(18, 141.5, _parent.scrollText, this); }
Symbol 136 MovieClip Frame 1
function adjustScroll(minY, maxY, scrollWhat, scrollBar) { var _local1 = scrollWhat; var _local2 = scrollBar; if (dragging) { spinFrame = spinFrame + 1; if (spinFrame > 59) { spinFrame = 1; } _local2.gotoAndStop(spinFrame); if (((_local1.minProgY == null) || (_local1.minProgY == undefined)) || ((_local1.minProgY + "") == "")) { _local1.minProgY = _local1._y - (_local1._height * 0.75); _local1.maxProgY = _local1._y; _local1.curScrollPos = _local2._y; } var _local3; if (_local2._y != _local1.curScrollPos) { _local3 = Math.abs((_local2._y - minY) / (maxY - minY)); newY = _local1.maxProgY - (_local3 * (_local1.maxProgY - _local1.minProgY)); if ((newY > _local1.minProgY) && (newY < _local1.maxProgY)) { _local1._y = newY; } else { if (newY <= _local1.minProgY) { _local1._y = _local1.minProgY; } if (newY >= _local1.maxProgY) { _local1._y = _local1.maxProgY; } } _local1.curScrollPos = _local2._y; } } } var spinFrame = 1; var dragging = false;
Instance of Symbol 50 MovieClip "scrollHandle" in Symbol 136 MovieClip Frame 1
on (press) { _parent.dragging = true; this.startDrag(false, 522.7, 18, 522.7, 141.5); } on (release) { _parent.dragging = false; this.stopDrag(); } onClipEvent (mouseMove) { _parent.adjustScroll(18, 141.5, _parent.scrollText, this); }
Symbol 158 MovieClip Frame 1
var checked = false; stop();
Symbol 158 MovieClip Frame 2
var checked = true; stop();
Symbol 172 MovieClip Frame 15
gotoAndPlay (1);
Symbol 172 MovieClip Frame 16
gotoAndPlay (1);
Symbol 172 MovieClip Frame 17
gotoAndPlay (1);
Symbol 178 MovieClip Frame 1
var mouseIsDown = false;
Symbol 179 MovieClip Frame 1
function myObject(clip, speed) { var _local1 = this; _local1.clip = clip; _local1.speed = speed; _local1.face = 0; _local1.jumpspeed = 0; } function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } actionRouting(_local1); } function actionRouting(pKey) { var _local1 = 0; if (pKey.indexOf("|1|") != -1) { _local1 = 1; } if (pKey.indexOf("|2|") != -1) { _local1 = -1; } moveObject(activeCharacter, _local1, 1); } function moveObject(obj, dirX, dirY) { var _local1 = obj; var _local2 = dirX; _local1.clip._x = _local1.clip._x + (_local2 * _local1.speed); if (_local2 < 0) { _local1.clip.gotoAndStop("left"); } if (_local2 > 0) { _local1.clip.gotoAndStop("right"); } if (_local2 != 0) { _local1.clip.anim.gotoAndStop("walk"); } else { _local1.clip.anim.gotoAndStop("stand"); } floorTest = testFloors(_local1); if ((floorTest == -1) || (_local1.jumpspeed < 0)) { _local1.clip._y = _local1.clip._y + _local1.jumpspeed; _local1.jumpspeed = _local1.jumpspeed + gravity; } else { _local1.clip._y = floorTest; _local1.jumpspeed = 0; } } function testFloors(obj) { var _local1; var charY1 = obj.clip._y; var charY2 = (obj.clip._y + obj.jumpspeed); var charX1 = (obj.clip._x - obj.clip._width); var charX2 = obj.clip._x; var dex1 = Math.floor(charY1 / sectionSize); var dex2 = Math.floor(charY2 / sectionSize); var floorSect = new Array((dex2 - dex1) + 1); var _local2 = 0; while (_local2 < floorSect.length) { floorSect[_local2] = floorSet[dex1 + _local2]; if (floorSect[_local2].floorDex > 0) { var _local3 = 0; while (_local3 < floorSect[_local2].floorDex) { _local1 = floorSect[_local2].floorArr[_local3]; if ((_local1.y >= charY1) && (_local1.y <= charY2)) { if (((charX1 >= _local1.x1) && (charX1 <= _local1.x2)) || ((charX2 >= _local1.x1) && (charX2 <= _local1.x2))) { return(_local1.y); } } _local3++; } } _local2++; } return(-1); } function floor(y, x1, x2) { var _local1 = this; _local1.y = y; _local1.x1 = x1; _local1.x2 = x2; } function addFloor(y, x1, x2) { var _local1 = this; _local1.floorArr[_local1.floorDex] = new floor(y, x1, x2); _local1.floorDex++; } function floorSection() { var _local1 = this; _local1.floorArr = new Array(); _local1.floorDex = 0; _local1.addFloor = addFloor; } function easyAddFloor(tClip, eName, y, x) { var _local3 = tClip; var _local1 = Math.floor(y / sectionSize); var _local2 = floorSet[_local1].floorDex; _local3.attachMovie(eName, (("floor_" + _local1) + "_") + _local2, (_local1 * 100) + _local2); _local3[(("floor_" + _local1) + "_") + _local2]._y = y; _local3[(("floor_" + _local1) + "_") + _local2]._x = x; floorSet[Math.floor(_local1)].addFloor(y, x, x + _local3[(("floor_" + _local1) + "_") + _local2]._width); } function deleteFloors() { var _local2; var _local1; _local2 = 0; while (_local2 < floorSet.length) { _local1 = 0; while (_local1 < floorSet[_local2].floorDex) { attachClip[(("floor_" + _local2) + "_") + _local1].removeMovieClip(); _local1++; } floorSet[_local2].floorDex = 0; _local2++; } floorSet[Math.floor(80 / sectionSize)].addFloor(80, 16, 116); floorSet[Math.floor(190 / sectionSize)].addFloor(190, 0, 320); stickMan1._x = origX; stickMan1._y = origY; } this.onEnterFrame = function () { detectKeys(); }; var stickObj1 = new myObject(stickMan1, 3); var activeCharacter = stickObj1; var origX = stickMan1._x; var origY = stickMan1._y; var sectionSize = 20; var gameWidth = 320; var gameHeight = 200; var gravity = 2; var i; var floorSet = new Array(Math.floor(gameHeight / sectionSize) + 1); i = 0; while (i < floorSet.length) { floorSet[i] = new floorSection(); i++; } floorSet[Math.floor(80 / sectionSize)].addFloor(80, 16, 116); floorSet[Math.floor(190 / sectionSize)].addFloor(190, 0, 320);
Symbol 185 Button
on (release) { var proofClip = minigame.corner; if (proofClip) { minigame.easyAddFloor(minigame.attachClip, selectedFloor, proofClip._y, proofClip._x); proofClip.removeMovieClip(); } }
Symbol 187 MovieClip [tutorialScreen37] Frame 1
function checkTheBox(box, floorType) { var _local2 = box; var _local3 = floorType; var _local1; _local1 = 1; while (_local1 < 4) { if (_local2._name == ("c" + _local1)) { _local2.gotoAndStop("on"); selectedFloor = _local3; } else { this["c" + _local1].gotoAndStop("off"); } _local1++; } } var selectedFloor = "vector_floor"; checkTheBox(c1, "vector_floor");
Instance of Symbol 158 MovieClip "c1" in Symbol 187 MovieClip [tutorialScreen37] Frame 1
on (release) { if (!this.checked) { _parent.checkTheBox(this, "vector_floor"); } }
Instance of Symbol 158 MovieClip "c2" in Symbol 187 MovieClip [tutorialScreen37] Frame 1
on (release) { if (!this.checked) { _parent.checkTheBox(this, "cave_floor"); } }
Instance of Symbol 158 MovieClip "c3" in Symbol 187 MovieClip [tutorialScreen37] Frame 1
on (release) { if (!this.checked) { _parent.checkTheBox(this, "scifi_floor"); } }
Instance of Symbol 178 MovieClip "minicontrol" in Symbol 187 MovieClip [tutorialScreen37] Frame 1
onClipEvent (mouseDown) { this.mouseIsDown = true; if ((((_xmouse >= 0) && (_ymouse >= 0)) && (_xmouse <= this._width)) && (_ymouse <= this._height)) { if (this.mouseIsDown) { _parent.minigame.attachMovie("corner", "corner", 999999); _parent.minigame.corner._x = _xmouse * 3.33333333333333; _parent.minigame.corner._y = _ymouse * 3.33333333333333; } } } onClipEvent (mouseUp) { this.mouseIsDown = false; } onClipEvent (mouseMove) { if ((((_xmouse >= 0) && (_ymouse >= 0)) && (_xmouse <= this._width)) && (_ymouse <= this._height)) { if (this.mouseIsDown) { _parent.minigame.attachMovie("corner", "corner", 999999); _parent.minigame.corner._x = _xmouse * 3.33333333333333; _parent.minigame.corner._y = _ymouse * 3.33333333333333; } } }
Instance of Symbol 179 MovieClip "minigame" in Symbol 187 MovieClip [tutorialScreen37] Frame 1
on (release) { this.deleteFloors(); }
Symbol 192 MovieClip Frame 1
function adjustScroll(minY, maxY, scrollWhat, scrollBar) { var _local1 = scrollWhat; var _local2 = scrollBar; if (dragging) { spinFrame = spinFrame + 1; if (spinFrame > 59) { spinFrame = 1; } _local2.gotoAndStop(spinFrame); if (((_local1.minProgY == null) || (_local1.minProgY == undefined)) || ((_local1.minProgY + "") == "")) { _local1.minProgY = _local1._y - (_local1._height * 0.75); _local1.maxProgY = _local1._y; _local1.curScrollPos = _local2._y; } var _local3; if (_local2._y != _local1.curScrollPos) { _local3 = Math.abs((_local2._y - minY) / (maxY - minY)); newY = _local1.maxProgY - (_local3 * (_local1.maxProgY - _local1.minProgY)); if ((newY > _local1.minProgY) && (newY < _local1.maxProgY)) { _local1._y = newY; } else { if (newY <= _local1.minProgY) { _local1._y = _local1.minProgY; } if (newY >= _local1.maxProgY) { _local1._y = _local1.maxProgY; } } _local1.curScrollPos = _local2._y; } } } var spinFrame = 1; var dragging = false;
Instance of Symbol 50 MovieClip "scrollHandle" in Symbol 192 MovieClip Frame 1
on (press) { _parent.dragging = true; this.startDrag(false, 522.7, 18, 522.7, 141.5); } on (release) { _parent.dragging = false; this.stopDrag(); } onClipEvent (mouseMove) { _parent.adjustScroll(18, 141.5, _parent.scrollText, this); }
Symbol 216 MovieClip [tutorialScreen32] Frame 1
var targetText = "this.onEnterFrame = function() { detectKeys(); }\n"; targetText = targetText + "function myObject(clip,speed){\n"; targetText = targetText + " this.clip = clip;\n"; targetText = targetText + " this.speed = speed;\n"; targetText = targetText + " this.face = 0;\n"; targetText = targetText + " this.jumpspeed = 0;\n"; targetText = targetText + "}\n"; targetText = targetText + "var stickObj1 = new myObject(stickMan1,3);\n"; targetText = targetText + "var activeCharacter = stickObj1;\n"; targetText = targetText + "function detectKeys(){\n"; targetText = targetText + " var pkey = \"\";\n"; targetText = targetText + " if (Key.isDown(Key.RIGHT)) { pkey += \"|1|\"; } \n"; targetText = targetText + " if (Key.isDown(Key.LEFT)) { pkey += \"|2|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.UP)) { pkey += \"|3|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.DOWN)) { pkey += \"|4|\"; }\n"; targetText = targetText + " actionRouting(pkey);\n"; targetText = targetText + "}\n"; targetText = targetText + "function actionRouting(pKey){\n"; targetText = targetText + " var dirX = 0;\n"; targetText = targetText + " if (pKey.indexOf(\"|1|\") != -1) { dirX = 1; }\n"; targetText = targetText + " if (pKey.indexOf(\"|2|\") != -1) { dirX = -1; }\n"; targetText = targetText + " moveObject(activeCharacter,dirX,1);\n"; targetText = targetText + "}\n"; targetText = targetText + "function moveObject(obj, dirX, dirY){\n"; targetText = targetText + " obj.clip._x += dirX * obj.speed;\n"; targetText = targetText + " if(dirX<0){ obj.clip.gotoAndStop(\"left\"); }\n"; targetText = targetText + " if(dirX>0){ obj.clip.gotoAndStop(\"right\"); }\n"; targetText = targetText + " if(dirX !=0){ obj.clip.anim.gotoAndStop(\"walk\"); }else{ obj.clip.anim.gotoAndStop(\"stand\"); }\n"; targetText = targetText + " floorTest = testFloors(obj);\n"; targetText = targetText + "\tif(floorTest == -1 || obj.jumpspeed<0) {\n"; targetText = targetText + "\t\tobj.clip._y += obj.jumpspeed;\n"; targetText = targetText + "\t\tobj.jumpspeed += gravity;\n"; targetText = targetText + "\t}else{\n"; targetText = targetText + "\t\tobj.clip._y = floorTest;\n"; targetText = targetText + "\t\tobj.jumpspeed = 0;\n"; targetText = targetText + "\t}\n"; targetText = targetText + "}\n"; targetText = targetText + "function testFloors(obj){\n"; targetText = targetText + " var aFloor;\n"; targetText = targetText + " var charY1 = obj.clip._y;\n"; targetText = targetText + " var charY2 = obj.clip._y + obj.jumpspeed;\n"; targetText = targetText + " var charX1 = obj.clip._x - obj.clip._width;\n"; targetText = targetText + " var charX2 = obj.clip._x;\n"; targetText = targetText + " var dex1 = Math.floor(charY1/sectionSize);\n"; targetText = targetText + " var dex2 = Math.floor(charY2/sectionSize);\n"; targetText = targetText + " var floorSect = new Array((dex2-dex1) + 1);\n"; targetText = targetText + " for(var j=0; j<floorSect.length; j++){\n"; targetText = targetText + " floorSect[j] = floorSet[dex1+j];\n"; targetText = targetText + " if(floorSect[j].floorDex>0){\n"; targetText = targetText + " for(var i=0; i<floorSect[j].floorDex; i++){\n"; targetText = targetText + " aFloor = floorSect[j].floorArr[i];\n"; targetText = targetText + " if(aFloor.y>=charY1 && aFloor.y<=charY2){\n"; targetText = targetText + " if(charX1>=aFloor.x1 && charX1<=aFloor.x2 || charX2>=aFloor.x1 && charX2<=aFloor.x2){\n"; targetText = targetText + " return aFloor.y;\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " }\n"; targetText = targetText + " return -1;\n"; targetText = targetText + "}\n"; targetText = targetText + "function floor(y,x1,x2){\n"; targetText = targetText + " this.y = y;\n"; targetText = targetText + " this.x1 = x1;\n"; targetText = targetText + " this.x2 = x2;\n"; targetText = targetText + "}\n"; targetText = targetText + "function addFloor(y,x1,x2){\n"; targetText = targetText + "\tthis.floorArr[this.floorDex] = new floor(y,x1,x2);\n"; targetText = targetText + "\tthis.floorDex ++;\n"; targetText = targetText + "}\n"; targetText = targetText + "function floorSection(){\n"; targetText = targetText + "\tthis.floorArr = new Array();\n"; targetText = targetText + "\tthis.floorDex = 0;\n"; targetText = targetText + "\tthis.addFloor = addFloor;\n"; targetText = targetText + "}\n"; targetText = targetText + "var sectionSize = 20;\n"; targetText = targetText + "var gameWidth = 320;\n"; targetText = targetText + "var gameHeight = 200;\n"; targetText = targetText + "var gravity = 2;\n"; targetText = targetText + "var i;\n"; targetText = targetText + "var floorSet = new Array(Math.floor(gameHeight/sectionSize)+1);\n"; targetText = targetText + "for (i=0; i<floorSet.length; i++) {\n"; targetText = targetText + "\tfloorSet[i] = new floorSection();\n"; targetText = targetText + "}\n"; targetText = targetText + "floorSet[Math.floor(80/sectionSize)].addFloor(80,16,116);\n"; targetText = targetText + "floorSet[Math.floor(190/sectionSize)].addFloor(190,0,320);\n";
Symbol 219 MovieClip Frame 1
function myObject(clip, speed) { var _local1 = this; _local1.clip = clip; _local1.speed = speed; _local1.jumpspeed = 0; } function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } actionRouting(_local1); } function actionRouting(pKey) { var _local1 = 0; if (pKey.indexOf("|1|") != -1) { _local1 = 1; } if (pKey.indexOf("|2|") != -1) { _local1 = -1; } moveObject(activeCharacter, _local1, 1); } function moveObject(obj, dirX, dirY) { var _local1 = obj; var _local2 = dirX; _local1.clip._x = _local1.clip._x + (_local2 * _local1.speed); if (_local2 < 0) { _local1.clip.gotoAndStop("left"); } if (_local2 > 0) { _local1.clip.gotoAndStop("right"); } if (_local2 != 0) { _local1.clip.anim.gotoAndStop("walk"); } else { _local1.clip.anim.gotoAndStop("stand"); } floorTest = testFloors(_local1); if ((floorTest == -1) || (_local1.jumpspeed < 0)) { _local1.clip._y = _local1.clip._y + _local1.jumpspeed; _local1.jumpspeed = _local1.jumpspeed + gravity; } else { _local1.clip._y = floorTest; _local1.jumpspeed = 0; } } function testFloors(obj) { var _local1; var charY1 = obj.clip._y; var charY2 = (obj.clip._y + obj.jumpspeed); var charX1 = (obj.clip._x - obj.clip._width); var charX2 = obj.clip._x; var dex1 = Math.floor(charY1 / sectionSize); var dex2 = Math.floor(charY2 / sectionSize); var floorSect = new Array((dex2 - dex1) + 1); var _local2 = 0; while (_local2 < floorSect.length) { floorSect[_local2] = floorSet[dex1 + _local2]; if (floorSect[_local2].floorDex > 0) { var _local3 = 0; while (_local3 < floorSect[_local2].floorDex) { _local1 = floorSect[_local2].floorArr[_local3]; if ((_local1.y >= charY1) && (_local1.y <= charY2)) { if (((charX1 >= _local1.x1) && (charX1 <= _local1.x2)) || ((charX2 >= _local1.x1) && (charX2 <= _local1.x2))) { return(_local1.y); } } _local3++; } } _local2++; } return(-1); } function floor(y, x1, x2) { var _local1 = this; _local1.y = y; _local1.x1 = x1; _local1.x2 = x2; } function addFloor(y, x1, x2) { var _local1 = this; _local1.floorArr[_local1.floorDex] = new floor(y, x1, x2); _local1.floorDex++; } function floorSection() { var _local1 = this; _local1.floorArr = new Array(); _local1.floorDex = 0; _local1.addFloor = addFloor; } this.onEnterFrame = function () { detectKeys(); }; var stickObj1 = new myObject(stickMan1, 3); var activeCharacter = stickObj1; var sectionSize = 20; var gameWidth = 320; var gameHeight = 200; var gravity = 2; var i; var floorSet = new Array(Math.floor(gameHeight / sectionSize) + 1); i = 0; while (i < floorSet.length) { floorSet[i] = new floorSection(); i++; } floorSet[Math.floor(80 / sectionSize)].addFloor(80, 16, 116); floorSet[Math.floor(190 / sectionSize)].addFloor(190, 0, 320);
Symbol 226 MovieClip Frame 1
function adjustScroll(minY, maxY, scrollWhat, scrollBar) { var _local1 = scrollWhat; var _local2 = scrollBar; if (dragging) { spinFrame = spinFrame + 1; if (spinFrame > 59) { spinFrame = 1; } _local2.gotoAndStop(spinFrame); if (((_local1.minProgY == null) || (_local1.minProgY == undefined)) || ((_local1.minProgY + "") == "")) { _local1.minProgY = _local1._y - (_local1._height * 0.75); _local1.maxProgY = _local1._y; _local1.curScrollPos = _local2._y; } var _local3; if (_local2._y != _local1.curScrollPos) { _local3 = Math.abs((_local2._y - minY) / (maxY - minY)); newY = _local1.maxProgY - (_local3 * (_local1.maxProgY - _local1.minProgY)); if ((newY > _local1.minProgY) && (newY < _local1.maxProgY)) { _local1._y = newY; } else { if (newY <= _local1.minProgY) { _local1._y = _local1.minProgY; } if (newY >= _local1.maxProgY) { _local1._y = _local1.maxProgY; } } _local1.curScrollPos = _local2._y; } } } var spinFrame = 1; var dragging = false;
Instance of Symbol 50 MovieClip "scrollHandle" in Symbol 226 MovieClip Frame 1
on (press) { _parent.dragging = true; this.startDrag(false, 522.7, 18, 522.7, 141.5); } on (release) { _parent.dragging = false; this.stopDrag(); } onClipEvent (mouseMove) { _parent.adjustScroll(18, 141.5, _parent.scrollText, this); }
Symbol 232 MovieClip Frame 1
function adjustScroll(minY, maxY, scrollWhat, scrollBar) { var _local1 = scrollWhat; var _local2 = scrollBar; if (dragging) { spinFrame = spinFrame + 1; if (spinFrame > 59) { spinFrame = 1; } _local2.gotoAndStop(spinFrame); if (((_local1.minProgY == null) || (_local1.minProgY == undefined)) || ((_local1.minProgY + "") == "")) { _local1.minProgY = _local1._y - (_local1._height * 0.75); _local1.maxProgY = _local1._y; _local1.curScrollPos = _local2._y; } var _local3; if (_local2._y != _local1.curScrollPos) { _local3 = Math.abs((_local2._y - minY) / (maxY - minY)); newY = _local1.maxProgY - (_local3 * (_local1.maxProgY - _local1.minProgY)); if ((newY > _local1.minProgY) && (newY < _local1.maxProgY)) { _local1._y = newY; } else { if (newY <= _local1.minProgY) { _local1._y = _local1.minProgY; } if (newY >= _local1.maxProgY) { _local1._y = _local1.maxProgY; } } _local1.curScrollPos = _local2._y; } } } var spinFrame = 1; var dragging = false;
Instance of Symbol 50 MovieClip "scrollHandle" in Symbol 232 MovieClip Frame 1
on (press) { _parent.dragging = true; this.startDrag(false, 522.7, 18, 522.7, 141.5); } on (release) { _parent.dragging = false; this.stopDrag(); } onClipEvent (mouseMove) { _parent.adjustScroll(18, 141.5, _parent.scrollText, this); }
Symbol 281 MovieClip [tutorialScreen20] Frame 1
function myObject(clip, speed) { var _local1 = this; _local1.clip = clip; _local1.speed = speed; _local1.face = 0; } function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } actionRouting(_local1); } function actionRouting(pKey) { var _local1 = 0; if (pKey.indexOf("|1|") != -1) { _local1 = 1; } if (pKey.indexOf("|2|") != -1) { _local1 = -1; } moveObject(activeCharacter, _local1, 1); } function moveObject(obj, dirX, dirY) { var _local1 = obj; var _local2 = dirX; _local1.clip._x = _local1.clip._x + (_local2 * _local1.speed); if (_local2 > 0) { _local1.clip.gotoAndStop("right"); _local1.face = 0; } if (_local2 < 0) { _local1.clip.gotoAndStop("left"); _local1.face = 1; } if (_local2 != 0) { _local1.clip.anim.gotoAndStop("walk"); } else { _local1.clip.anim.gotoAndStop("stand"); } } this.onEnterFrame = function () { detectKeys(); }; var stickObj1 = new myObject(stickMan1, 3); var activeCharacter = stickObj1; var targetText = "this.onEnterFrame = function() { detectKeys(); }\n"; targetText = targetText + "function myObject(clip,speed){\n"; targetText = targetText + " this.clip = clip;\n"; targetText = targetText + " this.speed = speed;\n"; targetText = targetText + " this.face = 0;\n"; targetText = targetText + "}\n"; targetText = targetText + "var stickObj1 = new myObject(stickMan1,3);\n"; targetText = targetText + "var activeCharacter = stickObj1;\n"; targetText = targetText + "function detectKeys(){\n"; targetText = targetText + " var pkey = \"\";\n"; targetText = targetText + " if (Key.isDown(Key.RIGHT)) { pkey += \"|1|\"; } \n"; targetText = targetText + " if (Key.isDown(Key.LEFT)) { pkey += \"|2|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.UP)) { pkey += \"|3|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.DOWN)) { pkey += \"|4|\"; }\n"; targetText = targetText + " actionRouting(pkey);\n"; targetText = targetText + "}\n"; targetText = targetText + "function actionRouting(pKey){\n"; targetText = targetText + " var dirX = 0;\n"; targetText = targetText + " if (pKey.indexOf(\"|1|\") != -1) { dirX = 1; }\n"; targetText = targetText + " if (pKey.indexOf(\"|2|\") != -1) { dirX = -1; }\n"; targetText = targetText + " moveObject(activeCharacter,dirX,1);\n"; targetText = targetText + "}\n"; targetText = targetText + "function moveObject(obj, dirX, dirY){\n"; targetText = targetText + " obj.clip._x += dirX * obj.speed;\n"; targetText = targetText + " if(dirX>0){ obj.clip.gotoAndStop(\"right\"); obj.face = 0; }\n"; targetText = targetText + " if(dirX<0){ obj.clip.gotoAndStop(\"left\"); obj.face = 1; }\n"; targetText = targetText + " if(dirX !=0){ obj.clip.anim.gotoAndStop(\"walk\"); }else{ obj.clip.anim.gotoAndStop(\"stand\"); }\n"; targetText = targetText + "}\n";
Symbol 294 MovieClip [tutorialScreen17] Frame 1
function myObject(clip, speed) { this.clip = clip; this.speed = speed; } function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } actionRouting(_local1); } function actionRouting(pKey) { var _local1 = 0; if (pKey.indexOf("|1|") != -1) { _local1 = 1; } if (pKey.indexOf("|2|") != -1) { _local1 = -1; } moveObject(activeCharacter, _local1, 1); } function moveObject(obj, dirX, dirY) { var _local1 = obj; _local1.clip._x = _local1.clip._x + (dirX * _local1.speed); if (dirX != 0) { _local1.clip.gotoAndStop("walk"); } else { _local1.clip.gotoAndStop("stand"); } } this.onEnterFrame = function () { detectKeys(); }; var stickObj1 = new myObject(stickMan1, 3); var activeCharacter = stickObj1;
Symbol 305 MovieClip [tutorialScreen13] Frame 1
function myObject(clip, speed) { this.clip = clip; this.speed = speed; } function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } actionRouting(_local1); } function actionRouting(pKey) { walk = false; if (pKey.indexOf("|1|") != -1) { activeCharacter.clip._x = activeCharacter.clip._x + activeCharacter.speed; walk = true; } if (pKey.indexOf("|2|") != -1) { activeCharacter.clip._x = activeCharacter.clip._x - activeCharacter.speed; walk = true; } if (walk) { activeCharacter.clip.gotoAndStop("walk"); } else { activeCharacter.clip.gotoAndStop("stand"); } } this.onEnterFrame = function () { detectKeys(); }; var stickObj1 = new myObject(stickMan1, 3); var activeCharacter = stickObj1;
Symbol 327 Button
on (rollOver) { _parent._parent._parent.screenContent("hard-coding"); } on (rollOut) { _parent._parent._parent.blankContent(); }
Symbol 332 Button
on (release) { activeCharacter = stickObj1; }
Symbol 333 Button
on (release) { activeCharacter = stickObj2; }
Symbol 335 MovieClip [tutorialScreen9] Frame 1
function myObject(clip, speed) { this.clip = clip; this.speed = speed; } function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } actionRouting(_local1); } function actionRouting(pKey) { if (pKey.indexOf("|1|") != -1) { activeCharacter.clip._x = activeCharacter.clip._x + activeCharacter.speed; } if (pKey.indexOf("|2|") != -1) { activeCharacter.clip._x = activeCharacter.clip._x - activeCharacter.speed; } } this.onEnterFrame = function () { detectKeys(); }; var stickObj1 = new myObject(stickMan1, 3); var stickObj2 = new myObject(stickMan2, 6); var activeCharacter = stickObj1;
Symbol 339 MovieClip Frame 1
function detectKeys() { var _local1 = ""; if (Key.isDown(39)) { _local1 = _local1 + "|1|"; } if (Key.isDown(37)) { _local1 = _local1 + "|2|"; } if (Key.isDown(38)) { _local1 = _local1 + "|3|"; } if (Key.isDown(40)) { _local1 = _local1 + "|4|"; } actionRouting(_local1); } function actionRouting(pKey) { if (pKey.indexOf("|1|") != -1) { stickMan._x = stickMan._x + 3; } if (pKey.indexOf("|2|") != -1) { stickMan._x = stickMan._x - 3; } } this.onEnterFrame = function () { detectKeys(); };
Symbol 342 MovieClip [tutorialScreen7] Frame 1
var targetText = "this.onEnterFrame = function() { detectKeys(); }\n"; targetText = targetText + "function detectKeys(){\n"; targetText = targetText + " var pkey = \"\";\n"; targetText = targetText + " if (Key.isDown(Key.RIGHT)) { pkey += \"|1|\"; } \n"; targetText = targetText + " if (Key.isDown(Key.LEFT)) { pkey += \"|2|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.UP)) { pkey += \"|3|\"; }\n"; targetText = targetText + " if (Key.isDown(Key.DOWN)) { pkey += \"|4|\"; }\n"; targetText = targetText + " actionRouting(pkey);\n"; targetText = targetText + "}\n"; targetText = targetText + "function actionRouting(pKey){\n"; targetText = targetText + " if (pKey.indexOf(\"|1|\") != -1) { stickMan._x += 3; }\n"; targetText = targetText + " if (pKey.indexOf(\"|2|\") != -1) { stickMan._x -= 3; }\n"; targetText = targetText + "}\n";
Symbol 370 Button
on (rollOver) { _parent._parent._parent.screenContent("FPS"); } on (rollOut) { _parent._parent._parent.blankContent(); }
Symbol 383 Button
on (rollOver) { _parent._parent._parent.screenContent("this"); } on (rollOut) { _parent._parent._parent.blankContent(); }
Symbol 387 Button
on (rollOver) { _parent._parent._parent.screenContent("onEnterFrame"); } on (rollOut) { _parent._parent._parent.blankContent(); }
Symbol 403 MovieClip Frame 23
stop();
Symbol 413 MovieClip [blip_clip] Frame 18
stop();
Instance of Symbol 415 MovieClip in Symbol 416 MovieClip [meteor_click_clip] Frame 1
on (release) { _parent._parent._parent.launchMeteor(); }
Symbol 419 MovieClip [meteor_crack_clip] Frame 1
stop();
Symbol 419 MovieClip [meteor_crack_clip] Frame 7
this.removeMovieClip();
Symbol 422 MovieClip [meteor_crater_clip] Frame 1
stop();
Symbol 422 MovieClip [meteor_crater_clip] Frame 7
this.removeMovieClip();
Symbol 438 MovieClip [explosion] Frame 21
this.removeMovieClip();
Symbol 438 MovieClip [explosion] Frame 22
stop();
Symbol 443 MovieClip Frame 1
stop();
Symbol 452 MovieClip Frame 30
stop();
Symbol 452 MovieClip Frame 65
stop();
Symbol 461 MovieClip Frame 1
_parent.swapScreens(); stop();
Symbol 461 MovieClip Frame 15
_parent.canMoveForward = true; gotoAndPlay (1);
Symbol 467 MovieClip Frame 1
stop();
Symbol 467 MovieClip Frame 13
stop();
Symbol 479 Button
on (release) { _parent._parent.repairit.play(); }
Symbol 481 MovieClip Frame 30
_parent.moviePlayer("screen_mover", "movein"); _parent.moviePlayer("button_mover", "movein"); _parent.moviePlayer("progress_mover", "movein"); stop();
Symbol 481 MovieClip Frame 31
stop();
Symbol 481 MovieClip Frame 86
stop();
Symbol 481 MovieClip Frame 97
gotoAndStop ("fix");
Symbol 497 MovieClip Frame 30
stop();
Symbol 499 MovieClip Frame 34
stop();
Symbol 502 MovieClip Frame 30
stop();
Symbol 504 MovieClip Frame 35
stop();
Symbol 508 MovieClip Frame 30
stop();
Symbol 512 MovieClip Frame 1
stop();
Symbol 512 MovieClip Frame 20
stop();
Symbol 512 MovieClip Frame 21
_parent.screenDestroyed = true;
Symbol 512 MovieClip Frame 100
stop();
Symbol 512 MovieClip Frame 117
gotoAndStop ("fix");
Symbol 514 MovieClip Frame 1
stop();
Symbol 514 MovieClip Frame 20
stop();
Symbol 514 MovieClip Frame 81
stop();
Symbol 514 MovieClip Frame 92
gotoAndStop ("fix");
Symbol 518 Button
on (release) { if (_parent._parent.canMoveForward) { _parent._parent.canMoveForward = false; _parent._parent.nextScreen(); } }
Symbol 519 MovieClip Frame 1
stop();
Symbol 525 Button
on (release) { if (_parent._parent.canMoveForward) { _parent._parent.backScreen(); } }
Symbol 532 Button
on (release) { _parent._parent._parent._parent.meteor(); }
Symbol 538 Button
on (release) { _parent._parent._parent._parent.nuke(); }
Symbol 540 MovieClip Frame 1
stop();
Symbol 540 MovieClip Frame 11
stop();
Symbol 546 Button
on (release) { _parent.buttons.play(); }
Symbol 547 MovieClip Frame 1
stop();
Symbol 555 MovieClip Frame 10
_parent.play(); stop();
Symbol 562 MovieClip Frame 10
_parent.play(); stop();
Symbol 568 MovieClip Frame 10
_parent.play(); stop();
Symbol 570 MovieClip Frame 1
stop();
Symbol 570 MovieClip Frame 20
allButtons.buttons.gotoAndStop(_parent.disasterType); stop();
Symbol 570 MovieClip Frame 21
allButtons.buttons.gotoAndStop(_parent.disasterType); stop();
Symbol 570 MovieClip Frame 26
allButtons.buttons.gotoAndStop(_parent.disasterType);
Symbol 570 MovieClip Frame 32
allButtons.buttons.gotoAndStop(_parent.disasterType);
Symbol 570 MovieClip Frame 38
allButtons.buttons.gotoAndStop(_parent.disasterType);
Symbol 570 MovieClip Frame 55
stop();
Symbol 570 MovieClip Frame 56
allButtons.buttons.gotoAndStop(_parent.disasterType);
Instance of Symbol 548 MovieClip "allButtons" in Symbol 570 MovieClip Frame 56
onClipEvent (enterFrame) { this.buttons.gotoAndStop(_parent._parent.disasterType); }
Symbol 570 MovieClip Frame 65
gotoAndStop ("fix");
Symbol 577 Button
on (release) { _parent._parent.resetRootDisplay(); }
Symbol 578 MovieClip Frame 15
stop();
Symbol 579 MovieClip Frame 1
var theText = ""; stop();
Symbol 579 MovieClip Frame 6
rootText.text = theText; stop();
Symbol 580 MovieClip Frame 1
stop();
Symbol 580 MovieClip Frame 20
_parent.startTheMayhem();
Symbol 610 MovieClip Frame 1
stop();
Symbol 610 MovieClip Frame 146
stop();
Symbol 612 MovieClip Frame 1
function attachOneMark(x, y, depth, frame) { var _local1 = depth; var _local2 = _root; _local2.attachMovie("corner", "onecorner" + _local1, _local1); _local2["onecorner" + _local1]._x = x; _local2["onecorner" + _local1]._y = y; _local2["onecorner" + _local1].gotoAndStop(frame); } function toRad(deg) { return((deg / 180) * Math.PI); } function toDeg(rad) { return((rad / Math.PI) * 180); } function dist(x1, y1, x2, y2) { return(Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2))); } function returnAngle(tX, tY, x, y) { var _local1 = Math.acos((tX - x) / dist(tX, tY, x, y)); if (tY <= y) { return(toDeg(_local1)); } return(toDeg((Math.PI*2) - _local1)); } function returnFullRotation() { return(-1 * returnAngle(_parent._xmouse, _parent._ymouse, missle._x, missle._y)); } function determineDirection(angle1, angle2) { var _local2 = Math.abs(angle2 - angle1); var _local1 = (angle2 - angle1) / _local2; if ((360 - _local2) < _local2) { _local1 = -1 * _local1; } return(_local1); } function trackTarget() { var directionX; var _local2; var _local1; var _local3; var YComponent; _local2 = returnFullRotation(); if (Math.abs(_local2 - curRotation) >= turnDeg) { directionX = determineDirection(curRotation, _local2); _local1 = curRotation + (directionX * turnDeg); if (_local1 < -360) { _local1 = _local1 + 360; } if (_local1 > 0) { _local1 = _local1 - 360; } curRotation = _local1; } else { curRotation = _local2; } missle._rotation = curRotation; _local3 = Math.cos(toRad(curRotation)) * speed; yComponent = Math.sin(toRad(curRotation)) * speed; componentTotal = Math.abs(_local3) + Math.abs(yComponent); missle._x = missle._x + (speed * (_local3 / componentTotal)); missle._y = missle._y + (speed * (yComponent / componentTotal)); if (dist(missle._x + (35 * (_local3 / componentTotal)), missle._y + (35 * (yComponent / componentTotal)), _parent._xmouse, _parent._ymouse) < 10) { delete missile.onEnterFrame; _parent.attachExplosion(missle._x, missle._y, 0); _parent.exploders.play(); missle._rotation = 0; missle._x = 300; missle._y = 450; missle.jet.gotoAndPlay("stop"); } } var missle = this; var turnDeg = 25; var speed = 20; var curRotation = 0;
Symbol 615 MovieClip Frame 1
stop();
Symbol 615 MovieClip Frame 5
_parent.button_mover.gotoAndStop("fix"); _parent.screen_mover.gotoAndStop("fix"); _parent.progress_mover.gotoAndStop("fix"); _parent.border_mover.gotoAndStop("fix"); _parent.lines_mover.gotoAndStop("fix"); _parent.notesMove.gotoAndStop("fix"); _parent.exploders.meteor_click.removeMovieClip(); _parent.screens.blip.blip_clip0.removeMovieClip(); _parent.fall_in_repair.gotoAndStop(1); _parent.meteorDex = 0; _parent.mAttachTrack = 0; clearInterval(_parent.meteorInterval); _parent.meteorInterval = null; _parent.meteorTimeCount = 0; _parent.lowDex = 0; _parent.screenDestroyed = false; _parent.barDestroyed = false; _parent.buttonsDestroyed = false;

Library Items

Symbol 1 GraphicUsed by:25
Symbol 2 GraphicUsed by:25
Symbol 3 GraphicUsed by:25
Symbol 4 GraphicUsed by:25
Symbol 5 GraphicUsed by:25
Symbol 6 GraphicUsed by:25
Symbol 7 GraphicUsed by:25
Symbol 8 GraphicUsed by:25
Symbol 9 GraphicUsed by:25
Symbol 10 GraphicUsed by:25
Symbol 11 GraphicUsed by:25
Symbol 12 GraphicUsed by:25
Symbol 13 GraphicUsed by:25
Symbol 14 GraphicUsed by:25
Symbol 15 GraphicUsed by:25
Symbol 16 GraphicUsed by:25
Symbol 17 GraphicUsed by:25
Symbol 18 GraphicUsed by:25
Symbol 19 GraphicUsed by:25
Symbol 20 GraphicUsed by:25
Symbol 21 GraphicUsed by:25
Symbol 22 GraphicUsed by:25
Symbol 23 GraphicUsed by:25
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClip [meteor]Uses:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Symbol 26 GraphicUsed by:38 42 55 83 87 90 98 102 106 111 120 127 131 138 142 145 147 149 151 153 187 193 210 212 214 216 221 227 233 236 239 249 254 258 272 276 281 283 292 294 296 298 301 305 313 321 328 335 337 342 359 371 375 388 393 406 415 461
Symbol 27 FontUsed by:28 29 34 35 39 81 84 88 96 189 244 278 289 290 299 308 309 310 311 316 325 326 368 369 379 381 382 385 386 389 394
Symbol 28 TextUses:27Used by:38 42 83 87 90 98 102 106 111 120 127 131 138 142 145 147 149 151 153 187 193 210 212 214 216 221 227 233 236 239 249 254 258 272 276 281 283 292 294 296 298 301 305 313 321 328 335 337 342 359 371 375 388 393
Symbol 29 TextUses:27Used by:38 342 359 371 375 388
Symbol 30 FontUsed by:31 32 40 41 79 82 85 86 89 91 94 97 99 101 103 105 107 108 110 114 116 117 118 119 121 123 128 133 137 139 141 143 144 146 148 150 152 154 180 181 186 188 189 194 197 198 199 200 201 202 203 204 205 206 207 208 211 213 215 217 220 222 223 228 229 234 235 237 238 241 242 243 248 250 251 252 253 255 256 257 259 261 262 263 264 265 266 267 268 269 270 273 274 275 279 280 282 285 288 289 290 291 293 295 297 300 303 304 307 308 309 312 315 319 320 322 329 330 331 334 336 338 340 341 346 347 348 349 350 351 352 353 356 357 358 360 362 364 365 366 372 373 374 376 391 392 396 397 398 399 400 401 402 444 445 572
Symbol 31 TextUses:30Used by:38
Symbol 32 TextUses:30Used by:38
Symbol 33 GraphicUsed by:37
Symbol 34 TextUses:27Used by:37
Symbol 35 TextUses:27Used by:37
Symbol 36 GraphicUsed by:37 327 370 383 387
Symbol 37 ButtonUses:33 34 35 36Used by:38
Symbol 38 MovieClip [tutorialScreen4]Uses:26 28 29 31 32 37
Symbol 39 TextUses:27Used by:42 153 187 193 210 212 214 216 221 227 233 236 239 249 254 258 272 276
Symbol 40 TextUses:30Used by:42
Symbol 41 TextUses:30Used by:42
Symbol 42 MovieClip [tutorialScreen27]Uses:26 28 39 40 41
Symbol 43 BitmapUsed by:46 446
Symbol 44 BitmapUsed by:46
Symbol 45 BitmapUsed by:46
Symbol 46 GraphicUses:43 44 45Used by:51
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:50
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClipUses:48 49Used by:51 126 136 192 226 232
Symbol 51 MovieClipUses:46 50Used by:55 481
Symbol 52 BitmapUsed by:54
Symbol 53 BitmapUsed by:54
Symbol 54 GraphicUses:52 53Used by:55 481
Symbol 55 MovieClip [meteorScreen]Uses:26 51 54
Symbol 56 BitmapUsed by:57 177 218
Symbol 57 GraphicUses:56Used by:80 92 179 272
Symbol 58 MovieClipUsed by:80 92 179 461
Symbol 59 BitmapUsed by:60 218 260
Symbol 60 GraphicUses:59Used by:80 159 179
Symbol 61 GraphicUsed by:67
Symbol 62 GraphicUsed by:67
Symbol 63 GraphicUsed by:67
Symbol 64 GraphicUsed by:67
Symbol 65 GraphicUsed by:67
Symbol 66 GraphicUsed by:67
Symbol 67 MovieClipUses:61 62 63 64 65 66Used by:77 246 313
Symbol 68 GraphicUsed by:74 361
Symbol 69 GraphicUsed by:74 361
Symbol 70 GraphicUsed by:74 361
Symbol 71 GraphicUsed by:74 361
Symbol 72 GraphicUsed by:74 361
Symbol 73 GraphicUsed by:74 361
Symbol 74 MovieClipUses:68 69 70 71 72 73Used by:77 313 321 335 339
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:77 120
Symbol 77 MovieClipUses:67 74 76Used by:78 294 305
Symbol 78 MovieClipUses:77Used by:80 92 179 219 281
Symbol 79 TextUses:30Used by:80 179
Symbol 80 MovieClipUses:57 58 60 78 79Used by:83
Symbol 81 TextUses:27Used by:83 127 131 138 142 145 147 149 151
Symbol 82 TextUses:30Used by:83
Symbol 83 MovieClip [tutorialScreen47]Uses:26 80 28 81 82
Symbol 84 TextUses:27Used by:87
Symbol 85 TextUses:30Used by:87
Symbol 86 TextUses:30Used by:87
Symbol 87 MovieClip [tutorialScreen54]Uses:26 28 84 85 86
Symbol 88 TextUses:27Used by:90
Symbol 89 TextUses:30Used by:90
Symbol 90 MovieClip [tutorialScreen53]Uses:26 28 88 89
Symbol 91 TextUses:30Used by:92
Symbol 92 MovieClipUses:57 58 78 91Used by:98
Symbol 93 GraphicUsed by:95
Symbol 94 TextUses:30Used by:95
Symbol 95 ButtonUses:93 94Used by:98 216 281 342
Symbol 96 TextUses:27Used by:98 102 106 111 120
Symbol 97 TextUses:30Used by:98
Symbol 98 MovieClip [tutorialScreen52]Uses:26 92 95 28 96 97
Symbol 99 TextUses:30Used by:102
Symbol 100 GraphicUsed by:102
Symbol 101 TextUses:30Used by:102
Symbol 102 MovieClip [tutorialScreen51]Uses:26 99 100 28 96 101
Symbol 103 TextUses:30Used by:106
Symbol 104 GraphicUsed by:106
Symbol 105 TextUses:30Used by:106
Symbol 106 MovieClip [tutorialScreen50]Uses:26 103 104 28 96 105
Symbol 107 TextUses:30Used by:111
Symbol 108 TextUses:30Used by:111
Symbol 109 GraphicUsed by:111
Symbol 110 TextUses:30Used by:111
Symbol 111 MovieClip [tutorialScreen49]Uses:26 107 108 109 28 96 110
Symbol 112 BitmapUsed by:113
Symbol 113 GraphicUses:112Used by:120
Symbol 114 TextUses:30Used by:120
Symbol 115 GraphicUsed by:120 361 371
Symbol 116 TextUses:30Used by:120
Symbol 117 TextUses:30Used by:120
Symbol 118 TextUses:30Used by:120
Symbol 119 TextUses:30Used by:120
Symbol 120 MovieClip [tutorialScreen48]Uses:26 113 28 96 114 115 76 116 117 118 119
Symbol 121 TextUses:30Used by:127
Symbol 122 GraphicUsed by:126 192 226 232
Symbol 123 TextUses:30Used by:124
Symbol 124 MovieClipUses:123Used by:126
Symbol 125 GraphicUsed by:126
Symbol 126 MovieClipUses:122 124 125 50Used by:127
Symbol 127 MovieClip [tutorialScreen46]Uses:26 28 81 121 126
Symbol 128 TextUses:30Used by:131
Symbol 129 BitmapUsed by:130
Symbol 130 GraphicUses:129Used by:131
Symbol 131 MovieClip [tutorialScreen45]Uses:26 28 81 128 130
Symbol 132 GraphicUsed by:136
Symbol 133 TextUses:30Used by:134
Symbol 134 MovieClipUses:133Used by:136
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClipUses:132 134 135 50Used by:138
Symbol 137 TextUses:30Used by:138
Symbol 138 MovieClip [tutorialScreen44]Uses:26 136 28 81 137
Symbol 139 TextUses:30Used by:142
Symbol 140 GraphicUsed by:142
Symbol 141 TextUses:30Used by:142
Symbol 142 MovieClip [tutorialScreen43]Uses:26 139 140 28 81 141
Symbol 143 TextUses:30Used by:145
Symbol 144 TextUses:30Used by:145
Symbol 145 MovieClip [tutorialScreen42]Uses:26 28 81 143 144
Symbol 146 TextUses:30Used by:147
Symbol 147 MovieClip [tutorialScreen41]Uses:26 28 81 146
Symbol 148 TextUses:30Used by:149
Symbol 149 MovieClip [tutorialScreen40]Uses:26 28 81 148
Symbol 150 TextUses:30Used by:151
Symbol 151 MovieClip [tutorialScreen39]Uses:26 28 81 150
Symbol 152 TextUses:30Used by:153
Symbol 153 MovieClip [tutorialScreen38]Uses:26 28 39 152
Symbol 154 TextUses:30Used by:187
Symbol 155 GraphicUsed by:187
Symbol 156 GraphicUsed by:158
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:156 157Used by:187
Symbol 159 MovieClip [cave_floor]Uses:60Used by:187 212
Symbol 160 GraphicUsed by:174
Symbol 161 BitmapUsed by:162
Symbol 162 GraphicUses:161Used by:172
Symbol 163 BitmapUsed by:164
Symbol 164 GraphicUses:163Used by:172
Symbol 165 BitmapUsed by:166
Symbol 166 GraphicUses:165Used by:172
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:172
Symbol 169 BitmapUsed by:170
Symbol 170 GraphicUses:169Used by:172
Symbol 171 SoundUsed by:172
Symbol 172 MovieClipUses:162 164 166 168 170 171Used by:174 612
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClip [scifi_floor]Uses:160 172 173Used by:187 212 414
Symbol 175 GraphicUsed by:176
Symbol 176 MovieClip [vector_floor]Uses:175Used by:187 212
Symbol 177 GraphicUses:56Used by:178
Symbol 178 MovieClipUses:177Used by:187
Symbol 179 MovieClipUses:57 58 60 78 79Used by:187
Symbol 180 TextUses:30Used by:187
Symbol 181 TextUses:30Used by:187
Symbol 182 GraphicUsed by:185 332 333
Symbol 183 GraphicUsed by:185 332 333
Symbol 184 GraphicUsed by:185 332 333
Symbol 185 ButtonUses:182 183 184Used by:187
Symbol 186 TextUses:30Used by:187
Symbol 187 MovieClip [tutorialScreen37]Uses:26 28 39 154 155 158 159 174 176 178 179 180 181 185 186
Symbol 188 TextUses:30Used by:193
Symbol 189 TextUses:30 27Used by:190
Symbol 190 MovieClipUses:189Used by:192
Symbol 191 GraphicUsed by:192
Symbol 192 MovieClipUses:122 190 191 50Used by:193
Symbol 193 MovieClip [tutorialScreen36]Uses:26 28 39 188 192
Symbol 194 TextUses:30Used by:210
Symbol 195 BitmapUsed by:196
Symbol 196 GraphicUses:195Used by:209
Symbol 197 TextUses:30Used by:209
Symbol 198 TextUses:30Used by:209
Symbol 199 TextUses:30Used by:209
Symbol 200 TextUses:30Used by:209
Symbol 201 TextUses:30Used by:209
Symbol 202 TextUses:30Used by:209
Symbol 203 TextUses:30Used by:209
Symbol 204 TextUses:30Used by:209
Symbol 205 TextUses:30Used by:209
Symbol 206 TextUses:30Used by:209
Symbol 207 TextUses:30Used by:209
Symbol 208 TextUses:30Used by:209
Symbol 209 MovieClipUses:196 197 198 199 200 201 202 203 204 205 206 207 208Used by:210
Symbol 210 MovieClip [tutorialScreen35]Uses:26 28 39 194 209
Symbol 211 TextUses:30Used by:212
Symbol 212 MovieClip [tutorialScreen34]Uses:26 28 39 211 176 159 174
Symbol 213 TextUses:30Used by:214
Symbol 214 MovieClip [tutorialScreen33]Uses:26 28 39 213
Symbol 215 TextUses:30Used by:216
Symbol 216 MovieClip [tutorialScreen32]Uses:26 28 39 215 95
Symbol 217 TextUses:30Used by:221
Symbol 218 GraphicUses:59 56Used by:219
Symbol 219 MovieClipUses:218 78Used by:221
Symbol 220 TextUses:30Used by:221
Symbol 221 MovieClip [tutorialScreen31]Uses:26 28 39 217 219 220
Symbol 222 TextUses:30Used by:227
Symbol 223 TextUses:30Used by:224
Symbol 224 MovieClipUses:223Used by:226
Symbol 225 GraphicUsed by:226
Symbol 226 MovieClipUses:122 224 225 50Used by:227
Symbol 227 MovieClip [tutorialScreen30]Uses:26 28 39 222 226
Symbol 228 TextUses:30Used by:233
Symbol 229 TextUses:30Used by:230
Symbol 230 MovieClipUses:229Used by:232
Symbol 231 GraphicUsed by:232
Symbol 232 MovieClipUses:122 230 231 50Used by:233
Symbol 233 MovieClip [tutorialScreen29]Uses:26 28 39 228 232
Symbol 234 TextUses:30Used by:236
Symbol 235 TextUses:30Used by:236
Symbol 236 MovieClip [tutorialScreen28]Uses:26 28 39 234 235
Symbol 237 TextUses:30Used by:239
Symbol 238 TextUses:30Used by:239
Symbol 239 MovieClip [tutorialScreen26]Uses:26 28 39 237 238
Symbol 240 GraphicUsed by:249
Symbol 241 TextUses:30Used by:246
Symbol 242 TextUses:30Used by:246
Symbol 243 TextUses:30Used by:246
Symbol 244 TextUses:27Used by:245
Symbol 245 MovieClipUses:244Used by:246
Symbol 246 MovieClipUses:67 241 242 243 245Used by:249
Symbol 247 GraphicUsed by:249
Symbol 248 TextUses:30Used by:249
Symbol 249 MovieClip [tutorialScreen25]Uses:26 240 28 39 246 247 248
Symbol 250 TextUses:30Used by:254
Symbol 251 TextUses:30Used by:254
Symbol 252 TextUses:30Used by:254
Symbol 253 TextUses:30Used by:254
Symbol 254 MovieClip [tutorialScreen24]Uses:26 28 39 250 251 252 253
Symbol 255 TextUses:30Used by:258
Symbol 256 TextUses:30Used by:258
Symbol 257 TextUses:30Used by:258
Symbol 258 MovieClip [tutorialScreen23]Uses:26 28 39 255 256 257
Symbol 259 TextUses:30Used by:272
Symbol 260 GraphicUses:59Used by:272
Symbol 261 TextUses:30Used by:272
Symbol 262 TextUses:30Used by:272
Symbol 263 TextUses:30Used by:272
Symbol 264 TextUses:30Used by:272
Symbol 265 TextUses:30Used by:272
Symbol 266 TextUses:30Used by:272
Symbol 267 TextUses:30Used by:272
Symbol 268 TextUses:30Used by:272
Symbol 269 TextUses:30Used by:272
Symbol 270 TextUses:30Used by:272
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClip [tutorialScreen22]Uses:26 57 28 39 259 260 261 262 263 264 265 266 267 268 269 270 271
Symbol 273 TextUses:30Used by:276
Symbol 274 TextUses:30Used by:276
Symbol 275 TextUses:30Used by:276
Symbol 276 MovieClip [tutorialScreen21]Uses:26 28 39 273 274 275
Symbol 277 GraphicUsed by:281
Symbol 278 TextUses:27Used by:281 283 292 294 296 298
Symbol 279 TextUses:30Used by:281
Symbol 280 TextUses:30Used by:281
Symbol 281 MovieClip [tutorialScreen20]Uses:26 277 28 278 279 78 95 280
Symbol 282 TextUses:30Used by:283
Symbol 283 MovieClip [tutorialScreen19]Uses:26 28 278 282
Symbol 284 GraphicUsed by:292
Symbol 285 TextUses:30Used by:292
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:292 313
Symbol 288 TextUses:30Used by:292 313
Symbol 289 TextUses:27 30Used by:292
Symbol 290 TextUses:27 30Used by:292
Symbol 291 TextUses:30Used by:292
Symbol 292 MovieClip [tutorialScreen18]Uses:26 284 28 278 285 287 288 289 290 291
Symbol 293 TextUses:30Used by:294
Symbol 294 MovieClip [tutorialScreen17]Uses:26 28 278 293 77
Symbol 295 TextUses:30Used by:296
Symbol 296 MovieClip [tutorialScreen16]Uses:26 28 278 295
Symbol 297 TextUses:30Used by:298
Symbol 298 MovieClip [tutorialScreen15]Uses:26 28 278 297
Symbol 299 TextUses:27Used by:301 305 313 321 328 335 337
Symbol 300 TextUses:30Used by:301
Symbol 301 MovieClip [tutorialScreen14]Uses:26 28 299 300
Symbol 302 GraphicUsed by:305
Symbol 303 TextUses:30Used by:305
Symbol 304 TextUses:30Used by:305
Symbol 305 MovieClip [tutorialScreen13]Uses:26 302 28 299 303 77 304
Symbol 306 GraphicUsed by:313
Symbol 307 TextUses:30Used by:313
Symbol 308 TextUses:27 30Used by:313
Symbol 309 TextUses:27 30Used by:313
Symbol 310 TextUses:27Used by:313
Symbol 311 TextUses:27Used by:313 321
Symbol 312 TextUses:30Used by:313
Symbol 313 MovieClip [tutorialScreen12]Uses:26 306 28 299 307 287 288 308 309 67 310 74 311 312
Symbol 314 GraphicUsed by:321
Symbol 315 TextUses:30Used by:321
Symbol 316 TextUses:27Used by:321
Symbol 317 BitmapUsed by:318
Symbol 318 GraphicUses:317Used by:321
Symbol 319 TextUses:30Used by:321
Symbol 320 TextUses:30Used by:321
Symbol 321 MovieClip [tutorialScreen11]Uses:26 314 28 299 315 74 311 316 318 319 320
Symbol 322 TextUses:30Used by:328
Symbol 323 GraphicUsed by:328
Symbol 324 GraphicUsed by:327
Symbol 325 TextUses:27Used by:327
Symbol 326 TextUses:27Used by:327
Symbol 327 ButtonUses:324 325 326 36Used by:328
Symbol 328 MovieClip [tutorialScreen10]Uses:26 28 299 322 323 327
Symbol 329 TextUses:30Used by:335
Symbol 330 TextUses:30Used by:335
Symbol 331 TextUses:30Used by:335
Symbol 332 ButtonUses:182 183 184Used by:335
Symbol 333 ButtonUses:182 183 184Used by:335
Symbol 334 TextUses:30Used by:335
Symbol 335 MovieClip [tutorialScreen9]Uses:26 28 299 329 74 330 331 332 333 334
Symbol 336 TextUses:30Used by:337
Symbol 337 MovieClip [tutorialScreen8]Uses:26 28 299 336
Symbol 338 TextUses:30Used by:342
Symbol 339 MovieClipUses:74Used by:342
Symbol 340 TextUses:30Used by:342
Symbol 341 TextUses:30Used by:342
Symbol 342 MovieClip [tutorialScreen7]Uses:26 28 29 338 339 95 340 341
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:343Used by:354
Symbol 345 GraphicUsed by:354
Symbol 346 TextUses:30Used by:354
Symbol 347 TextUses:30Used by:354
Symbol 348 TextUses:30Used by:354
Symbol 349 TextUses:30Used by:354
Symbol 350 TextUses:30Used by:354
Symbol 351 TextUses:30Used by:354
Symbol 352 TextUses:30Used by:354
Symbol 353 TextUses:30Used by:354
Symbol 354 MovieClipUses:344 345 346 347 348 349 350 351 352 353Used by:359
Symbol 355 GraphicUsed by:359
Symbol 356 TextUses:30Used by:359
Symbol 357 TextUses:30Used by:359
Symbol 358 TextUses:30Used by:359
Symbol 359 MovieClip [tutorialScreen6]Uses:26 354 355 28 29 356 357 358
Symbol 360 TextUses:30Used by:371
Symbol 361 MovieClipUses:115 68 69 70 71 72 73Used by:371
Symbol 362 TextUses:30Used by:371
Symbol 363 GraphicUsed by:371
Symbol 364 TextUses:30Used by:371
Symbol 365 TextUses:30Used by:371
Symbol 366 TextUses:30Used by:371
Symbol 367 GraphicUsed by:370
Symbol 368 TextUses:27Used by:370
Symbol 369 TextUses:27Used by:370
Symbol 370 ButtonUses:367 368 369 36Used by:371
Symbol 371 MovieClip [tutorialScreen5]Uses:26 28 29 360 115 361 362 363 364 365 366 370
Symbol 372 TextUses:30Used by:375
Symbol 373 TextUses:30Used by:375
Symbol 374 TextUses:30Used by:375
Symbol 375 MovieClip [tutorialScreen3]Uses:26 28 29 372 373 374
Symbol 376 TextUses:30Used by:388
Symbol 377 BitmapUsed by:378
Symbol 378 GraphicUses:377Used by:388
Symbol 379 TextUses:27Used by:388
Symbol 380 GraphicUsed by:383
Symbol 381 TextUses:27Used by:383
Symbol 382 TextUses:27Used by:383
Symbol 383 ButtonUses:380 381 382 36Used by:388
Symbol 384 GraphicUsed by:387
Symbol 385 TextUses:27Used by:387
Symbol 386 TextUses:27Used by:387
Symbol 387 ButtonUses:384 385 386 36Used by:388
Symbol 388 MovieClip [tutorialScreen2]Uses:26 28 29 376 378 379 383 387
Symbol 389 TextUses:27Used by:393
Symbol 390 FontUsed by:391
Symbol 391 TextUses:30 390Used by:393
Symbol 392 TextUses:30Used by:393
Symbol 393 MovieClip [tutorialScreen1]Uses:26 28 389 391 392
Symbol 394 TextUses:27Used by:406
Symbol 395 GraphicUsed by:403
Symbol 396 TextUses:30Used by:403
Symbol 397 TextUses:30Used by:403
Symbol 398 TextUses:30Used by:403
Symbol 399 TextUses:30Used by:403
Symbol 400 TextUses:30Used by:403
Symbol 401 TextUses:30Used by:403
Symbol 402 TextUses:30Used by:403
Symbol 403 MovieClipUses:395 396 397 398 399 400 401 402Used by:406
Symbol 404 BitmapUsed by:405 516
Symbol 405 GraphicUses:404Used by:406 518 549
Symbol 406 MovieClip [tutorialScreen0]Uses:26 394 403 405
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClip [corner]Uses:407
Symbol 409 GraphicUsed by:413
Symbol 410 ShapeTweeningUsed by:413
Symbol 411 ShapeTweeningUsed by:413
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClip [blip_clip]Uses:409 410 411 412
Symbol 414 MovieClip [moving_scifi_floor]Uses:174
Symbol 415 MovieClipUses:26Used by:416
Symbol 416 MovieClip [meteor_click_clip]Uses:415
Symbol 417 BitmapUsed by:418
Symbol 418 GraphicUses:417Used by:419
Symbol 419 MovieClip [meteor_crack_clip]Uses:418
Symbol 420 BitmapUsed by:421
Symbol 421 GraphicUses:420Used by:422
Symbol 422 MovieClip [meteor_crater_clip]Uses:421
Symbol 423 BitmapUsed by:424
Symbol 424 GraphicUses:423Used by:438
Symbol 425 SoundUsed by:438
Symbol 426 BitmapUsed by:427
Symbol 427 GraphicUses:426Used by:438
Symbol 428 BitmapUsed by:429
Symbol 429 GraphicUses:428Used by:438
Symbol 430 BitmapUsed by:431
Symbol 431 GraphicUses:430Used by:438
Symbol 432 BitmapUsed by:433
Symbol 433 GraphicUses:432Used by:438
Symbol 434 BitmapUsed by:435
Symbol 435 GraphicUses:434Used by:438
Symbol 436 BitmapUsed by:437
Symbol 437 GraphicUses:436Used by:438
Symbol 438 MovieClip [explosion]Uses:424 425 427 429 431 433 435 437Used by:580
Symbol 439 ShapeTweeningUsed by:443
Symbol 440 BitmapUsed by:441
Symbol 441 GraphicUses:440Used by:443
Symbol 442 GraphicUsed by:443
Symbol 443 MovieClipUses:439 441 442Used by:514  Timeline
Symbol 444 TextUses:30Used by:Timeline
Symbol 445 TextUses:30Used by:Timeline
Symbol 446 GraphicUses:43Used by:451
Symbol 447 GraphicUsed by:451
Symbol 448 FontUsed by:449 484
Symbol 449 EditableTextUses:448Used by:450
Symbol 450 MovieClipUses:449Used by:451
Symbol 451 MovieClipUses:446 447 450Used by:452
Symbol 452 MovieClipUses:451Used by:Timeline
Symbol 453 GraphicUsed by:461  Timeline
Symbol 454 ShapeTweeningUsed by:461
Symbol 455 ShapeTweeningUsed by:461
Symbol 456 GraphicUsed by:457
Symbol 457 MovieClipUses:456Used by:461
Symbol 458 SoundUsed by:461
Symbol 459 GraphicUsed by:461
Symbol 460 GraphicUsed by:461
Symbol 461 MovieClipUses:26 454 58 455 453 457 458 459 460Used by:Timeline
Symbol 462 GraphicUsed by:463 464 465 466
Symbol 463 MovieClipUses:462Used by:467
Symbol 464 MovieClipUses:462Used by:467
Symbol 465 MovieClipUses:462Used by:467
Symbol 466 MovieClipUses:462Used by:467
Symbol 467 MovieClipUses:463 464 465 466Used by:Timeline
Symbol 468 SoundUsed by:481
Symbol 469 SoundUsed by:481
Symbol 470 BitmapUsed by:471
Symbol 471 GraphicUses:470Used by:480 519 526 533 539 555 562
Symbol 472 BitmapUsed by:473 475 476
Symbol 473 GraphicUses:472Used by:479
Symbol 474 BitmapUsed by:475 476
Symbol 475 GraphicUses:472 474Used by:479
Symbol 476 GraphicUses:472 474Used by:479
Symbol 477 GraphicUsed by:479
Symbol 478 SoundUsed by:479 518 525 532 538 546 549 556
Symbol 479 ButtonUses:473 475 476 477 478Used by:480
Symbol 480 MovieClipUses:471 479Used by:481 610
Symbol 481 MovieClipUses:51 54 468 469 480Used by:Timeline
Symbol 482 BitmapUsed by:483 490 495 496 498 500 501 503 505 507 511
Symbol 483 GraphicUses:482Used by:487
Symbol 484 EditableTextUses:448Used by:487
Symbol 485 BitmapUsed by:486
Symbol 486 GraphicUses:485Used by:487
Symbol 487 MovieClipUses:483 484 486Used by:512
Symbol 488 SoundUsed by:512 514 570
Symbol 489 GraphicUsed by:512
Symbol 490 GraphicUses:482Used by:512
Symbol 491 GraphicUsed by:512
Symbol 492 GraphicUsed by:512
Symbol 493 SoundUsed by:512
Symbol 494 GraphicUsed by:512
Symbol 495 GraphicUses:482Used by:512
Symbol 496 GraphicUses:482Used by:497
Symbol 497 MovieClipUses:496Used by:512
Symbol 498 GraphicUses:482Used by:499
Symbol 499 MovieClipUses:498Used by:512
Symbol 500 GraphicUses:482Used by:512
Symbol 501 GraphicUses:482Used by:502
Symbol 502 MovieClipUses:501Used by:512
Symbol 503 GraphicUses:482Used by:504
Symbol 504 MovieClipUses:503Used by:512
Symbol 505 GraphicUses:482Used by:512
Symbol 506 GraphicUsed by:512
Symbol 507 GraphicUses:482Used by:508
Symbol 508 MovieClipUses:507Used by:512
Symbol 509 GraphicUsed by:512
Symbol 510 GraphicUsed by:512
Symbol 511 GraphicUses:482Used by:512
Symbol 512 MovieClipUses:487 488 489 490 491 492 493 494 495 497 499 500 502 504 505 506 508 509 510 511Used by:Timeline
Symbol 513 SoundUsed by:514
Symbol 514 MovieClipUses:443 488 513Used by:Timeline
Symbol 515 BitmapUsed by:516
Symbol 516 GraphicUses:404 515Used by:518 549
Symbol 517 GraphicUsed by:518 532 538 549
Symbol 518 ButtonUses:405 516 517 478Used by:519
Symbol 519 MovieClipUses:471 518Used by:570
Symbol 520 BitmapUsed by:521 523
Symbol 521 GraphicUses:520Used by:525 556
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:520 522Used by:525 556
Symbol 524 GraphicUsed by:525 556
Symbol 525 ButtonUses:521 523 524 478Used by:526
Symbol 526 MovieClipUses:471 525Used by:570
Symbol 527 BitmapUsed by:528 530 531
Symbol 528 GraphicUses:527Used by:532
Symbol 529 BitmapUsed by:530 531
Symbol 530 GraphicUses:527 529Used by:532
Symbol 531 GraphicUses:527 529Used by:532
Symbol 532 ButtonUses:528 530 531 517 478Used by:533
Symbol 533 MovieClipUses:471 532Used by:540
Symbol 534 BitmapUsed by:535 537
Symbol 535 GraphicUses:534Used by:538
Symbol 536 BitmapUsed by:537
Symbol 537 GraphicUses:534 536Used by:538
Symbol 538 ButtonUses:535 537 517 478Used by:539
Symbol 539 MovieClipUses:471 538Used by:540
Symbol 540 MovieClipUses:533 539Used by:548 568
Symbol 541 BitmapUsed by:542
Symbol 542 GraphicUses:541Used by:547
Symbol 543 BitmapUsed by:544
Symbol 544 GraphicUses:543Used by:546
Symbol 545 GraphicUsed by:546
Symbol 546 ButtonUses:544 545 478Used by:547
Symbol 547 MovieClipUses:542 546Used by:548 568
Symbol 548 MovieClipUses:540 547Used by:570
Symbol 549 ButtonUses:405 516 517 478Used by:555
Symbol 550 GraphicUsed by:555
Symbol 551 GraphicUsed by:555
Symbol 552 GraphicUsed by:555
Symbol 553 GraphicUsed by:555
Symbol 554 GraphicUsed by:555
Symbol 555 MovieClipUses:471 549 550 551 552 553 554Used by:570
Symbol 556 ButtonUses:521 523 524 478Used by:562
Symbol 557 GraphicUsed by:562
Symbol 558 GraphicUsed by:562
Symbol 559 GraphicUsed by:562
Symbol 560 GraphicUsed by:562
Symbol 561 GraphicUsed by:562
Symbol 562 MovieClipUses:471 556 557 558 559 560 561Used by:570
Symbol 563 GraphicUsed by:568
Symbol 564 GraphicUsed by:568
Symbol 565 GraphicUsed by:568
Symbol 566 GraphicUsed by:568
Symbol 567 GraphicUsed by:568
Symbol 568 MovieClipUses:540 547 563 564 565 566 567Used by:570
Symbol 569 SoundUsed by:570
Symbol 570 MovieClipUses:519 526 548 488 555 562 568 569Used by:Timeline
Symbol 571 ShapeTweeningUsed by:579
Symbol 572 EditableTextUses:30Used by:579
Symbol 573 GraphicUsed by:579
Symbol 574 GraphicUsed by:576 577
Symbol 575 GraphicUsed by:576 577
Symbol 576 ButtonUses:574 575Used by:578
Symbol 577 ButtonUses:574 575Used by:578
Symbol 578 MovieClipUses:576 577Used by:579
Symbol 579 MovieClipUses:571 572 573 578Used by:Timeline
Symbol 580 MovieClipUses:438Used by:Timeline
Symbol 581 ShapeTweeningUsed by:610
Symbol 582 GraphicUsed by:610
Symbol 583 GraphicUsed by:610
Symbol 584 ShapeTweeningUsed by:610
Symbol 585 ShapeTweeningUsed by:610
Symbol 586 GraphicUsed by:610
Symbol 587 ShapeTweeningUsed by:610
Symbol 588 GraphicUsed by:610
Symbol 589 GraphicUsed by:610
Symbol 590 GraphicUsed by:610
Symbol 591 GraphicUsed by:610
Symbol 592 GraphicUsed by:610
Symbol 593 GraphicUsed by:610
Symbol 594 ShapeTweeningUsed by:610
Symbol 595 ShapeTweeningUsed by:610
Symbol 596 ShapeTweeningUsed by:610
Symbol 597 ShapeTweeningUsed by:610
Symbol 598 ShapeTweeningUsed by:610
Symbol 599 ShapeTweeningUsed by:610
Symbol 600 ShapeTweeningUsed by:610
Symbol 601 ShapeTweeningUsed by:610
Symbol 602 ShapeTweeningUsed by:610
Symbol 603 ShapeTweeningUsed by:610
Symbol 604 ShapeTweeningUsed by:610
Symbol 605 ShapeTweeningUsed by:610
Symbol 606 ShapeTweeningUsed by:610
Symbol 607 ShapeTweeningUsed by:610
Symbol 608 ShapeTweeningUsed by:610
Symbol 609 GraphicUsed by:610
Symbol 610 MovieClipUses:581 480 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609Used by:Timeline
Symbol 611 GraphicUsed by:612
Symbol 612 MovieClipUses:172 611Used by:Timeline
Symbol 613 GraphicUsed by:615
Symbol 614 SoundUsed by:615
Symbol 615 MovieClipUses:613 614Used by:Timeline

Instance Names

"preloadBar"Frame 1Symbol 443 MovieClip
"notesMove"Frame 4Symbol 452 MovieClip
"screens"Frame 4Symbol 461 MovieClip
"lines_mover"Frame 4Symbol 467 MovieClip
"border_mover"Frame 4Symbol 481 MovieClip
"screen_mover"Frame 4Symbol 512 MovieClip
"progress_mover"Frame 4Symbol 514 MovieClip
"button_mover"Frame 4Symbol 570 MovieClip
"rootDisplay"Frame 4Symbol 579 MovieClip
"exploders"Frame 4Symbol 580 MovieClip
"fall_in_repair"Frame 4Symbol 610 MovieClip
"missle"Frame 4Symbol 612 MovieClip
"repairit"Frame 4Symbol 615 MovieClip
"spinner"Symbol 50 MovieClip Frame 1Symbol 48 MovieClip
"scrollHandle"Symbol 51 MovieClip Frame 1Symbol 50 MovieClip
"movements"Symbol 77 MovieClip Frame 1Symbol 67 MovieClip
"movements"Symbol 77 MovieClip Frame 2Symbol 74 MovieClip
"movements"Symbol 77 MovieClip Frame 3Symbol 76 MovieClip
"anim"Symbol 78 MovieClip Frame 1Symbol 77 MovieClip
"attachClip"Symbol 80 MovieClip Frame 1Symbol 58 MovieClip
"stickMan1"Symbol 80 MovieClip Frame 1Symbol 78 MovieClip
"attachClip"Symbol 92 MovieClip Frame 1Symbol 58 MovieClip
"stickMan1"Symbol 92 MovieClip Frame 1Symbol 78 MovieClip
"scrollText"Symbol 126 MovieClip Frame 1Symbol 124 MovieClip
"scrollHandle"Symbol 126 MovieClip Frame 1Symbol 50 MovieClip
"scrollText"Symbol 136 MovieClip Frame 1Symbol 134 MovieClip
"scrollHandle"Symbol 136 MovieClip Frame 1Symbol 50 MovieClip
"attachClip"Symbol 179 MovieClip Frame 1Symbol 58 MovieClip
"stickMan1"Symbol 179 MovieClip Frame 1Symbol 78 MovieClip
"c1"Symbol 187 MovieClip [tutorialScreen37] Frame 1Symbol 158 MovieClip
"c2"Symbol 187 MovieClip [tutorialScreen37] Frame 1Symbol 158 MovieClip
"c3"Symbol 187 MovieClip [tutorialScreen37] Frame 1Symbol 158 MovieClip
"minicontrol"Symbol 187 MovieClip [tutorialScreen37] Frame 1Symbol 178 MovieClip
"minigame"Symbol 187 MovieClip [tutorialScreen37] Frame 1Symbol 179 MovieClip
"scrollText"Symbol 192 MovieClip Frame 1Symbol 190 MovieClip
"scrollHandle"Symbol 192 MovieClip Frame 1Symbol 50 MovieClip
"stickMan1"Symbol 219 MovieClip Frame 1Symbol 78 MovieClip
"scrollText"Symbol 226 MovieClip Frame 1Symbol 224 MovieClip
"scrollHandle"Symbol 226 MovieClip Frame 1Symbol 50 MovieClip
"scrollText"Symbol 232 MovieClip Frame 1Symbol 230 MovieClip
"scrollHandle"Symbol 232 MovieClip Frame 1Symbol 50 MovieClip
"stickMan1"Symbol 281 MovieClip [tutorialScreen20] Frame 1Symbol 78 MovieClip
"stickMan1"Symbol 294 MovieClip [tutorialScreen17] Frame 1Symbol 77 MovieClip
"stickMan1"Symbol 305 MovieClip [tutorialScreen13] Frame 1Symbol 77 MovieClip
"stickMan1"Symbol 335 MovieClip [tutorialScreen9] Frame 1Symbol 74 MovieClip
"stickMan2"Symbol 335 MovieClip [tutorialScreen9] Frame 1Symbol 74 MovieClip
"stickMan"Symbol 339 MovieClip Frame 1Symbol 74 MovieClip
"floor1"Symbol 414 MovieClip [moving_scifi_floor] Frame 1Symbol 174 MovieClip [scifi_floor]
"notes"Symbol 450 MovieClip Frame 1Symbol 449 EditableText
"scrollText"Symbol 451 MovieClip Frame 1Symbol 450 MovieClip
"notesHolder"Symbol 452 MovieClip Frame 1Symbol 451 MovieClip
"screen_back"Symbol 461 MovieClip Frame 1Symbol 58 MovieClip
"screen_front"Symbol 461 MovieClip Frame 1Symbol 58 MovieClip
"blip"Symbol 461 MovieClip Frame 1Symbol 58 MovieClip
"screen_back"Symbol 461 MovieClip Frame 16Symbol 58 MovieClip
"screen_front"Symbol 461 MovieClip Frame 16Symbol 58 MovieClip
"display"Symbol 487 MovieClip Frame 1Symbol 484 EditableText
"screen"Symbol 512 MovieClip Frame 1Symbol 487 MovieClip
"screen"Symbol 512 MovieClip Frame 101Symbol 487 MovieClip
"progressor"Symbol 514 MovieClip Frame 1Symbol 443 MovieClip
"buttons"Symbol 548 MovieClip Frame 1Symbol 540 MovieClip
"buttons"Symbol 568 MovieClip Frame 1Symbol 540 MovieClip
"allButtons"Symbol 570 MovieClip Frame 1Symbol 548 MovieClip
"allButtons"Symbol 570 MovieClip Frame 21Symbol 568 MovieClip
"allButtons"Symbol 570 MovieClip Frame 26Symbol 548 MovieClip
"allButtons"Symbol 570 MovieClip Frame 56Symbol 548 MovieClip
"rootText"Symbol 579 MovieClip Frame 1Symbol 572 EditableText
"jet"Symbol 612 MovieClip Frame 1Symbol 172 MovieClip

Special Tags

ExportAssets (56)Timeline Frame 1Symbol 25 as "meteor"
ExportAssets (56)Timeline Frame 1Symbol 38 as "tutorialScreen4"
ExportAssets (56)Timeline Frame 1Symbol 42 as "tutorialScreen27"
ExportAssets (56)Timeline Frame 1Symbol 55 as "meteorScreen"
ExportAssets (56)Timeline Frame 1Symbol 83 as "tutorialScreen47"
ExportAssets (56)Timeline Frame 1Symbol 87 as "tutorialScreen54"
ExportAssets (56)Timeline Frame 1Symbol 90 as "tutorialScreen53"
ExportAssets (56)Timeline Frame 1Symbol 98 as "tutorialScreen52"
ExportAssets (56)Timeline Frame 1Symbol 102 as "tutorialScreen51"
ExportAssets (56)Timeline Frame 1Symbol 106 as "tutorialScreen50"
ExportAssets (56)Timeline Frame 1Symbol 111 as "tutorialScreen49"
ExportAssets (56)Timeline Frame 1Symbol 120 as "tutorialScreen48"
ExportAssets (56)Timeline Frame 1Symbol 127 as "tutorialScreen46"
ExportAssets (56)Timeline Frame 1Symbol 131 as "tutorialScreen45"
ExportAssets (56)Timeline Frame 1Symbol 138 as "tutorialScreen44"
ExportAssets (56)Timeline Frame 1Symbol 142 as "tutorialScreen43"
ExportAssets (56)Timeline Frame 1Symbol 145 as "tutorialScreen42"
ExportAssets (56)Timeline Frame 1Symbol 147 as "tutorialScreen41"
ExportAssets (56)Timeline Frame 1Symbol 149 as "tutorialScreen40"
ExportAssets (56)Timeline Frame 1Symbol 151 as "tutorialScreen39"
ExportAssets (56)Timeline Frame 1Symbol 153 as "tutorialScreen38"
ExportAssets (56)Timeline Frame 1Symbol 159 as "cave_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 176 as "vector_floor"
ExportAssets (56)Timeline Frame 1Symbol 187 as "tutorialScreen37"
ExportAssets (56)Timeline Frame 1Symbol 193 as "tutorialScreen36"
ExportAssets (56)Timeline Frame 1Symbol 210 as "tutorialScreen35"
ExportAssets (56)Timeline Frame 1Symbol 176 as "vector_floor"
ExportAssets (56)Timeline Frame 1Symbol 159 as "cave_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 212 as "tutorialScreen34"
ExportAssets (56)Timeline Frame 1Symbol 214 as "tutorialScreen33"
ExportAssets (56)Timeline Frame 1Symbol 216 as "tutorialScreen32"
ExportAssets (56)Timeline Frame 1Symbol 221 as "tutorialScreen31"
ExportAssets (56)Timeline Frame 1Symbol 227 as "tutorialScreen30"
ExportAssets (56)Timeline Frame 1Symbol 233 as "tutorialScreen29"
ExportAssets (56)Timeline Frame 1Symbol 236 as "tutorialScreen28"
ExportAssets (56)Timeline Frame 1Symbol 239 as "tutorialScreen26"
ExportAssets (56)Timeline Frame 1Symbol 249 as "tutorialScreen25"
ExportAssets (56)Timeline Frame 1Symbol 254 as "tutorialScreen24"
ExportAssets (56)Timeline Frame 1Symbol 258 as "tutorialScreen23"
ExportAssets (56)Timeline Frame 1Symbol 272 as "tutorialScreen22"
ExportAssets (56)Timeline Frame 1Symbol 276 as "tutorialScreen21"
ExportAssets (56)Timeline Frame 1Symbol 281 as "tutorialScreen20"
ExportAssets (56)Timeline Frame 1Symbol 283 as "tutorialScreen19"
ExportAssets (56)Timeline Frame 1Symbol 292 as "tutorialScreen18"
ExportAssets (56)Timeline Frame 1Symbol 294 as "tutorialScreen17"
ExportAssets (56)Timeline Frame 1Symbol 296 as "tutorialScreen16"
ExportAssets (56)Timeline Frame 1Symbol 298 as "tutorialScreen15"
ExportAssets (56)Timeline Frame 1Symbol 301 as "tutorialScreen14"
ExportAssets (56)Timeline Frame 1Symbol 305 as "tutorialScreen13"
ExportAssets (56)Timeline Frame 1Symbol 313 as "tutorialScreen12"
ExportAssets (56)Timeline Frame 1Symbol 321 as "tutorialScreen11"
ExportAssets (56)Timeline Frame 1Symbol 328 as "tutorialScreen10"
ExportAssets (56)Timeline Frame 1Symbol 335 as "tutorialScreen9"
ExportAssets (56)Timeline Frame 1Symbol 337 as "tutorialScreen8"
ExportAssets (56)Timeline Frame 1Symbol 342 as "tutorialScreen7"
ExportAssets (56)Timeline Frame 1Symbol 359 as "tutorialScreen6"
ExportAssets (56)Timeline Frame 1Symbol 371 as "tutorialScreen5"
ExportAssets (56)Timeline Frame 1Symbol 375 as "tutorialScreen3"
ExportAssets (56)Timeline Frame 1Symbol 388 as "tutorialScreen2"
ExportAssets (56)Timeline Frame 1Symbol 393 as "tutorialScreen1"
ExportAssets (56)Timeline Frame 1Symbol 406 as "tutorialScreen0"
ExportAssets (56)Timeline Frame 1Symbol 408 as "corner"
ExportAssets (56)Timeline Frame 1Symbol 413 as "blip_clip"
ExportAssets (56)Timeline Frame 1Symbol 176 as "vector_floor"
ExportAssets (56)Timeline Frame 1Symbol 159 as "cave_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 174 as "scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 414 as "moving_scifi_floor"
ExportAssets (56)Timeline Frame 1Symbol 416 as "meteor_click_clip"
ExportAssets (56)Timeline Frame 1Symbol 419 as "meteor_crack_clip"
ExportAssets (56)Timeline Frame 1Symbol 422 as "meteor_crater_clip"
ExportAssets (56)Timeline Frame 1Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"
ExportAssets (56)Timeline Frame 4Symbol 438 as "explosion"

Labels

"loaded"Frame 3
"spinner"Symbol 50 MovieClip Frame 45
"stand"Symbol 77 MovieClip Frame 1
"walk"Symbol 77 MovieClip Frame 2
"jump"Symbol 77 MovieClip Frame 3
"right"Symbol 78 MovieClip Frame 1
"left"Symbol 78 MovieClip Frame 2
"off"Symbol 158 MovieClip Frame 1
"on"Symbol 158 MovieClip Frame 2
"start"Symbol 172 MovieClip Frame 16
"stop"Symbol 172 MovieClip Frame 17
"fix"Symbol 452 MovieClip Frame 30
"nuked"Symbol 452 MovieClip Frame 31
"fix"Symbol 467 MovieClip Frame 1
"nuked"Symbol 467 MovieClip Frame 2
"fix"Symbol 481 MovieClip Frame 31
"nuked"Symbol 481 MovieClip Frame 32
"meteor"Symbol 481 MovieClip Frame 87
"movein"Symbol 512 MovieClip Frame 2
"fix"Symbol 512 MovieClip Frame 20
"nuked"Symbol 512 MovieClip Frame 21
"meteor"Symbol 512 MovieClip Frame 101
"movein"Symbol 514 MovieClip Frame 2
"fix"Symbol 514 MovieClip Frame 20
"nuked"Symbol 514 MovieClip Frame 21
"meteor"Symbol 514 MovieClip Frame 82
"nuke"Symbol 540 MovieClip Frame 1
"meteor"Symbol 540 MovieClip Frame 11
"movein"Symbol 570 MovieClip Frame 2
"fix"Symbol 570 MovieClip Frame 20
"nuked"Symbol 570 MovieClip Frame 21
"meteor"Symbol 570 MovieClip Frame 56
"open"Symbol 579 MovieClip Frame 2




http://swfchan.com/15/71973/info.shtml
Created: 9/4 -2019 00:13:01 Last modified: 9/4 -2019 00:13:01 Server time: 14/05 -2024 03:31:17