**在模块中使用自己的moduleContext和配置(消息 - 命令,服务等)中的事件不能正常工作
我有一个名为main.mxml的应用程序:
1)main.mxml:
<fx:Declarations>
<parsley:ContextBuilder config="{config}"/>
<parsley:Configure />
</fx:Declarations>
<mx:ModuleLoader id="Login" url="Login.swf" ready="moduleInit();"/>
2)config.mxml(*)
<parsley:Objects /> // not using it for now..
3)Login.mxml(swf模块)
<s:Module >
<fx:Declarations>
<parsley:ContextBuilder config="{LoginConfig}" />
<parsley:Configure />
</fx:Declarations>
<fx:Script>
<![CDATA[
[MessageDispatcher]
public var dispatcher:Function;
private function _onClick():void {
dispatcher(new LoginRequestMessage(LoginRequestMessage.LOGIN_REQUEST_MESSAGE));
}
]]>
</fx:Script>
<mx:Canvas>
<mx:Button label="sendReq" id="btnSnd" click="_onClick()" />
</mx:Canvas>
</s:module>
4)LoginConfig.mxml(模块上下文配置)
<parsley:Objects .. >
<fx:Declarations>
<domain:LoginModel/>
<parsley:DynamicObject type="{LoginService}"/>
<parsley:MapCommand type="{LoginCommand}" selector="{LoginRequestMessage.LOGIN_REQUEST_MESSAGE}"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import Modules.Login.Application.bussiness.commands.*;
import Modules.Login.Application.bussiness.services.*;
import Modules.Login.Application.messages.*;
]]>
</fx:Script>
</parsley:Objects>
所有配置都正常(它的工作原理(相同的代码)但只有当我将s:module更改为s:面板(或任何与模块不同的内容)或者我保持登录时才能工作:模块但移动所有从loginConfig(模块配置文件)配置到s中定义的&#34; main&#34;上下文:Appplication也可以。
问题在于模块 :(模块只适用于第一个s:应用程序上下文)
当我运行或调试应用程序时会发生这种情况:
s:应用程序启动并加载模块,用户单击btnSnd按钮并执行_onClick(),但是:
dispatcher(new LoginRequestMessage(LoginRequestMessage.LOGIN_REQUEST_MESSAGE));
执行- &gt;什么都没发生 。 没有调度(参见4),LoginConfig.mxml源代码,提到 之前,了解更多详情..)
所以..当我使用模块及其上下文配置时(看起来模块没有附加到上下文,但它附加到s:应用程序上下文。
正如我之前所说:A)如果将LoginConfig配置移动到上下文,则所有工作正常
或
B)如果将s:模块中的Login.mxml更改为任何displayObject,例如mx:panel,而不是模块,则一切正常。(如果我这样做(不使用)模块),即使离开conf LoginConfig.mxml(&#34;第二个上下文&#34;包含conf而不是将其conf移动到s:app first context),一切正常。
所以,我的问题是实现一个模块(登录)有自己的上下文,配置指向自己的欧芹:对象mxml配置文件(loginConfig),当模块函数在该配置模块中调度parsley消息事件时,什么都没有即使conf正确也会发生。
C)更多相同..但是:所有工作正常如果我创建一个新项目,并且只放置模块及其上下文conf,其类(消息,命令,服务等)更改login.mxml s:模块到s:应用程序使用loginContext作为唯一的&#34; main&#34;上下文..这就是为什么我可以说这个简短示例中涉及的命令,消息等配置工作正常但只有在其自己的上下文中使用模块和conf时才起作用。我做了很多尝试,但没有任何作用..我需要尽快解决这个问题,同时,我决定将所有配置放在第一个上下文文件(s:应用程序上下文)中,保持登录为模块(选项(A)作为临时解决方案,但我不喜欢它..我需要一个真正的解决方案,非常感谢所有回复