【问题标题】:Flash vs. Flex: Why not skip Flex and use AS3's URLLoader + server code entirely?Flash 与 Flex:为什么不跳过 Flex 并完全使用 AS3 的 URLLoader + 服务器代码?
【发布时间】:2009-12-08 17:30:23
【问题描述】:

我熟悉大多数 Flash 与 Flex 的比较,其中大多数都提出了“Flex 更适合 RIA,而 Flash 更适合设计工作”的一些版本。

但是,使用 URLLoader 类 + 服务器端代码编写复杂的 RIA 是不是完全有可能?在这方面,除了一组方便的用户控件之外,我还不清楚 Flex 提供了什么。

我问的原因是我正在开始一个相当复杂的 Flash 片段,它需要大量往返于数据库。我希望避免在等式中引入新框架,但又不想受到性能的影响,将问题缩小。

谢谢。

T

【问题讨论】:

    标签: apache-flex flash urlloader


    【解决方案1】:

    如果您在基本 Flash 之上只需要发出 HTTP 请求以从服务器获取数据,那么请继续使用 URLLoader。

    在以下情况下使用 Flex:

    1. 您确实想要那个漂亮的 GUI 库。 (这可以像使用 Flex 的自动布局工具一样简单,例如 VBoxes。)
    2. 您想像传统软件一样从命令行编译您的应用程序。 (这独立于 Flex 框架。Flex SDK 构建工具也可以构建普通的旧 AS3 项目。)
    3. 您希望在传统的软件开发 IDE(Flex/Flash Builder)中构建您的应用程序,而不是在以图形和动画为中心的 Flash Professional 环境中。
    4. 您的 UI 在 MXML 中声明比在 Flash Professional 中以图形方式构建更好。

    【讨论】:

    • 我真的不明白人们对#2 的迷恋。如今,几乎所有带有 GUI 的程序都有 IDE 来混淆命令行垃圾。包括 Mac 上的任何东西,Visual Studio 中 90% 的东西,基本上任何游戏。此外,任何命令行选项都可以作为常规的旧 GUI 选项使用。这是一个非常薄弱的​​论点。
    • 命令行在创建构建脚本(maven 等)时提供了更大的灵活性
    • 在我的特殊情况下,这是因为我负责的其中一个 Web 应用程序具有在 Flex 和纯 AS3 中实现的部分,但在其他方面是传统的 HTML/JS 应用程序。在打包部署到 Web 服务器之前,该应用程序已经使用 Makefiles 构建。只需将 *.as 和 *.mxml 文件检入源代码库并从中生成 *.swf 文件以及构建此站点的所有其他内容,这是有意义的。另一种方法是,每当 *.as 或 *.mxml 发生变化时,我必须记住在与包构建机器不同的机器上启动一些 IDE。
    • 参数#2 和#3 很奇怪。使用 Flex 与 IDE 偏好关系不大,多年来我一直在使用 mxmlc 做纯 as-projects,但我几乎从不使用 Flex。
    【解决方案2】:

    是的,我想可以使用URLLoader 类 + 服务器端代码来编写 RIA——但 Flex 使编写它们变得更容易。

    [Bindable]
    我相信使用 Flex 使 RIA 开发更容易的主要功能之一是数据绑定。

    例如,您可以轻松地将httpservice.lastResult 分配给DataGrid 的dataProvider 并忘记它。在 Flash 中,您需要在每次触发 complete 事件时手动解析并重新创建 dataProvider - 虽然这有时在性能和内存管理方面可能是有效的(假设我们设计得很好),但与 Flex 相比需要一些努力使用单线的方法。

    XMLListCollectionArrayCollection 之类的类也使用 flex 让事情变得更简单。

    【讨论】:

      【解决方案3】:

      Flash 用于演示/视觉/漂亮的东西。 Flex 适用于数据。

      我不敢苟同!

      使用 Flex SDK,您可以开发“纯” AS3 代码,其执行方式和外观与使用 Flash IDE 执行的操作完全相同。 Flex 是一个用于开发 RIA 的 AS3 框架,但首先它是一个 AS3 框架。

      在 Flex/FlexBuilder 出现之前,很多 Flex 开发人员都在使用 Flash。我只是认为,如果您从事“纯”开发并且不需要 Flash IDE 的所有绘图工具,那么使用文本编辑器和 flex sdk 会感觉更舒服。

      我有时在我的弹性代码中使用 URLLoader,而其他时候我使用 RemoteObject 或 HTTPService,我认为没有任何规则。

      【讨论】:

        【解决方案4】:

        如果您要多次往返于数据库,我认为考虑使用 Flex 是个好主意,因为您将能够使用更快、更简洁的 AMF 协议而不是 HTTP/ RESTful 协议,通常速度较慢且“重量级”。

        【讨论】:

          【解决方案5】:

          Flex 提供了一套相当不错的 UI 控件,在处理大量数据时可以节省大量时间。您曾经在 Flash 中构建过控件吗?很难做到正确且没有错误。这就是第一大原因。

          此外,Flex,尤其是 Flash Builder 4,具有现有和即将推出的功能,可以更好地与所有类型的数据源交互。

          Flash 用于演示/视觉/漂亮的东西。 Flex 适用于数据。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-09-07
            • 1970-01-01
            • 2010-09-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多