Видимо, вы не загружаете другойMC_1
, вы добавляете один и тот же экземпляр, который ссылается MC_1
. «Загрузка» видеоклипа не просто добавляется, это также , создавая экземпляр, для этого вы вызываете MC_1 = new Something();
. Итак, чтобы добавить совершенно новый клип, который имеет прототип в библиотеке, вы должны повторно создать экземпляр переменной, которую вы используете, разместив MC_1 = new Something()
, где Something
- это имя мувиклипа в библиотеке.
Вы также можете сделать другой подход: вы даете прототипу функцию, которая будет реагировать на событие Event.REMOVED_FROM_STAGE
, что заставит все кнопки в MC изменять свои состояния по умолчанию. Как это:
public class Something extends MovieClip {
// any other functionality is here
public function Something() {
// ...
addEventListener(Event.REMOVED_FROM_STAGE,resetMC);
}
private function resetMC(e:Event):void {
button_1.gotoAndStop(1); // make sure to place proper name of buttons
... // place one gotoAndStop() call per button you want to switch back
}
}
Затем, как только вы removeChild(MC_1)
, этот код умирает, делая все кнопки MC_1
«s (ну, все, что упоминаются в функции resetMC()
), чтобы показать соответствующий кадр (здесь, button_1
покажет первый кадр). Этот подход, как правило, лучше, потому что вы не создаете новый экземпляр для отображения в памяти, таким образом, вы сохраняете контроль над настоящим MC_1
.
Спасибо! я использовал второй подход! Он отлично работает;) – Loralon