Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Правильная реализация эффектов для мыши (http://www.flasher.ru/forum/showthread.php?t=146411)

iNils 08.11.2010 20:49

Ты забыл про setTextFormat

Psycho Tiger 08.11.2010 20:56

Нет, не забыл.
defaultTextFormat должен применяться к новым символам, которые вводятся в поле.
С хэлпа:
Цитата:

Определяет формат, применяемый к новому вставленному тексту, такому как тексту, введенному пользователем, или тексту, вставленному с использованием метода replaceSelectedText().
Я правильно понимаю что оно не распространяется на appendText?

P.S. дак на чем решим, происходит клонирование в сеттере?

silin 08.11.2010 21:05

клонирование в геттере, ты же сам написал:
Цитата:

Сообщение от Psycho Tiger (Сообщение 948390)
Код AS3:

trace(textField.defaultTextFormat === textField.defaultTextFormat); //false



iNils 08.11.2010 21:26

А, ну так у тебя же appendText используется.

Psycho Tiger 08.11.2010 21:50

Цитата:

Сообщение от silin (Сообщение 948399)
клонирование в геттере, ты же сам написал:

Похоже ещё и в сеттере.

@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`а создаётся как в сеттере, так и в геттере.


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

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