我试着到处寻找使用Flex vs. Flash的优缺点的简明列表.
来自编程背景,我非常喜欢Flex.它很容易上手,因为它可以使用flash类,为什么我要使用Flash而不使用flex?
柔性:
优点:
适合RIA开发
提供了许多开箱即用的用户输入选项
建立布局系统
MXML对于非程序员来说更容易
您可以快速组合组件以创建小型应用程序
组件可以在大规模项目中提供优势,因为它们具有模块化特性.
可以使用linux开发
有一个很好的组件生命周期进行验证等.
缺点:
增加.swf的大小
根据您正在寻找的视觉风格,自定义组件的外观可能比预期花费更长的时间
当你发现需要一个不存在的自定义组件时,你可能需要回到Flash来进行真正的编程工作和组件的打包
Flex的"灵活性"意味着您将阅读大量文档
Flex框架中的错误
您最终将需要妥协Flex框架的体系结构
闪
优点:
适合制作电影/动画
设计师/动画师可以更容易地将时间轴概念化
从头开始工作时,提供了很多控制.
对于有编程背景的人来说更容易
你可以随心所欲地编程; 与现有框架没有任何妥协
缺点:
仅提供开箱即用的基本用户输入(文本框).
时间表对于程序员来说可能是令人生畏的(尽管你可以非常安全地忽略它)
某些类型的应用程序的开发将比使用Flex慢
无法使用linux开发
用户输入验证必须全部在代码中处理.没有内置验证.
需要实施自己的布局系统
如果我错过了迄今所说的任何内容,请纠正我.
Flash和Flex都使用相同的底层渲染引擎,只是使用不同的前端.Flash更适合制作电影和动画.Flex更适合应用程序开发.
从程序员的角度来看,Flash和Flex之间的巨大差异并不在于您用于编程的IDE /应用程序,而在于您是仅使用ActionScript(AS)编程,还是使用Flex框架和MXML来编写应用程序.
我会说纯ActionScript更适合编程(无论你使用Flash IDE还是Flex IDE都不相关),MXML更适合非程序员组合AS中编程的组件.
我会在列表中添加这些优点/缺点:
柔性:
优点:
非程序员更容易进入应用程序开发
您可以快速组合组件以创建小型应用程序
组件可以在大型项目中提供优势
缺点:
自定义组件的外观可以采取很多比预期更长的时间,这取决于你正在寻找的视觉风格
当您发现需要一个不存在的自定义组件时,您可能需要返回Flash来进行真正的编程工作和组件的打包
Flex的"灵活性"意味着您将阅读大量文档
Flex框架中的错误
您最终将需要妥协Flex框架的体系结构
Flash(或ActionScript项目模式下的Flex IDE):
优点:
对于有编程背景的人来说更容易;)
你可以随心所欲地编程; 与现有框架没有任何妥协
缺点:
对于程序员来说,时间表可能令人生畏(尽管你可以非常安全地忽略它)
某些类型的应用程序的开发将比使用Flex慢
简而言之:为正确的任务选择合适的工具.
Flex是一个用ActionScript3编写的代码库,因此它为Flash添加了许多功能和类似标准库的东西.缺点是它是一个包含在您的应用程序中的大量代码.如果您在应用程序中使用任何Flex,则SWF的下载大小会增加100的K.
如果你的应用程序有任何类型的用户界面小部件,那么你几乎必须使用Flex作为Flash本身只有最基本的东西,如文本框.Flex有一个完整的XML GUI,包括布局,数据绑定和XML设置等.
在flash中执行此操作,您最终必须从头开始编写列表框等内容...
在我看来,Flex框架最重要的特性是组件生命周期,它为属性,组件大小和分层渲染的验证/失效提供了一个非常优雅的模型.
开发人员的好处是,它为业务逻辑和渲染创建了离散的应用程序阶段,避免了昂贵的几何体和渲染代码,直到绘制框架之前的最后一刻.
这是一个非常好的演示文稿,解释它是如何工作的:
http://tv.adobe.com/#vi+f15384v1002
该模型设计得非常好,当您使用框架默认组件和容器时,在大多数Flex开发期间,组件生命周期几乎完全不可见.您只需要在开始开发自己的组件时学习内部工作原理.
在Flash环境中开发,或者在纯ActionScript中开发,你不会得到任何这些.任何开发纯AS3应用程序的人都需要非常仔细地编写代码以将业务逻辑与渲染分离,否则将会严重降低性能.