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

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

Actionscript Tutorial..swf

This is the info page for
Flash #36808

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


Text
ActionScript

Arrays!
ClipEvents!
Hierarchies!
for and while!
if and else!
PWNAGE!
AND MORE!

OVER 100 frames
of pure programming
pwnage!

Learn the skils to make
games, movies, and
websites in Flash.

The beginner section
includes:
Movieclip controls
symbols
buttons
ClipEvents
hierarchies
objects
User interaction

The advanced section
includes:
Arrays
Debuging
Listeners
Prototypes
Code Centralization
Functions

Actionscript Tutorial

Beginner Tutorial

This is for those with only minimal programming
experience in Flash.  It teaches Movieclip control,
diffrent types of symbols, use of buttons,use of
ClipEvents, hierarchies, and works with basic
and common objects.  This features a concept
section, a hall of code samples, and a small quiz.

Beginner Tutorial

Advanced Tutorial

This section is for those with experience in
actionscript, and understand fully the use of
objects and ClipEvents.  This covers arrays,
advanced use of actionscript to manipulate
colors, for and while, code centralization,
listeners, handlers, the prototype command,
and more.

Advanced Tutorial

Conceptual
ActionScript

Conceptual
ActionScript

This helps to explain how
actionscript actually works,
and leads you to create your
own programs.

Conceptual
ActionScript

Applied
ActionScript

Applied
ActionScript

Applied ActionScript is a
series of code samples with
descriptions on use
that can be copied and pasted
into a frame or MovieClip

Applied ActionScript is a
series of code samples with
brief descriptions on use
that can be copied and pasted
into a frame or MovieClip

Applied
ActionScript

Main Menu

Advanced Section

Quiz Section

Quiz Section

This is a brief quiz that will test how
well you learned the beginner tutorial (or
how ready you are for the advanced tutorial)

Quiz Section

For Beginners

For Beginners

This gives you the absolute
basics that you must know before
treading into Conceptual ActionScript.
If you are a self admitted newb, check
this out first. :)

Music

Navigation

1

2

3

Main Menu

Beginner Tutorial

Advanced Tutorial

Hide

No

No

Menu

Hierarchies

Flash actionscript works in what is called
a hierarchy.  The main objects on the
hierarchy are movieclips, functions which
you have defined, and properties of objects.

Player is an instance name
given to a MovieClip

_x  is a property that belongs to MovieClips.

Use the numbers above
to skip around

Use (mouse over) the menu to change music and navigate
between scenes

1

Hierarchies

2

ClipEvents

3

If

4

hitTest

5

Symbols

6

Artificial Intelligence

This is a hierarchy shown graphically

_root

guy

(instance name)

_x

This is refering to the MovieClip named guy and to the x
coordinate of that MovieClip. _root is an object, and guy
is an object in _root. _x is a property of guy, meaning
that it effects guy in some way.

This is the same piece of code, but
written as it would be in the actions panel
of Flash.

_root.guy._x

The _root should always precede a variable
or MovieClip because _root contains them.
If an MC name precedes a property, than
that property modifies the MC.

Where am I supposed to
put the codes I'll use?

Put any code you are using into
the actions panel.  This is at the
bottom of the screen and
accessible with F9.

Properties are pretty diverse, and you can
even create some of your own.  Here are
some of the easiest properties to
understand and use:

_x   - the x coordinate of an object, the x value goes
up as you move right and down as you move left.
_y  - the y coordinate of an object, the y value goes
up as you move down and down as you move up.
(kind of a bad choice by Macromedia)
_alpha - this tells flash how much light should be let
through an object, or how transparent an object is.
An alpha of 100 is totally opaque, 0 is totally
transparent

The properties you just saw are variables,
meaning they are dynamic and change over
time.  The value of a variable can be set or
acquired.  Often an action of the user can
change the value of a variable.

Some objects are constants and will never
change.  Stage.width is a good example, this
will always be equal to the width of the
stage.

A variable can be set to a constant or another
variable

guy._x += speed

+= or -= is used to subtract or add
to the variable

The line before might say:

speed = 5;

Most lines should end
with a semicolon.

Although knowledge about objects is important,
these statements always occur within a certain
context

The next couple of slides cover the general
syntax of flash, as this will allow you to
understand what will be taught later

=

sets a variable

for example:

health = 100;

==

sets up a comparison

if (health == 0) {
gotoAndPlay(2);
}

If statements will
be covered later

> or < are always a comparison, it cannot be used
to set the value (they are greater then and
less then, respectively)

some objects are true/false.  One major example
is _visible.  That object cannot be assigned a
numerical value, rather it can only be true or
false

guy._visible = true;

ClipEvents

ClipEvents are put inside the action frame
of a MovieClip.  Inside a movieClip, you may
refer to the MovieClip as this, rather than
its instance name.

this._x = 5;

is the same as

_root.guy._x = 5;

(Assuming that the first statement is inside a movieclip
called guy)

ClipEvents are put on a MovieClip, and if
put into a frame, the game/movie will not
work.

ClipEvents are very useful, and although some
programmers frown upon them, I find
them quite useful.

One major type of ClipEvent is enterFrame

As a rule of thumb most objects
in flash have the first
letter lower case and the second letter
capitalized.

The enterFrame ClipEvent runs the code every time
a frame passes.  This may sound complicated
but if you hit the property menu with nothing
selected, you can set your framerate and thus how
often a enterFrame runs. Example:

onClipEvent (enterFrame) {
this._x += 5;
}

Now is the time to put together everything you've
learned to make sense of this.  On every frame,
the x of this will be 5 more, moving the object to
the right

Note that more than one thing can be put inside
the brackets of the ClipEvent

onClipEvent(enterFrame) {
this._x +=5;
this._y +=2;
}

this bracket ends
the ClipEvent

this bracket
begins the
ClipEvent

onClipEvent(enterFrame) {
this._x +=5;
this._y +=2;
}

everything within
those two brackets
will be read by Flash
as part of the ClipEvent

onClipEvent(load) {
this._x = Stage.height/2;
this._y = Stage.width/2;
}

The code inside the brackets
after the load ClipEvent
will play only ONCE: the first time
that you see that movieClip while
testing the movie.  So think of
this as setting whats happening
initially.

The load ClipEvent and the enterFrame
ClipEvent make a good combination.  Take this
example:

onClipEvent(load) {
this._x = 0;
}
onClipEvent(enterFrame) {
this._x +=5;
}

there are other ClipEvents, such as mouseDown,
which will run the code in the brackets when the
user clicks on the MovieClip.

The if statement

The if statement really pulls Flash together.
With the if statement, you have a condition
and what will occur if the condition is true.

if (this._x < 100) {
this._x += 5;
}

You will see this code in action on the next page.

This code will only work if placed on an
onEnterFrame ClipEvent in the MovieClip, because
it needs to be constantly checked and updated.

The if statement is very useful.  As you saw
before, you can make the object move right
until its x is greater than a certain constant,
then the condition is false, and it stops.

onClipEvent(enterFrame) {
if (this._x< 10) {
this._x += 5;
}
}

An if statement begins with and ends with
a bracket.

One very useful property is _xmouse and
_ymouse

onClipEvent(enterFrame) {
this._x = _root._xmouse;
this._y = _root._ymouse;
}

this tells you that this MovieClip will
have the same location as the mouse

That was an example of the aforementioned
code.  Also, if statements can be embedded
inside ClipEvents

onClipEvent(enterFrame) {
if (Key.isDown(Key.UP)) {
this._y -= 5;
}
}

Indentation isn't
always neccessary
but it does make things
neat

Brackets are needed
to end the if statement
and the ClipEvent

Press the up key to test it out

Knowing that the key codes for right is
RIGHT, up is UP, left is LEFT, and
down is DOWN, we can draw the
following code

onClipEvent(enterFrame) {
if (Key.isDown(Key.UP)) {
this._y -= 5;
}
if (Key.isDown(Key.DOWN)) {
this._y += 5;
}
if (Key.isDown(Key.LEFT)) {
this._x -= 5;
}
if (Key.isDown(Key.RIGHT)) {
this._x += 5;
}
}

Test it out again, this time
with all 4 arrow-keys!

Often, it is better to do movement saying
that this._x += vx
and that this._y += vy
and saying that if the down key is pressed,
then vy goes up.  Then you'd include that in
every frame, vx is multiplied by friction
which would usually be around .97
this will make your movement smoother
and more gradual.

This is one good way of adding gravity
for a 2D platformer

onClipEvent(load) {
gravity = 2;
}
onClipEvent(enterFrame) {
vy += gravity;
}

Make sure that your "ground" (or whatever
stops the object from falling forever has a hitest
on it)

The hitTest

if (_root.guy.hitTest(_root.ground)) {
vx *= -1;
vy *= -1;
//if you want it to bounce
vx = 0;
vy = 0;
//use this if you want it stop
}

Generally this should be nested inside an enterFrame
ClipEvent, because it needs to be checked constantly.

Else - a tool for saving time

Else is often used as an add on to an if
statement.  If the condition of the if statement
isn't true, it will do what happens after else.

if (this._x > 5) {
this._x += vy;
}else{
this._x -=vy;
}

MovieClip Controls

These are pretty basic, but they're a neccisity.
So I'll go over them.  The main controls are:

Play();
Stop();
gotoAndPlay();
gotoAndStop();
nextFrame();
nextScene();
prevScene();
prevFrame();

Note that if you create a MovieClip, it will
have its own timeline, that can be referenced
with gotoAndPlay or gotoAndStop

_root.gotoAndStop(8);

_root.guy.gotoAndStop(8)

This will make your MC
named guy gotoAndStop
at frame 8.

All of the other MovieClip controls work like
that.

_root.play();
_root.guy.play();

This tells the movie to play

This tells guy to play

_root.guy.nextFrame();

This tells the guy to go to the next frame

nextScene is very useful, it will tell the movie
to go to the next scene

prevFrame and prevScene can also be
used, these will go to the previous
frame or scene

User Interaction: Making dynamic MovieClip
control

onClipEvent(mouseDown) {
_root.guy.play();
}

If on guy's timeline there is a stop control
on every frame, then this will tell guy to go
to the next frame every time the user clicks
down.  To make the FPS really work, we
will need to learn about buttons, which will
happen later on.

mouseDown will
respond to any click,
even if its not on the
Movieclip

Imagine if in every frame within guy's timeline
he gets more band aids and scars with every
frame that progresses

Now think back to when we made an
object that could follow the mouse

If you're thinking what I'm thinking,
we're in good position to make an FPS
with crosshairs being told to follow the mouse
and having an enemy that gets worse and worse
as you click on him

Within the enterFrame ClipEvent, we
can say Mouse.hide(); to make the mouse
invisible.  Another tool for if you're making
a full game is on the last frame of your
MovieClip which is the enemy, say
this.removeMovieClip;
That will remove that movieclip, so he
cannot be clicked and so that he doesn't
take up hardware

Like that?  It could be the basis a very successful
FPS.  In the applied actionscript section, you
will be able to see some of the codes I've used,
although if you've been following this tutorial
attentively you should be able to make it
yourself.

MovieClips, buttons, and graphics (collectively
known as symbols)

When you press F8, you'll notice that you
can convert an object to a MovieClip, a
button, or a graphic.
Up until this point, this tutorial has only used
MovieClips.  The advatange of a MovieClip
is that it can have ClipEvents, however there
are certain commands which can only be
applied to a button.

Now before I get into the bulk of this section,
its important to note that the with the FPS done
before.  What was done was inside the enemy
movieclip, an invisible circle was created on top
of the enemy.  And this invisible circle was a
button, and after this section, you'll be able to
use buttons to make the FPS you saw before.

on(press) {
_root.enemy.nextFrame;
}

This code would go inside
the button inside the
Movieclip of the enemy
from the FPS.

The main use of buttons is to allow the user to
click on an object to mainpulate the timeline.
They also allow the user to click on an enemy
in an FPS. (Although this isn't necessarily the
best way to do this!)

These are buttons

The code on the bottom one is:
on(press) {
prevFrame();
}

Buttons are most useful for doing things similar
to the arrows on the right do.  Buttons do not
only use on(press).  Some other commands are:

on(release)

on(rollover)

this will make the button
do whatever is said below
when the mouse is released
from the button

This will make the button
do whatever is said when the
mouse is on top of the button.

If you double click on a button, you will see
that the button does have its own timeline like
a MovieClip, however it is quite diffrent.

The Button has four spaces
for  keyframes.

The Up area on the button's timeline will
show what the button looks like when the
mouse is not clicking it, and is not over it.

The Over area shows what the button
will look like when the mouse is over
top of the button.  Often it is a good idea
to put a subtle yellow box here as to let
the viewer know when the mouse is over
top of a button.

The Down area shows what the button
will look like when it is pressed.  This
space is more important if you use
on(release) instead of on(press),
because on(press) goes exactly when
you press so you wont see the down
graphic.

The hit area is more complicated.  Whatever
is put here tells the button what the hit box
is.  The hitbox is the part of the button that
responds when the mouse is over it, or when
the mouse clicks it.

Graphics

Rarely, if ever, have I ever created
a graphic symbol.  However, if you are
making a movie, they can be useful
because they don't have their own timeline
and cannot be scripted.  Their advantage is
that they can be reused without making
the filesize bigger.
Any symbol can have alpha, color, and
brightness changed manually.
All of these things can be adjusted with
actionscript though.  We have only covered
alpha briefly, but the advanced tutorial
will have more information on color.

Variables

Variables can easily be created and edited
in Flash.  Some variables are user defined,
and some are built into flash (such as
alpha)

To test a variable, use the trace command.  Within the enterFrame
ClipEvent say trace(variable); It will return a value on every frame
inside a pop up that only you can see only while you're testing the
movie. It will tell you the value of that set variable.  Trace is useful
because it allows you to manually see what value your variables are.

Another thing to do is to create a dynamic textbox
and in the var option at the bottom type the name
of the variable you want it to display.  This should
actually be in the final product to display something
like health to the player.

onClipEvent(load) {
health = 100;
}
OnClipEvent(mouseDown) {
health -= 5;
}
onClipEvent(enterFrame) {
if (health == 0) {
prevScene;
}
}

This is an example of using a variable in Flash

The previous scene
is the main
menu in this case.

This code
would be
put in a
MovieClip

Some variables and objects are booleans,
some are values that can be any number,
and some are values that have a set limit

booleans are either equal to true of false.  It
can be modified as.

this._visible = true

or as

this._visible = !this._visible

! inverts the value of a boolean

Over time, your main MovieClip will
become very complicated and crowded.
One way to make this clutter easier to
deal with is code centralization, which
will be covered in the advanced tutorial.
Another way is to add comments to codes.
The code after // in that line of code
will turn grey.  That way you will know
what is a comment.  Flash doesn't look at
the comments, and won't read them.

This is a good example of proper use for
a comment.

onClipEvent(enterFrame) {
this._x *= friction
if(this._alpha == 10)//set to ten so I can test  it out
this._x += vx //velocity of x, defined earlier
}//ends enterFrame ClipEvent

This is pretty simple code, so you may not see
the point, but when a code is 100+ lines long,
comments become very valuable.

The comments are in blue boxes and
red font to make them more distinct.
In the actions panel, the comments
will be grey and there will be no
blue boxs.

Artificial Intelligence

(for games)

That title is a bit misleading, as the enemies
I will teach you to make are not going to have
a sophisticated rationale or a thought process.
I prefer two style of AI, one is where the enemy
runs away from the player, and one where it runs
toward it.  If its an FPS, I like to make the enemy
"teleport" across the screen when the mouse is over
him

Right now I'm going to work around the idea
that we're making an FPS.  I'll use the script
from the last FPS segment I showed you, but
here, the enemy will respond to the player.

if (_root._xmouse > this._x) {
this._x -= 5;
}

Logically, if the mouse is to the right of the enemy,
the enemy will move left (at least in this scenario).

With what you've learned, I trust you can fill
this in for the rest of the x and the y coordinate.
I have a completed script for this in the applied
actionscript section.  If you're thinking what
I'm thinking, you're probably thinking about using
an else statement to make this code shorter.

if (_root._xmouse > this._x) {
this._x -= 5;
}else{
this._x +=5;
}

as opposed to:

if (_root._xmouse > this._x) {
this._x -= 5;
}
if (_root._xmouse < this._x) {
this._x +=5;
}

Using the else command
can be alot less time consuming
then using two if statements.

That FPS used a button to tell the
Movieclip to go to the next frame.

And it the Movieclip was told to move
away from the mouse

It is important to note that that enemy
contained a button, and a shape (the black
ball).  However, all parts of the movieclip
will stay with the movieclip in the same
position as it moves around.

When you do any kind of motion, the lower
your framerate is, the more lag you'll have.

Another side note:

The StopAllSounds object will stop
playing any sounds. You might
want to put this into a button.

on(press) {
stopAllSounds();
}

on(press) {
mysound.start();
}

to create mysound, say
mySound = new Sound();

When you first do motionscript, saying
that this._x  += 5; on a certain
condition is fine.  However, there is
a system for doing this that is much,
much better that you will want to use.

onClipEvent(load) {
vx = 5;
vy = 5;
friction = .97;
}

You want to start by establishing a
variable of x coordinate velocity (vx)
and y coordinate velocity (vy).
If it is to be a platformer with simple
physics, you may want to add gravity.

onClipEvent(enterFrame) {
vx *= friction
vy *= friction
this._x += vx;
this._y += vy;
if (Key.isDown(Key.RIGHT)) {
vx += 5;
}

This code will be
logically repeated
for every direction.

vx and vy are
how much the
object will move

I am telling the MovieClip to move in a
direction at a changing rate, that will be
fastest when the right key is pressed,
and because it is being mutliplied by
friction (.97 in this case) in every frame,
it will gradually grind to a halt.
In your game, it would be wise to adjust
friction and velocity and experiment
so that you get motion that is very loose
or very tight, depending on what you
want.

This is the ball with the motionscript
used earlier in the movie

The great thing about the ball
you just used is that you can
make friction lower to make
the control tighter so it comes
to faster stops, or make it higher
to give it a looser feeling.

That's the end of the conceptual section.
You can continue to the applied section for
code samples or check out more advanced
concepts.

Go back to concepts

Go to Advanced Section

Main Menu

Applied Section

Making advanced
motion for a platformer

onClipEvent (load) {
vx = 0;
vy = 0;
friction = .80;
gravity = 1;
}
onClipEvent (enterFrame) {
vx *= friction;
vy *= friction;
vy += gravity;
this._x += vx;
this._y += vy;
if (_root.guy.hitTest(_root.floor)){
gravity = 0;
vy = 0;
}else{
gravity = 1;
}
if (key.isDown(Key.RIGHT)) {
vx += 2;
_root.ground._x -= 10;
}
if (key.isDown(Key.LEFT)) {
vx -= 2;
_root.ground._x += 10;
}
if (key.isDown(Key.UP)) {
vy -= 40;
}
}
if (this._y == stage.height) {
vy = 0;
gravity = 0;
}
}

Place this inside a movieclip
called "guy".  Create a large
background that is long
and call it "ground",
this will move as the character
does.    You will have to
manually set what area he can
jump in, as now he can jump no
matter where he is.

Basic AI

This code will cause
the enemy to run
towards the mouse.
To make it runs away from the
mouse, replace every < with
a > and vice versa
If the mouse is at the same
area as the enemy, the enemy
will randomly move
to any location on the stage.
If you don't want it to do the
last thing I mentioned, remove
the part the part with the hitest
and one bracket after it.
Thenumber at the top that
comes after speed can be made
higher to make it faster or
lower to make it slower
Put this code inside a Movie
Clip.

onClipEvent(load) {
speed = 5;
}
onClipEvent(enterFrame) {
if (_root._xmouse > this._x) {
this._x -= speed;
}else{
this._x += speed;
}
if (_root._ymouse > this._y) {
this._y -= speed;
}else{
this._y += speed;
}
if (this.hitTest(_root._xmouse,_root._ymouse,true)) {
this._x = int(Math.random()*550);
this._y = int(Math.random()*400);
}
}

Creating a
Custom Cursor

Put this code in any
movieclip.  The
movieclip the code
is on will follow the
mouse.  It will also
make the mouse
invisible

To make the mouse visible again:

onClipEvent(enterFrame) {
Mouse.show();
}

onClipEvent (enterFrame) {
this._x = _root._xmouse;
this._y = _root._ymouse;
Mouse.hide();
}

Put this is custom cursor/crosshairs

onClipEvent (enterFrame) {
if (_root.mc1.hitTest(_root.mc2)) {
vx *= -1;
vy *= -1;
}
}

Basic HitTest

Put this script into
any MovieClip.
Replace mc1 and mc2
with the instance names
of your movieclips.  After
the bracket, anything can
be placed.  Here this will
make the variables vx and
vy to be multiplied by negative 1.  If a Movieclip you have has its
x movement as vx and its y movement as vy, then this will cause
the object to bounce off the object it hits.  If it says vx =0 and
vy = 0, it will cause the object to stop

Random mass of balls

To do this, create a Movieclip
with an instance name of ball.
When converting this to a
movieclip,you must go into
advanced options and select the
box that says export for
actionscript, and type in the
indentifier "ball"
Put the code to the right inside
the frame where you want the
ball to randomly generate.
Note that this can be put in a
frame on MovieClip's timeline.

for(var i; i<100; i++) {
var ball = attachMovie("ball", "ball" + i, i);
ball._x = Math.random() * Stage.width;
ball._y = Math.random() * Stage.height;
ball._xscale = ball._yscale =
Math.Random() * 100 + 50;
}

Play around with this effect,
it gives you a lot of balls with
almost no filesize and little
strain on the CPU.  This will
take any object and give it a
random size and location, the
object doesn't need to be a ball,
that just needs to be its identifier
and instance name.

MotionScript
for something like
a spaceship (where
up is the same as down
and there is no gravity)

onClipEvent (enterFrame) {
friction = .90;
vx *= friction;
vy *= friction
this._x += vx;
this._y += vy;
if (vx < 1 and vx > -1) {
vx = 0;
}
if (vy < 1 and vy > -1) {
vy = 0;
}
if (Key.isDown(Key.LEFT)) {
vx = -5;
}
if (Key.isDown(Key.RIGHT)) {
vx = 5;
}
if (Key.isDown(Key.UP)) {
vy = -5;
}
if (Key.isDown(Key.DOWN)) {
vy = 5;
}
}

Just put this inside the Movieclip
that you want to be movable with
the keys.

Its time for a quiz to test and reinforce
what you've hopefully learned.

Go on to quiz

The MovieClip guy is embedded in the
MovieClip bob.  Which of the following
expressses guy's x position?

_root.bob.guy._x

guy.bob._x

bob.guy._x

_root.guy.bob._x

Sorry, you selected the wrong answer

This is the correct answer:

_root is always the highest level for a
hierarchy.  Because guy is inside bob,
he is above him in the hierarchy, and needs
to be put there.  The _x object comes after
guy because it modifies guy.

Which will make the movieclip move to
the right 5 if heatlh is equal to zero.

if (health == 0) {
this._x += 5;
}

if (health = 0) {
this._x += 5;
}

Wrong, = will set the variable, while ==
is comparing variables.

Mistaking the two is a very common error,
but not knowing the difference between = and
== can really mess things up.

Which allows tighter control for the MovieClip?

onClipEvent (enterFrame) {
friction = .80;
vx *= friction;
vy *= friction
this._x += vx;
this._y += vy;
if (Key.isDown(Key.LEFT)) {
vx = -5;
}
if (Key.isDown(Key.RIGHT)) {
vx = 5;
}
if (Key.isDown(Key.UP)) {
vy = -5;
}
if (Key.isDown(Key.DOWN)) {
vy = 5;
}
}

onClipEvent (enterFrame) {
friction = .90;
vx *= friction;
vy *= friction
this._x += vx;
this._y += vy;
if (Key.isDown(Key.LEFT)) {
vx = -5;
}
if (Key.isDown(Key.RIGHT)) {
vx = 5;
}
if (Key.isDown(Key.UP)) {
vy = -5;
}
if (Key.isDown(Key.DOWN)) {
vy = 5;
}
}

This one allows for tighter control.
The only diffrence bettween this
and the other script is that in this one,
friction is .10 lower.  Because vx
and vy are being multiplied by a lower
friction number in every frame,
the movieclip will lose its velocity
faster, meaning that it will have tighter
control.

Which ClipEvent plays only once in a movie as opposed
to in every theoretical frame?

onClipEvent(load)

onClipEvent(mouseDown)

onClipEvent(unload)

onClipEvent(enterFrame)

The correct answer was the load clipEvent

The enterFrame clipevent will do the actions in the brackets
following in on every theoretical frame.  (If the framerate is
12 fps, it will do the action 12 times a second).

The load ClipEvent plays the actions in the brackets following
it only once.  This effectivly sets the initial conditions.

The mouseDown clipevent will do the actions in the brackets
following it whenever the mouse is clicked, irregardless of the
mouse's location.

_xscale is an object that controls the length of an object
_yscale is an object that controls the height of an object

Which will tell an object to be a perfect circle (
same length and height) with a random size.

Math.Random() produces a random number bettween 0 and 1.

onClipEvent(enterFrame) {
this._xscale = Math.Random() *  100 + 50;
this._yscale = this._xscale;
}

onClipEvent(enterFrame) {
this._xscale._x = Math.Random() *  100 + 50;
this._yscale._y = this._xscale._x;
}

This choice was correct.

This choice was wrong because of the _x after _xscale and the same
being done with y.  _x and _y are objects that control location on
the coordinate plane.  _xscale and _yscale is a completly seperate object
that controls the size of an object.

Thats the end of the beginner section.
I hope you obtained some knowledge
from it.

The process may be slightly different but just try to hunt
down the Macromedia folder.

First off... How do I get this whole Flash
thingy running?

Now hit OK.

Yeah I already knew that. Now I've got it
open, what do I do now?

Okay. Now your tutorial is telling me all
this code, but I dont know where to put
it!

All you have to do is look on
the bottom of the screen and
click on the words in the box.

No no, I meant, it told me to put code in
a movieclip I. How do you do that?

Begin by clicking on the MovieClip(or whatever you want
to put the code in).  After that, press F9 or find the
actions panel at the bottom of the screen.  Here you
will open up an area where you can put text.  This is
your actions panel.  You should see a large area
to put text in.  If you only see a small strip, you are
in normal mode.  This is bad, even though you are
a beginner you want expert mode.  Change to
expert mode before you begin this tutorial.

Make sure the check is on expert mode,
not normal mode.

Alright! You should be good to go for the
next sections of the tutorial.

Now before some of you get angry because I attacked normal
mode, I must say that it does have its uses.  However, I have
never used.  In normal mode you have to use this (or the
alternative on the left to edit code.
This annoys me greatly.
For the sake of this tutorial, you will want to be in expert mode
so that you can type in code with the keyboard and not select
it out of a menu.

Advanced Topics

So, moving on to the advanced topics are we?
This stuff is a little more complicated then the beginner stuff (Duh) but
it's a lot more fun when you get used to it. Plus, you look like a pro
actionscripter (because you will be) and your code will be cleaner and
more efficient.
Inspired? Lets move on.

Main Menu

While Loops

while(something==true){
this._x+=5;
}
While loops are not complicated.
They just basically do what's inside of the {} forever until the condition
inside the () becomes false.
Likewise, this:
while(true){
//blah
}
Would loop forever.

While Loops : Uses

Whatever you are inspired to do, don't use while loops for counting.
You'll see why I say that once you get to for loops in about 2 frames.
The main use of while loops is to do something that wont have a set
end. (If it has a set end, just use a for loop) A great example (I'd say
this is used in 99% of all real computer  games) is that you have a
game that needs to run a certain function until gameover.
while(gameOver==true){
_root.gameProcesses();
_root.detectCollision();
}

Intro to For Loops

Lets say you decided to neglect my advice and make a while loop that
counted from 1 to 10. (How could you?)
You would do it like this:
var i=0;
while(i<10){
i++;
}
This translates exactly into:
for(i=1;i<10;i++)
{
trace(i);
}
Now, on to the actual definition of for loops and stuff.

For Loops

Ever want to do a lot of repetitive stuff? For loops are the answer, my
friend. What they do will count from a certain number to another
number, and then do everything in curly brackets {} that many times.
The basic syntax looks like this
for(starting value of counting variable; loop while this
condition is true (usually ending value of counting variable
here); increment value of variable)
{
//stuff here
}
Makes sense? Not particularly? Okay, here's some code. Code always
helps me see.
for(i=1;i<10;i++)
{
trace(i);
}
So what does that do? Think carefully, this is a little bit of a trick
question. Hit next when you think you've got an answer.

Surprise!
Now why would it do
that? Look at the code
here a little carefully:
for(i=1;i<10;i++)
{
trace(i);
}
If you can figure out why this only prints to 9, you'll have a good foot in
debugging.

For Loops and More For Loops

Figure it out? Look here:
for(i=1;i<10;i++)
{
trace(i);
}
Well thats saying as long as i is less then 10, stay in the for loop. So
when i is actually equal to 10, it is no longer less then 10. So it quits
out. Simple? Yeah.
Other For Loops
The For loop I just made you look at was a typical count to 10 and then
stop loop. There is a lot more you can do with that piece of code.
Watch:
for(i=10;i>
0;i--)
{
trace(i);
}
Counts BACKWARDS!! :o

Yet More For Loops

for(i=1;i<10;i+=.5)
{
trace(i);
}
Counts by HALVES!! :O
Okay, I think you should be getting the point by now. It isn't that hard,
right?

Arrays

What are arrays?
Simply, Arrays are a lot of variables all in one place.
Makes no sense? Let's say that you have a hand of cards. You have a 5,
a 7, and a 3. Now you would make an array called Cards:
Cards = new Array(5, 7, 3);
trace(Cards[1]); //traces 5, because 5 is the first card
trace(Cards[2]); //traces 7, because 7 is the second card
Starting to make sense?

Arrays Continued

"Thats interesting and all, but it seems like a pain to use them."
No. Arrays are not supposed to be painful. Arrays are supposed to be
HUGELY HELPFUL! Lets say you have like 50 bullets and you want to
keep track of all of them. All you know is that their names are "b"+some
number (thats how you made them) How would you do this without
arrays? 50 variables? Never. Ever. Use. That. Many. Variables. NEVER!
Watch me do some awesome stuff.
for(i=1;i<50;i++)
{
bullets[i]=eval("_root.b"+i);
}
If you don't understand what that does, it loops through every bullet. It
assigns the bullets MC (it obtains the MC through the statement eval
which basically turns the flash statement in () into a real statement) to
the corresponding array number while continuing to use the same
variable i.

2-D Arrays

"What about an array of arrays?"
Now some of you may be wondering why on earth you would want to
make an array of arrays. An excellent reason is for games that are
based with tiles. Tilebased games basically just means that all the
graphics in the game are split up into various tiles. I'm going to steal an
excellent picture to show you just how this feat is accomplished.
Wow, sez ye, why didn't I ever think of that?
Good question. Anyways, as you see, these
maps can't be put into one array because
its many rows of numbers. So you need two,
right?

2-D Arrays Continued

Row1 = new Array(10);
Row2 = new Array(10);
Row3 = new Array(10);
Row4 = new Array(10); //and so on.
Map = new Array(Row1, Row2, Row3, and so on.)
Now you just need to write some script to fill them up. And I'm sure you
could do this with some code like so (this is just code in words, so its in
normal font)
Var MapInChars = "wwwwwwwwwwwww
w                          w
w                          w" and so on, w for walls and
blank for ground
for i = 1 to length of MapInChars
take substring at position i of mapInChars and set Map to be related to
it.
Not so hard, eh?

Functions

Functions are cool. You will learn to like them. And as usual they are very easy
to use.  The simplest definition of a function would be a group of code
statements that you use over and over again. Like say that you wanted to have
code to make a movie clip and put its alpha at 50 and have a random _x and
_y. You could have the code be repeated 50 times all over your movie, but that
would be terribly ineffecient and waste tons of space. Instead, you could just
have a function do it all. Watch.
function makeMC(){
_root.createMovieClip("bob"/*other parameters here*/);
_root.bob._x = Math.random()*_root.width;
_root.bob._y = Math.random()*_root.height;
_root.bob._alpha =50;
}
makeMC(); //call the function (e.g. use it)
Easy right? Of course it doesn't work, but the main point is for you to
understand the concept.

Now its time for a formal definition.
function functionnamehere(arguments here){ code of the function
here;
here;
and even here;
return something;
}
The things that are in itialics are things that you can change around to meet
your needs. However, there's still one thing that you should be wondering.
What are arguments? No, its not a heated discussion of opinions. Arguments
are variables that you can pass (give) to the function. In the function, you can
use these arguments as regular variables. Here's an example of why you would
want arguments.
function timesTwo(numToMultiply){ code of the function here;
trace (numToMultiply *2);
}
timesTwo(6) //traces 12

Now you should have a pretty good grip on arguments. If you don't I
reccommend fooling around with them for a little bit to get a strong grasp on
them.
Anyways, I'm going to tread on. You may have noticed that I said something
that said return and haven't gone to explain it yet. Time to do it right now.
Return means to give back a value when you call the function. For example say
your function always returns 2.
function yourFunction(){return 2;}
trace(yourFunction); //traces 2, always
Now you may be wondering what the point of return is, if all you can return is
whole numbers. Hopefully you aren't, and with any luck you should have
realized that you can return just about anything you want.
function dblANumber(num){return num*2;}
trace(dlbANumber(2)); //traces 4
And as you should expect, this is only the beginning.

Functions should start looking pretty useful right about now. Indeed, you can
use the return value of a function like any normal variable. Just pretend that
the function IS a variable for this to make the most sense.
function makeMC(){
var retMC = _root.attachMovie("bob"/*other parameters here*/);
_root.bob._x = Math.random()*_root.width;
_root.bob._y = Math.random()*_root.height;
_root.bob._alpha =50;
return retMC;
}
makeMC()._visible=false;
All making sense? I would hope so. See, makeMC returns the value of the
movie clip that is created. This value is instantly put into the code statement,
meaning that you can use it straight off the bat and set its properties. Cool,
huh?

Object Orientated Programming

Now we are getting into some pretty heavy material. There is a problem
though, and that would be that you when you create an object (as you are
about to) you have to create a .as file and then import it into your flash project.
Honestly this is a bit of a pain and I'm not quite sure why they make you do
this. Anyways, classes are a rather
more complex topic then everything
up to this point. I'll take the material
a little slower to make sure you
understand everything.
In it's simplest form, a class can be
any object. For example, an enemy in
your game could be a class. The main
character could be a seperate class.
Walls and collideable objects may be a
class. Indeed, this is how most games are written: seperate entities are divided
into classes.

Anyways, lets start from the beginning. Here's your formal definition of a class
(complicated stuff taken out :).
class className
{
// class related things go in here
}
Okay, so far this is all well and good. You could now make 1000 classes,
unfortunately they'd all be completely pointless because they wouldn't actually
do anything. So I suppose we need something that makes classes do stuff?
Yes. When I gave you a definition of a class a little bit ago, I didn't mention a
few important things. You see, classes can do a lot. Classes can have their own
functions to do things (related to the class), and they can have their own
variables to manipulate (they should also be related to the class). And now its
time for the schocking story line twist. As it would be, you have been using
classes all along. I'd be impressed if you could tell me what they are.

The answer:
Movieclips! Movieclips have tons of variables that you can manipulate, like _x,
_y, _alpha and so on. Not only that, but they also have functions that you can
use! One example would be lineTo().
Now, lets get started on making your own. Lets say that you would want to
make an enemy class. It would have a function for damaging it, moving it and
killing it, and it would have variables for its health, x and y position and maybe
damage it can deal. Well this shouldn't be too hard right? Just watch how I add
variables, its easy! Pay attention how I specifically note what the variables are
with colons. This is just so nothing gets screwed up (like if you type in "ffp" as
the health, it would alert you rather then continuing)
class enemy {
var health:Number;
var x:Number;
var y:Number;
var damageDealt:Number;
But that can't be all of it, can it? Heck no! Onwards!!

//continued from previous
var thisClip:MovieClip; //the actual graphic of the enemy
function damage(dmgAmt:Number) {
this.health-=dmgAmt; //"this" simply refers to this class
}
function move(xDist, yDist){
this.thisClip._x +=xDist; this.thisClip._y +=yDist;
}
function kill(){
this.thisClip.gotoAndPlay("deathAnimation");
}
Seems like it should be done now right? Actually, there's one more thing that you
need, and that is called a constructor. This is a function that is used to give it some
beginning values. The constructor is always called right as the class is created. In
this constructor, certain things will be the same for each enemy (for instance, each
enemy will have 100 HP) and some things will set by the user, like where each
enemy is located onscreen. How will we set the location? Simple as usual. The
constructor is a function, meaning it takes arguments. Set variables could be
arguments to the constructor, right?

//The constructor: it having the same name as the actual class is NOT
//a coincidence. All constructors must have the same name.
function enemy(xPos, yPos){
this.health=100; //same every time as we agreed
this.thisClip = _root.attachMovie("enemy", blah blah blah, user
specific stuff goes here)
this.thisClip._x = xPos; //set by user when the class is created as
//you'll see
this.thisClip._y = yPos; //same as before
}
} //end of class
And thats the end of the class! Now there's just one more thing. In the actual flash
document, not the .AS you created, you'll need to actually make an instance of it.
It's just like your calling a function (the constructor), except that you're creating an
object by doing so.
var enemyTest:enemy = new enemy(20,50);
Wow, that was easy! And fun too!

Of course, I have barely scraped the surface of OOP. My goal by writing this is not
to give you everything that you could ever ask for, because I would be writing a
1000 page book. Instead, I want to give you enough to understand whats
happening, and the ability to look into flash's help and understand exactly what
they are talking about.
Anyways, ONWARDS!!!

Listeners

Listeners are easy. I'm only going to spend two pages on them, but of course you
need classes to understand what your doing here (programming builds on itself).
First lets just go with the mouse listener as my example listener. If your wondering
about what functions you have to implement (you'll see what I'm talking about in a
second)
First when dealing with listeners I would do something like type in Mouse. and then
go :O mouse needs a listener (because the little box popped up saying addListener)
So then I would hit F1 and see what the requirements of the listener. Straight from
the help:
"Method; registers an object to receive notifications of the onMouseDown,
onMouseMove, and onMouseUp listeners."
Well, that makes it a little easier doesn't it? Now I just need to make an object that
has those three functions, so it can deal with them seperately. Go on to see how
you add functions to objects, its a little different then classes but the concept is the
same.

listener = new Object();
listener.onMouseDown = function () {
trace ("Mouse is down");
}
listener.onMouseUp = function () {
trace ("Mouse is up");
}
listener.onMouseMove = function () {
trace ("Mouse moved");
}
So now we have an object with three functions just waiting to be called. (Of course
in a real application of a listener, they wouldn't just trace something useless, they'd
actually do important stuff.) Now what?
Now, we give the object to the mouse so it can do whatever it wants with it.
Key.addListener(listener);
And to get rid of it:
Key.removeListener(listener);
Easy!

Code Centralization

This is a simple topic as well. Even shorter then listeners. What code centralization
is is simply putting all code for all parts of the movie in one place. The main
advantage of this is there is no more hunting around in movie clips and clips IN
movie clips for your code that you need, just to find out its the wrong one... With
centralization, all you have to do is browse 1 frame for all the code you need,
assuming that you have all your MCs in the same frame. Anyways, lets say you
want to put an onClipEvent(enterFrame) in the main frame, even though its from a
movieclip. It would be done like so
//this is the frame's code
_root.yourMC.onEnterFrame=function(){
//MCs code goes here, blah blah
}
_root.a_different_mcs.onMouseDown=function(){
//other code goes here
}
Easy. Just remember to add the 'on' in front of the thing thats happening and there
should be no problems here. Likewise, a button's on press code would be onPress,
and so on. This is a simple thing that can save you tons of time.

Prototypes

Prototypes are pretty easy. I'm going to start out by showing you how its done with
already known code, then show how it can be done easier.
Okay. Lets say you want to give all movieclips a new function. It is totally legal to
give MovieClips as many functions as you want, whether they existed beforehand
or not. OnEnterFrame, for example, existed beforehand (Thats why it was blue.)
Lets add one that doesn't exist for the fun of it. However, there's a problem. There
is no easy way to give functions to ALL movieclips! To accomplish this, you need to
have an array of every known movieclip in your flash movie, and then individually
hand out functions. It is quite a pain:
for (i=1;i<_root.mcs.length();i++)
{
mcs[i].newFunction=function(){ //stuff here
}
}
What a pain! Plus, this is really annoying since you need to add movieclips to the
array every time you want to do this... Of course as you should have guessed,
there's an easier way. Lets find out how.

MovieClip.Prototype.newFunction=function(){
//stuff here.
}
WHOA!! So easy!! You can add functions to all MovieClip just with a short section of
code like that! Isn't that awesome? It should be.
MovieClip.Prototype.someNumber=7;
Bet you can guess what I just did there... Now every single MovieClip also has a
new variable: someNumber. As you should have guessed, the variable's starting
number is 7. Yay!

Ok, before we get to the subject of debugging, we have to
cover color manipulation in flash.  I'm going to cover the hexidecimal
system for colors and the color object.  Color in Flash is composed of  mixtures
red, green, and blue (RGB).  Note that RGB doesn't respect what's already
there, it totally changes the color to what you set it to be. If you want it
to, you have to set the alpha of the color in the Color Mixer.

Var myColor = new Color(MovieClip);
StarColar.setRGB(0xRRGGBB);//of course you wouldn't put in the letters,
//rather you would put in something to suggest Red, green, or blue.

So now you see the technique for RGB color manipulation, but what do
I put to replace the red letters from the above example so I'm actually
setting a real color? Like, in the Color Mixer?

Intermission: Colors!

0xff0000 (Red)

0x00ff00 (Green)

0x0000ff (Blue)

Now each two digits represent a color. The numbers can go from 00
(none of that color) to FF (all of that color) Instead of counting from 0
to 9 as our normal number system does though, this one actually
counts from 0 to F. (0123456789ABCDEF) F being 15. No idea why
they did it (probably just to confuse you) but its easy to understand.
Plus if you just totally give up, you can copy numbers from the color
mixer. If you play around with it though, you can get some cool stuff.

Although I've only scratched the surface of colors, I hope that
beyond this you will go on to work with creating graphics with
ActionScript.  With ActionScript you can create gradient fills
and draw lines.  If you have flash 8 you can animate filters
and do some pretty nifty color/matrix effects with flash.

Its easy to see why I have
someone else do my graphics.

Debugging

I've saved the best for last.
I'm certain that when you've written flash games, you've tested them for syntax
errors and you get no problems. Then you go to test out your game, and for some
reason or another, nothing is working!! (If not, contact me, because so far I haven't
seen a perfect programmer ever ever ever, I'd say that even the designer of the
programming language makes bugs daily) Bugs are the bane of most programmer's
existance. If programming could be bugfree 100% of the time, I wouldn't even
need to teach you how to script, and there would be no need for programmers
anywhere.
Now you could spend hours rooting through your code looking for your bug (and
being ultimately doomed), but there are much faster and better ways. I will step
through the methods that you can use to determine where your programming bug
is, so you can get back to coding faster and better. A really bad bug can truly kill off
your whole game and just make you lose intrest (it definitely happens to me), so
the faster and more effecient you can debug, the faster you'll get back on track and
keep your inspiration.

Common Errors

These are my top three. They are all admittently very simple, yet they are so easy
to make and look over.
1. Confusing == with =
I don't know why the designer of C++ (what actionscript is based off of) decided
this, but == and = are two completely different things. = sets a variable to a value.
== checks comparison. We have already gone over this, but it simply can not be
overstated. The most common error would be something like this:
if (bob=5){//stuff}
The thing about this error is that nothing is wrong with the code. First, it sets
bob to 5. Then since it was able to set it to 5, that statement will return true -
(meaning that it did its desired result, every statement returns true if it works and
false if it doesn't, and I do mean every) and it will do the code inside the brackets.
You'll end up wondering why it keeps on doing whats inside the if statement, and
then realize that bob is set to the wrong value. This is very annoying, but all you
have to do is check your if statements very carefully for == as opposed to =.

2. Forgetting _root
This one is way easier to explain then that last one. Say you have a variable called
bob on a main frame on the timeline. Then you click on a movieclip, and say
bob+=5; Suprise! Nothing works. This is because, as you should be able to see, it
should actually be _root.bob+=5; . This is annoying because it will set a variable
named bob on the main movie clip to itself plus 5, so if you did trace(bob) and
continued forgetting _root, it would work and show the right value, even though it's
being assigned to the wrong variable!! The best way to avoid this error is to be as
meticulous as possible when keeping track of variables.
Incidentally, this can also be reversed. For instance, if you have a variable on the
movieclip, then reference it with _root, it wouldn't set the right one.

3. Getting paths messed up
This one is also a pain. Fortunately, it's probably the easiest to avoid if you use a
convienant little tool flash provided.
See when I make my movies, I make movieclips inside movieclips inside movieclips
(mainly so I can tween or otherwise animate them without getting a headache ;)
and you'll probably get used to the habit too. It is very easy when you have 5
movieclips all inbedded inside each other to screw up the code to access the
deepest one, like if I had MC bob, which is inside fred, which is inside george, which
is inside bob2, and I accessed bob like this:
_root.bob2.fred.george.bob._x...
Your eyes would just glance over that and figure it's right, when in actuallity its
wrong. Fortunately, Flash gives you a tool to find paths, both absolute and relative.
As a rule of thumb, use it whenever you have to deal with more then 2 imbedded
movieclips.

General Debugging

x Narrow down your problem to small areas of code. Obviously something that you
finished 2 months ago isn't just going to stop working; I'd say you were better off
looking at that code you just wrote 10 minutes ago.
x If something is drastically wrong, try commenting out blocks until the problem
goes away, then narrow it down to sections, and then lines of code.
x Trace is your best friend. Always trace every variable your modifying, just to
make sure that your doing everything right. If it's not working out, I would be
willing to bet money it's one of thoese 3 errors I just listed :)
x Clicking to the left of a line lets you put in a breakpoint. If you then hit
Ctrl+Shift+Enter, you will go into debug mode. Flash will run normally until it hits a
breakpoint, and then you can watch it execute each line of code. This can be super
helpful, but there are certain problems, such as if you have a really long loop and
its not working and you have to wait for it to go all the way through the loop. Then
its more of a pain then a gain.
x If you are absolutely stumped, you can always send your problem to the
Newgrounds BBS. The people there will surely try to help you out.
Happy coding! :)                     -johnfn

ActionScript [AS1/AS2]

Frame 2
play(); _root.mus = new Sound(); _root.mus.attachSound("ots"); _root.mus.start(0, 1000);
Frame 5
stop(); _global.goto = function () { gotoAndStop (5); }; _global.goto2 = function () { gotoAndStop (6); }; _global.goto3 = function () { gotoAndStop (100); };
Frame 6
stop();
Frame 7
stop();
Instance of Symbol 119 MovieClip in Frame 7
onClipEvent (enterFrame) { Mouse.show(); }
Frame 8
stop();
Frame 9
stop();
Frame 10
stop();
Frame 11
stop();
Frame 12
stop();
Frame 13
stop();
Frame 14
stop();
Frame 15
stop();
Frame 16
stop();
Instance of Symbol 119 MovieClip in Frame 16
onClipEvent (enterFrame) { Mouse.show(); }
Frame 17
stop();
Frame 18
stop();
Frame 19
stop();
Frame 20
stop();
Frame 21
stop();
Frame 22
stop();
Frame 23
stop();
Instance of Symbol 119 MovieClip in Frame 23
onClipEvent (enterFrame) { Mouse.show(); }
Frame 24
stop();
Instance of Symbol 233 MovieClip in Frame 24
onClipEvent (enterFrame) { if (this._x < 100) { this._x = this._x + 5; } }
Frame 25
stop();
Frame 26
stop();
Frame 27
stop();
Instance of Symbol 241 MovieClip in Frame 27
onClipEvent (enterFrame) { this._x = _root._xmouse; this._y = _root._ymouse; }
Frame 28
stop();
Frame 29
stop();
Instance of Symbol 247 MovieClip in Frame 29
onClipEvent (enterFrame) { if (Key.isDown(38)) { this._y = this._y - 5; } }
Frame 30
stop();
Frame 31
stop();
Frame 32
stop();
Instance of Symbol 251 MovieClip in Frame 32
onClipEvent (enterFrame) { if (Key.isDown(38)) { this._y = this._y - 5; } if (Key.isDown(40)) { this._y = this._y + 5; } if (Key.isDown(37)) { this._x = this._x - 5; } if (Key.isDown(39)) { this._x = this._x + 5; } }
Frame 33
stop();
Frame 34
stop();
Frame 35
stop();
Instance of Symbol 119 MovieClip in Frame 35
onClipEvent (enterFrame) { Mouse.show(); }
Frame 36
stop();
Frame 37
stop();
Frame 38
stop();
Frame 39
stop();
Frame 40
stop();
Frame 41
stop();
Frame 42
stop();
Frame 43
stop();
Instance of Symbol 290 MovieClip in Frame 43
onClipEvent (enterFrame) { Mouse.show(); }
Frame 44
stop();
Instance of Symbol 299 MovieClip "ball" in Frame 44
onClipEvent (enterFrame) { Mouse.hide(); }
Instance of Symbol 301 MovieClip in Frame 44
onClipEvent (enterFrame) { this._x = _root._xmouse; this._y = _root._ymouse; }
Frame 45
stop();
Instance of Symbol 290 MovieClip in Frame 45
onClipEvent (enterFrame) { Mouse.show(); }
Frame 46
stop();
Instance of Symbol 119 MovieClip in Frame 46
onClipEvent (enterFrame) { Mouse.show(); }
Frame 47
stop();
Frame 48
stop();
Frame 49
stop();
Frame 50
stop();
Frame 51
stop();
Frame 52
stop();
Frame 53
stop();
Frame 54
stop();
Frame 55
stop();
Frame 56
stop();
Frame 57
stop();
Frame 58
stop();
Frame 59
stop();
Frame 60
stop();
Instance of Symbol 119 MovieClip in Frame 60
onClipEvent (enterFrame) { Mouse.show(); }
Frame 61
stop();
Frame 62
stop();
Frame 63
stop();
Instance of Symbol 119 MovieClip in Frame 63
onClipEvent (enterFrame) { Mouse.show(); }
Frame 64
stop();
Instance of Symbol 299 MovieClip "ball" in Frame 64
onClipEvent (enterFrame) { if (_root._xmouse > this._x) { this._x = this._x - 2; } else { this._x = this._x + 2; } if (_root._ymouse > this._y) { this._y = this._y - 2; } else { this._y = this._y + 2; } Mouse.hide(); }
Instance of Symbol 301 MovieClip in Frame 64
onClipEvent (enterFrame) { this._x = _root._xmouse; this._y = _root._ymouse; }
Frame 65
stop();
Instance of Symbol 119 MovieClip in Frame 65
onClipEvent (enterFrame) { Mouse.show(); }
Frame 66
stop();
Frame 67
stop();
Frame 68
stop();
Frame 69
stop();
Frame 70
stop();
Frame 71
stop();
Instance of Symbol 251 MovieClip in Frame 71
onClipEvent (enterFrame) { if (Key.isDown(38)) { this._y = this._y - 5; } if (Key.isDown(40)) { this._y = this._y + 5; } if (Key.isDown(37)) { this._x = this._x - 5; } if (Key.isDown(39)) { this._x = this._x + 5; } }
Frame 72
stop();
Instance of Symbol 251 MovieClip in Frame 72
onClipEvent (load) { vx = 5; vy = 5; friction = 0.92; } onClipEvent (enterFrame) { vx = vx * friction; vy = vy * friction; this._x = this._x + vx; this._y = this._y + vy; if (Key.isDown(38)) { vy = vy - 2; } if (Key.isDown(40)) { vy = vy + 2; } if (Key.isDown(37)) { vx = vx - 2; } if (Key.isDown(39)) { vx = vx + 2; } }
Frame 73
stop();
Frame 74
stop();
Frame 75
stop();
Frame 76
stop();
Frame 77
stop();
Frame 78
stop();
Frame 79
stop();
Frame 80
stop();
Frame 81
stop();
Frame 82
stop();
Frame 83
stop();
Frame 84
stop();
Frame 85
stop();
Frame 86
stop();
Frame 87
stop();
Frame 88
stop();
Frame 89
stop();
Frame 90
stop();
Frame 91
stop();
Frame 92
stop();
Frame 93
gotoAndStop (6);
Frame 94
stop();
Frame 95
stop();
Frame 96
stop();
Frame 97
stop();
Frame 98
stop();
Frame 99
gotoAndStop (6);
Frame 100
stop();
Frame 101
stop();
Frame 102
stop();
Frame 103
stop();
Frame 104
stop();
Frame 105
stop();
Frame 106
stop();
Frame 107
stop();
Frame 108
stop();
Frame 109
stop();
Frame 110
stop();
Frame 111
stop();
Frame 112
stop();
Frame 113
stop();
Frame 114
stop();
Frame 115
stop(); Mouse.addListener(listener);
Frame 116
stop();
Frame 117
stop();
Frame 118
stop(); var health:Number;
Frame 119
stop(); var health:Number;
Frame 120
stop(); var health:Number;
Frame 121
stop();
Frame 122
stop();
Frame 123
stop();
Frame 124
stop();
Frame 125
stop();
Frame 126
stop();
Frame 127
stop();
Frame 128
stop();
Frame 129
stop();
Frame 130
stop();
Frame 131
stop();
Frame 132
stop();
Frame 133
stop();
Symbol 7 Button
on (release) { getURL ("http://www.newgrounds.com", "blank"); }
Symbol 12 Button
on (release) { _root.play(); }
Symbol 13 MovieClip Frame 1
_root.stop(); PercentLoaded = (_root.getBytesLoaded() / _root.getBytesTotal()) * 100; if (PercentLoaded != 100) { bar._xscale = PercentLoaded; } else { gotoAndStop ("loaded"); }
Symbol 13 MovieClip Frame 2
gotoAndPlay (1);
Symbol 34 Button
on (press) { gotoAndStop (6); } on (rollOver) { _root.f1.gotoAndPlay(2); } on (rollOut) { _root.f1.gotoAndPlay(10); }
Symbol 38 Button
on (press) { gotoAndPlay (100); } on (rollOver) { _root.f2.gotoAndPlay(2); } on (rollOut) { _root.f2.gotoAndPlay(10); }
Symbol 44 MovieClip Frame 1
stop();
Symbol 44 MovieClip Frame 9
stop();
Symbol 44 MovieClip Frame 17
stop();
Symbol 54 Button
on (press) { play(); }
Symbol 62 Button
on (press) { gotoAndStop (75); }
Symbol 66 Button
on (press) { gotoAndStop (5); }
Symbol 69 Button
on (press) { gotoAndPlay (100); }
Symbol 75 Button
on (press) { gotoAndStop (81); }
Symbol 81 Button
on (press) { gotoAndStop (94); }
Symbol 88 Button
on (press) { stopAllSounds(); _root.mus = new Sound(); _root.mus.attachSound("ots"); _root.mus.start(0, 1000); }
Symbol 92 Button
on (press) { stopAllSounds(); _root.mus = new Sound(); _root.mus.attachSound("yay"); _root.mus.start(0, 1000); }
Symbol 94 Button
on (press) { _global.goto(); }
Symbol 96 Button
on (press) { _global.goto2(); }
Symbol 98 Button
on (press) { _global.goto3(); }
Symbol 101 Button
on (rollOver) { _root.men.gotoAndPlay(30); }
Symbol 106 Button
on (press) { stopAllSounds(); }
Symbol 107 MovieClip Frame 1
stop();
Symbol 107 MovieClip Frame 30
stop();
Symbol 107 MovieClip Frame 45
stop(); _root.menutxt._visible = true;
Symbol 110 Button
on (rollOver) { _root.men.gotoAndPlay(2); _root.menutxt._visible = false; }
Symbol 126 Button
on (press) { gotoAndStop (7); }
Symbol 132 Button
on (press) { gotoAndStop (16); }
Symbol 138 Button
on (press) { gotoAndStop (23); }
Symbol 142 Button
on (press) { gotoAndStop (35); }
Symbol 147 Button
on (press) { gotoAndStop (46); }
Symbol 153 Button
on (press) { gotoAndStop (60); }
Symbol 156 Button
on (press) { prevFrame(); }
Symbol 159 Button
on (press) { play(); }
Symbol 292 Button
on (press) { _root.ball.play(); }
Symbol 299 MovieClip Frame 1
stop();
Symbol 299 MovieClip Frame 2
stop();
Symbol 299 MovieClip Frame 3
stop();
Symbol 299 MovieClip Frame 4
stop();
Symbol 299 MovieClip Frame 5
stop();
Symbol 299 MovieClip Frame 6
stop();
Symbol 299 MovieClip Frame 7
stop();
Symbol 299 MovieClip Frame 8
stop();
Symbol 299 MovieClip Frame 9
stop();
Symbol 299 MovieClip Frame 10
this.removeMovieClip(); stop();
Symbol 393 Button
on (press) { gotoAndStop (7); }
Symbol 396 Button
on (press) { gotoAndPlay (100); }
Symbol 399 Button
on (press) { gotoAndStop (5); }
Symbol 402 Button
on (press) { gotoAndStop (75); }
Symbol 431 Button
on (press) { play(); }
Symbol 435 Button
on (press) { gotoAndStop (84); }
Symbol 437 Button
on (press) { play(); }
Symbol 439 Button
on (press) { play(); }
Symbol 441 Button
on (press) { play(); }
Symbol 448 Button
on (press) { gotoAndStop (86); }
Symbol 450 Button
on (press) { play(); }
Symbol 455 Button
on (press) { gotoAndStop (88); }
Symbol 457 Button
on (press) { play(); }
Symbol 462 Button
on (press) { gotoAndStop (90); }
Symbol 464 Button
on (press) { play(); }
Symbol 466 Button
on (press) { play(); }
Symbol 468 Button
on (press) { play(); }
Symbol 477 Button
on (press) { gotoAndStop (92); }
Symbol 479 Button
on (press) { play(); }
Symbol 509 Button
on (press) { _root.nextFrame(); }
Symbol 511 Button
on (press) { gotoAndStop (5); }
Symbol 516 Button
on (press) { _root.prevFrame(); }

Library Items

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

Instance Names

"f1"Frame 5Symbol 44 MovieClip
"f2"Frame 5Symbol 44 MovieClip
"men"Frame 6Symbol 107 MovieClip
"menutxt"Frame 7Symbol 110 Button
"ball"Frame 44Symbol 299 MovieClip
"ball"Frame 64Symbol 299 MovieClip
"foward"Frame 100Symbol 509 Button
"menutxt"Frame 100Symbol 110 Button
"men"Frame 100Symbol 107 MovieClip
"back"Frame 101Symbol 516 Button
"back"Frame 122Symbol 516 Button
"foward"Frame 123Symbol 509 Button
"bar"Symbol 13 MovieClip Frame 1Symbol 3 MovieClip
"hide"Symbol 107 MovieClip Frame 1Symbol 101 Button

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS1/AS2.
ExportAssets (56)Timeline Frame 3Symbol 22 as "ots"
ExportAssets (56)Timeline Frame 4Symbol 23 as "yay"

Labels

"loaded"Symbol 13 MovieClip Frame 3




http://swfchan.com/8/36808/info.shtml
Created: 14/5 -2019 22:45:49 Last modified: 14/5 -2019 22:45:49 Server time: 12/05 -2024 12:15:23