Flex项目与Actionscript项目的缺点?

时间:2009-10-20 09:34:25

标签: flex actionscript

我最近开始在FlexBuilder中制作游戏。该游戏目前是一个Flex项目。

使用Flex而不仅仅是Actionscript有什么缺点吗?

一位朋友的朋友告诉我,Flex比一个Actionscript项目慢。我一直无法在互联网上验证这一点;这个说法有什么道理吗?

谢谢!

6 个答案:

答案 0 :(得分:17)

  • 如果您正在开发游戏,则应该使用ActionScript项目。 Flex仅用于数据驱动的应用程序和用户界面。
  • flex编译器会生成大量中间代码,以便将mxml文件转换为actionscript(如果使用-keep编译器选项进行编译,则可以查看这些文件)。此代码(包含在您的SWF中的flex框架)显着增加了大小。
  • 使用textfield(“hello world”)和带有相同文本标签的flex项目创建actionscript项目。构建它们,转到bin-debug文件夹并比较文件大小。动作脚本只有几千字节,而flex swf至少为100 kB。
  • 就速度而言,由于flex框架位于动作脚本之上,因此显然会有性能下降。
  • flex的优点在于易于创建UI组件和开发经常与服务器通信的数据驱动应用程序。
  • 除非您确实需要,否则不要使用它。

答案 1 :(得分:2)

如果您了解flex并且它可以帮助您更快地发展 - 请在flex中进行。

下载大小对于拥有大量资产的游戏无关紧要。最流行的Flash游戏大小为5 MB甚至更多。 (例如在kongregate上)

你可以用纯动作脚本制作游戏的关键部分。将数百个 UIComponents 放置到 Canvas 在Flex中可能不会减慢,但Flex rending技术会阻止对象的平滑动画。

结论: Flex是为了快速发展。您可以使用它的易于换肤的组件菜单。即使没有Flex UI组件,绑定也很重要,让生活更轻松。

答案 2 :(得分:1)

在互联网上下载尺寸=速度。你可以制作的游戏越小,加载的速度就越快。大小也等于ActionScript等解释语言的速度,执行的代码越少,运行的速度就越快。手动编写ActionScript例程可能会让您比Flex的通用方法更快。

也就是说,也许你愿意支付这笔费用,以避免在纯ActionScript中编写很多实用程序类。例如,在Flex中,您的高分屏幕将更容易实现,这对您来说可能是值得的开销。如果您的高分屏幕稍微慢一点也没关系,因为它不像实际游戏那样实时。

还要考虑你的时间成本。通过使用Flex,您可以比在ActionScript中手动编写应用程序更快地完成应用程序的这些部分。除非您的时间是免费的,否则您应该考虑如何与Flex开销的带宽成本进行交易。可能是因为支付带宽比制作更高效的程序更便宜。

答案 3 :(得分:1)

一旦Flex AS3应用程序完全加载,它就不一定比Pure AS3应用程序运行得慢 - 最终所有内容都被编译成字节码,而Flex App就像一个使用很多其他类的AS3应用程序。 / p>

将Flex Framework视为一组允许您更快地完成任务的快捷方式,但实际成本是您的项目充满了更多代码 - 即使您实际编写的代码较少,而且你永远不必看到额外的代码。

我不同意Flex应该只用于复杂数据驱动应用程序的断言,尽管它对这些项目肯定非常有用。您可以将它用于任何事情,只要您了解最终产品(您导出的.swf)将比原本要大得多。

如果拥有一个大的.swf对你来说并不是那么大(可能不是,取决于你正在做什么),那么我会说尝试给Flex一个,因为ArrayCollection,RemoteObject和Data-绑定将为您节省数小时的挫败感和数百行代码。

但是,如果您想确保您的最终应用程序尽可能小巧高效,请在纯AS3中进行操作,并根据需要选择加入更高级的库。

答案 4 :(得分:0)

Flex提供了构建富Internet应用程序的框架。如果您的游戏需要复杂的GUI(例如RPG),那么它可能会很有用。否则,如果您想要做的就是构建游戏,它会添加会使事情复杂化的层。

答案 5 :(得分:0)

如上所述,第一点是唯一的饮料是记忆消耗。但如果你用纯AS脚本写,你需要在截止日期的战斗中。由于flex提供了许多可定制的comps。你可以使用Class文件而不是保存Memory的MX Comps。除非正在使用,否则不要创建任何组件。模块和RSL有助于实现peretainity