如果我理解正确 - 客户端Flash和Flex之间的主要区别在于Flex需要加载其他文件才能使Flex工作。
是这种情况,如果是这样,与Flash应用程序相比,Flex加载了多少数据?
谢谢!
答案 0 :(得分:2)
Flex实际上编译的结果是biger文件而不是Flash,因为添加了Frameworks。
关于差异 - 它会有所不同,具体取决于您在项目中使用的实际库。
无论如何 - 我认为Flex文件的质量应该考虑文件大小。 对于一个严肃的项目,差异通常是大约2倍biger文件大小(当我们谈论文件大小通常不超过几kb时,这是什么),但我会交换更大的尺寸,以获得更高的质量和编程时间甚至花费一个简单的任务。
关于加载其他文件。 您可以使用Flash Builder(Flex)提供的3种方法。 例如,如果您选择“框架链接”为“合并到代码” - 不会加载任何外部库,所有内容都应嵌入您的结果文件中。 如果您选择“Framework Linkage”为“运行时共享库(RSL)”,那么将从您的服务器加载库。无论如何 - 考虑到这种方法会产生非常小的文件大小,并且您只会从外部源加载一次库,下次加载文件时 - 不会加载任何外部库(如果没有任何更改,框架我的意思是。)
答案 1 :(得分:1)
Flex带来的开销很大。您可以执行以下实验:在Flash Builder中创建一个空项目,然后在Flash CS5中创建并编译它。
Flex项目为1024 KB。该应用程序本身的容量为41 KB,其余大部分位于Flex框架,Spark框架和文本布局库中。 (基于您带来的库,结果肯定是不同的)
Flash项目为4 KB。
但是,没有理由避免使用Flex。请记住,这些库(SWC)是缓存的。您只需要为每个项目加载一次。
此外,更重要的是,Flex项目不是网站。它们不是您网站中嵌入的小型Flash电影。它们是完整的应用程序。它们往往是与数据密切配合的业务线应用程序。作为一个应用程序框架,我不反对1 MB大小的开销。我无法在Flash中轻松或高效地完成我在Flex中所做的工作。从这个角度来看,Flash和Flex是用于不同工作的不同工具。
换句话说,对于我使用Flex的客户,他们从不抱怨下载的大小。它根本不是他们关心的应用程序解决方案的环境/需求。如果我选择Flex用于错误的目的,我会期望故事会有所不同。
答案 2 :(得分:0)
Flex编译器创建的Flash影片不会加载某些Flash Player要加载的“附加文件”。
即使原始形式的问题是询问有关在客户端加载文件的问题,我想我们可以扩展Flex与Flash的对比。 Flex应用程序就是应用程序,因此最小的Flex swf总是比最小的Flash swf大。它们不一样,因此比较它们除了观察它们是两个不同的东西之外没什么价值。
答案 3 :(得分:0)
Flex 3引入了“框架RSL”功能,允许Flex框架与主应用程序SWF分开加载。这可以显着降低整体Flex应用程序的大小:
http://ted.onflash.org/2007/06/flex-3-thursday-dramatically-smaller.php
RSL体系结构的另一个好处是签名的Flex框架RSL(.SWZ文件)存储在Flash Player的特殊专用缓存中。这意味着第一次使用给定版本的框架运行Flex应用程序时,Flash Player将从Adobe CDN下载SWZ文件并将其存储在缓存中。下次使用相同版本的框架加载任何 Flex应用程序时,FP将只加载本地缓存中已有的内容。
从版本4.x开始,MXML编译器的默认行为是生成使用框架RSL的应用程序。有关更多信息,请访问:
http://livedocs.adobe.com/flex/3/html/help.html?content=rsl_09.html
尽管如此,Flex应用程序可能至少比Flash“等价物”大一些。如果在编译器上使用“-keep”选项,则可以看到MXMLC编译器生成的ActionScript代码,并且它非常重要。