0

我有一个仅用LocalConnection作 JavaScript 的 API 的 flex 应用程序。它运行良好,但生成的 SWF 文件非常大:

  • 静态链接运行时共享库​​=false ~43k
  • 静态链接运行时共享库​​=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应用程序而不是一个简单的基本*.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。

于 2012-11-15T10:13:52.880 回答