这是 HTML 中的 Label 元素,红色虚线轮廓显示了它的边界框。请注意,字符并未与其边界框的上边缘齐平:
line-height:1.2; /* default */
Run Code Online (Sandbox Code Playgroud)

这是 JSFiddle,显示了上面的图像http://jsfiddle.net/6gLQU/16/。
这是相同的文本,其中line-height样式设置为 1 或 100%(更好,但仍然不齐平):
line-height:1;
Run Code Online (Sandbox Code Playgroud)

最后,如果我将样式设置line-height为 0.8 (80%),如本代码示例所示,除了最后一个测试文本中存在较小但可接受的单像素差异之外,它是齐平的。这很好,但如果有多于一行文本(多行),则下一行会被拉得太高,因为这会使每行高度达到其实际高度的 80%。
line-height:.8;
Run Code Online (Sandbox Code Playgroud)
这是 JSFiddle 代码http://jsfiddle.net/6gLQU/16/。
(如果您不了解 Flash,可以跳过本段) 在 Flash TLF(FTE 或 Flash 文本引擎)中,如果添加文本字段,使用 FTE 或 TLF 作为引擎,文本字符会对齐到最顶部边界矩形。它们看起来像最后一张图片中的文本(字符紧贴边框的顶部边框)。
在 HTML 中,文本字符未与边界矩形的顶部齐平,如上面的示例所示。当您增加字体大小时,也会增加从字符顶部到边界框矩形顶部的间隙。
在我对 HTML 和 CSS 中使用的文本的研究中,字体样式line-height将调整文本字符在其边界框内的位置(如上图所示)。在 Flash 中,line-height样式不会影响第一行文本中的字符,但会像在 HTML 中一样调整以下行(因此它不适用于 HTML 或 Flash 中的多行)。
我已经确定,如果我在 HTML 中将行高设置为 0.8 或 80%,则字体会与边界框的顶部齐平(如上所示)。伟大的!这就是我想要的,但它不适用于多行文本。如果有多条线,则下一行将被“拉起”并与前一行重叠,因为显然,我只为每条线提供其实际高度的 80%。
无论如何,我的问题是:
喜欢标题说.如何在运行时设置焦点TLFTextField?
我已经做了一些研究,并在SO中找到了一些问题,如下所示如何将焦点设置为TLFTextfield对象
在少数论坛上,他们说要使用这段代码
stage.focus = txt;
Run Code Online (Sandbox Code Playgroud)
要么
txt.stage.focus = txt;
Run Code Online (Sandbox Code Playgroud)
要么
txt.textFlow.interactionManager.setFocus();
Run Code Online (Sandbox Code Playgroud)
但没有一个对我有用..我会尝试简单的项目,但仍然失败..
我需要表现出MovieClip与TLFTextField和关注吧..所以用户只需键入编辑在TLFTextField.
我的代码:
public function TFLayer() {
tf = new TLFTextField();
tf.width = 400;
tf.height = 30;
tf.x = 300;
tf.y = 300;
tf.border = true;
tf.type = TextFieldType.INPUT;
tf.backgroundColor = 0xffffff;
tf.text = "Lorem ipsum";
addChild(tf);
tf.textFlow.interactionManager.setFocus();
}
Run Code Online (Sandbox Code Playgroud)