【问题标题】:TextField autoSize+italics cuts of last characterTextField autoSize+斜体切割最后一个字符
【发布时间】:2009-10-04 13:19:52
【问题描述】:

在 actionscript 3 中,我的 TextField 有:

  • CSS 样式
  • 嵌入式字体
  • 文本对齐:居中
  • 自动尺寸:中心

...当使用斜体时,最右边的字符会被略微截断(特别是大写字母)。 它基本上似乎无法检测到正确的尺寸。

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

【问题讨论】:

  • 我主要发现对于 Flash 正确显示文本的所有问题都没有“漂亮”的解决方案。我想我之前找到了一个空格字符来解决问题。或者你可以照你说的做,自己检查宽度。

标签: actionscript-3 textfield


【解决方案1】:

像往常一样初始化您的textField,使用多行、自动调整大小、htmlText...

然后做这个小技巧:

// 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;

【讨论】:

    【解决方案2】:

    并不是说它对您来说很舒服,但 Flash 有时会在这个看似简单的任务上遇到麻烦。 html TextField 的 CSS 样式是一个很好的补充,但它给文本渲染带来了麻烦。事实上,出于这个原因,我非常很少使用 CSS 来设置文本样式。我只能想象在 HTML 中结合 bolditalic 和普通字体会导致 Flash 得到一些宽度计算错误,从而导致 autoSize 将掩码设置为有点短。我非常希望new text rendering engine in Flash Player 10 最终能解决这些问题(理论上它看起来确实更好)。

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

    我想如果您无法摆脱当前的架构(出于某种原因),您可以尝试将  添加到您的 html 编码字符串的末尾。或者您可以手动设置字段的宽度,而不是依赖autoSize(正如您所提到的)。但是,如果您继续使用 CSS/HTML 路线,您可能会在您不想要的时候发现另一个新的和痛苦的限制。

    【讨论】:

    • 感谢 FTE 的链接。肯定要调查的东西。 TextFields 目前让我很头疼,我很高兴有替代方案。
    【解决方案3】:

    我遇到了 TextField 掩码在 Flash 预览和实际浏览器插件中表现不同的问题。通常,这对我来说很奇怪,它会在浏览器中显示得更正确。您是否尝试过在浏览器中运行 swf 以查看问题是否实际上是令人烦恼的问题而不是永久性问题?

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

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

    【讨论】:

    • 感谢您的意见。虽然它不是输入字段。添加空格不起作用,因为如果 textField 与 HTML 一起使用,则会修剪空格。
    猜你喜欢
    • 2012-12-02
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多