0

我有一个动态警报方法,它会弹出一个警报影片剪辑,告诉用户他们的搜索不成功。

alert("Map [" + inputTxt + "] not found.");

现在,我想做一些类似的事情

if (alertText.textWidth > myText.text.width) {
    myText.text = "Map not found.";
}

如果文本框中的总文本超过文本框本身的大小,那么这应该做的是不显示 inputTxt 变量。

我所拥有的不起作用。我愿意接受任何建议(只要它们保持简短和简洁)。

更多信息:alertText 是输入对象的字符串。myText.text 是一个文本框。我想在将它放入文本框之前检查 alertText 是否适合 myText.text 。

-奥林

4

2 回答 2

1

字符串没有 textWidth 属性。没有(简单的)方法可以提前知道您的文本是否适合,除非您使用每个字符都具有相同宽度的字体。

这是实现此目的的一种方法:

myText.text = alertText; //put the text in the box

if(myText.textHeight > myText.height || myText.textWidth > myText.width){
    //the text does not fit in it's entirety.
    myText.text = "Map not found.";
}

这假设您不使用autoSizetextField 的属性并且明确设置宽度/高度。

于 2012-09-24T18:13:43.913 回答
0

如果要在将字符串分配给目标文本字段之前检查字符串,可以创建另一个并使用其 textFormat

var someShortText : String = "short string";
var someLongText : String = "very, very, very, very, long text";

function checkStringWidth(string : String, tMaxWidth : Number, tFormat : TextFormat) : Boolean {
    var tField : TextField = new TextField();
    tField.autoSize = TextFieldAutoSize.LEFT;
    tField.multiline = false;
    tField.wordWrap = false;
    tField.defaultTextFormat = tFormat;
    tField.text = string;
    return tField.width<=tMaxWidth;
}

trace(checkStringWidth(someShortText, someTF.width, someTF.defaultTextFormat));         
trace(checkStringWidth(someLongText , someTF.width, someTF.defaultTextFormat));
于 2012-09-24T18:17:26.987 回答