несколько экземпляров одного и того же объекта разнесены с помощью цикла создает только один - PullRequest
0 голосов
/ 06 февраля 2011

Я с трудом пытался правильно сформулировать свой вопрос, поэтому прошу прощения, если он кажется запутанным.Также я использую библиотеку Flixel во Flash Builder.Это может быть не так важно, но, вероятно, любой, кто знает немного больше меня или даже немного AS3, мог бы видеть, что я делаю неправильно.

В любом случае, я пытаюсь в основном создать 10экземпляры этого квадратного объекта я сделал.все, что мне нужно сделать, это передать его координату x и y, чтобы разместить его, и это работает.так что я проверил, если я просто сделаю:

var testsquare:Bgsq;
testsquare = new Bgsq(0,0);
add(testsquare);

он работает нормально и добавляет квадрат в 0,0, как я сказал, но я хочу добавить 10 из них, а затем переместить следующий созданный25 пикселей вправо (потому что каждый квадрат 25 пикселей)

моя проблема в том, что я вижу только 1 квадрат, как будто он делает только 1 его экземпляр.что я могу делать не так?

var counter:int = 0;
var bgsqa:Array = new Array;

for (var ibgs:int = 0; ibgs < 10; ibgs++)
    {
    bgsqa[counter] = new Bgsq(0,0);
    bgsqa[counter].x += 25;
    add(bgsqa[counter]);
    counter++;
    }

Ответы [ 2 ]

0 голосов
/ 06 февраля 2011

Здесь вы много чего не так делаете.

Во-первых, вы используете псевдо-итератор (счетчик) для доступа к элементам массива через цикл вместо использования итератора (ibgs).).

Во-вторых, я не вижу ничего в массиве (bgsqa), через который вы перебираете.Неудивительно, что у тебя проблемы.Вот что вы должны сделать.

var bgsqa:Array = [];
for(var i:int=0;i<10;i++)
{
    var bgsq:Bgsq = new Bgsq(i * 25, 0);
    add(bgsq);
    bgsqa.push(bgsq);
}

Это, вероятно, следует сделать, если ваш пост является точным.

0 голосов
/ 06 февраля 2011

для (var ibgs: int = 0; ibgs <10; ibgs ++) </p>

{
bgsqa[counter] = new Bgsq(0,0);
bgsqa[counter].x = counter * 25;
add(bgsqa[counter]);
counter++;
}

Они начинаются с 0, поэтому применение += просто добавляет 25 к 0. Это должно сработать.

...