TextField autoSize +最后一个字符的斜体字切割

问题描述 投票:1回答:4

在动作3中,我的TextField具有:

  • CSS样式
  • 嵌入式字体
  • textAlign:中心
  • autoSize:CENTER

...使用斜体时,最右边的字符会被略去掉(特别是大写)。基本上似乎无法检测到正确的大小。

我以前曾遇到过此问题,但只是想知道是否有一个不错的解决方法(而不是检查textWidth或偏移文本等)?

actionscript-3 textfield
4个回答
3
投票
然后做这个小技巧:

// saving wanted width and height plus 1px to get some space for last char var savedWidth = myTextField.width + 1; var savedHeight = myTextField.height + 1; // removing autoSize, wich is the origin of the problem i think myTextField.autoSize = "none"; // now manually autoSizing the textField with saved values myTextField.width = savedWidth; myTextField.height = savedHeight;


1
投票
very很少使用CSS设置文本样式。我只能想象HTML中将

bold,italic和普通字体组合在一起会导致Flash的某些宽度计算错误,从而导致autoSize将遮罩设置得有点短。我非常希望new text rendering engine in Flash Player 10能够最终解决这些问题(从理论上讲,它当然看起来更好)。

所以my解决方案是

never以使用HTML,例外情况是当我在文本中需要<a>链接时……那里甚至还有一些棘手的文本转换问题。在那种情况下,我避免在同一文本字段中混合使用不同的字体粗细和字体样式。在所有其他情况下,我直接在TextFormat上使用TextField

我想,如果您由于某种原因无法摆脱当前的体系结构,可以尝试在HTML编码字符串的末尾添加&nbsp;。或者,您可以手动设置字段的宽度,而不依赖autoSize(如上所述)。但是,如果您坚持使用CSS / HTML路由,可能会在不希望使用此限制时发现另一个新的痛苦限制。

0
投票
我说过:解决这个问题的理想方法是将更改事件附加到TextField,该事件始终在字段的最后一个字符之后添加一个空格。然后记住在使用该值时要修剪此空间。

但是这并没有考虑到这可能没有更改事件,并且它是HTML呈现的文本字段。要在HTML文本字段中添加尾随空格,再次抛出&nbsp;,这并不能真正解决问题。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.