`
seya
  • 浏览: 359942 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

flex实现企业及开发的经验总结http://xunigel.spaces.live.com/blo

阅读更多

flex实现企业及开发的经验总结

1.为了使得FLEX端代码比较清晰,请使用框架.
推荐使用cairngorm.这个框架虽然比较笨重一些,但是适合开发比较大型的项目,尤其是那写MODULE数达到100左右的项目.而且这个框架使用了Command,Delegate,Singleton...等模式。
使得代码结构比较清晰.
2.使用VIEWHELPER时需要注意,注册某个MXML的VIEWHELPER时,ID是有限制的.因为MXML注册一个VIEWHELPER时,会将这个ID注册到VIEWLOCATOR中.这个MAP是一个单例.对于一个APP来说,
他的KEY是不可以重复的,否则VIEWHELPER的释放或则获取都会出现问题.
3.尽量使用SDK中的组件而不是自定义.组合优于新造一个.当然,对于一些特定需求,还是需要自定义组件的.比如KEY-VALUE的需求.时间的特殊处理...等.
4.了解一些MXMLC的一些参数,对于深入理解FLEX有着很好的帮助.-keep-generated-actionscript尤其实用.因为可以使用他查看MXML编译成AS的代码.照样对于了解生命周期,
事件传递机制...有很大的帮助.对于Bindable关键字,在申明时,请思考是否有其他的变通解决方法,不要随意加上这个关键字.Bindable会为这个对象与之相关的部位生成大量的代码,对于
复杂的组件来说,AS文件膨胀的比较可观.
5.model的应用在FLEX2中存在一些内存泄露问题,如果有条件,请升级到FLEX3.分析内存问题可以借助FLEX Builder3 profile.
6.针对SWF比较大的问题,可以使用LINKREPORT的方式来缩小SWF.美工在设计界面时,不要容器嵌套容器太多.大家知道,WEB-PHOTOSHOP的main.swf也就是500K左右.我们的项目中就MAIN约600K,
里面的MODEL大小最多也就150K,小的几K而已.这样的情况,对于WEB传输来讲,还是有点不太乐观.
7.对于数据的组织,我们使用的JEE+FLEX方式.通过AMF协议传输后,其实在FLEX端也需要形成具体的OR.传统的JSP乃至AJAX,这些工作比较具体在服务端,客户端,而客户端并不明显.从这些可以窥见AIR与传统的区别.
一句话可以概括:用FLEX开发应用,等于同时开发B/S和C/S.
8:最好使用FLEX BUILDER来开发应用.但是使用的都知道,FLEX BUILDER与JAVA面的ECLIPSE简直没有办法比.我的DEV-STATION:5600+(2CPUS) +2GB内存在编译时都略显吃力.而且在FLEX Builder3
较之FLEX BUILDER2虽然可以选择MODEL的编译方式.看似比FLEX BUILDER2方便许多,但是他存在一个致命问题:当选择多个MODEL同时编译时,有可能编译错误,他不会报出.这点让人深恶.因为很多
时候你修改了代码,看到FLEX BUILDER没有报错,然后运行,却发现问题依旧.这时候会你根本不会想到是FLEX BUILDER欺骗了你,而是更多的去想你的代码问题.
方法:
1.只选择编译一个MODEL.
2.使用ANT编译方式.ADOBE网站有相关ANT FOR FLEX的资料.
http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks
9: AS3已经有一个比较正式的文档,对AS3的一些代码做出了规范,请访问.
http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions对于系统如果需要采用linkreport方式编译,请严格按照规范编写代码,这一点尤其重要.经验表明,不按照规范编写的代码,可能出现一些奇怪的问题.
10 Arraycollection对象中元素的删除问题 考虑删除多个元素的时候的位置变化问题(LENTH发生变化),可以用位置变量复位来解决。或者先转成ARRAY。
11.FLEX通过AMF与其他语言进行类型映射时,需特别的参考AMF文档.比如JAVA与FLEX的Number类型对应的是DOUBLE,如果JAVA端使用了FLOAT,则在操作这些NUMBER时,界面上的数字将显示不正常 如12.1保存后可能会变成12.09999999999999.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics