[英]How to campture the text change event of a text control to call a function in Flex 3
我是flex的新手,无法捕获文本控件的文本更改事件:
<mx:Text id="description"
text=""
textAlign="center"
fontSize="18"
click="_playSpeech()" />
现在是单击,但是我需要像textChange =“ _ playSpeech()”这样的东西,因此每次控件的文本更改时,它都会调用该函数。
非常感谢您的帮助。
在代码中执行此操作的一种简单方法是将文本更新包装到函数中:
protected function updateDescription(text:String):void
{
description.text=text;
_playSearch();
}
然后始终调用函数,而不是立即更改文本字段。 还可以防止不必要地使用事件。
如果您正在观看用户在文本框本身中输入的更改,则应使用TextArea或TextInput类代替Text 。 这使您可以听这样的更改:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
protected function onTextChangeHandler(event:Event):void
{
trace("text has changed")
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:TextArea id="description"
text="text to change goes here ..."
textAlign="center"
fontSize="18"
change="onTextChangeHandler(event)" />
</s:Application>
如果要在文本框外更改文本,我建议您制作一个可绑定的变量或触发您要执行的操作的函数。
您将需要像这样注册更改事件(注意,我使用的是TextInput而不是Text):
<mx:TextInput id="description" text="" fontSize="18" change="_playSpeach()"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.