【问题标题】:AS3: Differentiate between Static and Dynamic TextFieldAS3:区分静态和动态 TextField
【发布时间】:2026-01-30 05:50:01
【问题描述】:

我正在尝试遍历舞台上的所有显示对象,并仅从动态和输入文本字段中检索数据。

for (var i:uint = 0; i < this.numChildren; i++){
            var o = getChildAt(i);
            if(o is TextField) {
                if (o.type==TextFieldType.INPUT || (o.type == TextFieldType.DYNAMIC)) { 
                    trace(o.name);
                }
            }
        }

但是,用于检测文本字段类型的 if 语句也接受静态文本。我很想知道这是为什么,有什么帮助吗?

【问题讨论】:

    标签: actionscript-3 flash textfield


    【解决方案1】:

    你可以这样做:

      if(o is StaticText){
         //trace(o);  // [object StaticText]
      }
    

    阅读更多关于StaticText的信息。

    【讨论】:

    • 是的,我所做的是 if(o is StaticText){ trace("Skipping " + o.name); } else{ trace("Not skipping " + o.name) } 我拥有所有三种不同类型的文本字段(动态、输入和静态),并且迭代不会对它们中的任何一个产生 true
    • @KevinLerdwichagul 看看文档,StaticText 没有name 属性,它只有texthelp.adobe.com/en_US/FlashPlatform/reference/actionscript/3/…
    • 我的错,只是在我的头顶发表评论,不管怎样,重点是即使我输入了 trace("Static text found") if 语句仍然没有返回 true并且即使DisplayList中有一个Static textField也不会触发trace方法