Title: Flash Actionscript Adding Interactive Actions Variables
1Flash Actionscript Adding Interactive
Actions Variables
2ActionScript 3.0
- ActionScript is the language you use to add
interactivity to Flash applications, whether your
applications are simple animated movies or more
complex rich Internet applications. - You don't have to use ActionScript to use Flash,
but if you want to provide basic or complex user
interactivity, work with objects other than those
built into Flash (such as buttons and movie
clips), or otherwise turn a SWF file into a more
robust user experience, you'll probably want to
use it.
3Adding an Interactive Action
- Start a new movie with File -gt New
- Create a blue circle, put it in the centre of the
stage, and convert it to a movie clip symbol.
Call the symbol circle_mc. - With the circle still selected use the
properties panel to give this instance of circle
the name ball.
4Adding an Interactive Action
- So we have a symbol called circle with an
instance of this symbol called ball. - Now create a new layer and call it actions. Add a
keyframe to the actions layer at frame 2 and add
a new frame to the other layer (this is so that
the first layer has two frames). - We will then add actions to both of the frames on
the actions layer.
5Adding an Interactive Action
- Call up the Frame Actions window for frame 1 of
the actions layer (right click on frame 1 and
select actions). - Make sure Script Assist is turned off.
- Type the following into the actions window
- this.ball.x mouseX
- this.ball.y mouseY
-
6Adding an Interactive Action
- Put the following action into the Frame Actions
window for frame 2 of the actions layer. - gotoAndPlay (1)
- The second action means that the animation simply
loops from 1 to 2 indefinitely.
7Adding an Interactive Action
- this.ball.x mouseX What does this mean?
- this is used to target the current timeline
- mouseX is the Flash way of referring to the
current x coordinate of the mouse - ball is the name we gave to the current instance
of the circle symbol. - x is the horizontal position property of that
instance which we are assigning to the current
value of the x position of the mouse.
8Adding an Interactive Action
- We are doing the same with the value of the y and
hence the blue ball will simply follow the mouse
around the screen when we run the animation.
9ActionScript Variables
- ActionScript is supposed to be a programming
language. - Program gt something which receives some input,
performs some processing, and does some output. - Our Flash animations are interactive
- input button presses, mouse events
- output graphics on screen
10ActionScript Variables
- So it is a programming language of sorts but so
far not a very flexible one for two reasons - 1. Forms of input are a bit limited
- 2. It cant remember any of its input merely
respond immediately. - I think we need some variables!
11ActionScript Variables
- A variable is a memory location in which a
program can store data values. - These values can change constantly when a
program needs to find out the current value it
just looks it up. In order to be able to look up
the right one it associates a unique name with
each variable (chosen by the programmer).
12Variables and Data Types
- You can explicitly declare the object type of a
variable when you create the variable, which is
called strict data typing. - If you do not explicitly define an item as
holding either a number, a string, or another
data type, at runtime Flash Player will try to
determine the data type of an item when it is
assigned. - Because data type mismatches trigger compiler
errors, strict data typing helps you find bugs in
your code at compile time and prevents you from
assigning the wrong type of data to an existing
variable.
13Variables and Data Types
- ActionScript has the following basic data types
- Boolean
- int
- uint
- Null
- Number
- Object
- String
- Void
14ActionScript Variables
- Declaring a variable
- var catNameString
- You can then assign a value - done using an
assignment statement which uses the assignment
operator which, conveniently, is an sign. - catName "Pirate Eye"
15ActionScript Variables
- Or you can do both together
- So for example the following are all valid
- var hisNameString Pete
- var hisAgeint 32
- var gameOverBoolean true
16ActionScript Variables
- To view the value of a variable, use the trace()
statement to send the value to the Output panel.
Then, the value displays in the Output panel when
you test the SWF file in the test environment. - E.g., trace(hoursWorked) sends the value of the
variable hoursWorked to the Output panel in the
test environment.
17ActionScript Variables
- Expressions
- We can also generate values for variables by
using mathematical expressions e.g. - var myAgeint 42
- var myResultint myAge - 10
- myAge myAge1
- var newVarint myResult myAge
- We can also add variables which hold things other
than numbers e.g. - var firstPartStringThis is
- var secondPartString a sentence.
- var sentenceString firstPart secondPart
Dont mix types in expressions though!
18ActionScript Variables
- Lets look at an example of using variables to
store text inputted from the screen.
1. Open a new movie and select the Text
Option. Select Input Text from the
drop-down menu and click once on the stage to
insert a textfield. 2. Give your textbox an
instance name in1. 3. Check the border box to
make Flash draw a box around the textfield.
19ActionScript Variables
- If we are going to read some text in from the
screen we are going to need to store it somewhere
(i.e. we need a variable) - We get a box into which we can type stuff. That
stuff can be referred to as In1.text. We have now
asked Flash to store In1.text in the string
variable myTextVar. Lets now make an output box
to make sure this is happening.
- Create a new layer and call it actions.
- Select Frame 1 of the actions layer and open the
actions panel. - Type in
- var myTextVarString In1.text
20ActionScript Variables
- 5. Click on a blank part of the stage to
deselect the input box. Click on the Text Option - again and select Dynamic Text. Make sure
border and Selectable are - unchecked.
- With the Text tool, add a new text field directly
below the existing one. Give this one - the instance name Out1.
- Select frame 1 of the actions layer and open the
actions panel. - Add the following to the existing code
- Out1.text myTextVar
- So we have told Flash to display the contents of
in1 in the output textbox. - Test the movie why doesnt it work?
21ActionScript Variables
- Add a a frame to layer 1 and keyframe to frame 2
of your actions layer. - Select the keyframe and open the actions panel
- Type in the following code
- gotoAndPlay(1)
22Variables and Scope
- A variable's scope refers to the area in which
the variable is known (defined) and can be
referenced. - A global variable is one that is defined in all
areas of your code, whereas a local variable is
one that is defined in only one part of your
code.
23Variables and Scope
- In ActionScript 3.0, variables are always
assigned the scope of the function or class in
which they are declared. - A global variable is a variable that you define
outside of any function or class definition.
24Global Variables
- E.g., the following creates a global variable
strGlobal by declaring it outside of any
function. - This shows that a global variable is available
both inside and outside the function definition.
var strGlobalString "Global" function
scopeTest() trace(strGlobal) // Global
scopeTest() trace(strGlobal) // Global
25Local Variables
- You declare a local variable by declaring the
variable inside a function definition. - The smallest area of code for which you can
define a local variable is a function definition.
- A local variable declared within a function will
exist only in that function.
26Local Variables
- E.g., if you declare a variable named str2 within
a function named localScope(), that variable will
not be available outside the function.
function localScope() var strLocalString
"local" localScope() trace(strLocal) //
error because strLocal is //not defined globally
27Variable Scope
- If the variable name you use for your local
variable is already declared as a global
variable, the local definition hides (or shadows)
the global definition while the local variable is
in scope. - The global variable will still exist outside of
the function.
28Variable Scope
- E.g., the following creates a global string
variable named str1, and then creates a local
variable of the same name inside the scopeTest()
function.
var str1String "Global" function scopeTest
() var str1String "Local" trace(str1)
// Local scopeTest() trace(str1) // Global
29Variable Scope
- The trace statement inside the function outputs
the local value of the variable, but the trace
statement outside the function outputs the global
value of the variable.