本笔记只为记录个人学习历程,和一些刚开始学AS3的盆友分享本人的学习内容和经验。高手勿笑
首先看一下 AS3中的数据类型
基元数据类型:Boolean ,int ,Number ,uint ,String
复杂数据类型:Array ,Date ,Error ,Function ,RegExp ,XML,XMLList,自定义的类
变量
变量的声明:
var 变量名:数据类型; //声明变量未赋值,将使用默认值
var 变量名:数据类型=值;
-----------------------------------------------
var num1:int=30;
var string:String="hello world!";
var utype; //声明变量,未指定类型,默认为untyped
var utype2:*; //等同于 var utype;
变量的本质: 在AS3中,所有数据都是对象。是通过变量来操纵对象。变量持有引用,而引用则指向要操作的对象。
AS3中,变量本身是不能持有值的。值类型变量持有的是指向值类型数据的引用,引用类型持有的是指向引用类型数据的引用。不论是值类型数据还是引用类型数据,本质都是对象。
值类型是一种特殊的对象,叫做不变对象。
那么什么叫做不变对象呢?顾名思义,一旦被建立后,就不能被更改。有些操作似乎看起来是要更改了不变对象的内容,但实际上不是。一旦虚拟机发现指向一个不变对象的引用要改变该不变对象的值,就会另行创建一个不变对象来接受这个值,下面看一个例子:
var number:int=1;
number=number+2;
第一行代码创建一个int类型的不变对象A出来,值为1,并赋给了变量number。第二行把变量number加上2,改变了number的值,但是不变对象A并没有改变,而是创建了一个不变对象B,并赋值为3。然后不变对象B的引用被赋给了number。由于不变对象A不在被使用,就会被AVM(ActionScript 虚拟机)自动回收。这就是不变对象工作原理的一个示范。
那么为什么要使用不便对象,而不采用直接存值的方式呢?
第一:将元数据类型用不变对象的方法来实现,使得引用的效率和传值一样高。
第二:由于变量持有引用,可以使不变对象重复使用。
流程控制
if-else语句
var num1:int=10;
var num2:int =20;
if(num1>num2){
return "num1>num2";
}
else {
return "num1<=num2";
}
循环:for,while,do-while,switch语法基本通用,这里不赘述了,下面看几个AS3中的特殊的用法。
for...in
var book:Object={
dotnet:"asp.net开发大全",
php:"PHP高级编程"
};
var bookName:String="";
for(var b in book){
bookName+= "key->"+b+"\tvalue->"+book[b]+"\n"; //说明可以用 变量名["key值"]来获取"key值"对应的值
}
return bookName;
for each..in
var book:Object={
dotnet:"asp.net开发大全",
php:"PHP高级编程"
};
var bookName:String="";
for each(var b in book){
bo+="value->"+b+"\n";
}
return bookName;
这次就写这么多了,下次准备说说AS3中的函数和函数的应用