0


0

Flex 3に関する質問

私はここで私のすべてのコンポーネントのラベル(すなわちボタン)にリソースをバインドする必要性を避け、これを自動化する方法を見つけようとしています。

問題:mxml label = "\ {resourceManager.getString( 'myResources'、 'submit')}"に直接バインドするためにデザインモードでレイアウトが破損し、デザインビューが使用できなくなります。 しかし、他の場所、actionScript、またはbindタグを介してバインディングを宣言すると、生産性が悪くなり、多くのエラーが発生しやすくなり、見逃しがちです。

提案:ボタンラベルをローカライズするためにリソースを自動的に呼び出す独自のボタンを作成したいと思います。 そのため、作者は私のボタンのmxml記述に "Submit"を入れ、実行するとそれはラベルの値 "submit"を取り、resourceManager.getString( 'myResources'、 'submit')を使います。

しかし、ラベルの設定機能を無効にする方法が見つかりません。可能であれば可能ですか。 他にどのように私はそれについて行くことができますか?

たぶん私は、リソースの使用をよりエレガントにするための必須のプロセス、およびボタンのラベルのようなものをどのようにオーバーライドするかを見逃しています。

あなたのアドバイスをありがとう。

1 Answer


2


Buttonを拡張して、MyButtonというコンポーネントを作成します。 それからこれを使ってください。

パブリック関数セットのラベルを上書きします(value:String):void {super.label = resourceManager.getString( 'myResources'、value)||値; }

リソースマネージャが "null"または "undefined"を返すと仮定すると、これは機能し、 "myResources"に存在する場合にのみ値を置き換えます。

これを実行する必要があるすべてのコンポーネントをオーバーライドしたくない場合は、すべてのコンポーネントにFlexEvent.CREATION_COMPLETEイベントを追加できます。 その後、ラベルのローカライズを行うために単一の汎用関数を使用してください。