Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 17.05.2016
Сообщений: 20
AS 3.0

Удаление дочерних обьектов

30.06.2016, 22:08. Показов 2080. Ответов 4

Студворк — интернет-сервис помощи студентам
Вот такая беда:
Имеется:
MoveClip с именем Pn2, в нем есть MoveClip с именем Fon
То есть один дочерний объект в нем всегда присутствует
Поэтому вначале функции я проверяю нет ли в Pn2 более одного объекта, и если есть, я удаляю их.
Теперь к сути:
Функция может вызываться неоднократно, а её результатом является добавленные MoveClip с именем Po.
От сюда идет постоянное накопление экземпляров MoveClip с именем Po, что не приемлемо ибо они накладываются друг на друга.
Подумал я, и решил что надо бы старые удалять перед тем как новые добавить, но не могу понять как удалить, созданные при помощи оператора for старые MoveClip с именем Po.
Нюансы:
Переменная LPath может иметь значения от 1 до 25, от сюда верно, что MoveClip с именем Po может иметь от 1-ой до 25 экземпляров.
Вопрос:
Как удалить старые экземпляры Po перед созданием новых?

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GrateSortMenu(3);
function GrateSortMenu(LPath:int)
{
    if(Pn2.numChildren > 1) //Проверяем наличие более одного дочернего объекта
    {
        Pn2.removeChild(Po);
        Pn2.removeChild(Po);
        Pn2.removeChild(Po);
    }
    for(var i:int = 0; i < LPath; i++) //Создаем экземпляры Po
    {
        Po = new Points();
        Po.x = 6;
        Po.y = 6 + (27*i);
        Po.NText.text = 1 + i;
        Pn2.addChild(Po);
    }
    Pn2.visible = true;
}
Вывод кода приведенного выше:
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display:: DisplayObjectContainer/removeChild()
at _fla::MainTimeline/GrateSortMenu()
at _fla::MainTimeline/urlLoader_complete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.06.2016, 22:08
Ответы с готовыми решениями:

Удаление обьектов
Скажите пожалуйста мне необходимо удалить номенклатурные позиции помеченные на удаление,но некоторые из них учавствовали в различных доках,...

Удаление и подсчет обьектов
Короче есть бд в которой есть поле Number в котором ведется подсчет полей (не id). Мне нужно что бы при удалении, например если в базе есть...

Удаление дочерних узлов (DOM)
Привет! Такой вопрос. Есть элемент elem1, у которого имеются дочерние узлы. Если я с помощью метода removeChild() удалю elem1, то...

4
 Аватар для Nikto
156 / 138 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
01.07.2016, 15:58
Лучший ответ Сообщение было отмечено Leon Sadeness как решение

Решение

Leon Sadeness, в вашем коде вы пытаетесь три раза удалить один и тот же Po.
Решением проблемы вижу то, чтобы добавить на Pn2 ещё один мувиклип в качестве контейнера для Po. Теперь каждый раз при наличии детей уже в новом контейнере вы будете очищать уже его.
Очистить полностью можно в цикле:
ActionScript 3
1
2
3
4
for (var i : int = clip.numChildren-1 ; i >= 0 ; i--)
{
    clip.removeChildAt(i);
}
1
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
01.07.2016, 22:13
removeChildren?
Даже если в необходимой версии ФП нет removeChildren, то тогда проще
ActionScript 3
1
2
3
4
while (clip.numChildren > 0)
{
    clip.removeChildAt(0);
}
1
3 / 3 / 0
Регистрация: 17.05.2016
Сообщений: 20
01.07.2016, 22:14  [ТС]
Nikto, Спасибо большое, все получилось.
У меня такая просьба, не могли бы Вы "на пальцах" объяснить, как строится вся эта иерархия дочерних объектов.
Я до сих пор не могу понять как обращаться к экземплярам, созданные циклом for() у них же у всех одно и то же имя. И вообще от куда начинается все, со Stage() или Sprite(). Извините за отнятое время, я был бы очень благодарен если бы вы попытались мне это объяснить.
0
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
02.07.2016, 00:13
Leon Sadeness, обращаться нужно к объектам не по имени, а по ссылкам на них. Для хранения ссылок можно использовать, например, массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.07.2016, 00:13
Помогаю со студенческими работами здесь

Удаление дочерних элементов с использованием DOM
Доброго времени суток. Есть список(ul с id=s), как удалить все пробелы в нем(чтоб елемент...

Удаление дочерних объектов и сразу же создание новых
Пытаюсь загрузить игру, что-то не получается удалить все дочерние объекты со сцены и добавить новые вот код загрузки для наглядности. ...

Удаление родительской записи, если не осталось связанных дочерних
Доброго вечера! Представим простой пример: таблица кёрлингистов и таблица команд. Каждый кёрлингист имеет foreign key на таблицу команд....

Удаление из БД родительского поля и всех,связанных с ним, дочерних полей
Добрый вечер, форумчане !) Завис снова с одним траблом..Подскажите, как сделать удаление родительской записи вместе со всеми дочерними,...

Можно ли запретить или временно приостановить удаление дочерних объектов?
Доброго времени суток! Ситуация: Делегат, в делегате создаю свой ComboBox, в котором есть указатель на внешний диалог и слот связанный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru