2011-07-02 1 views
0

フレックスプロジェクトでは、スライダ(簡単に)またはテキスト入力(正確な数値用)を使用してユーザ入力を求めるフォームにスライダとテキストボックスがあります。これらのいずれかのユーザー入力に基づいて、私はその中のTextInputに問題が生じていますフレックス4:スライダとテキストボックスのコンボを持っています

slider.addEventListener("change",sliderUpdate); 
textIn.addEventListener("change",valueUpdate); 

関連の関数を呼び出す添付リスナーを介して他を更新し、それは私がAでキー入力することはできません。 10進数 - これはおそらく、私がtextinputのすべてのキーストロークに対してスライダーをインクリメントしているため、 "。"を受け入れることができないリスナーを持っているために起こります。例えば.05、.1、.00003

これを回避するにはどうすればよいですか?私が完了したことを示すためにenterを押すまで、holdinにtextinputリスナーを保持できますか?

答えて

1

これが私の作品:

<?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> 

スライダのステップ値は0.01です。テキストフィールドに値を入力すると、スライダーは自動的に更新されます。

EDIT:

その後のTextInputに、あなたはスライダー押されたキーがENTERであるかどうかを確認してから更新する必要がありますkeyDownイベント(に、KeyboardEvent.KEY_DOWN)と機能をリッスンする必要があります

<s:TextInput id="textIn" x="10" y="76" width="87" keyDown="textIn_keyDownHandler(event)" text="0"/> 

機能:

protected function textIn_keyDownHandler(event:KeyboardEvent):void 
    { 
     if (event.keyCode == Keyboard.ENTER) 
     { 
      slider.value=Number(textIn.text); 
     } 
    } 

あなたは、これはそれを行う必要がありますaddEventListenerを使用する場合:

textIn.addEventListener(KeyboardEvent.KEY_DOWN, textIn_keyDownHandler); 
+0

小数点の意味を明確にしました。ビジネス上の理由から、私はスライダーが高いインクリメントで行く別のスナップ値を持つ必要があります。私の挑戦は、6.01、2.005などではなく、.009、、045などと挑戦します。スライダがキーストロークごとに更新しようとするので、 – RG1967

+0

おかげさまでクリスさんは夢のように働いていました! – RG1967

+0

ソリューションをありがとう、なぜ私は値の配列を更新しても2つの親指を使用して動作していないのですか? – kaissun

関連する問題