здесь первый постер.
Эта проблема воспроизводится на моем компьютере с помощью нового проекта .fla в Actionscript 3.0 в Flash Professional CS5. Это редактирование моего оригинального вопроса с дополнительной информацией.
Я работаю над проектом для загрузки внешних SWF-файлов и поиска по именам экземпляров по соответствующим ключевым словам, а именно «перетаскиванию» и «отбрасыванию», чтобы определить совпадения фрагмента ролика, затем присоединяю прослушиватели событий к этим MC, которые содержат прослушиватели событий D & D и код.
Конкретной проблемой является переключение глубины для видеороликов, вложенных в динамически загружаемые внешние SWF-файлы.
Где у меня проблемы, это конкретные команды:
swapChildrenAt, setChildIndex, swapChildren, removeChild / addChild. Я пробовал все четыре с той же проблемой дублирования. Позвольте мне объяснить.
При нажатии на перетаскиваемый MC он перемещается в верхний индекс динамически загруженного SWF-файла, поэтому он виден над всем остальным в этом SWF-файле. Проблема в том, что попытка любой из этих команд дублирует MC. Что происходит, это:
Событие MOUSE_DOWN запускается:
Индекс целевой MC записывается как «2», индекс, на который мы переключимся, - «20» (максимальный индекс SWF).
setChildIndex вызывается у целевого родителя MC: mc.parent.setChildIndex (mc, (mc.parent.numChildren-1))
MC переходит к индексу 20, затем создается другой экземпляр MC на уровне, в котором он был расположен ранее (индекс 2)
Этот дубликат был подтвержден с помощью прослушивателя EVENT.ADDED_TO_STAGE, прикрепленного к сцене, чтобы перехватить каждый объект типов MovieClip, добавленный на сцену. Я проверил SWF, чтобы убедиться, что нет дубликатов MovieClips, следы также подтверждают это.
В Интернете есть похожие посты, в которых упоминается та же проблема без решений.
В аналогичных постах упоминается та же проблема дублирования, но ни у кого нет решения, которое, как я обнаружил, будет работать в моем случае.
http://www.kirupa.com/forum/showthread.php?t=359452
http://board.flashkit.com/board/showthread.php?t=775200
http://forums.adobe.com/thread/199983
В качестве последнего замечания, если я закомментирую оператор подстановки индекса, код прекрасно работает, когда MC просто остается на своем нижнем z-индексе, а не на вершине. К сожалению, это не будет работать как решение, так как я не собираю внешние SWF-файлы.
Спасибо и всего наилучшего
Cameron