Flash 获取阶段中相同类型的实例的位置

Flash 获取阶段中相同类型的实例的位置,flash,actionscript-3,Flash,Actionscript 3,嗨,我想数一数同一类型的实例在舞台上的位置。 我试过: var target; for(var item in _root){ if(_root[item] instanceof MovieClip || _root[item] instanceof TextField){ target = _root[item]; trace("ITEM: "+target); trace("X: "+target._x);

嗨,我想数一数同一类型的实例在舞台上的位置。 我试过:

var target; 
for(var item in _root){     
if(_root[item] instanceof MovieClip ||   _root[item] instanceof TextField){         
target = _root[item];         
trace("ITEM: "+target);         
trace("X: "+target._x);         
trace("Y: "+target._y);         
trace("----------------");     } }
但它说,对属性的访问未定义,instanceof已弃用 我怎样才能做到?
谢谢在as3中,您可以循环浏览您舞台上的所有孩子(或家长movieclip):

for(变量i:int=0;i
使用
stage
而不是
\u root
。如果我使用:stage而不是\u root,它不会进入循环。\u root(下划线)是AS2,stage(无大写字母S)是AS3。AS2中不存在stage对象,AS2编译器在发现未知/无效类型时不会抛出任何错误,这就是为什么您看不到任何内容。您使用的AS版本是2还是3?我已经使用了AS3,并编写了bjornson建议的代码。但是:我在屏幕上绘制的对象无法识别,如果我在写addChild(newball())的地方编写一些代码,那么它就可以识别该对象。如果我在屏幕上画另一个对象,它们似乎不被识别,因为它们不在舞台上。getChildByName获取舞台上的内容
for (var i : int = 0;i < stage.numChildren;i++) 
{
    var displayObject : DisplayObject = stage.getChildAt(i);
    if(displayObject is TextField || displayObject is MovieClip)
    {
        trace("ITEM: " + displayObject);         
        trace("X: " + displayObject.x);         
        trace("Y: " + displayObject.y);         
        trace("----------------");
    }
}