0

我正在使用 Robotlegs 框架,我正忙于 AIR 桌面应用程序,我想使用 FlexNativeMenu。问题是我无法为依赖注入创建基于 mx.controls.FlexNativeMenu 的视图类。当不使用 Robotlegs 时,代码非常简单 - 任何帮助将不胜感激。谢谢。

4

2 回答 2

1

通常你可以使用任何你想要的视图。问题是调解器的 onRegister 方法只有在您的视图调度 ADDED_TO_STAGE 事件时才会被调用。而且由于 FlexNativeMenu 不会触发此事件,因此您的调解器无法正常工作 ( http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/FlexNativeMenu.html#eventSummary )

于 2011-10-06T06:56:00.453 回答
0

适用于 RobotLegs v2

如果您尝试注入FlexNativeMenu(以下简称 FNM),您可以尝试这样的事情(我会在您的 IConfig 实现者中这样做)

injector.injectInto( fnmInstance );

如果您尝试注入 FNM 的实例(例如在它的调解器中)

[Inject]
public var view:MyFNMClass;

如果您尝试将调解器附加到 FNM 实例,您可以在 IConfig 实现者中执行以下操作:

//requires that you map the FNM (assuming you're subclassing it)
mediatorMap.map( MyFNMClass ).toMediator( MyFNMClassMediator );

//else where where you decide to wire it up
mediatorMap.mediate( fnmInstance );

陷阱”是这样的:在注入之前没有一种非常漂亮的方法来访问 FNM。我像这样抓住它:

//very nasty I know
var fnm:MyFlexNativeMenu = FlexGlobals.topLevelApplication.myMenu;

代码

做了一个 git repo - https://github.com/jusopi/RobotLegs-v2-FlexNativeMenu-example

于 2014-03-13T18:44:39.300 回答