代码之家  ›  专栏  ›  技术社区  ›  jedierikb grijalvaromero

在不使用flex的情况下加载RSL?

  •  1
  • jedierikb grijalvaromero  · 技术社区  · 16 年前

    如果我已经推出了自己的RSL,并且希望在纯AS3应用程序中使用它,那么是否有文档或示例来说明如何做到这一点?

    或者我需要遍历flex源代码来了解Adobe的工程师做了什么?

    2 回复  |  直到 14 年前
        1
  •  4
  •   enzuguri    16 年前

    这是一个非常棘手的问题,恐怕还有很多事情要做。一些指针:

    要从外部加载的SWF获取类,请在应用程序域上使用getdefinition方法,例如

    public function loadHandler(evt:Event):void
    {
       var loaderInfo:LoaderInfo = evt.target as LoaderInfo;
       var clazz:Class = loaderInfo.applicationDomain.getDefinition("your.external.class");
    }
    

    如果您知道所需类的名称,这将为您提供类定义。

    要将类域“连接”到彼此中(这样应用程序就可以根据SWC编译,但不包括类并从外部加载它们),您需要指定同一安全域的loaderContext。

    var loader:Loader = new Loader();
    var context:LoaderContext = new LoaderContext();
    context.applicationDomain = ApplicationDomain.currentDomain;
    loader.load(new URLRequest("library.swf"), context);
    

    我能给您的第三个指针是编译器选项“-external library path”,使用它可以指定一个SWC的列表,以对其进行编译时检查,但不包括(导致文件大小较低)。

    mxmlc -source-path="dir/src" -external-library-path="dir/lib/framework.swc" --main.swf
    

    对不起,我不能再详细说明,这是一个非常广泛的话题,希望这能让你开始……

        2
  •  0
  •   matb    14 年前

    LiveDoc上的此链接可能有用: Example on how to use ApplicationDomain

    推荐文章