2011-12-21 3 views
1

이것은 모든 TextField 마법사를위한 것입니다. 텍스트 2 단락을 표시하는 텍스트 필드가 있습니다. 첫 번째는 최대 3 줄의 텍스트 만 표시되도록 잘립니다. 두 번째 단락은 해당 텍스트에 추가됩니다.텍스트 조각에 필요한 라인 수를 확인하십시오.

첫 번째 단락의 처음 3 줄만 표시 할 수있는 방법이 있습니까? 첫 번째 단락에 대한 기사의 초록처럼 생각하십시오.

나는 String.subStr (0, chars의 3 줄의 guestimate)을 사용하여 작업을 시도했지만 일부 문자열이 텍스트 필드의 4 줄을 차지한다는 점에서 꽤 일치하지 않습니다.

나는 두 개의 별도 텍스트 필드를 작성하는 것에 대해 생각했지만 단 한 줄의 문자 만있는 첫 번째 단락의 경우 두 번째 단락 사이에 2 행 분의 띄어쓰기가있을 것입니다.

답변

2

TextField#getLineOffset()을 살펴보십시오. 지정된 행의 첫 번째 문자 인덱스를 반환합니다. substr 또는 substring을 사용하여 그에 따라 텍스트를자를 수 있습니다.

3
textField = new TextField(); 
textField.antiAliasType = AntiAliasType.ADVANCED; 
textField.width = _boundaryWidth; 
textField.autoSize = TextFieldAutoSize.NONE; 
textField.multiline = true; 
textField.wordWrap = true; 
textField.text = _text; 
textField.setTextFormat(textFormat); 
while(textField.numLines > 3) 
{ 
    var txt:String = textField.getLineText(textField.numLines - 1); 
    textField.replaceText(textField.text.length - txt.length,textField.text.length, ""); 
    var numLines:int = textField.numLines; 
} 

이 코드는 사용자가 원하는 것을 수행해야합니다.

당신이해야 할 일은 텍스트가 덮고있는 줄 수를 확인하는 것입니다. 처음에는 너비를 설정하면 텍스트 필드에서 펼쳐야하는 줄 수를 결정하는 데 도움이되기 때문에 처음에는 너비를 설정하십시오. 나는이 모든 것을 포함하는 함수를 만들지 않았다. 하지만 전체 함수 본문이 여기에 있기 때문에 꽤 간단해야한다고 생각합니다.

+0

var 'numLines'가 유용하지 않더라도 간단하고 훌륭한 코드입니다. – helloflash

관련 문제