我在容器中有一个文本字段。我想知道是否可以根据容器而不是文本字段找到每个字符的边界。
这是一个示例屏幕截图:
正常状态是这样的:有了这个,我可以根据文本字段找到每个字符的边界,但我需要基于容器:
var rect:Rectangle = new Rectangle();
for (var i:int = 0; i < textField.length; i++){
rect = textField.getCharBoundaries(i);
}
有没有人有这方面的经验?
我在容器中有一个文本字段。我想知道是否可以根据容器而不是文本字段找到每个字符的边界。
这是一个示例屏幕截图:
正常状态是这样的:有了这个,我可以根据文本字段找到每个字符的边界,但我需要基于容器:
var rect:Rectangle = new Rectangle();
for (var i:int = 0; i < textField.length; i++){
rect = textField.getCharBoundaries(i);
}
有没有人有这方面的经验?
如果 TextField 是容器的子级并且 TextField 未缩放,您可以这样做:
rect = textField.getCharBoundaries(i);
rect.x += textField.parent.x;
rect.y += textField.parent.y;
我相信您必须使用积分转换。
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)
}