In this tutorial we will construct an elliptical motion using Action
Script instead of the tweening functionality. This requires only a few
- Open a new movie. You can easily alter the frame rate, background
color, and other features by selecting Modify + Movie (Document in Flash
MX). You will obtain the menu
- Make a movie clip. This movie clip will become your planet. This is
accomplished first by using the circle tool to draw a circle (or ellipse)
on the stage. Next choose the Arrow tool and select the circle. Select
Insert + Convert and convert the circle to a movie clip. Two of the
menus you will see are shown below.
Now here comes an important step
. You must
give the movie instance a name. First, be sure the Instance panel
Then from this panel select the Instance tab and type "Planet"
into the Name box. We are doing this because we want to address this
movie clip with ActionScript. It is an object and all objects must
have names if you wish to send it instructions. You will now have
something like this:
You will note that the instance name is different from the movie clip
name. This is not only ok but really important in many applications.
- In Layer 1 position the cursor in Frame 2 and insert a frame (F5)
- not a Keyframe. Do the same in Frame 3. Your Timeline will
now look like this.
- Next create a new layer. You may give the layer the name: Code. [Layers
may be given names by double-clicking on their created name and typing
in a new name.] Position the cursor in the first layer. Then type the
following action into Frame 1: stop(); Your Timeline will look as follows:
The Action panel will look something like the image below. The stop()
command is inserted to stop the animation until we wish it to begin.
If you fail to type this command in the action will start from the loading
of the movie. You will need to initiate the timestep however in frame
- Now select Frame 2 with the mouse and type the code into the Frame
Action panel as shown below. This creates the new x and y pixel position
of the planet. As you can see, we have the parametric equations for
- Now place a Keyframe(F6) in Frame 3 of your Code layer. In the Frame
Action box type in the time increment statement and the go to frame
2 statement. The statement, "i = (i+1)%60" will increase the
time counter by one but compute the remainer modulo 60. Thus the ellipse
will cycle around. (You could as well leave off the "%60.")
Now you should have this script.
We are almost done. First create a new layer. Position
the cursor in Frame 1 and make a button as before. Do this by drawing
a circle or square, choosing the Arrow tool, and selecting the graphic.
Then choose Insert + Covert and make the button. Here is the Insert+Covert
panel you should see.
- Now Choose the button and type in the Object Actions box the following
gotoAndPlay (2). The "i = 0" statement will initialize the
time step. In fact this could be any number - but it must be defined!
The Object Action box will look something like this:
- You are now ready to test your movie.
- Add- ons. On new layers, you can enter text messages, a center
of the orbit (e.g. sun), a stop button, another planet. But if you put
in another planet, you will need to give it an Instance name and replicate
the code for this planet. Change the radius so they don't overlap. You
may also alter the motion to just about anything you want. If you use
mathematical commands, such as sin, cos, exp, and the like, be sure
to refer to them as Math.sin, Math.cos, Math.exp, and so on.
Let's review the process. You needed a movie with an instance
name. This is the object you will move around the stage. You needed script
to tell the movie what to do. This was placed into a code layer in Frame
2. You then needed script to make a change to the dynamic variable and
route the playhead back to Frame 2. Finally, you needed a button to start
the planet moving.
Of course you can just start the whole thing by downloading the file
ellipse-simple.fla from the URL: http://www.math.tamu.edu/~dallen/physics/index.htm.
Indeed, it you just want to experiment with different motions, this may
be the way to proceed.