1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Creating Functions docx

7 256 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Creating functions
Thể loại Tutorial
Định dạng
Số trang 7
Dung lượng 21,74 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

If your function contains parameters, it will perform in a unique way each time it's called based on the parameter information it receives.. If a function contains no parameters, it can

Trang 1

< Day Day Up >

Creating Functions

Before you use a function, you must create or define it You can do this by using one of two possible syntaxes

Syntax 1

This code describes the first syntax:

function myFunction (parameter1:DataType,parameter2:DataType,etc.) {

//actions go here;

}

The code represents the most common way of creating a function, as well as the syntax we'll use most frequently in this lesson You'll see that the function declaration begins with the word function, followed by the name of the function (which can be anything you choose, as long as it follows typical naming conventions) Following the function name is

an area enclosed by parentheses You can leave this area blank, or you can fill it with information (parameter data) that the function can use By leaving the area within the parentheses blank, you create a "generic" function—that is, one that performs the same way whenever it's called (used) If your function contains parameters, it will perform in a unique way each time it's called based on the parameter information it receives Giving the function information in this way is called passing in arguments or passing in

parameters You can use as many parameters as you want We'll tell you how to use parameter data a bit later in this lesson

Following the optional parameter area is an open curly brace, followed by a carriage return and then some actions before the curly brace that concludes the function In the space between the curly braces, you write the actions that you want your function to perform These actions can also make use of any parameter information passed to the function (as you will see soon)

TIP

You can create a function skeleton (that is, a function that does not yet contain any

Trang 2

actions) in the Actions panel by clicking Statements > User-Defined Functions, then double-clicking the function command

Syntax 2

This code represents the second syntax for creating functions:

myFunction = function (parameter1:DataType,parameter2:DataType,etc.)

{/* actions go here */

};

You would use this syntax to create a function dynamically or to define your own custom method of an object (which we'll discuss in Lesson 7, "Creating Custom Classes") The only difference between this syntax and Syntax 1 is in the way the function name is assigned: the function name appears first, and the syntax for defining how the function

Trang 3

will work follows the = assignment operator

Now that you understand the basic syntax for creating/defining a function, let's look at how a function is used, or called

If a function contains no parameters, it can be called using the following syntax:

myFunction();

When you call a function, you're telling Flash to execute all the actions within that

function If myFunction() contained 20 actions, all of them could be executed by using this single line of script

If a function has been defined to accept parameter data, you can use the following syntax

to call it:

myFunction(parameter1, parameter2);

If parameter1 had a value of cat and parameter2 had a value of 36, then those two values would be sent to the function, for use by the actions within the function definition At a later time, the same function could be called, but different parameter values sent This would result in the same function's working in a slightly different way from the first example, because the actions within the function would be making use of different

parameter values

The foregoing examples assume that the function and function call reside on the same timeline Just as each timeline contains its own variables and objects, each timeline also contains any functions you've defined there To call a function on a specific timeline, you need to place the target path to that timeline in front of the function call, like this:

_root.clip1.clip2.myFunction();

In this exercise, you'll create a Power button on a television remote control With this button, the Flash-TV can be toggled on and off using a function

Trang 4

TIP

A function can be called dynamically based on a value—for instance,

_root[aVariableName](); Thus, if aVariableName had a value of "sayHello", the function call would actually look like _root.sayHello();

1 Open television1.fla in the Lesson05/Assets folder

The movie's structure has already been created The Actions layer is where you will include all of the ActionScript for this exercise On the TV layer, a movie clip instance named tv_mc has three layers on its timeline: the bottom layer

(Television) is a graphic, and the layer above that (Screen) contains a movie clip instance called screen_mc (which is then masked by the layer above that) The screen_mc movie clip instance itself includes two layers and two frames, and contains graphical content that represents the various "programs" seen when

changing channels on the TV

On the main timeline, a layer named Remote contains a movie clip instance named remote_mc Inside remote_mc, you'll find a layer that contains most of the remote-control graphics, including a movie clip with an instance name of light_mc, as well as another layer that contains the buttons for the remote The numbered

buttons have instance names of channel1_btn through channel6_btn Under the numbered buttons are the Up and Down channel buttons whose instance names are

Trang 5

up_btn and down_btn, respectively The bottom button, Power, has an instance

name of power_btn

2 Select Frame 1 of the Actions layer on the main timeline With the Actions panel open, add the script:

3

4 var tvPower:Boolean = false;

5

6 function togglePower() {

7

8 var newChannel:Number;

9

10 if (tvPower) {

11

12 newChannel = 0;

13

14 tvPower = false;

15

16 } else {

17

18 newChannel = 1;

19

20 tvPower = true;

21

22 }

23

24 tv_mc.screen_mc.gotoAndStop(newChannel+1);

25

26 remote_mc.light_mc.play();

27

28 }

29

The first line of this script creates a variable named tvPower, which is used to track the current state of the TV A value of true means the television is on; false means the television is off The television will appear off initially, so tvPower is set to false

The next 11 lines represent a function definition for togglePower() When called, this function will toggle the television power on and off No parameters are passed into this function Because this script exists on Frame 1, our togglePower()

Trang 6

function is defined and a variable called tvPower is set to false as soon as the frame is loaded (that is, when the movie begins to play)

TIP

Because functions must be defined before they can be called, it's common practice

to define all functions on an early frame in your movie so that they can be called at any time after that

The first part of the function uses an if statement to analyze the current value of tvPower If tvPower is true (TV is on) when the function is called, the actions in the function change it to false (off) and set the value of the newChannel variable to 0; otherwise (else), tvPower is set to true and newChannel to 1 Using the if

statement in this manner causes the value of tvPower to be set to its opposite each time the function is called, thus toggling the value of newChannel By the time this statement is finished, newChannel has a value of 0 or 1

The function then sends the screen_mc movie clip instance (which is inside the tv_mc movie clip instance) to a frame based on the current value of newChannel +

1 You must add 1 to the value of newChannel to prevent the timeline from being sent to Frame 0 (newChannel will sometimes contain a value of 0, and there's no such thing as Frame 0 in a Flash movie timeline) In the end, this part of the

function will send the screen_mc movie clip instance to Frame 1 (showing a blank

TV screen) or Frame 2 (showing Channel 1)

The function finishes by telling the light on the remote control to play, which causes it to blink, providing a visual indication that a button has been pressed

There is now a function on Frame 1 of the main, or root, timeline Although this function contains several actions, none of them is executed until the function is

called

3 With the Actions panel still open, add this script to the end of the current actions (after the function definition):

4

5 remote_mc.power_btn.onRelease = togglePower;

6

Trang 7

The Power button for the remote control has an instance name of power_btn (and

it exists inside the remote_mc movie clip instance) This line of ActionScript assigns an onRelease event handler to the Power button: our togglePower function Every time the Power button is clicked, the togglePower() function is called,

causing the actions within the function to be executed

4 Choose Control > Test Movie Then click the Power button several times to view the TV on/off functionality you've created

Every time you press the Power button, the togglePower() function is called so that all the actions within that function are performed As mentioned, the actions

within the function toggle the state of the TV

5 Close the test movie and save your work as television2.fla

You have now created and used a function! In the next section, we'll build on this

idea to create a more powerful and versatile function

< Day Day Up >

Ngày đăng: 26/01/2014, 11:20

TỪ KHÓA LIÊN QUAN