2010年11月14日 星期日

[AS3] 擷取使用者所選取的文字並顯示在另一TextField中 - selectionBeginIndex、selectionEndIndex、substring()

substring(startIndex:Number, endIndex:Number):String
TextField.selectionBeginIndex、TextField.selectionEndIndex


//selectionBeginIndex -
//[唯讀] 目前選取範圍中,第一個字元的字元索引值 (從零開始)。
 var beginIndex:int = myTextField.selectionBeginIndex;
//selectionEndIndex -
//[唯讀] 目前選取範圍中,最後一個字元的字元索引值 (從零開始)。
 var endIndex:int = myTextField.selectionEndIndex;


//substring(開頭字元索引, 結束字元索引);
//substring(startIndex:Number, endIndex:Number):String
//參考http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/String.html#substring()


選取文字,所選取文字片段的開始字元索引,和結束字元索引,會顯示在左下文字欄位。
所選取的文字片段則顯示在藍色文字欄位中。



//
import flash.text.TextField;
//
var myTextField:TextField = new TextField();
myTextField.text = "TextField selectionBeginIndex 和 selectionEndIndex 是「唯讀」屬性,因此無法設定為透過程式設計方式選取文字,但可以用來擷取使用者目前已選取的項目。此外,輸入文字欄位可以使用 caretIndex 屬性。";
myTextField.x = 30;
myTextField.y = 15;
myTextField.width = 300;
myTextField.wordWrap = true;
myTextField.multiline = true;
//
var beginTF:TextField = new TextField();
var endTF:TextField = new TextField();
beginTF.width = 300;
beginTF.x = 50;
beginTF.y = 220;
endTF.width = 300;
endTF.x = 50;
endTF.y = 235;
//
var outputTF:TextField = new TextField();
outputTF.width = 300;
outputTF.x = 180;
outputTF.y = 90;
outputTF.wordWrap = true;
outputTF.multiline = true;
outputTF.background = true;
outputTF.backgroundColor = 0x0066cc;
outputTF.textColor = 0xffffff;
//
addChild(myTextField);
addEventListener(MouseEvent.MOUSE_UP, selectText);
//
addChild(beginTF);
addChild(endTF);
addChild(outputTF);
//
function selectText(event:MouseEvent):void
{
 //selectionBeginIndex -
 //[唯讀] 目前選取範圍中,第一個字元的字元索引值 (從零開始)。
 var beginIndex:int = myTextField.selectionBeginIndex;
 //selectionEndIndex -
 //[唯讀] 目前選取範圍中,最後一個字元的字元索引值 (從零開始)。
 var endIndex:int = myTextField.selectionEndIndex;
 beginTF.text = "First letter index position: " + beginIndex;
 endTF.text = "Last letter index position: " + endIndex;
 //substring(開頭字元索引, 結束字元索引);
 //substring(startIndex:Number, endIndex:Number):String
 //參考http://help.adobe.com/zh_TW/Flash/CS5/AS3LR/String.html#substring()
 outputTF.text = myTextField.text.substring(beginIndex,endIndex);
}


String類別的 substring()方法


TextField的selectionBeginIndex 和 selectionEndIndex 屬性

沒有留言: