Ошибка № 1009 при создании объектов или массивов - PullRequest
0 голосов
/ 08 декабря 2011

Я получаю эту ошибку при тестировании моего фильма: Ошибка типа: Ошибка # 1009: Не удается получить доступ к свойству или методу пустой ссылки на объект.

Мой код:

var pieceArr:Array = new Array();
pieceArr[1] = {
    piece: MovieClip(wRook1.mc),
    x: 34,
    y: 526
}

var wRook1:Object = new Object();
wRook1.mc = new WhiteRook();
addChild(wRook1.mc);
wRook1.mc.x = pieceArr[1].x;
wRook1.mc.y = pieceArr[1].y;
wRook1.inPeace = "a1";

Я пытался использовать объект вместо массива, но получил ту же ошибку.

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Это потому, что pieceArr не определено.

Также (даже если вы определили pieceArr ранее, pieceArr[1] не существует. Обратите внимание, что вы еще ничего не присвоили pieceArr[1], прежде чем пытаться получить доступ к x и y.

Этот код будет отлично работать.

var pieceArr:Array = new Array();
pieceArr[1] = {
        piece: null,
        x: 34,
        y: 526
}

var wRook1:Object = new Object();
wRook1.mc = new WhiteRook();
addChild(wRook1.mc);
pieceArr[1].piece = wRook1.mc;
wRook1.mc.x = pieceArr[1].x;
wRook1.mc.y = pieceArr[1].y;
wRook1.inPeace = "a1";
0 голосов
/ 08 декабря 2011

Вы ссылаетесь на массив pieceArr до того, как создали его. Поэтому, когда вы пытаетесь установить wRook1.mc.x и wRook1.mc.y, вы пытаетесь получить то, чего еще не существует. Вам придется изменить порядок вашего кода на что-то вроде этого:

var wRook1:Object = new Object();
wRook1.mc = new WhiteRook();
addChild(wRook1.mc);

wRook1.inPeace = "a1";

var pieceArr:Array = new Array();
pieceArr[1] = 
{
    // can't reference wRook1.mc before it's created
    piece: MovieClip(wRook1.mc),
    x: 34,
    y: 526
}

// can't reference pieceArr before it's created
wRook1.mc.x = pieceArr[1].x;
wRook1.mc.y = pieceArr[1].y;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...