【问题标题】:Flex Games: Using Canvas Versus UIComponent?Flex 游戏:使用 Canvas 与 UIComponent?
【发布时间】:2010-12-05 15:42:01
【问题描述】:

对于使用 Flex SDK 开发简单游戏,使用 Canvas 对象而不是 UIComponent 对象作为绘图表面的后果是什么?两者都存在性能问题吗?方法一般都一样吗?环顾四周,我发现的大多数示例代码似乎都使用 UIComponent。这只是习惯,还是有原因?

我已经知道一个奇怪的区别 - 我开发了一个简单的乒乓球游戏,使用:

    public class MyGameCanvas extends UIComponent

然后决定用 Canvas 替换 UIComponent。这导致线路失败:

addChild(paddle);

花了太多时间搜索后,我终于发现一个 Canvas 对象需要:

rawChildren.addChild(paddle);

由于对象的继承链,Sprites 高于 Canvas。

但这似乎不是偏爱一个班级而不是另一个班级的理由。 有什么具体原因吗?谢谢。

更新: 好吧,我猜 Canvas 出局了,而 UIComponent 入局了。我什至尝试使用 Canvas 对象的唯一原因就是名称。我的意思是,它是一个 Canvas - 这不是你应该画的地方吗? :)

所以弹出的第二个问题是关于使用 Flex SDK 的(我不知道这是否应该是一个全新的问题,或者这里还可以)。

但是,我必须确认一些事情,即对 Flex 和各种术语不熟悉。我假设人们的意思是我不应该将MXML用于游戏,当他们说Flex SDK时。因为我认为 Flex SDK 提供了生成 .swf 文件的编译器。否则,我什至会在哪里/如何编译 AS3?

假设是这种情况,那么我的问题是关于将 MXML 和 AS3 用于(简单)游戏的适用性。根据我对这两者的了解,似乎它们的预期用途是 MXML 用于界面元素,而 AS3 用于其他一切。开销对 MXML 有那么糟糕吗?

约翰 C>

【问题讨论】:

    标签: apache-flex


    【解决方案1】:

    我认为使用 flex sdk 开发游戏完全没有意义。 Flex SDK 的设计考虑了应用程序开发,因此您不应使用它来制作游戏。

    您是否有特定的理由使用它而不是普通的 AS3 项目?

    【讨论】:

    • 对于可以包含游戏的所谓“网络应用程序”,Flex + Builder 更适合自定义 UI 和一般编码任务。
    【解决方案2】:

    Canvas 有一堆额外的布局代码,以及滚动条。它绝对比单独的 UIComponent 更重。此外,重要的是要知道 Canvas 要求所有子类都是 UIComponent 的子类。使用 rawChildren 添加非 UIComponent 是一种技巧,除非您正在为 Flex 容器构建某种“chrome”(Canvas 上的滚动条和 Panel 中的边框/背景)。

    不过,我同意 PeZ。 Flex 框架可能不是游戏的正确选择。除非你有一个包含数据网格、树、图表等的游戏 UI,否则你可以在没有 Flex 的情况下获得更小、更优化的 SWF。

    【讨论】:

      【解决方案3】:

      如果你不需要画布中的其他东西,比如滚动条,那显然是更喜欢 UIComponent 的一个原因。画布只是一个更重的物体。

      【讨论】:

        猜你喜欢
        • 2011-02-05
        • 2013-04-23
        • 2011-01-17
        • 1970-01-01
        • 2013-09-14
        • 1970-01-01
        • 1970-01-01
        • 2010-12-05
        • 1970-01-01
        相关资源
        最近更新 更多