ActionScript3基础语法-变量类型

xiaoxiao2021-02-27  209

package { import flash.display.MovieClip; public class HelloWorld extends MovieClip { public function HelloWorld() { // constructor code trace("Hello World ActionScript3.0 Language!"); AS3VarType(); } // AS3 一切类型都是面向对象的,基类都是Object public 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是具体字符的个数,不是字节数,也不包含末尾的\0 trace("strLen value:" + strLen); // 复杂类型和自定义类型都是引用类型,new创建,堆存放 // 常用复杂数据类型 // 数组存放的类型可以不同,但是一般存放相同类型,存放是值或引用的类型元素 var arr:Array; // 多维数组实例 var sample2:Array = new Array(new Array(1,2,3), new Array(4,5,6), new Array(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); } } }

转载请注明原文地址: https://www.6miu.com/read-8622.html

最新回复(0)