AS3 - получение ребенка по имени, а затем по глубине - PullRequest
3 голосов
/ 12 ноября 2009

У меня есть 3 спрайта: img1spr, img2spr и img3spr. Внутри каждого спрайта у меня есть несколько растровых изображений. У каждого спрайта есть имя:

img1spr.name=name1;
img2spr.name=name2;
img3spr.name=name3;

Теперь имена меняются каждый раз, когда выполняется функция, и что я хочу знать, если есть способ сделать что-то вроде:

getChildByName("name1").getChildAt(0)

Это означает, что я хочу найти спрайт с именем name1, а затем найти первый дочерний элемент внутри него или, иначе, посчитать количество элементов внутри name1 с помощью numChildren.

Есть ли способ сделать это?

1 Ответ

4 голосов
/ 12 ноября 2009

Вы почти там - getChildByName возвращает DisplayObject, и вам нужно привести его к DisplayObjectContainer для вызова getChildByName и numChildren

trace(DisplayObjectContainer(getChildByName("name1")).numChildren);
DisplayObjectContainer(getChildByName("name1")).getChildAt(0);

Если вы изменяете имена спрайтов между ними, вы должны убедиться, что вы не присваиваете одно и то же имя двум объектам в дочернем списке родителя (Flash это позволяет). Это связано с тем, что getChildByName возвращает первого ребенка с указанным именем, которое может быть, а может и не быть тем, которое вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...