maxHour) { NumericStepper(event.target).value = (is24Hour) ? 0 : 1; } else if(NumericStepper(event.target).value < tmpMinValue) { NumericStepper(event.target).value = (is24Hour) ? 23 : 12; } } if(_focusArea == minuteText || _focusArea == secondText) { if(NumericStepper(event.target).value > 59) { NumericStepper(event.target).value = 0; } else if(NumericStepper(event.target).value < 0) { NumericStepper(event.target).value = 59; } } _focusArea.setFocus(); if(_focusArea == hourText) this.hour = NumericStepper(event.target).value; if(_focusArea == minuteText) this.minute = NumericStepper(event.target).value; if(_focusArea == secondText) this.second = NumericStepper(event.target).value; } else { amPMText.text = (amPMText.text == "am") ? "pm" : "am"; this.am_pm = amPMText.text; } } private function fixText(event:Event):void { if(!(event.currentTarget == hourText && !is24Hour)) { _focusArea.text = (_focusArea.text.length < 2) ? "0" + _focusArea.text : _focusArea.text; } _focusArea.setSelection(0, 2); if(event.currentTarget == hourText) this.hour = Number(event.currentTarget.text); if(event.currentTarget == minuteText) this.minute = Number(timeStepper.value); if(event.currentTarget == secondText) this.second = Number(timeStepper.value); } private function setValues(event:Event):void { if(event.currentTarget == hourText) { if(hourValidator.validate(Number(event.currentTarget.text))){ timeStepper.value = Number(event.currentTarget.text); this.hour = Number(event.currentTarget.text); } } if(event.currentTarget == minuteText) { if(minuteValidator.validate(Number(event.currentTarget.text))) { timeStepper.value = Number(event.currentTarget.text); this.minute = Number(event.currentTarget.text); } } if(event.currentTarget == secondText) { if(secondValidator.validate(Number(event.currentTarget.text))) timeStepper.value = Number(event.currentTarget.text); } } private function formatText(value:String, theField:String):String { if(_focusArea) _focusArea.setSelection(0, 2); if(Number(value) > 12 && !is24Hour && theField == 'hourText') { value = String(Number(value) % 12); } if(theField == 'hourText' && !is24Hour) { return value; } else { return (value.length < 2) ? ("0" + value) : value; } } private function keyHandler(event:KeyboardEvent):void { if(event.keyCode == 39 || event.keyCode == 38) { if(_focusArea == hourText) { _currentStepValue++; var tmpMaxValue:Number = (is24Hour) ? (maxHour) : maxHour; if(_currentStepValue > tmpMaxValue) { _currentStepValue = (is24Hour) ? 0 : 1; } } else if(_focusArea == minuteText || _focusArea == secondText ) { _currentStepValue++; if(_currentStepValue > 59) { _currentStepValue = 0; } } timeStepper.value = _currentStepValue; timeStepper.dispatchEvent(new NumericStepperEvent('change')); _focusArea.setSelection(0, 2); } if(event.keyCode == 37 || event.keyCode == 40) { if(_focusArea == hourText) { _currentStepValue--; var tmpMinValue:Number = (is24Hour) ? 0 : 1; if(_currentStepValue < tmpMinValue) { _currentStepValue = (is24Hour) ? 23 : 12; } } else if(_focusArea == minuteText || _focusArea == secondText ) { _currentStepValue--; if(_currentStepValue < 0) { _currentStepValue = 59; } } timeStepper.value = _currentStepValue; timeStepper.dispatchEvent(new NumericStepperEvent('change')); _focusArea.setSelection(0, 2); } } private function amPMKeyHandler(event:KeyboardEvent):void { if(event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 37 || event.keyCode == 39) { amPMText.text = (amPMText.text == "am") ? "pm" : "am"; this.am_pm = amPMText.text; _focusArea.setSelection(0, 2); } } ]]>