AS2: removeMovieClip () не работает - PullRequest
1 голос
/ 20 марта 2012

Итак, я дублирую MovieClip, который находится на сцене и создан через IDE, примерно так:

duplicateMovieClip(timeData, "nextTimeData", timeData._parent.getNextHighestDepth());

Это прекрасно работает, но когда я иду, чтобы удалить MovieClip, вот так:

trace(timeData);
removeMovieClip(timeData);
trace(timeData);
trace(nextTimeData);

Он отказывается от удаления и trace(timeData) выводит _level0.timeData до и после removeMovieClip(timeData)

Почему это происходит?

РЕДАКТИРОВАТЬ: В соответствии с ответами и документацией по флеш-памяти MovieClips, созданные в IDE, имеют отрицательную глубину, и removeMovieClip() молча не удается удалить MovieClips с отрицательной глубиной.

Итак, я сейчас присоединяю timeData избиблиотека, например, так:

attachMovie("timeData", "timeData", this.getNextHighestDepth());
timeData._x = 530;
timeData._y = 492.5;

Однако она показывает то же поведение.

Ответы [ 4 ]

3 голосов
/ 20 марта 2012

ДА, есть способ:

в IDE щелкните экземпляр MovieClip и поместите этот код на панель AS:

onClipEvent(load)
{
    this.swapDepths(0);
    this.removeMovieClip();
}

, чтобы иметь возможность использовать removeMovieClip() в экземпляре он должен иметь правильную глубину, поэтому сначала нужно установить глубину.Взрыв, магия:)

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

Приветствия, Роб

1 голос
/ 10 сентября 2013

Похоже, вы создали свой мувиклип с помощью IDE (среда Flash).

ПРИМЕЧАНИЕ. Видеоклипы, созданные с использованием среды IDE, по умолчанию имеют отрицательную глубину.

removeMovieClip удаляет только клипы с положительной глубиной.

Если вы хотите удалить свой мувиклип, который вы поместили с помощью IDE, вам сначала нужно использовать swapDepths, чтобы ваш мувиклип попал в «положительную» глубину.После этого вы сможете удалить его без проблем.

0 голосов
/ 20 марта 2012

В AS2 объект, созданный через IDE, не может быть удален с помощью removeMovieClip.Об этом говорится в официальной справке as2.Но дублированный может быть удален с помощью этой функции.Вам лучше взять ваши timeData из библиотеки, используя код, а не вручную

0 голосов
/ 20 марта 2012

Вы не можете удалить мувиклип, созданный вручную, из IDE, используя removeMovieClip():

Удаляет экземпляр мувиклипа, созданный с помощью duplicateMovieClip (), MovieClip.duplicateMovieClip (), MovieClip.createEmptyMovieClip() или MovieClip.attachMovie ().

С http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001349.html

Вы можете удалить nextTimeData таким образом, но вы никогда не сможете удалить timeDataесли только вы не создадите его из AS.

...