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

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

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

Регистрация: Jun 2005
Адрес: Очень странное место
Сообщений: 329
Отправить сообщение для Bорон с помощью ICQ
По умолчанию А как скопировать объект, а не ссылку на него?

Доброго времени суток.

Есть объект в некой переменной объекта класса MovieClip.

Код:
_root.pig_mother.meta = {
....
}
А затем создаются некие объекты класса MovieClip (вобще то просто attachMovie создаются копии _root.pig_mother) и у них должны быть свои meta. Написал
Код:
_root.piggy_x.meta= _root.pig_mother.meta;
Сообразил что это не копия объекта а ссылка на него.
Я так понял что для того что бы сделать копию надо создать новый класс и создавать в каждой копии _root.piggy_x.meta свой его экземпляр.

Попробовал написать класс. Компилятор сказал, что только из внешнего as разрешит его добавить. Задумался. Помоему, что то принципиально делаю не так... Подскажите пожалуста в какую чторону смотреть...

С уважением, Ворон.
__________________
Студия "Ночной народ" | http://nightfolk.net/

Старый 08.09.2007, 04:36
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 2  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Код:
 
o1 = {a:1, b:2, c:3, d:{x:2,y:5} };
function cloneSimpleObj( obj:Object ) : Object{
 var o:Object = new Object();
 for( var p in obj ) o[p] = obj[p];
 return o;
}
function cloneObj( obj:Object ) : Object{
 var o:Object = new Object();
 for( var p in obj ){
  if( typeof(obj[p]) == 'object' ) o[p] = arguments.callee( obj[p] );
  else o[p] = obj[p]; 
 }
 return o;
}
var o2:Object = cloneObj(o1);
var o3:Object = cloneSimpleObj(o1);
// меняем параметры оригинала
o1.a = 3;
o1.d.x = 22;
//смотрим что с клонами
trace(o2.a); //1
trace(o2.d.x);//2 - осталось прежним, d это клон
trace(o3.a);//1
trace(o3.d.x);//22 - изменилось, потому d это ссылка
Сами разберетесь?
Рекомендую все-таки вручную написать функцию для копирования. Может вам один объект надо по ссылке передать, а второй клонировать.
А куда смотреть.. В сторону книжного магазина, куда ж теперь без внешних файлов as..

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

Регистрация: Jun 2005
Адрес: Очень странное место
Сообщений: 329
Отправить сообщение для Bорон с помощью ICQ
Разберусь.
Спасибо большое.
__________________
Студия "Ночной народ" | http://nightfolk.net/

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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