Chinaunix首页 | 论坛 | 博客
  • 博客访问: 194858
  • 博文数量: 76
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-12 16:58
文章分类

全部博文(76)

文章存档

2011年(3)

2010年(52)

2009年(21)

我的朋友

分类:

2009-12-14 09:06:14

Adobe Flex/AIR学习路线(Flex部分之控件篇)》文章我给大家介绍了对于学习Flex控件的一点经验。现在开始《Adobe Flex/AIR 学习路线》系列的第二篇文章。
本篇文章着重将要叙述的是在学习Flex的时候,如何可以学习它的数据读取、处理能力。

首先要了解的是以下一些概念: 
1、XML
     我就不在这里复述了,详细请看:(其实百度的一些功能还是比较不错的,例如百科、贴吧)

2、E4X
     详细概念请看:     简介点说,E4X会使我们更加容易的处理xml数据。

3、JSON
     还是需要看定义的话,请前往这里:4、数组
    我想只要是学过编程的朋友都应该知道数组的概念吧,如果不知道的话,请看这里: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
    flash.xml的详细内容请看:    同时还包含了两个在顶级包中的class:
    XML
    XMLList:    还有一个是关于处理XMLList集合的class:
    XMLListCollection,位置在mx.collections下面,具体请看:
        当掌握了这些内容后,大家可以可以很方便的对读入到Flex里面的XML进行处理了。

4、ArrayArrayCollection
    由于Flex本身一门编程语言,因此理所当然的具有处理数组的能力,因此大家必须要掌握ActionScript 3.0Array的一些概念。
    例如:
    数组的长度(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)比起来还是差的多的。

    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的具体用法,请大家自己查找。

okay,基本上《Adobe Flex/AIR学习路线(Flex部分之数据篇一)》已经完成了,但是这仅仅是Flex中最基本的一些数据处理方式,下一篇《Adobe Flex/AIR学习路线(Flex部分之数据篇二)》我向大家介绍一下Flex组件的数据处理方式:dataProvideritemRendererdata这三个属性,通过这两个属性,我们可以让一些Flex内置的组件本身就具有数据显示、处理能力。 
阅读(487) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~