Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.10.2005, 13:08
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 1  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
По умолчанию Копирование объекта!!!

У меня есть какой-то объект
my_obj1 = {id:33, par1:123, ..., parN:eeee}

его нужно скопировать в другой

если я напишу
my_obj2 = my_obj1
то у меня в my_obj2 будет ссылка на объект my_obj1 (я же правильно рассуждаю),

а мне нужно чтоб в my_obj2 был объект идентичный my_obj1.

я конечно понимаю что можно копировать каждый параметр отдельно, а можно сделать это как нить по проще ?

Старый 25.10.2005, 13:14
maelstorm вне форума Посмотреть профиль Отправить личное сообщение для maelstorm Найти все сообщения от maelstorm
  № 2  
Ответить с цитированием
maelstorm

Регистрация: Jun 2005
Сообщений: 40
пиши свой метод. по другому никак

Старый 25.10.2005, 13:30
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Как было:
Код:
obj1 = {a:11};
obj2 = obj1;
trace (obj1.a);
trace (obj2.a);
obj2.a = 22;
trace ("");
trace (obj1.a);
trace (obj2.a);
Метод клонирования:

Код:
// метод клонирования
Object.prototype.clone = function () {
	var c = new Object ();
	for (var n in this) {
		var o = this[n];
		if (typeof o == "object") {
			c[n] = o.clone ();
		} else {
			c[n] = o;
		}
	}
	return c;
};
// пример
obj3 = {a:33, b:{c:333}};
obj4 = obj3.clone ();
trace (obj3.a);
trace (obj3.b.c);
trace (obj4.a);
trace (obj4.b.c);

obj3.a = 44;
obj3.b.c = 444;
trace ("");
trace (obj3.a);
trace (obj3.b.c);
trace (obj4.a);
trace (obj4.b.c);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.10.2005, 13:45
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 4  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
сенкс, как я и думал %((

2iNils - спасибо, избавил меня от лишней работы %)))

Старый 25.10.2005, 13:54
__i вне форума Посмотреть профиль Отправить личное сообщение для __i Найти все сообщения от __i
  № 5  
Ответить с цитированием
__i
 
Аватар для __i

Регистрация: Jan 2004
Адрес: Украина, Харьков
Сообщений: 1,524
Отправить сообщение для __i с помощью ICQ
А такой вопрос - куда это лучше положить? всмысле куда этот код лучше положить, у меня есть несколько классов, в которых этот метод будет использоваться.
Я конечно понимаю что можно и на сцену - будет работать, но куда красивше его положить ?

Старый 25.10.2005, 14:33
Mokus вне форума Посмотреть профиль Отправить личное сообщение для Mokus Найти все сообщения от Mokus
  № 6  
Ответить с цитированием
Mokus

Регистрация: Jun 2005
Сообщений: 107
Отправить сообщение для Mokus с помощью ICQ
Цитата:
Сообщение от __i
но куда красивше его положить ?
Пишеш интерфейс ICloneable с методом clone - его будут наследовать все классы, которые клонируются. И пишеш класс чето типа ObjectUtils, в котором в статическом методе cloneObject реализовываеш алгоритм клонирования.

Старый 25.10.2005, 14:34
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Ты учитывай, что класс MovieClip является наследником класса Object. То есть у MovieClip тоже появляется метод clone(), но вот работать он будет не так из-за строчки if (typeof o == "object").
А класть... оставь в Object.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.10.2005, 16:39
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 8  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
.....
__________________
Breakcore them all!


Последний раз редактировалось KidsKilla; 25.10.2005 в 16:50.
Создать новую тему Ответ Часовой пояс GMT +4, время: 07:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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