0

Robotlegsフレームワークを使用していますが、AIRデスクトップアプリケーションで忙しく、FlexNativeMenuを使用したいと考えています。問題は、依存性注入のためにmx.controls.FlexNativeMenuに基づいてビュークラスを作成できないことです。Robotlegsを使用しない場合、コードは非常に単純です-どんな助けでもありがたいです。ありがとう。

4

2 に答える 2

1

通常、ビューには何でも使用できます。問題は、ビューが ADDED_TO_STAGE イベントをディスパッチする場合にのみ、メディエーターの onRegister メソッドが呼び出されることです。また、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 リポジトリを作成しました - https://github.com/jusopi/RobotLegs-v2-FlexNativeMenu-example

于 2014-03-13T18:44:39.300 に答える