0

ムービークリップに を追加textfieldし、それをバックラウンド bg に追加しています。そのコードは次のとおりです::

                        box = new boxMc();
                        bg.addChild(box);
                        box.x=boxX;
                        box.y=boxY;

                        exampleText="<p class='sarath'>"+k+"</p>";
                        boxVal = new TextField()
                        box.addChild(boxVal);
                        boxVal.styleSheet=sheet;
                        boxVal.htmlText=exampleText;
                        boxX=boxX+28        
                        boxArray.push(box)

今、私はテキストボックスからテキストを取得したい..boxValそして私は次のように試しました::

for(var j:Number =0;j<boxArray.length;j++)
                {
                    var mc:MovieClip = boxArray[j] as MovieClip;
                    trace(mc.getChildAt(1).text)
}

トレースすると、次のようにmc.getChild(1)表示され ますが、次のエラーTEXTFIELDが表示されますtrace(mc.getChildAt(1).text)

1119: Access of possibly undefined property text through a reference with static type flash.display:DisplayObject.
4

1 に答える 1

1

putvande は正しいですが、その理由を知りたいと思うかもしれません。

getChild は DisplayObject を返しますが、DisplayObjects にはテキスト プロパティがありません。返された DisplayObject を、テキスト プロパティを持つサブクラスの 1 つ (この場合は TextField) に「キャスト」する必要があります。

実際には、TextField(mc.getChildAt(1)) は、getChildAt() によって返された DisplayObject を TextField に「変換」します。その後、.text およびその他の TextField プロパティに問題なくアクセスできます。

于 2013-10-09T14:40:53.960 に答える