Apache flex Flex:数据绑定手表
鉴于此MXML组件:Apache flex Flex:数据绑定手表,apache-flex,flash,actionscript-3,data-binding,actionscript,Apache Flex,Flash,Actionscript 3,Data Binding,Actionscript,鉴于此MXML组件: 当test2.text.length>5的值发生变化时,如何调度事件?我尝试过ChangeWatcher、BindUtils和PropertyChangeEvent,但没有成功:( 谢谢, [编辑] 从下面复制我的评论: 嗯……实际上,我在自己的TextField组件中使用了一个新的可绑定字段,名为validationResult。我尝试进行原子验证,而不是全部验证。无论如何,test2.text.length>5条件是每个实例定义的,所以我不能像这样硬编码 MXML示例
当test2.text.length>5的值发生变化时,如何调度事件?我尝试过ChangeWatcher、BindUtils和PropertyChangeEvent,但没有成功:(
谢谢,
[编辑]
从下面复制我的评论:
嗯……实际上,我在自己的TextField组件中使用了一个新的可绑定字段,名为validationResult。我尝试进行原子验证,而不是全部验证。无论如何,test2.text.length>5条件是每个实例定义的,所以我不能像这样硬编码 MXML示例:
为什么不在test2的变更事件中通过一个新事件呢
你有吗
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"));
}
}
您不能定义“validationResult”吗作为带有私有变量的get/set对来保存数据,每次使用不同的值调用setter时,然后使用变量,设置值,然后调度您自己的自定义事件?这就是Flex框架中事件调度的完成程度。嗯……实际上,我在我自己的TextField组件ca中使用了一个新的可绑定字段Alled validationResult。我正在尝试进行原子验证,而不是全部验证。无论如何,test2.text.length>5条件是针对每个实例定义的,因此我无法对其进行硬编码。示例MXML:您使用的是mx:text还是mx:TextArea?没有mx:TextBox…我的错;它实际上是一个扩展的文本输入。请阅读我的注释以获得下面的答案。我不知道我不理解这个问题。为什么不让NewTestInput validationResult setter在事件发生变化时调度事件?或者让它与事件绑定?
<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}" />