Добрый вечер.
Генерирую игровое поле из xml-данных, используя вложенные массивы. Для создания поля использую отдельный класс GameMatrix:

Код AS3:
package netgame {
import flash.display.*;
import flash.geom.*;
public class GameMatrix extends Sprite{
//ширина ячейки
public var cellSize:int = 40;
//Размер поля в ячейках, передается в конструктор
private var matrixX:int;
private var matrixY:int;
//контейнер для отображения игрового поля
private var container:Sprite;
//Основной массив матрицы
public var matrixArray:Array = new Array();
//Вложенный массив для матрицы
public var row:Array = new Array(matrixY);
//Конструктор
public function GameMatrix (newMX:int, newMY:int, targetContainer:Sprite){
matrixX = newMX;
matrixY = newMY;
container = targetContainer;
//trace("Game x-matrix size: " + matrixX);
//trace("Game y-matrix size: " + matrixY);
//циклы создания поля
for (var i:int = 0; i < matrixX; i++){
matrixArray[i] = row;
for (var k:int = 0; k < matrixY; k++){
matrixArray[i][k] = new Sprite();
matrixArray[i][k].graphics.lineStyle(1);
matrixArray[i][k].graphics.beginFill(0xFFFEEE, 1);
matrixArray[i][k].graphics.drawRect(0, 0, cellSize, cellSize);
matrixArray[i][k].x = i*40 + 50;
matrixArray[i][k].y = k*40 + 50;
container.addChild(matrixArray[i][k]);
}
}
trace("GameMatrix x: " + matrixArray[0][1].x);
trace("GameMatrix y: " + matrixArray[0][1].y);
}
}
}
Поле отлично рисуется, для размещения игрока в нужной месте требуется обращение к координатам (x y) текущей ячейки (объекту Sprite), но x координата всегда равна 390! с y никаких проблем. Намекните если возможно на решение, буду благодарен - очень замучился уже. И не понимаю почему же тогда поле строится??
Конструктор основного класса:

Код AS3:
public function GameClass () {
function xmlLoaded(e:Event):void
{
remoteXml = new XML(xmlLoader.data);
//trace (getRoot(remoteXml))
//trace (remoteXml.attributes()[0]);
addChild(place);
currentUserXpos = remoteXml.children()[0].attributes()[0];
currentUserYpos = remoteXml.children()[0].attributes()[1];
trace(currentUserXpos);
trace(currentUserYpos);
//currentUserYpos;
matrix = new GameMatrix(remoteXml.attributes()[0], remoteXml.attributes()[1], place);
userPlayer = new Sprite();
userPlayer.graphics.lineStyle(1);
userPlayer.graphics.beginFill(0x000000, 1);
userPlayer.graphics.drawCircle(0, 0, 10);
userPlayer.x = matrix.matrixArray[currentUserXpos][currentUserYpos].x + matrix.cellSize/2;
userPlayer.y = matrix.matrixArray[currentUserXpos][currentUserYpos].y + matrix.cellSize/2;
trace("UserPlayer x: " + userPlayer.x);
trace("UserPlayer y: " + userPlayer.y);
place.addChild(userPlayer);
//trace (currentUserXpos);
//trace (matrix.matrixArray[3][5].y);
}
xmlLoader.load(xmlReq);
xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
}
}