FlexNativeMenu с роботом ногами - PullRequest
0 голосов
/ 21 сентября 2011

Я использую инфраструктуру Robotlegs, я занят настольным приложением AIR и хочу использовать FlexNativeMenu. Проблема в том, что я не могу создать класс представления на основе mx.controls.FlexNativeMenu для внедрения зависимости. Когда Robotlegs не используется, код довольно прост - любая помощь будет принята с благодарностью. Спасибо.

Ответы [ 2 ]

1 голос
/ 06 октября 2011

Как правило, вы можете использовать все, что вы хотите для просмотра. Проблема заключается в том, что метод onRegister посредника будет вызываться только в том случае, если ваше представление отправляет событие ADDED_TO_STAGE. И поскольку FlexNativeMenu не запускает это событие, ваш посредник не работает (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/FlexNativeMenu.html#eventSummary)

0 голосов
/ 13 марта 2014

для 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 );

"gotcha" выглядит так:красивый способ получить доступ к FNM до инъекции.Я схватил его так:

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

код

Сделал git-репо - https://github.com/jusopi/RobotLegs-v2-FlexNativeMenu-example

...