近期一个flex 项目的心得体会

最近完成了一个flex 的项目,客户端使用flex3 实现,服务器使用struts2,spring,hibernate,客户端-服务器通信数据格式使用自定义的xml文档.通过这个项目,对flex/flash 平台有了更深入的认识,记录下来,希望能够对准备采用flex进行开发的同志(不要误会哈)有所帮助.在进入正题之前,先秀张截图:

 

 

下面转入正题:


Flex ria在界面方面和传统的webapp 界面是两种截然不同的架构.
在传统的java web 应用中,无论是struts 这样的mvc 框架,还是jsf,wicket这样的服务器组件框架,状态都是在服务器端保存和管理,界面组件在服务器端根据数据生成所有的在浏览器显示需要的内容,包括html,css,javascript 等.虽然在一些javascript 的框架(例如,dojo,gwt)支持下,也可以实现”one page application”,但你仍然可以选择状态由服务器管理这种方式.
使用了flex 以后,没得选择了,所有flex 中的组件都是和本地的数据进行绑定, 整个应用也变成了一个swf文件(模块化的可能有多个swf文件),你必需考虑

  • 如何用”navigation container”,”view state”等来构造视图导航;
  • 设计一套数据通信格式(无论是基于xml或者json)用于flex和服务器通信,即使是准备用blazeds这样的数据通信技术,也需要服务器和客户端有一套符合amf协议要求的可以系列化的数据传输对象(dto),即如果你客户端需要一个User 对象保存用户信息,那么服务器也需要有一个兼容的User 对象,手工的方法就是在服务器创建一个java 对象,在客户端创建一个兼容的as3 对象,有一些工具可以帮助简化这个过程,例如服务器创建java对象后,自动帮你创建客户端的as3对象,但这明显增加了工作量.而且对于一些复杂的对象结构,要为其设计一个dto映射,更是麻烦.
  • 哪些数据缓存在客户端,这些数据如何同服务器进行同步.

总结:在flex ria这种客户端保持状态的模式下,需要考虑的问题和服务器端保持状态的模式有较大的不同.工作量一般也会大一些.

flex 应用开发的工作内容主要包括两部分:
一部分是程序开发,包括

  • 使用mxml和框架提供的界面组件构造用户界面,或者对系统组件进行适当的合成和扩展,以满足自己的要求.
  • 使用as3 面向对象的程序设计语言实现服务器交互,客户端数据管理,应用逻辑,事件处理等.
  • 使用某种mvc框架优化系统结构,flex 的应用程序可以在客户端缓存数据,自己管理状态,不是每个用户交互动作都需要和服务器通信,所以mvc架构的引入对于稍大一些的应用是必需的.

一部分是ui视觉效果设计和图形制作
Flex 界面外观的定制可以使用css和skin,不过css能够提供的定制功能有限,如果需要完全控制flex程序的外观,就需要用skin机制.skin 可以编程用矢量图形api绘制来实现,也可以用image 实现.一般情况下,出于时间和成本的考虑,都会采用image实现.这就要求ui设计人员理解flex 中skin 的概念和要求,将效果图切割,整理成为符合flex 要求的资源,并在程序中用css设置,应用这些资源.
总结:Flex/flash 平台除了流媒体支持外,最大的优势就是视觉效果的制作能力,如果没有好的的视觉效果,flex/flash 就失去了它的主要优势, 我认为这甚至比程序还重要.所以团队中需要有优秀的,懂flex 的ui设计人员.

 


Flash 平台有潜在的功能和质量缺陷
flash 平台可能在某些细节的部分存在缺陷或者bug,不遇到则罢,遇到了则有可能打乱你的项目计划,因为这些bug甚至在官方文档中都不曾提及,能否解决看你的能力和运气了.

  • 和java 平台庞大的类库相比,flash 平台的功能显然要弱很多,很多东西都要自己开发.即使是系统提供的api接口,可能也会存在某种缺陷.例如,服务器想以rest 的架构方式实现?那么先看看这个讨论
  • 另外一个曾经遇到的问题是使用flash 的FileReference.上传文件.服务器开发完毕后,用html form 测试上传无任何问题,但是使用FileReference 问题就来了.最后使用fiddler监控http 通信,发现FileReference 居然在上传时自动添加了一个”upload”参数,而服务器接收文件恰好也使用upload作为参数名!!按照我的看法,浏览器实现的html/http规范显然更权威,如果浏览器无问题而flash 有问题,那么结论就是flash 对规范的实现有缺陷.
  • 此外还碰到过其它一些问题,无一例外都是在文档中查不到的,好在团队中有对flash 非常熟悉的人,这些问题最终都得到了解决.

总结: 细节是魔鬼,使用flex/flash 开发时要对可能遇到奇怪的问题做好充分的思想准备.

RN-flexbox(弹性布局) flexbox布局由伸缩容器和伸缩项目组成。任何一个元素都可以指定为flexbox布局。伸缩容器的子元素称为伸缩项目。下面看一张伸缩布局图: 注意:在RN,默认的主轴方向和交叉轴方向是跟web端相反的,即主轴默认在y轴。 属性: 伸缩容器的属性:display,flex-direction,flex-wrap,flex-flow,justify-content,align-i 阅读详情

相关推荐

ReactNative从零到完整项目-弹性(Flex)宽高使用详解

项目连接: 93Laer/MyDemo ReactNative使用手册 关键点: 1、在RN中宽高,size等使用的单位是dp,还是px 2、flex使用,以及动态阔张效果总结 由于在RN的官方文档中并未提起我们在对组件宽高或是字体大小设值,这个值是px还是dp。所以在正式开始讲解flex宽高使用前,先做一个实验,看看我们设值的到底是px,还是dp(当然我在RN中说px,dp可能不够准确,但是...

weixin_33863087的博客 209

初识FL Studio中的FLEX插件

初识FL Studio中的FLEX插件 关键词:FL Studio20、合成器软件 FLEX是基于预设的合成器,由先进的合成引擎驱动,该引擎能够基于减法,波表,多采样,FM和AM进行合成。8个宏控制的自定义合成目标,使您可以专注于重要的事情:制作音乐。 FLEX插件可以在FL Studio的通道机架处点击加号,在synth classic分组处找到并打开。FLEX作为一款合成器,其就相当于一种乐器,可以利用它来演奏不同的旋律,但与一般乐器不同,你可以自定义它的音色。 图一:FLEX插件总览

2963

flex 的 三个参数:flex-grow、flex-shrink、flex-basis

flex 的三个属性介绍

潮汐未见潮落的博客 2万+

美国项目管理协会宣布从Net Objectives手中收购FLEX

收购将为项目经理、团队和企业扩大敏捷服务 费城--(美国商业资讯)--全球领先的非营利性项目管理专业会员制协会美国项目管理协会(Project Management Institute, PMI)今天宣布,从Net Objectives手中收购FLEXFLEX方法可帮助组织在系统层面理解“什么是无效的”,找出并消除瓶颈来改善工作流。FLEX连同PMI最近收购的Disciplined Ag...

美国商业资讯的博客 289

近期项目设计知识点总结:flex布局、canvas、引入外部字体、rem、匹配选择器等

一、伪类、伪元素 锚伪类 a:link a:visited a:hover a:active分别是链接未访问时,链接被访问过后,鼠标悬停在链接上,鼠标点击链接那一瞬间,需按顺序设置 二、js禁止移动端页面滑动 ①、position:fixed ②、$(document).on('touchmove',function(e){ e.preventDefault(); }) //

sinat_24239191的博客 758

FLEX与Cairngorm框架学习使用心得体会

       公司近期选择FLEX作为RIA客户端,因此开始了对FLEX的学习和研究。基础知识和简单介绍很多人做了,此处不再多讲。此处是对FLEX中事件驱动、动态化与反射、方法参数-函数式编程、RPC异步调用,Cairngorm框架中的事件机制、MVC的一些学习与分析。尤其是从J2EE、BS转过来的开发人员一定要转变思维模式。       关键字:FLEX Cairngorm    在学习

大卫张的专栏 4649

flex布局+近期一些学习

flex参考页面:https://www.jianshu.com/p/d7efdac6a2e5 备注1:官方使用手册才是王道,本页面东西有黏贴参考页面,只为总结自己用到过的,具体查看参考页面。 备注2:本人用flex最多的情况是一个div里面包裹img或者div等情况,在父div里面加上语句 display: flex; align-items: center; justify-conten...

qq_36566924的博客 132

GTFS-Flex 项目推荐

GTFS-Flex 项目推荐 GTFS-Flex一个开源项目,旨在为 General Transit Feed Specification (GTFS) 规范添加对各种按需响应交通(DRT)服务的建模能力。GTFS 本身主要用于固定路线的公共交通,而 GTFS-Flex 则扩展了这一功能,允许更灵活的 transit trip planning。该项目主要使用 Python 编程语言。 项目的...

gitblog_00609的博客 408

近期关于flex的一些感受-ppt

附件中是最近做一个关于flex的沙龙准备的资料   和大家分享~

idning 196

近期总结(下)

<br />近期总结(上)是以前写的,一直没blog。今天与近期总结(下)一起blog吧。<br />  这一段时间精读了flex&bison,精读了一篇编译器实现的老文章。然后dsu要加点程序分析和变换的东西,就精读了些框架和实现。看得很累。自己做了个分析工具,能够检查出疑似不可dsu的东西,但是还没做程序变换。看论文看的很累,看到好多不懂的东西就很着急忙慌的去学,到现在虽然做了初步的工作,但心情还是不好。<br />  然后回过头又去看好萝卜(holub)先生的compiler design in c,

思考使人沉静 669

FLEX快速学习做项目

    做JAVA很多年了,最近项目需做FLEX,没办法,人不好招,只能亲自上阵了.项目做得差不多了,打算把这两个月的经验写出来,跟大家分享一下.    AS3.0是一门脚本语言,但非常强大,提供多种接口被其它语言调用.         ...

flyhighwl的博客 120

近期学习Flex+Struts+Spring+Hibernate得心

测试使用Junit, 项目管理使用Maven.1. Frontend使用 Flex + Struts. 他们之间使用xml传递数据 其中struts使用Tile管理组合JSP来定制template, 为了提供对一个Action提供多个入口使用了DispatchAction类 配置文件在web-inf下主要有: web.xml, struts-config.xml,tiles-defs.xml,va

Alex Qiu Liang Jun的个人空间 2928

flex布局_Flex布局,真香

作者: EcbJShttps://blog.csdn.net/EcbJS/article/details/106466757?utm_source=app1.基本原理Flex英文意思为,弯曲,屈伸,可以伸缩的布局,天生就是为了适配不同的分辨率。而且用法也很简单,首先只要告诉浏览器,我是一个伸缩布局就可以了。.faBox { display: 'flex'; //给父元素设置为伸缩布局...

weixin_39830588的博客 71

好久没写FLEX相关的文章了

好久没写FLEX相关的文章了,最近想把FLEX开发WEB应用和ADOBE AIR类型的应用的一些心得总结一下与大家共享!

RIA工作室,商业智能(David liu) 597

flex布局的学习

在这里,当不做特殊设置的时候,默认为 的状态,其内的每一个元素,都另起一行去展示。 的话,我们就可以自由设置其内元素的布局形式在Flex 布局中,天然存在两根方向轴: 主轴 和 交叉轴 。交叉轴在有些地方又被称为侧轴,其实是一个概念。在默认情况下,主轴是沿着水平方向延伸,而交叉轴则正好与主轴呈交叉状态。 但是这并非不可改变,我们可以通过 属性,来改变主轴的方向,交叉轴的方向是相对于主轴存在的,当改变主轴方向后,交叉轴也被同时改变。Flex布局是通过一些属性来控制效果的,和我们正常写一个移动 App 是一样

2401_84132496的博客 961

show 近期一个项目

本系统采用flex+java,现在比较顺手了,show一下 [img]http://dl.iteye.com/upload/attachment/553152/4b0ee4b8-bca7-32e4-bea9-ac100841fa60.png[/img] [img]http://dl.iteye.com/upload/attachment/553154/7de9986c-180c-3cf...

dengry 140

SCSS Flex Grid 项目推荐

SCSS Flex Grid 项目推荐 项目基础介绍和主要编程语言 SCSS Flex Grid 是一个基于 Flexbox 的网格系统,使用 SCSS(Sass 的一种预处理器)编写。该项目旨在提供一个简单、灵活且响应式的网格布局解决方案,适用于现代网站和应用程序的开发。 项目核心功能 响应式设计:采用移动优先的策略,确保在不同设备上都能提供良好的用户体验。 自定义列宽:支持定义特定列宽或使用...

gitblog_00055的博客 296

Flex mobile入门

<br />Adobe Flash Builder 4 简体中文正式版 Windows版点击下载:http://g.csdn.net/5134151<br />Adobe Flash Builder 4 简体中文正式版 Mac版点击下载 :http://g.csdn.net/5134152<br />Adobe 在线课堂:http://adobev.csdn.net/zx/index.html<br />Adobe平台技术峰会课程视频:http://adobev.csdn.net/<br /> <br />

lihe111的专栏 950

项目推荐:Symfony Flex 自托管服务器

项目推荐:Symfony Flex 自托管服务器 1. 项目基础介绍及编程语言 本项目一个开源项目,名为“server-for-symfony-flex”,它为Symfony Flex提供了一个自托管服务器。该服务器允许开发者使用私有配方(recipes)和定制配方,同时为官方端点提供代理和缓存功能。本项目不是SensioLabs或Symfony核心团队官方的项目。主要编程语言为PHP,同时也使...

gitblog_00233的博客 491
上一篇: 使用flash的Socket类连接服务器的任意端口
下一篇: 我对"play" 框架的看法
imduker
博客等级 码龄24年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值