基于父级的文本字段的字符边界

时间:2013-11-07 13:52:55

标签: actionscript-3 flex parent textfield bounds

我在容器中有一个文本字段。我想知道是否有可能根据容器而不是文本字段找到每个字符的边界。

以下是一个示例屏幕截图:

enter image description here

正常状态是这样的: 有了这个,我可以根据文本字段找到每个字符的边界,但我需要基于容器:

var rect:Rectangle = new Rectangle();
for (var i:int = 0; i < textField.length; i++){
    rect = textField.getCharBoundaries(i);
}

有没有人对此有过经验?

2 个答案:

答案 0 :(得分:0)

我相信你必须使用Point转换。

var rect:Rectangle = new Rectangle();
for (var i:int = 0; i < textField.length; i++){
    rect = textField.getCharBoundaries(i);

    var globalTopLeft:Point = textField.localToGlobal(rect.topLeft);
    var globalBottomRight:Point = textField.localToGlobal(rect.bottomRight);

    var containerTopLeft:Point = container.globalToLocal(globalTopLeft);
    var containerBottomRight:Point = container.globalToLocal(globalBottomRight);

    rect = new Rectangle(containerTopLeft.x,containerTopLeft.y,containerBottomRight.x-containerTopLeft.x,containerBottomRight.y-containerTopLeft.y)
}

答案 1 :(得分:0)

如果TextField是容器的子级并且TextField没有缩放,您可以这样做:

rect = textField.getCharBoundaries(i);
rect.x += textField.parent.x;
rect.y += textField.parent.y;