Hola,
Estoy haciendo que dos DateField muestren un rango de tiempo. Es decir el componente dfFechaIni muestra la fecha de Inicio (Desde) y el componente dfFechaFin muestra la fecha de final(Hasta).

Mi problema q es al cambiar al fecha de inicio, debo actualizar las lista deshabilitadas del calendario dfFechaFin y al cambiar la fecha dfFechaFin debo actualizar el rango de dfFechaIni.

Para ello cuando la fecha de uno cambia(lanza evento change) lo capturo en una funcion que eleva un evento creado por mi(fechaCambiada) al contenedor(RelacionFechas) que tiene dfFechaIni y dfFechaFin.

Este RelacionFechas, recoge este en una funcion, donde recoge la fecha q recibe del evento y establece el nuevo rango al calendario contrario al que emitio el evento.

Pongo el codigo aki:
CalendarioHora.mxml, el cual es un cambas que contiene un dateField:

Código ActionScript :

   <mx:DateField x="0" y="0" width="127" id="fecha" showToday="true" enabled="true"
      labelFunction="darFormatoFecha" yearNavigationEnabled="true" 
      change="FijarRangoFechas(event);"/>

         private function FijarRangoFechas(e:CalendarLayoutChangeEvent):void{         
      dispatchEvent(new ListDataEvent('cambiadaFecha',fechaNueva));
         }

        public function configurarRangoCalendario(range:Object, date:Date):void {
           //Cambiar el rango del calendario
      fecha.disabledRanges = [range];
        }


RelacionFechas.mxml:

Código ActionScript :

   <util:CalendarioHora id="dfFechaIni" y="26" enabled="true" initialize="configurarCalendario(event);" cambiadaFecha="actualizarRangoFechaFin(event);" right="0"/>
   <util:CalendarioHora id="dfFechaFin" y="52" enabled="true" initialize="configurarCalendario(event);" cambiadaFecha="actualizarRangoFechaIni(event);" right="0"/>

           /*Funciones que controlan cuando se selecciona una fecha en los calendarios
           para actualizar el rango del contrario*/
           //AL cambiar la fechaIni el rango no seleccionable del Fin disminuye hasta el dia antes del Inicial 
           private function actualizarRangoFechaFin(event:ListDataEvent):void{
              var fechaNueva1: Date = (event.listData) as Date;
         var calendarioCambiado1: CalendarioHora = CalendarioHora(event.currentTarget);
            
         var antesFechaIni:Date = new Date(fechaNueva1.fullYear,fechaNueva1.month,fechaNueva1.date);
         antesFechaIni.setTime(fechaNueva1.getTime() - millisecondsPerDay);
         var range3:Object={};
         range3.rangeEnd = antesFechaIni;
          dfFechaFin.configurarRangoCalendario(range3,dfFechaFin.fecha.selectedDate);            
           }

           //Al cambiar la fechaFin el rango no seleccionable del Ini empieza el dia siguiente al seleciconado en Fin
           private function actualizarRangoFechaIni(event:ListDataEvent):void{
              var fechaNueva2: Date = (event.listData) as Date;
         var calendarioCambiado2: CalendarioHora = CalendarioHora(event.currentTarget);

         var sigFechaFin:Date = new Date(fechaNueva2.fullYear,fechaNueva2.month,fechaNueva2.date);
         sigFechaFin.setTime(fechaNueva2.getTime() + millisecondsPerDay);
         var range4:Object={};
         range4.rangeStart = sigFechaFin;
         dfFechaIni.configurarRangoCalendario(range4, dfFechaIni.fecha.selectedDate);
           }


Esto es el groso del código. Ahora el problema:
Cuando selecciono una fecha en FechaIni, por ejemplo, el FechaFin cambia de rango ok. Luego cambio la fecha de FechaFin y FechaIni cambia de rango ok. Pero a la tercera cuando cambio de fecha en FechaIni, al cambiar de rango FechaFin, el campo de texto coge la fecha de hoy, en vez de permanecer con la fecha que estaba seleccionada y aunque esta este correcta dentro del nuevo rango.
No sabemos porque a veces cambia y a veces no, pero sabemos que lo que carga cuando falla es la fecha del dia.
¿Alquien me podria ilustrar con su conocimiento?, por favor!! Yo ya no sé que mas mirar.
Gracias