Flash与Flex
我已经尝试过寻找使用Flex和Flash的优点和缺点的简要列表。
从编程背景来看,我绝对喜欢Flex。 它很容易拾取,因为它可以使用Flash类,为什么我想要使用Flash没有Flex?
柔性:
优点:
- 有利于RIA的发展
- 提供了许多用户input选项
- build立在布置系统
- MXML对于非程序员来说更容易
- 您可以快速组合组件来创build小型应用程序
- 由于其模块化特性,组件可以在大型项目中提供优势。
- 可以用linux开发
- 有一个很好的validation组件生命周期等
缺点:
- 增加.swf的大小
- 定制组件的外观可能需要比预期更长的时间,这取决于您要查找的视觉样式
- 当你发现你需要一个不存在的自定义组件时,你可能需要回到Flash来完成真正的编程工作和组件的打包
- Flex的“灵活性”意味着您将阅读大量文档
- Flex框架中的错误
- 您最终将需要妥协与Flex框架的体系结构
闪
优点:
- 适合制作电影/animation
- 时间轴对于devise师/animation师来说可以更容易概念化
- 从头开始工作,提供了很大的控制。
- 更容易有编程背景的人
- 你可以编程任何你喜欢的; 没有妥协与现有的框架
缺点:
- 只提供开箱即用的基本用户input(文本框)。
- 时间表对于程序员来说是艰巨的(尽pipe你可以放心地忽略它)
- 某些types的应用程序的开发将比Flex更慢
- 不能用linux开发
- 用户inputvalidation必须全部在代码中处理。 没有内置的validation。
- 需要实施你自己的布局系统
如果我错过了迄今为止所说的话,请纠正我。
Flash和Flex都使用相同的底层渲染引擎,只是前端不同。 Flash更适合制作电影和animation。 Flex对于应用程序开发更好。
从程序员的angular度来看,Flash和Flex之间的巨大差别并不在于用于编程的IDE /应用程序,而是用ActionScript(AS)编程,还是使用Flex框架和MXML来编程应用程序。
我会说纯粹的ActionScript更适合编程(无论你使用Flash IDE还是Flex IDE都不是那么相关),MXML对于非程序员来说更好地结合在AS中编程的组件。
我会添加到您的列表这些优点/缺点:
柔性:
优点:
- 非程序员更容易进入应用程序开发
- 您可以快速组合组件来创build小型应用程序
- 组件可以在大型项目中提供优势
缺点:
- 定制组件的外观可能需要比预期更长的时间,这取决于您要查找的视觉样式
- 当你发现你需要一个不存在的自定义组件时,你可能需要回到Flash来完成真正的编程工作和组件的打包
- Flex的“灵活性”意味着您将阅读大量文档
- Flex框架中的错误
- 您最终将需要妥协与Flex框架的体系结构
Flash(或ActionScript项目模式下的Flex IDE):
优点:
- 对有编程背景的人更容易;)
- 你可以编程任何你喜欢的; 没有妥协与现有的框架
缺点:
- 时间轴对于程序员来说是艰巨的(尽pipe你可以放心地忽略它)
- 某些types的应用程序的开发将比Flex更慢
简而言之:为正确的任务select合适的工具。
Flex是一个用ActionScript3编写的代码库,因此它为Flash增加了许多function和标准库类似的东西。 缺点是它是一个巨大的代码被包含到您的应用程序。 如果您在应用程序中使用任何Flex,则SWF的下载大小会增加100。
如果您的应用程序具有任何types的用户界面小部件,那么您几乎必须使用Flex,因为Flash本身只具有文本框等最基本的function。 Flex有一个完整的XML GUI,包括布局,数据绑定和XML设置等。
这样做的闪存,你最终不得不从头开始写清单盒子的东西…
在我看来,Flex框架最重要的特性是组件生命周期,它为属性的validation/失效,组件大小和分层渲染提供了非常优雅的模型。
开发人员受益于它为业务逻辑和渲染创build了分散的应用程序阶段,避免了昂贵的几何和渲染代码,直到绘制框架之前的最后一刻。
这里有一个很好的演示,解释它是如何工作的:
http://tv.adobe.com/#vi+f15384v1002
这个模型devise的非常好,当你使用框架的默认组件和容器时,组件的生命周期在大部分Flex开发过程中几乎完全不可见。 当你开始开发你自己的组件时,你只需要学习内部工作。
在Flash环境中开发,或者在纯粹的ActionScript中,你没有得到任何的。 任何开发纯粹AS3应用程序的人都需要非常仔细地编写代码,以将业务逻辑与渲染分开,否则将会严重降低性能。
为什么我要使用Flash而没有flex?
Flex是一个新产品,而Flash则是从Macromedia时代开始的。 devise师,animation师和绝大多数没有被主持编程教育主食的人可能会发现Flash比其他大多数解决scheme更容易掌握。
目标是不同的。 Flex更专注于程序员,而Flash更加友好的艺术家/网页devise师。
Flash是用于(通常)创buildanimation和在时间轴上运行良好的IDE的IDE。
Flex可以更好地创build具有类似于桌面的互动应用程序。
为什么要使用Flash? 那么,如果你需要做一些更具体的时间表的东西,当然!
我将Flex看作是更多的RIA应用程序的解决scheme,您需要开发基于应用程序的解决scheme。 使用Flex有很多你开箱即用的function,但是在文件大小,粒度等方面也是有代价的。
另一方面,如果您正在开发完全自定义的解决scheme(比如游戏),那么Flash可能会走,因为您可以从空白的canvas开始。 许多人仍然使用Flash,因为他们不需要Flex平台的所有基于应用程序的花里胡哨的东西。
我喜欢Flash的自由,在Flash中embedded资源非常简单,在Flex中有点让人困惑。
我喜欢flex的一件事就是能够以最小的努力制作stream畅的应用程序。 这将永远在Flash中。
任何你可以在flex中做的事情都可以在flash中完成,可能需要很长时间才能完成。 尽pipe如此,你不能在flex中做所有的事情。
Flex为您处理所有UI编程,让您专注于业务逻辑,使用Flash将花费大部分时间对UI进行编程。
您可以轻松地在Linux下开发Flex应用程序,但是使用Flash您根本就不能。
另一个没有在这里提出的解决scheme将是使用它们两个。 您可以使用ContainerMovieClip将柔性组件添加到Flash影片剪辑中。 您可以使用SpriteVisualElement将Flash影片剪辑添加到Flex组件。 另一件没有提到的事情就是放置你的应用程序。 这将是灵活的利弊反对闪光劣势,因为你有build立在柔性布局系统。 但是,当您同时使用它们时,您可以使用柔性布局系统来布置您的影片剪辑。
同时flex也成为Apache的顶级项目 。 而现在社会越来越被除外。
Flash和Flex是两个完全不同的东西,一个是支持动作脚本的devise工具,另一个是也有动作脚本的框架,但主要围绕基于XML的UI定义“Language”的MXML构build。