`

Flex 学习曲线图

    博客分类:
  • Flex
阅读更多

 Flex 的基础架构

关于 flex 基本上常被问到的不外乎就是“如何可以学好它?”,要了解这个问题的答案基本上只要看懂下面这个图就OK了。

  Actionscript 该学的重点

从最底层看起,最下面的 actionscript 3是一切的基础,它是 flash/flex 编程使用的唯一程式语言,因此任何人想学好 flex 第一件事绝对是先摸熟 actionscript 这个语言,包含:

   1. 它的基本语法与结构(array, hash, loop, if else…)
   2. DisplayList (DisplayObject, DisplayObjectContainer)与 Event system(bubbling, propagating…)
   3. Sound, Video, NetConnection 与 Graphics class

掌握 as3 的精华后,接下来就可以进入 flex framework。

 

  Flex framework 的重点

基本上 flex framework 就是用 actionscript 写成的框架,因此也可以把它看成是 as3的最好示范,看着 framework source 学 actionscript 也是挺不错的,只是路会变很长。

Flex Framework 整个体系非常博大精深,通常一般人不太可能完整把它学完,只需要针对最常用到的部份熟悉就好,图中列出的那三块(component, managers, style/skin)就是我个人认为所有初学者最优先该学会的。

 

  Component 该学些什么

Component 是整个 flex framework 的基础,几乎80% 的元素都是由 UIComponent 继承而来,例如最根本的它本身就是一个 UIComponent,因此,熟悉 component 就成为学好 flex framework 最根本也最重要的基本功

Flex 内建了 二十几个 UI controls, 例如 Button, DataGrid, HBox等,以种类来分,这些 components 可以概分为三大类:

    * Controls: Button, DateChooser, Slider…
    * Containers: Box, DividedBox, Panel…
    * List: DataGrid, Tree, TileList…

初学者第一步至少该学会怎么用这些元件,了解每个元件的 properties, events, styles, effects…,知道怎么在手册里查它的 API 文件,以及何时该用何种元件。

进一步,则是学会怎么修改这些元件,例如继承一个 Button 下来加上不同的功能,或是写不同的 skin border 来改变它的外观。

再进一步,则是开始研究元件的生命周期,了解每个元件是何时初始化,元件内部有那些关键指令与它们个别的功能,然后可以试着建立自已的 custom component。

这一关看起来容易但实际上最困难,因为 flex 的 component framework 写的非常庞大,虽然乱中有序但要在混沌中看出隐藏的架构然后抓住重点整串提起,就非得有人带着指引正确的途径才比较可能完成。

 

  manager 是什么

图中最上方的第二块就是 manager。

flex 里有很多的 managers,负责做各种不同的工作(废话…),几个比较重要的包含:

    * SystemManager:
      它是每个 flex 程序的根源,最先被下载,也最早启动,由它进行一连串的 app boot流程
    * StyleManager:
      它负责整支app 的 css style 套用与 skin 生成,如果想玩动态 css 载换也靠它
    * DragManager:
      Flex 最大的卖点就是 drag and drop(拖放),这个 manager 就是背后的英雄,初学者至少要学会怎么处理 drag 行为的五个事件,以及如何在不同元件间做拖放;进阶的玩家则应该深入研究这支 manager 是怎么写成的,详细阅读它的 source 会得到意想不到的无穷乐趣(如果你读完却没有这种感觉,呃,那代表你该再多读几次,如果还是没有,那请私下联络我 :D )
    * ModuleManager:
      使用 Flex 开发大型应用程式时,往往会将程式切割成许多小的 module, 这个 manager 就是负责载入并管理所有的 module (包含它的 class partition),初心者或许用不到,但有志深入的玩家一定要很熟。
    * CursorManager:
      这个用到的时机不是很多,但偶尔要换一下 cursor 时还是会用到,初学者至少要知道怎么用指定的图案去换掉系统cursor。

 

  Style/Skin 的重点

CSS style 与 skinning 是 Flex 最大的卖点之一,也是开发过程中较为麻烦也最耗时的部份。

初学者应该要彻底了解如何使用 CSS style 来打点一支 flex app 的外观,换颜色、素材,使用外部 assets 修饰介面。

中阶玩家则应该了解 skinning 的系统,包含 programmatic skinning 与 graphical skin,它们俩的差别?使用时机?如何客制化(zrong注1)?

更高阶的玩家则应该熟悉整个 Styling system 的运作模式,外加如何动态载入 css 在 runtime 换掉整个介面。

简而言之,flex app 写的好不好,外行人其实看不太出来,但一支 app UI 美不美则是一翻两瞪眼,比较漂亮的那就先加十分

(当然,有一种情况是刻意用心去美化了介面结果弄巧成拙搞的怨声载道人人喊打,但那种比较不多见,也不是每家公司都会搞到这步田地,就先不讨论)

 

  学完基本功后下一步

在我的标准里,当一个 developer 对上图内每一块都有中等程度的了解后,就算是完成 flex 养成教育,可以迈向下一个阶段。

也就是开始熟悉 application 的制作手法,这包含

    * 了解至少一种以上的开发框架,例如 Cairngorm,老实说我对这个框架没什么好感(因为手法太复杂,只适合超复杂登月计画或火星探勘时使用),但它结构设计良好,又是业界公认的圣杯, 等于是专家们共通的语言,因此至少要先了解它在做什么,将来在专业场合才好沟通(俗话说 know the rules so you know what you are breaking, 就是指这情况)
    * 接着可以看看比较简单的手法,像 Riawave, Model-Glue:Flex, PureMVC…等,基本上这些框架设计方式都大同小异,每个都有不同的应用场合,可以挑一个喜欢的再自行修改。
    * 了解基本的概念,例如 Value Object, DAO, MVC 等,它们在大部份的程式框架里都会出现,早点学会日子比较轻松。
    * 接着就是开始实际 coding,写一个中小型规模的app,不论是单纯的 CRUD (zrong注2)程序,或是留言版、电话簿、进销存管理都可以,籍由多写来强化编程的概念,然后透过大量的 peer code review 来找出可改进的地方。

 

  结论

结论还是老话一句:要入门 flex 超级简单,只要不是白痴应该一小时就行,但要成为可独当一面的专业开发者,路就很长,如果没有走对方向很容易就迷失甚至最后放弃。

换句话说,要能成为职场上真正需要的 professional developer,并不如表面上想象的容易(其实我想每种技术领域跟产业都一样吧),这也是我过去半年来协助很多公司做 recruiting 后的感想。

zrong注1:按客人要求不同定义
zrong注2:CRUD是指在做计算处理时的增加、查询(重新得到数据)、更新和删除(create, retrieve, update, and delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能

 

原文:http://ria.richtechmedia.com/2007/08/09/flex-%e5%ad%b8%e7%bf%92%e8%b3%87%e6%ba%90%e6%9b%b4%e6%96%b0/

 

分享到:
评论
2 楼 topbox163 2012-05-07  
图片显示不了
1 楼 hugh52066 2011-08-19  
LZ牛B。

相关推荐

    flash/flex画曲线,绘图板

    "Flash/Flex画曲线,绘图板"这个主题涉及的是如何使用这些技术来创建一个允许用户自由绘制曲线的图形界面。下面将详细介绍这个知识点。 1. **Flex基础**: - Flex是Adobe提供的开源框架,主要用于构建RIA(Rich ...

    Flex 饼状、柱状、实时曲线图

    本篇将深入探讨Flex中的饼状图、柱状图以及实时曲线图的实现方法和相关知识点。 一、Flex饼状图 饼状图是一种用于表示部分与整体之间关系的图形。在Flex中,我们可以使用mx.charts.PieChart类来创建饼状图。每个...

    Flex做的贝塞尔曲线

    在IT行业中,Flex是一种基于ActionScript 3.0的...通过学习和研究提供的AsTest文件,开发者不仅可以了解到贝塞尔曲线的基本原理,还能掌握在Flex中动态绘制和控制曲线的方法,为创建更加生动、有趣的RIA应用打下基础。

    flex 画流程图 简单demo

    这个简单的Flex流程图Demo是一个很好的起点,适合初学者学习如何在Flex环境中创建图形化的用户界面,并理解Flex组件、事件处理和图形绘制的概念。通过研究源代码和实践,可以深入了解Flex编程并提升开发技能。

    flex绘图和遮罩

    通过实践和学习,你可以熟练掌握Flex的绘图和遮罩技术,从而在项目中创造出富有创意和互动性的图形界面。在提供的压缩包“绘图和遮罩”中,可能包含了示例代码和教程,通过研究这些资源,将有助于你更好地理解和应用...

    多款风格的Flex的Demo、柱状图、饼图、折线图等

    在Flex中,折线图可以设置点的样式、线条颜色、轴标签,以及添加平滑曲线等功能,以提升视觉效果和可读性。 这个压缩包中的Demo很可能是各个图表类型的实例代码,包括但不限于上述的柱状图、饼图和折线图。这些Demo...

    flex动态标绘作战图箭头曲线的源程序

    总的来说,这个Flex3项目提供了一个学习和研究动态图形绘制,特别是作战图箭头曲线绘制的实例。通过研究这个源代码,开发者可以深入了解如何在Flex环境中创建动态图形,以及如何利用ActionScript3的强大功能来实现...

    arcgis for flex绘制直线,曲线,军标等

    通过研究这个工程,开发者可以学习到如何将ArcGIS for Flex API与Flex的UI组件结合,创建出用户友好的GIS应用。 总结,ArcGIS for Flex为开发者提供了丰富的地图绘制功能,无论是简单的直线和曲线,还是复杂的军标...

    flex成功画一个点

    `Sprite`是一个可绘制的容器,可以包含其他显示对象,并且提供了绘制直线、曲线、填充等方法。而`Shape`则更简单,它是一个用于绘制基本几何形状的类。 要在Flex中画一个点,我们通常会创建一个`Sprite`实例,然后...

    arcgis_flex 1.2

    10. **文档和示例**:丰富的文档和示例代码库,帮助开发者快速理解和上手,缩短学习曲线。 通过arcgis_api_for_flex_1.2.zip这个压缩包,开发者可以获得完整的ArcGIS Flex 1.2开发环境,其中包括API库、文档、示例...

    flex画板简单版

    这里的“old”表示这是一个较旧的版本,可能适用于学习历史版本的Flex编程,或者在特定环境下运行不支持新版本的项目。 在深入学习Flex画板时,你可能需要了解以下知识点: - Flex的基础概念:包括MXML和...

    flex画图板实例 源码

    Flex画图板是一种基于Adobe Flex技术的交互式图形编辑工具,它...通过研究这个Flex画图板实例的源码,开发者不仅可以学习到Flex的基本编程技巧,还能掌握如何创建复杂的交互式图形应用程序,提升在RIA领域的专业技能。

    S2Flex2-1.1.0

    5. **易用性**:S2Flex2提供了一系列的API和示例代码,帮助开发者快速上手,缩短学习曲线。 在实际项目中,使用S2Flex2-1.1.0可以实现以下目标: - **提升用户体验**:通过Flex的动画和图形渲染能力,提供更流畅、...

    Flex 3D云标签

    学习和研究Flex 3D云标签的源代码可以帮助你深入理解3D图形编程、ActionScript 3.0语法以及如何利用Flex框架创建复杂的用户界面。你可以通过分析源代码来了解各个组件和方法的交互,从而提升你的Flex开发技能,甚至...

    Flex画板实现~

    Flex画板实现主要涉及到的是Adobe Flex技术,这是一种用于构建富互联网应用程序(RIA)的开源框架。...如果你希望进一步学习Flex画板的实现,建议下载源代码并进行研究,同时参考博客文章以获取更详细的解释和指导。

    Flex_FirstStep 中文

    Flex是Adobe公司开发的一种富互联网应用程序(Rich Internet Application, RIA)框架,它基于...同时,中文资料对于中文用户来说更易理解和学习,降低了学习曲线。记得在实践中不断探索和提高,才能真正掌握Flex开发。

    可以看看,觉得不错flex中文帮助

    Flex是Adobe公司开发的一种用于创建富互联网应用程序(RIA)的框架,它...对于初学者来说,这样的中文资源能够降低学习曲线,提高学习效果。而对于有一定经验的开发者,它可能是解决问题和深入理解Flex的宝贵参考资料。

    flex设计的流程图拖动连线右键功能实现源码

    3. **图形绘制**:在Flex中,我们可以使用Graphics类进行图形绘制,包括直线、曲线等,这在绘制流程图的连线时非常有用。通过监听鼠标事件,我们可以实现连线的拖动功能。 4. **事件监听**:实现拖动连线功能的关键...

Global site tag (gtag.js) - Google Analytics