2012-09-24 136 views
0

我有一個動態警報方法,彈出一個警告movieclip告訴用戶他們的搜索不成功。現在AS3文本和文本框寬度

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

,我想一起做什麼,這是應該做的是不顯示inputTxt變量

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

線的東西,如果在文本框中的總文本超出在文本框中本身尺寸。

那我不能工作。我願意接受任何建議(只要它們保持簡潔和簡潔)。

更多信息: alertText是饋入對象的字符串。 myText.text是一個文本框。 我想檢查alertText是否適合myText.text在將它放入文本框之前。

-O林

+0

是'alertText'和'myText.text'兩個'TextField's?它們如何相互關聯,需要您對其進行比較? – BadFeelingAboutThis

+0

編輯澄清。 –

回答

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."; 
} 

這是假設你沒有使用文本框的autoSize財產,明確設置寬度/高度。

+0

我不完全確定爲什麼我沒有在第一時間做到這一點。 –

0

如果你想讓它assiging到目的地文本框前檢查字符串,您可以創建另一個和使用其的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));