[英]mx:TextArea change part of text color
我有一個帶有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>
那么,您能幫我解決這個問題嗎?
感謝您的幫助
試試看,我已經附上了輸出的屏幕截圖,
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
import mx.collections.*;
private var DGArray:Array = [
{Artist:'Pavement 1 ', label:'Slanted and Enchanted', Price:11.99},
{Artist:'Pavement 2 ', label:'without color <FONT COLOR="#FF00FF"> <TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Arial" SIZE="12" COLOR="#FF00FF" LETTERSPACING="0" KERNING="0">Slanted and Enchanted</FONT></P></TEXTFORMAT></FONT>', Price:15.99}];
]]>
</fx:Script>
<mx:DataGrid id="myGrid" width="100%" height="100%"
dataProvider="{DGArray}" itemRenderer="IR" >
</mx:DataGrid>
</s:Application>
Itemrenderer代碼,
<?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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.