Apache flex Flex项目与Actionscript项目

Apache flex Flex项目与Actionscript项目,apache-flex,flash,frameworks,Apache Flex,Flash,Frameworks,在决定开发Actionscript项目之前,我已经使用Flex大约一年了 当时,对于我正在处理的工作来说,框架似乎太重了,主要是小型web应用程序、个人网站、公文包之类的东西。我还认为Flex就像一个奇怪的混合体,面向经验丰富的开发人员,但同时添加了一些似乎面向初学者的函数向导。它在某些领域似乎过于复杂,而在另一些领域则过于基本 另一方面,IDE很棒,绝对无法与Flash CS IDE相比,因此对我来说,坚持使用AS3项目并使用Flex(现在的FlashBuilder)来编写代码是有意义的 我需

在决定开发Actionscript项目之前,我已经使用Flex大约一年了

当时,对于我正在处理的工作来说,框架似乎太重了,主要是小型web应用程序、个人网站、公文包之类的东西。我还认为Flex就像一个奇怪的混合体,面向经验丰富的开发人员,但同时添加了一些似乎面向初学者的函数向导。它在某些领域似乎过于复杂,而在另一些领域则过于基本

另一方面,IDE很棒,绝对无法与Flash CS IDE相比,因此对我来说,坚持使用AS3项目并使用Flex(现在的FlashBuilder)来编写代码是有意义的

我需要指出的是,我不是一个Flash设计师,所以使用Flash CS从来都不是一个选择

我已经有一段时间没有看过Flex框架了,我想知道其他Flex/Flash开发人员在这个问题上的立场

你只考虑企业级项目的Flex吗?使用其中一个的优点是什么?如果您是一名Flash开发人员,并转到Flex,您的动机是什么?如果您同时创建Flex和Actionscript项目,您的选择标准是什么

编辑:


虽然我收到了一个很好的答案,但我还是很想听听Flex用户的意见,与哲学相比,您主要的实践动机是什么:在纯Actionscript项目上使用Flex?

序言:我的经验主要是使用Flash IDE FIDE和Flash Builder 4 FB4组合构建AS3项目

与Flex项目相比,我通常更喜欢纯AS3 PAS3项目,原因如下:

大小-Flex项目的最小大小比PAS3项目大得多。不适用于轻量级应用程序。 性能-Flash的性能不为人知,复杂的Flex应用程序所需的布局计算将影响最终用户的机器。对他们来说,事情最终会变得缓慢、无反应或僵硬。不幸的是,这意味着Flex最吸引人的应用程序,即非常复杂、适应性强的UI,恰恰是它遇到挫折的地方。最后,您将编写所有这些奇怪的性能增强优化代码,这些代码将占用您从使用内置布局系统中获得的大部分时间。 隐喻和外观-Flex旨在允许开发人员为最终用户提供成熟、灵活的UI,该UI具有与本地应用程序相同的小部件和小部件行为。然而,由于上面提到的性能问题,UI从来没有像本机应用程序那样感觉良好或响应迅速。此外,它还缺少最终用户习惯的和预期的所有特定于操作系统的特性。我真的不明白模仿本地应用程序开发或行为的动机——你永远不会赢得这场战斗。最好做一些独立的东西,这是大多数原生web应用程序正在做的事情。 灵活性——与前面的观点一致,Flash的主要优势是它能够做传统UI小部件库无法做的事情,至少不是很容易做到。你可以在Flash中制作一些非常非常新颖的UI,这些UI在本机应用程序中并不实用,而不用OpenGL。使用Flex使创建新的UI变得很困难,但它确实使创建标准UI变得更容易,即使在我看来,它是次标准UI。 我很好奇,是否有人在流行的公共网站上使用Flex的好例子。是我所知道的唯一一个相当不错的,但也有我所概述的许多问题,特别是在OS X上,闪存性能仍然很差

然而,这是一种权衡。永远记住你的时间是宝贵的。你的用户可能会接受一个略显笨拙、略显混乱的界面,如果它能让他们做一些非常酷的事情,这意味着你可以现在发布它,而不是以后发布。这带来了PAS3开发的主要缺点:

努力与回报-你必须为自己的用户界面编程。所有这些。这可能导致一些非常非常臃肿的代码,您必须为要创建的每个按钮定义大量的事件侦听器。我不知道我写了多少次针对我所做的工作的各种布局代码。您可以尝试为这些抽象类编写自己的抽象类,我已经完成了这些抽象类的编写,但在某个时候,您最终将重新实现Flex框架。不值得你花时间。 开发-您可以只使用Flash Builder 4,在这种情况下,您必须用代码手工构建每一个图形资产,这需要花费很长时间;或者您可以使用FIDE,在这种情况下,您可以制作可爱的艺术品,但您必须使用石器时代的代码IDE,并且需要ForrrReeeevvver来编译任何东西。目前,我使用混合设置,其中艺术生成 FIDE自动导入到我的FB4项目中,但即使这样也不是一个完美的解决方案。它们确实需要更好地整合。 另一套需要记住的东西是:Flash很烂的东西

Flash对文本很差。不要试图在Flash中重新实现web浏览器。Flash实际上非常擅长显示相对较少的不可选择的文本,并且通过使用嵌入式字体,总是像素级的,但是不要试图在Flash项目中创建大的、扩展性的文本文档。首先,性能会很糟糕,其次,用户会期望文本的行为与本机应用程序中所有其他大型文本字段的行为相同,特别是在他们的web浏览器中。在Flash中选择文本感觉不正确,因为它感觉不到操作系统是如何操作的。 Flash不能很好地使用鼠标和键盘输入——它经常与封闭的浏览器争夺焦点。如果你的系统需要这些东西,用户需要先点击它。不要陷入一个人们会感到困惑的陷阱,因为他们的输入到了错误的地方。 Flash是一个性能猪-我们都听说过这一点,它几乎不像人们想的那样是一个问题,但它确实意味着您必须对系统的性能投入大量的精力。您的UI在使用时应该以稳定的60FPS运行,并且在用户不与它交互时不应该使用太多CPU。如果您的FPS降至60以下,那么与本机或HTML5UI相比,您的UI将感觉缓慢而僵硬。还要确保注意内存泄漏。
最后:用你的头脑。这两种方法都只是你武库中的工具。

序言:我的经验主要是使用Flash IDE FIDE和Flash Builder 4 FB4组合构建AS3项目

与Flex项目相比,我通常更喜欢纯AS3 PAS3项目,原因如下:

大小-Flex项目的最小大小比PAS3项目大得多。不适用于轻量级应用程序。 性能-Flash的性能不为人知,复杂的Flex应用程序所需的布局计算将影响最终用户的机器。对他们来说,事情最终会变得缓慢、无反应或僵硬。不幸的是,这意味着Flex最吸引人的应用程序,即非常复杂、适应性强的UI,恰恰是它遇到挫折的地方。最后,您将编写所有这些奇怪的性能增强优化代码,这些代码将占用您从使用内置布局系统中获得的大部分时间。 隐喻和外观-Flex旨在允许开发人员为最终用户提供成熟、灵活的UI,该UI具有与本地应用程序相同的小部件和小部件行为。然而,由于上面提到的性能问题,UI从来没有像本机应用程序那样感觉良好或响应迅速。此外,它还缺少最终用户习惯的和预期的所有特定于操作系统的特性。我真的不明白模仿本地应用程序开发或行为的动机——你永远不会赢得这场战斗。最好做一些独立的东西,这是大多数原生web应用程序正在做的事情。 灵活性——与前面的观点一致,Flash的主要优势是它能够做传统UI小部件库无法做的事情,至少不是很容易做到。你可以在Flash中制作一些非常非常新颖的UI,这些UI在本机应用程序中并不实用,而不用OpenGL。使用Flex使创建新的UI变得很困难,但它确实使创建标准UI变得更容易,即使在我看来,它是次标准UI。 我很好奇,是否有人在流行的公共网站上使用Flex的好例子。是我所知道的唯一一个相当不错的,但也有我所概述的许多问题,特别是在OS X上,闪存性能仍然很差

然而,这是一种权衡。永远记住你的时间是宝贵的。你的用户可能会接受一个略显笨拙、略显混乱的界面,如果它能让他们做一些非常酷的事情,这意味着你可以现在发布它,而不是以后发布。这带来了PAS3开发的主要缺点:

努力与回报-你必须为自己的用户界面编程。所有这些。这可能导致一些非常非常臃肿的代码,您必须为要创建的每个按钮定义大量的事件侦听器。我不知道我写了多少次针对我所做的工作的各种布局代码。您可以尝试为这些抽象类编写自己的抽象类,我已经完成了这些抽象类的编写,但在某个时候,您最终将重新实现Flex框架。不值得你花时间。 开发-您可以只使用Flash Builder 4,在这种情况下,您必须用代码手工构建每个图形资产,这需要花费很长时间,或者您可以使用FIDE,在这种情况下,您可以制作可爱的艺术品,但 你被石器时代的代码IDE困住了,需要rrrrreeeeevvver来编译任何东西。目前,我使用一种混合设置,将在FIDE中生成的艺术自动导入到我的FB4项目中,但即使这样也不是一个完美的解决方案。它们确实需要更好地整合。 另一套需要记住的东西是:Flash很烂的东西

Flash对文本很差。不要试图在Flash中重新实现web浏览器。Flash实际上非常擅长显示相对较少的不可选择的文本,并且通过使用嵌入式字体,总是像素级的,但是不要试图在Flash项目中创建大的、扩展性的文本文档。首先,性能会很糟糕,其次,用户会期望文本的行为与本机应用程序中所有其他大型文本字段的行为相同,特别是在他们的web浏览器中。在Flash中选择文本感觉不正确,因为它感觉不到操作系统是如何操作的。 Flash不能很好地使用鼠标和键盘输入——它经常与封闭的浏览器争夺焦点。如果你的系统需要这些东西,用户需要先点击它。不要陷入一个人们会感到困惑的陷阱,因为他们的输入到了错误的地方。 Flash是一个性能猪-我们都听说过这一点,它几乎不像人们想的那样是一个问题,但它确实意味着您必须对系统的性能投入大量的精力。您的UI在使用时应该以稳定的60FPS运行,并且在用户不与它交互时不应该使用太多CPU。如果您的FPS降至60以下,那么与本机或HTML5UI相比,您的UI将感觉缓慢而僵硬。还要确保注意内存泄漏。
最后:用你的头脑。这两种方法都只是你的武器库中的工具。

感谢你花时间给出一个非常全面的答案。我同意你的观点,这也是我发布这个问题的原因。丢弃Flex时我是否遗漏了什么?至于Flash的性能和缺点,你完全正确,但这不是我的问题所在,因为正如你所指出的,对Flash来说,任何正确的东西对Flex来说都可能更糟。感谢你花时间给出一个非常全面的答案。我同意你的观点,这也是我发布这个问题的原因。丢弃Flex时我是否遗漏了什么?至于Flash的性能和缺点,你是绝对正确的,但这不是我的问题所在,因为正如你所指出的,对Flash来说,任何正确的东西对Flex来说都可能更糟。