AS3跳转到多行文本字段中的某些单词?

时间:2011-11-10 20:07:33

标签: flash actionscript-3 flash-builder

我想搜索一个多行的textfiled中的单词,发现它不是什么大问题但是我能够滚动到那个位置,就像记事本当你单击下一步它会跳到那一点

我不是要求为我做这件事,你能给我一个小费,我应该看看吗?

提前致谢

编辑解决方案

var textInput:String="String To Search";
txt.text=textInput; // txt is a dynamic textfield

var currentIndex:int = 0;

function search(searchInput) {

    var searchString:String = searchInput.toLowerCase();
    txt.stage.focus = txt;
    var txtForSearch:String = textInput.toLowerCase();

    if(currentIndex == 0){
        var index:int = txtForSearch.indexOf(searchString,currentIndex);
        currentIndex  = index+searchString.length;
    } else {
        index = txtForSearch.indexOf(searchString,currentIndex);
        currentIndex  = index+searchString.length;
    }
    if(index < 0) {
        txt.setSelection(0, 0);
    } else {
        txt.setSelection(index, currentIndex);
    }
}

input.addEventListener(TextEvent.TEXT_INPUT, inputChanged);
function inputChanged (e:TextEvent):void {
    currentIndex = 0;
}

srBtn.addEventListener(MouseEvent.CLICK,doSearch) // srBtn my search button instance
function doSearch(e:Event):void{
    search(input.text); // input is an input textfield ( search query )     
};

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我和这个问题搏斗了好几个小时。我得到一个零矩形,我发现文本字段原始大小小于扩展后的大小后自动调整以适应更多文本。

原始textField大小之外的所有内容都返回null。我通过扩展舞台上textField的大小来解决这个问题,使其足够大以适应所有动态文本。

我通常不使用时间轴动画,但它是客户提供的文件。

感谢这个循环让我弄清楚发生了什么:

for(var i:int= 0; i<tf.text.length; i++)
{
var char:String = tf.text.substr(i,1);
trace(i, ": " , (char=="\n"||char=="\r" ?"<CR>":char) ,": ",  tf.getCharBoundaries(i))
}