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);
}
}
]]>