一、简单介绍as3.0
AS3.0与AS2.0\AS1.0本质上有所不同;as3.0代码运行的速度是as2.0的将近10倍;as3.0最好的虚拟机是AVM2.
AS3.0比着AS2.0\AS1.0有一些新特性:
@:引入显示列表的概念。显示列表用于创建、管理显示对象的层次结构,任何Flash应用程序实际上就是显示列表。在显示列表中,采用新的深度机制
来管理显示列表对象的显示层次,使显示列表的深度管理更加人性化。
@:使用新的事件模型。ActionScript 3.0中的事件模型与第二版用户界面组件有点类似;是采用观察者模式设计的。新增了事件流、默认行为等功 能,很多在ActionScript 2.0中难以实现的功能,使用ActionScript 3.0将会非常简单。
@:引入了E4X,使得操作XML更加方便、快捷,在以往版本的ActionScript中,使用XML对象前,需要将其转换为数组或对象,而ActionScript 3.0 可直接操作XML对象
@:支持正则表达式。正则表达式在查找和替换模式方面有很大的优势,以往需要几十行代码实现的功能,使用正则表达式只用几行。
二、常用的数据类型及命名规则
1、数据本质
@、数据本质是通过变量调用数据的
@、Object是根类,所有的类都继承于他
@、数据类型包括简单(基元)数据类型和复杂数据类型
<1>.简单(基元)数据类型有Boolean(布尔值,有两个取值;true和false) int(处理整数(包括负数)) uint(处理十六进制 的颜 色值及正整形数字) Number(处理带有小数点的数字) String(处理字符串)
<2>.复杂数据类型有:Array数组是由数字或字符串组成;日期、函数、Xml等复杂的数据类型除了以上简单的数据类型外,其他的基本上都是复杂的数据类型(如:能创建一个新实例的类)
2、变量的声明与使用 ------ 变量先声明后使用
@、声明变量表达式:var 变量名:数据类型 = 值;
var 变量名:数据类型; //这两种表达式的效果是一样的
<1>.var i:int;
<2>.var i:int = 1;
<3>.var i;
<4>var i:*;
<1>与<2>表达的含义一样,效果亦如此;
<3>与<4>效果一样,允许声明变量不赋值
@:变量的命名规则
<1>.尽量用有含义的英文单词作为变量名称
<2>.采用骆驼式命名法
<3>.变量名越短越好
<4>.避免变量名中出现数字编号
@、变量的本质是数据都是对象
值类型:Boolean int uint Number String
值类型不需new来创建实例;其他类型都属于引用类型
值类型实例例如:
var i:uint = 3;
var j:int = i;
trace(i+j);
引用类型实例如:
var a:Array = new Array(1,2,3);
var b:Array = a;
b[0] = 4;
trace(a); //a = 4,2,3
trace(b); //b = 4,2,3
3、常量的声明与使用
*、Const关键字用于声明常量,常量一经赋值就不能更改其值
*、命名表达式: Const 常量名:常量类型 = 值;与变量表达式几乎相同
eg: Const a:int = 100; 值类型
*、引用类型只能保持引用不变,而不能保证他所引用的对象状态不发生改变
eg: Const a:Array = [1,2,3];
var b:Array = a;
b[1] = 100;
trace(a); // a = 1,100,3
4、基本数据类型
@、简单数据类型、复杂数据类型、数字类型、字符串基本操作、数组等;
@、简单数据类型:*、var a:Boolean ;trace(a); //a = false,因为Boolean的默认值为false
@、数字类型:var a:Number = 0;
for(var i:int = 0; i<10;i++)
{
a+=0.1;
}
trace(a);
@、字符串基本操作
*、var a:String;
*、var a:String = "";
*、var a:String = new String();
这三种表达式含义相同
例如:var a:String = "abc";
trace(a.length); // 3
trace (a); //abc
@、Array数组的使用以非负数为索引
*、var a:Array = [];
*.var a:Array = new Array();
声明数组
*.赋值后var a:Array = [1,2,3];或var a:Array = new Array(1,2,3);trace(a[0]);//1
@、Object是所有数据结构的基石;
*、声明Object对象:。。var a:Object = new Object();...var b:Object = {};
eg : var b:Object = {name:"zhangsan"}; trace(b.name);//zhangsan
或:var b:Object = {hello:function(){trace("a")}}; b.hello(); //a