Просмотр полной версии : Или флеш такое Г. или я не в том програмлю :(
Countach
09.01.2002, 21:40
Меня флеш сильно разочаровал прям так скажу :
дело в следущем
декларируем два массива
AvailI = new Array(NoResources);
AvCons = new Array(4, 5, 16, 2, 12, 64);
Затем приравниваем, один к другому
AvailI = AvCons;
а потом в другом кадре меняем значения одного !!! лишь одного массива, но какого-то хрена, они как зеркальные копии меняются вместе...
А мне нуна оригинал держать не изменным...
КАК ЭТО СДЕЛАТЬ
блин во всех языках, копия и оригинал разные вещи :(
дык :)
ты не создаешь копию масива, а присваиваешь переменной тот же самый обьект :)
что бы легче разобраться пример,
есть некоторый мувик с таким кодом
movie1=this;
movie2=movie1;
// и movie1 и movie2 хранят в себе ссылку на один и тот же обьет мувика, правильно?
// тоесть, написав:
movie1._x=50;
trace(this._x);
movie2._x=60;
trace(this._x);
// ну вроде все станет понятно, и так с любым обьектом
вот сравни два куска кода :)
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
Уже понятно стало, пасиб
Но в С++ вообщем все лечше гораздо причем :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.