flex系列文章1:flex漫谈

转载 2007年10月12日 10:28:00

若干年前,我还在CitiBank工作的时候,全球包括国内IT界就有很多WEB开发者热论Rich Internet思想,众多IT媒体纷纷把RIA当作一个时髦的词汇挂在嘴边,时不时地品评一番。而各网络技术供应商也在暗地里思考着是不是新的机会到来了。当时正是全球java企业级技术开发高速发展的时期,OpenSource运动也在如火如荼的进行着。有一天,头召集我们说Macromedia(当时还没有被Adobe兼并)已经实现了一个实验版本的解决方案,名字叫Flex,让我们关注一下云云,因为下一个项目要用到它。于是从那时起便开始了Flex之旅了。我想我们是Macromedia Flex最早的客户。Flex1.5精彩的UI组件给我留下了深深的印象. 一直到现在都密切的关注着它的发展,用它实现过很多让很多人激动人心的功能,同时也经历着由于Flex先天的不足所带来的困惑,以及每个困惑后面的解决方案。从第一个Beta版本的脆弱到现在2.0的进步,我能明显地感觉到它在成长和发展。我个人也在成长和发展。想以一个过来人的视角告诉国内这些被Flex地魅力所打动地人们一些经验和教训。以及怎么发挥Flex最强悍的地方,巧妙地避开它相对不稳定和脆弱的地方。只要注意足够的细节,我的实践和经验告诉我,Flex总能让人激动人心!

现在,我想首先随便举例介绍一些Flex的短处。从最早的版本1.5开始。

1 不支持鼠标双击事件(解决方案是用两次时间间隔100毫秒的单击事件来模拟),2.0有所改观。

2 Flex的FlashSession和IE的标准HttpSession在Tomcat,WebLogic上部署时没有问题,但是在Unix的JRUN上时,Post请求参数不同步(解决方案是在Remote Object实现中手动同步必要的参数,比如如果你把Spring中的Facade Object作为Remote Object)2.0有同样的问题。在WebService作为Server端的通信方式时没有类似问题。

3  前期绑定和官方声称的不一致。组件绑定在Flex中分为前期绑定和后期绑定。当Client端装载编译过的mxml或as码流时首先出发的事件是Initialize然后是CreationComplete,当我们分别写两个handler相应这两个事件,如果后期绑定可能用到前期绑定时装载的数据,你就会发现数据有可能会没有转载。原因有若干,在下一篇文章中详细介绍。

4 FlashPlayer 9以前的实现,类层次结构太深,实现很机械死板,存在很多重构的可能,比如一个应用中包括若干容器和组件,每个组件的初始化都要调flash类根结点相同的构造器。你配置好Flex自带的Profiler,就可以在Console中看到整个应用在底层的对象创建初始化的所有过程。只要在flex-config.xml中打开开关然后再做些额外的配置就可以了。(解决方案是写一个底层flash类Singleton的类工厂cache所有底层flash类,此方案非常见效,flex并不是想象中的那么慢!)

5 本身没有好的pattern可以直接利用,容易造成mxml和as混在一起,可以选择cairngorm,这个不错。我将单独写一篇关于CAIRNGORM架构的文章。不过2.0时已经被集成进来。

6 CellRender存在数据类型DataType不匹配的Bug等等。

以上说了这些,有些朋友可能有些失望,其实大可不必。我们要保持一种客观的态度,等我把Flex的优点列出来以后,你又会充满信心了,其实,任何产品都有优势和劣势。另外,以上我所列的东西都是我在实际的开发中碰到的,到后来你会发现,等你做完项目必须的优化动作后,反而是数据传输所消耗的时间比Flex组件初始化的时间要长一些,那时可以采用在Server端做个Cache以及Client端Lazy Load的策略。想一下Flex都可以做全球各大股票市场行情实时显示和分析,还有什么它不可以做的呢! 

Flex技术专栏 --by mervyn_lee

漫谈 Clustering 系列 - 笔记

http://blog.pluskid.org/?page_id=78  Chiyuan Zhang Computer Science& Artificial Intelligence Laborat...
  • cmonkey_cfj
  • cmonkey_cfj
  • 2014年02月12日 16:44
  • 1948

[HTML5移动网页开发] Flexbox布局讲解与使用技巧

一 摘要 在前一篇我们讲到了react Native混合APP开发时,布局主要采用是Flexbox布局,不了解可以参考之前的一篇文章. [React Native混合开发]React Nat...
  • BaiHuaXiu123
  • BaiHuaXiu123
  • 2016年09月13日 13:05
  • 2868

《React-Native系列》11、 图解RN布局之FlexBox,三分钟上手写RN界面

前面其实已经写过很多RN界面了,今天再来回顾下FlexBox布局,主要是记录笔记,必备日后查阅。 综述 flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。采用...
  • hsbirenjie
  • hsbirenjie
  • 2016年08月12日 12:55
  • 3176

Android Studio 系列文章(10)—AS中获取SHA1值

转载:http://www.topithome.com/android_studio_ten/ 现在的Android 开发一般都会需要结合第三方的控件开发,比如:百度地图,谷歌地图,高德地图 等...
  • zhoumingsong123
  • zhoumingsong123
  • 2015年11月12日 10:36
  • 2080

系列文章之四 用shell脚本制作TexturePacker批量拼图工具(1)

源代码发布在github上:https://github.com/linyouhappy/kongkongxiyou。 本项目有两个拼图工具build_character.command和build...
  • linyouhappy
  • linyouhappy
  • 2016年07月21日 23:29
  • 1536

译文-Android的MVP模式开发系列文章(1)

原文标题:A useful stack on android #1, architecture本文是对该文章的翻译,本人翻译水平有限,但是会尽可能保证不会出现明显的逻辑错误,英语阅读能力较强的朋友可以...
  • devinshine
  • devinshine
  • 2015年03月15日 17:24
  • 206

翻译一个关于Android游戏开发的系列文章---1-The Game Idea

找到一个http://obviam.net/index.php/step-1-the-game-idea/,非常好的android游戏入门文章,想翻译下来   先翻译第一篇The Game Ide...
  • shcalm
  • shcalm
  • 2013年01月10日 15:10
  • 1082

领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力

在本文中,将会拿出一个显示的例子,先用传统的面向过程方式,使用贫血模型进行设计,然后再逐步加入需求变更,让读者发现,随着系统的不断变更,基于贫血模型的设计将会让系统慢慢陷入泥潭,越来越难于维护,然后再...
  • justloveyou_
  • justloveyou_
  • 2016年10月30日 13:07
  • 663

Android WebView系列文章1-关于WebView基本使用介绍

关于WebView基本使用介绍 目录介绍 0.关于WebView的目录结构图 1.关于WebView的使用优点 2.WebView最简单的使用方法 3.WebView的常用方法 *...
  • m0_37700275
  • m0_37700275
  • 2017年08月04日 13:45
  • 233

Windows Shell扩展系列文章 1 - .NET 4 编写Windows Shell上下文菜单扩展

示例代码下载在MSDN论坛,大量的开发人员经常问道这样一个问题:如何编写.NET代码开发Windows Shell扩展?在.NET 4问世之前,使用.NET编写Windows Shell扩展是不被支持...
  • MSCodeSample
  • MSCodeSample
  • 2011年03月23日 09:53
  • 4422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:flex系列文章1:flex漫谈
举报原因:
原因补充:

(最多只允许输入30个字)