将数据转换为数值类型:
数值类型有三种,用下面三个函数可以将真它数据类型转换为数值:
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