![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Я генерю на сцене чилдрена случайным образом.
Вот так: var tmpSprite:MovieClip; ............... rnd = 1+(Math.random()*3); if (rnd==1) {tmpSprite = new People1();} if (rnd==2) {tmpSprite = new People2();} if (rnd==3) {tmpSprite = new People3();} peoples.addChild(tmpSprite); tmpSprite.x = 230; tmpSprite.name = "p3"; Я попробовал вот так, но не работает. Подскажите? |
|
|||||
|
Lorem ipsum
|
вариант1:
вариант2: вариант3: хранить ссылки на все необходимые объекты в переменных/массивах P.S. ![]()
__________________
Поймай яблоко 2! |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Спасибо большущее! вариант 2 - то, что надо!
Добавлено через 15 минут А как мне потом удалить этого чилдрена, используя его имя p3 ? не работает |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 61
|
|
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Неа. Не хочет.
Выдаёт вот такое: TypeError: Error #2007: Параметр child не должен быть равен нулю. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 1,724
|
Вообще вы в первой строчке объявляете переменную
Потом в нее записываете ссылку на клип Так почему бы эту переменную и не использовать? |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Если я правильно понимаю, у меня там создаётся много экземпляров tmpSprite.
И им присваиваются разные имена. tmpSprite.name = "p1"; tmpSprite.name = "p2"; tmpSprite.name = "p3"; А в другой части программы, в зависимости от произошедшего события, мне надо удалить именно именно определённый tmpSprite, к примеру, с именем p3 |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 61
|
tmpSprite у тебя объявлен MovieClip, а метод removeChild() требует аргумента DisplayObject - может в этом дело?
|
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Раскопал свой старый исходник в котором была похожая ситуация.
Сработало. Но я никак не могу понять как и почему??? Итак. Для удаления всего лишь одного объекта "p3" я использовал сделующую конструкцию: var child:DisplayObject=peoples.getChildByName('p3'); if (child is People1) { var box:People1=child as People1; peoples.removeChild(box);} if (child is People2) { var box2:People2=child as People2; peoples.removeChild(box2);} if (child is People3) { var box3:People3=child as People3; peoples.removeChild(box3);} peoples.removeChild(getChildByName('p3')); не работает? |
|
|||||
|
Lorem ipsum
|
ну тогда уже
__________________
Поймай яблоко 2! |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|