老派flash开发人员什么时候应该使用flex?

时间:2008-10-01 18:15:11

标签: flex flash actionscript-3 mxml

Flash和Flex之间的主要区别是什么?我有超过五年的flash经验,并且使用它和ActionScript3进行开发感觉很舒服。我发现自己对Flex越来越好奇,想知道什么时候最好使用flash或flex。还有,使用MXML可以完成的一切都可以用AS3完成吗?我对AS3和OOP有很深的理解,并且想知道在Flex中使用AS3和MXML之间的差异。

7 个答案:

答案 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。

  • 在4人团队中工作时 大型项目,Flex未能保留 项目
  • 从一台计算机到另一台计算机的设置。 (我们使用SVN共享文件)
  • Flex为我们不断与SVN发生冲突。
  • 我觉得自己远离艺术资产。

Flex的一些优点

  • 只需点击一下按钮即可跟踪从一个类到另一个类的变量引用。
  • 在调试时能够轻松看到许多变量。无需跟踪它们。
  • 和Flash曾经没有自定义类代码提示,但现在使用CS5。
  • 我认为您可以使用Flash Player的最新功能,无需等待新的Flash CS#,例如MoleHill(一种使用GPU的新3d api)现在已经发布了测试版。我认为Flex SDK已经可以使用它了。 希望这有帮助。

应该注意的是,我是一个罕见的情况,不喜欢弹性,大多数人强烈喜欢弹性,所以你应该至少尝试一下。

答案 5 :(得分:0)

MXML编译为动作脚本,因此它真的像是更高级别的版本。所以,是的,MXML可以完成的一切都可以用actionscript完成(但不是相反)。

答案 6 :(得分:0)

Flash CSx:

  1. GUI \ Layout :基本GUI类框架
  2. 图形内容:非常适合编辑带或不带动画的图形库对象
  3. 代码:缺乏良好的代码编辑器
  4. Flex / Flash Builder + Flex Framework:

    1. GUI \ Layout :高级GUI类框架和布局引擎(Flex)
    2. 图形内容:缺乏Flash的绘图功能,但您可以通过将ActionScript导出到SWC并在Flash Builder中导入/引用SWC来包含Flash生成的图形。
    3. 代码:比Flash更好的代码编辑器;不确定它是否与FlashDevelop相同
    4. 其他:支持MXML,这基本上只是另一种布局内容的方式。而不是写一堆“c = new C()”,“c.prop = x”,“c.addChild”...你可以使用XML结构构建显示对象和他们的孩子,MXML编译器将转换它所有这些都回到了不太可读,但基本相同的AS3代码。
    5. 这些技术都是相关的,可互操作的。它们是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编辑器中。