繁体   English   中英

如何调整文本控件的文本更改事件以调用Flex 3中的函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM