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

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

Trigonometry Tutorial.swf

This is the info page for
Flash #30165

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


Text
Trigonometry Tutorial
by Superjoe Software
LOADING...

10%

20%

30%

40%

50%

60%

70%

80%

90%

Play

Superjoe
Software

Trigonometry is sometimes confusing,
but if you look in to it a little bit, Trig is
very helpful and worth the extra bit of
work it takes to implement.

Continue

Why Use Trig?

Trig Tutorial by Superjoe Software

Previous Step

Previous Step

Next Step

You can create interesting effects using Trigonometry.
All of these cool effects I created using Trig.

The arrow points at
the cursor.

The fish points in the
direction he swims.

The clock hands
point to the correct
numbers.

12

3

6

9

1

2

4

5

7

8

10

11

If you're still not convinced, you should know that you
have to use Trig in a lot of games, to make bullets
point in the direction they are fired, to make a
helicopter point up a little bit when it rises, and so on.
Plus, you'll probably have to learn it in Math class
anyways.

Trigonometry has to do with circles, angles,
and triangles.

A circle is broken down into 4 quadrants.

I

II

III

IV

Trig Overview

An angle is a specific amount that specifies
a rotation. To show this rotation, we use
degrees (°). 0° means no rotation, and  360°
means rotated so far that it is rotated back to
the beginning.

The blue line
marks 0° and
360°.

Watch as the red line rotates. The number
shows you what angle the red line makes
with the blue line.

The basics of Trigonometry is the fact that if
you know a few things about a triangle, you
can figure out everything else.

The triangle must be a right triangle,
meaning that one of its angles is 90°.

This angle is
90 degrees

Getting Into Mathematics

We'll name the sides of our triangle x, y, and r.
We only need to name one of the angles.
We'll call it theta (ø).

ø

r

y

x

With a triangle set up this way, all you need is
2 of the 4 variables in the drawing, and you
can find the other 2 using Trig. To do this, use
these equations.

<p align="left"><font face="Courier New" size="20" color="#000000"><b>r^2 = x^2 + y^2</b></font></p><p align="left"><font face="Courier New" size="20" color="#000000"><b>sin(ø) = y / r</b></font></p><p align="left"><font face="Courier New" size="20" color="#000000"><b>cos(ø) = x / r</b></font></p><p align="left"><font face="Courier New" size="20" color="#000000"><b>tan(ø) = y / x</b></font></p>

Note that you will have to
solve the equation for the
variable you wish to use.

sin(), cos(), and tan() are handy trig functions. You
access them in flash by using Math.sin(),
Math.cos(), and Math.tan(). However, these
functions may not act like you expect them to if
you supply angle arguments in degrees. These
functions use a different measuring system:
radians.

Radians is the same thing as degrees, but instead
of going from 0° to 360°, radians go from 0 to 2 * π.
π is a mathematical constant approximately equal
to 3.14. It is accessible in Flash using Math.PI.

90°

180°

315°

270°

45°

135°

225°

0

π/2

π

7/4 * π

3/2 * π

π/4

3/4 * π

5/4 * π

It is easy to convert between degrees and radians.
To do so, use these equations:

<p align="left"><font face="Courier New" size="20" color="#000000"><b>radians = (degrees * π) / 180</b></font></p><p align="left"><font face="Courier New" size="20" color="#000000"><b>degrees = (180 * radians) / π</b></font></p>

Important!
Take note that Flash uses degrees, but using Trig
functions in Flash requires that you use radians.

Let's look at the arrow again.

When you create a symbol in Flash, the
registration point is the point of rotation. For the
arrow, I placed it in the center. All we have to do is
make the arrow rotate to face the cursor point.

Explaining the Demos - Rotating Arrow

Are you seeing the triangle?

ø

r

y

x

Theta (ø) is the angle we need to find. We can get
x and y by subtracting the x and y locations of the
arrow from the x and y locations of the mouse.

<p align="left"><font face="Courier New" size="20" color="#000000"><b>x = Math.abs(_root._xmouse - mc_arrow._x);</b></font></p><p align="left"><font face="Courier New" size="20" color="#000000"><b>y = Math.abs(_root._ymouse - mc_arrow._y);</b></font></p>

y

x

Now that know x and y, we can find theta.
Remember the equations?

ø

The equation we need for this one is
tan(ø) = y / x
But we have a problem. We can't just enter that
into a line of code. We have to solve for theta (ø).

This is done by taking the arc tangent of both sides:
ø = atan(y / x)

Now all we have to do is convert theta (ø) to
degrees and set the arrow's rotation. Assuming the
name of the movie clip is "mc_arrow," this code will
rotate it:

mc_arrow

<p align="left"><font face="Courier New" size="18" color="#000000">mc_arrow._rotation = (180 * theta) / Math.PI;</font></p>

This works great - until the mouse exits the first
quadrant. Remember the quadrant circle?

We have to make a separate triangle
for each quadrant.

Remember that rotation starts from the 0° position.
Theta (ø) is just an angle of a triangle.

Once you find theta, there's a little bit more to it
than converting to degrees. Rotation is absolute;
theta is relative. You have to make a different
reference point for each quadrant.

I

II

III

IV

To overcome this challenge, we'll write code to
handle the 4 different quadrants:

<p align="left"><font face="Courier New" size="14" color="#000084">if<font color="#000000">(</font>_xmouse<font color="#000000"> &gt;= mc_arrow.</font>_x<font color="#000000"> &amp;&amp; </font>_ymouse<font color="#000000"> &lt;= mc_arrow.</font>_y<font color="#000000">){</font></font></p><p align="left"><font face="Courier New" size="14" color="#000000"> &nbsp;<font color="#808080">//quadrant I</font></font></p><p align="left"><font face="Courier New" size="14" color="#000000"> &nbsp;mc_arrow.<font color="#000084">_rotation</font> = (180*theta)<font color="#000084">/Math</font>.<font color="#000084">PI</font>;</font></p><p align="left"><font face="Courier New" size="14" color="#000000">}<font color="#000084">else</font> <font color="#000084">if</font>(<font color="#000084">_xmouse</font> &lt; <font color="#000084">mc_arrow</font>.<font color="#000084">_x</font> &amp;&amp; <font color="#000084">_ymouse</font> &lt;= mc_arrow.<font color="#000084">_y</font>){</font></p><p align="left"><font face="Courier New" size="14" color="#000000"> &nbsp;<font color="#808080">//quadrant II</font></font></p><p align="left"><font face="Courier New" size="14" color="#000000"> &nbsp;mc_arrow.<font color="#000099">_rotation</font> = 180 - (180*theta)<font color="#000099">/Math</font>.<font color="#000099">PI;</font></font></p><p align="left"><font face="Courier New" size="14" color="#000000">}<font color="#000084">else</font> <font color="#000084">if</font>(<font color="#000084">_xmouse</font> &gt;= mc_arrow.<font color="#000099">_x</font> &amp;&amp; <font color="#000099">_ymouse</font> &gt; mc_arrow.<font color="#000099">_y</font>){</font></p><p align="left"><font face="Courier New" size="14" color="#000000"> &nbsp;<font color="#808080">//quadrant III</font></font></p><p align="left"><font face="Courier New" size="14" color="#000000"> &nbsp;mc_arrow.<font color="#000099">_rotation</font> = 180 + (180*theta)<font color="#000099">/Math</font>.<font color="#000099">PI;</font></font></p><p align="left"><font face="Courier New" size="14" color="#000000">}<font color="#000084">else</font> {</font></p><p align="left"><font face="Courier New" size="14" color="#000000"> &nbsp;<font color="#808080">//quadrant IV</font></font></p><p align="left"><font face="Courier New" size="14" color="#000000"> &nbsp;mc_arrow.<font color="#000099">_rotation</font> = 360 - (180*theta)/<font color="#000099">Math</font>.<font color="#000099">PI</font>;</font></p><p align="left"><font face="Courier New" size="14" color="#000000">}</font></p>

All this does is start the rotation at 0°.

Only one last thing stands before you and a
finished rotating arrow Flash. It is this simple fact:
Mathematics rotates counter-clockwise, while
Flash MX rotates clockwise.
This is an easy challenge to overcome. All you
have to do is slap a negative sign (-) in front of the
angle you specify for the _rotation property.
Click here if you want to see the full source code
listing for the rotating arrow. It may look different
than what I've shown you so far, because I made
the code more efficient.

Rotating Arrow Code Listing

<p align="left"><font face="Courier New" size="13" color="#000000">this.onEnterFrame = function(){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;xdist = Math.abs(_root._xmouse - mc_arrow._x);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;ydist = Math.abs(_root._ymouse - mc_arrow._y);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;theta = Math.atan(ydist/xdist);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;if(_root._xmouse &gt;= mc_arrow._x &amp;&amp; _root._ymouse &lt;= <sbr />mc_arrow._y){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;angle = theta;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;}else if(_root._xmouse &lt; mc_arrow._x &amp;&amp; _root._ymouse <sbr />&lt;= mc_arrow._y){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;angle = Math.PI - theta;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;}else if(_root._xmouse &lt; mc_arrow._x &amp;&amp; _root._ymouse &gt; <sbr />mc_arrow._y){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;angle = Math.PI + theta;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;}else {</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;angle = (2 * Math.PI) - theta;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;mc_arrow._rotation = -((180*angle) / Math.PI);</font></p><p align="left"><font face="Courier New" size="13" color="#000000">}</font></p>

On to the next Trig demo! This is the code I added
for the ABS Fishtank. I made it so that the fish
point in the direction they swim. Let's watch the
fishy again.

Explaining the Demos - Swimming Fish

The movement of the fish is not particularly
beautiful, but it gets my Trigonometry point across.
I'm not going to explain all the code, just the Trig
part. Basically, the fish picks a target location
randomly within the box. The code uses Trig to
point the fish in the right direction, and then the fish
swims until it reaches its destination, starting the
process over again.

The fish is just sitting there, and then it decides a
target point. It needs to rotate to point at the target.

Are you seeing the triangle?

Target

x

y

r

ø

You should know how to do the rest of it from the
arrow demo, but in case you forgot already, I'll walk
you through it again real quick.

1. Find x and y using x = targetX - fish._x;
and y = targetY - fish._y;

x

y

2. Find theta using theta = Math.atan(y / x);

ø

3. Edit your code so it works with all 4 quadrants.

I

IV

II

III

In this case we have a problem.
Unlike the arrow, the fish is not
symmetrical. This means that
when the fish is rotated so that it
is facing left, it would be upside
down.

To correct this, place the fish inside a movie clip. In
the first frame, make the fish face right. In the second
frame, make the fish face left. Then, in your code,
adjust the direction of the fish by using
fish.gotoAndStop([1 or 2]);

In quadrants 1 and 4, make the fish point right.
In quadrants 2 and 3, make the fish point left.

The final thing you need to do is adjust theta. Because
the fish facing left starts at 180°, and not 0°, you have
to subtract 180° from theta in quadrants 2 and 3.

4. When you finally set the _rotation property,
negate the angle.

Obviously, there's more to the code for the fish than
Trigonometry. The code I created for moving the fish
around is poorly coded and not very good, but the
code for setting the correct rotation is superb, so that's
what you should pay attention to.
Click here to see the full source listing for the
swimming fish.

Swimming Fish Code Listing

<p align="left"><font face="Courier New" size="13" color="#000000">curTime = 0;</font></p><p align="left"><font face="Courier New" size="13" color="#000000">targX = 0;</font></p><p align="left"><font face="Courier New" size="13" color="#000000">targY = 0;</font></p><p align="left"><font face="Courier New" size="13" color="#000000">fishSpd = 4;</font></p><p align="left"><font face="Courier New" size="13" color="#000000">fishSwimming = false;</font></p><p align="left"><font face="Courier New" size="13" color="#000000">xT = false;</font></p><p align="left"><font face="Courier New" size="13" color="#000000">yT = false;</font></p><p align="left"></p><p align="left"><font face="Courier New" size="13" color="#000000">this.onEnterFrame = function(){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;if(!fishSwimming &amp;&amp; getTimer() - curTime &gt; 1000){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;fishSwimming = true;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;targX = tank._x + Math.random() * tank._width;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;targY = tank._y + Math.random() * tank._height;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;//point the fish</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;xdist = Math.abs(targX - fish._x);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;ydist = Math.abs(targY - fish._y);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;theta = Math.atan(ydist/xdist);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;if(_root.targX &gt;= fish._x &amp;&amp; targY &lt;= fish._y){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;angle = theta;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish.gotoAndStop(1);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}else if(targX &lt; fish._x &amp;&amp; targY &lt;= fish._y){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;angle = - theta;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish.gotoAndStop(2);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}else if(targX &lt; fish._x &amp;&amp; targY &gt; fish._y){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;angle = &nbsp;theta;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish.gotoAndStop(2);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}else {</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;angle = (2 * Math.PI) - theta;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish.gotoAndStop(1);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;fish._rotation = -((180*angle) / Math.PI);</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;if(fishSwimming){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;if(fish._x &lt;= targX){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(fish._x+ fishSpd &gt;= targX){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish._x = targX;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xT = true;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish._x += fishSpd;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;} else if(fish._x &gt;= targX) {</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;if(fish._x- fishSpd &lt;= targX){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish._x = targX;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xT = true;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}else{</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;fish._x -= fishSpd;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;if(fish._y &lt;= targY){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;if(fish._y+ fishSpd &gt;= targY){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish._y = targY;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yT = true;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}else{</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish._y += fishSpd;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;} else if(fish._y &gt;= targY) {</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;if(fish._y- fishSpd &lt;= targY){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish._y = targY;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yT = true;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fish._y -= fishSpd;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;}</font></p><p align="left"></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;if(xT &amp;&amp; yT){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fishSwimming = false;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curTime = getTimer();</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xT = false;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yT = false;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p><p align="left"><font face="Courier New" size="13" color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;}</font></p><p align="left"><font face="Courier New" size="13" color="#000000">}</font></p>

This example really doesn't have too much to do with
Trig, but I put it in because it has to do with circles,
angles, and rotation. The point is, if you're good at
Trig, using the _rotation property is a cinch. Let's
see what time it is.

Hmm, it's been 1 hours, 32 minutes, and 56 seconds since you looked at this clock.

Explaining the Demos - Clock

The first thing you have to do is create the clock
outline. I did a nice, simple one using the circle tool
and the text tool.

Next, I created the hands. Instead of making them
point right, like I usually do, I made them point up,
because that's where the clock starts.

The important thing when making the hands is to set
the registration point at the bottom. That way, when
you rotate the hands, they rotate around the clock.

Next, I simply positioned the registration point at the
center of the clock. When we rotate it, the clock hands
will act like they are supposed to.

Now we come to the easy, fun part. We'll put some
ActionScript in the frame with the clock. The code for
retrieving the current time in Flash is:
curTime = new Date();
That's all. The variable curTime now holds the
current date and time. To extract hours, minutes, and
seconds, use:
hours = curTime.getHours();
minutes = curTime.getMinutes();
seconds = curTime.getSeconds();

Unforunately, I can't ask you if you're seeing the
triangle, because there isn't one. All you have to do is
make a proportion. Flash rotates clockwise, so all you
have to do is decide how far to rotate. Well, the
maximum amount of minutes is 60, so that ones easy:

<p align="left"><font face="Courier New" size="19" color="#000000">minuteHand._rotation = (curTime.getMinutes() / 60) * 360;</font></p>

And it's the same thing with the second hand:

<p align="left"><font face="Courier New" size="19" color="#000000">secondHand._rotation = (curTime.getSeconds() / 60) * 360;</font></p>

The only problem arises with the hour hand. When
you use curTime.getHours(), it returns the hours
in 24-hour time format. Three simple lines of code will
overcome that:

<p align="left"><font face="Courier New" size="19" color="#000000">hours = nowTime.getHours();</font></p><p align="left"><font face="Courier New" size="19" color="#000000">if (hours &gt; 12) hours -= 12;</font></p><p align="left"><font face="Courier New" size="19" color="#000000">hourHand._rotation = (hours / 12) * 360;</font></p>

You should be able to create a working clock now.
That example was pretty easy.
Click here to see the full source code listing for the
clock. It's not very much code at all.

Clock Code Listing

<p align="left"><font face="Courier New" size="13" color="#000000">this.onEnterFrame = function(){</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;nowTime = new Date();</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;hours = nowTime.getHours();</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;if (hours &gt; 12) hours -= 12;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;hourH._rotation = (hours / 12) * 360;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;minH._rotation = &nbsp;(nowTime.getMinutes() / 60) * 360;</font></p><p align="left"><font face="Courier New" size="13" color="#000000"> &nbsp;secH._rotation = &nbsp;(nowTime.getSeconds() / 60) * 360;</font></p><p align="left"><font face="Courier New" size="13" color="#000000">}</font></p>

If you were paying attention, you should be able to
use trig to assist your animations and games.
Keep your chin up - Trig can get complicated. If
something is not going as expected, mess around with
theta. Try making it negative, or adding/subtracting
180°, or anything you can think of. Usually, it takes me
4 or 5 tries until my Trig code works out. Even when I
was making this tutorial, the Trig didn't work out right
at first. Keep trying and you'll get it eventually.

Congratulations

Congratulations, you just spent 5 hours, 56 minutes, and 23 seconds learning about Trigonometry. You should ask your teacher for extra credit or something.

<p align="center"><font face="Arial" size="16" color="#000000">Made for <a href="http://www.albinoblacksheep.com">Albino Blacksheep</a></font></p>

<p align="center"><font face="Arial" size="20" color="#000000">by</font></p><p align="center"><font face="Arial" size="49" color="#000000"><a href="http://www.geocities.com/joesarcade">Superjoe Software</a></font></p>

ActionScript [AS1/AS2]

Frame 1
if (_global.System) { System.security.allowDomain("mochibot.com"); } _level0.__com_mochibot__swfid = "47e14f78"; loadMovieNum ("http://mochibot.com/my/core.swf", 10301); loadPercent = _root.getBytesLoaded() / _root.getBytesTotal(); degrees = loadPercent * 360; ticker._rotation = degrees;
Frame 2
if (_root.getBytesLoaded() < _root.getBytesTotal()) { gotoAndPlay (1); }
Frame 3
stop();
Frame 21
stop();
Frame 22
curTime = 0; targX = 0; targY = 0; fishSpd = 4; fishSwimming = false; xT = false; yT = false; onEnterFrame = function () { xdist = Math.abs(_root._xmouse - mc_arrow._x); ydist = Math.abs(_root._ymouse - mc_arrow._y); theta = Math.atan(ydist / xdist); if ((_root._xmouse >= mc_arrow._x) && (_root._ymouse <= mc_arrow._y)) { angle = theta; } else if ((_root._xmouse < mc_arrow._x) && (_root._ymouse <= mc_arrow._y)) { angle = Math.PI - theta; } else if ((_root._xmouse < mc_arrow._x) && (_root._ymouse > mc_arrow._y)) { angle = Math.PI + theta; } else { angle = (Math.PI*2) - theta; } mc_arrow._rotation = -((180 * angle) / Math.PI); if ((!fishSwimming) && ((getTimer() - curTime) > 1000)) { fishSwimming = true; targX = tank._x + (Math.random() * tank._width); targY = tank._y + (Math.random() * tank._height); xdist = Math.abs(targX - fish._x); ydist = Math.abs(targY - fish._y); theta = Math.atan(ydist / xdist); if ((_root.targX >= fish._x) && (targY <= fish._y)) { angle = theta; fish.gotoAndStop(1); } else if ((targX < fish._x) && (targY <= fish._y)) { angle = -theta; fish.gotoAndStop(2); } else if ((targX < fish._x) && (targY > fish._y)) { angle = theta; fish.gotoAndStop(2); } else { angle = (Math.PI*2) - theta; fish.gotoAndStop(1); } fish._rotation = -((180 * angle) / Math.PI); } if (fishSwimming) { if (fish._x <= targX) { if ((fish._x + fishSpd) >= targX) { fish._x = targX; xT = true; } else { fish._x = fish._x + fishSpd; } } else if (fish._x >= targX) { if ((fish._x - fishSpd) <= targX) { fish._x = targX; xT = true; } else { fish._x = fish._x - fishSpd; } } if (fish._y <= targY) { if ((fish._y + fishSpd) >= targY) { fish._y = targY; yT = true; } else { fish._y = fish._y + fishSpd; } } else if (fish._y >= targY) { if ((fish._y - fishSpd) <= targY) { fish._y = targY; yT = true; } else { fish._y = fish._y - fishSpd; } } if (xT && (yT)) { fishSwimming = false; curTime = getTimer(); xT = false; yT = false; } } nowTime = new Date(); hours = nowTime.getHours(); if (hours > 12) { hours = hours - 12; } hourH._rotation = (hours / 12) * 360; minH._rotation = (nowTime.getMinutes() / 60) * 360; secH._rotation = (nowTime.getSeconds() / 60) * 360; clockTime = getTimer(); };
Frame 26
rot = 0; wid = redLine._width; this.onEnterFrame = function () { rot++; if (rot > 360) { rot = rot - 360; } redLine._rotation = -rot; degClip._x = redLine._x + (wid * Math.cos(((-rot) * Math.PI) / 180)); degClip._y = redLine._y + (wid * Math.sin(((-rot) * Math.PI) / 180)); degClip.numDegrees.text = rot + "\u00B0"; };
Frame 34
onEnterFrame = function () { xdist = Math.abs(_root._xmouse - mc_arrow._x); ydist = Math.abs(_root._ymouse - mc_arrow._y); theta = Math.atan(ydist / xdist); if ((_root._xmouse >= mc_arrow._x) && (_root._ymouse <= mc_arrow._y)) { angle = theta; } else if ((_root._xmouse < mc_arrow._x) && (_root._ymouse <= mc_arrow._y)) { angle = Math.PI - theta; } else if ((_root._xmouse < mc_arrow._x) && (_root._ymouse > mc_arrow._y)) { angle = Math.PI + theta; } else { angle = (Math.PI*2) - theta; } mc_arrow._rotation = -((180 * angle) / Math.PI); };
Frame 43
arrowCode._visible = false;
Frame 44
curTime = 0; targX = 0; targY = 0; fishSpd = 4; fishSwimming = false; xT = false; yT = false; this.onEnterFrame = function () { if ((!fishSwimming) && ((getTimer() - curTime) > 1000)) { fishSwimming = true; targX = tank._x + (Math.random() * tank._width); targY = tank._y + (Math.random() * tank._height); xdist = Math.abs(targX - fish._x); ydist = Math.abs(targY - fish._y); theta = Math.atan(ydist / xdist); if ((_root.targX >= fish._x) && (targY <= fish._y)) { angle = theta; fish.gotoAndStop(1); } else if ((targX < fish._x) && (targY <= fish._y)) { angle = -theta; fish.gotoAndStop(2); } else if ((targX < fish._x) && (targY > fish._y)) { angle = theta; fish.gotoAndStop(2); } else { angle = (Math.PI*2) - theta; fish.gotoAndStop(1); } fish._rotation = -((180 * angle) / Math.PI); } if (fishSwimming) { if (fish._x <= targX) { if ((fish._x + fishSpd) >= targX) { fish._x = targX; xT = true; } else { fish._x = fish._x + fishSpd; } } else if (fish._x >= targX) { if ((fish._x - fishSpd) <= targX) { fish._x = targX; xT = true; } else { fish._x = fish._x - fishSpd; } } if (fish._y <= targY) { if ((fish._y + fishSpd) >= targY) { fish._y = targY; yT = true; } else { fish._y = fish._y + fishSpd; } } else if (fish._y >= targY) { if ((fish._y - fishSpd) <= targY) { fish._y = targY; yT = true; } else { fish._y = fish._y - fishSpd; } } if (xT && (yT)) { fishSwimming = false; curTime = getTimer(); xT = false; yT = false; } } };
Frame 53
fishCode._visible = false;
Frame 54
secondsPassed = Math.floor((getTimer() - clockTime) / 1000); if (secondsPassed >= 60) { minutesPassed = Math.floor(secondsPassed / 60); secondsPassed = secondsPassed % 60; if (minutesPassed >= 60) { hoursPassed = Math.floor(minutesPassed / 60); minutesPassed = minutesPassed % 60; } } newText = "Hmm, it's been"; if (hoursPassed > 0) { newText = newText + (" " + hoursPassed); if (hoursPassed > 1) { newText = newText + " hours,"; } else { newText = newText + " hour,"; } } if (minutesPassed > 0) { if (secondsPassed > 0) { newText = newText + (" " + minutesPassed); } else { newText = newText + (" and " + minutesPassed); } if (minutesPassed > 1) { newText = newText + " minutes"; } else { newText = newText + " minute"; } if ((secondsPassed > 0) && (hoursPassed > 0)) { newText = newText + ","; } } if (secondsPassed > 0) { if ((minutesPassed > 0) || (hoursPassed > 0)) { newText = newText + (" and " + secondsPassed); } else { newText = newText + (" " + secondsPassed); } if (secondsPassed > 1) { newText = newText + " seconds"; } else { newText = newText + " second"; } } newText = newText + " since you last looked at this clock."; timePassed.text = newText; clockTime = getTimer(); this.onEnterFrame = function () { nowTime = new Date(); hours = nowTime.getHours(); if (hours > 12) { hours = hours - 12; } hourH._rotation = (hours / 12) * 360; minH._rotation = (nowTime.getMinutes() / 60) * 360; secH._rotation = (nowTime.getSeconds() / 60) * 360; };
Frame 62
clockCode._visible = false;
Frame 64
secondsPassed = Math.floor(getTimer() / 1000); if (secondsPassed >= 60) { minutesPassed = Math.floor(secondsPassed / 60); secondsPassed = secondsPassed % 60; if (minutesPassed >= 60) { hoursPassed = Math.floor(minutesPassed / 60); minutesPassed = minutesPassed % 60; } } newText = "Congratulations, you just spent"; if (hoursPassed > 0) { newText = newText + (" " + hoursPassed); if (hoursPassed > 1) { newText = newText + " hours,"; } else { newText = newText + " hour,"; } } if (minutesPassed > 0) { if (secondsPassed > 0) { newText = newText + (" " + minutesPassed); } else { newText = newText + (" and " + minutesPassed); } if (minutesPassed > 1) { newText = newText + " minutes"; } else { newText = newText + " minute"; } if ((secondsPassed > 0) && (hoursPassed > 0)) { newText = newText + ","; } } if (secondsPassed > 0) { if ((minutesPassed > 0) || (hoursPassed > 0)) { newText = newText + (" and " + secondsPassed); } else { newText = newText + (" " + secondsPassed); } if (secondsPassed > 1) { newText = newText + " seconds"; } else { newText = newText + " second"; } } newText = newText + " learning about Trigonometry. You should ask your teacher for extra credit or something."; timePassed.text = newText;
Symbol 20 Button
on (release) { play(); }
Symbol 37 Button
on (release) { nextFrame(); }
Symbol 50 Button
on (release) { gotoAndStop ("topic2"); }
Symbol 52 Button
on (release) { _root.onEnterFrame = null; nextFrame(); }
Symbol 100 Button
on (release) { gotoAndStop ("topic1"); }
Symbol 110 Button
on (release) { gotoAndStop ("topic3"); }
Symbol 114 Button
on (release) { gotoAndStop ("topic2"); }
Symbol 126 Button
on (release) { gotoAndStop ("topic4"); }
Symbol 132 Button
on (release) { gotoAndStop ("topic3"); }
Symbol 162 Button
on (release) { gotoAndStop ("topic5"); }
Symbol 173 MovieClip Frame 40
stop();
Symbol 174 Button
on (release) { gotoAndStop ("topic4"); }
Symbol 190 MovieClip Frame 40
stop();
Symbol 206 Button
on (press) { arrowCode._visible = true; }
Symbol 208 Button
on (press) { this._visible = false; }
Symbol 214 Button
on (release) { gotoAndStop ("topic6"); }
Symbol 217 Button
on (release) { gotoAndStop ("topic5"); }
Symbol 229 MovieClip Frame 40
stop();
Symbol 251 Button
on (press) { fishCode._visible = true; }
Symbol 258 Button
on (rollOver) { _parent.onEnterFrame = function () { fishCode._y = fishCode._y + 12; if (fishCode._y > fishTop) { fishCode._y = fishTop; } }; } on (rollOut) { _parent.onEnterFrame = null; }
Symbol 259 Button
on (rollOver) { _parent.onEnterFrame = function () { fishCode._y = fishCode._y - 12; if ((fishCode._y + fishCode._height) < fishBottom) { fishCode._y = fishBottom - fishCode._height; } }; } on (rollOut) { _parent.onEnterFrame = null; }
Symbol 260 MovieClip Frame 1
fishTop = fishCode._y; fishBottom = fishTop - fishCode._height;
Symbol 264 Button
on (release) { gotoAndStop ("topic7"); }
Symbol 266 Button
on (release) { gotoAndStop ("topic6"); }
Symbol 281 Button
on (press) { clockCode._visible = true; }
Symbol 291 MovieClip Frame 40
stop();
Symbol 292 Button
on (release) { gotoAndStop ("topic7"); }

Library Items

Symbol 1 GraphicUsed by:Timeline
Symbol 2 FontUsed by:3 4 5 6 7 8 9 10 11 12 105 106 107 108
Symbol 3 TextUses:2Used by:Timeline
Symbol 4 TextUses:2Used by:Timeline
Symbol 5 TextUses:2Used by:Timeline
Symbol 6 TextUses:2Used by:Timeline
Symbol 7 TextUses:2Used by:Timeline
Symbol 8 TextUses:2Used by:Timeline
Symbol 9 TextUses:2Used by:Timeline
Symbol 10 TextUses:2Used by:Timeline
Symbol 11 TextUses:2Used by:Timeline
Symbol 12 TextUses:2Used by:Timeline
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClipUses:13Used by:Timeline
Symbol 15 GraphicUsed by:20
Symbol 16 FontUsed by:17 40 42 44 48 103 104 112 123 127 137 183 209 252 282 289 290
Symbol 17 TextUses:16Used by:20
Symbol 18 GraphicUsed by:20
Symbol 19 GraphicUsed by:20
Symbol 20 ButtonUses:15 17 18 19Used by:Timeline
Symbol 21 GraphicUsed by:206 208 251 258 259 281 291  Timeline
Symbol 22 GraphicUsed by:Timeline
Symbol 23 ShapeTweeningUsed by:Timeline
Symbol 24 FontUsed by:25 134 157 177 186 202 210 254 274 276 278 283
Symbol 25 TextUses:24Used by:Timeline
Symbol 26 SoundUsed by:Timeline
Symbol 27 GraphicUsed by:Timeline
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClipUses:28Used by:30
Symbol 30 MovieClipUses:29Used by:Timeline
Symbol 31 FontUsed by:32 34 51 53 54 55 61 62 63 64 65 66 67 68 69 70 71 72 101 103 104 112 113 116 117 122 123 124 127 128 129 130 131 133 135 137 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 158 159 160 164 168 169 170 171 176 178 179 180 181 182 183 184 187 191 193 194 195 201 203 205 212 215 220 221 222 224 225 226 227 230 231 232 233 234 235 237 242 244 245 246 248 250 261 262 265 267 268 271 272 273 275 277 280 285 288 289 290
Symbol 32 TextUses:31Used by:Timeline
Symbol 33 GraphicUsed by:37 52
Symbol 34 TextUses:31Used by:37 52
Symbol 35 GraphicUsed by:37 52
Symbol 36 GraphicUsed by:37 52
Symbol 37 ButtonUses:33 34 35 36Used by:Timeline
Symbol 38 FontUsed by:39 109 125 161 213 263 286
Symbol 39 TextUses:38Used by:Timeline
Symbol 40 TextUses:16Used by:Timeline
Symbol 41 GraphicUsed by:46 100 114 132 174 217 266 292
Symbol 42 TextUses:16Used by:46 100 114 132 174 217 266 292
Symbol 43 GraphicUsed by:46 100 114 132 174 217 266 292
Symbol 44 TextUses:16Used by:46 100 114 132 174 217 266 292
Symbol 45 GraphicUsed by:46 50 100 110 114 126 132 162 174 214 217 264 266 287 292
Symbol 46 ButtonUses:41 42 43 44 45Used by:Timeline
Symbol 47 GraphicUsed by:50 110 126 162 214 264 287
Symbol 48 TextUses:16Used by:50 110 126 162 214 264 287
Symbol 49 GraphicUsed by:50 110 126 162 214 264 287
Symbol 50 ButtonUses:47 48 49 45Used by:Timeline
Symbol 51 TextUses:31Used by:Timeline
Symbol 52 ButtonUses:33 34 35 36Used by:Timeline
Symbol 53 TextUses:31Used by:Timeline
Symbol 54 TextUses:31Used by:Timeline
Symbol 55 TextUses:31Used by:Timeline
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClipUses:56Used by:189  Timeline
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClipUses:58Used by:Timeline
Symbol 60 GraphicUsed by:73
Symbol 61 TextUses:31Used by:73
Symbol 62 TextUses:31Used by:73
Symbol 63 TextUses:31Used by:73
Symbol 64 TextUses:31Used by:73
Symbol 65 TextUses:31Used by:73
Symbol 66 TextUses:31Used by:73
Symbol 67 TextUses:31Used by:73
Symbol 68 TextUses:31Used by:73
Symbol 69 TextUses:31Used by:73
Symbol 70 TextUses:31Used by:73
Symbol 71 TextUses:31Used by:73
Symbol 72 TextUses:31Used by:73
Symbol 73 MovieClipUses:60 61 62 63 64 65 66 67 68 69 70 71 72Used by:Timeline
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:74Used by:Timeline
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClipUses:76Used by:Timeline
Symbol 78 GraphicUsed by:79
Symbol 79 MovieClipUses:78Used by:Timeline
Symbol 80 GraphicUsed by:98
Symbol 81 GraphicUsed by:82
Symbol 82 MovieClipUses:81Used by:98
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:83Used by:98
Symbol 85 GraphicUsed by:97
Symbol 86 GraphicUsed by:97
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87Used by:97
Symbol 89 GraphicUsed by:97
Symbol 90 GraphicUsed by:97
Symbol 91 GraphicUsed by:97
Symbol 92 GraphicUsed by:97
Symbol 93 GraphicUsed by:97
Symbol 94 GraphicUsed by:97
Symbol 95 GraphicUsed by:97
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClipUses:85 86 88 89 90 91 92 93 94 95 96Used by:98
Symbol 98 MovieClipUses:80 82 84 97Used by:99 216  Timeline
Symbol 99 MovieClipUses:98Used by:Timeline
Symbol 100 ButtonUses:41 42 43 44 45Used by:Timeline
Symbol 101 TextUses:31Used by:Timeline
Symbol 102 GraphicUsed by:Timeline
Symbol 103 TextUses:31 16Used by:Timeline
Symbol 104 TextUses:31 16Used by:Timeline
Symbol 105 TextUses:2Used by:Timeline
Symbol 106 TextUses:2Used by:Timeline
Symbol 107 TextUses:2Used by:Timeline
Symbol 108 TextUses:2Used by:Timeline
Symbol 109 TextUses:38Used by:Timeline
Symbol 110 ButtonUses:47 48 49 45Used by:Timeline
Symbol 111 GraphicUsed by:Timeline
Symbol 112 TextUses:31 16Used by:Timeline
Symbol 113 TextUses:31Used by:Timeline
Symbol 114 ButtonUses:41 42 43 44 45Used by:Timeline
Symbol 115 GraphicUsed by:Timeline
Symbol 116 TextUses:31Used by:Timeline
Symbol 117 EditableTextUses:31Used by:118
Symbol 118 MovieClipUses:117Used by:Timeline
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClipUses:119Used by:Timeline
Symbol 121 GraphicUsed by:Timeline
Symbol 122 TextUses:31Used by:Timeline
Symbol 123 TextUses:31 16Used by:Timeline
Symbol 124 TextUses:31Used by:Timeline
Symbol 125 TextUses:38Used by:Timeline
Symbol 126 ButtonUses:47 48 49 45Used by:Timeline
Symbol 127 TextUses:31 16Used by:Timeline
Symbol 128 TextUses:31Used by:Timeline
Symbol 129 TextUses:31Used by:Timeline
Symbol 130 TextUses:31Used by:Timeline
Symbol 131 TextUses:31Used by:Timeline
Symbol 132 ButtonUses:41 42 43 44 45Used by:Timeline
Symbol 133 TextUses:31Used by:Timeline
Symbol 134 EditableTextUses:24 136Used by:Timeline
Symbol 135 TextUses:31Used by:Timeline
Symbol 136 FontUsed by:134 137 139 157 177 182 183 185 186 202 205 210 231 234 244 248 254 261 272 274 276 277 278 283
Symbol 137 TextUses:31 136 16Used by:Timeline
Symbol 138 GraphicUsed by:Timeline
Symbol 139 TextUses:31 136Used by:Timeline
Symbol 140 TextUses:31Used by:Timeline
Symbol 141 TextUses:31Used by:Timeline
Symbol 142 TextUses:31Used by:Timeline
Symbol 143 TextUses:31Used by:Timeline
Symbol 144 TextUses:31Used by:Timeline
Symbol 145 TextUses:31Used by:Timeline
Symbol 146 TextUses:31Used by:Timeline
Symbol 147 TextUses:31Used by:Timeline
Symbol 148 TextUses:31Used by:Timeline
Symbol 149 TextUses:31Used by:Timeline
Symbol 150 TextUses:31Used by:Timeline
Symbol 151 TextUses:31Used by:Timeline
Symbol 152 TextUses:31Used by:Timeline
Symbol 153 TextUses:31Used by:Timeline
Symbol 154 TextUses:31Used by:Timeline
Symbol 155 TextUses:31Used by:Timeline
Symbol 156 TextUses:31Used by:Timeline
Symbol 157 EditableTextUses:24 136Used by:Timeline
Symbol 158 TextUses:31Used by:Timeline
Symbol 159 TextUses:31Used by:Timeline
Symbol 160 TextUses:31Used by:Timeline
Symbol 161 TextUses:38Used by:Timeline
Symbol 162 ButtonUses:47 48 49 45Used by:Timeline
Symbol 163 GraphicUsed by:Timeline
Symbol 164 TextUses:31Used by:Timeline
Symbol 165 GraphicUsed by:166
Symbol 166 MovieClipUses:165Used by:189  Timeline
Symbol 167 GraphicUsed by:172
Symbol 168 TextUses:31Used by:172 189  Timeline
Symbol 169 TextUses:31Used by:172 189  Timeline
Symbol 170 TextUses:31Used by:172 189  Timeline
Symbol 171 TextUses:31Used by:172 189  Timeline
Symbol 172 MovieClipUses:167 168 169 170 171Used by:173
Symbol 173 MovieClipUses:172Used by:Timeline
Symbol 174 ButtonUses:41 42 43 44 45Used by:Timeline
Symbol 175 GraphicUsed by:Timeline
Symbol 176 TextUses:31Used by:Timeline
Symbol 177 EditableTextUses:24 136Used by:Timeline
Symbol 178 TextUses:31Used by:Timeline
Symbol 179 TextUses:31Used by:Timeline
Symbol 180 TextUses:31Used by:Timeline
Symbol 181 TextUses:31Used by:Timeline
Symbol 182 TextUses:31 136Used by:Timeline
Symbol 183 TextUses:31 16 136Used by:Timeline
Symbol 184 TextUses:31Used by:Timeline
Symbol 185 TextUses:136Used by:Timeline
Symbol 186 EditableTextUses:24 136Used by:Timeline
Symbol 187 TextUses:31Used by:Timeline
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:188 57 166 168 169 170 171Used by:190
Symbol 190 MovieClipUses:189Used by:Timeline
Symbol 191 TextUses:31Used by:Timeline
Symbol 192 GraphicUsed by:Timeline
Symbol 193 TextUses:31Used by:Timeline
Symbol 194 TextUses:31Used by:Timeline
Symbol 195 TextUses:31Used by:Timeline
Symbol 196 FontUsed by:197 198 199 200 238 239 240 241
Symbol 197 TextUses:196Used by:Timeline
Symbol 198 TextUses:196Used by:Timeline
Symbol 199 TextUses:196Used by:Timeline
Symbol 200 TextUses:196Used by:Timeline
Symbol 201 TextUses:31Used by:Timeline
Symbol 202 EditableTextUses:24 136Used by:Timeline
Symbol 203 TextUses:31Used by:Timeline
Symbol 204 GraphicUsed by:Timeline
Symbol 205 TextUses:31 136Used by:Timeline
Symbol 206 ButtonUses:21Used by:Timeline
Symbol 207 GraphicUsed by:211 260 284
Symbol 208 ButtonUses:21Used by:211 260 284
Symbol 209 TextUses:16Used by:211
Symbol 210 EditableTextUses:24 136Used by:211
Symbol 211 MovieClipUses:207 208 209 210Used by:Timeline
Symbol 212 TextUses:31Used by:Timeline
Symbol 213 TextUses:38Used by:Timeline
Symbol 214 ButtonUses:47 48 49 45Used by:Timeline
Symbol 215 TextUses:31Used by:Timeline
Symbol 216 MovieClipUses:98Used by:Timeline
Symbol 217 ButtonUses:41 42 43 44 45Used by:Timeline
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClipUses:218Used by:Timeline
Symbol 220 TextUses:31Used by:Timeline
Symbol 221 TextUses:31Used by:Timeline
Symbol 222 TextUses:31Used by:Timeline
Symbol 223 GraphicUsed by:228  Timeline
Symbol 224 TextUses:31Used by:228  Timeline
Symbol 225 TextUses:31Used by:228  Timeline
Symbol 226 TextUses:31Used by:228  Timeline
Symbol 227 TextUses:31Used by:228  Timeline
Symbol 228 MovieClipUses:223 224 225 226 227Used by:229
Symbol 229 MovieClipUses:228Used by:Timeline
Symbol 230 TextUses:31Used by:Timeline
Symbol 231 TextUses:31 136Used by:Timeline
Symbol 232 TextUses:31Used by:Timeline
Symbol 233 TextUses:31Used by:Timeline
Symbol 234 TextUses:31 136Used by:Timeline
Symbol 235 TextUses:31Used by:Timeline
Symbol 236 GraphicUsed by:Timeline
Symbol 237 TextUses:31Used by:Timeline
Symbol 238 TextUses:196Used by:Timeline
Symbol 239 TextUses:196Used by:Timeline
Symbol 240 TextUses:196Used by:Timeline
Symbol 241 TextUses:196Used by:Timeline
Symbol 242 TextUses:31Used by:Timeline
Symbol 243 FontUsed by:244 289 290
Symbol 244 TextUses:31 136 243Used by:Timeline
Symbol 245 TextUses:31Used by:Timeline
Symbol 246 TextUses:31Used by:Timeline
Symbol 247 GraphicUsed by:Timeline
Symbol 248 TextUses:31 136Used by:Timeline
Symbol 249 GraphicUsed by:Timeline
Symbol 250 TextUses:31Used by:Timeline
Symbol 251 ButtonUses:21Used by:Timeline
Symbol 252 TextUses:16Used by:260
Symbol 253 GraphicUsed by:260
Symbol 254 EditableTextUses:24 136Used by:255
Symbol 255 MovieClipUses:254Used by:260
Symbol 256 GraphicUsed by:257
Symbol 257 MovieClipUses:256Used by:260
Symbol 258 ButtonUses:21Used by:260
Symbol 259 ButtonUses:21Used by:260
Symbol 260 MovieClipUses:207 208 252 253 255 257 258 259Used by:Timeline
Symbol 261 TextUses:31 136Used by:Timeline
Symbol 262 EditableTextUses:31Used by:Timeline
Symbol 263 TextUses:38Used by:Timeline
Symbol 264 ButtonUses:47 48 49 45Used by:Timeline
Symbol 265 TextUses:31Used by:Timeline
Symbol 266 ButtonUses:41 42 43 44 45Used by:Timeline
Symbol 267 TextUses:31Used by:Timeline
Symbol 268 TextUses:31Used by:Timeline
Symbol 269 GraphicUsed by:270
Symbol 270 MovieClipUses:269Used by:Timeline
Symbol 271 TextUses:31Used by:Timeline
Symbol 272 TextUses:31 136Used by:Timeline
Symbol 273 TextUses:31Used by:Timeline
Symbol 274 EditableTextUses:24 136Used by:Timeline
Symbol 275 TextUses:31Used by:Timeline
Symbol 276 EditableTextUses:24 136Used by:Timeline
Symbol 277 TextUses:31 136Used by:Timeline
Symbol 278 EditableTextUses:24 136Used by:Timeline
Symbol 279 GraphicUsed by:Timeline
Symbol 280 TextUses:31Used by:Timeline
Symbol 281 ButtonUses:21Used by:Timeline
Symbol 282 TextUses:16Used by:284
Symbol 283 EditableTextUses:24 136Used by:284
Symbol 284 MovieClipUses:207 208 282 283Used by:Timeline
Symbol 285 TextUses:31Used by:Timeline
Symbol 286 TextUses:38Used by:Timeline
Symbol 287 ButtonUses:47 48 49 45Used by:Timeline
Symbol 288 EditableTextUses:31Used by:Timeline
Symbol 289 EditableTextUses:16 31 243Used by:Timeline
Symbol 290 EditableTextUses:16 31 243Used by:291
Symbol 291 MovieClipUses:21 290Used by:Timeline
Symbol 292 ButtonUses:41 42 43 44 45Used by:Timeline
Symbol 293 SoundUsed by:Timeline

Instance Names

"ticker"Frame 1Symbol 14 MovieClip
"mc_arrow"Frame 22Symbol 57 MovieClip
"tank"Frame 22Symbol 59 MovieClip
"hourH"Frame 22Symbol 75 MovieClip
"secH"Frame 22Symbol 77 MovieClip
"minH"Frame 22Symbol 79 MovieClip
"fish"Frame 22Symbol 99 MovieClip
"degClip"Frame 26Symbol 118 MovieClip
"redLine"Frame 26Symbol 120 MovieClip
"mc_arrow"Frame 34Symbol 57 MovieClip
"mc_arrow"Frame 41Symbol 57 MovieClip
"arrowCode"Frame 43Symbol 211 MovieClip
"tank"Frame 44Symbol 59 MovieClip
"fish"Frame 44Symbol 99 MovieClip
"fishCode"Frame 53Symbol 260 MovieClip
"hourH"Frame 54Symbol 75 MovieClip
"secH"Frame 54Symbol 77 MovieClip
"minH"Frame 54Symbol 79 MovieClip
"timePassed"Frame 54Symbol 262 EditableText
"clockCode"Frame 62Symbol 284 MovieClip
"timePassed"Frame 64Symbol 288 EditableText
"numDegrees"Symbol 118 MovieClip Frame 1Symbol 117 EditableText
"mc_arrow"Symbol 189 MovieClip Frame 1Symbol 57 MovieClip
"fishCode"Symbol 260 MovieClip Frame 1Symbol 255 MovieClip

Labels

"topic1"Frame 21
"topic2"Frame 24
"topic3"Frame 27
"topic4"Frame 34
"topic5"Frame 44
"topic6"Frame 54
"topic7"Frame 63




http://swfchan.com/7/30165/info.shtml
Created: 19/5 -2019 12:40:13 Last modified: 19/5 -2019 12:40:13 Server time: 10/05 -2024 01:21:17