Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Бага AS3? (http://www.flasher.ru/forum/showthread.php?t=125564)

yorlin 27.05.2009 13:31

Бага AS3?
 
Вобщем динамически создаю поля ввода, заношу в них значения, далее по этим значениям формирую параллельно 2 массива. Один массив который я использую, второй хроню как копию, чтобы были неизмененные исходные данные. По ходу работы меняется только второй массив, далее очищаю второй и записываю значения во второй из первого фором, любым способом, что push(), что arr1[i] = Arr2[i], не важно, эффект один и тот же: теперь когда меняем второй массив меняется и первый. Каким образом, особенно записывая значения первого во второй через push(), изменение второго влияют на первый?

BeDLiNt 27.05.2009 13:35

Цитата:

...и записываю значения во второй из первого... arr1[i] = Arr2[i]
Так вы записываете в первый из второго)

А по теме: "Присваивание массива выполняется по ссылке, а не по значению. Когда одна переменная массива присваивается другой переменной массива, они обе относятся к одному и тому же массиву"((с) help)

yorlin 27.05.2009 13:37

Опечатался, arr2[i] = Arr1[i], но это я просто то что пробовал, а суть вопроса именно когда записываем при помощи push()...arr1.push(arr2[i])

etc 27.05.2009 13:37

А как вы формируете два массива?

divinus 27.05.2009 13:41

скорее всего хранятся не объекты а ссылки на объекты которые вы и передаете из первого во второй...

yorlin 27.05.2009 13:43

Код AS3:

private var arrOfbPoints:Array = new Array();
private var copyOfArrOfbPoints:Array = new Array();
 
public function form():void
{
        for (var j:int = 0;j < inputs.length;j++)
        {
                if (inputs[j].text == "")
                {
                        arrOfbPoints[j].pValue = -1;
                        copyOfArrOfbPoints[j].pValue = -1;
                }
                else
                {
                        arrOfbPoints[j].pValue = int(inputs[j].text);
                        copyOfArrOfbPoints[j].pValue = int(inputs[j].text);
                }
        }
}

Добавлено через 3 минуты
Ошибку понял, всем спасибо)))

Добавлено через 5 минут
Цитата:

Сообщение от divinus (Сообщение 823542)
скорее всего хранятся не объекты а ссылки на объекты которые вы и передаете из первого во второй...

Так точно. :)


Просьба к модераторам закрыть тему.


Часовой пояс GMT +4, время: 23:08.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.