题
我正在尝试输出一个包含4个变量的句子,其值使用以下代码进行加粗:
<mx:Text width="100%" y="307">
<mx:htmlText>
<![CDATA[Showing data from <b>{labelStartTime.text} {labelStartDate.text}</b> to <b>{labelEndTime.text} {labelEndDate.text}</b>]]>
</mx:htmlText>
</mx:Text>
但是,这只是输出变量名而不是它们的值。我确定我错过了一些简单的东西,但我很欣赏任何指示。
干杯。
解决方案
我知道一种解决方法:
的ActionScript:
private var variable:String = "Variable String";
private var str:String = "<i><b>" + Variable + "</b></i>";
MXML:
<Text htmlText="{str}" />
其他提示
我认为不可能直接在CDATA部分添加绑定,但是你确实有几个选择:
- 使用函数,利用BindingUtils.bindSetter:
import mx.binding.utils.BindingUtils; //called on creationComplete private function init():void { BindingUtils.bindSetter(setHtmlText, labelStartTime, "text"); BindingUtils.bindSetter(setHtmlText, labelStartDate, "text"); BindingUtils.bindSetter(setHtmlText, labelEndTime, "text"); BindingUtils.bindSetter(setHtmlText, labelEndDate, "text"); } private function setHtmlText(val:String):void { myText.htmlText = "Showing data from <b>" + labelStartTime.text + " " + labelStartDate.text + "</b> to <b>" + labelEndTime.text + " " + labelEndDate.text + "</b>"; }
- 或者只是对标记进行编码并将其直接插入到属性中:
这不是真正推荐的,因为它使标记非常难以阅读,但你可能会因为这样的小事而逃脱它。<mx:Text id="myText" width="100%" y="307" htmlText="Showing data from <b>{labelStartTime.text} {labelStartDate.text}</b> to <b>{labelEndTime.text} {labelEndDate.text}</b>"/>
不隶属于 StackOverflow