Есть класс с меню, в котором генерятся меню айтемы, каждый айтем - объект, получает в качестве параметра номер и ссылку на родитель (мувик-класс меню). Возникает странная вещь: переданный параметр-номер успешно выводится на экран, правильно смещает айтем, но отказывается быть индексом массива. Ошибка при выполнении:

Код:
TypeError: Error #1010: A term is undefined and has no properties.
at MenuItem$iinit()[E:\projects\as3\Classes\MenuItem.as:21]
at MainMenu$iinit()[E:\projects\as3\Classes\MainMenu.as:19]
at App/initForms()[E:\projects\as3\Classes\App.as:28]
at App$iinit()[E:\projects\as3\Classes\App.as:24]
Эксперименты показали, что если при инициализации объекта MenuItem вместо переменной подсунуть число, то всё удачно проходит.
Массив задаётся в классе Model:

Код:
data = new Object();
data.cat = new Array();
var i:uint;
for (i=1; i<7;i++) {
data.cat[i] = new Object();
data.cat[i].name = "Меню"+i;
}
MainMenu.as

Код:
package {
import App;
import Model;
import MenuItem;
import flash.display.Sprite;
public class MainMenu extends Sprite{
public var itemArr,myCat:Array;
public static var myParent:App;
public var i:uint;
public function MainMenu(parent:App) {
myParent = parent;
myCat = myParent.myModel.data.cat;
y=100;
x=30;
itemArr = new Array();
for (i=1; i<=myCat.length; i++) {
//itemArr[i] = new MenuItem(this,2); - так работает
itemArr[i] = new MenuItem(this,i);
addChild(itemArr[i]);
}
}
}
}
MenuItem.as

Код:
package {
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.SimpleButton;
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.text.TextField;
import Model;
import Controller;
import MainMenu;
public class MenuItem extends Sprite {
//-------------------------
public var myNum:uint;
public var myParent:MainMenu;
public var myCat:Array;
//-------------------------
public function MenuItem(parent:MainMenu,num:uint) {
myParent = parent;
myCat = parent.myCat;
myNum = num;
txt.text = myCat[myNum].name; // а в качестве индекса в массиве не пашет!!!
//txt.text = myCat[int(myNum)].name; - это тоже не работает
//txt.text = "тебю "+myNum; - это тоже работает, номер верно выводится
x = (myNum-1)*(width+5); // этот же номер успешно меняет координаты
}
}
}