先说一下数据类型:
基元数据类型包括 Boolean、int、Null、Number、String、uint 和 void。ActionScript
核心类还定义下列复杂数据类型:Object、Array、Date、Error、Function、RegExp、
XML 和 XMLList。
1、类型转换就是将一个对象的类型转换成另外的一种类型(它有资格转换,如果没有就会出错)。
2、什么时候需要类型转换? 简单来说就是,当需要一个特定类型的值时,而给定的值确不是该类型,这时就需要转换,但不一定成功!大概有下面几种:
3、转换方式有隐式转换和显示转换 (很多语言里都有就不说了)。在严格模式下尽量使用显示转换。
4、可以将任何类型的对象转换成int,uint,Number,Boolean,String。 至于具体转换的规则可以查看其他资料。对于int,uint,Number来说,当发现不能转换数字时,int,uint就会把它转成0,而Number转换成NaN.
5、字面值(摘书自《ActionScript3.0 编程》)
“字面值”是直接出现在代码中的值。 下面的示例都是字面值:
17 "hello" -3 9.4 null undefined true false
字面值还可以组合起来构成复合字面值。数组文本括在中括号字符 ([]) 中,各数组元素之间用逗号隔开。数组文本可用于初始化数组。下面的几个示例显示了两个使用数组文本初始化的数组。您可以使用 new 语句将复合字面值作为参数传递给 Array 类构造函数,但是,您还可以在实例化下面的 ActionScript 核心类的实例时直接赋予字面值:Object、Array、String、Number、int、uint、XML、XMLList 和 Boolean。
// 使用 new 语句。 var myStrings:Array = new Array(["alpha", "beta", "gamma"]); var myNums:Array = new Array([1,2,3,5,8]); // 直接赋予字面值。 var myStrings:Array = ["alpha", "beta", "gamma"]; var myNums:Array = [1,2,3,5,8];
字面值还可用来初始化通用对象。通用对象是 Object 类的一个实例。 对象字面值括在大括号 ({}) 中,各对象属性之间用逗号隔开。每个属性都用冒号字符 (:) 进行声明,冒号用于分隔属性名和属性值。可以使用 new 语句创建一个通用对象并将该对象的字面值作为参数传递给 Object 类构造函数,也可以在声明实例时直接将对象字面值赋给实例。下面的示例创建一个新的通用对象,并使用三个值分别设置为 1、2 和 3 的属性(propA、propB 和 propC)初始化该对象:
// 使用 new 语句。 var myObject:Object = new Object({propA:1, propB:2, propC:3}); // 直接赋予字面值。 var myObject:Object = {propA:1, propB:2, propC:3};
6、常量。常量是指具有无法改变的固定值的属性。只能为常量赋值一次,而且必须在最接近常量声明的位置赋值。用const 代替var来创建。
class A { public const MINIMUM:int = 0; public const MAXIMUM:int; public function A() { MAXIMUM = 10; } } var a:A = new A(); trace(a.MINIMUM); // 0 trace(a.MAXIMUM); // 10上面是合法的。
class A { public const MINIMUM:int = 0; public const MAXIMUM:int; } var a:A = new A(); a["MAXIMUM"] = 10; // 运行时错误
7、运算符,记一下主要运算符 (其他运算符和java差不多)
8、as3中的语句大多和java中的差不多,只是要注意一下循环语句for in和 for each in
var myObj:Object = {x:20, y:30}; for (var i:String in myObj) { trace(i + ": " + myObj[i]); } // 输出: // x: 20 // y: 30可以使用 for..in 循环来循环访问通用对象 的属性 (不按任何特定的顺序来保存对象的属性,因此属性可能以看似随机的顺序出现)
var myArray:Array = ["one", "two", "three"]; for (var i:String in myArray) { trace(myArray[i]); } // 输出: // one // two // three还可以循环访问数组中的元素 .
var myObj:Object = {x:20, y:30}; for each (var num in myObj) { trace(num); } // 输出: // 20 // 30循环访问 XML 或 XMLList 对象
var myXML:XML = <users> <fname>Jane</fname> <fname>Susan</fname> <fname>John</fname> </users>; for each (var item in myXML.fname) { trace(item); } /* 输出 Jane Susan John */循环访问数组中的元素
var myArray:Array = ["one", "two", "three"]; for each (var item in myArray) { trace(item); } // 输出: // one // two // three注意 观察:,for each..in循环中的迭代变量包含属性所保存的值 ,而不包含属性的名称。
本文地址:http://kino.iteye.com/blog/237240 ,转载请注明,谢谢!