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

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

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

Регистрация: Aug 2009
Сообщений: 99
Question Правильно скопировать TextFormat1 в TextFormat2

Привет всем!

Признаюсь, не дочитал матчасть об объектах.
Надо клонировать несколько TextFormat'ов (а затем у каждого из них поменять всего одно свойство) из существующего TextFormat1 (у которого установлены некоторые свойства).

Если написать
Код AS1/AS2:
var TextFormat2:TextFormat = new TextFormat();
TextFormat2 = TextFormat1;
,то TextFormat2 начинает ссылаться на TextFormat1 - то есть если изменить, например, TextFormat2.color, то .color меняется у TextFormat1.
А мне надо именно независимые объекты.

Как?!

Старый 27.12.2012, 15:09
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Метода клонирования у TextFormat нет. Создавайте новый.
Для оптимизации попробуйте циклом, например, так:

Код AS1/AS2:
var my_fmt:TextFormat = new TextFormat(); //исходный
my_fmt.bold = true ; 
my_fmt.italic = true ;
my_fmt.color = 0xFFCC00;
 
for (i = 2; i <= 4; i++) 
{
	this['my_fmt' + i]  = new TextFormat(); //создаем новые экземпляры my_fmt2, my_fmt3 и т.д.
 
	for (p in my_fmt) 
	{
		this['my_fmt' + i][p] = my_fmt[p]; //копируем соответственные свойства от исходного
	}
}
 
//переназначаем нужные свойства
my_fmt2.color = 0xCCCCCC;
my_fmt3.italic = false ;
my_fmt4.bold = false ;
 
trace(my_fmt.bold); //проверяем - свойство bold исходного не изменилось
trace(my_fmt4.bold); //а свойство bold нового изменилось, можно использовать
Так можно сделать, поскольку почти все свойства TextFormat - примитивного типа, передаются при приравнивании не по ссылке, а по значению.
__________________
Идите первым!


Последний раз редактировалось mooncar; 27.12.2012 в 17:19.
Старый 28.12.2012, 22:53
mj_nooker вне форума Посмотреть профиль Отправить личное сообщение для mj_nooker Найти все сообщения от mj_nooker
  № 3  
Ответить с цитированием
mj_nooker

Регистрация: Aug 2009
Сообщений: 99
Спасибо!
Понял, метод принял на вооружение!

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

Теги
textformat

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

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


 


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


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