0
我有一个带有textArea的项目渲染器。mx:TextArea更改文字颜色的一部分
<?xml version="1.0" encoding="utf-8"?>
<s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
focusEnabled="true">
<fx:Script>
<![CDATA[
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.listClasses.BaseListData;
import mx.core.UITextField;
public var htmlModif:String;
/* protected function lblData_changeHandler(event:Event):void
{
htmlModif=lblData.htmlText;
dataGridListData.label = htmlModif;
} */
override public function validateProperties():void
{
super.validateProperties();
if (listData)
{
var dg:DataGrid = DataGrid(listData.owner);
var column:DataGridColumn = dg.columns[listData.columnIndex];
var htmlText:UITextField = lblData.htmlText as UITextField;
}
}
]]>
</fx:Script>
<mx:TextArea id="lblData" top="0" left="0" right="0" bottom="0"
htmlText="{dataGridListData.label}"
wordWrap="true"
editable="true"
creationComplete="htmlModif=lblData.htmlText"
change="htmlModif=lblData.htmlText"/>
</s:MXDataGridItemRenderer>
更改后,我将htmlModif放在arraycollection上以保存新值。
我有些情况下,我喜欢改变一部分文本的颜色或样式。 它适用于所有的文本,如果变化是关于样式(粗体,斜体......)
DP_LISTEREDVCLI[ligneIndexEdit].scRub2="<b>"+DP_LISTEREDVCLI[ligneIndexEdit].scRub2+"</b>
但我不工作,如果变化是关于颜色:
DP_LISTEREDVCLI [ligneIndexEdit] .scRub2 =” “+ DP_LISTEREDVCLI [ligneIndexEdit] .scRub2 +”“;
我认为这干扰是因为在这种情况下,新的价值就是这样:
<FONT COLOR='#FFAE10'> <TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Arial" SIZE="12" COLOR="#0C1E37" LETTERSPACING="0" KERNING="0">mais pas de disparition</FONT></P></TEXTFORMAT></FONT>
所以,你能不能帮我解决吗?
感谢您的帮助
OK,但我会喜欢使用用户选择(beginSelection和endSelection)并仅在这部分应用样式。谢谢 – Flex60460
同样可以应用于用户选择的文本的更改属性。 – user1749053