- 浏览: 103110 次
-
文章分类
- 全部博客 (56)
- AS3 基础 (13)
- AS3 Loading (3)
- AS3 XML (1)
- AS3 数组 (10)
- AS3 包 (0)
- AS3 声音 (0)
- AS3 时间日期 (0)
- AS3 鼠标 (1)
- AS3 组件 (0)
- AS3 滤镜 (2)
- AS3 特效 (0)
- AS3 与后台 (0)
- AS3 影片控制 (3)
- AS3 算法 (2)
- AS3 素材 (0)
- AS3 书籍 (0)
- AS3 实例 (0)
- AS3 其他 (2)
- 未处理 (1)
- Flex 组件 (0)
- Flex 与ASP.NET (0)
- delphi 基础 (11)
- SQL 基础 (3)
- Delphi combox (1)
- 电脑基础 (0)
- 吃穿住行 (0)
- delphi 数据库 (0)
- SQL 实例代码 (0)
- delphi 报错 (1)
- delphi 函数 (1)
- as3 个人作品 (0)
最新评论
-
hanker888:
眼睛都看花了,能否推荐一下目前用得最多的?
常用flash引擎和框架
ArrayCollection是flex中的数组集合类,它是很常用的,我们使用它时需要注意几个地方
1。事件监听, ArrayCollection可以为它注册一个集合改变的监听事件(CollectionEvent.COLLECTION_CHANGE),就是一旦ArrayCollection数组改变就会触发Event,不是所有情况的改变都会触发改变事件,如果集合当中的对象属性没有被绑定,那么你改变它的对象值也是不会触发事件的,在这种情况下你也许可能需要去将对象的属性进行绑定或者通过itemUpdated方法去管理对象值改变,除非集合的长度改变了,事件才会被触发
2。对象删除, ArrayCollection的对象删除方法removeAll(),有这样一种情况,当你在过滤集合数据的时候,它并不会删除所有数据,而是删除全部过滤的数据,不符合过滤条件的数据就没被删除,依然还在source中
3。过滤函数, ArrayCollection有个filterFunction过滤函数,就是可能集合中你只需要显示其中某几个对象,你将会需要根据对象条件筛选对象,那么你可能会用过滤函数,过滤函数会将不符合条件的对象过滤出来,但是ArrayCollection有个source属性是不会变的,它是个数组,所有源数据全在里面,尽管你去过滤,所有对象都会一直存在其中
4。排序, ArrayCollection还有一个sort属性是用来排序的,你可以为其指定排序字段
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);
}
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);
}
---------------------------------------------------------------------
-----------------------------------------------------------------------
var array1:Array = ["alpha", "beta"];
var array2:Array = array1.concat("gamma", "delta");
trace(array2); // output: alpha,beta,gamma,delta
var array3:Array = array1.concat(array2);
trace(array3); // output: alpha,beta,alpha,beta,gamma,delta
var array4:Array = array3.slice(2,5);
trace(array4); // 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));
}
发表评论
-
在AS3中,如何实现数组及对象的深拷贝?
2011-12-12 17:30 789大概谈了以下4个简单的问题,如果读者对它们的答案都了 ... -
合并多个数组
2011-11-30 19:55 5597合并多个数组,可合并一维数组和二维数组,哈哈.比较简单,自己先 ... -
AS3数组学习
2011-11-28 00:19 1075indexOf lastIndexOf 返回 ... -
as3 中判断数组中最大值
2011-11-27 22:55 1995var my_arr:Array=[12,50,80,321, ... -
AS3数组复制
2011-11-24 19:00 1084在actionscrip3.0中是没有提供内置的数组克隆的方法 ... -
array,arraylist,arraycollection
2011-11-24 18:37 834private var dpFlat:ArrayColl ... -
as3中length函数
2011-12-05 21:43 809取xml中元素长度时要用length() 注意哦是 ... -
AS3 数组
2011-11-23 20:22 1428//创建空数组 var arr:Arra ... -
AS3中JSON的基本应用实例
2011-11-15 19:24 749最近发现有不少通过“AS3 json”关键词搜索过来的朋友 ...
相关推荐
另一方面,如果从服务器接收XML数据,也可以通过反向操作将XML转换为ArrayCollection,以便在Flex或Flash应用中使用。 在实际项目中,你可能还需要考虑更多细节,如XML的命名空间管理、属性的添加以及错误处理等。...
在本文中,我们将深入探讨如何使用Adobe Flex进行Android应用程序开发,并通过一个具体的“list”控件实例来学习Flex在Android平台上的应用。Flex是一种强大的开放源代码框架,它基于ActionScript编程语言,用于构建...
三、DataGrid的实例应用 在“FLEX datagrid应用实例”中,我们可以找到以下几种常见应用: 1. 基本展示:展示简单的数据列表,例如用户信息,每个数据项包含姓名、年龄和邮箱等字段。 2. 数据排序:用户可以通过点击...
Flex是一种基于Adobe Flash Player或Adobe AIR运行时的开源框架,用于构建富互联网应用程序(RIA)。...通过学习和实践“flex操作数据的实例”,你可以更好地理解和掌握这些技术,提升在富互联网应用开发中的能力。
在Flex编程中,ArrayCollection是一种常用的集合类,它继承自Array类并添加了对数据绑定的支持。然而,尽管...通过对这些问题的深入理解和解决,可以更好地掌握Flex中的数据绑定和ArrayCollection的使用。
总结,Flex4的TabBar组件为开发者提供了强大的选项卡式界面设计工具,结合“Sample-Flex4-TabBar”示例,我们可以深入了解其工作原理和使用技巧,进一步提升Flex应用的用户体验。在实际开发中,应根据项目需求,充分...
Flex是一种基于ActionScript和Flash Player或Adobe AIR运行时的开源框架,主要用于构建富互联网应用程序(RIA)。在本实例中,“flex实现数据表格”指的是使用Flex技术来创建一个数据展示组件,即Datagrid,用于显示...
Flex 是一种用于构建富互联网应用程序(RIA)的框架,它主要基于Adobe的ActionScript编程语言和MXML标记语言。在本教程中,我们将深入探讨Flex的基础知识,包括设计视图和源视图的使用,以及如何创建动态效果、处理...
Flex、LCDS(LiveCycle Data Services)和J2EE之间的通信是构建富互联网应用程序(RIA)的关键技术之一。本实例将深入探讨如何在这些技术之间有效地传递不同数据类型,包括字符串(String)、对象(Object)和数组...
- 循环读取:使用循环遍历CSV文件,每次读取一行,将数据存储到适当的数据结构中,如Array或ArrayCollection。 - 处理数据:根据业务需求,对读取的数据进行处理,如计算、转换或显示在UI上。 - 关闭流:在读取...
- 数据集(ArrayCollection):在Flex中,通常使用ArrayCollection作为数据源,它是Array的子类,支持数据绑定和事件处理。 - 分页组件:Flex提供了一些内置的分页组件,如DataGrid和List,它们通常带有内置的分页...
ArrayCollection是Flex框架中的一个类,它是Array的包装器,提供了数据绑定和事件处理功能。在这个主题中,我们可能会探讨如何对ArrayCollection中的元素进行排序。 在Flex或ActionScript开发中,ArrayCollection是...
其中`id`属性定义了`Repeater`组件的实例名称,而`dataProvider`属性则指定了一个实现了`ICollectionView`接口、`IList`接口或`Array`类的对象,通常是`ArrayCollection`对象。 **3. 必须指定数据源** 如果未指定`...
1. **Flex**:一种用于构建桌面应用和Web应用的开源框架,支持多种平台。 2. **JSON**:一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 3. **Java**:一种广泛使用的面向对象编程语言,...
Flex控件的数据源`dataProvider`常使用Collection对象,如ArrayCollection和XMLListCollection,它们能够响应数据的变化并更新界面。数据源的属性可以预先定义,以便更方便地绑定和展示数据。对于JSON数据,其键可以...
根据给定文件的信息,我们可以总结出一系列与Flex和ActionScript 3(AS3)相关的知识点。下面的内容将针对每一个问题进行详细的解答。 ### Flex及AS3基础知识 #### 1. AS3语言中,Array里面是不是可以放不同类型?...
首先创建一个`Sort`对象,并指定排序字段(如价格`price`),然后将该排序规则应用到数据格所绑定的`ArrayCollection`上,并刷新数据格以显示排序后的结果。 ```actionscript private function executeSort():void...
1.该图表的数据源为ArrayCollection类型的arrayC 2.每增加一条线,其实就是增加一个数据源中的ArrayCollection每个对象的一个属性,且属性名不能重复 3.修改ArrayCollection后,同时修改LineChart的series
总结起来,Flex 4中的`DataGrid`通过结合`DateFormatter`和自定义的`labelFunction`可以方便地实现日期格式的转换,使数据显示更加人性化。理解并熟练运用这些技巧,可以提升用户体验,增强应用程序的易用性。
### Flex技术面试知识点详解 #### 一、冒泡排序算法 **题目描述**: 写出一个升序排序的冒泡算法,将以下数组的内容【2,4,1,5,3】由大到小排列。 **解答**: 冒泡排序是一种简单的排序算法,它重复地遍历待...