Flex开发者需要知道的10件事

Flex开发者需要知道的10件事
2010年02月27日
  不久前,Michael Portuesi发表了一篇博文,谈到了Flex开发者需要知道的10件事。文章介绍了每个进入Flex领域的开发者都需要掌握的基本知识与技能。
  Michael Portuesi给出的10个条目中,有些是开发者需要了解的简单细节信息;有些则揭示了Flash/ActionScript/Flex与其他开发环境之间的差别。
  如果你了解HTML/CSS并熟悉JavaScript,但却对ActionScript或Flex一无所知的话,那么应该花些时间学习一下面向对象编程,因为ActionScript是一门完全的面向对象编程语言,而Flex则是一个面向对象的框架。
  1. 再简单的东西也是异步的
  Flex是一个异步框架,因此我们绝对不能指望代码调用后就能立刻执行。事实上,我们是无法预知方法的调用序列的。
  2. 搞清楚Flex组件的样式与属性
  Flex UI组件(按钮、菜单等等)既有属性(通过ActionScript语言指定)也有样式(通过Flex框架指定)。搞清楚他们之间的区别是非常重要的,因为组件的某些可视化效果可以通过属性指定,但另一些却只能通过样式设定。通过属性指定:
  button.width = 100;
  button.height = 50;
  通过样式指定:
  
  Button {
  color: #cc0000;
  textRollOverColor: #ccff00;
  fontFamily: Trebuchet MS;
  }
  
  
  3. Flex中的样式与HTML中的不尽相同
  可以使用标准的CSS样式表来为Flex组件添加样式,也可以在Flex应用中包含CSS样式表。虽然标准CSS使用连字符(例如text-font)格式来定义样式名称,但是Flex使用驼峰式的命名格式(例如textFont)。这是因为连字符不能出现在XML的属性中,所以不能用这样的名字作为MXML标签的属性。
  当然了,如果把样式定义在外部的CSS文件中或者Style标签中,也可以使用连字符格式的样式名。此外,Flex还定义了很多HTML中不存在的CSS样式。
  4. 尽管看起来不同,但MXML和ActionScript本质上是一回事
  在Flex中声明的所有MXML标签都会被Flex编译器转换为ActionScript代码;当然了,也可以在MXML文件中嵌入内联的ActionScript代码。既可以使用MXML也可以使用ActionScript创建新组件。
  5. 理解Flex的Code-behind模式
  虽然MXML和ActionScript本质上是一样的,但他们各司其职。一般来说,MXML负责显示界面,而ActionScript用来完成功能。Code-behind用于解耦MXML和ActionScript,这样设计师可以直接修改MXML而无需阅读代码,程序员则可以更好地组织和重用功能。
  6. 理解Flex组件的生命周期
  Flex通过状态机机制定义了一套完美的生命周期模型,用于组件的创建、运行和销毁,还定义了一些“入口”,开发者可以借此完成定制化的工作。没有透彻理解组件的生命周期可能会导致错误的编程模型。
  7. 理解Flash运行时所使用的“跑道”模型
  理解Flash Player的渲染和代码执行机制非常重要的。在执行了改变界面的指令时,Flash Player并不是立刻把你要的内容显示在屏幕上,它根据一定的周期来刷新屏幕,而代码的执行则是另一回事。这和Java正好相反,Java总是等待程序主动告诉它什么时候重绘屏幕。
  8. 理解数据绑定与查看器(Watcher)
  Flex提供了一种数据绑定机制。简单地说,就是将一个源属性绑定到一个目标属性上,当源属性发生变化时,目标属性也会随之变化。不仅仅可以绑定到属性,还可以绑定到函数。甚至可以为某个属性创建一个Watcher,当属性变化时会获得事件通知。
  9. 数据封装与松耦合非常重要
  对于Flex和AIR项目来说,代码组织与高层结构非常重要。有些人竟然在一个文件中编写了1000多行代码,这导致的问题就是牵一发而动全身。
  10. 理解ActionScript中的弱引用与强引用
  不管使用何种语言与开发环境,内存管理始终是一个重要的问题,ActionScript也不例外。如果不理解运行时环境的内存管理,那么很容易就会出现内存泄露与内存碎片问题。请阅读这篇博文及文章来深入了解ActionScript的垃圾收集机制。
  此前,我们发布的新闻谈到了每个Flex开发者需要知道的10件事,本文将继续这个主题,谈谈每个Flash开发者需要知道的10件事。
  近日John Lindquist谈到了在为Roundarch公司招聘Flash/Flex开发人员时的一些感受。他认为最难的地方在于问什么问题才能最好地了解到应聘者的Flash /Flex开发技能。因此,他给出了一个列表并说到:“根据我的经验,通过这个列表能更好地判断面试者的技术水平和经验”。
  本文就将概要地介绍Flash开发者需要知道的10件事并给出进一步阅读的链接。
  1. 弹性“跑道“模型
  开发者应该知道事件何时被触发,代码何时被执行,Player何时进行渲染,这是每个Flash开发者都需要掌握的Flash Player基础概念。
  延伸阅读
  http://www.craftymind.com/2008/0 ... r-flash-9-and-avm2/
  2. FlexSDK、mxmlc、compc...
  开发者应该知道在点击Eclipse中的“run”按钮时都发生了哪些事情。
  延伸阅读
  http://www.senocular.com/flash/tutorials/as3withmxmlc/
  http://livedocs.adobe.com/flex/3 ... ent=apparch_08.html
  3. Player事件、客户化事件以及事件冒泡
  没有帧(Frame)和鼠标点击的Flash Player是无法想象的。
  延伸阅读
  http://www.adobe.com/devnet/acti ... andling_as3_03.html
  http://livedocs.adobe.com/flex/3 ... package-detail.html
  http://www.tink.ws/blog/custom-e ... e-the-clone-method/
  http://jacwright.com/blog/70/how ... s-that-dont-bubble/
  4. 语句、关键字和指令
  开发者不应该对AS3中新出现的关键字感到惊讶。如果不知道“static”或是“override”是什么意思,学就行了。
  延伸阅读
  http://livedocs.adobe.com/flex/2/langref/statements.html
  5. ASDoc
  今后当你再一次阅读自己编写的代码时可能看不懂写的是什么了,因此恰当的文档是非常必要的,但如果能自动生成岂不美哉?
  延伸阅读
  http://livedocs.adobe.com/flex/3 ... ontent=asdoc_3.html
  6. 管理好可视化资源(图片、字体、CSS等等)
  Flash是可视化的东西,因此有必要了解代码与资源的管理手段。
  延伸阅读
  http://www.gskinner.com/talks/flexlovesflash/
  http://code.google.com/p/queueloader-as3/
  http://code.google.com/p/bulk-loader/
  7. 理解Array、Collection、Dictionary与Map
  通常开发者不会只处理一个MovieClip,因此需要了解如何控制多个对象。
  延伸阅读
  http://livedocs.adobe.com/flash/ ... angRefV3/Array.html
  http://www.gskinner.com/blog/archives/2006/07/as3_dictionary.html
  http://code.google.com/p/as3ds/
  8. 以编程的方式处理动作
  如果只搞静态的东西还不如使用HTML呢。
  延伸阅读
  http://blog.greensock.com/tweenmaxas3/
  http://www.amazon.com/Foundation ... 43014431&sr=8-1
  9. OOP、编码与框架的合理使用
  时至今日,一个巨大的.as文件闯天下的时代已经过去了。开发者需要将代码转到组织良好、可重用的对象中。现在的AS3框架也层出不穷,合理地使用框架有助于代码的管理。
  延伸阅读
  http://www.adobe.com/devnet/actionscript/articles/oop_as3.html
  http://www.actionscript.org/reso ... g-in-AS3/Page1.html
  10. 版本控制
  除非觉得代码毫无价值,否则开发者需要立刻学习一种版本控制系统并尽快应用到项目中去。
  延伸阅读
  http://tortoisesvn.net/downloads
  http://versionsapp.com/
  http://en.wikipedia.org/wiki/Revision_control
  http://git-scm.com/
  http://www.nongnu.org/cvs/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值