Да, вы можете. Проблема состоит в том, что DisplayObjectContainer.getChildByName () возвращает тип DisplayObject , а произвольный экранный объект может быть или не быть DisplayObjectContainer . Итак, хотя вы можете сделать это, вам сначала нужно привести тип результата к DisplayObjectContainer:
public static function getGrandChildByName(
parent : DisplayObjectContainer,
child : String,
grandchild : String
) : DisplayObject {
var child_obj : DisplayObject = parent.getChildByName(child);
var child_container : DisplayObjectContainer = child_obj as DisplayObjectContainer;
return child_container.getChildByName(grandchild);
}
Обратите внимание, что в приведенном выше примере я не проводил никаких проверок, чтобы убедиться, что дочерний элемент действительно существует и является DisplayObjectContainer .... в реальном производственном коде вы можете добавить такие проверки.
Также, последнее замечание: если вы используете тип MovieClip, вы можете просто обратиться к объекту по его имени:
myclip.mc_child.mc_grandchild.gotoAndStop(3);
Просто ссылаться на элементы по имени проще и менее подвержено ошибкам. Я настоятельно рекомендую это.