Сглаживание текстового поля в Flash CS3 / FP10, вызывающее мерцание и цветение текста?

Я столкнулся с небольшими графическими сбоями во Flash. Похоже, что как в FP9 - экспортировано через Flash CS3, так и в FP10 - экспортировано через Flex 4 beta SDK.

Глюк / проблема проявляется в виде встроенного текста с мелким шрифтом, «расплывающегося» при определенных условиях. По сути, похоже, что сглаживание становится толще на некотором уровне яркости текста. Ниже я сделал небольшой тестовый пример. (Очевидно) Вам нужно будет встроить шрифт Arial в ваш скомпилированный SWF, чтобы приведенный ниже код работал.

var myText:TextField = new TextField();
myText.embedFonts = true;
myText.antiAliasType = AntiAliasType.ADVANCED;
myText.autoSize = TextFieldAutoSize.LEFT;
var myFormat:TextFormat = myText.getTextFormat();
myFormat.size = 8;
myFormat.font = 'Arial';
myFormat.color = 0x663300;
myText.defaultTextFormat = myFormat;
myText.text = 'Bloom Example';
addChild(myText);
var composit:ColorTransform = new ColorTransform();
var timestamp:Number = getTimer();
function enterFrame (event:Event):void{
    var n:Number = (getTimer() - timestamp) / 1000.0;
    composit.redMultiplier = 1-n;
    composit.greenMultiplier = 1-n;
    composit.blueMultiplier = 1-n;
    composit.redOffset = 250 * n;
    composit.greenOffset = 250 * n;
    composit.blueOffset = 0;
    myText.transform.colorTransform = composit;
    if ( n >= 1 ) removeEventListener(Event.ENTER_FRAME, enterFrame);
};
addEventListener(Event.ENTER_FRAME, enterFrame);

Вы можете увидеть пример проблемы, наведя курсор на графический элемент здесь: http://bandcamp.fieldsofnoise.org/dump/bloom.swf

На самом деле это не вариант изменить на AntiAliasType.NORMAL, поскольку это делает текст менее читаемым при таком размере точки.

Приветствуется любая помощь в поиске подходящего решения этой проблемы.


person Jotham    schedule 09.12.2009    source источник


Ответы (1)


Я думаю, что когда вы меняете яркость, вы увеличиваете значения для всех пикселей, с которыми визуализируется шрифт, включая пиксели сглаживания. Вы пытались изменить цвет, а не увеличивать яркость? Или даже нанести простой оттенок?

person defmeta    schedule 10.12.2009
comment
Версия внешнего SWF, на которую я ссылаюсь, представляет собой «простую окраску». Математически он делает то же самое, что и я с преобразованием композитного цвета. - person Jotham; 10.12.2009