当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash as入门(3):AS基本语法

ActionScript
FLASH AS3与网页JS参数值传递的问题
Flash AS3的parameters对象处理网页参数
Flash教程 认识Flash ActionScript的环境
Flash ActionScript编程基础
Flash AS3代码实现鼠标跟随喷枪涂鸦效果
falsh 跨域调用配置
Flash AS3.0 实例教程 喷泉动画特效
AS3 Loader与URLLoader的比较
ColorTransform类调整显示对象的颜色值
Flash AS3 快速制作烟雾动画
Flash AS3 制作文字飞出动画
ActionScript 学习小心得
ActionScript3.0读取网页FlashVars中的参数的问题
通过实例学习AS3.0:案例三
通过实例学习Flash AS3.0:案例四
通过实例学习Flash AS3.0:案例五
通过实例学习Flash AS3.0:案例六
Flash教程:认识Flash ActionScript的环境
Flash as入门(1):认识AS面板
Flash as入门(3):AS基本语法

ActionScript 中的 Flash as入门(3):AS基本语法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 160 ::
收藏到网摘: n/a

本例继续讲解AS的基础知识,今天讲解的是AS入门第三课:AS基本语法。

在第一课中我们己经介绍过,ActionScript是一部语言,即然是语言它就有它自己的语法

一、ActionScript语句是区分大小写的:在ActionScript中英语字母的大小写具有不同的意义的.我们来看一个例子:打开时间轴第一帧的动作面板,输入:

Name="Sanbos";

name="假博士";

trace(Name);
测试影片,输出窗口将出现Sanbos,ActionScript区分开了Name和name.现在将代码改为:

Name="Sanbos";

Name="假博士";

trace(name);
测试影片,输出窗口将出现:undefined,没有输出内容

二、ActionScript语句以分号作为每句的结束符号,以上面的代码为例,把它写成一行:

Name="Sanbos";name="假博士";
trace(Name);
这时ActionScript将这一行看成三句指令,每句中间用分号分开.测试影片,输出窗口将出现Sanbos.那么将三句指令中间的分号去掉,那么,输出窗口会出现语法错误的提示.所以我们应该养成,每一个语句结束时,输入一个分号的习惯

三、关于点语法

在ActionScript中,应使用点(.)来访问对象的属性和方法.比如在舞台上有一个叫mymc_mc的影片剪辑元件,我们要访问它的属性和方法,就需要使用点,比如:
mymc_mc._x
在对象的名称后面输入一个".",然后输入其属性和方法的名称.

点的另一个作用是相当于路径,就相当于文件系统如:c:/windows/…中的"/".比如我们一个动画,主时间轴或者说舞台,在ActionScript2.O中被写为_root,舞台上有一影片剪辑元件my_mc,如果要写my_mc的_x属性,就应该这样写:

_root.my_mc._x
你可能会说,我常看到只写了my_mc._x,没有_root.这种情况在主时间轴的帧动作上的,程序本来就在_root上,就可以省略.如果在舞台上加一个按钮用来设置舞台上mc的_x属性,用_root.对象的层次更清楚一些。如果代码是写在mc内部,就要加上_root或_parent了。如在按钮上就要这样写:

on(release){

_root.my_mc._x=200;

}
又比如,做一个mc动画,在mc的第一帧写上stop();放在舞台上,然后在舞台上放一按钮来控制mc播放,那么在按钮上的程序就应该这样写:

on(release){

_root.my_mc.play();

}

四.注释

ActionScript中注释用来解释和说明语句的作用.而注释本身是不被执行的.注释有两种,一种是单行注释,一种是多行注释.单行注释是以//开始到本行未尾.如:
trace("单行注释");//这是单行注释丨
测试影片时从双斜杠开始以后的都不会执行.

另一种注释方式是多行注释,它是以/*开头,以*/结束的.如:

/*这是多行注释

在这个注释范围内的语句

都不会被执行*/

trace("多行注释");
数据类型:计算机执行程序时处理的数据,与我们数学中的数字是不同的.数字只是数据的一种,在ActionScript中有很多种不同类型的数据,下面介绍一下几种主要的数据类型.

Number:数字数据类型

uint:正整数

int:整数

String:字符或者叫文本,String数据类型常常用引号括起来,如:

Mystring="abc"

Boolean:布尔值,它只有两个值:true、false,分别是真和假的意思.也就是"是"和"不是"的意思

Object:可以里解为对象

数据类型的转换:虽然数据有不同的类型,但各种类型之间是可以转换的.就象现在流行的变性手术一样,做了一二十年的男人,突然想做女人了,做个变性手术就行了.在ActionScript中就简单多了,下面来看看怎样转换

将数据转换为数值类型:

数值类型有三种,用下面三个函数可以将真它数据类型转换为数值:

Number()

int()

uint()
对于不能被转换为数值的数据如英文字母,汉字等,int(),uint()则返回0,而Number()则返回NaN.

练习:在帧动作面板中输入:

a="123";

b="abc";

c=int(a);

d=int(b);

e=Number(b);

trace("c="+c+newline+"d="+d+newline+"e="+e);
测试影片,在输出窗口会出现:

c= 123

d=
0

e=NaN
来看看这几句代码:

a="123";这个"123"是用引号括起来的,那么它就是字符(String),它不是一个数值,而是由三个字符组成的字符串,它被读为:一二三.

b="abc"更不用说是字符串了.

c=int(a);将a从字符串转换为数值了,那么c就为123,被读为:一百二十三.

d=int(b);很显然abc是不能被转换为数值的,当不能被转换为数值时,int()返回0,所以d为0.

e=Number(b);当不能被转换为数值时,Number()返回NaN,所以e为NaN.

如果要将布尔值转换为数值,那么ture将被转换成1,false则被转换为0.
如:
a=ture;

b=false;

c=int(ture);//c为1

d=int(false);//d为0
另外int和uint类型都是整数,如果被转换的数据为小数点的,那么它们会只返回整数部分,如:

a="3.5";

b=int(a);//b为3

c=Number(a)//c为3.5

这时我们立即就会想到可以用int(),uint()来取整,是的可以,不过需要注意的是它们是将小数点及后面的省略,而不是四舍五入

将数据转换为字符串:

用String()可以将数据转换为字符串.如:

a=5;

b =8;

c =String(b);//c为"8"

d=a+c;

trace(d);
测试影片输出为58(读作:五八),这是因为c是字符,不能进行数学计算,只能是两个字符连接.如果将d=a+c;改为:d=a+b;测试时就输出13.

将数据转换为布尔值:

只介绍一种情况,将数值转换为布尔值.如果数值为0,则被转换为false,否则转换为true.仅管有Boolean()函数来转换,但我们应该不会用它,但这并不意味着我们不会用到这种转换,来看个例子:

My_mc._visible=0;
这句让元件不可见的代码,我们经常用到,mc的_visible属性是是否可见的意思.设置这个属性只能用布尔值,即true(是)和false(不是).但上一句我们确用的0,那么在执行这句代码时,ActionScript会将0转换为false,然再执行.所以上句代码实际执行的是:

my_mc._visiblc=false;
这里可以看出,如果我们直接写成: my_mc._visiblc=false;
计算机执行速度要快些,因为它不需要转换,当然你说,我写0要快些,那就随你高兴罗.

数据被存放在计算机内存之中,内存被分成很多个小房间,每个房间里存放一个或多个数据,为了便于使用这些数据,我们给这些房间取上一个名字,这就是我们要介绍的另一个重要概念:

变量:变量用来存放数据,它是一小块内存的代号,如上所说,它就是内存中存放数据的小房间的名称,要创建一个变量,它的语法是:

var 变量名称:数据类型
比如:
var a:Number
这就声明了一个变量a,它的数据类型是数值.运行下面的代码:

var a:Number;

a= 10;

trace(a);
输出面板将显示10.

var a:Number;

a= b;

trace(a);
输出面板将显示:undefined,这是不知道的类型.因为声明的变量a是数值类型,而给它赋值却是b,b不是数值,所以输出结果就只好说:不知道你在说什么?

上面a=10中的"="号是赋值,即将10放到变量a中.在声明变量的同时就可以给它赋值,如:

var a:Number=10;
你可能要说,前面你怎么就写的:

a=10;
是的,在ActionScript2.0中我们还可以直接写:a=10,它实际上就是:var a=10,但这是最后的晚餐了,在ActionScript3.0中就必须写var了.
上面介绍过,变量就象是内存中的一个房间,里面存放着数据.那个这个房间就是一人一间制.比如原来a房间中住着10,现在将15放进去,15进去后,一脚就将10踢出去了.运行下面代码看看:

var a:Number;

a=10;

a=15;

trace(a);

结果显示为:15