ActionScript3基础语法-变量类型

来源:互联网 发布:高仿人民币淘宝支付 编辑:程序博客网 时间:2024/05/17 22:45

package  {import flash.display.MovieClip;public class HelloWorld extends MovieClip {public function HelloWorld() {// constructor codetrace("Hello World ActionScript3.0 Language!"); AS3VarType();}// AS3 一切类型都是面向对象的,基类都是Objectpublic function AS3VarType(){// 基础类型是值类型,是不变对象,发生改变会生成一个新的,应该是存储在栈中的不变对象// 当没有引用指向该变量的时候,变量和它所指向的内存会被AVM回收掉// 布尔类型var isTrue:Boolean = true;// 整型var aNum:int  = 10;var bigNum:uint = 10000;// 浮点数var floatValue:Number = 10.105;// 字符串类型,都是Unicode字符串,没有char类型var str:String = "珠珠 爱 吃饭";var strLen:int = str.length;// 输出7,这里的length是具体字符的个数,不是字节数,也不包含末尾的\0trace("strLen value:" + strLen); // 复杂类型和自定义类型都是引用类型,new创建,堆存放// 常用复杂数据类型// 数组存放的类型可以不同,但是一般存放相同类型,存放是值或引用的类型元素var arr:Array;// 多维数组实例var sample2:Array = new Array(new Array(1,2,3), new Array(4,5,6), newArray(7,8,9));trace ("multiArray sample:" + sample2[2][1]);var date:Date;var err:Error;var funObj:Function;var regExp:RegExp;var xml:XML;var xmlList:XMLList;// 自定义的Class类// const类型,const修饰值类型保证值类型不能修改,修饰引用类型只是保证引用地址不变const cNum:int = 10;const cArr:Array = [1,2];var bArr:Array = cArr;bArr[0] = 10;trace("bArr value:" + bArr);// 数据类型的转换// 小数转换为整数需要Math.round()来修正// 对象可以new创建,可以用.或[]访问,或新增成员var objTest:Object = new Object();var objTest2:Object = {};var objTest3:Object = {name1:"sam", name2:"sandy", func1:function(){trace("sam & sandy");}};trace("objtest:" + objTest3.name2);objTest3.func1();// 非密封类可以动态添加成员objTest3.chesName = "岑家源";objTest3["age"] = 29;trace("objTest:" + objTest3.chesName);trace("objTest:" + objTest3["age"]);var strToNum:String = "a12.3";// 转换失败的判断if( !(Number(strToNum)) ){var ainum:int = 3;ainum = ainum + 10;}// 转换失败不能用该判断/*if(Number(strToNum) == NaN){var ainum:int = 3;ainum = ainum + 10;}*//*AS不支持用户自定义的运算符重载。=,==,!=,!==可以作用于所有数据类型,对于复杂数据类型而言,运算符的操作对象是引用,而不是对象值本身。String对象虽然是基本数据类型,但是和数值类型是有区别的。*/// 全等运算符===和==运算符的区别,全等不会进行类型转换,==在比较不同类型时候会转换// Number类型==运算会比较值,引用类型比较时候会采用引用首地址比较。/*typeof返回字符串形式的类型名。is和as都是判断一个对象是否属于一种类型,is返回true或false, as返回该对象的值或null。in判断一个对象是否作为一个对象的key或索引。*/// delete在as3中只能删除动态增加的属性// 如果要删除对象,将该对象赋值为null即可,和js其实一样的。delete objTest3.chesName;trace("obj delete dynamic property:" + objTest3.chesName);}}}