0
如果我可以搜索搜索框中的單詞,該單詞將找到靜態文本,然後突出顯示在閃存as3中。有什麼建議嗎?如何動態突出顯示AS3中的靜態文本背景?
如果我可以搜索搜索框中的單詞,該單詞將找到靜態文本,然後突出顯示在閃存as3中。有什麼建議嗎?如何動態突出顯示AS3中的靜態文本背景?
您可以使用.getCharBoundaries()
,它返回一個Rectangle,它包含TextField中給定索引處的字符。
使用該矩形,您可以創建一些高光圖形。這裏,將簡化這個過程的函數:
function highlightChar(textField:TextField, charIndex:int):void
{
var rect:Rectangle = textField.getCharBoundaries(charIndex);
var box:Shape = new Shape();
box.blendMode = BlendMode.MULTIPLY;
box.graphics.beginFill(0xFFCC33);
box.graphics.drawRect(textField.x + rect.x, textField.y + rect.y, rect.width, rect.height);
box.graphics.endFill();
if(textField.parent) textField.parent.addChild(box);
}
從這裏,你可以創建另一個函數,將接受一個短語來強調:
function highlightPhrase(textField:TextField, phrase:String):void
{
var start:int = textField.text.indexOf(phrase);
if(start >= 0)
{
for(var i:int = start; i < phrase.length; i++)
{
highlightChar(textField, i);
}
}
}
組合,你會很容易找到突出一個這樣的文本塊:
var t:TextField = new TextField();
t.text = "This text is highlighted";
addChild(t);
highlightPhrase(t, "This text");