PDA

Просмотр полной версии : Не удается правильно заполнить элементы двумерного массива


mooncar
29.07.2009, 22:31
Двумерные массивы уже обсуждались, но не получается правильно с ними работать.
В начале кода я его объявляю:
EVENTSDATA = [[], []]; //массив данных шкалы событий
Далее в нужные моменты вызывается функция загрузки данных, и определяются его элементы, но трейс, который делается тут же, выдает undefined:
function loadEventsData (year, n) {
var myVarsEData:LoadVars = new LoadVars();
myVarsEData.onData = function(src:String):Void {
if (src != undefined) {
EVENTSDATA[year][n] = src;
trace(srс);
trace('EVENTSDATA[' + year + '][' + n + ']= ' + EVENTSDATA[year][n]);
};
myVarsEData.load(EventsPath + 'text/' + year + '.' + n + '.txt');
};
Причем трейс src тут показывает, что текст нормально грузится.
Примеры с форума рассматривал и вроде бы делаю аналогично удачным решениям, но видимо, где-то ошибаюсь. Что я делаю не так?

iNils
29.07.2009, 22:44
Вы объявили массив [0][0] и [0][1], не думаю, что у вас year равен 0, а n 0 или 1

mooncar
29.07.2009, 22:53
Кажется понимаю.
А как быть, если диапазон year может лежать в пределах обычного современного летоисчисления (19... - 20...), а n - целочисленное, больше нуля, но не более 3?
Как бы вы посоветовали рабоать массивом?

iNils
29.07.2009, 22:58
Делается так
EVENTSDATA = [];
if (!EVENTSDATA[year]) {
EVENTSDATA[year] = [];
}
EVENTSDATA[year][n] = src;

mooncar
29.07.2009, 23:02
Спасибо, очень признателен!
Действительно, объявление массивов "налету" - это решение задачки. Все заработало.