Actionscript 3替换字符串

时间:2013-01-21 09:56:18

标签: string actionscript-3 actionscript

我正在尝试替换字符串中的子字符串。我下面的代码替换了所有出现的子字符串。例如。点击 后,它会替换中的。但我喜欢只更换点击的一个。我们怎么做到这一点?

我的房间>

          function correct(e:TextEvent):void{
                str =String(e.currentTarget.htmlText);
                if(e.text==replacements[e.currentTarget.name]){
                    e.currentTarget.htmlText =strReplace(str, e.text,    corrections[e.currentTarget.name]);
                }
        }


         function strReplace(str:String, search:String, replace:String):String {
             return str.split(search).join(replace);
        }

1 个答案:

答案 0 :(得分:0)

您可以使用TextField.getCharIndexAtPoint(x:Number, y:Number):int获取特定坐标中char的(从0开始)索引。

您显然需要将点击的点用作(x,y)

您可以使用localX活动中的localYTextField.click

请点击此处了解详情:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#getCharIndexAtPoint%28%29

此时,您需要在点击的字符附近搜索要替换的字符串。

例如,像这样:

stringToReplace = "in";

len = stringToReplace.Length;

neighborhood = TextField.substring(clickedCharIndex-len, clickedCharIndex+len);

if (neighborhood.indexOf(stringToReplace)) {

    neighborhood = neighborhood.replace(stringToReplace, replacement);

    TextField.text = TextField.text(0, clickedCharIndex-len) + neighborhood +
                     TextField.text(clickedCharIndex+len);

}