【发布时间】:2011-06-09 16:25:58
【问题描述】:
例如<s:TextInput id="sd" text="{if () {0} else if() {1} else {2}}"/>
有可能做这样的事情吗?
【问题讨论】:
-
在这种情况下,您应该更改接受的答案。
-
请重新表述您的问题
标签: flash apache-flex actionscript-3
例如<s:TextInput id="sd" text="{if () {0} else if() {1} else {2}}"/>
有可能做这样的事情吗?
【问题讨论】:
标签: flash apache-flex actionscript-3
你可以使用一个函数来实现你的逻辑:
private function foo( value : String = "" ) : int
{
if ( value == 'a')
{
return 0;
}
else if ( value == 'b' )
{
return 1;
}
else
{
return 2;
}
}
然后:
<s:TextInput id="source" text=""/>
<s:TextInput id="sd" text="{foo( source.text )}"/>
如果您在第一个 TextInput 中键入“a”或“b”,第二个中的值将更改以反映当前状态。
【讨论】:
<s:TextInput text="{(this.selected)? 'True' : 'False'}"/> 将在 this.selected 上执行绑定时显示 true 或 false。好玩的东西! :)
source.text 设置。
没有;这对于默认绑定机制来说太复杂了。但是,你没有提供完整的条件,所以很难明确地指导你。
当您实现要用作绑定源的属性时,分派一个事件。在 set 方法中是这样的:
public function set myBindableProperty(value:something):void{
_myBindableProperty = value;
dispatchEvent(new Event('myBindablePropertyChanged'));
}
然后添加一个事件监听器:
myComponentWithBindableProperty.addEventListener('myBindablePropertyChanged', onmyBindablePropertyChanged);
最后,在事件处理程序中执行绑定操作
public function onmyBindablePropertyChanged(event:Event):void{
if(){
sd.text = 0;
} else if(){
sd.text = 1;
} else {
sd.text = 2;
}
}
内部; MXML 绑定语法可以;基本上;就像我刚才描述的那样。它稍微复杂一些;但这就是要点。
【讨论】: