【问题标题】:Can Flash load a Flex mx:module created in Flex Builder 4Flash 可以加载在 Flex Builder 4 中创建的 Flex mx:module
【发布时间】:2011-02-16 22:24:00
【问题描述】:

我在 Flash Builder 4 中创建了一个作为 swf 文件的 Flex 模块。我正在尝试在 Flash 应用程序中加载和运行。我可以加载模块,但无法让 Flash 应用程序访问任何模块功能。这是我在 Flash 中加载模块的方式以及我得到的错误。如果我将模块更改为应用程序类型 swf 然后它会加载并运行,但现在我有两个应用程序在彼此之上。我希望加载的模块 swf 能够访问 Flash 舞台对象。

ReferenceError:错误 #1069:在 MyModule__mx_core_FlexModuleFactory 上找不到属性应用程序,并且没有默认值。

var loader:Loader = new Loader();
addChild(loader);
loader.load(new URLRequest("MyModule.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
loader.addEventListener("mx.managers.SystemManager.isBootstrapRoot", systemManagerHandler);
loader.addEventListener("mx.managers.SystemManager.isStageRoot", systemManagerHandler);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadIt);

 function loadIt(e:Event):void
 {  
        var myclip:MovieClip = loader.content as MovieClip;
        trace(myclip.info());
    if(myclip.application == null )
          myclip.addEventListener("applicationComplete", onAppComplete );
         }
 }
 function onAppComplete(e:Event):void
 {
    var myclip:MovieClip = loader.content as MovieClip;
    trace("appComplete");
  }

【问题讨论】:

  • 当您说模块时,您是在泛指使用这个词,还是在谈论基于 MX:Module 的 Flex 应用程序?
  • 标题有点误导。 Flex 模块与 AS3 模块不同——如果这样的东西存在的话......

标签: flash apache-flex module loading


【解决方案1】:

Flex 模块必须由 Flex 应用程序 SWF 加载。非 Flex SWF 无法加载它们。

您应该在主应用程序加载后使用 Flex 中的模块来加载应用程序的一部分,我理解这也是 Flex 之外的一个用例。但是,该模块需要应用程序的其余部分存在,因为它省略了 Flex 框架中的许多核心类,而这些核心类应该已经存在于 Flex 主应用程序 SWF 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多