FLEX优缺点分析

合集下载

java程序员学习Flex和BlazeDS有什么好处

java程序员学习Flex和BlazeDS有什么好处

java程序员学习Flex和BlazeDS有什么好处程序员学习Flex和BlazeDS有什么好处呢?看了下面的内容你就得到答案了。

更多内容请关注!Flex软件开发工具包核心(SDK)是开源架构,用以创立以及维护RIAs,不同浏览器和具有同样的外观设计风格。

Flex是在Mozilla公共许可证下的。

经过编译的Flex应用程序在私有的Adobe Flash平台上运行。

对于连接Flex 和Java,BlazeDS是为远程和信息效劳的开源技术。

它作为servlet运行在Java应用程序效劳器,允许你在任何Java web应用程序标准中使用。

BlazeDS是从Lesser GNU Public License (LGPL)得到的许可。

除了BlazeDS的,Adobe公布了ActionScript信息格式说明(AMF),允许BlazeDS 和Java与Flex 客户端联系使用二进制格式。

Flex具有一个非常活泼的社区,有很多有奉献的主题。

Flex,是一个关于Adobe的社区新闻站点,差不多每天都有更新,Yahoo! 上的Flex使用小组有超过11,000名成员。

比方,Google 编码上的FlexLib工程奉献出大量的开源用户界面(UI)组成局部。

Swiz 和 Mate工程奉献出一个架构来帮助处理事件。

Gorilla Logic已经为自动化的UI测试奉献出Flex Monkey。

根据Adobe的Flex教父James Ward的说法,市场对Flex高级工程师仍然有很大的需求。

学习Flex能够让你掌握一门技术,在竞争中处于优势地位。

一般来说,开发企业级web应用软件是众所周知的困难。

Flex 和BlazeDS提供的不仅是更高级的工具,而且更容易扩展。

开发者生产力的增长允许市场上销售的更多更快。

Flex 和Flash创造了更完美的用户体验,提升了销量以及价格。

一个理想的例子是博德斯图书连锁店,它最近在介绍一种新的具有“Magic Shelf”的website。

Flex面试精华题

Flex面试精华题

1.as2与as3.的最主要区别是什么?答:首先,as2 和as3是完全不同的语言,几乎没有兼容性可言。

as2编译用的AVM1虚拟机,as3用的AVM2,速度快,提供了一些基础异常处理。

as3是纯的OOP,强类型语言。

as2不是。

具体的差别有太多太多。

2.flex的开发框架有哪些,它们有什么优缺点?答:最常见的当然是Cairngorm、Puremvc了,此外还有Mate,Swiz等等,据说被广泛应用的已经有10几款了。

Cairngorm作为Adobe官方出品,有着贵族血统的它比较全面,是这些框架中已知bug最少的,但是基于他的应用相对臃肿复杂一些,需要对每个可以被触发的事件写一个对应的Command,编码量巨大,并且单元测试很不容易,不适合敏捷开发。

Puremvc应该是现在用的最多的as框架了。

比较完善、并且与Cairngorm相比,更适合中小型应用的开发,它与Cairngorm一样,也是以MVC模式为中心,并以Façade作为中央存储器的单件类的形式进行开发的。

说下Mate,它是一个比较奇怪的框架,是基于标签的事件驱动型的。

也就是说你不能再随意的写as类的,在使用Mate的情况下,只能用MXML 来做这些事情。

Swiz是Mate的孪生兄弟,长的挺像,没具体用过,不大了解。

3.在flex开发中,很多代码都写在mxml文件里,为了做到mvc模式,你是怎么处理的。

我认为mxml并不影响mvc模式啊。

分两种情况来讨论,首先,是自己创建整个应用结构的时候,那我们可以手动将UI所在的mxml归为一类,然后由Mediator去操作或者说控制这些组件既可了,然后Mediator又统一交给Controller去操作。

如果采用其他框架来进行开发的话,那就更不用来考虑这个问题了,像Cairngorm、Puremvc之类的框架已经很好的为我们解决了这些问题。

只要按照它们的使用规范来进行开发,自然没有问题。

4.如果发生内存泄露,你是如何解决的?在profile观察中已经内存泄漏是没有很好的解决办法的,至少我不知道,我能做的只是尽量去避免这种情况的发生,比如说注意不要循环引用,特别是在使用Timer的时候要格外注意,不要忘记全局对象上的引用的清除,在创建控制器和模型的时候要注意一定要使用单件模式。

对于flex布局的使用心得

对于flex布局的使用心得

对于flex布局的使⽤⼼得弹性盒⼦flex:对于客户端的布局⾮常有⽤,不管是平均分配space-around这个属性还是两端对齐space-betwee在页⾯布局的时候都会有很好的表现。

对于部分内容区域中,具有很多⼤致内容相同的⼏个区块的布局都可以使⽤到它,将⽗级设置为display:flex;⽗级就会变成容器,⼦级就会变成项⽬,项⽬默认是在⼀⾏显⽰,如果项⽬的宽度总和⼤于⽗级的总和了,⼦级就会缩放在⼀⾏显⽰。

因此换⾏是需要⾃⼰设置的。

我平时划分的区块是⽐较细的,因此⽤到换⾏的情况是内容相似⽽且⽐较多的。

换⾏的书写⽅式为:flex-wrap:wrap 默认值为nowrap。

当换⾏过后交叉轴就会变成多根,在⼀根交叉轴的对齐⽅式使⽤的是align-items,当使⽤了换⾏过后对应的交叉轴对齐⽅式属性应当书写为align-content。

在使⽤中遇到⼀个难以解决的问题,想做⼀个骰⼦五的样式,但是中间那个区块没法下去,代码如下:html中代码如下:<div class="father"><div class="first"></div><div class="second"></div><div class="third"></div><div class="fourth"></div><div class="fifth"></div></div>css中代码如下:.father {height: 320px;width: 320px;margin: 0 auto;display: flex;box-sizing: border-box;border: solid 1px red;justify-content: space-between;flex-wrap: wrap;align-content: space-between;}每个盒⼦我给了⼀个背景颜⾊,因为代码都是重复的就不写了。

解析构建Flex应用的10大误区

解析构建Flex应用的10大误区

解析构建Flex应用的10大误区本文和大家重点讨论一下Flex应用的概念,Flex是一个强大易用的框架,但是今天让我们瞧瞧构建Flex应用时经常犯的错误,希望本文的介绍能让你有所收获。

构建Flex应用的10大误区在这篇新闻中,Adobe的James Ward与一起为你带来了Flex的另一种10大(Flex 最新的10大)。

Flex是一个开源的应用开发框架,用来构建运行在 web(使用 Flash Player)或者桌面上(使用Adobe AIR)的富Internet应用。

总之,Flex是一个强大易用的框架,但是今天让我们瞧瞧构建Flex应用时经常犯的错误。

对于Flex新手,请阅读InfoQ最近的Adobe Flex Basics以对该框架有一个快速的了解。

下面是易犯的错误列表:1. 使用RIA框架去构建Web1.0应用(新技术换汤不换药)。

从Web 1.0到RIA的过渡中最大的挑战之一来自思考方式的转变。

Flex给予开发者一个高级的组件库,使其可以完成很多以前不可能完成的任务。

但是很多时候,Flex的这种能力被忽略了,它仅仅被用来实现更加传统的Web 1.0应用。

构建Web 2.0应用不仅仅意味着页面的局部刷新和旋转的圆角图标。

例如,Flex开发者应使用矢量图向用户提供数据的可视化表示,以及对于富应用流的高级控制。

最近Stephan Janssen 与一起讨论了该议题:作为一个Java开发者,对于面向对象的ActionScript和UI标记语言的学习简直就是小菜一碟。

但是对于(Java)开发者来说真正的挑战在于我们不是设计师,并且这两个技术对于RIA来说是必不可少的。

2. 破坏标准的浏览器体验尽管Flex确实提供了一个优秀的平台以改善用户体验,但是保持用户习惯,如后退按钮、书签和自动完成也是相当重要的。

Flex 3包含了新的深层链接特性以支持后退按钮和书签。

你可以访问来了解更多。

那有很多组件能够实现自动完成。

Flex性能,以及文件大小

Flex性能,以及文件大小
a-a-5:大家可以去看下有关于Flex的几种传输方式的性能比较: /index.php/archives/2162
a-a-6:其实byteArray是个好东西.
性能上调整暂时就写这么多,想到其它的再补充一下.
b.下面是对于文件的大小调整
文件的大小调整暂时也就想到这些,想到其它的再加上吧.
b-4.传输时使用byteArray,进行传输的比较大的内容压缩,也能缩小一些.性能上也有优化.
b-5.自己写as脚本,因为as脚本写出来的组件编译后,和自带的编译之后所生成的大小是不同的,可以测试下,我测试过了是不同的.
b-6.RSL,我觉得大部分人都是用framework.swf这个自带的,生成之后就什么也不管了,我觉得这样做不算是很好的方lex性能优化,以及flex生成的的swf大小优化.
as3一出来,flex也跟着火一把,目前学习flex的人也越来越多了,但是国内flex的成品确实是很少.比起国外的是相差太多了.
观察了一下现在flex web方面的东西,有3个问题.
a.速度太慢.
b.生成的文件太大,其实加载的速度慢和这个有关系.
然后单独去使用,这样的话,加载的速度也很快.如果直接加载一个500多K的东西肯定是慢了,如果分开,10个每次加载50K,速度应该会加快.我是这样认为的.
b-7.降低容器的使用率,也就是说,不要把一个页面里放很多容器,太多了不会有好处的,占资源,占文件大小.
b-8.还有就是a-1,a-2里说的,都会有影响的.
a-10.setStyle 这个东西建议最好还是不要使用,因为很消耗资源的.如果不相信的话,自己可以写个例子试一下就知道了.
a-11.FlashType可以内嵌字体,这个东西也会影响性能,我觉得字体用一种就可以了

flex布局全解析

flex布局全解析

flex布局全解析很长一段时间, 我知道有flex这个布局方式, 但是始终没有去学它. 3点原因:1.感觉还比较新, 担心兼容性不好.2.普通的布局方式能满足我的绝大多数需求.3.好像蛮复杂的.最近由于开发需要, 学习了下WeUI的实现, 发现里面大量使用了flex布局, 于是决定学习一下.什么是flexFlexbox Layout, 官方名为CSS Flexible Box Layout Module, 意为"弹性布局", 是CSS3中引入的一种更加灵活高效的布局/对齐/排序方式(还有一种更适合大型布局的网格布局CSS Grid Layout Module). flex是flexible的缩写.任何一个容器都可以指定为flex布局。

.box {display: flex;}行内元素也可以使用flex布局。

.box {display: inline-flex;}flex的基本概念采用flex布局的元素被称为flex容器(flex container), 它的子元素即为flex元素(flex item).flex容器中包含两个相互垂直的轴, 即主轴(main axis)和副轴(cross axis).flex元素沿主轴从主轴起点(main start)到主轴终点(main end)依次排布.如果flex容器包含多行flex元素, 则flex行(flex lines)沿副轴从副轴起点(cross start)到副轴终点(cross end)依次排布.单个flex元素占据的主轴空间叫做主轴长度(main size), 占据的副轴空间叫做副轴长度(cross size).flex的兼容性Getting Dicey With Flexbox中提到:There's a popular myth floating around that flexbox isn't ready for prime time. Wrong! 93% of people are now running a browserthat supports flexbox.That's better than the support for the HTML5 <video>element.前一段时间同事做过video相关的开发, 踩到各种坑, 因此我知道video的支持不那么好, 特别是在Android上. 让我惊奇的是flex竟然比video的支持更好?从CanIUse的数据来看, flex的支持度是: 82.65% (支持) + 14.17% (部分支持) = 96.81%, 而video的支持度是: 92.48%. 浏览器对flex的支持好像并没有特别好...但是有微信的WeUI使用了flex布局, 我觉得在移动端flex应该还是支持度比较高的.所以, 如果你是做移动端开发的, 可以优先考虑flex.flex属性下面就开始介绍与flex布局相关的属性. 以作用对象分为两组, 第一组作用于flex容器, 第二组作用于flex元素.注意:以下属性值都可以有initial(该属性的默认值)和inherit(继承自父元素), 本处省略.用于flex容器的属性这类属性有6种, 分别为:属性含义flex-direction主轴方向flex-wrap换行样式flex-flow前两个的简写形式justify-content主轴对齐方式align-items单行的副轴对齐方式align-content多行的副轴对齐方式注意:∙flex容器的column-*属性会失效.∙flex容器无法拥有::first-line和::first-letter虚元素.flex-direction含义主轴方向可选值row | row-reverse | column | column-reverse默认值rowrow direction为ltr时从左向右→,rtl时从右向左←.row-reverse direction为ltr时从右向左←,rtl时从左向右→.column从上到下↓.column-reverse从下到上↑.注意:row和row-reverse受到了direction属性(默认值为ltr, 可改为rtl)的影响. flex-wrap含义换行样式可选值nowrap | wrap | wrap-reverse默认值nowrapnowrap不换行wrap换行. 行与行从上到下↓排布wrap-reverse换行. 行与行从下到上↑排布flex-flow含义flex-direction和flex-wrap的简写形式可选值flex-direction flex-wrap默认值row nowrapjustify-content含义主轴对齐方式可选值flex-start | flex-end | center | space-between | space-around默认值flex-startalign-items含义单行的副轴对齐方式可选值flex-start | flex-end | center | stretch | baseline默认值stretchalign-content含义多行的副轴对齐方式可选值stretch | flex-start | center | flex-end | space-between | space-around 默认值stretch注意:此属性只在flex容器中有多行flex元素时才有作用.用于flex元素的属性这类属性有6种, 分别为:属性含义order排列顺序align-self flex元素的副轴对齐方式. 对应于flex容器的align-items.flex-grow放大比例flex-shrink缩小比例flex-basis初始大小flex上面三个的简写形式注意: flex元素的float, clear和vertical-align会失效.含义排列顺序. 沿着主轴, flex元素按order的增序排列.可选值<integer>默认值0align-self含义flex元素的副轴对齐方式. 对应于flex容器的align-items.可选值auto | stretch | center | flex-start | flex-end | baseline默认值auto当flex元素有父元素时, 它的align-self: auto即为父元素的align-items属性; 否则(无父元素时), 相当于stretch. flex-grow含义放大比例可选值<number>(非负值)默认值0当有剩余空间时, flex元素会根据flex-grow按比例分配剩余空间.默认值0代表, 即使有剩余空间, 该flex元素也不放大.flex-shrink含义缩小比例可选值<number>(非负值)默认值1当flex容器空间不足时, flex元素会根据flex-shrink按比例缩小.flex-shrink为0则表示, 即使flex容器空间不足, 该flex元素也不缩小.含义初始大小可选值auto|<length>(非负值)默认值autoflex-basis定义了分配剩余空间之前flex元素的初始大小, 可为长度值(如20%, 5rem等)或auto等关键词.flex-basis: auto表示, 以flex元素的主轴长度为flex-basis. 若flex元素的主轴长度也是auto, 则以flex元素内容(即所有子元素)的大小为flex-basis.除了auto还有content, max-content, min-content和fit-content关键词, 但是现在浏览器对它们的支持太少, 可以忽略.flex含义flex-grow, flex-shrink和flex-basis的简写形式可选值none | [ <‘flex-grow’> <‘flex-shrink’>? || <‘flex-basis’> ]默认值0 1 auto(敲黑板) 同学们注意, 这里是重点!∙||用来分割两个或多个选项, 从中选取一个或多个, 不限次序.∙|用来分割两个或多个选项, 从中选取一个.∙[]只是用来分组的.∙?代表可选.举例来说, a | [ b || c ]包含的可能情况有a, b, c, b c, c b.现在回过头来再看none | [ <‘flex-grow’> <‘flex-shrink’>? || <‘flex-basis’> ]就清晰多了.注意, none是一个特殊值, 相当于0 0 auto.另外, 如果flex中不指定:∙flex-grow成员, 则flex-grow会被置为1.∙flex-shrink成员, 则flex-shrink会被置为1.∙flex-basis成员, 则flex-basis会被置为0.注意:flex的初始值是0 1 auto, 即由每个flex因子本身的默认值组成(比方说flex-grow的默认值就是0).但是, 如果利用flex设置了至少一个flex因子, 那么没被设置的那些flex因子的默认值(按grow, shrink, basis的顺序)分别是1 1 0.我来举几个栗子./* 特殊值none */flex: none; /* 相当于0 0 auto *//* 单值,没有单位的数字,是flex-grow */flex: 2; /* 相当于flex: 2 1 0 *//* 单值,有单位的,宽、高,是flex-basis */flex: 10em; /* 相当于flex: 1 1 10em */flex: 30px; /* 相当于flex: 1 1 30px */flex: auto; /* 相当于 flex: 1 1 auto */flex: content; /* 相当于 flex: 1 1 content *//* 两个值:flex-grow flex-basis */flex: 1 30px; /* 相当于 flex: 1 1 30px *//* 两个值:flex-grow flex-shrink */flex: 2 2; /* 相当于 flex: 2 2 0 *//* 三个值:flex-grow flex-shrink flex-basis */flex: 2 2 10%;W3C建议使用简写形式flex, 因为它可以方便地应对下面4种常见情况.flex: initial即flex: 0 1 auto. 以auto方式计算flex-basis, 不可放大, 可缩小.flex: auto即flex: 1 1 auto. 以auto方式计算flex-basis, 可放大, 可缩小.flex: none即flex: 0 0 auto. 以auto方式计算-basis, 不可放大, 不可缩小.flex: <positive-number>即<positive-number> 1 0. flex-basis为0, 以<positive-number>比例增大, 以1的比例缩小.flex元素大小的计算方法自此, 我们已经知道了flex-grow, flex-shrink和flex-basis的作用. 根据这三个值, 计算flex元素的大小只需三步:第一步:计算元素的flex-basis, 有两种情况: 1. 具体的长度值, 或, 2.auto(即flex元素的大小). (这里忽略了content等目前支持还不完善的关键词).第二步:计算剩余空间, 即剩余空间 = flex容器的内部空间 - flex元素flex-basis值的总和.第三步:按照flex因子(放大时为flex-grow; 缩小时为flex-shrink)分配剩余空间到每个元素. flex元素的最终大小 = flex-basis - flex-factor * 剩余空间.举个栗子.假设flex容器的内部空间为200px, flex元素的大小的总和是160px. 看起来, 还有200 - 160 = 40px的剩余空间, 应该放大flex元素, 是不是? 不一定! 要看它们的flex-basis总和.假设它们的flex-basis总和是300px, 那么剩余空间应该是300 - 200 = -100px. 此时剩余空间是负数, 应该以flex-shrink对每个flex元素在flex-basis的基础上进行缩小.下例中, 所有flex元素本身的大小为80px, 元素中为flex值.200px0 1 auto0 3 auto0 1 150px0 3 150px125px75px你可以看到, 第一行的flex元素因为设置了flex-basis:auto, 所以它们的flex-basis就相当于元素大小, 即80px, 即flex-basis总和为160px, 不足容器的200px空间, 此时应该放大元素. 但又由于元素的flex-grow为0, 所以每个元素分配到0 * 40 = 0px的剩余空间, 即不放大.第二行的flex元素设置了flex-basis:150px, 所以它们的flex-basis总和为300px, 超过了容器的200px空间, 故按照flex-shrink(比例为1:3)进行缩小. 由于剩余空间为-100px, 所以第一个元素应缩小25px变成125px, 第二个元素应缩小75px变成75px."绝对flex"和"相对flex"绝对flex:从0开始分配空间.第一行中flex-basis为0, 表示每个flex元素的初始大小都视为0. 此时, 剩余空间就是"flex容器的大小".相对flex:从flex元素大小开始分配空间.第二行中flex-basis为auto, 表示每个flex元素的初始大小都是它本身的大小. 此时, 剩余空间就是"flex容器的大小- flex元素大小的总和".结语呃... flex的东西还是挺多的, 特别是flex因子相关的部分, 得花点儿时间理解.但是, 我相信学flex是值得的, 谁用谁知道!。

我的flex学习经验

我的flex学习经验

我的Flex学习经验最近一直在做有关JSP开发的网站,重复的登陆验证页面,重复的语法以及重复的跳转页面,熟悉的不能再熟悉的struts构建流程。

做项目的期间,还自己学习了HIBERNATE,ajax,等等所以在写JSP代码的同时,也考虑到了JSP可以不可以和特效结合起来,于是在工作完成的时候,自己会去看一些flex的东西,很有好的界面,很炫的组件,真是被flex所深深吸引。

1. Flex结合tomcatFlex只是个运行库或者说是web application,用来处理mxml类型的文件,其运行库就是Flex.war,所以它可以部署到任何一个兼容的jsp服务器上:比如 Tomcat, weblogic、websphere、Jrun,Jboss等,而Coldfusion目前也是运行库或者说是web application,用来处理cfml类型的文件,其运行库就是cfusion.war,所谓standalone版本的coldfusion只是把 jrun和cfusion.war 一起打包安装而已,所以就没有Flex和Coldfusion结合之说了。

所以要想tomcat做flex的服务器,很简单的说安装完Flex Dada Services,目前名字叫Adobe_LiveCycle_Data_Services,我本人安装的版本是(Adobe_LiveCycle_Data_Services_ES_2.5.1)需要的话可以共享给大家,你也可以自己去下载,下载完不用去找序列号,因为我差了半天也没查到,默认可以有60天的试用期。

下一步需要做的就是把flex项目下的flex.war和samples.war拷贝到tomcat 下的webapp目录里,考完后,tomcat会自动部署文件,不需操作,这样输入项目路径 : http://localhost:8080/samples 就可以看到里面的flex程序了,就是这么简单。

30分钟彻底弄懂flex布局

30分钟彻底弄懂flex布局

目前在不考虑IE以及低端安卓机(4.3-)的兼容下,已经可以放心使用flex进行布局了。

什么是flex布局以及它的好处,这里就不再赘述。

在这篇文章里,想说说flex布局的属性语法及其细节。

那么网上也有不少flex布局的教程,为什么又要再写一篇?首先,flex布局的迷之属性们,如果一知半解,机械记忆的话,那不到半个月基本忘光光。

先感受一下这12个flex布局属性,是不是很“迷”人。

容器属性•flex-flow•flex-direction•flex-wrap•justify-content•align-items•align-content元素属性•order•flex-grow•flex-shrink•flex-basis•flex•align-self就连老外也都在twitter吐槽不好理解,可见还是有一定的学习成本。

而目前很多flex教程主要以列举属性为主,缺乏对比和理解性脉络。

因此,下面会通过我梳理的一个脉络去理解flex布局,包括不同属性的异同以及一些容易造成误解的细节点,彻底弄懂flex布局。

对于某个元素只要声明了display: flex;,那么这个元素就成为了弹性容器,具有flex弹性布局的特性。

1.每个弹性容器都有两根轴:主轴和交叉轴,两轴之间成90度关系。

注意:水平的不一定就是主轴。

2.每根轴都有起点和终点,这对于元素的对齐非常重要。

3.弹性容器中的所有子元素称为<弹性元素>,弹性元素永远沿主轴排列。

4.弹性元素也可以通过display:flex设置为另一个弹性容器,形成嵌套关系。

因此一个元素既可以是弹性容器也可以是弹性元素。

弹性容器的两根轴非常重要,所有属性都是作用于轴的。

下面从轴入手,将所有flex 布局属性串起来理解。

flex布局是一种一维布局模型,一次只能处理一个维度(一行或者一列)上的元素布局,作为对比的是二维布局CSS Grid Layout,可以同时处理行和列上的布局。

flex 笔记

flex 笔记

布局:
常用的容器:
Applicationcontrolbar:容器内部元素的默认的布局方式为横向布局。
属性:dock=false/true, 设置该容器是否作为页面的“横幅”。
设为true会宽度100%显示并且显示的浏览器
的最上面。
width/height:设置容器的高和宽
Flex能做什么?
Flex Vs 传统flash
基于actionscript脚本语言
flex增加了矢量画图,应用接口。
Flex builder 3 使用简介
导入,导出,设置字体样式,设置默认浏览器。
快捷键:
F1:帮助
ctrl+F11:运行
ctrl+shift+C注释一段代码
flex buider开发工具:
application标记: 相当于HTML页面中的body,一个页面只能有一个application标记,也可以没有。没有的话,这个页面不是一个可运行程序页面,是一个组件。
layout是整个页面的布局模式
absolute
horizontal: 横行布局
这四个值基于relativeTo指定的子组件,
可以确定要添加的子组件将会添加到何处。
比如relativeTo="{spacer1}" position="before"
将指定的组件添加到spacer1的前面。
2.RemoveChild为移除子组件。通过target属性指定要移除的子组件即可。
liveDragging="true"鼠标点中之后 动态反应
allowTrackClick="true" 允许自动前往被点击的滑动条

Flex弹性布局详解

Flex弹性布局详解

Flex弹性布局详解Flex弹性布局详解2009年,W3C提出了⼀种新的⽅案—-Flex布局,可以简便、完整、响应式地实现各种页⾯布局。

⽬前,它已经得到了所有浏览器的⽀持。

1.基本概念采⽤Flex布局的元素,称为Flex容器(flex container),简称”容器”。

它的所有⼦元素⾃动成为容器成员,称为Flex项⽬(flex item),简称”项⽬”。

2.容器的属性** 1):flex-direction **规定盒⼦容器主轴⽅向,可以是⽔平⽅向和垂直⽅向,另外侧轴⼀定是垂直于主轴⽅向的。

** 2):flex-wrap **规定flex容器主轴上放不下项⽬的时候,要不要进⾏换⾏,以及怎么换⾏。

**3):flex-flow **前⾯两个属性的集合,可以⼀并设置主轴和换⾏的属性。

**4):align-items **控制了项⽬在flex容器侧轴⽅向上的对齐⽅式。

**5):justify-content **控制了项⽬在flex容器主轴⽅向上的对齐⽅式。

**6):align-content **本属性定义了多根轴线的对齐⽅式。

如果项⽬只有⼀根轴线,该属性不起作⽤。

3.属性理解flex-direction排布⽅向属性理解:> flex-direction:row你左⼿拿着⾁串,将它横着摆放在⾃⼰的眼前,你发现:咦,这不就是flex容器的主轴为row 的⽅向吗?没错了这个样⼦就是我们⽇常书写⽅式下的主轴默认值:⽔平从左往右。

> flex-direction:row-reverse⾁串太⼤了,你左⼿保持这个姿势有点累,你换成了右⼿,你发现:咦,这不就是flex容器⽅向的⽔平从右往左吗?没错了,row-reverse就是和平时的书写⽅式反向的呈现。

> flex-direction:column-reverse诶,右⼿⼜累了,换到左⼿吧,这个时候发现⾁油要滴下来了,你赶忙把⽺⾁串竖⽴了起来,你发现:咦,这不就是flex容器主轴为column垂直从下到上的⽅向吗?没错了,主轴的⽅向这个时候就是从下往上,侧轴变成了⽔平垂直⽅向从左往右。

FLEX优缺点分析

FLEX优缺点分析

用了一年多Flex,感触多多。

偶尔有同行的朋友问我啥是Flex,说实话,一时半会儿我还真说不清楚。

尤其是对于一个从未接触过Flex的朋友,想要由浅入深地只用嘴巴不用电脑给他讲明白,这确实难为一个整天只跟机器打交道的程序员了。

后来我想了一个办法,我说你知道开心农场吧,那就是拿Flex做的。

这下子很多人有兴趣了,呵呵,如果你也有兴趣,请继续往下看。

失言未察之处,欢迎拍砖。

一般来说,一项技术的产生都是为了解决业界的重大难题而出现的。

那么说到Flex我们就不得不先说一下RIA。

RIA这个概念其实早就出现了,我最初是07年在《程序员》杂志上关于Ajax技术的介绍时看到的。

到了08年,伴随着网络视频的飞速发展,RIA应用已经搞得有声有色热火朝天了,其实翻译过来就是个富客户端(Rich Internet Application),相较于BS 的瘦客户端,也可以称之为胖客户端。

当然如果你已经被这些名词概念熏得焦头烂额,请连跳四段(小黑好心提示,本部分仅余四段。

)。

RIA简单的说,就是CS+BS的开发部署模式。

CS和BS大家都很熟悉,CS的全拼是Client/Server,它的优点在于借助局域网的信息安全和带宽优势,充分利用客户机器的运算能力从而降低服务器压力,缺点就是安装部署更新麻烦,比如老板让我跑到一千公里外的客户那安装一千台机器的客户端,过几天我回来了,老板说那边有几台机器运行有问题,你去维护一下~!过几个月,老板说你去把那一千台机器全部升级一遍,他们自己不会装。

呵呵,这些痛苦我当然不曾经历,我杜撰的。

那么在1998年,互联网风起云涌的时候,BS,Browser/Server,逢时而生。

BS充分利用互联网的优势,解决了CS安装部署更新的一大难题。

通过把业务逻辑处理放在服务器端,然后解析为HTML,利用HTTP协议传输到客户的浏览器上就万事大吉。

看起来很美,其实干过就知道也很痛苦。

哪儿痛呢,痛的当然是我们这些开发者。

flex高级用法

flex高级用法

flex高级用法【实用版】目录1.Flex 布局简介2.Flex 项目的属性3.Flex 项目的布局4.Flex 布局的优点5.Flex 布局的兼容性正文1.Flex 布局简介Flex 布局是一种用于现代 Web 开发的强大布局方式。

它可以让你轻松地创建响应式设计,并使页面在不同设备上自适应。

Flex 布局是 CSS3 模块中的一部分,已经成为现代前端开发的标准。

2.Flex 项目的属性在 Flex 布局中,一个元素可以成为 Flex 项目(Flex Item)。

Flex 项目有许多属性,可以控制其布局和样式。

以下是一些常用的 Flex 项目属性:- order:定义 Flex 项目在主轴(水平轴)上的顺序。

数值越小,顺序越靠前。

- flex-grow:定义 Flex 项目在有剩余空间时如何放大。

默认值为 0,即如果存在剩余空间,也不放大。

- flex-shrink:定义 Flex 项目在空间不足时如何缩小。

默认值为 1,即如果空间不足,会缩小。

- flex-basis:定义 Flex 项目在主轴方向上的基准空间。

默认值为auto,即项目本来的大小。

- flex:是 flex-grow、flex-shrink 和 flex-basis 的简写,默认值为 0 1 auto。

3.Flex 项目的布局Flex 项目的布局主要由容器(Flex Container)控制。

容器可以设置以下属性:- display:将元素的 display 属性设置为 flex,使其成为一个Flex 容器。

- flex-direction:定义主轴的方向。

默认值为水平方向(row)。

- flex-wrap:定义 Flex 项目是否换行。

默认值为 nowrap,即不换行。

- justify-content:定义 Flex 项目在主轴方向上的对齐方式。

- align-items:定义 Flex 项目在交叉轴方向上的对齐方式。

4.Flex 布局的优点Flex 布局具有以下优点:- 易于控制:Flex 布局提供了丰富的属性,可以精确控制元素的布局。

Flex培训

Flex培训
LOGO
Happy in coding
Flex 笔记
Helen
内容介绍
Flex as3 flash 运行机理
Flex 发展史 Flex 语法、as3、Air 语法介绍 Flex 初级入门
Flex应用场景优缺点和demo展示
Flex运行机理
AIR
Flash player
swf
swf
as
As3 sprite
技术/开发角度 企业角度
用户角度
Flex 优点
角度 序号
1 2 3
说明 具备了RIA时代富客户端的优点(C/S+B/S) 支持多种服务器语言(JAVA、.NET、PHP)及主流框架(Spring、Hibernate) 与Java结合后相当强大,能充分利用Java的资源背景 拥有丰富的组件和第三方组件,对企业级的数据汇总和业务流程展现力较强悍 借助开源的力量,拥有众多民间组织和牛人支持
Adobe公司对中国分部的支持不够(感觉宣讲和文档都做得不够)
搜索引擎对swf文件的支持不够(Adobe一直在努力) 与以往浏览习惯不同,比如右键被屏蔽,图片无法保存(可以改善)
Flex优点
Flex优点就是,缺 点太少了,几乎没 有缺点,哈哈。网 上有一个人总结的 比我好。可以看一 下
优点
Flex优点
动画给100分
Flex入门基础
现场操作
Flex应用场景
请选择我 • 现成的控件 • 不用考虑兼容问题 • 跨平台,跨浏览器 • 组件开发和系统开发可以独 立 • 貌似还有很多优点 • 反正就是快 请选择我
更要选择我 • 和windows桌面应用一样 的效果难带不吸引你么? • 想要特殊功能你会考虑JS? • 多媒体应用结合交互性强 用户体验高为做好系统打 下坚实的基础,这点也是 你选择的理由 • 为您提供更加广阔的解决 我想要无 方案提供可能 所不能? • 相信我,他无所不能。

如何择一个Flex框架(经典)

如何择一个Flex框架(经典)

择一个Flex框架•博客分类:•FLEX框架满天飞的今天,选择框架似乎是每一个开发人员必须的经历,不得不找到目前有哪些我们需要的框架,并进行横、纵向比较,做出取舍!对于MVC类型的框架,我们在采用传统web项目开发技术时,大多倾向于Struts2(webwork)和Spring MVC,而对于Flex的MVC框架,可以说是众说纷纭,选择不一。

与此同时,真正理解MVC框架的朋友,可能更愿意为Flex构造自己的MVC模式来保证项目的MVC清晰结构,原因在于现行框架的局限性以及Flex前后端通信的便利性吧!为了快捷而有全面了解一下现有的Flex MVC框架,转载了博文选择一个Flex框架!为便于阅读,其内容转载如下(并做了补充):==============================================================本文提供了当前最流行的Flex框架,你可以根据了解来选择最适合你的团队或者项目的需求的框架。

本文覆盖了Cairngorm、Mate、PureMVC以及Swiz 框架。

我特意选择了这些框架是因为它们已经被Flex show 播客提及并且或者已经被类似360|Flex 的会议所提出。

Cairngorm框架Cairngorm是最早最为成熟的Flex 框架。

它实际上是一个微架构——它提供了一系列已经被证明可以很好的互相协作的设计模式的集合。

Cairngorm采用累来自Java开发世界的笨重并且把焦点集中到了三个关键区域:处理用户行为,包装服务端交互与业务逻辑,并且管理客户端状态以及在用户界面(UI)上体现客户端状态。

在Cairngorm构建一个项目包含了拆散你的应用到若干个包中并且扩展Cairngorm的类。

如下是一个Cairngorm 项目主要包含的部分和类。

•ModelLocator ——作为数据存贮角色的单件——反映程序的状态。

单件类的性质保证了程序中所有的组件都访问相同的数据。

Flex入门简介

Flex入门简介

Fl ex入门简介1.RIARIA(Rich Internet Applications)富互联网应用,具有高度互动性、丰富用户体验以及功能强大的客户端。

1.1.特点RIA 具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。

RIA具有的Web应用程序的特点包括如:立即部署、跨平台、采用逐步下载来检索内容和数据以及可以充分利用被广泛采纳的互联网标准。

RIA具有通信的特点则包括实时互动的声音和图像。

客户机在RIA中的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、传送和检索数据、显示集成的用户界面和综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行1.2.部署RIA的好处1)RIA可以继续使用现有的应用程序模型(包括J2EE和.NET),因而无需大规模替换现有的Web应用程序。

通过Rich Client技术,可以轻松构建更为直观、易于使用、反应更迅速并且可以脱机使用的应用程序。

2)RIA可以帮助企业提供多元化的重要业务效益,包括提高销量、提高品牌忠诚度、延长网站逗留时间、较频繁的重复访问、减少带宽成本、减少支持求助以及增强客户关系等。

1.3.RIA的竞争技术1.3.1.Adobe公司的Flex作为率先推出RIA技术的公司,Adobe在推广Flex平台方面始终不遗余力.Flex具有如下优势●FlashPlayer(几乎无处不在, 98%以上)●庞大Flash社区和知识资源●领先其他技术4年时间●框架源代码开放●SDK免费(Software Development Kit,软件开发包)当然也具有不足之处⏹打印功能仍有较大改进空间⏹技术较新,开发人员相对java数量偏少.⏹RIA应用程序从浏览器插件启动,因此该程序运行于插件的实例当中.这意味着弹出式窗口无法出现在Flex应用程序所在的主窗口之外.1.3.2.微软公司的Silverlight微软并不以最早提出创新性技术而著称,他们更擅长在别人创造出市场空间后,通过投入巨资获取统治地位.这是一种新的Web 呈现技术的名称,创建该技术的目的是使其能够在各种平台上运行。

高职flex课程开设与研究——以湘西民族职业技术学院为例

高职flex课程开设与研究——以湘西民族职业技术学院为例

高职flex课程开设与研究——以湘西民族职业技术学院为例◆肖 晓 荆东星分析现在的flex优势、湘西职院计算机系开设的专业课程,结合实际情况得出,高职计算机专业开设flex有成熟的条件和现实的意义。

1 Flex技术Flex 技术是 Adobe 公司推出的一种基于 Flash 技术的 RIA解决方案,Flex使用基于MXML 语言来制作应用程序的界面,使用基于actionscript用来与用户和系统进行交互。

Flex运行的基本原理是:通过Flex编译器将MXML文件编译成SWF文件,FlashPlayer在各个浏览器上,进行无差异运行[1]。

2 Flex和传统网页设计的比较Flex开发的系统是一个独立于服务器的应用,与传统 Web 应用的最大区别在于,服务器已经成为客户端程序正常运行的数据服务,可以开发为桌面应用程序,并为客户端提供复杂的数据处理方式,包括异步的数据传输处理和脱机的数据缓存机制。

Flex 和html比较如下:Html缺点1.1 Html,界面单调,人机交互没有自动的动态效果;1.2 Html只有有少量的一些组件,组件与组件之间交互都是通过编写大量的javascript或者vb语言。

视频、声音媒体缺少相应的控件来操作,要控制视频、声音等媒体元素都需要通过在后台添加大量的代码来进行控制;1.3 如果页面之间交换的信息量大足够大,对于后台服务器来说就是负担,需要处理大量的数据,这样的话就会表现出页面反应慢,在客户端打开需要较长的时间等待,人机交互的效率降低。

Flex的优点1.1 对于web前端设计,flex有着丰富的界面,良好的人机交互环境。

有大量的组件支持,能够实现复杂的表单制作,操作简单,反应迅速,还可以实现拖拽、Web Services、排序以及复杂的图表处理等功能,而且控件内嵌的有动画效果和一些交互简单的界面等。

相对基于 HTML 的应用,在每个请求时都需要执行服务器端的模板,Flex 由于客户端只需要载入一次,它的整个的工作流程有很大的改善。

Flex 新一代富客户端技术浅析

Flex 新一代富客户端技术浅析

Flex 新一代富客户端技术浅析Posted on 2009-05-18 15:42 莫问奴归处阅读(3054) 评论(2) 编辑收藏所属分类: 学习笔记1.概述回顾网络应用开发领域,早期是C/S,后来逐渐过渡到B/S,再到以Ajax为核心的Web2.0,如今新一代的富客户端技术又重新归来,在这场新一轮的技术革新中,各大公司和开源社区都纷纷推出了自己的产品。

目前具有代表性技术有微软的Silverlight/WPF、Adobe的AIR/Flex和Sun的JavaFX,以及开源社区的Laszlo。

Flex及AIR 是Adobe公司推出的基于开源、免费、跨平台的新一代富客户端平台。

这种新型的富客户端能够提供和早期C/S技术一样出色的UI,但又和B/S一样不需要在用户的机器上进行任何部署,也不需要手动对应用程序进行版本更新。

Adobe的富客户端技术为AIR和Flex,其核心以ActionScript语言为基础,运用XML来描述界面。

Adobe的RIA为终端用户提供了两种解决方案:Desktop应用和Web应用。

对于Desktop应用,需要安装Adobe的AIR作为其运行平台(Runtime),这时Rich Client程序如同本地的程序一样运行,这种方式类似于Java应用程序,AIR相当于Java 运行环境(JRE);对于Web应用,Adobe的Flex程序运行于内嵌在浏览器中的Flash Player上,借助Flash Player的良好普及率,Adobe实现了其统一的、跨平台的承载平台,和传统的C/S相比,继承了其界面丰富、操作性强等优点,而又摒弃了其需要手动安装、配置、升级等缺点。

Adobe借助Flex/AIR在RIA领域的巨大成功、以及依托Flash Player的广泛的普及率来推广其新一代富客户端技术,使微软看到了下一代互联网和应用开发框架的美好前景,适时的推出了与Adobe Flash Player相类似而又相对抗的产品Silverlight/WPF,在微软的解决方案中,WPF是.NET Framework 3.0的组成部分之一,它是一套基于XML、.NET Framework、向量绘图的展示层开发框架,微软视其为下一代用户接口规范,将广泛被用于下一代的Windows平台的界面开发,这样微软也将逐渐淘汰以GDI 、GDI+、MFC等为代表的Win32 API。

flex布局(弹性布局)

flex布局(弹性布局)

flex布局(弹性布局)1. 传统布局与 flex 布局⽐较 传统布局兼容性好布局繁琐局限性,不能在移动端很好的布局 flex 弹性布局操作⽅便,布局极为简单,移动端应⽤很⼴泛PC端浏览器⽀持较差IE 11 或更低版本,不⽀持或仅部分⽀持2. flex 布局原理 flex 是 flexible Box 的缩写,意为“弹性布局”,⽤来为盒状模型提供最⼤的灵活性,任何⼀个容器都可以指定为flex 布局。

当为⽗盒⼦设为 flex 布局之后,⼦元素的 float,clear 和 vertical-align 属性将失效伸缩布局 = 弹性布局 = 伸缩盒布局 = 弹性盒布局 = flex布局 采⽤ Flex 布局的元素,称为 Flex 容器,简称为“容器”。

它的所有⼦元素⾃动成为容器成员,成为 Flex 项⽬,简称“项⽬”。

体验中 div 就是 flex ⽗容器体验中 span 就是⼦容器 flex 项⽬⼦容器可以横向排列,也可以纵向排列 总结 flex 布局原理:就是通过给⽗盒⼦添加 flex 属性,来控制⼦盒⼦的位置和排列⽅式。

3. flex 布局⽗项常见属性flex-direction:设置主轴⽅向justify-content:设置主轴上的⼦元素排列⽅式flex-wrap:设置⼦元素是否换⾏align-items:设置侧轴上的⼦元素排列⽅式(单⾏)align-content:设置侧轴上⼦元素的排列⽅式(多⾏)flex-flow:复合属性,相当于同时设置了 flex-direction 和 flex-wrap 1. flex-direction:设置主轴⽅向 在 flex 布局中,分为主轴和侧轴两个⽅向,同样叫法有⾏和列,x轴和 y 轴 默认主轴⽅向就是 x 轴⽅向,⽔平向右 默认侧轴⽅向就是 y 轴⽅向,⽔平向下 flex-direction 属性决定主轴的⽅向(即项⽬的排列⽅向) 注意:主轴和侧轴会变化的,就看 flex-direction 设置谁为主轴,剩下的就是侧轴,⽽我们的⼦元素是跟着主轴来排列的。

Flex技术简介

Flex技术简介
6.标准的架构
MXML是对XML的扩展,基于W3C DOM3的子 集规格来实现事件模型。可用CSS1(层叠样式表) 来实现样式。Flex3.0中使用ActionScript语言。 ActionScript是欧洲计算机制造商协会(ECMA)制 定的标准脚本语言,用以支持基于对象的开发。
Flex的技术特点
Adobe公司主要产品
Adobe Photoshop
1990年推出数字影像编辑和创作的行业标准,Photoshop数字影像系 列产品的领袖。
Adobe Premiere Pro
1991年推出数字图像和音频编辑软件,功能强大、图形逼真、支持 实时操作。
Adobe After Effects
1993年推出数字视频创作行业中不可缺少的动画和视觉效果工具。
Flex的技术特点
2.完善的开发环境
Flex是用来创建和发布企业级的、通过网络的富互联 网应用程序(RIA)的强大的应用程序开发方案。Flex提供 了现代的标准的语言和程序模型。支持公共设计模板,包 括集成开发环境(IDE)产品。Flex Build是开发Flex的利器, 由Eclipse团队开发,开发环境与Eclipse相似。
Flex4的十大变化
4.对View States的改进 Flex 2将状态(states)概念引入到了Flex框架中,这样
我们就可以通过简单的状态改变来管理视图组件的变化。 Flex 4改进了视图状态(view states)以简化其语法,这样我 们就能更轻松地使用他们了。新语言属性includeIn和 excludeFrom就是简化语法的一个例子,我们可以设定组件 的这两个属性值以响应状态变化
最早的RIA应用程序大多由Flash开发工具制作。RIA程 序的效果非常理想,且可运行于不同平台中,但Flash工具 的特点决定了它不适合开发大中型RIA程序。其一,Flash 工具是专业拥有制作动画的开发平台,适合于开发时间逻 辑较强的程序。其二,Flash工具倡导DIY精神,只提供最 基础的组件,所以几乎所有的任务都要自己完成。
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用了一年多Flex,感触多多。

偶尔有同行的朋友问我啥是Flex,说实话,一时半会儿我还真说不清楚。

尤其是对于一个从未接触过Flex的朋友,想要由浅入深地只用嘴巴不用电脑给他讲明白,这确实难为一个整天只跟机器打交道的程序员了。

后来我想了一个办法,我说你知道开心农场吧,那就是拿Flex做的。

这下子很多人有兴趣了,呵呵,如果你也有兴趣,请继续往下看。

失言未察之处,欢迎拍砖。

一般来说,一项技术的产生都是为了解决业界的重大难题而出现的。

那么说到Flex我们就不得不先说一下RIA。

RIA这个概念其实早就出现了,我最初是07年在《程序员》杂志上关于Ajax技术的介绍时看到的。

到了08年,伴随着网络视频的飞速发展,RIA应用已经搞得有声有色热火朝天了,其实翻译过来就是个富客户端(Rich Internet Application),相较于BS 的瘦客户端,也可以称之为胖客户端。

当然如果你已经被这些名词概念熏得焦头烂额,请连跳四段(小黑好心提示,本部分仅余四段。

)。

RIA简单的说,就是CS+BS的开发部署模式。

CS和BS大家都很熟悉,CS的全拼是Client/Server,它的优点在于借助局域网的信息安全和带宽优势,充分利用客户机器的运算能力从而降低服务器压力,缺点就是安装部署更新麻烦,比如老板让我跑到一千公里外的客户那安装一千台机器的客户端,过几天我回来了,老板说那边有几台机器运行有问题,你去维护一下~!过几个月,老板说你去把那一千台机器全部升级一遍,他们自己不会装。

呵呵,这些痛苦我当然不曾经历,我杜撰的。

那么在1998年,互联网风起云涌的时候,BS,Browser/Server,逢时而生。

BS充分利用互联网的优势,解决了CS安装部署更新的一大难题。

通过把业务逻辑处理放在服务器端,然后解析为HTML,利用HTTP协议传输到客户的浏览器上就万事大吉。

看起来很美,其实干过就知道也很痛苦。

哪儿痛呢,痛的当然是我们这些开发者。

安装部署更新倒是省事儿了,装个IE,给个网址就能让客户登录了。

但是,基于HTML+JavaScript的技术让人很崩溃。

JavaScript 我好久不用了,在以前毕业实习的时候,感觉开发和调试都不方便,而且还面临着不同浏览器不兼容的噩梦(据说现在上述问题随着Ajax的风行有所改善,我不太了解)。

另外,BS还有一些潜在的缺点。

比如,客户端体验简单,不易开发丰富的效果来展示数据(这和当时的网络带宽也有关系);必须联网才能运行,信息安全无法保障;应用程序需要通过其他技术辅助才能操作客户端资源;服务器负载过高而客户机运算能力未充分使用等。

综合来讲,BS仍然是一个不错的解决方案,它的Web应用程序和CS的桌面应用程序曾一度二分天下,各领风骚数十年。

从解耦角度来看,CS以数据库的方式把数据从程序中分离,BS 以浏览器页面的方式把界面和逻辑再次分离,然而第二次分离是不彻底的。

表面上只是代码结构的分离,从实质上看表现层仍然是逻辑层的附庸,前台UI完全和后台实现技术绑死(把已有项目后台从C#换成JAVA是不可能的。

)为了解决这个问题,RIA出现了(顺便搞定了一些其他问题,比如页面异步刷新,前台UI不够丰富等等),RIA基本实现了不依赖于特定后台技术,能与多种服务端搭配使用。

在2002年,MacroMedia公司(简称MM,05年被Adobe收购)首先在Flash Player6中引入了RIA概念。

2004年,MM正式发布Flex1.0(汗,终于说到Flex了),随着Ajax的火爆,RIA开始受到广泛关注。

RIA主要有两个方面的含义,一是用户界面的丰富即富客户端,二是数据模型的智能,服务器已经变成了支持客户端正常运行的数据服务,并提供了异步数据传输和脱机缓存机制等复杂的数据处理能力。

前面提到,RIA本质上就是CS+BS,它想集大成,想搞总结,想终结CS和BS二分天下的局面。

说浅显点就是,如果以前的CS程序现在能在网络上运行,并且保持了原来的功能和特征,那么这就是一个RIA。

关于RIA的详细介绍GOOGLE 上一搜一大把,在此就不继续作详细展开。

回到当下,RIA各种技术一番拼杀,现在广为人知的只剩下四个NB小伙:Ajax、Flex、SilverLight、JavaFx。

在本文第二部分中,我将简要介绍一下Flex(貌似进度有点儿慢,多谢支持。

)Flex是咋回事之二前世今生收藏转眼已是岁末,让我们回顾一下历史,展望一番未来。

啥,没有未来?那就不展望了,回顾一下历史吧。

扯得有点远,其实本部分主要是写些过去的事情,顺便理清些概念,不喜欢的朋友请跳过,再跳过,再跳,然后就刘翔了。

先说一下Flash Player(简称FP)。

经常上网的朋友一定遇到过Flash Player版本升级的提示吧,这东西其实就是浏览器插件,据说已经有了98%的安装普及率,没办法,谁让咱们这么爱看视频呢(FP具体介绍请见/view/1585492.htm)。

Flex生成的页面主要是通过Html包装一下生成的swf文件,和Flash生成的swf一样,它也靠FP才能完美运行,这有点类似JVM虚拟机和.NET FRAMEWORK(FP里内嵌了AVM虚拟机)。

FP又分调试版和产品版,总体来讲,咱们只管用FP提供的API,以及及时关注最新版本的功能,其余不会过多接触(我对FP10关于3D方面的支持很感兴趣,不过貌似其支持效果不太理想)。

再说一下Flash的历史。

在1996年,小软件公司FutureWave Software为了给Netscape开发一个全新的网页浏览插件,创建了名为Future Splash Animator的动态小程序,该产品基于Java,是由一个称为SmartSketch的产品演化而来,这就是Flash的老祖了。

具有讽刺意味的是,这家FutureWave的公司本来是打算把这项技术卖给Adobe的,但在那个时候Adobe 根本不睬它。

而Macromedia(简称MM)却很有兴趣,就这样在1996年11月,MM在拥有了FutureWave这家公司的技术后,把FutureSplash重新命名为Flash Player 1.0。

在随后的许多年间,Flash被打包为Studio套件的一部分,并与其他Studio产品(如Dreamweaver 和Fireworks)一起发布,世人称网页三剑客。

三剑客横行无敌,到了05年4月18日这天,ADOBE实在看不下去了,阔绰出手,又以34亿美元天价收购MM。

ADOBE大叔估计很后悔当年没收购Future Splash,搞到现在,被MM给做大了(Flash具体历史介绍参见/viewthread.php?tid=13194和/space/?625743/viewspace-350122)如同今年4月Oracle收购Sun一样,MM嫁入ADOBE豪门,在当时的业界也是一片哗然炸雷。

许多MM的忠实粉丝觉得,那三剑客就是被ADOBE大叔招安了啊,依据其收购产品的一贯猥琐恶行,这几位剑侠估计很快就会被不声不响地给整掉了(当时Flex还是襁褓,大家都没注意到。

)Fireworks是PhotoShop的老对头了,肯定是斩立决;Dreamweaver要不就是改装变身,要不就是各种理由直接缓死;Flash日子会好过些,但其一贯的MM风格是否能延续也很难保证。

然而ADOBE这次出乎意料的善良,三剑客无一遗弃,相反还忍痛把自己推行多年的SVG死缓(个人也很喜欢SVG,无奈和FLASH冲突,出于商业策略,这孩子被牺牲了)。

在最新的CS4(Creative Suite 4)产品系列中,三剑客依然活力四射地与其他成员工具们和谐奋进。

那么事隔收购事件四年多之后,我们已经渐渐接受了MM产品前面强行加上的ADOBE标签。

可以说,ADOBE充分吸纳整合了MM的精神和风格,无论是FP还是三剑客,ADOBE一直都在努力地做得更好更和谐。

(本人现在已经是ADOBE FANS了,哈哈,不过还是挺怀念Flash MX2004 和Dreamweaver2004那个时代的,尽管当时也没闪出啥东西来。

)说了这么多关于Flash的事情,其实是因为Flash比Flex更出名,ADOBE也察觉到这一点,所以在预备推出FLEX4时,又将其更名为Flash,只是SDK仍然沿用FLEX的名号。

FLEX和FLASH并没有本质区别,它们最终都是转为ActionScript源文件,然后被编译为二进制的swf 文件(就和JAVA文件被编译成class一样),再交由FP(FP就像JVM虚拟机一样)来执行。

不同的是,FLASH更偏向于设计人员,它有时间轴和帧的概念,能更好地实现动画、特效、短片等美工效果。

Flex是面向开发者的,隐藏了时间轴的概念(只有两帧),更专注于解决企业应用的表现层方案,提供了大量的通用组件用于构建前端页面、通过数据服务技术能更好的分离界面和逻辑业务层。

从04年3月MM手中的Flex1.0,到05年10月ADOBE手中的Flex2.0,再到07年1月伴随着强大的面向对象语言ActionScript3出现的Flex3.0,再到明年初发布的强力Flex4.0。

借着RIA的春风,Flex在不断走向成熟的同时,也被更多的业界开发者和企业用户所关注接受。

如果看到这里你很感兴趣,推荐在GOOGLE上搜索一把,现在不是08年了,网上已经涌现出大量的简易教程供我们参考学习。

当然如果你有些闲钱,或是想系统地学习一下,也可以买几本书。

(有时间我会整理些网站博客和书籍推荐的)在本文第三部分中,我将结合项目经验谈一下Flex的优缺点和使用心得。

没用过Flex的可能无法共鸣吧,那就直接跳过不看了,呵呵一项技术,从概念提出到技术研发到商业发布,再到实际应用,最终将产品呈现在用户面前,这是一个漫长而复杂的过程。

在这当中,很多有创意有生命力的技术因为各种原因小小遗憾地不幸夭折了。

Flex能走到今天确实不易,下面让我们从不同的角度来看一下它是如何过关斩将,赢得众多青睐的。

技术角度:(1)具备了RIA时代富客户端的优点(C/S+B/S)(2)支持多种服务器语言(JAVA、.NET、PHP)及主流框架(Spring、Hibernate)(3)与Java结合后相当强大,能充分利用Java的资源背景(4)拥有丰富的组件和第三方组件,对企业级的数据汇总和业务流程展现力较强悍(5)借助开源的力量,拥有众多民间组织和牛人支持(6)Adobe公司(还有MM多年积累)的强大背景(7)源于Flash的天生丽质,轻松使用多媒体资源,动态交互性强(8)借助FlashPlayer的安装普及度,轻松实现跨浏览器跨平台(9)良好的架构设计和制作精良的文档示例(明年FLEX4同步推出中文版)(10)借助于插件丰富的Eclipse开发平台并拥有独立的IDE(11)框架设计重用性高,有利于模块化设计(12)近几年发展态势良好,获得了广泛认可,产品和技术也越发成熟开发者角度:(1)开源,透明(国人没有不喜欢开源的,哈哈)(2)基于Eclipse开发平台,易上手,且插件丰富(巨人的肩膀啊~)(3)基于Eclipse平台,开发调试方便(FB4中的条件断点)(4)ActionScript语言与Java的融合度和相似度较高,易学易用(5)MXML标签与XML相似,逻辑清晰可读性强(6)架构设计良好,耦合度低,有利于组件重用(7)无需针对不同浏览器编写代码,摆脱编写和调试的噩梦(针对JS说的)(8)类似VB的可视化拖拽组件,快速创建界面(9)方便定制及使用第三方的皮肤和样式,无需美工也有好效果(10)支持多媒体资源,轻易开发动态交互性强的界面(11)众多的RPC组件保障对后台数据访问的安全性和效率(12)文档示例丰富,通过网络可以获取大量的学习资源(13)近两年发展态势良好,前景光明企业角度:(1)开源,免费(其实很多时候还是直接用破解的。

相关文档
最新文档