10

Flash 和 Flex 之间的主要区别是什么?我有超过五年的 flash 经验,并且对使用它和 ActionScript3 进行开发感到非常自在。我发现自己对 Flex 越来越好奇,想知道什么时候最好使用 flash 或 flex。另外,是不是所有可以用 MXML 完成的事情,都可以用 AS3 完成?我对 AS3 和 OOP 有深入的了解,并且想知道在 Flex 中使用 AS3 和 MXML 之间的区别。

4

7 回答 7

5

这取决于您现在使用 Flash 开发的应用程序类型。我从事 Flash 开发人员(主要是应用程序)已有 7 年了。我必须诚实地说,当 Flex 2 发布时我非常高兴,因为它具有我在 Flash 中没有的组件框架(好的组件、布局管理器……)。这是 IMO 与 Flash 和 Flex(或 Flex 框架)的最大区别。

MXML 是真正的福音,尤其是在使用数据绑定时。最后,一切都被编译成 ActionScript(检查 -keep 编译器选项),但 MXML 只是为您节省了很多时间。

于 2008-10-01T19:52:47.950 回答
5

如果您想快速构建 UI,Flex 非常棒,您可以在几个小时内模拟一个功能正常的 UI。由于它仍然可以限制某些自定义 UI,因此它并不适合所有内容,但如果某些东西“看起来”或多或少像一个应用程序并适合网格,那么在 MXML 中模拟 UI 非常快速。也不要被大多数 Flex 应用程序的外观所吓倒(丑陋,imo),您可以自定义所有内容或轻松创建自己的组件。

将 actionscript 放入 mxml 与将 css 或 javascript 放入 html = 非常糟糕。不幸的是,即使是 Adob​​e 在多个示例中也有这个(可能主要是因为它更容易和更快地进行演示)。我个人认为这也适用于绑定,因为我不想将我的数据放在 UI (mxml) 中。

作为一名经验丰富的开发人员,我确信您不会在时间线上进行任何开发(以澄清 Flash = 时间线的误解)。仍然使用 Flex,您可以将 UI 分离在一个框架中,该框架可以处理大量布局负担,以便您可以专注于业务逻辑。工作流程的其余部分与您可能已经使用 Flash 的工作流程很接近。

于 2008-10-02T00:09:38.423 回答
2

Flash 和 Flex 提供了不同的方法来生产不同的东西。我不熟悉 Flash,但我希望它依赖于以时间为导向的方式来生产某些东西,而 Flex 则面向更传统的软件开发。也就是说,不是处理 Flash 中的时间和帧,而是处理描述应使用 MXML 放置组件的位置以及这些组件如何与 ActionScript 一起工作。

还应该能够仅使用 AS3 而无需 MXML 编写 Flex 应用程序。

据我所知,Flex 中 AS3 和 MXML 之间的主要区别在于,MXML 并非旨在与应用程序逻辑一起使用,而是旨在像 HTML/CSS 一样在网页中使用,并将组件和内容放在Flex 应用程序。ActionScript 用于对行为、组件和其他外部事物或 MXML 所做的事情进行编程。因此,如果您想将一个事件附加到一个组件上,就需要编写 ActionScript 代码。

希望有帮助。我自己还在学习 Flex。

于 2008-10-01T18:25:22.403 回答
1

想到的其他一些差异:

Flash 允许您创建图形资源,然后立即使用它们。要在 Flex 中使用这些相同的东西,您需要先使用 Flash 将它们导出到 swf 或 swc。

Flex 有一个布局管理器,因此具有可变窗口大小的应用程序更容易制作。例如,您可以取一个窗口并将其设置为窗口的 90% 宽度,它会改变大小......不要介意缩放,但实际上会随着窗口变大或变小而改变它的宽度。这在 Flex 框架之外并不容易。

Flex 中的数据绑定可以节省大量时间。它基本上通过简单地说 blah="{foo}" 来创建您需要在 AS3 中编写的所有代码。花括号表示“绑定到 this”。

Flex 调试器大大优于 Flash 调试器。还有一个 Profiler。

由于我从 Flex 而不是 Flash 开始,我不确定哪种 IDE 最适合 Flash 开发,但基于 Eclipse 的 Flex Builder 非常好。代码提示很棒。子剪辑集成很棒。

真的,Flash 和 Flex 是不同的野兽。如果您想使用 Flex,您应该了解并了解 AS3,而且既然您这样做了,那么您就可以充分利用 Flex 的功能。Flash 作为一种制作更具视觉创意的作品的工具没有任何意义,但 Flex 为应用程序开发提供了很多优势。

于 2008-10-29T21:31:00.093 回答
1

我更喜欢 Flash IDE 与 Flex(我的评论又名 Flex Builder 又名 Flash Builder)

一般来说,我会说这取决于项目的规模。

我发现在 Flash 中快速启动和完成小型项目更容易。

我会建议 Flex 用于大型项目,因为它具有各种调试工具,可以为您节省大量时间(尽管我仍然会自己使用 Flash)

但也许如果你真的习惯了弯曲,那可能并不重要。

根据我的经验,Flex 的一些缺点。

  • 在一个 4 人的团队中进行大型项目时,Flex 未能保留该项目
  • 设置从一台计算机到另一台。(我们使用 SVN 共享文件)
  • 对于我们来说,Flex 经常与 SVN 发生冲突。
  • 我觉得远离艺术资产。

Flex的一些优点

  • 只需单击一个按钮,就可以跟踪从一个类到另一个类的变量引用。
  • 在调试时能够很容易地看到许多变量。无需跟踪它们。
  • Flash 过去没有自定义类代码提示,但现在有了 CS5。
  • 我认为您可以使用 Flash Player 的最新功能而无需等待新的 Flash CS#,例如 MoleHill(一种使用 GPU 的新 3d api)现在已经发布了测试版。我认为 Flex SDK 已经可以使用它了。希望这可以帮助。

需要注意的是,我是一个不喜欢 flex 的罕见案例,大多数人都非常喜欢 flex,所以你至少应该尝试一下。

于 2011-03-06T04:44:14.397 回答
0

MXML 编译为动作脚本,所以它真的是一个更高级别的版本。所以,是的,可以用 MXML 完成的所有事情都可以用 actionscript 完成(但不能反过来)。

于 2008-10-01T18:26:51.243 回答
0

闪存 CSx:

  1. GUI\Layout : 基本的 GUI 类框架
  2. 图形内容:非常适合编辑带或不带动画的图形库对象
  3. 代码:缺乏好的代码编辑器

Flex/Flash Builder + Flex 框架:

  1. GUI\Layout : 高级 GUI 类框架和布局引擎 (Flex)
  2. 图形内容:缺乏 Flash 的绘图功能,但您可以通过将它们为 ActionScript 导出到 SWC 并在 Flash Builder 中导入/引用 SWC 来包含 Flash 生成的图形。
  3. 代码:比 Flash 更好的代码编辑器;不确定它是否与 FlashDevelop 相当
  4. 其他:支持 MXML,这基本上只是另一种布局内容的方式。无需编写一堆“c = new C()”、“c.prop = x”、“c.addChild”……您可以使用 XML 构造来构造显示对象及其子对象,MXML 编译器将转换它全部回到可读性较差但基本相同的 AS3 代码。

这些技术都是相关且可互操作的。它们是 Flash 播放器和 ActionScript 技术的自然且可预测的扩展,但出于某种原因,Adobe 将 Flex/Flex-builder/MXML 技术开发为一个完全独立的产品,并将其作为一种全新且令人惊叹的产品进行营销。任何。所以现在我们必须在两者之间来回切换才能使用所有的功能,这就是 LAME。他们还必须浪费时间和资源来开发不必要但很有帮助的软件包,例如“Flex 组件工具包”,以减少将 Flash 内容导入 Flash Builder 所需的步骤。

您必须在这些应用程序之间来回切换,因为它们具有相互排斥的功能——Flash Builder 缺乏图形编辑,而 Flash CSx 缺乏 MXML 和良好的代码编辑器——但它们是可互操作的,因为您可以使用 Flex Flash 中的类,Flex 中的 Flash 类(及其嵌入的图形),您可以在没有 Flex 的情况下使用 Flash Builder 和 MXML 等。

我认为他们需要一个真正集成的单一 Flash IDE,因此他们需要将 Flash Builder 合并到 Flash CSx 编辑器中。

于 2012-02-13T22:43:30.950 回答