本篇文章着重将要叙述的是在学习Flex的时候,如何可以学习它的数据读取、处理能力。
还是需要看定义的话,请前往这里:http://baike.baidu.com/view/136475.htm
我想只要是学过编程的朋友都应该知道数组的概念吧,如果不知道的话,请看这里:http://baike.baidu.com/view/209670.htm
掌握了URLLoader、URLRequest的用法有,就可以从外部读入任意内容的数据了,并且可以加以处理。例如以下的代码:
var loader: URLLoader = new URLLoader( new URLRequest( "resources/config.xml" ));
loader.addEventListener( Event.COMPLETE, handleCompleted );
由于Flex本身内置了E4X机制,这样它可以比其他的编程语言更加适合处理XML这样的数据。
因此就需要学习Flex是如何读取、控制XML的方式。
Flex SDK内置了一些处理XML的Class,而这些Class基本上都放置在flash.xml这个包下面。例如XMLDocument、XMLNode、XMLNodeType
flash.xml的详细内容请看:http://livedocs.adobe.com/flex/3_cn/langref/flash/xml/package-detail.html
同时还包含了两个在顶级包中的class:
XML:http://livedocs.adobe.com/flex/3_cn/langref/package.html#XML()
XMLList:http://livedocs.adobe.com/flex/3_cn/langref/package.html#XMLList()
还有一个是关于处理XMLList集合的class:
XMLListCollection,位置在mx.collections下面,具体请看:
http://livedocs.adobe.com/flex/3_cn/langref/mx/collections/XMLListCollection.html
当掌握了这些内容后,大家可以可以很方便的对读入到Flex里面的XML进行处理了。
由于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的数组的确具有一些其他语言所不具有的方式,但是ActionScript 3.0的数组与其他动态语言(Python、Ruby)比起来还是差的多的。
它在很多程度上可以代替ActionScript 3.0中令人不爽的数组概念。
详细的用法请看这里:http://livedocs.adobe.com/flex/3_cn/langref/mx/collections/ArrayCollection.html
虽然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这样的方式就可以把对应的值取出来。
由于现在很多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的具体用法,请大家自己查找。