flash的数据类型
[学习目标]:掌握as的数据类型、变量、常量、运算符函数等概念。
在前面的教程中,我给大家介绍了as的几个概念和按纽、MC的事件控制,都没有涉及到计算问题,现在我就给大家说说如果我们用flash来完成一定的计算功能需要那些知识,要完成一个简单的计算,比如1+1=2,我们就必须知道那些数据进行什么运算,在这里1、2都是数据,+就是运算符,如果我们要进行更复杂的运算,中间的结果我们必须要保存起来,必然要用到变量,下面我就逐个的给大家说明。
一、数据类型
数据类型简单的说就是flash中信息的种类,比如我上课前总要看看学生到了多少人,40人,这个40就是个数字类型,我说"现在开始上课,这是句话呀,那它在这里就是字符串类型。如果我让同学们回答:"1+1=3成立不成立?","不成立",就个结果是假的:"false",这个数据类型就是布尔值,另外还有对象、影片剪辑、null类型、undefined类型,所有这些类型都是as支持的数据类型。
1、字符串
字符串是诸如字母、数字和标点符号等字符的序列,一定要用单引号或者是双引号括起来。比如:"我喜欢学习"是个字符串,"flash"也是个字符串,
①串连接:+
我们可以用"+"连接2个字符串,对于上面的2个存在着:"我喜欢学习"+"flash"="我喜欢学习flash","我喜欢学习flash"同样是个字符串。
②特殊的字符-转义字符
比如:字符串"我们在学flash as\n你喜欢吗?",这个串就是2行文字呀。
2、数字
数字数据类型是双精度浮点数,这个好理解,就是我们数学上的整数、实数,可以进行+、-、*、\ 等运算。
3、布尔值
布尔值是 true 或 false 中的一个。动作脚本也会在适当时将值 true 和 false 转换为 1 和 0。或者是成立不成立等等吧。
4、Object类型
Object就是对象了,这个你就想象成一个"黑匣子",里面有自己的"属性":就是它的特征,还有方法,就是它可以做的事情,把属性和方法包装在一起就是个对象,比如一张桌子就是一个对象,其中桌子的颜色、长、宽、高就是这个对象的属性,桌子可以做讲桌、可以烤火,这些是它的方法,我们有了这个桌子类型,知道了桌子的颜色、长、宽等属性就可以创建一个新的桌子的实例。我们开始的例子画sin曲线,sin就是Math对象的一个方法。
5、MovieClip
影片剪辑是 Flash 应用程序中可以播放动画的元件。它们是唯一引用图形元素的数据类型。这个不多说了,用的是最多了。
6、Null和Undefined
空值数据类型只有一个值,即 null。此值意味着"没有值",即缺少数据。Undefined是未定义的数据类型有一个值,即 undefined,它用于尚未分配值的变量。2种数据类型呀。区别开。
二、常量和变量
1、常量
常量也就是常数。具有是其值始终不变的属性,比如key对象,是针对键盘的一个对象,key的属性都是常量,key.ENTER就代表回车键。
2、变量
变量就是盛放数据的容器。每个容器可以放不同的数据,每个容器必须有个名字,如何取名字我们前面介绍了,在用这个容器前,我们必须先定义,才可以使用的。这样才是个好习惯。根据变量的作用范围:指能够识别和引用该变量的区域,围简单的叫作用域,变量有以下3种:
①本地变量
就是仅仅在所在的代码块中可用的变量。比如我们定义2个变量做循环变量,可以这样定义 var i,j;后面我们介绍的函数体内的变量一般是这个类型。
②时间轴变量
时间轴变量是可用于该时间轴上的任何脚本,应用时注意3点:一是用前要初始化,二是其他时间轴引用要加路径,三是只能是定义后的时间轴应用。比如你在10桢定义了变量 var name="张三";,那么你想在第5桢调用name就是Undefined的,没有定义呀。
③全局变量
全局变量任何时间轴都可以使用的变量,不需要路径的。但仍然需要注意,在没有定义前的调用都是非法的。定义格式跟前面的2类变量不同,不能用var开始了,必须加个_global,比如定义全局变量myname就应该这样: _global.myname;
声明:变量是有数据类型的,它的数据类型就是我们前面介绍的那几种,到后面我们会知道,定义变量最好一起声明它的数据类型。
三、运算符和表达式
1、数值运算符
+加, -减, *乘, /除, %取模运算(除后的余数),++加1,--减1,
这里不好理解的就是++和-- ,如果我们定义变量var i; i++就是 i=i+1,同样i--;就是i=i-1。另外比如,(100+2)%2=0。
2、比较运算符
比较运算符用于比较表达式的值,然后返回一个布尔值(true 或 false) 操作符操作符意义
<小于,>大于,<=小于等于,>=大于等于
3、字符串运算符
+ 运算符在处理字符串时会有特殊效果:它会将两个字符串操作数连接起来。比较运算符 >、>=、< 和 <= 在处理字符串时也有特殊的效果。这些运算符会比较两个字符串,以确定哪一个字符串按字母数字顺序排在前面。
4、逻辑运算符
&&逻辑与(相当于and操作),||逻辑或(相当于or操作),!逻辑非(相当于not操作)
5、赋值运算符
可以使用赋值 (=) 运算符为变量赋值,如: var name = "jinjunshi"; 操作说明
=赋值
+=加之后再赋值(x+=5相当于x=x+5)
-=减之后再赋值(x+=test相当于x=x+test)
*=乘之后再赋值(x*=10相当于x=x*10)
%=取模之后再赋值(原理同上)
6、点运算符和数组访问运算符
可以使用点运算符 (.) 和数组访问运算符 ([]) 来访问内置或自定义的动作脚本对象属性,包括影片剪辑的属性。 点运算符我们已经介绍过了,对于数组可以动态地设置实例与变量。比如在下面例子中间操作[]中的表达式被求值,其结果在mc中计算过后被作为的名字变量使用。
var name= new Array();
name["mc" + i ];
四、函数
简单的说,就是命令的集合。就是来完成特定的功能的代码块。函数分2类,内置函数和自定义函数。比如getTimer();可以知道自SWF文件开始播放时起已经过的毫秒数。就是个内置函数。自定义函数就是我们自己定义的函数。
1、如何自己定义函数?
function myFunction (参数1,参数2,...){
... //您的语句
return //如果要返回一定的值就必须有这个return,不需要返回任何值就不需要这个了。
}
其中,myFunction 就是函数名:要符合我们介绍取名规则。参数就是前提条件。
说明一下,如果我们定义的函数在任何的时间轴可用,必须定义成这样
_global.myFunction = function (参数1,参数2,...){
... //您的语句
return //如果要返回一定的值就必须有这个return,不需要返回任何值就不需要这个了。
}
调用时,函数我们可以把它看成特殊的变量吧,也要先定义后使用,并且注意路径问题呀。