2013-05-21 62 views
1

flex中的NumericStepper必須接受0到999.99之間的值。Flex NumericStepper:小數點前的整數部分的極限範圍

我試着設置了NumericStepper如下:

<s:NumericStepper id="numStepper" value="@{myValue}" maximum="999.99" snapInterval="0.01" stepSize="0.01" minimum="0"/> 

和設置也一個的NumberValidator連接到它:

var nValidator:NumberValidator = new NumberValidator(); 
nValidator.source = numStepper; 
nValidator.precision = 2; 
numericStepper.maxChars=6; 
nValidator.decimalSeparator="."; 

事情的作品,但我想也可以通過直接限制用戶輸入鍵盤中的數字步進,以便用戶不能輸入「1.4567」,但只能輸入1.45。

所以我想要的東西,能根據我的規格限制數量的整數和小數部分:「」

  1. 最多3個字符的整數部分
  2. 小數點分隔
  3. 最多2個字符精密

也許有些正則表達式可以幫助?

感謝

回答

1

您是否嘗試過...

nValidator.fractionalDigits = 2; 
+0

我想的fractionalDigits是不是在Flex 4中,(我用的)可用。根據[文檔](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/validators/supportClasses/NumberValidatorBase.html#fractionalDigits)的 – frankieta

+0

@frankieta,fractionalDigits在Flex 4中可用(Spark)'NumberValidator'類。 **編輯:** Doh,我想你可能沒有使用Flex 4.5(在這個屬性被添加的地方...抱歉應該仔細閱讀文檔) –

+0

我認爲這可能是矯枉過正,但你可以創建一個「MyNumericStepper 「擴展火花NumericStepper然後重寫」value「setter屬性的類,以總是以double精度進行取整。然後在你的MXML中,使用'' –