0

Flex 内に埋め込んでコンパイルする必要がある純粋な Actionscript プロジェクトを作成しました。主な理由は、Web サービスを使用する必要があり、Pro でそれらを使用するのははるかに難しいためです。

プロジェクトが Pro でコンパイルされると、結果の SWF はわずか 167KB です (Web サービスと Flex のデフォルトのプリローダーを除く)。Flex に「ハッキング」されると、なんと 975KB まで急上昇します。Web サービスは確かに 800KB のサイズを取ることはできません。どちらにもグラフィックやサウンドは埋め込まれていません。

これは、プロジェクトを Flex (main mxml) 内に埋め込むために使用するハックな方法です。

<?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

There are two reasons you see a much bigger Flex application

  1. As you point out, s:Application, which is a class that bases and references a good number of classes in Flex framework, has introduced 800K size to the application. I have used both Flash and Flex for years. Flex provides flexibility to create enterprise applications, it also provides CSS, spark skinning, flexible and fluid layout. These features enable enterprise developers to quickly create business applications. Though 800K looks big, we are no living in the age of 9600bps modem anymore.

  2. Flex outputs debug and release SWF. The debug version of SWF is much bigger, so if you Export a Release Build, you would see a smaller size SWF.

Adobe also introduces cachable framework, which essentially externalize the flex framework as a cachable and reusable RSL that only needs to be downloaded once. This would shave quite a few KB's from the Flex application. To enable the feature, you would need to change how each libraries are linked in Flex Build Path dialog.

于 2012-07-11T16:56:34.013 に答える