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