Ошибка 1010 Actionscript 3 - PullRequest
       3

Ошибка 1010 Actionscript 3

0 голосов
/ 28 октября 2011

Я получаю сообщение об ошибке # 1010, когда использую этот цикл while:

while (pos.length>0)
{
    coo = pos.splice(Math.floor(Math.random() * pos.length),1)[0];

    (pos_array[index]).x = coo.x;
    (pos_array[index]).y = coo.y;
    index++;
}

Ошибка говорит: A term is undefined and has no properties.

Что не так с моим циклом, потому что я использовал тот же цикл для других программ и не получил такой ошибки.

Спасибо за внимание.

Ответы [ 3 ]

0 голосов
/ 29 октября 2011

Ваш цикл while обрывается.

pos.length никогда не изменится и в конечном итоге pos_array[index] выйдет за пределы.

Когда вы выходите за пределы, оно не определено.Итак, в основном вы делаете.

undefined.x = coo.x;

И точно так же, как ошибка говорит, что undefined не имеет свойств.

Я не вижу, как этот цикл работал когда-либо.

Попробуйте вместо этого намного чище

var savedX:Number = 0
for each( var obj:Object in pos_array ){
  coo = new MovieClip()
  coo = pos.splice(Math.floor(Math.random() * pos.length),1)[0];
  obj.x = savedX;
  obj.y = 0;
  savedX += coo.width;
}
0 голосов
/ 29 октября 2011

Возможно pos.length и pos_array.length не равны при запуске цикла.

Попробуйте это:

while (pos.length>0)
{

    coo = pos.splice(Math.floor(Math.random() * pos.length),1)[0];
    if (pos_array[index])
    {
        (pos_array[index]).x = coo.x;
        (pos_array[index]).y = coo.y;
    }
    index++;

}
0 голосов
/ 28 октября 2011

Не зная, что содержит коллекция, я предполагаю, что она заполнена DisplayObjects или объектом, который имеет свойства x и y?

Приведите ссылку, чтобы компилятор понимал, что содержит коллекция. Например:

DisplayObject(pos_array[index]).x = coo.x;
DisplayObject(pos_array[index]).y = coo.y;

... или любой другой тип вашей коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...