FlashF3 / FP10中的TextField Antialiasing导致文本闪烁和“绽放”?

时间:2009-12-09 11:22:21

标签: actionscript-3 flash flash-cs3

我在Flash中遇到了一个小小的图形故障。它似乎都在FP9中 - 通过Flash CS3导出,FP10 - 通过Flex 4 beta SDK导出。

故障/问题在certian条件下以小点大小“绽放”显示为嵌入式文本。它基本上看起来像抗锯齿在某种程度的文本亮度变得更胖。我在下面做了一个小测试用例。 (显然)你需要在编译的SWF中嵌入Arial字体,以便下面的代码能够工作。

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并不是一个真正的选择,因为它会使文本在这一点上的可读性降低。

任何寻求适当解决此问题的帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为当您更改亮度时,您将最大化所有像素的值,包括抗锯齿像素。您是否尝试过更改颜色而不是增加亮度?甚至应用简单的色调?