|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2015
Сообщений: 26
|
Странное поведение Vector.push() и Array.push()
Здравствуйте!
Есть допустим такой код: public var Next:Vector.<Point>; //.............. Next = new Vector.<Point>(); for(var i:int = 0; i < 10; i++) { var p:Point = new Point(i,i*2);//допустим Next.push(p); // Next[i] = p; //Эти варианты я тоже пробовал, с тем же результатом. // Next[Next.lenght] = p; } //Где-то дальше. Никаких манипуляций с вышеописанным вектором не было for(var j:int = 0; j < Next.lenght; j++) { trace(Next[j].x, Next[j].y);//у всех элементов значения x = 9 y = 18 (последней итерации) } P.S. Запускал отладчик, и там видно, как после каждого обращения push предыдущие значения обновляются. И что мне делать? Заранее спасибо! Последний раз редактировалось WaldeMar1321; 04.02.2016 в 20:24. |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
А по факту, очень похоже, что в массив был запушен 10 раз один и тот же инстанс, а не разные
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
Регистрация: Mar 2015
Сообщений: 26
|
Точно такая же модель на предыдущих случаях у меня, и все работает. А можно поподробнее как проверить на "один инстанс" или разные. И как это исправить?
|
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Попробуй после всех циклов взять любой из элементов и изменить значение. Если оно поменяется везде - значит инстанс один =)
Исправляется рефакторингом. Тут без вариантов собственно.
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Интересно как можно зарефакторить цикл?
|
|
|||||
Этот код вообще не должен работать lenght
Так что возможно у нас не вся информация на руках. А правильный код с нужной длиной :о)) отрабатывает как надо. Добавлено через 1 минуту У вас кстати вот здесь в боевом коде for(var i:int = 0; i < 10; i++); точки с запятой нет?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
Проверил, все идеально работает. Косяк точно не в данном коде.
__________________
Я заклинаю вас действовать иначе. |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
То что у вас 2 цикла в одной функции, уже намекает на вынос каждого в отдельный метод
Плюс комметарий между ними неоднозначно намекает, что только циклами там не ограничивается)
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
Цитата:
Цитата:
|
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
__________________
Загружаем картинки, минуя ошибки безопасности |
Часовой пояс GMT +4, время: 16:54. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|