Apache flex 如何在htmltext CDATA中进行绑定
我找不到在文本组件的htmlText属性内绑定变量的方法 我希望能够做到以下几点:Apache flex 如何在htmltext CDATA中进行绑定,apache-flex,actionscript-3,actionscript,cdata,Apache Flex,Actionscript 3,Actionscript,Cdata,我找不到在文本组件的htmlText属性内绑定变量的方法 我希望能够做到以下几点: <mx:Text id="bodyText" styleName="bodyText"> <mx:htmlText > <![CDATA[<img src='assets.OrangeRect' align='left' hspace='0' vspace='4'/> Bonjour {UserData.name} ]]> </mx:
<mx:Text id="bodyText" styleName="bodyText">
<mx:htmlText >
<![CDATA[<img src='assets.OrangeRect' align='left' hspace='0' vspace='4'/> Bonjour {UserData.name} ]]>
</mx:htmlText>
</mx:Text>
我想绑定UserData.name我不确定在MXML中如何处理它,但您可以在Actionscript中生成完整字符串:
bodyText.htmlText = "<![CDATA[<img src='assets.OrangeRect' align='left' hspace='0' vspace='4'/> Bonjour " + UserData.name + " ]]>";
bodyText.htmlText=”“;
“但我仍然想知道是否可以在mxml中直接处理它?特别是如果绑定变量发生更改,我需要在文本组件中更新它。”希切姆 您可以将属性绑定到函数调用,以便在绑定值更改时,函数调用的结果将用作
htmlText
的值:
<mx:Script>
<![CDATA[
function sayHello(userName:String):String
{
var text:String = "<![CDATA[<img src='assets.OrangeRect' align='left' hspace='0' vspace='4'/> Bonjour " + userName + " ]]>";
return text;
}
]]>
</mx:Script>
<mx:Text id="bodyText" styleName="bodyText" htmlText="{sayHello(UserData.name)}" />
这类似于两者的结合——在MXML中指定绑定,但在脚本部分生成值。Yup!它起作用了。但我仍然想知道是否可以直接在mxml中处理它?特别是如果绑定变量发生更改,我需要在文本组件中更新它。有人知道怎么做吗?很清楚,但是当绑定值改变时,函数会被触发吗?我不应该听变革事件吗?还是自动完成?谢谢。根据我的经验,绑定到函数确实会在值更改时拾取它,因此您应该可以继续。如果
UserData
类的name
属性声明为[Bindable]
,那么只要绑定的属性更改,就会触发sayHello()函数。如果你不确定,试一试,你会发现:)Sly_Cardinal,谢谢你发布你的解决方案。我用过,效果很好。