0

LocalConnectionJavaScriptのAPIとしてのみ使用されるflexアプリケーションがあります。それはうまく機能していますが、生成されたSWFファイルは本当に大きいです:

  • static-link-runtime-shared-libraries = false〜43k
  • static-link-runtime-shared-libraries = true〜260k

どちらも非常に大きく、static-link-runtime-shared-libraries無効にすると、swfの読み込みが5秒近く遅くなり、エラーが発生します#2046:(

圧縮と最適化が有効になり、デバッグとプリローダーが無効になります。

mxmlファイルには、次のもののみが含まれています。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    creationComplete="main()"
    width="1" height="1" usePreloader="false">
<mx:Script>
    <![CDATA[
        import mx.core.FlexGlobals;
        import flash.net.LocalConnection;
        import flash.external.ExternalInterface;

        private var readyCallback:String;
        private var debugCallback:String;
        private var errorCallback:String;

        private var receiveConnection:LocalConnection;
        private var receiveCallback:String;

        private var postConnection:LocalConnection;

        private function main() : void {
            // ...
        }

        // ~100 Lines of code
    ]]>
</mx:Script>
</mx:Application>

誰かが私がはるかに小さい(そして高速ロードの)swfを生成するのを手伝ってもらえますか?

4

1 に答える 1

0

主な問題は、でコンパイルできる単純な基本クラス拡張では*.mxmlなく、アプリケーションを作成することでした。*.asSpritemxmlc

これで、ファイルは次のようになります。

package {
    import flash.display.Sprite;
    import flash.external.ExternalInterface;
    import flash.net.LocalConnection;
    import flash.events.StatusEvent;

    public class MyClass extends Sprite
    {
        // ...
    }
}

これで、ファイルは約1.2kになり、非常に高速にロードされます:)

@TimofeiDavydikと@SunilDに感謝します。

于 2012-11-15T10:13:52.880 に答える