Flash ActionScript 30 语言和组件参考Array.docx
- 文档编号:9433349
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:60
- 大小:37.78KB
Flash ActionScript 30 语言和组件参考Array.docx
《Flash ActionScript 30 语言和组件参考Array.docx》由会员分享,可在线阅读,更多相关《Flash ActionScript 30 语言和组件参考Array.docx(60页珍藏版)》请在冰点文库上搜索。
FlashActionScript30语言和组件参考Array
包
顶级
类
publicdynamicclassArray
继承
Array
Object
语言版本:
ActionScript3.0
运行时版本:
AIR1.0,FlashPlayer9
使用Array类可以访问和操作数组。
Array索引从零开始,这意味着数组中的第一个元素为[0],第二个元素为[1],依此类推。
要创建Array对象,可以使用newArray()构造函数。
Array()还可以作为函数调用。
此外,还可以使用数组访问([])运算符初始化数组或访问数组元素。
您可以在数组元素中存储各种各样的数据类型,包括数字、字符串、对象,甚至是其它数组。
您可以创建一个多维数组,方法是创建一个索引数组,然后给它的每个元素分配不同的索引数组。
这样的数组被视为是多维的,原因是它可用于表示表中的数据。
数组是稀疏数组,这意味着可能存在这样的情况:
在索引0处有一个元素,在索引5处有另一个元素,而这两个元素之间的索引位置却是空的。
在这种情况下,位置1至位置4的元素是未定义的,表示这些位置不存在元素,而不一定存在值为undefined的元素。
数组赋值是通过引用而不是通过值进行的。
如果将一个数组变量赋值给另一个数组变量,则这两个变量引用同一个数组:
varoneArray:
Array=newArray("a","b","c");
vartwoArray:
Array=oneArray;//Botharrayvariablesrefertothesamearray.
twoArray[0]="z";
trace(oneArray);//Output:
z,b,c.
请不要使用Array类创建关联数组(也称为哈希),关联数组是包含命名元素而不包含编号元素的数据结构。
要创建关联数组,请使用Object类。
虽然ActionScript允许使用Array类创建关联数组,但不能对关联数组使用Array类的任何方法或属性。
可以扩展Array类并覆盖或添加方法。
但是,必须将子类指定为dynamic,否则将无法在数组中存储数据。
查看示例
另请参见
[](arrayaccess)
Objectclass
公共属性
隐藏继承的公共属性
显示继承的公共属性
属性
定义方
constructor:
Object
对类对象或给定对象实例的构造函数的引用。
Object
length:
uint
指定数组中元素数量的非负整数。
Array
prototype:
Object
[静态]对类或函数对象的原型对象的引用。
Object
公共方法
隐藏继承的公共方法
显示继承的公共方法
方法
定义方
Array(numElements:
int=0)
允许创建指定元素数量的数组。
Array
Array(...values)
允许创建包含指定元素的数组。
Array
concat(...args):
Array
将参数中指定的元素与数组中的元素连接,并创建新的数组。
Array
every(callback:
Function,thisObject:
*=null):
Boolean
对数组中的每一项执行测试函数,直到获得对指定的函数返回false的项。
Array
filter(callback:
Function,thisObject:
*=null):
Array
对数组中的每一项执行测试函数,并构造一个新数组,其中的所有项都对指定的函数返回true。
Array
forEach(callback:
Function,thisObject:
*=null):
void
对数组中的每一项执行函数。
Array
hasOwnProperty(name:
String):
Boolean
指示对象是否已经定义了指定的属性。
Object
indexOf(searchElement:
*,fromIndex:
int=0):
int
使用全等运算符(===)搜索数组中的项,并返回该项的索引位置。
Array
isPrototypeOf(theClass:
Object):
Boolean
指示Object类的实例是否在指定为参数的对象的原型链中。
Object
join(sep:
*):
String
将数组中的元素转换为字符串、在元素间插入指定的分隔符、连接这些元素然后返回结果字符串。
Array
lastIndexOf(searchElement:
*,fromIndex:
int=0x7fffffff):
int
使用全等运算符(===)搜索数组中的项(从最后一项开始向前搜索),并返回匹配项的索引位置。
Array
map(callback:
Function,thisObject:
*=null):
Array
对数组中的每一项执行函数并构造一个新数组,其中包含与原始数组中的每一项的函数结果相对应的项。
Array
pop():
*
删除数组中最后一个元素,并返回该元素的值。
Array
propertyIsEnumerable(name:
String):
Boolean
指示指定的属性是否存在、是否可枚举。
Object
push(...args):
uint
将一个或多个元素添加到数组的结尾,并返回该数组的新长度。
Array
reverse():
Array
在当前位置倒转数组。
Array
setPropertyIsEnumerable(name:
String,isEnum:
Boolean=true):
void
设置循环操作动态属性的可用性。
Object
shift():
*
删除数组中第一个元素,并返回该元素。
Array
slice(startIndex:
int=0,endIndex:
int=16777215):
Array
返回由原始数组中某一范围的元素构成的新数组,而不修改原始数组。
Array
some(callback:
Function,thisObject:
*=null):
Boolean
对数组中的每一项执行测试函数,直到获得返回true的项。
Array
sort(...args):
Array
对数组中的元素进行排序。
Array
sortOn(fieldName:
Object,options:
Object=null):
Array
根据数组中的一个或多个字段对数组中的元素进行排序。
Array
splice(startIndex:
int,deleteCount:
uint,...values):
Array
给数组添加元素以及从数组中删除元素。
Array
toLocaleString():
String
返回一个字符串,它表示指定数组中的元素。
Array
toString():
String
返回一个字符串,它表示指定数组中的元素。
Array
unshift(...args):
uint
将一个或多个元素添加到数组的开头,并返回该数组的新长度。
Array
valueOf():
Object
返回指定对象的原始值。
Object
公共常量
常量
定义方
CASEINSENSITIVE:
uint=1
[静态]指定Array类排序方法为不区分大小写的排序。
Array
DESCENDING:
uint=2
[静态]指定Array类排序方法为降序排序。
Array
NUMERIC:
uint=16
[静态]指定Array类排序方法为数值(而不是字符串)排序。
Array
RETURNINDEXEDARRAY:
uint=8
[静态]指定排序返回的数组包含数组索引。
Array
UNIQUESORT:
uint=4
[静态]指定Array类排序方法的唯一排序要求。
Array
属性详细信息
length
属性
length:
uint [读写]
语言版本:
ActionScript3.0
运行时版本:
AIR1.0,FlashPlayer9
指定数组中元素数量的非负整数。
在向数组中添加新元素时,此属性会自动更新。
当您给数组元素赋值(例如,my_array[index]=value)时,如果index是数字,而且index+1大于length属性,则length属性会更新为index+1。
注意:
如果您为length属性所赋的值小于现有长度,会将数组截断。
实现
publicfunctiongetlength():
uint
publicfunctionsetlength(value:
uint):
void
示例
下面的代码创建一个Array对象names,其中包含字符串元素Bill。
然后它使用push()方法添加另外一个字符串元素Kyle。
数组的长度由length属性确定,在使用push()之前是一个元素,在调用push()之后是两个元素。
添加另外一个字符串Jeff以使names的长度变为三个元素。
然后,两次调用shift()方法以删除Bill和Kyle,从而使最终数组的length变为一。
varnames:
Array=newArray("Bill");
names.push("Kyle");
trace(names.length);//2
names.push("Jeff");
trace(names.length);//3
names.shift();
names.shift();
trace(names.length);//1
构造函数详细信息
Array
()
构造函数
publicfunctionArray(numElements:
int=0)
语言版本:
ActionScript3.0
运行时版本:
AIR1.0,FlashPlayer9
允许创建指定元素数量的数组。
如果不指定任何参数,则创建包含0个元素的数组。
如果指定多个元素,则创建包含numElements个元素的数组。
注意:
此类显示了两个构造函数方法项,这是因为此构造函数接受的参数的类型和数量可变。
根据传递的参数类型和数量的不同(由每一项详细定义),此构造函数具有不同的行为。
ActionScript3.0不支持方法或构造函数重载。
参数
numElements:
int(default=0)—一个指定数组中元素数量的整数。
引发
RangeError—该参数不是大于等于0的整数。
另请参见
[]arrayaccess
Array.length
示例
下面的示例创建Array对象myArr,该对象没有参数且初始长度为0:
package{
importflash.display.Sprite;
publicclassArray_ArrayextendsSprite{
publicfunctionArray_Array(){
varmyArr:
Array=newArray();
trace(myArr.length);//0
}
}
}
下例创建一个Array对象,该对象包含5个初始元素,长度为5,并用字符串"one"填充第一个元素,然后将字符串元素"six"添加到数组的末尾(使用push()方法):
package{
importflash.display.Sprite;
publicclassArray_Array_2extendsSprite{
publicfunctionArray_Array_2(){
varmyArr:
Array=newArray(5);
trace(myArr.length);//5
myArr[0]="one";
myArr.push("six");
trace(myArr);//one,,,,,six
trace(myArr.length);//6
}
}
}
Array
()
构造函数
publicfunctionArray(...values)
语言版本:
ActionScript3.0
运行时版本:
AIR1.0,FlashPlayer9
允许创建包含指定元素的数组。
您可以指定任何类型的值。
数组中第一个元素的索引(或位置)始终为0。
注意:
此类显示了两个构造函数项,这是因为此构造函数接受的参数的类型和数量可变。
根据传递的参数类型和数量的不同(由每一项详细定义),此构造函数具有不同的行为。
ActionScript3.0不支持方法或构造函数重载。
参数
...values—一个以逗号分隔的列表,包含一个或多个任意值。
注意:
如果传递给Array构造函数的只有一个单数值参数,则认为该参数指定数组的length属性。
引发
RangeError—该参数不是大于等于0的整数。
另请参见
[]arrayaccess
Array.length
示例
下例创建一个新的Array对象,该对象初始长度为3,并用字符串元素one、two和three填充数组,然后将这些元素转换为字符串。
package{
importflash.display.Sprite;
publicclassArray_Array_3extendsSprite{
publicfunctionArray_Array_3(){
varmyArr:
Array=newArray("one","two","three");
trace(myArr.length);//3
trace(myArr);//one,two,three
}
}
}
方法详细信息
concat
()
方法
AS3functionconcat(...args):
Array
语言版本:
ActionScript3.0
运行时版本:
AIR1.0,FlashPlayer9
将参数中指定的元素与数组中的元素连接,并创建新的数组。
如果这些参数指定了一个数组,将连接该数组中的元素。
参数
...args—要连接到新数组中的任意数据类型的值(如数字、元素或字符串)。
如果未传递任何值,则新数组将是原始数组的副本。
返回
Array—一个数组,其中包含此数组中的元素,后跟参数中的元素。
示例
以下代码创建四个Array对象:
∙包含数字1、2和3的numbers数组。
∙包含字母a、b和c的letters数组。
∙调用concat()方法生成数组[1,2,3,a,b,c]的numbersAndLetters数组。
∙调用concat()方法生成数组[a,b,c,1,2,3]的lettersAndNumbers数组。
varnumbers:
Array=newArray(1,2,3);
varletters:
Array=newArray("a","b","c");
varnumbersAndLetters:
Array=numbers.concat(letters);
varlettersAndNumbers:
Array=letters.concat(numbers);
trace(numbers);//1,2,3
trace(letters);//a,b,c
trace(numbersAndLetters);//1,2,3,a,b,c
trace(lettersAndNumbers);//a,b,c,1,2,3
every
()
方法
AS3functionevery(callback:
Function,thisObject:
*=null):
Boolean
语言版本:
ActionScript3.0
运行时版本:
AIR1.0,FlashPlayer9
对数组中的每一项执行测试函数,直到获得对指定的函数返回false的项。
使用此方法可确定数组中的所有项是否满足某一条件,如具有的值小于某一特定数值。
参数
callback:
Function—要对数组中的每一项运行的函数。
该函数可以包含简单的比较操作(例如,item<20)或者更复杂的操作,并用三个参数来调用,即项值、项索引和Array对象:
functioncallback(item:
*,index:
int,array:
Array):
Boolean;
thisObject:
*(default=null)—用作函数的this的对象。
返回
Boolean—如果数组中的所有项对指定的函数都返回true,则为布尔值true;否则为false。
另请参见
Array.some()
示例
下面的示例测试两个数组,以确定每个数组中的每一项是否都是数字。
还输出了测试结果,说明对于第一个数组,isNumeric是true,对于第二个数组则是false:
package{
importflash.display.Sprite;
publicclassArray_everyextendsSprite{
publicfunctionArray_every(){
vararr1:
Array=newArray(1,2,4);
varres1:
Boolean=arr1.every(isNumeric);
trace("isNumeric:
",res1);//true
vararr2:
Array=newArray(1,2,"ham");
varres2:
Boolean=arr2.every(isNumeric);
trace("isNumeric:
",res2);//false
}
privatefunctionisNumeric(element:
*,index:
int,arr:
Array):
Boolean{
return(elementisNumber);
}
}
}
filter
()
方法
AS3functionfilter(callback:
Function,thisObject:
*=null):
Array
语言版本:
ActionScript3.0
运行时版本:
AIR1.0,FlashPlayer9
对数组中的每一项执行测试函数,并构造一个新数组,其中的所有项都对指定的函数返回true。
如果某项返回false,则新数组中将不包含此项。
参数
callback:
Function—要对数组中的每一项运行的函数。
该函数可以包含简单的比较操作(例如,item<20)或者更复杂的操作,并用三个参数来调用,即项值、项索引和Array对象:
functioncallback(item:
*,index:
int,array:
Array):
Boolean;
thisObject:
*(default=null)—用作函数的this的对象。
返回
Array—一个新数组,它包含原始数组中返回true的所有项。
另请参见
Array.map()
示例
下面的示例创建一个数组,其中包括职务为经理的所有员工:
package{
importflash.display.Sprite;
publicclassArray_filterextendsSprite{
publicfunctionArray_filter(){
varemployees:
Array=newArray();
employees.push({name:
"Employee1",manager:
false});
employees.push({name:
"Employee2",manager:
true});
employees.push({name:
"Employee3",manager:
false});
trace("Employees:
");
employees.forEach(traceEmployee);
varmanagers:
Array=employees.filter(isManager);
trace("Managers:
");
managers.forEach(traceEmployee);
}
privatefunctionisManager(element:
*,index:
int,arr:
Array):
Boolean{
return(element.manager==true);
}
privatefunctiontraceEmployee(element:
*,index:
int,arr:
Array):
void{
trace("\t"+element.name+((element.manager)?
"(manager)":
""));
}
}
}
forEach
()
方法
AS3functionforEach(callback:
Function,thisObject:
*=null)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flash ActionScript 30 语言和组件参考Array 语言 组件 参考 Array