ActionScript 3 语言基本元素

来源:互联网 发布:压缩包mac版 编辑:程序博客网 时间:2024/05/12 05:38

最近要学习到AS的知识,大牛们让看《AS殿堂之路》先,为了方便以后回过头来查阅,在此记下笔记。另说明:笔记版本先是来自于天地会小秋版(来源:http://bbs.9ria.com/forum.php?mod=viewthread&tid=76849&highlight=%E7%AC%94%E8%AE%B0),本人比较懒就按照自己的理解在上面增删,少打一些字。


2.1.2 数据类型概述
简单数据类型
Boolean(布尔)、int(有符整型)、Number(浮点)、String(字符串)、uint(无符整型)
复杂数据类型
Array(数组)、Date(日期)、Error(异常)、Function(函数)、RegExp(正则表达)、XML、XMLList

2.2.1 变量声明
var 变量:类型
var 变量:类型 = 值;
声明变量时如果不加上数据类型,那么该变量就被归为未声明类型(untype)

2.2.4 *重要:值类型和引用类型的区别
AS3中基本类型就只有Boolean、int、Number、String和uint,那么其他的数据类型就全是引用类
型。值类型的数据不用new关键字来创建,必须要用new关键字创建的一定不是值类型。在AS3中,值类型变量持有的是指向值类型的引用;引用类型变量持有的是指向引用类型数据的引用。

2.2.5 基元数据类型的深入讨论*
基元数据类型即是值类型,值类型的本质仍然是对象,不过是不变对象(immutable object),
一旦虚拟机发现指向一个不变对象的引用要改变其值,就会另行创建一个新的不变对象来接受新的值。旧的就会被AVM自动回收。
设计不变对象的考虑:
    ①使得引用的效率和传值一样高
    ②不变对象可以重复引用,引用的内存消耗一般比值小很多。

2.3 使用const声明常量
const 常量名:类型 = 值;

2.4 基础数据类型
布尔值 Boolean(初始化为false)
数字:
int uint Number
int  有符号32位整数 -2(31次方) -  +(2(31次方)-1)
uint 无符号32位整数 0 -  2(32次方)-1
Number 64位浮点
能用整数优先用int uint;有正负之分,才用int。只处理整数,用uint,有小数,用Number。需要浮点数相加得到证书,用Math.round()。

字符串,Unicode字符。

数组:Array
AS3中的数组是以0为起始,非负整数为索引的稀疏数组(sparse array),与C#等语言不同,它们变量及数组声明是 type name形式的类型化序列!比如 int IntArray[10] ,声明了一个只能放整数的数组 里面有10位长度
AS3中的数组每位元素没严格要求相同类型,所有元素初始化后默认值为null,但一般情况下我们使用时均同一时刻只存放相同类型的数据。

Object及关联数组
var 对象:Object = new Object()
var 对象:Object = {};
Key-Value
对象(Object)属动态类,可动态添加任意属性/方法,特别在传参时可以运用Object进行 封箱/拆箱
处理!如果确切直到成员名字,可以直接使用点号运算符(.)来添加或访问他们。但是如果成员名字到了运行时才知道,那么就需要用到数组运算与([])。

多维数组
AS3中多维数组的实现使用数组元素嵌套数组元件的方法实现多维数组的效用,即:
var Arr:Array = [[0,1],[1,3],[4,6]]
这种形式的多维数组

2.4.8 Null、NaN、undefined及各自应用对象:变量的默认值
数据类型 默认值
int 0
uint 0
Number NaN
String null
Boolean false
Array null
Object null
没声明 undefined
* undefined
要判别一个Number类型变量是否为NaN,不能直接用 == NaN,要视它为一个布尔量来运算,即:
if(!Number(变量))  

2.5 运算符,表达式及运用
2.5.11 typeof、is、as
typeof,用字符串返回对象类型,格式: typeof(对象)
is    ,判断操作符左边的对象是否属于右边的类型,返回值为Boolean,格式:  对象 is 数据
类型

as    ,判断操作符左边的对象是否属于右边的类型,属于则返回数据,不属于则返回null,格式:对象 as 数据类型

typeof对象类型与返回结果对照表
对象类型 返回结果
Array object
Boolean boolean
Function function
int number
Number number
Object object
String string
uint number
XML xml
XMLList xml

Array Object一视同仁为object
数值类一视同仁为number
Boolean > boolean
String > string
Function > function

2.5.12 in
in    ,判断操作符左边的对象是否作为右边对象中的键(Key)或索引,返回值为Boolean
比如:
var a:Array = ["q","w","e"];
trace(2 in a);  //数组中有索引2,返回true
trace(3 in a);  //数组中没有索引3,返回false

2.5.13 delete关键字
AS2.0中可以删除任意任意对象的delete关键字,在AS3.0中只能用于删除对象的动态实例属性,非动态属性不能删除。如果要将一个属性所持有的引用删除,使用 对象名 = null 来进行赋值操作即可。

0 0