Flash交互动画的制作(一)
通过对交互动画的分析,介绍Flash中动作脚本的概念:通过项目实践,说明ActionScript的基本用法。通过以下几个任务完成:1、认识ActionScript、2、制作动画播放。在此过程中掌握ActionScript的基本概念及交互动画中基本的控制方法和交互动画设计的基本思路和方法。
一、认识ActionScript
接触过Flash动画的人,都对其中许多玄妙的效果印象深刻。不论是随机摇摆、气泡飘飞,还是动画控制、鼠标跟随,这都是其他格式的动画文件无法比拟的特点,而这些精妙独特的效果和功能,就是利用ActionScript编程实现的。
ActionScript是一种面向对象编程(OOP)的脚本语言,通过解释执行的脚本语言,如果读者以前使用过脚本语言,就会发现ActionScript与其他脚本语言非常类似,简便易用。不过,即使读者刚刚开始学习编程,ActionScript基础知识也不难学,可以从简单的命令入手,逐步掌握更复杂的功能,向动画中添加大量交互性,而无须学习(或编写)大量的代码。
ActionScript程序一般由语句、函数和变量组成,主要涉及变量、函数、数据类型、表达式、运算符等,他们是ActionScript的基石。ActionScript可以由单一动作组成,如指示动画停止播放的操作,也可以由一系列动作语句组成,如先计算条件,再执行动作。
(1)、了解ActionScript的语法
语言的语法定义了一组在编写可执行代码时必须遵循的规则。
A、区分大小写
ActionScript是一种区分大小写的语言,只是大小写不同的标识符会被视为不同。例如,下面的代码创建两个不同的变量:
Var numl:int
Var Numl:int; //注释:两个不同的变量
B、 点语法
可以通过点运算符(.)来访问对象的属性和方法。使用点语法,可以使用后跟点运算符和属性名或方法名来引用对象的属性或方法。如:
Ball.x=100; //对象ball的X坐标为100
Ball.alpha=50; //对象ball的透明度值为50
C、 分号
可以使用分号符(;)来终止语句,如果省略分号字符,则编译器将假设每一行代码代表一条语句。但是一般程序员都习惯使用分号来表示语句结束,因此,我们也应当养成这样一个习惯,以使自己的代码更易于阅读。
使用分号终止语句可以在一行中放置多个语句,但是这样会使代码变得难以阅读。
D、小括号
在ActionScript中,小括号有如下3种用途。
1、可以使用小括号来更改表达式中的运算顺序、组合到小括号中的运算总是最先执行。小括号可用来改变代码中的运算顺序,如:
trace(2+3﹡4); //输出:14
trace ((2+3)﹡4); //输出:20
2、可以结合使用小括号和逗号运算符(,)来计算一系列表达式并返回最后一个表达式的结果。例如:
var a:int =2;
var b:int =3;
trace((a++,b++,a+b)): //输出:7
3、可以使用小括号来向函数或方法传递一个或多个参数,下面的代码表示向trace函数传递一个字符串值。
trace(”helio”); //输出helio
E、注释
ActionScript代码支持两种类型的注释:单行注释和多行注释。编译器将忽略标记为注释的文本。
1、单行注释以两个正斜杠字符“//“开头并持续到该行的末尾。例如,下面的代码包含一个单行注释。
var some Number:Number=3 //单行注释
2、多行注释以一个正斜杠和一个显号(
二、了解表达式和运算符
运算符是能够提供对数值、字符串、逻辑值进行运算的关系符号,而表达式是由常量、变量、函数和运算符按照运算法则组成的计算公式。在动作语言中,表达式的结果将作为参数值。
在Flash8中,运算符有很多种类,包括数值运算符,字符串运算符,比较运算符、逻辑运算符、位运算符、赋值运算符等。下面介绍一些常用的运算符。
1、算术运算符及表达式
算术表达式是数值进行运算的表达式,它是由数值、以数值为结果的函数和算术运算符组成,运算结果是数值或逻辑值。例如:表达式“(34—2)/4”就是一个算术表达式
下面是Flash中可以使用的算术运算符:
(1)、+、—、*、/:执行加、减、乘、除运算。
(2)、==、<>:比较两个数值是否相等、不相等。
(3)、< 、<= 、>、 >=:比较运算符前面的数值是否小于、小于等于、大于、大于等于后面的数值。
2、字符串表达式
字符串表达示是对字符串进行运算的表达式。它是由字符串,以字符串为结果的函数和字符串运算符组成,运算结果是字符串或逻辑值。例如:
“中国”﹠“人民”
将字符串“中国”与字符串“人民”连接,结果是字符串“中国人民”。
可以参与字符串表达式的运算符如下:
1、﹠:连接运算符两边的中锋串。
2、Eq、Ne:判断运算符两边的字符串是否相等。
3、Lt、Le、Qt、Qe:判断运算符左边字符串的ASCII码值是否小于、小于等于、大于、大于等于右边字符串的ASCII码值。
3、逻辑表达式
逻辑表达式是对正误结果进行判断的表达式,它是由逻辑值、以逻辑值为结果的函数、以逻辑值为结果的算术或字符串表达式和逻辑运算符组成,运算结果是逻辑值。例如:
(“abc”eq“ABC”)and (1<2)
上式进行两个字符串表达式的逻辑与计算,结果是一个逻辑值“False”。
可以参与逻辑表达式的运算符有“And(逻辑与)、Qr(逻辑或)和Not(逻辑非)。
4、位运算符
位运算符用来处理浮点数,运算时先将操作数转化为32位的二进制数,然后对每个操作数分别进行运算,运算后再将二进制的结果按照Flash的数值类型返回运算结果。ActionScript的位运算符包括﹠(位与)、^(位异或)、∣(位或)、~(位异或)、<<(左移位)、>>(右移位)、>>>(填0右移位)等。
5、赋值运算符
赋值运算符的作用就是给变量、数组元素或对象的属性赋值。例如:
Num1=80;
Ball._x=200;
三、了解常用语句
A、if语句
if语句的作用是根据条件的成立与否来决定语句的执行,其基本语法格式为:
if (条件) { //代码(可以是多条语句)
}
说明:如果条件成立,就执行代码,否则不执行。
可以使用else子句来控制不满足条件时该如何处理,例如:
If (条件) { //代码1、2、3…
} else { //代码a、b、c….
}
说明:如果条件成立,就执行代码1、2、3等,否则,执行代码a、b、c等。
编写复杂条件时,可以使用小括号“()”对条件进行组合。例如:下面的代码判断年龄是否大于等于20并且小于40。
If ((age >=20)﹠﹠ (age<40)) { }
B、 for语句
for语句提供了一种在给定步长情况下的自然循环,其基本语法格式为:
for (初始值; 条件; 步长;{ //代码
}
说明:1、首先为变量设定初始值;2、判定条件是否成立;3、若条件成立,就执行代码,否则结束循环;4、为变量增加一个步长,返回2。
下面的for结构用于求0~10的整数和。
var sum :Number;
Sum =0;
for (var I =0; i<=10; i++) {
Sum = sum + I;
}
C、 While和do..while语句
这两种语句都是循环结构。While语句的基本语法格式为:
While(条件) { //代码
}
说明:当条件成立时,执行代码。
do..while语句的基本语法格式为:
do.. { //代码
} while (条件);
二者的区别在于:while语句是先判断条件是否成立。而do..while语句是先执行代码,然后再判断条件是否成立。这样,对于条件不成立的情况,while语句中的代码不会得到执行,而do..while中的代码会被执行一次。
D、 switch语句
switch语句是一种分支选择语句,其基本语法格式为:
switch (条件) {
case A : //代码1
break; //若无此句,则case将会“落空”
case B : //代码2
break :
default : //代码3
}
说明:若条件值为“A”,则执行代码1;若条件值为“B”,则执行代码B;若条件值为其他值,则执行代码3。Break语句的作用是打断执行,重新进行条件判断。
default case是switch语句中最后一个case。defalt case包括一个break语句,用于在添加其他case时阻止落空错误。
如果case没有break语句,case将会“落空”。这样,如果条件符合“A”,则case A和case B都会执行。
说明:使用空格,执行符和“TAB”缩进向代码中添加空白,可以提高代码的可读性,空白可增强可读性,因为它有效于显示代码的层次结构。