Apache flex Flex游戏:使用画布还是UIComponent?

Apache flex Flex游戏:使用画布还是UIComponent?,apache-flex,Apache Flex,对于使用FlexSDK开发简单游戏,使用画布对象与使用UIComponent对象作为绘图面相比,会产生什么后果?其中一个是否存在性能问题?这些方法大体相同吗?四处搜索,我发现的大多数示例代码似乎都使用UIComponent。这只是习惯,还是有原因 我已经知道一个奇怪的区别——我开发了一个简单的乒乓球游戏,使用: public class MyGameCanvas extends UIComponent 然后决定用画布替换UIComponent。这导致线路故障: addChild(pad

对于使用FlexSDK开发简单游戏,使用画布对象与使用UIComponent对象作为绘图面相比,会产生什么后果?其中一个是否存在性能问题?这些方法大体相同吗?四处搜索,我发现的大多数示例代码似乎都使用UIComponent。这只是习惯,还是有原因

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

    public class MyGameCanvas extends UIComponent
然后决定用画布替换UIComponent。这导致线路故障:

addChild(paddle);
花了太多时间搜索后,我终于发现画布对象需要:

rawChildren.addChild(paddle);
由于对象的继承链,精灵高于画布

但这似乎不是一个喜欢一门课而不喜欢另一门课的理由。有什么具体原因吗?谢谢

更新: 好吧,我猜画布已经出来了,UIComponent也在。我尝试画布对象的唯一原因是名称。我的意思是,这是一块画布——你不应该在那里画画吗

所以出现的第二个问题是关于使用FlexSDK的,我不知道这是一个全新的问题,还是这里可以

但是,我必须确认一点,因为我对Flex和各种术语都是新手。当人们说FlexSDK时,我认为人们的意思是我不应该在游戏中使用MXML。因为我认为FlexSDK提供了生成.swf文件的编译器。否则,我将在哪里/如何编译AS3

假设是这样的话,那么我的问题是在简单游戏中同时使用MXML和AS3是否合适。根据我对两者的了解,它们的预期用途似乎是用于接口元素的MXML,以及用于其他所有元素的AS3。开销对MXML来说有那么糟糕吗


John C>

如果您不需要画布中的其他内容,比如滚动条,这显然是您选择UIComponent的原因。画布只是一个更重的物体。

我认为使用flex sdk开发游戏毫无意义。 FlexSDK的设计考虑到了应用程序开发,所以您不应该使用它来制作游戏


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

Canvas有一堆额外的布局代码,以及滚动条。它肯定比单独的组件重。另外,重要的是要知道Canvas要求所有子类都是UIComponent的子类。使用rawChildren添加非UIComponent是一种黑客行为,除非您正在为画布上的Flex容器滚动条和面板中的边框/背景构建某种chrome


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

对于可以包含游戏的所谓“web应用程序”,Flex+Builder更适合定制UI和一般编码任务。