Tải bản đầy đủ (.pdf) (6 trang)

adobe flash cs5 on demand part 58 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (536.95 KB, 6 trang )

ptg
354 Chapter 14
A
function
is a block of ActionScript code that
can be reused anywhere in a SWF file. If you
pass values as parameters to a function, the
function will operate on those values. A func-
tion can also return values. Flash contains
built-in functions that let you access certain
information and perform certain tasks, such
as getting the version number of Flash Player
hosting the SWF file (getVersion()). Functions
that belong to an object are called methods.
Functions that don't belong to an object are
called top-level functions and are found in the
Functions category of the Actions panel.
Each function has its own characteristics,
and some functions require you to pass cer-
tain values. If you pass more parameters than
the function requires, the extra values are
ignored. If you don't pass a required parame-
ter, the empty parameters are assigned the
undefined data type, which can cause errors
when you export a script. To call a function, it
must be in a frame that the playhead has
reached.
To call a function, simply u s e the function
name and pass any required parameters. The
following code describes a common syntax
for creating functions:


function firstFunction (x, y, z) {
// place all actions here;
}
Using Functions
Calling a Function
Functions begin with the word function, fol-
lowed by the name of the function (user-
defined). The area enclosed by parenthesis is
used for passing parameters to the function
actions. If the parameters are left blank,
you're essentially creating a generic function
that will function the same way every time it's
called. If the function contains parameters, it
will perform in a unique way each time it's
called. When you call a function, you're
instructing Flash to execute all of the actions
within that function. Therefore, if firstFunction
contained 20 actions, all of them would be
executed by using a single line of script. To
call a function, simply add this line to the
action:
myFunction ();
Passing Parameters to a Function
If the function has been defined to accept
parameter information, you can use the fol-
lowing line of script:
myFunction (parameter 1, parameter2);
Once a Function is defined, it can be called
anytime it's needed. Therefore, it's a good
practice to define all of your functions in

frame 1 of the active Flash document. That
way they can be called anytime after that.
From the Library of Wow! eBook
ptg
Chapter 14 Using Basic ActionScripts 355
Conditional statements in ActionScript are a
critical part of interactivity. They let you pro-
gram a script based on any number of condi-
tions. For example, in the morning, you say
good day, or good morning to someone you
meet. In doing so, you made a conditional
choice.
ActionScript does the same thing. You can
create an ActionScript that checks the time of
day. If it's before noon, Flash responds with a
Good Morning message. If it's from noon to 5,
Flash says Good Afternoon, or from 5 till mid-
night, Flash says Good Evening. This type of
condition is known as an if/else condition. If
this happens, do this… else do that. Since a
variable can be almost anything you can
measure on a computer, and a conditional
statement is made up of two or more vari-
ables, ActionScript can be taken to a point
where it almost thinks for itself. The previous
example could be expressed in flow charting
the following way:
Typically, when you're creating a condi-
tional statement, you're comparing one ele-
ment against another using operators. The

following operators are available to create
conditional statements:

==
Checks for equality between two
values (is time of day equal to 5).

!=
Checks for inequality between two
values.

<
Checks for less than (is value A less
than value B).

>
Checks for greater than (is value A
greater than value B).

<=
Checks for less than or equal to
between two values.

>=
Checks for greater than or equal to
between two values.

&&
Checks for a logical AND (if day ==
"Friday" && time > 5).


||
Checks for a logical OR (if day ==
"Saturday" || day == "Sunday").
Using these operators to check between
two or more values, you can create complex
ActionScripts that react differently based on
the available data. To create a dynamic field
that checks the time, and responds with the
appropriate answer, you would enter the fol-
lowing code:
if (time > "0000 && time < 1200) {
response = "Good Morning";
} else if (time >1200 && time < 1700) {
response = "Good Afternoon";
}else if (time > 1700 && time < 2400);
response = "Good Evening"
}
Using Conditional Statements
From the Library of Wow! eBook
ptg
356 Chapter 14
Attaching a mouse event to a button is probably the easiest of all the
event handlers. For example, you have a movie clip of a dog that con-
tains a barking audio file. When the movie clip plays, the dog barks. The
trick is to have the dog bark when the visitor rolls their mouse over the
dog’s face. To do this, you will need to create an invisible button and
then attach the mouse event to the invisible button.
Attaching a Mouse
Event to a Button

Attach an Event to a Button
Click the Insert menu, and then
click New Symbol.
Select the Button type, and then
name the symbol.
Click OK.
Create a blank keyframe in the Hit
state of the button, and then
create a shape.
Leave the Up, Over, and Down
states blank.
Exit the Symbol editing mode, and
then return to the Stage.
Drag a movie clip onto the Stage.
Create a new layer, and then name
the layer.
Drag the invisible button onto the
Stage, and then place it over the
area of the image you want to use
as a button.
Enter the script (ActionScript 2.0)
as shown in the illustration.
◆ ActionScript 3.0 example files
are available on the Web at
www.perspection.com
.
When the visitor rolls into or out of
the invisible button, the rollOver or
rollOut event handlers will trigger
the playing or stopping of the dog

movie clip.
Click the Control menu, point to
Test Movie, and then click Test.
10
9
8
7
6
5
4
3
2
1
7
8
9
6
3
2
From the Library of Wow! eBook
ptg
Chapter 14 Using Basic ActionScripts 357
Frame event handlers are easy to understand. When an action is
attached to a frame, the action is triggered when the play head hits the
frame. For example, you want to create a frame event that swaps
images on the Stage, and you want the images to swap every 40
frames. You can attach an ActionScript that swaps the image, and
place the action every 40 frames. When the play head hits the frame,
the action executes. When you attach an ActionScript to a frame, you’ll
need a blank keyframe on the Timeline, and it is strongly recommended

that you always place ActionScripts in a separate layer from access
and control. In addition, if you're planning to swap images in a Flash
movie, it's always best to use a blank movie clip (called a placeholder)
to hold the images.
Working with
Frame Events
Attach an ActionScript
to a Frame
Drag a blank movie clip onto the
Stage, and then select the clip.
Give the movie clip a unique
instance name in the Properties
panel.
Create a new layer, and then name
the layer.
Create blank keyframes at frame
numbers 1, 21, 41, and 61.
Select a frame, click the Insert
menu, point to Timeline, and then
click Blank Keyframe.
Select frame 1, and then enter the
script (ActionScript 2.0) as shown
in the illustration.
◆ ActionScript 3.0 example files
are available on the Web at
www.perspection.com
.
Select frames 21, 41, and 61, and
then repeat the script, except
change the name of the image you

want to load (image_b.jpg,
image_c.jpg, image_d.jpg).
Click the Control menu, point to
Test Movie, and then click Test.
8
7
6
5
4
3
2
1
6
4
3
2
1
From the Library of Wow! eBook
ptg
358 Chapter 14
on(press) {
trace("The button has been pressed.");
}
You can specify two or more events for
each on() handler, separated by commas. The
ActionScript in a handler executes when one
of the events specified by the handler occurs.
For example, the following on() handler
attached to a button will execute whenever
the mouse rolls over or out of the button.

on(rollOver, rollOut) {
trace("mouse rolled in or out");
}
If you want different scripts to run when
different events occur, you have the option to
attach more than one handler to an object.
You can attach onClipEvent() handler s to the
same movie clip instance. The first would exe-
cute when the movie clip first loads (or
appears on the Stage); the second executes
when the movie clip is unloaded from the
Stage.
onClipEvent(load) {
trace("loaded");
}
onClipEvent (unload) {
trace("unloaded");
If you’re working with ActionScript 2.0 (not
supported in ActionScript 3.0), you can attach
clip events to movie clips, which triggers an
action specified in the onClipEvent handler.
Event handlers, also known as event listen-
ers, control when events in Flash occur. When
you create a script, some event will be
invoked to trigger that particular action. You
might want a specific movie clip to stop play-
ing when another movie clip loads on the
Stage, or when the user clicks or moves their
mouse.
The Clip Event is one of a series of event

handlers that Flash uses to create actions
within a Flash movie. You can attach event
handlers directly to a button or movie clip
instance by using the onClipEvent() or the
on() handlers. The onClipEvent() handles
movie clip events, and on() handles button
events. To use an on() or onClipEvent() han-
dler, attach it directly to an instance of a but-
ton or movie clip on the Stage, and then
specify the event you want to handle for that
instance. For example, the following on()
event handler executes whenever the user
clicks the button the handler is attached to.
Working with Clip Events
Assigning a Clip Event using
the Behaviors panel.
Assigning a Clip Event directly in
the Actions panel.
From the Library of Wow! eBook
ptg
Chapter 14 Using Basic ActionScripts 359
For ActionScript 2.0, you can only attach an onClipEvent() to a movie
clip instance that has been placed on the Stage. You can't attach an
onClipEvent() to a movie clip instance that is created at runtime; for
example, using the attachMovie() method. However, you can still attach
multiple event handlers. Using different event handlers within the same
Flash document do not conflict with each other. You could have a but-
ton with an on(press) handler that tells the SWF file to play, and the
same button can have an onPress method, for which you define a func-
tion that tells an object on the Stage to rotate. When the button is

clicked, the SWF file plays, and the object will rotate. Being able to
consolidate different event handlers with a single instance gives you
greater control, as well as less Stage clutter.
Attaching a Clip Event
to a Movie Clip
Attach an onClipEvent
to a Movie Clip
Create or open a Flash document
(ActionScript 2.0), place a movie
clip on the Stage, and then select
the movie clip.
Give the movie clip a unique
instance name in the Properties
panel.
Move down the Timeline and add a
keyframe at frame 80.
Click the Insert menu, point to
Timeline, and then click Keyframe.
Add a second movie clip to the
Stage, and then select the second
movie clip.
Enter the script as shown in the
illustration.
Click the Control menu, point to
Test Movie, and then click Test.
When the playhead hits frame 80 it
loads the second movie clip. The
loading of the movie will trigger
the onClipEvent handler, and stop
the playing of the movie clip with

the unique instance name of
movie2.
7
6
5
4
3
2
1
3
5
6
1
From the Library of Wow! eBook

×