Flash和Flex之间的主要区别是什么?我有超过五年的flash经验,并且使用它和ActionScript3进行开发感觉很舒服。我发现自己对Flex越来越好奇,想知道什么时候最好使用flash或flex。还有,使用MXML可以完成的一切都可以用AS3完成吗?我对AS3和OOP有很深的理解,并且想知道在Flex中使用AS3和MXML之间的差异。
答案 0 :(得分:5)
这取决于您现在使用Flash开发的应用程序类型。我已经成为Flash开发人员(主要是应用程序)已有7年。我必须诚实地说,当Flex 2发布时我非常高兴,因为它有Flash组件框架(好的组件,布局管理器......)。这是IMO Flash和Flex(或Flex框架)之间的最大区别。
MXML是一种真正的祝福,特别是在使用数据绑定时。最后,所有内容都编译成ActionScript(检查-keep编译器选项),但MXML只会为您节省很多时间。
答案 1 :(得分:5)
如果您想快速构建UI,Flex非常棒,您可以在几个小时内模拟一个正常运行的UI。由于它仍然可以限制某些自定义UI,但它并不适合所有内容,但如果某些东西应该“看起来”或多或少像应用程序并且适合网格,那么在MXML中模拟UI非常快。另外,不要害怕大多数Flex应用程序的外观(丑陋,imo),您可以自定义所有内容或轻松创建自己的组件。
将动作脚本放在mxml中与将hss中的css或javascript放在一起非常糟糕。不幸的是,甚至Adobe在多个例子中都有这个(可能主要是因为它更容易和更快的演示)。我个人认为这也适用于绑定,因为我不想将我的数据放在UI(mxml)中。
作为一名经验丰富的开发人员,我确信您不会在时间轴上进行任何开发(以澄清Flash =时间轴误解)。仍然使用Flex,您可以在框架中分离UI,以便处理布局中的大量负担,以便您可以专注于业务逻辑。其余的工作流程与您可能已经拥有的Flash相近。
答案 2 :(得分:2)
Flash和Flex提供了不同的方式来制作不同的东西。我不熟悉Flash,但我希望它依赖于以时间为导向的方式来生成内容,而Flex则面向更传统的软件开发。也就是说,不是处理Flash中的时间和帧,而是处理描述应该使用MXML放置组件的位置以及这些组件如何与ActionScript一起使用。
还应该能够编写一个只有AS3的Flex应用程序,而不需要MXML。
据我所知,Flex中的AS3和MXML之间的主要区别在于MXML并不打算与应用程序逻辑一起使用,而是打算像网页中的HTML / CSS一样使用它并放置组件和内容到Flex应用程序。 ActionScript用于编写外部的行为,组件和其他内容或MXML的功能。因此,如果要将事件附加到组件,则可以编写ActionScript代码。
希望有所帮助。我自己还在学习Flex。
答案 3 :(得分:1)
我想到的其他一些差异:
Flash允许您创建图形资源,然后立即使用它们。要在Flex中使用相同的东西,您需要先使用Flash将它们导出到swf或swc。
Flex有一个布局管理器,因此具有可变窗口大小的应用程序更容易制作。例如,您可以使用一个窗口并将其设置为窗口宽度的90%,并且它将改变大小......不要记住您的比例,但实际上在窗口变大或变小时更改其宽度。这在Flex框架之外并不容易。
Flex中的数据绑定是一个巨大的节省时间。它本质上是通过简单地说blah =“{foo}”来创建你需要在AS3中编写的所有代码。curley括号表示“绑定到此”。
Flex调试器远远优于Flash调试器。还有一个Profiler。
由于我开始使用Flex而不是Flash,我不确定哪种IDE最适合Flash开发,但基于Eclipse的Flex Builder非常好用。代码提示很棒。 Subclipse集成很棒。
真的,Flash和Flex是不同的野兽。如果您想使用Flex,您应该了解并理解AS3,并且既然如此,您就可以充分利用Flex的功能。 Flash不会作为制作更具视觉创意的工具的任何工具,但Flex为应用程序开发提供了很多优势。
答案 4 :(得分:1)
我更喜欢Flash IDE vs Flex(也就是Flex Builder又名Flash Builder,我的评论)
总的来说,我会说这取决于项目的规模。
我发现在Flash中快速启动和完成小项目更容易。
我会建议Flex更大的项目,因为它有各种调试工具,可以节省你很多时间(虽然我仍然只是使用Flash我自己)
但也许如果你真的习惯弯曲,那可能无关紧要。
从我的经验来看,有些是Flex。Flex的一些优点
应该注意的是,我是一个罕见的情况,不喜欢弹性,大多数人强烈喜欢弹性,所以你应该至少尝试一下。
答案 5 :(得分:0)
MXML编译为动作脚本,因此它真的像是更高级别的版本。所以,是的,MXML可以完成的一切都可以用actionscript完成(但不是相反)。
答案 6 :(得分:0)
这些技术都是相关的,可互操作的。它们是Flash播放器和ActionScript技术的自然和可预测的扩展,但由于某种原因,Adobe开发了Flex / Flex-builder / MXML技术作为一个完全独立的产品,并将其作为一种全新的产品推向市场并且令人惊叹。随你。所以现在我们必须在两者之间来回使用所有功能,即LAME。他们还必须浪费时间和资源来开发不必要但有用的软件包,例如“Flex Component Kit”,以减少将Flash内容导入Flash Builder所需的步骤数。
你必须在这些应用程序之间来回切换,因为它们具有相互排斥的功能 - Flash Builder缺少图形编辑,Flash CSx缺少MXML和良好的代码编辑器 - 但它们在你意义上是可互操作的可以在Flex中使用Flash类,Flash类(及其嵌入式图形)中的Flex类,可以使用不带Flex等的Flash Builder和MXML。
我认为他们需要一个真正集成的Flash IDE,因此他们需要将Flash Builder合并到Flash CSx编辑器中。