AS入门教程第三课-AS基本语法[原创][本文已收录教程库] - Flash互助课堂 - ...

来源:百度文库 编辑:神马文学网 时间:2024/05/23 20:16:18
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.


如果要将布尔值转换为数值,那么true将被转换成1,false则被转换为0.

如:
a=true;


b=false;


c=int(true);//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



[ 本帖最后由 sanbos 于 2008-11-4 11:13 编辑 ]
AS入门教程第三课-AS基本语法[原创][本文已收录教程库] - Flash互助课堂 - ... AS入门教程第二课-面向对象编程基础[原创][本文已收录教程库] - Flash互助课堂 ... AS入门教程第五课-数组原创][本文已收录教程库] - Flash互助课堂 - 中国教程网... AS入门教程第7课第3节控制时间轴[原创][本文已收录教程库] - Flash互助课堂 -... AS入门教程第7课第12节-使用颜色[本文已收录教程库] - Flash互助课堂 - 中国... AS入门教程第7课综合练习-拼图游戏的制作[原创][本文已收录教程库] - Flash互助... AS入门教程第四课AS常用语句第二节-条件语句[原创][本文已收录教程库] - Flash... AS入门教程第四课AS常用语句第三节-循环语句[原创][本文已收录教程库] - Flash... AS入门教程第7课影片剪辑第6节使用遮罩[本文已收录教程库] - Flash互助课堂 - ... AS入门教程第7课影片剪辑-第9节使用滤镜[本文已收录教程库] - Flash互助课堂 -... AS入门教程第九课使用声音第一节-Sound类[本文已收录教程库] - Flash互助课堂... AS入门教程第六课文本与字符第四节-字符串[原创][本文已收录教程库] - Flash互助... AS入门教程第7课影片剪辑第10节-用AS绘图[本文已收录教程库] - Flash互助课堂... AS入门教程第4课AS常用语句第一节-运算符[原创][本文已收录教程库] - Flash互... AS入门教程第7课影片剪辑第7节-AS实现过渡效果[本文已收录教程库] - Flash互助... AS入门教程第六课文本与字符第一节-创建文本[原创][本文已收录教程库] - Flash互... AS入门教程第8课-日期与时间[本文已收录教程库](查至 36/3) - Flash互助课... AS入门教程第7课影片剪辑二节加载swf文件[原创][本文已收录教程库] - Flash互... AS入门教程第7课影片剪辑第5节拖动与碰撞检测[原创][本文已收录教程库] - Flash... AS入门教程第六课文本与字符第二节-文本属性[原创][本文已收录教程库] - Flash互... AS入门教程第六课文本与字符第三节-事件与方法[原创][本文已收录教程库] - Flash... 加载外部.swf影片的视频播放器制作[原创][本文已收录教程库] - Flash互助课堂 ... 新手来看:Flahs as入门教程-Flash教程 Flash教程:梦幻仙境制作教程[本文已收录教程库] - Flash研讨 - 中国教程网论...