2

関数を使用して、ステージ上のテキスト フィールドを更新しています。

private function updateFields(rootContainer:DisplayObjectContainer):void
{
    for(var i=0; i < rootContainer.numChildren; i++) {
        var item:* = rootContainer.getChildAt(i);
        try {
            updateFields(item);
        } catch (e:Error) {
            trace(e.toString());
        }
        if (item.toString() == '[object TextField]') {
            trace(item.name);
        }
    }
}

ステージに配置されたテキスト フィールドの半分が検出されます。どうしてこれなの?私を狂わせます。

4

1 に答える 1

1

これは私にとってはうまくいきます。

private function updateFields(rootContainer:DisplayObjectContainer):void
{
    for (var i:uint = 0, n:uint = rootContainer.numChildren; i < n; ++i) {
        var item:DisplayObject = rootContainer.getChildAt(i);
        if (item is DisplayObjectContainer) {
            updateFields(DisplayObjectContainer(item));
        } else if (item is TextField) {
            trace(item.name);
        }
    }
}

編集:DisplayObjectContainerキャスティングを修正

于 2012-07-24T16:28:37.233 に答える