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。