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

时间:2009-10-04 13:19:52

标签: actionscript-3 textfield

在动作3中,我的TextField有:

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

...当使用斜体时,非常正确的角色会被略微切断(特别是上限)。 它似乎无法检测到正确的尺寸。

之前我遇到过这个问题,但只是想知道是否有一个很好的解决方法(而不是检查textWidth或抵消文本等。)

3 个答案:

答案 0 :(得分:3)

使用多行,自动调整大小,htmlText初始化您的textField

然后做这个小技巧:

// 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 :(得分:1)

并不是说你感到很舒服,但Flash有时会遇到这个看似简单的任务。 html TextField的CSS样式是一个很好的补充,但它引起了文本渲染的麻烦。事实上,由于这个原因,我非常很少使用CSS来设置文本样式。我只能想象在HTML中组合粗体斜体和普通类型面会导致Flash导致一些宽度计算错误导致autoSize设置掩盖一点点。我非常希望new text rendering engine in Flash Player 10能最终解决这些问题(理论上它看起来肯定更好)。

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

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

答案 2 :(得分:0)

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

我说过这个:
我理想的解决方法是将更改事件附加到TextField,它总是在字段的最后一个字符后面添加一个空格。然后记住在使用该值时关闭此空间。

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