Почему мои мувиклипы дублируются? - PullRequest
1 голос
/ 29 февраля 2012

Flash почему-то дублирует мои экземпляры MovieClip. Они представляют собой серию из трех клипов, находящихся на основной временной шкале, без анимации на основной временной шкале, хотя внутри клипов есть некоторые.

После выполнения gotoAndStop в обратном направлении на временной шкале три клипа, pic1, pic2 и pic3, дублируются. Ну, на самом деле, кажется, создается совершенно новый экземпляр этих трех клипов. После этого дублирования новые клипы, кажется, «перекрывают» старые, поскольку ссылка на них всегда относится к новому, но оба они все еще присутствуют на сцене.

Я запустил следующий тест, чтобы увидеть, что произойдет:

for (var i:int = 0; i < this.numChildren; i++) {
    trace(i + ": " + this.getChildAt(i).name + ": " + this.getChildAt(i));
}

И я получил такой вывод:

0: pic3: [object pic3holder_99]
1: pic2: [object pic2holder_100]
2: pic1: [object Pic1]
3: pictureDesc: [object pictureDesc_98]
4: pic3: [object pic3holder_99]
5: pic2: [object pic2holder_100]
6: pic1: [object Pic1]
7: switchBTN: [object switchButton_101]
8: overBTN: [object MovieClip]

Да, это наборы видеороликов с одинаковым именем экземпляра. Кто-нибудь когда-нибудь сталкивался с этим раньше? Что на Земле может происходить?

EDIT : Я обнаружил, что это происходит только когда я переупорядочиваю MovieClips с ActionScript Кажется, они считают, что МС вышли из строя, а затем снова их добавляют. Есть ли решение этой проблемы?

1 Ответ

2 голосов
/ 29 февраля 2012

Если вы добавляете MovieClips на сцену через IDE, вы никогда не должны удалять или возвращать их обратно на сцену с помощью ActionScript.В более общем смысле вам никогда не следует использовать ActionScript для изменения их порядка в списке отображения.В противном случае Flash даст вам право собственности на удаленный мувиклип, а затем вернет его обратно (создайте новый), когда вы вернетесь к кадру.

Если вам нужно изменить порядок клипов, попробуйте сделать это напрямую.на временной шкале, в IDE.Если ваша анимация требует чего-то более сложного, решение может состоять в том, чтобы сделать все это в ActionScript (всегда самое гибкое решение и в любом случае с меньшим количеством сюрпризов).

...