如何编译仅用于LocalConnection + JS-API的flex文件

时间:2012-11-14 18:30:46

标签: javascript flex mxml mxmlc

我有一个flex应用程序,仅用作JavaScript的LocalConnection API。 它运行良好,但生成的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吗?

1 个答案:

答案 0 :(得分:0)

主要问题是编写一个*.mxml应用程序而不是一个扩展*.as的简单基本Sprite类,该类可以使用mxmlc进行编译。

现在文件看起来像这样:

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

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

现在文件大约为1.2k,加载非常快:)

非常感谢@Timofei Davydik和@Sunil D.