1

我正在尝试创建一个在动画时看起来足够平滑的 TextField。当我可以获得平滑动画文本字段时,唯一的选择是将 antiAliasType 属性设置为 AntiAliasType.NORMAL;但我想使用文本抗锯齿来使字母更粗一些。所以我将 antiAliasType 更改为 AntiAliasType.ADVANCED。之后,文本字段在动画时看起来很跳跃(看起来字形被捕捉到像素网格)。更改 textField 的属性 gridFitType 没有任何意义。

当 antiAliasType 切换到 AntiAliasType.ADVANCED 时,是否有人实现了平滑的文本字段动画?(切换到 TLF 文本字段时也会出现跳跃的文本)

这是我的短代码:

var p:TextField = new  TextField();
var font:Font = new Font1XXX(); 
// font is embedded int the library and exported as Font1XXX class

var tfor:TextFormat = new TextFormat(); 
tfor.font = font.fontName;
tfor.size = 15;
tfor.color = 0xFFFFFF;
p.defaultTextFormat = tfor;
p.autoSize = TextFieldAutoSize.LEFT;
p.antiAliasType         = AntiAliasType.ADVANCED;
p.gridFitType   = GridFitType.NONE; 
// change to GridFitType.NONE does not make any sense;

p.selectable = false;
p.embedFonts = true;
p.text = "HELLO WORLD";
addChild(p);
4

2 回答 2

1

Flash 中的每个文本都被捕捉到整个像素,导致与它们有关的任何动画都会感觉“锯齿状”。

解决方法是将任何“静态文本”转换为形状并放置在影片剪辑中,或者将文本“复制”到位图中并为该位图设置动画。根据您想要制作的动画类型,需要不同的解决方案才能获得最佳视觉体验。

例如,滚动文本,最好将其缓存为位图,然后沿轴移动。

放大/缩小文本(如果放大很多)。这很糟糕,我还没有找到一个没有视觉伪影的好方法来解决这个问题。最佳解决方案通常是将文本复制到另一个剪辑中,隐藏文本然后快速制作动画或尝试用其他效果覆盖它,以便将焦点从文本本身移开。

于 2013-08-21T22:27:44.810 回答
1

如果您不需要可选文本,请将文本字段绘制为位图,并将位图添加到舞台而不是文本字段。

于 2013-08-21T14:59:16.607 回答