PDA

Просмотр полной версии : Проблема с инициализацией массива внутри функции


Alex_beginner
31.07.2008, 16:04
Уважаемые коллеги!

Вопрос у меня возможно банальный, но что то понять в этом моменте я не могу.
Вопрос, значит, в следующем.

Есть функция:

function fillOneVertex(trgData:Object, colorCompIndex:Number):BitmapData
{
var srcTriangle:Array = new Array();
srcTriangle[0]=10;
trace(srcTriangle[0]);// пишет undefined
trace(srcTriangle instanceof Array)// пишет false
}


При выполнении этой функции не создается массив, т.е.:

trace(srcTriangle[0]);// пишет undefined

Ситуация в корне меняется, когда пытаешься создать массив с помощью литерала:
var srcTriangle:Array = [];

Теперь строка
trace(srcTriangle[0]);

выдает - 10, но строка

trace(srcTriangle instanceof Array)

по прежнему говорит false.

Пробовал создать в отдельном проекте простую функцию, синтаксис:

var myVar:Array = new Array()

работает прекрасно.
Вопрос: В чем может быть загвоздка?

Заранее спасибо.

chingachgoog
31.07.2008, 16:12
Не знаю, у меня все верно ваш первый код показывает

Alex_beginner
31.07.2008, 16:22
Хех! Разобрался! Глюк был в том, что до функции в коде была ошибка инициализации объекта:

var trgData:Object =
{
colorComp: Array = [RGB_1[0], RGB_2[0], RGB_3[0]]
};

Это и привело к странному поведению класса Array в последующем. Любопытно, что компилятор такого рода накладки незамечает.
Спасибо chingachgoog, что откликнулся на крик о помощи!