|
Flash 4正在以不可阻挡之势向我们杀将而来。它最吸引人也是最强大的功能莫过于新增的ActionScript,之所以得其名,是因为脚本语言基本的内容它几乎都攘括了:变量(variable),条件语句(if...else),逻辑循环(do...while)。而且还有很多复杂的数据结构:数组(array),堆栈(Stack),队列(queue)等。甚至,还可以在Flash
4里做递归运算!本文主要就ActionScript的结构和基本语法作一介绍。
ActionScript 里的数据类型:
|
这个按钮表明了表框(field)里的数据类型为字符串(String Litearl)。由英文字母及数字组成。 |
|
这个按钮表明了表框里含有语句(Expression),一条语句可以由以下几部分组成:数字,变量,操作符(Operator),函数(Function)和字符串(必须放在双引号里,如,"jerry")。 |
|
这个按钮表明了表框里含有数字。包括数字1-9及负数。 |
基本的Action
|
操作符(Operator)
|
用法
|
| () |
用来设定运算的优先级,这和四则运算是一样的。 |
| + |
加法运算。 |
| - |
加法运算。 |
| * |
乘法运算。 |
| / |
除法运算。 |
| = |
数值相等(返回布尔值,Boolean,1或0,1为真,0为假)。 |
| <> |
数值不等(返回布尔值)。 |
| < |
数值小于(返回布尔值)。 |
| > |
数值大于(返回布尔值)。 |
| <= |
数值小等于(返回布尔值)。 |
| >= |
数值大等于(返回布尔值)。 |
| "" |
用于包含字符串。 |
| & |
连接字符串。 |
| eq |
字符串相等(返回布尔值)。 |
| ne |
字符串不等(返回布尔值)。 |
| lt |
字符串短于(返回布尔值)。 |
| gt |
字符串长于(返回布尔值)。 |
| le |
字符串短于或等于(返回布尔值)。 |
| ge |
字符串长于或等于(返回布尔值)。 |
| not |
逻辑非(返回布尔值)。 |
| and |
逻辑与(返回布尔值)。 |
| or |
逻辑或(返回布尔值)。 |
注:以上这些如果您有学过一种编程语言的话,是很好理解的。完全一样:)
函数(Function)
为了便于叙述,我们假定FOO,INDEX,COUNT为整数变量;BAR为字符变量。
| 函数(Function) |
用法
|
| Eval |
用来获得一条语句的值 |
| True |
布尔真 (1) |
| False |
布尔假 (0) |
| Newline |
插入一行 (等于回车) |
| GetTimer |
返回Swf已播放了多少时间(毫秒级) |
| Int(FOO) |
转化FOO为整数(即去掉小数点以后部分) |
| Random(FOO) |
从0到FOO-1之间随机取一个数字返回 |
| Substring(BAR, INDEX, COUNT) |
返回从INDEX开始,COUNT为长度的在BAR里的一个子串。(INDEX从1开始) |
| Length(BAR) |
返回BAR的长度整数值 |
| Chr(FOO) |
返回和FOO对应 ASCII 码值的字符串 |
| Ord(BAR) |
返回BAR中一个字符的 ASCII 值 |
| GetProperty(target, property) |
返回当前Target目标的属性值 |
属性(Property):以下为Movie Clip的各种属性,如果你能明确指定Movie
Clip位置的话,就可以直接引用这些属性值作为变量;否则你就必须使用GetProperty函数来获取。
|
属性(Property)
|
属性值
|
| _x |
MC中点的横坐标X的值(从左边算起) |
| _y |
MC中点纵坐标Y的值(从上往下算) |
| _width |
MC的宽度 |
| _height |
MC的长度 |
| _rotation |
用角度值表示MC的旋转度 |
| _target |
MC的target,即MC的完整路径 |
| _name |
MC的Instance name |
| _url |
包含MC的SWF的完整的URL |
| _xscale |
用百分比表示MC的横轴(X)缩放值 |
| _yscale |
用百分比表示MC的横轴(X)缩放值 |
| _currentframe |
返回MC的当前fram值 |
| _totalframes |
返回MC的frame长度数值 |
| _framesloaded |
在一个MC里已装载的frame长度值 |
| _alpha |
MC的alpha值 |
| _visible |
MC可见或不可见(值为真或假) |
| _droptarget |
如果一个MC是可被拖动的,并且当其被拖动至另一个MC的范围里时,该属性值就设定为另一个MC的Instance
name |
OK,说了这么多,让我们来看看以下几个例子吧:
| 简单例子 |
| 目的 |
举例 |
| 连接两个变量 |
foo & bar |
| 两个变量的数学运算 |
foo + bar |
| 比较两个数值变量 |
foo < bar |
| 比较两个字符变量 |
foo eq bar |
| 较复杂的例子 |
| 目的 |
举例 |
| 初始化一个有10个变量且值均为0的数组 |
Set Variable:
"temp" = 1
Loop While (temp<=10)
Set Variable: "blah"&temp = 0
Set Variable: "temp" = temp+1
End Loop
|
| 使一个MC随机跳到一个frame |
Random (GetProperty
("/foo", _totalframes))+1
Tell Target ("/foo")
Go to and Stop (temp)
End Tell Target
|
[ ]
|