Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Или флеш такое Г. или я не в том програмлю :( (http://www.flasher.ru/forum/showthread.php?t=25567)

Countach 09.01.2002 21:40

Или флеш такое Г. или я не в том програмлю :(
 
Вложений: 1
Меня флеш сильно разочаровал прям так скажу :
дело в следущем

декларируем два массива
Код:

AvailI = new Array(NoResources);
AvCons = new Array(4, 5, 16, 2, 12, 64);

Затем приравниваем, один к другому
Код:

AvailI = AvCons;
а потом в другом кадре меняем значения одного !!! лишь одного массива, но какого-то хрена, они как зеркальные копии меняются вместе...
А мне нуна оригинал держать не изменным...
КАК ЭТО СДЕЛАТЬ
блин во всех языках, копия и оригинал разные вещи :(

ish 09.01.2002 22:10

дык :)
ты не создаешь копию масива, а присваиваешь переменной тот же самый обьект :)

что бы легче разобраться пример,
есть некоторый мувик с таким кодом
Код:

movie1=this;
movie2=movie1;
// и movie1 и movie2 хранят в себе ссылку на один и тот же обьет мувика, правильно?
// тоесть, написав:
movie1._x=50;
trace(this._x);
movie2._x=60;
trace(this._x);
// ну вроде все станет понятно, и так с любым обьектом


ish 09.01.2002 22:19

вот сравни два куска кода :)
Код:

x={}
y={}
x.test=1;
y=x;
trace(y.test); //1
trace(x.test); //1
y.test=2;
trace(y.test); //2
trace(x.test); //2
x.test=3;
trace(y.test); //3
trace(x.test); //3

и
Код:

x={}
y={}
x.test=1;
y.__proto__=x;
trace(y.test); //1
trace(x.test); //1
y.test=2;
trace(y.test); //2
trace(x.test); //1
x.test=3;
trace(y.test); //2
trace(x.test); //3

это выход :)

Vaicartana 09.01.2002 22:37

уж сколько раз твердили миру....
 
Ссылка на объект и объект весчи весьма разные
Приравнивание переменной ЗНАЧЕНИЯ и приравнивание ОБЪЕКТА понятия тоже несколько отличные.
Да в тех же Сях выполнимо точно такое же действие, на С++ аналогии это выглядило присваивание переменной ссылки на объект, с последующем изменением объекта. Чего уж удивлятся, что другая ссылка тоже изменится.

Countach 10.01.2002 02:12

Уже понятно стало, пасиб
Но в С++ вообщем все лечше гораздо причем :)


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

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