0

我创建了一个纯 Actionscript 项目,我需要在 Flex 中嵌入和编译它。主要原因是我需要使用Web Services,而在Pro 中使用它们要困难得多。

当项目在 Pro 中编译时,生成的 SWF 只有 167KB - 不包括 Web 服务和 Flex 的默认预加载器。当“入侵”到 Flex 中时,它会飙升到惊人的 975KB。Web 服务肯定不能占用 800KB 的大小。两者都没有嵌入图形或声音。

这是我用来将我的项目嵌入到 Flex (main mxml) 中的 hackish 方式:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" width="1300" height="700" applicationComplete="init()"
               preloader="mx.preloaders.DownloadProgressBar">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <fx:Script>
        <![CDATA[
            private function init():void
            {   
                var show:TradeShowOrig = new TradeShowOrig();
                this.stage.addChild(show);
                show.init();
            }
        ]]>
    </fx:Script>

</s:Application>

我想,臃肿的是它的使用<s:Application>也未被使用。任何人都可以推荐任何可能减少 SWF 大小的方法吗?

4

1 回答 1

3

您看到更大的 Flex 应用程序有两个原因

  1. 正如您所指出的,s:Application 是一个基于和引用 Flex 框架中大量类的类,它为应用程序引入了 800K 大小。我已经使用 Flash 和 Flex 多年了。Flex 提供创建企业应用程序的灵活性,它还提供 CSS、火花皮肤、灵活和流畅的布局。这些特性使企业开发人员能够快速创建业务应用程序。虽然 800K 看起来很大,但我们不再生活在 9600bps 调制解调器的时代。

  2. Flex 输出调试和发布 SWF。SWF 的调试版本要大得多,因此如果您导出发布版本,您会看到较小的 SWF。

Adobe 还引入了 cachable 框架,它本质上将 flex 框架外部化为一个只需要下载一次的可缓存和可重用的 RSL。这将从 Flex 应用程序中减少相当多的 KB。要启用该功能,您需要更改每个库在 Flex Build Path 对话框中的链接方式。

于 2012-07-11T16:56:34.013 回答