Я сделал выделенный текст в текстовой области жирным шрифтом, курсивом и т. Д., Но я не могу поддерживать свойства жирного шрифта, курсива при добавлении текста в форматированный текст.
Как сделать выделенный текст в текстовой области полужирным, курсивом и т. Д., А затем добавить его в форматированный текст?
Ответы (1)
Хорошо, смотри. Давайте разберем нашу проблему шаг за шагом:
Проблема: у нас есть текст, и нам нужно выделить выделенный текст исходного текста жирным шрифтом;
Решение:
1) Возьмите выделенный текст в отдельную строку
2) Измените стиль отдельной строки на полужирный (или другой стиль)
3) Соберите начальные нежирные строки с жирным жалом и покажите результат :)
Я думаю, что есть несколько способов решить эту проблему, но я предлагаю следующее:
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="Test">
<s:VGroup>
<s:RichEditableText id="ret" text="Test Text String for selection" />
<s:Button id="btnBold" label="Set Bold for Selection" click="btnBold_clickHandler(event)"/>
</s:VGroup>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import flashx.textLayout.conversion.TextConverter;
protected function btnBold_clickHandler(event:MouseEvent):void
{
setBoldForSelectionTex();
}
private function setBoldForSelectionTex():void
{
var startSelectionPos:int = 0;
var endSelectionPos:int = 0;
if(ret.selectionActivePosition > ret.selectionAnchorPosition)
{
endSelectionPos = ret.selectionActivePosition;
startSelectionPos = ret.selectionAnchorPosition;
}
else
{
endSelectionPos = ret.selectionAnchorPosition;
startSelectionPos = ret.selectionActivePosition;
}
var initialString:String = ret.text;
var startString:String = ret.text.toString().substr(0, startSelectionPos);
var middleString:String = ret.text.toString().substr(startSelectionPos, endSelectionPos - startSelectionPos);
var endString:String = ret.text.toString().substr(endSelectionPos, initialString.length - endSelectionPos);
var completeString:String = startString +"<b>" + middleString + "</b>" + endString;
ret.textFlow = TextConverter.importToFlow(completeString, TextConverter.TEXT_FIELD_HTML_FORMAT);
}
]]>
</fx:Script>
</s:View>
Я надеюсь, что это поможет вам.
person
proweb
schedule
03.05.2013