1. 在As3.0中所有的数据类型都是对象,都有自己的方法和属性;
Java中的基本数据类型,其采取和C和C++相同的方法。也就是不用new来创建变量,而是创建一个并非是引用的“自动”变量。这个变量直接存储“值”,因此更加高效。
例4:
var variableName:variableDataType=data; //variableDataType表示数据的类型
在声明复杂数据类型时使用new关键字
例5:
var obj:object=new object(); //声明了一个object类型的变量obj
而java中基本变量的声明与C是十分相似的,其他类型的变量则使用关键字new来申请空间。
Object类型是所有As3.0数据类型的基类,其他数据类型都是从object数据类型继承来的
初始化:
例6:
var obj:Object=new Object(); //通过构造函数初始化
还可以使用{ }直接对其赋值
例7:
var obj:Object={name:”lee”,age=18,address=”ningbo”}; 其中{ }是As3.0中的初始化对象运算符
obj.name=”peter”; //改变属性值
obj[“name”]=”tom”; //改变属性值的另一种方法
在java中object是抽象类是不能被初始化和赋值的。
数据类型
|
默认值
|
布尔型(
Boolean
)
|
False
|
整数(
int
)
|
0
|
数字(
Number
)
|
NaN
(Not a Number)
|
对象(
object
)
|
Null
|
字符串(
String
)
|
Null
|
自然数(
uint
)
|
0
|
1.AS3中的数据类型
AS3中所有的数据都是对象。(Everything is an Object 相对于Java 它是完全面向对象 Java基本数据类型不是继承Object类)
AS3中最核心的类是Object类。所有一切类都继承自Object类。
AS3中的数据类型 分为基本数据类型和复杂数据类型
基本数据类型包括:Boolean ,int,Number,String和unit (注意大小写 与Java不同)
Boolean 默认值false
int 默认值 0 ,32位整数
Number 默认值 NaN,64位浮点数
String 默认值null ,字符串
unit 默认值0 ,一般用于颜色上
复杂数据类型包括:Array,Date,Error,Function,RegExp,XML,XMLList,我们自己定义的类。
2.变量的声明和使用
AS3和Java 一样,变量必须先声明再使用
在AS3中变量声明格式如下:
var 变量名:数据类型;
var 变量名:数据类型 = 值;
Var 是一个关键字,用来声明变量。变量的数据类型写在冒号后面。其次,如果要赋值,数据类型和变量声明的必须一致(与Java相同 静态语言的编译时检查),如果没有赋值,变量会根据自己的类型赋予默认值。
var a; 声明a未指定类型 (untyped)
var b:*; 效果同上
3.值类型和引用类型的区别
值类型等同于基本类型,其余全都是引用类型。
值类型的数据可以不用new关键字来创建,当然也可以用new关键字创建。必须用new关键字创建的一定不是值类型。
例1
var a:int = 3;
var b:int = a;
b = 9;
trace(a); //结果3
trace(b); //结果9
例2
var a:Array = new Array(1,2,3);
var b:Array = a;
b[0] = 100;
trace(a); //结果 100,2,3
trace(b); //结果 100,2,3
例3
var a:Array = new Array(1,2,3);
var b:Array = a;
b = new Array(100,200,300);
b[0] = 10;
trace(a);//结果1 2 3
trace(b);//结果10 200 300
AS3中的引用类型和java中的非基本类型相同
4.基本数据类型
在Java中,值类型并不是以对象形式存在的。值类型的变量,存储的不是引用,而是直接容纳了值,AS3中即使是值类型,也存储的是引用,只不过引用的是特殊对象(不可变对象)
5.使用const声明常量
语法
const foo:int = 45;
foo = 100;//报错
6.详细讲解基本数据类型
布尔型:Boolean
比较AS2和AS3中的区别
//AS2
var b:Boolean;
trace(b); //undefined
trace(b == false); //false
//AS3
var b:Boolean;
trace(b); //false
trace(b == false) ;//true
数字型
int 是有符号32位的整型数
unit 是没有符号的32位整型数
Number 是64位浮点数
能用整数优先使用int和unit。
只处理正整数时,处理颜色时使用unit。
有小数时使用Number。
例
var a:int = 9;
var b:int = a/2;
trace(b);//4
var c:Number = a/2;
trace(c);//4.5
要小心整数数值的边界
var i:unit = 0;
i--;
trace(i); //期望的结果是-1 实际结果是4294967295
字符串String
var stringSample1:String ;
var stringSample2:String = "";
var stringSample3:String = new String();
var stringSample4:String = "abc";
var stringSample5:String = new String("abc");
var stringSample6:String = 'abc';
var stringSample:String = "this is a sample";
var stringLength:String = stringSample.length;
数组:Array
Var a:Array;
Var b:Array = [];
Var c:Array = new Array();
Var d:Array = [1,2,3,4];
Var e:Array = new Array(1,2,3,4);
Var f:Array = new Array(5);
Object
Object的成员有两种:一种是属性,一种是函数
声明一个Object
//1.使用构造方法
var foo:Object = new Object();
//2.使用空的大括号
var bar:Object = {};
//3可以写入属性和方法
var foo1:Object = {id:10,name:"hurry",hello:function(){return "Hello !!!"}};
trace(foo1.name);
trace(foo1.hello());
//4.Object可以动态的添加属性
var student:Object = {};
student.id = 1;
student.name = "hurry";
trace(student.name);
//5.动态添加方法
student.sleep = function() {
trace("I am sleep !!!");
}
student.sleep();
//6使用.或[]访问Object属性
多位数组
var sampleArray1:Array = [ [1, 2, 3 ] , [ 4, 5, 6 ] , [ 7, 8, 9 ] ];
trace(sampleArray1[1]);
trace(sampleArray1[1][2]);
var sampleArray2 = new Array(new Array(1,2,3), new Array(4,5,6), new Array(7,8,9) );
trace(sampleArray2[2][1]);
var sampleArray3:Array = new Array(3);
sampleArray3[0] = [1,2,3];
...
...
7变量的默认值
int 默认值 0 unit 默认值0 Number 默认值 NaN String 默认值null
Boolean 默认值 false Array 默认值 null Object 默认值 null 未声明 默认值 undefined
如果一个Number类型的变量未赋值,则它参与的任何的数学运算的结果都是NaN