- 浏览: 204514 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
sprite:
java -Xdebug -Xrunjdwp:transpor ...
izpack 调试 -
aosnowit:
这里有一套非常不错的 SparkSkin 主题皮肤,更新很频 ...
Flex Skin (Spark) -
sprite:
在windows 7下,需要用admin权限去运行cmd窗口, ...
izpack 调试 -
luhantu:
其实对于非常简单的背景色设置已经够用了……
Flex4 背景设置 -
clschen:
还有一个非主流的方式,直接设置opaqueBackground ...
Flex4 背景设置
我想大家一定都很熟悉Array了吧?我们几乎每天都在和Array 打交道,但是你是否几乎没有注意到Array提供给我们的一些有用的方法呢?
1.Array 的增删改查
1)在数组最后增加一个元素
var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false});
2)在数组最前面增加一个元素
var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false,salary:100}); employees.unshift({name:"Employee 2", manager:true,salary:1000}); employees.unshift({name:"Employee 3", manager:false,salary:200});
3)删除数组最后一个元素
employees.pop();
4)删除数组第一个元素
employees.shift();
5)在第二和第三之前插入一个元素
employees.splice(1,0,{name:"Employee 4", manager:false})
6)删除第三个元素
employees.splice(2,1)
2.Array的排序
1).反转Array
employees.reverse();
2)Array.sort()
默认情况下,Array.sort() 按以下方式进行排序:
排序区分大小写(Z 优先于 a)。
按升序排序(a 优先于 b)。
修改该数组以反映排序顺序;在排序后的数组中不按任何特定顺序连续放置具有相同排序字段的多个元素。
元素无论属于何种数据类型,都作为字符串进行排序,所以 100 在 99 之前,这是因为 "1" 的字符串值小于 "9" 的字符串值。
Array.NUMERIC 参数实际上没有将其他数据类型转换为 Number 数据类型,它只是允许排序算法识别数字。如果既有数字又有string,则会报错。
你可以用Array.sort(compareFunction, sortOptions) 改变排序行为。
protected function application1_creationCompleteHandler(event:FlexEvent):void { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false,salary:100}); employees.unshift({name:"Employee 2", manager:true,salary:1000}); employees.unshift({name:"Employee 3", manager:false,salary:200}); employees.sort(sortOnSalary); employees.forEach(traceEmployee); employees.sort(sortOnSalary,Array.DESCENDING); employees.forEach(traceEmployee); } private function sortOnSalary(a:Object, b:Object):Number { var aSalary:Number = Number(a.salary); var bSalary:Number = Number(b.salary); if(aSalary > bSalary) { return 1; } else if(aSalary < bSalary) { return -1; } else { //aPrice == bPrice return 0; } } private function traceEmployee(element:*, index:int, arr:Array):void { trace(element.name + " (" + element.manager + " " + element.salary + ")"); }
3.Array的过滤
filter 过滤函数对数组中的每一项执行测试函数,并构造一个新数组,其中的所有项都对指定的函数返回 true
。如果某项返回
false
,则新数组中将不包含此项。
employees = employees.filter(callback);
private function callback(item:*, index:int, array:Array):Boolean { if(item.name == "Employee 5") { return false; } return true; }
4.Array的建立
var myArr:Array = new Array("one", "two", "three"); 或者 var myArr:Array = new Array(3); 或者 var numbers:Array = new Array(1, 2, 3); var letters:Array = new Array("a", "b", "c"); var numbersAndLetters:Array = numbers.concat(letters); var lettersAndNumbers:Array = letters.concat(numbers);
5.Array的测试
every(callback:Function, thisObject:* = null):Boolean如果数组中的所有项对指定的函数都返回 true
,则为布尔值 true
;否则为
false
。
var arr1:Array = new Array(1, 2, 4); var res1:Boolean = arr1.every(isNumeric); trace("isNumeric:", res1); // true var arr2:Array = new Array(1, 2, "ham"); var res2:Boolean = arr2.every(isNumeric); trace("isNumeric:", res2); // false private function isNumeric(element:*, index:int, arr:Array):Boolean { return (element is Number); }
some(callback:Function, thisObject:* = null):如果数组中的任何一项对于指定的函数都返回 true
,则为布尔值 true
,否则为
false
。
var arr:Array = new Array(); arr[0] = "one"; arr[1] = "two"; arr[3] = "four"; var isUndef:Boolean = arr.some(isUndefined); if (isUndef) { trace("array contains undefined values: " + arr); } else { trace("array contains no undefined values."); } private function isUndefined(element:*, index:int, arr:Array):Boolean { return (element == undefined); }
6.Array对每一项的操作
function forEach(callback:Function, thisObject:* = null):void对数组中的每一项执行函数,仅仅是执行而已,不对数组进行修改.
employees.forEach(traceEmployee); private function traceEmployee(element:*, index:int, arr:Array):void { trace(element.name + " (" + element.manager + " " + element.salary + ")"); }
但是如果你在此函数中修改element的其他属性值,那么也会直接改变此数组相应的值.
private function traceEmployee(element:*, index:int, arr:Array):void { trace(element.name + " (" + element.manager + " " + element.salary + ")"); element.name = "kenny"; }
function map(callback:Function, thisObject:* = null):Array 对数组中的每一项执行函数并构造一个新数组,其中包含与原始数组中的每一项的函数结果相对应的项。
employees = employees.map(mapTestFunction);
private function mapTestFunction(element:*,index:int,arr:Array):String { return element.name + "kenny"; }
7.Array 的切片
function slice(startIndex:int = 0, endIndex:int = 16777215):Array 返回由原始数组中某一范围的元素构成的新数组,而不修改原始数组。返回的数组包括 startIndex
元素以及从其开始到
endIndex
元素(但不包括该元素)的所有元素。
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(1,3); trace(letters); // a,b,c,d,e,f trace(someLetters); // b,c
如果什么参数也没有传,那么就创建此数组的一个副本。
8.Array 与 String 相互转化
Array 转化为 String
function join(sep:*):String 将数组中的元素转换为字符串、在元素间插入指定的分隔符、连接这些元素然后返回结果字符串。嵌套数组总是以逗号 (,) 分隔,而不使用传递给
join()
方法的分隔符分隔。
var myArr:Array = new Array("one", "two", "three"); var myStr:String = myArr.join(" and "); trace(myArr); // one,two,three trace(myStr); // one and two and three
String 转化为 Array
function split(delimiter:*, limit:Number = 0x7fffffff):Array 将 String 对象拆分为一个子字符串数组,方法是在所有出现指定 delimiter
参数的位置进行拆分。limit 为放入数组中的最大项数。默认为允许的最大值。
var str:String = "abc"; var resultArray:Array = str.split();
发表评论
-
Flex 取得浏览器hostname
2015-01-03 19:02 937Flash可以被嵌入其他的服务器网页中,如果要flash取得 ... -
Flex4 背景设置
2014-12-02 14:34 1168Flex的spark组件可以用skin来设置组件的背景,但是 ... -
Flex Chart 中用dataFunction对数据进行处理
2014-11-24 16:27 1575在flex中用chart对数据展示时,有时候数据中有空值,但 ... -
Flex DataGrid 动态改变headerRender 属性&itemRender 改变单元格颜色
2014-11-24 15:34 1242很多时候会用到动态改变datagrid的headerRend ... -
Flex SDK 中没有 en_GB 语言包
2014-06-12 17:24 873在Flex国际化中,如果支持en_GB,发现SDK 中根本没 ... -
Flex 在chrome中debug连接不上
2014-05-29 10:47 1330在Chrome 中debug总是连接不上的解决方案 1. ... -
Flex 特效机制
2013-08-15 20:59 889Flex的动画效果由一个工厂类(Factory)和一 ... -
Flex 绑定机制 (ChangeWatcher & BindingUtils )
2013-08-13 12:24 2815Flex的绑定机制也是一个亮点,对于数据和显示分离提供很好 ... -
Flex 深复制 浅复制
2013-08-09 15:26 1539对于基本类型,无所谓深浅复制。 深浅复制只要是对于引用类型 ... -
Flex States 应用
2013-08-09 11:23 1448这几天做项目重构,发现一个蹊跷的问题,A类基础B类,本来不 ... -
Loader 与SWFLoader 区别
2013-07-31 14:14 1450在Flex中可以通过Loader ... -
Flex ApplicationDomain
2013-07-31 11:09 1008如果要说这个已经是一个非常长的篇幅,网上七零八落的介绍也非 ... -
Flex 截图
2013-07-26 13:44 3006Flex提供了两种方法截图,一个是BitmapData的dr ... -
继承父类并继承父类的控件
2013-07-25 15:40 2032在Flex当中,如果父类已经拥有了子元素,然后你再继承这个 ... -
Flex 带时间的DateField的
2013-07-19 17:32 4452需要做一个带时间的DateField控件。不做啰嗦,直接上 ... -
View Stack + TabBar 校验
2013-07-19 17:17 1259程序中用到view Stack + tabBar导航的导航的 ... -
Flex chart 改变图表元素的颜色
2013-06-08 16:08 4414Flex 有许许多多的chart组件,他们的父类都是Cha ... -
FlexUnit4
2013-09-25 13:30 984前些日子试用了FlexUnit4,发现真的非常的不错,非常 ... -
在flash中捕获所有的报错 (Catch All Exception in Flash)
2013-03-07 10:31 1903在Flash Player 10.1及以上版本中,adobe ... -
Flex3与Flex4 类结构图
2012-12-24 16:59 0Flex3 和 Flex4中的显示对象都是继承自UICompo ...
相关推荐
6. **性能考虑:** 在实现`flex array`时,需要考虑性能优化,例如,通过预留一些额外的空间来减少频繁的内存重分配,或者使用“惰性收缩”策略,只在真正需要时才缩小数组的大小。 通过对`AS_0600_Array`的源代码...
3. **ActionScript3 Classes**:AS3类库包含大量的内置类,如Date、Array、XML等,以及与Flex框架相关的类,如EventDispatcher、UIComponent、Application等。开发者可以通过这些类进行数据处理、事件监听、网络通信...
`JSON.parse()`方法是解析JSON字符串的关键,它接收一个JSON格式的字符串作为参数,返回一个ActionScript对象(可能是Array、Object或其他类型),可以直接在Flex应用中使用。例如: ```actionscript var json...
这些函数在创建动态效果和游戏逻辑中非常有用。 **定时器** 定时器(Timer)类是实现定时任务的关键。通过实例化Timer,设置间隔时间和重复次数,然后添加定时事件监听器,可以定期执行特定的代码。例如,创建一个...
在Flex中,XML对象提供了一种灵活的方式来创建、操作和解析XML文档。通过实例化XML类,我们可以加载XML数据并对其进行解析: ```actionscript var xml:XML = new XML("<root><item>Value</item></root>"); ``` 3. ...
4. **动态向量操作**:在ActionScript中,可以使用Array或Vector类来处理动态向量数据。Array是动态大小的,可以随时添加、删除或修改元素,而Vector提供类型安全和性能优化,特别适合处理大量数据。 5. **数据绑定...
无论 try 块是否抛出异常,finally 块中的代码都会被执行,这对于释放资源或执行清理操作非常有用。 #### 11. 参数传递 在函数定义中使用 “rest” 参数语法可以接收不定数量的参数。`arguments` 对象提供了对所有...
描述:“flex-web工程载入tomcat下xml文件(含源码)网上这方面的资料很少,自己总结的,希望对大家有用”—— 提示我们这是一项不常见但实用的技术,资料相对匮乏,作者已进行总结并分享了相关代码。 现在,让我们...
在Flex 1.5及之前版本中,实现这一功能较为复杂,需要通过Flash Player API中的`FileReference`类来进行操作。而到了Flex 2.0,这个类被集成到了Flex类库中,使得上传下载功能变得更加简便易用。 #### 技术背景与...
另一方面,如果从服务器接收XML数据,也可以通过反向操作将XML转换为ArrayCollection,以便在Flex或Flash应用中使用。 在实际项目中,你可能还需要考虑更多细节,如XML的命名空间管理、属性的添加以及错误处理等。...
本文旨在详细介绍如何在Flex环境中利用`FileReference`类实现文件的上传与下载操作。 #### 二、技术背景 Flex是一种强大的Web开发框架,能够帮助开发者构建高性能的富互联网应用(RIA)。Flex自2004年发布以来经历了...
在Flex开发中,有时我们需要从外部HTML页面向SWF文件传递参数,以便在Flex应用程序中使用这些参数。...这在实现动态交互和数据传递时非常有用,特别是在需要根据URL参数来初始化Flex应用的状态或者执行特定操作时。
1. **数据类型**:ActionScript 3.0 支持多种数据类型,包括数字(Number)、字符串(String)、布尔值(Boolean)等基本类型,也支持复杂的对象(Object)、数组(Array)等高级类型。 2. **变量声明**:在ActionScript 3.0中...
在Flex中,时间轴控制通常通过`Timeline`类实现,但`MediaPlayer`已经内置了这些功能,所以我们无需直接操作时间轴。进度条更新可以通过监听`MediaPlayer`的`playheadUpdate`事件来实现,更新进度条的值以反映当前的...
根据提供的信息,我们可以总结出以下Flex与ActionScript (AS) ...这些知识点不仅适用于新手,对于准备面试的人来说也非常有用。理解和掌握这些基础知识能够帮助开发者更好地使用 Flex 和 ActionScript 进行开发工作。
在这种场景下,`as3xlsUTF8`是一个非常有用的类库,它允许我们在ActionScript 3(AS3)环境中创建和操作Excel文件。本文将详细介绍`as3xlsUTF8`类库以及其相关的API,帮助开发者理解如何使用这个库来实现Excel的导出...
例如,Array类提供了丰富的操作方法,如push、pop、shift和unshift,使得数组的管理变得简单;Date类则允许开发者轻松地创建、操作和格式化日期对象。 其次,corelib.swc中还包含了一些核心的图形和显示对象,这是...
这个库的主要优点在于,它能够将Excel表格的数据转换为AS3可以处理的数据结构,如Array或ArrayCollection,以便在Flex应用程序中进行进一步的处理和显示。 AS3XLS的核心类是`XLS`,它是用来加载和解析Excel文件的...