Когда вы создаете экземпляр oldPage, вы создаете новый экземпляр этого класса (или, по крайней мере, так он выглядит для меня). Эта страница не та, что на сцене.
В вашем конструкторе установите переменную currentPage равной переменной экземпляра страницы, которая находится на сцене (как бы вы ее ни называли в свойствах объекта). Затем в следующем клике сохраните currentPage в oldPage, прежде чем сбросить его на новую добавленную страницу.
FWIW, соглашение состоит в том, что имена классов всегда пишутся с большой буквы. Если бы вы сделали это, было бы легче узнать наверняка, что page1, page2 и т. Д. Являются классами, которые вы создаете.
Также обратите внимание, что вы, вероятно, не много экономите, не имея экземпляров на сцене при запуске, потому что они скомпилированы в фильм до Кадра 1. Даже если вы сняли отметку с кнопки «Вставить в Кадр 1», ссылаясь на них в вашем файле Class, который скомпилирован в Кадр 1, вы заставляете их компилировать в Кадр 1.
=======================================
отредактировано, чтобы ответить на вопрос об установке переменной в экземпляр
Если щелкнуть объект на сцене в файле fla, посмотрите на имя экземпляра на панели свойств. Это название вашего экземпляра на сцене. Если у него нет имени, дайте его. Если у вас включено «объявление экземпляров сцены», все готово. Если нет, вам нужно добавить объявление переменной вверху файла, чтобы сделать это имя экземпляра доступным в качестве переменной.
Теперь, в классе документа для вашего FLA-файла (который, как я полагаю, является тем кодом, который вы вставили выше):
public function YourDocumentClassName() {
super();
currentPage = theNameofThatInstance;
}
nextClicked изменится и будет выглядеть так:
function nextClicked(event:MouseEvent):void{
//check to ensure it is not the last page
if (currentArray < pageArray.length - 1){
//define the current slide as oldPage
var oldPage:MovieClip = currentPage;
currentArray++;//may also want to consider checking for past the end of the array and starting at the beginning
//define the next slide as currentPage and place on stage
var currentPage:MovieClip = new pageArray[currentArray];
addChild(currentPage);
currentPage.x = 1024;
TweenMax.to(currentPage, 1, {x:0});
TweenMax.to(oldPage, 1, {x:-1024,onComplete:removeChild,onCompleteParams:[oldPage]});
}
}
Полагаю, если ваша графика большая или она движется, вы можете столкнуться с проблемами производительности, когда на сцене их больше, но я предположил, что вы пытались обойти проблемы с загрузкой.