[Flex]Adobe Flex/AIR学习路线(Flex部分之数据篇一)
详细内容请看:http://www.k-zone.cn/zblog/post/adobe-flex-air-traing-diagrams-data-1.html
以下是全文:
《Adobe Flex/AIR学习路线(Flex部分之控件篇)》文章我给大家介绍了对于学习Flex控件的一点经验。现在开始《Adobe Flex/AIR学习路线》系列的第二篇文章。
以下是全文:
《Adobe Flex/AIR学习路线(Flex部分之控件篇)》文章我给大家介绍了对于学习Flex控件的一点经验。现在开始《Adobe Flex/AIR学习路线》系列的第二篇文章。
本篇文章着重将要叙述的是在学习Flex的时候,如何可以学习它的数据读取、处理能力。
首先要了解的是以下一些概念:
1、XML
我就不在这里复述了,详细请看:http://baike.baidu.com/view/63.htm(其实百度的一些功能还是比较不错的,例如百科、贴吧)
2、E4X
简介点说,E4X会使我们更加容易的处理xml数据。
3、JSON
还是需要看定义的话,请前往这里:http://baike.baidu.com/view/136475.htm
4、数组
我想只要是学过编程的朋友都应该知道数组的概念吧,如果不知道的话,请看这里http://baike.baidu.com/view/209670.htm
5、哈希表
关于哈希表与数组直接区别,就不是本篇文章所描述的内容了,如果大有多这方面不清楚的可以查阅相关资料。
okay,了解了一些以上的内容后,让我们看一下Flex本身如何对外部数据进行处理的。也就是说,尽量掌握以下的一些知识点。
1、URLLoader、URLRequest的用法。
掌握了URLLoader、URLRequest的用法有,就可以从外部读入任意内容的数据了,并且可以加以处理。例如以下的代码:
var loader: URLLoader = new URLLoader( new URLRequest( "resources/config.xml" ));
loader.addEventListener( Event.COMPLETE, handleCompleted );
上述代码告诉我们,Flex读取外部xml的方式。将xml读取后,就可以对其进行处理了,关于处理的具体方式可以看下面。
2、Flex处理XML的机制。
由于Flex本身内置了E4X机制,这样它可以比其他的编程语言更加适合处理XML这样的数据。
因此就需要学习Flex是如何读取、控制XML的方式。
3、Flex内置一些与XML有关系的class
Flex SDK内置了一些处理XML的Class,而这些Class基本上都放置在flash.xml这个包下面。例如XMLDocument、XMLNode、XMLNodeType
同时还包含了两个在顶级包中的class:
还有一个是关于处理XMLList集合的class:
XMLListCollection,位置在mx.collections下面,具体请看http://livedocs.adobe.com/flex/3_cn/langref/mx/collections/XMLListCollection.html
当掌握了这些内容后,大家可以可以很方便的对读入到Flex里面的XML进行处理了。
4、Array、ArrayCollection
由于Flex本身一门编程语言,因此理所当然的具有处理数组的能力,因此大家必须要掌握ActionScript 3.0中 Array的一些概念。
例如:数组的长度(length)、数组查找(indexOf、lastIndexOf)、首尾增加新的元素(push、unshift)、首尾删除元素(pop、shift)、在数组中出插入/删除元素(splice)
截取数据(slice)、连接多个数组(concat)、数组排序功能(reverse、sort、sortOn)、操作数组元素(forEach、every、filter、map、some)等这些概念
我本人认为虽然ActionScript 3.0的数组的确具有一些其他语言所不具有的方式,但是ctionScript 3.0的数组与其他动态语言(Python、Ruby)比起来还是差的多的。
ArrayCollection这也是ActionScript 3.0给我们带来的一个更加高级的方式,ArrayCollection的含义也就是数组的集合。它在很多程度上可以代替ActionScript 3.0中令人不爽的数组概念。
5、哈希表
虽然ActionScript 3.0本身并没有给我们带来哈希表的功能,但是我们可以使用ActionScript 3.0另外一个强大的功能:Object class,我们可以通过控制Object来实现哈希表的功能。
例如以下的代码:
var obj : Object = new Object();
obj.x = 1;
obj.y = 2;
obj.z = 3;
如果想要取出obj.x的值,那么我们就可以使用obj[ x ]或者obj.x这样的方式就可以把对应的值取出来。
6、对JSON的处理
由于现在很多Open API方面的source都支持对JSON的输出,因此有的时候,还是需要了解一下在Flex里面如何处理JSON的。
而JSON相对于XML的好处是:1、size相对小一些。2、更容易被JavaScript处理。
但是ActionScript 3.0里面没有给我们直接处理JSON的能力,因此我们需要借用外部的力量来实现。
在《我经常使用的 Flex Tools 和 Resource》一文中,我想大家推荐了一个library:as3corelib。其中就有关于ActionScript 3.0处理JSON的class:JSONDecoder。
关于这个class的具体用法,请大家自己查找。