Показать сообщение отдельно
Старый 08.11.2010, 21:50
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 65  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Сообщение от silin Посмотреть сообщение
клонирование в геттере, ты же сам написал:
Похоже ещё и в сеттере.

@iNils: просто странно это... раньше как-то не задумывался, делал defaultTextFormat и присваивал текст - ок было. А тут на тебе - appendText не работает.
Тут провел тестов несколько, разобрался почему. Сеттер text`а проверяет "бесстильные" символы и устанавливает им defaultTextFormat
Код AS3:
var field:TextField=new TextField();
var format:TextFormat=new TextFormat(null,15,0xFF0000);
field.defaultTextFormat=format;
field.text="Hello!";
super.addChild(field);
format.color=0x00FF00;
field.defaultTextFormat=format;
field.appendText(" world...");
Заменив appendText на += мы дёрнем сеттер, из за чего все символы станут зелеными. (стрикт мод офф, конечно же)

Теперь мы можем проверить создаётся клон в сеттере или нет:
Код AS3:
var field:TextField=new TextField();
var format:TextFormat=new TextFormat(null,15,0xFF0000);
field.defaultTextFormat=format;
field.text="Hello!";
super.addChild(field);
format.color=0x00FF00;
field.defaultTextFormat=format; //убрать
field.text+="world";
Если не убирать - текст зеленый. Если убрать - текст красный.

Резюме: клон TextFormat`а создаётся как в сеттере, так и в геттере.