0

プログラミングは初めてではありませんが、Flex は初めてです。フォーカスを受け取ったときにすべてのテキスト入力ボックスから呼び出される汎用イベント ハンドラーを作成したいと考えています。フォーカスがあるときに、テキスト入力ボックスの色を変更したい。彼らが焦点を失ったら、「非アクティブ」なカラー プロファイルを復元したいと考えています。テキスト入力ボックスごとに ActionScript イベント ハンドラーを作成することもできますが、それでは不十分であることは誰もが知っています。:o) そこで必要なのは、イベント ハンドラーを呼び出しているオブジェクトにアクセスする方法です。

Delphi では、Sender オブジェクトを渡す関数を作成して、呼び出し元オブジェクトのプロパティにアクセスできるようにします。ActionScript/Flex にはまったく異なるアーキテクチャがあると推測しているため、これを行うのが困難です。

期待してありがとう!

4

3 に答える 3

1

私はあなたが求めていることを理解していることを願っています... イベントの委任について話しているのですか?

これは私のために働いた:

// 'focusOut' for blur
stage.addEventListener('focusIn', function(e:Event):void {
    // The focused control is e.target
});
于 2008-10-21T08:43:11.620 に答える
1

TextInput をサブクラス化し、そこでフォーカス イベントを処理する必要があります。これは、複雑なコードを使用せずに、探しているものを実現する最も簡単な方法だと思います。

于 2008-10-21T08:43:11.777 に答える
0

フォーカスされた入力ボックスの外観を変更したい場合は、focusSkinプロパティを設定してこれを行うことができます。これをグローバルに行いたい場合は、CSS ファイルにスタイル宣言を入れることができます。

この CSS の例では、デフォルトの focusSkin ( mx.skins.halo.HaloFocusRect) を埋め込まれた PNG ファイルに置き換えています。

TextInput {
  focusSkin: Embed(source="focus.png");
}

TextInput には、フォーカス スキンの不透明度を変更するなど、フォーカスの外観を変更するためのプロパティがいくつかあります (focusAlphaプロパティ)。詳細については、 TextInput のドキュメントを確認してください。

于 2008-12-30T15:48:27.747 に答える