1

textArea でキャレットの XY 位置を取得する必要があります。

Yを取得する方法はすでに見つけましたが、Xを取得する方法がわかりません。誰か助けてもらえますか?

いずれかが知りたい場合は、これが Y を取得する方法です。

var textBeforeCaret:String = text.substr(0, caretIndex);
var textDump:String = this.text;
this.text = textBeforeCaret;
this.validateNow();
yVariable = this.textHeight;
this.text = textDump;
4

1 に答える 1

0

RafH からのリンクを確認した後、次のようにしました。

var popUpX:int = 0;
var popUpY:int = 0;
if(text.length > 0){

if(caretIndex > 0){
                                if(this.textField.getCharBoundaries(caretIndex -1) != null){
popUpX = this.textField.getCharBoundaries(caretIndex - 1).right;
popUpY = this.textField.getCharBoundaries(caretIndex - 1).bottom;
}
else{
popUpX = 0;
var i:int = 2;
                                    while(this.textField.getCharBoundaries(caretIndex - i) == null && caretIndex - i > -1){
i++;
}
if(caretIndex - i > -1){
popUpY = this.textField.getCharBoundaries(caretIndex - i).bottom + i * 10;
}
else{
popUpY = i * 10;
}
}
}
else{
popUpX = this.textField.getCharBoundaries(caretIndex).right;
popUpY = this.textField.getCharBoundaries(caretIndex).bottom;
}
}
else{
popUpX = 0;
popUpY = 0;
}

完璧ではありませんが、私には十分です

于 2013-05-16T08:27:17.073 に答える