![]() |
Скопировать объект без ссылки
У меня такая проблема:
У меня есть объект который я создаю в классе Main, затем передаю его как параметр в класс Settings. В классе Settings меняю содержимое принятого класса, и диспатчу событие при нажатии на кнопке ОК в классе Settings о том, что значения изменились. По диспатчу в классе Main я перезаписываю изначальный объект переданным, но проблема в том, что он перезаписывается ещё до диспатча, в связи с тем, как я понимаю, что переданный объект это всего лишь ссылка на начальный, соответственно меняя второй мы автоматом меняем первый! Как сделать так чтобы при передаче я создавал отдельный объект никак не связанный с изначальным т.е. надо создать реально новый объект на основании старого! Надеюсь понятно объяснил!:) |
Да, это всего лишь ссылка на ваш объект созданный в Main. "Перезаписыватся" тока стринги и числа, даже xml и тот Object :)
Есть несолкько вариантов. Первый сделать метод clone у вашого объекта который будет возвращать созданный такойже объект и которому будет передано состояние клонируемого. И второй который я знаю это паттерн прототип |
Цитата:
Можно поподробнее про эти методы?) Как например может выглядеть метод clone? |
самое простое
Код AS3:
у Rectangle есть clone() например http://etcs.ru/as3_tips_and_tricks/d...ith_bytearray/ |
ну это понятно, а чтото поизящнее? Интуиция подсказывает что тут должен быть какой то хитрый for in :quiet:
Добавлено через 5 минут Не силён я в ByteArray)) Пока что не могу въехать каким это магическим образом он может скопировать весь объект)) Код AS3:
|
ну writeObject , не ?
Добавлено через 2 минуты Код AS3:
|
Цитата:
|
Цитата:
Цитата:
|
ну вроде для всех :)
|
| Часовой пояс GMT +4, время: 20:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.