Написал две функции: одна создает объекты SubBtn, а вторая переменные. Обе в конце записывают значения в массив. А в функции addSubBtns почти никаких изменений. Все работает как мне надо.
P.S.: сразу не догадался выложить что получилось, так как после того как увидел написанный вами код, подумал:"нафиг свой детский выкладывать"
Код AS3:
package forpage {
import flash.display.MovieClip;
import flash.display.SimpleButton;
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 delay:uint;
private var repeatCount:uint;
private var subBtnVar:Array;
private var subBtnObject:Array;
private var subBtnX:Array;
private var subBtnY:Array;
private var index:Number
private var win:MovieClip;
public function WorkGalary (winSymbol:MovieClip) {
index = -1;
creatSubBtnObjects();
createSubBtnVars();
subBtnX = [70, 70, 70, 355, 725];
subBtnY = [100, 130, 160, 100, 100];
delay = 700;
repeatCount = 5;
opened = true;
win = winSymbol;
addChild (win);
localTimer1 = new Timer (delay, repeatCount);
localTimer1.addEventListener(TimerEvent.TIMER, localTimer1Handler);
localTimer1.start();
};
private function creatSubBtnObjects():void {
var btn1 = new SubBtn1;
var btn2 = new SubBtn2;
var btn3 = new SubBtn3;
var btn4 = new SubBtn4;
var btn5 = new SubBtn5;
subBtnObject = [btn1, btn2, btn3, btn4, btn5];
};
private function createSubBtnVars():void {
var btn1:SimpleButton;
var btn2:SimpleButton;
var btn3:SimpleButton;
var btn4:SimpleButton;
var btn5:SimpleButton;
subBtnVar = [btn1, btn2, btn3, btn4, btn5];
};
public function makeRew ():void {
localTimer2 = new Timer (100, 1);
localTimer2.addEventListener(TimerEvent.TIMER, localTimer2Handler);
localTimer2.start();
win.addEventListener (Event.ENTER_FRAME, reverse);
};
public function reverse (e:Event):void {
if (win == null) {
throw new Error ("Symbol not defined");
};
try {
win.prevFrame ();
if (win.currentFrame == 1) {
win.removeEventListener (Event.ENTER_FRAME, reverse);
opened = false;
parent.removeChild (this);
};
};
catch (errObject:Error) {
trace ("The message is: " + errObject.message);
};
};
private function localTimer1Handler (e:TimerEvent):void {
index++
addSubBtns(index, subBtnX[index], subBtnY[index]);
};
private function localTimer2Handler (e:TimerEvent):void {
removeSubBtns();
};
private function addSubBtns (index:Number, X:Number, Y:Number):void {
var newX = X;
var newY = Y;
subBtnVar[index] = subBtnObject[index];
subBtnVar[index].x = newX;
subBtnVar[index].y = newY;
addChild(subBtnVar[index]);
};
private function removeSubBtns ():void {
for (;numChildren > 1;) {
removeChildAt(1);
};
};
}
}