在决定我宁愿开发Actionscript项目之前,我已经使用Flex大约一年了.
当时,似乎框架对于我正在处理的工作来说太沉重了,主要是小型Web应用程序,个人网站,这类组合.我还认为Flex就像一个奇怪的混合体,针对经验丰富的开发人员,但与此同时,添加一些似乎针对初学者的功能向导.它在某些领域似乎过于复杂,而在另一些领域则显得过于基本.
另一方面,IDE很棒,绝对不能与Flash CS IDE比较,所以对我来说,坚持AS3项目并使用Flex,现在FlashBuilder编写我的代码是有意义的.
(我需要指出的是,我不是Flash设计师,因此使用Flash CS绝不是一种选择.)
我看了Flex框架已经有一段时间了,我想知道其他Flex/Flash开发人员在这个问题上的立场.
您是否只考虑Flex用于企业级项目?使用一个优于另一个有什么好处?如果您是Flash开发人员并转移到Flex,那么您的动机是什么?如果您正在创建Flex和Actionscript项目,那么您的选择标准是什么?
编辑:
虽然我收到了很好的答案,但我很想知道Flex的用户,使用Flex超过纯ActionScript项目的主要实际动机(与哲学相反:)是什么?
序言:我的经验主要是使用Flash IDE(FIDE)和Flash Builder 4(FB4)组合构建的AS3项目.
我通常比Flex项目更喜欢纯AS3(PAS3)项目,原因如下:
大小 - Flex项目的最小尺寸比PAS3项目大得多.不适合轻量级应用.
性能 - Flash的性能并不为人所知,复杂的Flex应用程序所需的布局计算将会影响最终用户的机器.对他们而言,事情最终会感觉缓慢,无反应或"笨拙".不幸的是,这意味着Flex可能最具吸引力的应用程序(即非常复杂,适应性强的用户界面)是它绊倒的确切位置.最后,您最终会编写所有这些奇怪的性能增强优化代码,这些代码可以消除您使用内置布局系统所获得的大部分时间.
隐喻和外观 - Flex旨在允许开发人员为最终用户提供成熟,灵活的UI,该UI具有与本机应用程序相同的小部件和窗口小部件行为.但是,由于上面回答的性能问题,UI从未像本机应用程序那样感觉良好或响应.此外,它缺少最终用户习惯并期望的所有特定于操作系统的特性.我真的不明白尝试模仿本机应用程序开发或行为的动机 - 你永远不会赢得那场斗争.最好是制作独立的东西,这是大多数本机Web应用程序正在做的事情.
灵活性 - 与之前的论点相吻合,Flash的主要优势在于它能够执行传统UI小部件库无法做到的事情(至少不是很容易).你可以在Flash中创建一些真正非常新颖的UI,这些UI在本机应用程序中并不实用,而不会在OpenGL中乱搞.使用Flex使得很难再创造新的UI(但它确实使创建标准的用户界面非常容易,即使是这样,在我看来,子 -标准UI).
我很好奇是否有人在任何流行的公共网站上使用Flex的一些好例子.Grooveshark是我所知道的唯一一个(这是非常好的,但是我遇到了许多问题,特别是在Flash X性能仍然很差的OS X上).
但是 - 这是一个权衡.永远记住你的时间是宝贵的.你的用户可能会接受一个稍微笨拙,有点混乱的界面,如果它让他们真的很酷的东西,这意味着你现在可以释放它而不是以后.这带来了PAS3开发的主要缺点:
努力与奖励 - 您必须编写所有自己的UI.所有的.这可能会导致一些非常非常臃肿的代码,您必须为要创建的每个按钮定义大量的事件侦听器.我不知道有多少次我写过各种特定于我正在处理的布局代码.您可以尝试为这些(我已经完成)编写自己的抽象类,但在某些时候,您最终将重新实现Flex框架.非常值得你花时间.
开发 - 您可以使用Flash Builder 4,在这种情况下,您必须手动构建每个图形资产(这需要永远),或者您使用FIDE,在这种情况下,您可以制作可爱的艺术品但是你被卡住了使用石器代码IDE,并且需要forrrrrreeeeeeevvvvver来编译任何东西.目前我使用混合设置,在FIDE中生成的艺术作品会自动导入到我的FB4项目中,但即使这样也不是一个完美的解决方案.他们真的需要更好地整合.
要记住的另一组事情:Flash糟透了.
Flash很糟糕.不要尝试在Flash中重新实现Web浏览器.Flash实际上非常擅长显示相对少量的文本,这是不可选择的(并且,通过使用嵌入字体,总是像素完美),但不要尝试在Flash项目中创建大型,广泛的文本文档.首先,性能将是糟糕的,其次,用户将期望文本的行为与其他大型文本字段在其本机应用程序(特别是其Web浏览器)中的行为相同.在Flash中选择文本感觉不对,因为它不会感觉您的操作系统是如何做到的.
Flash在鼠标和键盘输入方面表现不佳 - 它不断与封闭的浏览器进行对战.如果您的系统需要其中任何一种,用户需要先点击它.不要陷入陷阱,人们会因为输入错误的地方而感到困惑.
Flash是一种表现难题 - 我们都听过这个,它并不像人们想的那么多,但它确实意味着你必须对系统的性能进行大量的考虑. .您的UI在使用时应该以稳定的60FPS运行,如果用户没有与之交互,则不应该使用太多的CPU.如果您的FPS低于60,那么与原生或HTML5用户界面相比,您的用户界面会感觉缓慢而且有吸引力.还要确保注意内存泄漏.
最后:用户的头脑.这两种方法都只是你工具库中的工具.