|
|
|||||
Регистрация: Sep 2006
Сообщений: 111
|
добавляются на сцену не все обьекты
В общем если бы не правила форума, назвал бы темуПомогите определить идиот ли я или нет? В общем поставил себе задачу детсадовскую, написать детсадовский алгоритм, матричного расположения объектов на сцене. Например в конкретном примере 9 квадратиков в 3 ряда и столбца.
import flash.events.MouseEvent; import flash.events.Event; var Mass:Array = new Array(); var MassRed:Array = []; for (var i:int=0; i<3; i++) { MassRed.push(Mass); //Собстна добавляем массив в массив for (var j:int=0; j<3; j++) { var t:Cube = new Cube();// этот квадратик я нарисовал во Flash Mass.push(t); // Добавляем объекты в массив MassRed[i][j].x = MassRed[i][j].width + 35 * j; //Определяем координаты каждого из квадратиков по x MassRed[i][j].y = MassRed[i][j].width + 35 * i; //Определяем координаты каждого из квадратиков по y stage.addChild(MassRed[i][j]); // Добавляем элементы на сцену; } } причем если мы напишим: trace("По Х координате=",MassRed[i][j].x); trace("По Y координате=",MassRed[i][j].y); trace(MassRed[i][j]); По Х координате= 31 По Y координате= 31 [object Cube] По Х координате= 66 По Y координате= 31 [object Cube] По Х координате= 101 По Y координате= 31 [object Cube] По Х координате= 31 По Y координате= 66 [object Cube] По Х координате= 66 По Y координате= 66 [object Cube] По Х координате= 101 По Y координате= 66 [object Cube] По Х координате= 31 По Y координате= 101 [object Cube] По Х координате= 66 По Y координате= 101 [object Cube] По Х координате= 101 По Y координате= 101 [object Cube] Т.е. определение координат всех 9-ти элементов массива. а добавляется только 3 последних ну или все 3 ряда в одну строчку.. Что не логично по коду и функции trace мы видим что координаты абсолютно разные для всех элементов массива... ХМ... Добавлено через 4 минуты |
|
|||||
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Прочтя вопрос, подумал что знаю ответ, но для начала решил проверить.
И теперь у меня тоже вопрос - ниже код, который как и ожидалось проводит только три итерации, но вот что внутри.. Трейс для parentArray : Длина - 2, 3, 4. Кол-во спрайтов - 2, 6, 8. Почему так? В начале вопрос ТС мне казался простым, так-как думал что причина в том, что вкладываемый массив не создаётся заново... Хотя наверное я и прав... Мы положили массив в массив, потом положили в него спрайт, а затем снова положили в массив. И того два спрайта... ТС может у Вас тоже самое? |
|
|||||
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
После каждого прохода цикла, очищайте массив Mass. У Вас получается, что вы всегда ссылаетесь на одни и те же 3 объекта.
import flash.events.MouseEvent; import flash.events.Event; var Mass:Array = new Array(); var MassRed:Array = []; for (var i:int=0; i<3; i++) { Mass = []; MassRed.push(Mass); //Собстна добавляем массив в массив for (var j:int=0; j<3; j++) { var t:Cube = new Cube();// этот квадратик я нарисовал во Flash Mass.push(t); // Добавляем объекты в массив MassRed[i][j].x = MassRed[i][j].width + 35 * j; //Определяем координаты каждого из квадратиков по x MassRed[i][j].y = MassRed[i][j].height + 35 * i; //Определяем координаты каждого из квадратиков по y trace(MassRed[i][j]); addChild(MassRed[i][j]); // Добавляем элементы на сцену; } } |
|
|||||
[+1 25.10.13]
[+4 18.03.14] |
for (var i:int=0; i<3; i++)
{ Mass = []; |
|
|||||
Регистрация: Sep 2006
Сообщений: 111
|
Цитата:
|
Часовой пояс GMT +4, время: 19:29. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|