Показать сообщение отдельно
Старый 24.09.2010, 11:23
gfdrf вне форума Посмотреть профиль Отправить личное сообщение для gfdrf Найти все сообщения от gfdrf
  № 4  
Ответить с цитированием
gfdrf

Регистрация: Mar 2006
Сообщений: 92
Вот уж никак не думал, что вопрос в который я уперся вчера, сегодня поднимется на форуме.
По сути понятно, а вот как избавится от этого?
А у меня это всё идет ещё и глубже. Приведу свой пример:
Есть некий клип-редактор.
Есть главный массив в котором куча элементов.
Этот главный массив, сохраняется в шареде.
То есть типа так:
Код AS1/AS2:
save.data.mainData=mainArray
Для редактирования, берем элемент из главного массива, например mainArray[1] и
делаем так:
Код AS1/AS2:
editorMC.array0=mainArray[1][0]
editorMC.array1=mainArray[1][1]
editorMC.array2=mainArray[1][2]
Затем, используя значения из массивов editorMC.array0...editorMC.array(X)
выполняем в клипе редакторе некие действия.
А дальше начинается проблема:
Мы что то изменяем в редакторе, и затем, мы хотим либо сохранить изменения, либо нет. Так вот не проходит такая фишка, ибо (в дебаггере замечательно видно), как только мы изменяем что то в этих дочерних массивах editorMC.array0...editorMC.array(X), то изменения сразу происходят не только в главном массиве, а и даже и в save.data.mainData.
Пробовал сделать так:
Сохранять данные из редактируемого элемента (перед редактированием), во временном массиве, и если не нужны изменения, восстанавливать данные из него.
Прикол в том, что в нем данные точно так же изменяются, синхронно с остальными
Как это победить?

Добавлено через 1 минуту
Упс, пока писал ответ уже есть
Спасибо попробую. Я тоже подумал, что нужно использовать не простое приравнивание, а что то из других методов.