【问题标题】:When should an oldschool flash developer use flex?老派 Flash 开发人员应该什么时候使用 flex?
【发布时间】:2010-09-14 14:37:53
【问题描述】:

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

【问题讨论】:

    标签: apache-flex flash actionscript-3 mxml


    【解决方案1】:

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

    一个人也应该能够只用 AS3 而不需要 MXML 编写一个 Flex 应用程序。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

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

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

          【讨论】:

            【解决方案5】:

            想到的其他一些差异:

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

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

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

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

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

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

            【讨论】:

              【解决方案6】:

              我更喜欢 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,所以你至少应该尝试一下。

              【讨论】:

                【解决方案7】:

                Flash CSx:

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

                Flex/Flash Builder + Flex 框架:

                1. GUI\Layout:高级 GUI 类框架和布局引擎 (Flex)
                2. 图形内容:缺少 Flash 的绘图功能,但您可以将 Flash 生成的图形导出为 ActionScript 到 SWC,然后在 Flash Builder 中导入/引用 SWC。
                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 和良好的代码编辑器——但从某种意义上说,它们是可互操作的可以在 Flash 中使用 Flex 类,在 Flex 中使用 Flash 类(及其嵌入的图形),可以在没有 Flex 的情况下使用 Flash Builder 和 MXML 等。

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2017-04-29
                  • 2011-02-08
                  • 2023-04-02
                  • 2011-04-15
                  • 2017-04-10
                  • 2012-03-19
                  • 2018-05-12
                  • 2018-12-11
                  相关资源
                  最近更新 更多