надо бы уточнить ограничения, почему не катит рекурсия и т.п.
чем например такой (в лоб, без затей) не подходит ?

Код AS3:
public static function searchByNameDO(o:DisplayObjectContainer, oname:String):DisplayObject
{
for (var i:int = 0; i < o.numChildren; i++)
{
var child:DisplayObject = o.getChildAt(i);
if (child.name == oname)
{
return child;
}else if( child is DisplayObjectContainer)
{
return searchByNameDO(child as DisplayObjectContainer, oname);
}
}
return null;
}