我对 Mate 比对 Cairngorm 更熟悉,但在这种情况下,我所做的是用模型备份我的弹出窗口并从模型中分派事件。由于模型和主应用程序位于同一级别,因此主应用程序可以听到事件。
更新:
这是一个粗略的例子。
在我的MainMap.mxml中,我创建了一个表示模型的实例并将其注入到我的弹出窗口中。
<EventHandlers type="{ FlexEvent.PREINITIALIZE }">
<ObjectBuilder generator="{ MyPopUpPresentationModel }" constructorArguments="{ scope.dispatcher }"/>
</EventHandlers>
<Injectors target="{ MyPopUp }">
<PropertyInjector targetKey="model" source="{ MyPopUpPresentationModel }"/>
</Injectors>
在MyPopUp.mxml我有我的模型的一个实例。
<fx:Script>
<![CDATA[
[Bindable] public var model:MyPopUpPresentationModel;
]]>
</fx:Script>
这是MyPopUpPresentationModel.as。
package
{
private var dispatcher:IEventDispatcher;
public function DigitalTagTrackingPresentationModel(target:IEventDispatcher)
{
this.dispatcher = target;
}
public function dispatchMyCustomEvent():void
{
dispatcher.dispatchEvent(new Event("MyCustomEvent"));
}
}
当您model.dispatchMyCustomEvent();
从MyPopUp.mxml调用时,它将使用与父应用程序处于同一级别的表示模型调度程序的范围调度事件。我希望这有帮助!