2013-11-07 5 views
0

У меня есть текстовое поле внутри контейнера. Мне интересно, можно ли найти границы каждого символа на основе контейнера, а не текстового поля.Границы символов текстового поля на основе родителя

Вот пример снимка экрана: с

enter image description here

И нормальное состояние будет выглядеть так: С этим я могу найти границы каждого символа на основе текстового поля, но мне нужно на основе контейнер:

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

Есть ли кто-нибудь, у кого есть опыт?

ответ

0

Я считаю, что вам нужно использовать преобразования точек.

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) 
} 
+0

Tanx CyanAngel;) – borna

0

Если TextField является дочерним контейнером и TextField не масштабируется, вы можете просто сделать:

rect = textField.getCharBoundaries(i); 
rect.x += textField.parent.x; 
rect.y += textField.parent.y; 
Смежные вопросы