使用Flex的好处是什么?

问题描述:

由于Flex生成Actionscript。 为什么不使用Actionscript呢?!使用Flex的好处是什么?

对不起,我只是好奇。

Flex不生成ActionScript。 Flex编译ActionScript。无论如何,Flex是针对开发人员的Flash编程(他们不一定喜欢基于timline的矢量编辑器作为主要的开发环境)。

而且,由于Flex是一个控制台应用程序,您可以包括它的shell脚本等等等等功能

+0

你有任何控制台应用程序的例子吗?! – 2010-01-02 17:04:35

+0

在技术上,flex工具在解析MXML时创建actionscript代码。 – jedierikb 2010-01-02 18:14:06

我想反问的最佳答案是:

为什么不使用原始机器代码的所有项目?

更详细地说,Flex框架确实是用纯ActionScript编写的。它提供的不仅仅是动作本身,而且像大多数框架一样,解决了对编程语言不提供的更高级编程结构的需求。

Adob​​e Flex和的Adobe Flash的不同之处只有一两件事:

据Adobe称,:“的Adobe Flash是为设计师,Adobe Flex的是开发商。Flex是发布了开发者感觉不舒服时间表的东西谁。“

Adob​​e Flash是一个强大的工具;然而, 随着越来越多的程序员开始参与 构建丰富的互联网应用, 很快就明确表示,他们 不舒服使用绘图工具, 时间表和其他视觉面板 创建表单和其他元素, 是共同的业务 申请。

Adob​​e Flex的创建是为了解决这个程序员的 问题。如果你觉得舒服的时间表(我不是),则没有任何区别可言http://www.adobe.com/devnet/flex/videotraining/xml/vid01.html

看到这部影片。您可以使用Adobe Flash。

+0

我所从事的每个Flex项目都包含了设计人员和开发人员。我对时间表感到满意,我的大部分工作都是在Flash Builder中使用Flex完成的。 – 2010-01-02 17:51:05

+0

Flex和Flash之间的一个明显区别是,您可以在Flex中获得代码完成。 BTW-如果您觉得我们中的任何一位回答了您的问题,请点击帖子旁边的复选标记(左侧)标记为“已回答”。 – jml 2010-01-02 22:45:27

+0

@jml,我认为你不是在这里比较Flex和Flash,而是Flex Builder和Flash Professional(CS3/CS4),即工具,而最初的问题似乎与平台有关。当然,代码完成与您使用的框架无关,但与IDE无关。 – richardolsson 2010-01-03 08:52:01

我同意Flex对开发者和Flash设计师所提出的观点,但这并不能真正涵盖发生的细节。

生成Flash应用程序(SWF)有三种主要方法: 1)使用Flash应用程序 - 时间轴方法,主要针对设计人员。

2)直接编写纯动作脚本并编译(通过IDE(如FlashBuilder或命令行)),针对具有创造性flare的程序员或不介意弄脏手的设计师。

3)编写'Flex' - 通常使用FlashBuilder等IDE,但是可以在命令行上编译Flex应用程序。 Flex是MXML(一种XML标记)和ActionScript。如前所述,Flex针对的是软件开发人员,通常是那些对“创意”方面不太关注的人(将这种责任委托给其他人,例如视觉设计师)。

尽管#2和#3有很大的区别。

对于想要进行高度交互式和图形化Flash应用程序的程序员来说,ActionScript非常适合,例如一些交互式演示或游戏。要通过ActionScript创建Flash应用程序,您需要创建一个ActionScript文件,添加元数据以表明它是一个应用程序,编译器将生成一个适当且通常非常小的SWF文件。在纯粹的ActionScript级别有一些组件可用,但与Flex相比,这些组件非常轻量级,大部分工作都是通过操作Sprite对象完成的。

Flex做了很多。它为开发人员提供了丰富的skinnable组件,用于构建应用程序,组件生命周期,效果和数据绑定等等。我认为Flex更适用于某些业务领域的丰富应用程序,通常采用基于表单的应用程序的格式,尽管您可以使用它来做一些非常性感的事情,并可以引入其他地方创建的资源(例如现有的Flash资源)。

Flex应用程序有一个顶层“应用程序”对象是含有部件的层次的MXML文件。在编译/编译时,这个MXML文件被转换为ActionScript(其中有很多!有一个编译器标志,用于保存生成的ActionScript,请参阅文档以获取更多信息),最终将其编译为可以在Flash Player中运行的SWF。例如,您可以将标签,文本输入,按钮等添加到面板并将面板添加到应用程序中。用户与这些组件进行交互,然后Flash应用程序以某种方式处理输入并更新视图。数据绑定允许您将对象标记为“可绑定”,然后让Flex在绑定属性更改时自动更新其他一些属性。

Flex应用程序倾向于生成更大的SWF,但这是因为它们携带了Flex SDK的“包裹”,尽管可以使用运行时共享库​​来缓解这种情况(有点像用于Flash的DLL,但是是高级主题)或模块,这些SWF只能在Flex应用程序内运行而不是独立运行。但是,这个想法是,应用程序被加载到客户端,并且无需像传统的Web应用程序那样执行页面请求即可响应。如上所述,通过将应用程序切换到模块或使用运行时共享库​​,可以提高加载时间的感知。

说实话,我没有用我的描述来做Flex正义,但希望我能让这些差异更加清晰。

Flex框架允许开发人员比编写纯ActionScript更快速地编写应用程序。 Flex是用MXML编写的,这是一种'便利的语言',并且有许多用于编写业务应用程序的预构建组件。

但是,如果你的目标是为创意仅供参考,闪存将是作业的更好的工具。但是如果你问AS3和Flex之间的关系,我认为你不会像Flash那样在时间轴上补间事情。

如果您开始使用Flex,您会发现必须知道ActionScript才能为您的应用程序提供未提供的功能。此外,了解ActionScript将对Flex和Flash世界都有好处(您也可以编写纯粹的AS3应用程序,但根据我的经验,很少有人会这样做)。