![]() |
Дублирование movieclip при использовании setChildIndex.
Сделала небольшую открыточку.
Состоит из 5 объектов - movieclip (mc1, mc2, ... mc5), которые расположены в основной сцене. Во всех mc в первом кадре стоит stop(). Вызываю в первом кадре основной сцены Код AS3:
Например Код AS3:
Код AS3:
И все работает, уже обрадовалась самой себе, но... заметила, что если открытка работает больше 5-10 минут начинает ужасно тормозить, провела несколько экспериментов и обнаружила, что при вызове setChildIndex создается дополнительный объект. (Использовала setChildIndex и дополнительно смещала клип, причем mc1.gotoAndPlay(2) запускает только один, тот который передвинулся, а все его копии неподвижны). Т.е. при каждом вызове this.setChildIndex(mc1, this.numChildren - 1) увеличивается this.numChildren на единицу. Пыталась удалять их через removeChildAt(this.numChildren - 1); но ничего не помогает. Мальчики помогите пожалуйста, что я делаю не так? Может быть есть другой способ вытаскивать объекты на передний план??? Мне так хочется сделать открытку!!!! Я уже почти плачу. :'( P.S. flash cs4. as3. Добавлено через 3 часа 27 минут Неужели никто девушке не поможет в канун праздника??? |
Было бы здорово увидеть более полный код ;)
А вообще можно попробовать использовать swapChildrenAt() вместо setChildrenIndex(). Хотя вряд ли дело в этом, тут другое что-то скорее всего. |
Вот собственно весь код.
Код AS3:
Код AS3:
|
а те мувики что уже один раз запущены не останавливаются когда перекрываются следующим?
|
Цитата:
|
Вероятно потому что код написан в кадрах, и видимо в каком то кадре есть создание нового мувика, что собственно и повторяется. Либо все это связано как то с .gotoAndPlay(5); Может в с 5го кадра этих мувиков есть код какой то в кадрах.
А вообще проверить легко зависит ли это от перемещения слоя или нет. Замени на вот это: Код AS3:
|
Цитата:
:wacko: Я простенький пример сделала и разместила тут: http://***********/4338495 В нем вся суть отражается. Посмотрите пожалуйста, добрый молодой человек. :) |
Альбина1983, для оформления своего кода надо использовать теги [code][/code]
|
iNils
Спасибо, что все поправили. Постараюсь впредь не нарушать правило! |
Такого я не встречал еще. Очень удивлен таким поведением. Главное duplicateMovieClip() удален, а тут как то само получается, а самое главное зачем его удаляли, если без проблем реализуемо, но это так, отголоски прошлого... Главная причина - наличие более одного кадра и функции addChild / setChildIndex. Смогло без багов заработать только так: кадр должен быть в руте 1 и в нем должно стоять:
Код AS3:
Кстати, для тех кто против кода в кадрах - вынос в класс не помогает, если в мувике больше 2х кадров и в них не стоит stop(). Дублируется именно в переход с последнего кадра на первый. А может и просто на кадр назад.. |
| Часовой пояс GMT +4, время: 06:54. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.