У меня есть следующая проблема. Был бы признателен, если кто-то приложит все усилия, чтобы ответить на него.ActionScript Как получить доступ к детям Спрайты
Описание проблемы: У меня есть верхний уровень Sprite «TopLevel», есть Sprite под ним «allRoutes», есть ребенок Sprite под ним «Маршруты» и есть еще один ребенок под ним «Маршрут».
Я хочу получить доступ к каждому уровню в цикле. Я попытался сделать это в ActionScript, но не с успехом.
Вот вероятный код (он не компилируется успешно):
package
{
import flash.display.Sprite;
public class TopLevel extends Sprite {
public function TopLevel() {
var allRoutes:Sprite = new Sprite();
for (i = 0; i < 3; i++) {
var routes:Sprite = new Sprite();
for (j = 0; j < 4; j++) {
var route:Sprite = new Sprite();
route.name = "Route:" + i + ", " j;
routes.addChild(route);
}
routes.name = "Routes:" + i;
allRoutes.name = "AllRoutes";
allRoutes.addChild(routes);
}
addChild(allRoutes);
trace (allRoutes.name);
for (i = 0; i < allRoutes.numChildren; i++) {
trace(allRoutes.getChildAt(i).name);
for (j = 0; j < allRoutes.getChildAt(i).numChildren; j++) {
trace(allRoutes.getChildAt(i).getChildAt(j).name);
}
}
}
}
}
Я ожидаю следующий результат:
AllRoutes
Маршруты-1
Route-1 , 1
Маршрут-1, 2
Route-1, 3
Route-1, 4
Маршруты-2
Route-2, 1
Route-2, 2
Route-2, 3
Маршрут-2, 4
и так далее.
Надеюсь, что вы получите картину. Спасибо вам большое заблаговременно.
спасибо и привет
rr23850
Ошибка компиляции, которую я получаю: Второй уровень getChildAt() не работает. Он обрабатывает внутренний спрайт как DisplayObject. Теперь вся функция в DisplayObject отличается от Sprite, так как у нее нет getChildAt или numChildren. Каков выход. – RR23850
Вы говорите «под ним», это не то же самое, что «внутри него», что это такое? – BotMaster