To fix the issue we create variables, which remember the date, when it was not undefined.
// Variables to remember
var rememberDate:Number;
var rememberMonth:Number;
var rememberYear:Number;
// regular Variables
var theDate:Number;
var theMonth:Number;
var theYear:Number;
// Listener
var myDateListener:Object = new Object ();
myDateListener.change = function (eventObj)
{
// We fill the remember variables with a value.
if (theDate != undefined)
{
rememberDate = theDate;
rememberMonth = theMonth;
rememberYear = theYear;
}
// Now we get the data from the component.
var eventSource:Object = eventObj.target;
var theSelectedDate:Date = eventSource.selectedDate;
theDate = theSelectedDate.getDate ();
theMonth = theSelectedDate.getMonth () + 1;
theYear = theSelectedDate.getFullYear ();
// If any of the data are undefined, we use the remember variables as data source.
// The error only occurs, when the same date was pressed twice.
if (theDate == undefined)
{
theDate = rememberDate;
theMonth = rememberMonth;
theYear = rememberYear;
}
myText.htmlText = "" + theMonth + "-" + theDate + "-" + theYear + "";
}
myDateChooser.addEventListener ("change",myDateListener2);
|