学习 Adobe Flash 中的 ActionScript 2.0 |
|
|
|
| 数据和数据类型 > 用对象组织数据 | |||
您可能已经习惯了放置在舞台上的对象。例如,舞台上可能有一个 MovieClip 对象,并且该对象内包含其它影片剪辑。在放置到舞台上时,文本字段、影片剪辑和按钮通常被称为对象。
在 ActionScript 中,对象是属性和方法的集合。每个对象都有其各自的名称,并且都是特定类的实例。内置对象来自在 ActionScript 中预定义的类。例如,内置的 Date 类可以提供用户的计算机上的系统时钟的信息。可以使用内置的 LoadVars 类将变量加载到 SWF 文件中。
还可以使用 ActionScript 创建对象和类。可以创建一个对象来保存数据的集合,例如一个人的姓名、地址和电话号码。可以创建一个对象来保存图像的颜色信息。用对象组织数据有助于更好地组织 Flash 文档。有关创建自定义类以保存方法和属性集合的一般信息,请参阅"编写自定义类文件"。有关内置类和自定义类的详细信息,请参阅"类"。
在 ActionScript 中创建一个对象有多种方法。下一示例用两种不同的方法创建了简单对象,然后循环访问这些对象的内容。
在 Flash 中创建简单对象:// 第一种方法 var firstObj:Object = new Object(); firstObj.firstVar = "hello world"; firstObj.secondVar = 28; firstObj.thirdVar = new Date(1980, 0, 1); // 1980 年 1 月 1 日
此代码是创建简单对象的一种方法,它创建了一个新的对象实例并在该对象中定义了几个属性。
// 第二种方法
var secondObj:Object = {firstVar:"hello world", secondVar:28, thirdVar:new Date(1980, 0, 1)};
这是创建对象的另一种方法。两个对象是等效的。以上代码创建一个新的对象,并使用对象简化记号初始化了一些属性。
var i:String;
for (i in secondObj) {
trace(i + ": " + secondObj[i]);
}
firstVar: hello world secondVar: 28 thirdVar: Tue Jan 1 00:00:00 GMT-0800 1980
|
注意 |
变量不一定按照该顺序显示在"输出"面板中。在使用 for..in 循环时,无法保证返回顺序;播放器会按照无法预测的顺序返回对象的内容。 |
也可以使用数组来创建对象。可以不使用一系列变量(例如 firstname1、firstname2 和 firstname3)来表示变量的集合,而是用一个对象数组来表示同样的数据。下面将演示这一做法。
使用数组创建对象:
var usersArr:Array = new Array();
usersArr.push({firstname:"George"});
usersArr.push({firstname:"John"});
usersArr.push({firstname:"Thomas"});
将变量组织到数组和对象中的好处是,可以更方便地循环访问变量并查看值,如以下步骤中所示。
var i:Number;
for (i = 0; i < usersArr.length; i++) {
trace(usersArr[i].firstname); // George, John, Thomas
}
George John Thomas
下例介绍了循环访问对象的另一种方法。在此示例中,将创建一个对象并使用 for..in 循环对其执行循环,每个属性都出现在"输出"面板中:
var myObj:Object = {var1:"One", var2:"Two", var3:18, var4:1987};
var i:String;
for (i in myObj) {
trace(i + ": " + myObj[i]);
}
//输出以下结果:
/*
var1: One
var2: Two
var3: 18
var4: 1987
*/
有关创建 for 循环的信息,请参阅"使用 for 循环"。有关 for...in 循环的信息,请参阅"使用 for..in 循环"。有关对象的详细信息,请参阅"类"。
|
|
|
|