`

【转】如何学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 的根源,最先被下载,也最早启动,由它进行一连串的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,它们两的差别? 使用时机? 如何客制化?

更高阶的玩家则应该熟悉整个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 app,或是留言版、电话簿、进销存管理都可以,籍由多写来强化编程的概念,然后透过大量的peer code review 来找出可改进的地方。

*结论

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

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

 

原地址:http://www.cnblogs.com/shinings/archive/2008/11/11/1331696.html

 

分享到:
评论

相关推荐

    flex 4 学习资料

    在tomcat中部署安装Flex Data Services (LiveCycle DS) [转]_baidu_百度空间 基于flex4技术从零开发flex博客系统 : 1 开发环境配置与hello world(1) - 豆豆网 flex+blazeDs与Ext+dwr比较_蓝色幻想_百度空间 基于...

    Flex4 3D旋转效果

    Flex3D旋转效果 Flex实现3d 3dRotation Flex学习3d教程 flex builder 如何做出3D效果

    flex4 最全的 学习文档

    非常全的flex 学习文档 目录 第 1 章 : 关于 Flash Builder 使用 Flash Builder 可以完成的工作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...

    Java+flex使用dom4j读写xml

    这个小例子是使用Java作为服务端、Flex做前台,对一个xml文件的读取和写入。 环境:MyEclipse6.0.1+Flex3插件版,jdk1.6,tomcat6.0,dom4j1.6.1,lcds.war, 使用技术:1.Java+flex,及其对象的转换。 2.Java方面...

    FLEX从入门到精通.pdf

    第Ⅰ部分 Flex概述  第1章 使用Flex的理由  1.1 Flex的含义  1.2 RIA的含义  1.3 受欢迎的Flex  1.3.1 揭秘Flash和Flex  1.3.2 用户喜爱Flex的十大理由  1.4 本章小结  第2章 Flex3生态系统  2.1...

    flex布局的使用方法.pdf

    本资源帮助最初步的学者来提供很好的学习flex属性的使用方法并介绍啦一些列的对齐方法和案例。

    Flex 切换页面时飞入飞出,六面体,旋转等效果源码

    这个是整理了Flex中编程常用的效果源码....并把所有的源码效果给实现了一下,有简单的效果实现功能调用,容易学习和运用...... 里面包含了至少有5*4中效果(根据设置的属性不同可以看出不同的效果)....... 我也是...

    用flex 编写的支持触摸屏Android程序

    这个是本人学习flex 移动开发,的一点心得,将此程序安装到Android系统后,只要触摸八卦就会旋转,根据触摸的速度,旋转的速度和时长不同 附件有发布的apk 和源码,大家可以学习

    flex单击图片拖动,双击图片旋转,双击单击同时用

    flex单击图片拖动,双击图片旋转,双击单击同时用,虽然不难,但对初学者很有帮助的,找到一个很好的例子来学习flex会事半功倍

    FLEX CAD.zip

    FLEX CAD 4.2 JUKI程序转换软件 转载的所有文件资料著作版权归版权所有者,转载目的在于在于培训学习JUKI贴片机相关知识,普及JUKI贴片机市场份额。并不代表赞同其观点和对其真实性负责。原作者认为其作品不宜供大家...

    flex自己用的一些东西

    没什么描述的,就是一些自己学的东西,公司不让带U盘,只好用这个来转了!

    {资料}《Flash Builder4快速入门》(airia)

    《Flash Builder 4 快速入门》除了适合想学习FLEX开发和正在学习FLEX开发的朋友,也广泛适用与FLASH、Actionscript开发者进行转型和深入学习。包括.NET、JAVA开发人员在内,这本书都将为你日后的含RIA开发工作奠定...

    Flex_4:开发RIA_应用程序.pdf

    Flex 4:开发RIA 应用程序 课程简介 掌握学习法简介 ................................................................................................................................................. 2 ...

    《Flash Builder 4 快速入门》内容简介全部案例源码包

    《Flash Builder 4 快速入门》除了适合想学习FLEX开发和正在学习FLEX开发的朋友,也广泛适用与FLASH、Actionscript开发者进行转型和深入学习。包括.NET、JAVA开发人员在内,这本书都将为你日后的含RIA开发工作奠定...

    chrono-flex:使用绝对节点坐标公式(ANCF)的梯度不足梁元素的并行(GPU)实现

    这是用于三维柔性多体动力学问题的通用模拟器。 此实现使用梯度不足的绝对节点坐标公式(ANCF)波束元素来建模细长波束。 这是两个节点元素,具有一个位置矢量和仅一个梯度矢量用作节点坐标。 因此,每个节点具有六...

    最新CSS3学习视频教程 33讲完整版 后盾网CSS3视频教程

    ├25 flex弹性盒模型 flex-direction flex-wrap.mp4 ├26 justify-content align-items align-content order.mp4 ├27 阿里矢量图标库的使用方法.mp4 ├28 淘宝网移动端首页开发实战1.mp4 └29 淘宝网移动端首页开发...

    [Flash.ActionScript.3.0动画教程

    2.4.2 使用Flex Builder 2.4.3 使用免费的命令行编译器 2.4.4 关于跟踪 2.4.5 缩放影片 2.5 程序动画 2.5.1 动画的执行过程 2.5.2 帧循环 2.5.3 影片事件 2.5.4 事件和事件处理 2.5.5 事件侦听器与处理函数 2.5.6 ...

    css入门笔记

    1.css的概述 1.问题 ... 2.css的语法规范 1.... 1.... 样式声明:用样式属性和值组成(属性:值;... 1.... 2.... 3.... 2.... 3.... 独立于任何网页位置处,声明一个样式文件(.css为后缀),在文件中声明样式,在使用的网页中引入.css文件。...

    Foundation Actionscript 3.0 Animation

    2.4.2使用FlexBuilder 2.4.3使用免费的命令行编译器 2.4.4关于跟踪 2.4.5缩放影片 2.5使用代码动画 2.5.1循环 2.5.2帧循环 2.5.3剪辑事件 2.5.4事件和事件处理器 2.5.5侦听器和处理器 2.5.6动画事件 2.6显示列表 2.7...

Global site tag (gtag.js) - Google Analytics