2011-06-21 11 views
0

私はフラッシュで新しいです、以下は私のスクリプトです、私は3つのテキスト入力ボックス、name1、name2、name3と3ダイナミックテキスト、output1、output2、output3を持っています。ユーザがボックス内のテキストを入力すると、ダイナミック出力テキストにまったく同じように表示されます。最初のもので動作しますが、2番目と3番目のものでは動作しません。コンパイルエラーを取り除くために変更ハンドラの名前を変更しましたが、最初のものだけが動作します。私は複数のテキストボックスのエントリーをしたい場合は、これを行うためのより良い方法はありますか?ActionScript 3.0 textInputとDisplay

name1.addEventListener(Event.CHANGE, changeHandler); 

function changeHandler(e:Event):void 
{ 
    output1.text = name1.text 

} 
name2.addEventListener(Event.CHANGE, changeHandler); 

function changeHandler1(e:Event):void 
{ 
    output2.text = name2.text; 
} 

name3.addEventListener(Event.CHANGE, changeHandler); 

function changeHandler2(e:Event):void 
{ 
    output3.text = name3.text; 
} 

答えて

1

あなたは後者の二つaddEventListener()の呼び出しにリスナー関数の名前を変更するのを忘れていました。現在、3つのイベントすべてでchangeHandler()が呼び出されています。あなたが持っている必要があり

:あなた通じ

package 
{ 
    import flash.text.TextField; 
    import flash.events.Event; 

    public class TextBinder extends Object 
    { 
     // vars 
     private var _input:TextField; 
     private var _output:TextField; 

     /** 
     * Joins input with output 
     * @param inp The input text field 
     * @param outp The output text field 
     */ 
     public function join(inp:TextField, outp:TextField):void 
     { 
      _input = inp; 
      _output = outp; 

      _input.addEventListener(Event.CHANGE, _change); 
     } 

     /** 
     * Event.CHANGE 
     */ 
     private function _change(e:Event):void 
     { 
      _output.text = _input.text; 
     } 
    } 
} 

そして今、することができますループ:

name2.addEventListener(Event.CHANGE, changeHandler1); 
name3.addEventListener(Event.CHANGE, changeHandler2); 

をあなたは、出力テキスト・フィールドに入力されたテキストフィールドに参加管理するクラスを作成することができますテキストフィールドを作成し、これを使用して結合します:

var tb:TextBinder = new TextBinder(); 
tb.join(name1, output1); 
+0

これは完璧に動作しますが、これは完璧ですが、これを行うためのより効率的な方法が各テキストフィールドに必要であると感じています。このようなものを書く必要があります。 。 – Victor

+1

更新を参照してください。クラスを使用してこれをさらに改良することができます。これを更新して、その例も示します。 – Marty

+0

ループにエラーはありませんが、テキストボックスに何か入力すると、動的テキスト(出力)に何も変わりません – Victor