Делаю галерею, в которой кнопки со ссылками на работы должны добавляться программно на этапе выполнения.
Чтобы многократно не повторять код, сделал обобщенную функцию внутри класса, которая вызывается по таймеру. При вызове функции каждый раз должна создаваться одна кнопка. Но вот доходит до создания экземпляра класса кнопки, как выскакивает ошибка:
1120: Access of undefined property SubBtn.
В библиотеке имеется 5 символов и каждый слинкован с автоматически создаваемым класом (SubBtn1, SubBtn2, SubBtn3, SubBtn4, SubBtn5).
Привожу код класса:

Код AS3:
package forpage {
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
public class WorkGalary extends MovieClip {
public var opened:Boolean;
private var localTimer1:Timer;
private var localTimer2:Timer;
private var repeatCount:uint;
private var subBtnNumbers:Array;
private var subBtnX:Array;
private var subBtnY:Array;
private var index:uint = 0;
private var subBtn:SubBtn;
private var win:MovieClip;
public function WorkGalary (winSymbol:MovieClip) {
subBtnNumbers = [1, 2, 3, 4, 5];
subBtnX = [70, 70, 70, 355, 725];
subBtnY = [100, 130, 160, 100, 100];
repeatCount = 5;
opened = true;
win = winSymbol;
addChild (win);
localTimer1 = new Timer (710, repeatCount);
localTimer1.addEventListener(TimerEvent.TIMER, localTimer1Handler);
localTimer1.start();
}
public function makeRew ():void {
localTimer2 = new Timer (100, 1);
localTimer2.addEventListener(TimerEvent.TIMER, localTimer2Handler);
localTimer2.start();
win.addEventListener (Event.ENTER_FRAME, goBack);
}
public function goBack (e:Event):void {
if (win == null) {
throw new Error ("Symbol not defined");
};
try {
win.prevFrame ();
if (win.currentFrame == 1) {
win.removeEventListener (Event.ENTER_FRAME, goBack);
opened = false;
parent.removeChild (this);
}
}
catch (errObject:Error) {
trace ("The message is: " + errObject.message);
};
};
private function localTimer1Handler (e:TimerEvent):void {
addSubBtns(subBtnNumbers[index], subBtnX[index], subBtnY[index]);
index++;
};
private function localTimer2Handler (e:TimerEvent):void {
removeSubBtns();
};
private function addSubBtns (index, X, Y):void {
var newIndex = index;
var newX = X;
var newY = Y;
trace ("REACHED TIL HERE!!!");
subBtn[newIndex] = new SubBtn[newIndex]
subBtn[newIndex].x = newX;
subBtn[newIndex].y = newY;
addChild(subBtn[newIndex]);
};
private function removeSubBtns ():void {
};
}
}
С помощью трассировки удалось узнать, что ошибка возникает при выполнении директивы new SubBtn[newIndex].
Подскажите пожалуйсто, как правильно это реализовать.