|
|
|||||
Регистрация: Feb 2009
Сообщений: 141
|
Поведение переменной
Такая ситуация в некотором классе имеется следующий код
for each(var child:Object in __dataProvider) { var element:DoorPatternElement = new DoorPatternElement(); element.pattern = child["Pattern"]; this.addChild(element); element.addEventListener(MouseEvent.CLICK, __clickElement); element.y = __Y; __Y+= element.height + 10; __elements.push(element); } public static var CHANGE_PATTERN:String = "CHANGE_PATTERN"; private function __clickElement(e:MouseEvent):void { var element:DoorPatternElement = DoorPatternElement(e.currentTarget); this.dispatchEvent(new EventObject(CHANGE_PATTERN, element.pattern)); trace(element.pattern) } Проблема следующая, если событие мы послушали и модифицировали переменные, то element.pattern содержит эти изменения, а должен оставаться прежним, каким был изначально. Я так понимаю что __infoArray и __adminArray становятся ссылками на element.pattern, но как этого избежать? |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Сделать копию.
|
|
|||||
Регистрация: Feb 2009
Сообщений: 141
|
Привет, Кэп!
Добавлено через 12 минут Вот, Кэп, как нужно делать копию: function clone(source:Object):* { var copier:ByteArray = new ByteArray(); copier.writeObject(source); copier.position = 0; return(copier.readObject()); } Ни разу не работает. |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Вы спросили что делать, я вам сказал. Вы не знаете как сделать копию какого-то конкретного объекта?
|
|
|||||
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
сделать копии массивов
__________________
Отряд Котовскага |
|
|||||
Регистрация: Feb 2009
Сообщений: 141
|
Именно так
|
Часовой пояс GMT +4, время: 08:20. |
|
« Предыдущая тема | Следующая тема » |
|
|