2011-02-16 74 views
0

我有一个在Flash Builder 4中创建的Flex模块作为swf文件。我正尝试在Flash应用程序中加载和运行。我可以加载模块,但我无法让Flash应用程序访问任何模块功能。下面是我如何在Flash中加载模块以及我得到的错误。如果我将模块更改为应用程序类型swf,那么它会加载并运行,但现在我有两个应用程序在另一个之上。我希望加载的模块swf能够访问Flash stage对象。Flash可以加载在Flex Builder 4中创建的Flex mx:模块

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"); 
    } 
+0

当你说Module是一般使用这个词的时候,或者你是在谈论一个基于MX:Module的Flex应用程序吗? – JeffryHouser 2011-02-16 23:35:23

回答

2

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

在主应用程序加载后,您应该使用Flex中的Module来加载应用程序的一部分,我知道这是Flex以外的用例。但是,Module需要应用程序的其余部分存在,因为它从Flex框架中省略了许多应该已经存在于主Flex应用程序SWF中的核心类。