2013-01-21 98 views
0

我想要替換字符串中的子字符串。我的代碼如下所示替換所有出現的子字符串。例如。點擊它代替。但我喜歡只替換點擊的一個。我們應該怎麼做?Actionscript 3替換字符串

這些書是我的房間。

  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); 
     } 

回答

0

您可以使用TextField.getCharIndexAtPoint(x:Number, y:Number):int來獲取特定座標中char(從0開始)的索引。

您顯然需要使用您點擊的點作爲(x,y)

您可以使用localXlocalYTextField.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); 

} 
+0

它是否工作或沒有? – Teejay