as3 舞台文本/本机文本的动态名称



有谁知道如何动态地为NativeText/StageText分配名称,因为我正在尝试构建一个动态界面而不是硬编码它,任何帮助将不胜感激!

您应该保留对动态创建的 StageText 实例的引用,因为您无法通过查询显示列表来获取它(因为它不在显示列表中)。你可以有舞台文本的向量

var m_vStageTextInstances:Vector<StageText>;

然后,您将遍历此向量。

下面是一些示例代码,可以在迭代函数中执行您想要的操作

public class IterationTest extends Sprite {
    public function IterationTest() {
        createObjects();
        iterate();
    }
    private function createObjects():void {
        for (var i:int = 0; i < 1000; i++) {
            addChild(new TextField());
            addChild(new MovieClip());
        }
    }
    private function iterate():void {
        var numTextObjects:int = 0;
        for (var i:int = 0; i < this.numChildren; i++) {
            var child:DisplayObject = getChildAt(i);
            if (child is TextField) {
                //do your stuff here
            }
        }
    }
}

如果有人试图使用 NativeText 返回文本值,则使用 StageText 包装器。 他们将需要编辑;

https://github.com/cantrell/StageTextExample/blob/master/src/NativeText.as

添加一个公共获取函数 -

public function get text():String {
return this.st.text;
}

然后你可以正常返回 NativeText 值 -

nt.text

最新更新