鉴于此MXML组件:
<mx:TextBox id="test" text="{test2.text.length > 5}" />
每当test2.text.length&gt;的值时,如何调度事件? 5个变化?我尝试过ChangeWatcher,BindUtils和PropertyChangeEvent,但没有运气:(
感谢;
[编辑]
从进一步向下复制我的评论:
嗯......我实际上在我自己的TextField组件中使用了一个名为validationResult的新绑定字段。我正在尝试进行原子验证,而不是整个。无论如何。 test2.text.length&gt;每个实例定义了5个条件,所以我不能像那样硬编码。
示例MXML:
<nui:NewTextInput id="mensualDeclarado2" validationResult="{mensualDeclarado3.text.length >= 5 && mensualDeclarado3.text.length <= 10)}" />
<nui:NewTextInput id="mensualDeclarado3" text="1234567890" />
答案 0 :(得分:1)
为什么不通过test2的change事件中的新事件?
所以你有
private var _lengthCheck:Boolean = false;
function test2_ChangeHandler(event:Event):void
{
if (_lengthCheck != (test2.text.length > 5))
{
_lengthCheck = (test2.text.length > 5);
if (test2.text.length > 5)
dispatch(new Event("LENGTH_GREATER_THAN_5"));
else
dispatch(new Event("LENGTH_LESS_THAN_5"));
}
}
答案 1 :(得分:0)
<mx:Script>
<![CDATA[
private var _test2 : String = "test2.text.length > 5";
public function set test2( _test2 : String ) : void{
dispatchEvent(new Event("test2CHANGED"));
this._test2 = _test2;
}
]]>
</mx:Script>
<mx:TextBox id="test" text="{_test2}" />
答案 2 :(得分:0)
你不能将“validationResult”定义为带有私有变量的get / set对来保存数据,并且每次使用不同的值调用setter时,变量,设置值,然后调度自己的自定义事件?这是Flex框架中事件调度的大部分完成。