`

Flex 数组array的使用实例

    博客分类:
  • Flex
阅读更多

Array
----------------------------------------------------------------
1.
<mx:Script><![CDATA[
var myArray: Array = ["AK", "AL", "AR"];
]]></mx:Script>
2.
<mx: Array >
<mx:String>AK</mx:String>
<mx:String>AL</mx:String>
<mx:String>AR</mx:String>
</mx: Array >
3.
<mx:Script><![CDATA[
var expenses: Array = [
{Month: "January", Profit: 2000, Expenses: 1500, Amount: 450},
{Month: "February", Profit: 1000, Expenses: 200, Amount: 600},
{Month: "March", Profit: 1500, Expenses: 500, Amount: 300},
{Month: "April", Profit: 500, Expenses: 300, Amount: 500},
{Month: "May", Profit: 1000, Expenses: 450, Amount: 250},
{Month: "June", Profit: 2000, Expenses: 500, Amount: 700}
];
]]></mx:Script>
-----------------------------------------------------------------------

----------------------------------------------------------------------
// Use Array constructor.
var myArray: Array = new Array ();
myArray.push("one");
myArray.push("two");
myArray.push("three");
trace (myArray); // output: one,two,three

// Use Array literal.
var myArray: Array = ["one", "two", "three"];
trace (myArray); // output: one,two,three
-----------------------------------------------------------------

----------------------------------------------------------------
var names: Array = new Array ();
trace(names.length); // output: 0

var names: Array = new Array (3);
trace(names.length); // output: 3
trace(names[0]); // output: undefined
trace(names[1]); // output: undefined
trace(names[2]); // output: undefined

var names: Array = new Array ("John", "Jane", "David");
trace(names.length); // output: 3
trace(names[0]); // output: John
trace(names[1]); // output: Jane
trace(names[2]); // output: David
-------------------------------------------------------------------

-----------------------------------------------------------------------
var planets: Array = new Array ();
planets.push("Mars"); // array contents: Mars
planets.unshift("Mercury"); // array contents: Mercury,Mars
planets.splice(1, 0, "Venus", "Earth");
trace(planets); // array contents: Mercury,Venus,Earth,Mars


var oceans: Array = ["Victoria", "Pacific", "Aral", "Superior", "Indian", "Huron"];
oceans.splice(2, 2, "Arctic", "Atlantic"); // replaces Aral and Superior
oceans.pop(); // removes Huron
oceans.shift(); // removes Victoria
trace(oceans); // output: Pacific,Arctic,Atlantic,Indian

var lakes: Array = oceans.splice(2, 2, "Arctic", "Atlantic");
trace(lakes); // output: Aral,Superior


var oceans: Array = ["Arctic", "Pacific", "Victoria", "Indian", "Atlantic"];
delete oceans[2];
trace(oceans); // output: Arctic,Pacific,,Indian,Atlantic
trace(oceans[2]); // output: undefined
trace(oceans.length); // output: 5

var oceans: Array = ["Arctic", "Pacific", "Victoria", "Aral", "Superior"];
oceans.length = 2;
trace(oceans); // output: Arctic,Pacific


var oceans: Array = ["Arctic", "Atlantic", "Indian", "Pacific"];
oceans.reverse();
trace(oceans); // output: Pacific,Indian,Atlantic,Arctic

var poets: Array = ["Blake", "cummings", "Angelou", "Dante"];
poets.sort(); // default sort
trace(poets); // output: Angelou,Blake,Dante,cummings

poets.sort( Array .CASEINSENSITIVE);
trace(poets); // output: Angelou,Blake,cummings,Dante

poets.sort( Array .DESCENDING);
trace(poets); // output: Dante,cummings,Blake,Angelou

poets.sort( Array .DESCENDING | Array .CASEINSENSITIVE); // use two options
trace(poets); // output: Dante,cummings,Blake,Angelou
----------------------------------------------------------------------------
var names: Array = new Array ("John Q. Smith", "Jane Doe", "Mike Jones");
function orderLastName(a, b):int {
var lastName:RegExp = /\b\S+$/;
var name1 = a.match(lastName);
var name2 = b.match(lastName);
if (name1 < name2) {
return -1;
} else if (name1 > name2) {
return 1;
} else {
return 0;
}
}
trace(names); // output: John Q. Smith,Jane Doe,Mike Jones
names.sort(orderLastName);
trace(names); // output: Jane Doe,Mike Jones,John Q. Smith
--------------------------------------------------------------------------

----------------------------------------------------------------------------
var poets: Array = new Array ();
poets.push({name:"Angelou", born:"1928"});
poets.push({name:"Blake", born:"1757"});
poets.push({name:"cummings", born:"1894"});
poets.push({name:"Dante", born:"1265"});
poets.push({name:"Wang", born:"701"});

poets.sortOn("born", Array .NUMERIC);
for (var i:int = 0; i < poets.length; ++i) {
trace(poets[i].name, poets[i].born);
}
/* output:
Wang 701
Dante 1265
Blake 1757
cummings 1894
Angelou 1928
*/


var indices: Array ;
indices = poets.sortOn("born", Array .NUMERIC | Array .RETURNINDEXEDARRAY);
for (var i:int = 0; i < indices.length; ++i) {
var index:int = indices[i];
trace(poets[index].name, poets[index].born);
}
/* output:
Wang 701
Dante 1265
Blake 1757
cummings 1894
Angelou 1928
*/
---------------------------------------------------------------------

-----------------------------------------------------------------------
var array 1: Array = ["alpha", "beta"];
var array 2: Array = array 1.concat("gamma", "delta");
trace( array 2); // output: alpha,beta,gamma,delta

var array 3: Array = array 1.concat( array 2);
trace( array 3); // output: alpha,beta,alpha,beta,gamma,delta

var array 4: Array = array 3.slice(2,5);
trace( array 4); // output: alpha,beta,gamma

var rivers: Array = ["Nile", "Amazon", "Yangtze", "Mississippi"];
var riverCSV:String = rivers.toString();
trace(riverCSV); // output: Nile,Amazon,Yangtze,Mississippi
var riverPSV:String = rivers.join("+");
trace(riverPSV); // output: Nile+Amazon+Yangtze+Mississippi

var nested: Array = ["b","c","d"];
var letters: Array = ["a",nested,"e"];
var joined:String = letters.join("+");
trace(joined); // output: a+b,c,d+e
------------------------------------------------------------------

------------------------------------------------------------------

public dynamic class TypedArray extends Array {
private const dataType:Class;

public function TypedArray(...args) {
}

AS3 override function concat(...args): Array {
}

AS3 override function push(...args):uint {
}

AS3 override function splice(...args) {
}

AS3 override function unshift(...args):uint {
}
}

------------------------------------------------------------------

public dynamic class Array {
public function Array (...args) {
var n:uint = args.length
if (n == 1 && (args[0] is Number))
{
var dlen:Number = args[0];
var ulen:uint = dlen
if (ulen != dlen)
throw new RangeError(" Array index is not a 32-bit unsigned integer ("+dlen+")")
length = ulen;
}
else
{
length = n;
for (var i:int=0; i < n; i++) {
this[i] = args[i]
}
}
}
}
-------------------------------------------------------------------------------------------------------
public dynamic class TypedArray extends Array {
private var dataType:Class;
public function TypedArray(typeParam:Class, ...args) {
dataType = typeParam;
var n:uint = args.length
if (n == 1 && (args[0] is Number))
{
var dlen:Number = args[0];
var ulen:uint = dlen
if (ulen != dlen)
throw new RangeError(" Array index is not a 32-bit unsigned integer ("+dlen+")")
length = ulen;
}
else
{
for (var i:int=0; i < n; i++) {
// type check done in push()
this.push(args[i])
}
length = this.length;
}
}
}

-----------------------------------------------------------------------------------------------------
AS3 override function push(...args):uint {
for (var i:* in args) {
if (!(args[i] is dataType)) {
args.splice(i,1);
}
}
return (super.push.apply(this, args));
}
-----------------------------------------------------------------------------------------------------
AS3 override function concat(...args): Array {
var passArgs:TypedArray = new TypedArray(dataType);
for (var i:* in args) {
// type check done in push()
passArgs.push(args[i]);
}
return (super.concat.apply(this, passArgs));
}
-----------------------------------------------------------------------------------------------------
AS3 override function splice(...args):* {
if (args.length > 2) {
for (var i:int=2; i< args.length; i++) {
if (!(args[i] is dataType)) {
args.splice(i,1);
}
}
}
return (super.splice.apply(this, args));
}
-------------------------------------------------------------------------
AS3 override function unshift(...args):uint {
for (var i:* in args) {
if (!(args[i] is dataType)) {
args.splice(i,1);
}
}
return (super.unshift.apply(this, args));
}
}

分享到:
评论

相关推荐

    flex_array.rar_flex

    1. 初始化:创建一个空的flex_array实例,或者指定一个初始大小。 2. 扩展:当数组满时,能够自动增加其容量,通常通过分配更大的内存块并复制现有元素来实现。 3. 缩小:如果数组中有很多未使用的空间,可能会有一...

    flex array应用实例源码

    在这个“flex array应用实例源码”中,我们很可能会看到如何使用这种数据结构来创建和操作动态数组。 首先,让我们理解`flex array`的基本概念。与传统的C++数组不同,`flex array`不是在声明时就需要指定固定大小...

    Flex基础教程实例源码

    4. **实例代码**: 压缩包中的“实例代码”可能包含了以上概念的具体实现,比如Array操作的示例、数据绑定的实时更新例子,以及事件监听和处理的代码片段。通过这些实例,初学者可以更直观地理解Flex编程的基本原理和...

    Flex基础编程实例

    在Flex中,有固定大小数组(Array)和动态数组(Vector)两种。数组的元素可以是任何类型,而Vector则需要指定元素类型,提供更好的类型检查和性能。类型转换是将变量从一种类型转换为另一种类型的过程,如Number到...

    Flex中Array的IndexOf 的作用示例介绍

    在Adobe Flex开发环境中,Array对象是一个用于存储元素集合的数据结构,其中包含了多种操作数组的方法。IndexOf是Array类提供的一个方法,它用于查找数组中某个元素的索引位置。其工作原理是从数组的开头向后查找,...

    flex android开发学习好实例

    在本文中,我们将深入探讨如何使用Adobe Flex进行Android应用程序开发,并通过一个具体的“list”控件实例来学习Flex在Android平台上的应用。Flex是一种强大的开放源代码框架,它基于ActionScript编程语言,用于构建...

    flex Repeater标签使用教程

    在这个例子中,假设`items`是一个包含多个对象的数组,每个对象都有一个名为`name`的属性。 **3. 在自定义MXML组件中使用Repeater组件** 你也可以在自定义的MXML组件中使用`Repeater`。这使得组件更加灵活且易于...

    Flex + LCDS + J2EE 传值交互实例

    本实例将深入探讨如何在这些技术之间有效地传递不同数据类型,包括字符串(String)、对象(Object)和数组(Array)。首先,让我们逐一了解这三个组件: 1. Flex:Flex是一种基于ActionScript和MXML的开源框架,...

    flex中使用json

    本篇将详细介绍在Flex中如何使用JSON,包括JSON的基本概念、解析与序列化的过程,并结合实际例子进行深入探讨。 一、JSON基础 JSON是一种基于文本的格式,它模仿了JavaScript对象的语法。一个JSON数据通常由键值对...

    Flex动态生成checkbox组

    在这个例子中,我们首先创建了一个数据源数组,然后为每个数组元素创建一个Checkbox。我们还添加了一个事件监听器,以便在用户更改Checkbox状态时可以做出响应。 压缩包中的`CheckBoxItem.as`可能是一个自定义的...

    flex基本语法总结

    15. 数组操作:`Array`类提供了多种操作,如`push`、`unshift`、`splice`、`pop`和`shift`,用于添加、删除或移动数组元素。 以上内容涵盖了Flex ActionScript编程中的基础语法,包括变量、函数、循环、输出、对象...

    Flex学习笔记-基本语法

    数组在AS3中是`Array`类型,允许存储不同类型的数据,并且可以是稀疏的,即数组中的某个位置可以不存储任何值。使用`typeof`检查变量类型,`is`和`as`关键字则用于类型检查,`is`返回布尔值,`as`则会尝试类型转换,...

    AS3和Flex一百条常用的知识

    这意味着即使两个数组包含相同的元素,如果它们是不同的实例,比较结果也将是 false。 ```as3 var arrayOne:Array = new Array("a", "b"); var arrayTwo:Array = new Array("a", "b"); trace(arrayOne == arrayTwo);...

    flex题目大全

    - **答案**:在AS3中,数组(Array)可以存储不同类型的数据。例如,一个数组可以同时包含整数、字符串或对象等不同类型的元素。 - **示例代码**: ```as3 var myArray:Array = new Array(); myArray.push(1); //...

    flex读取excel(含中文字符)的解决

    本文将探讨如何在Adobe Flex中读取包含中文字符的Excel文件,主要涉及使用AS3XLS库来解决这个问题。 首先,AS3XLS是一个ActionScript 3的开源库,专门用于处理Microsoft Excel文件。它允许Flex应用程序创建、读取和...

    Flex_CookBook_读书笔记(精品)

    Flex CookBook 读书笔记主要涵盖了Flex开发中的各种关键概念和技术,包括数组和对象的定义、重写父类方法、调用类的方法、自定义事件、参数类型定义、类型判断、接口实现、样式变更、SwfLoader的使用以及数据源管理...

    Flex 2 中的元数据标签

    在这个例子中,我们使用`[DocComment]`元数据标签来添加关于类的文档信息,并使用`[Access]`元数据标签来指定方法的访问级别。这种做法不仅有助于代码的自我解释,还能让其他开发者更容易理解代码的功能和用途。 ##...

    使用FLEX和Actionscript开发FLASH 游戏10-2

    在使用FLEX和Actionscript开发FLASH游戏时,平铺式背景渲染是一种常见的技术,用于创建无限滚动或大型的游戏环境。这种技术的关键在于有效地管理和更新游戏中的背景元素,使其看起来像是连续延伸的。以下是对`...

    flex基础参考huxj

    本文档通过实例讲解了Flex中ActionScript 3.0的基础语法特性,包括变量定义、函数定义、控制台打印、循环结构、方法参数定义、with语句以及类的定义等内容。这些基本概念是学习Flex开发的基石,掌握了它们之后,可以...

    Flex Builder教程

    在这个例子中,`userRating`组合框的数据提供程序绑定了`subscriptions`ArrayCollection,当数组内容变化时,组合框的内容也会相应更新。 通过这样的方式,开发者可以利用Flex Builder和MXML高效地构建富互联网应用...

Global site tag (gtag.js) - Google Analytics