0

forループで一度に複数のテキストフィールドを作成しようとしています。通常のフラッシュでは、addChild を使用してアプリケーションにオブジェクトを追加できることを知っています。Flex では、これは機能しないようです。テキストフィールドは 1 つしか表示されず、それ以上は表示されませんか? :(

これが私のコードです

            var Num:uint = int(cmbbox.selectedItem);
            var s:uint=0;
            if(Num<=32) {
                while(Num>0) {
                    var t:TextInput = new TextInput;
                    var nummer:uint;
                    nummer = Num/2;
                    Num = nummer;
                    s++;

                    t.name = "t" + s;
                    t.editable =false;
                    t.graphics.beginFill(45);
                    t.x +=50;
                    trace(Num);
                    loller.alpha=0.2;
                    loller.addElement(t);
                }

            }        

誰かが助けてくれることを願っています:-)

乾杯、

トム

4

1 に答える 1

3

これが機能しない理由はありません。それらをすべて同じ X の場所に配置していませんか?

// component created w/ default X value of 0
var t:TextInput = new TextInput;
..
// X set to 0 + 50; thus positioning every TextInput at an X position of 50
t.x +=50;

私の最初の答えが不明だった場合は、TextInput を別の場所に配置するためにコードを変更する必要があります。これを行う 1 つの方法は、X 値を格納し、ループを通過するたびに増分することです。

// create new value 
var xOffSet : Int = 50;

while(Num>0) {
  // component created w/ default X value of 0
  var t:TextInput = new TextInput;
  ..
  // position TextInput
  t.x =xOffset;
  // increment XOffset
  xOffset += 50;
}
于 2012-07-31T17:19:01.723 に答える