![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Привет! Возникла вполне банальная ситуация...есть 2 мувиклипа контейнера...в первом есть 20 объектов, которые генерятся в for'e из одного объекта в библиотеке. Во втором контейнере есть кнопка, которая удаляет эти объекты(в первом контейнере) по очереди, т.е. один за другим. Т.к. в данном случае при обращении к нужному объекту необходимо указывать на 2 уровня в глубину - не получается использовать метод getChildAt и getChildByName, т.е. строка типа parent.getChildAt(i).getChildByName("ball"+i) не прокатывает. Следовательно вопрос - обязательно ли в этом примере загонять все создаваемые объекты в массив, а потом уже обращаться к ним как к элементам массива, или всё таки можно как то использовать выше приведённые методы? И в каких случаях их вообще желательно/не желательно использовать.
И ещё один вопросик...используя метод removeChild для удаления объектов необходимо записывать - "путь к удал. объекту".removeChild("путь к удал. объекту" + имя самого объекта), или можно в скобках обойтись только именем смого удаляемого объекта? Спасибо за помощь! ![]() |
|
|||||
|
Обращение к элементам массива быстрее, чем вызов методов getChildAt и getChildByName. Для 20 объектов, конечно, не критично.
removeChild получает ссылку на объект. Типо того, что возрващают getChildAt и getChildByName. |
|
|||||
|
strange mood
|
Первый вопрос непонятен, отвечу на второй. Методу removeChild не нужно передавать никаких путей и имен, все это осталось далеко в AS1. getChildByName("ball" + i) тоже оттуда, избавляйтесь от такого. Метод removeChild принимает ссылку на объект, которую можно получить при помощи тех же getChildByName() и getChildAt().
Если вам нужно удалить всех детей внутри какого-то контейнера, то самый простой и эффективный способ - сделать так:
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
В том то и дело, что мне нужно удалять их не сразу а при последовательном нажатии на кнопку которая находится не в основной сцене, а в другом контейнере! И интересует способ с относительной адресацией! Т.е. как мне выйти из этого контейнера, обратится к первому контейнеру и удалить из него первого попавшегося ребёнка!
|
|
|||||
|
strange mood
|
В контейнере, общем для кнопки и того контейнера, из которого вы хотите удалять детей, подписаться на MouseEvent.CLICK. Типа вышли. В обработчике события получить ссылку на нужный контейнер, который является дочерним, при помощи getChildAt/getChildByName. Типа вошли. Удалить первого попавшегося - почти так же:
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
спасибо!
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|