Forms Flex 4:具有滑块和文本框组合

Forms Flex 4:具有滑块和文本框组合,forms,flex4,textinput,Forms,Flex4,Textinput,在flex项目中,我在表单上有一个滑块和文本框,我可以使用滑块(方便)或文本输入(精确数字)来查找用户输入。根据用户对其中一个的输入,我通过一个附加的监听器更新另一个,该监听器调用相关函数 slider.addEventListener("change",sliderUpdate); textIn.addEventListener("change",valueUpdate); 我对textinput有问题,因为它不允许我输入十进制数字——这可能是因为我有一个监听器,它为textinput中的每

在flex项目中,我在表单上有一个滑块和文本框,我可以使用滑块(方便)或文本输入(精确数字)来查找用户输入。根据用户对其中一个的输入,我通过一个附加的监听器更新另一个,该监听器调用相关函数

slider.addEventListener("change",sliderUpdate);
textIn.addEventListener("change",valueUpdate);
我对textinput有问题,因为它不允许我输入十进制数字——这可能是因为我有一个监听器,它为textinput中的每个击键递增滑块,因此无法接受“.”。e、 g..05.1.00003

我该如何解决这个问题?我可以按住textinput listener直到我可以按enter键表示我已经完成了吗?

这对我很有用:

    <?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[
            import spark.events.TextOperationEvent;

            protected function sliderUpdate(event:Event):void
            {
                textIn.text=slider.value.toString();
            }

            protected function valueUpdate(event:TextOperationEvent):void
            {
                slider.value=Number(textIn.text);
            }
        ]]>
        </fx:Script>
        <s:HSlider id="slider" x="10" y="106" width="308" change="sliderUpdate(event)" maximum="100.0" minimum="0.0" stepSize="0.01"/>
        <s:TextInput id="textIn" x="10" y="76" width="87" change="valueUpdate(event)" text="0"/>
    </s:Application>
如果您更喜欢使用addEventListener,则应该这样做:

textIn.addEventListener(KeyboardEvent.KEY_DOWN, textIn_keyDownHandler);

我围绕小数点的含义澄清了这个问题。出于业务原因,我需要滑块具有不同的捕捉值,以更高的增量移动。我的挑战不适用于6.01、2.005等,对我有效-使用.009045等进行挑战-它不允许“.”因为滑块尝试为每次击键更新。谢谢您的解决方案,但为什么即使我更新值数组,使用两个拇指也不起作用?
    protected function textIn_keyDownHandler(event:KeyboardEvent):void
    {
        if (event.keyCode == Keyboard.ENTER)
        {
            slider.value=Number(textIn.text);
        }
    }
textIn.addEventListener(KeyboardEvent.KEY_DOWN, textIn_keyDownHandler);