secuencia usando millis()

Hola a todos
Espero podais resolverme esta duda porque , despues de darle muchas vueltas al ejemplo del parpadeo usando millis, creo que deberia funcionarme en mi caso , sin embargo no de asi .
Deberia apagar cuatro leds uno detras de otro dependiendo de un tiempo que varia entre 1 y 1024 .
El codigo es el siguiente

if (descuelgue == HIGH){
digitalWrite (abrepuerta,HIGH);
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= temporizador ) {
previousMillis = currentMillis;
for (int i=0 ;i<=4 ;i++){
switch (i){
case 1:
digitalWrite(ledVerde1,LOW);
break;
case 2:
digitalWrite(ledVerde2,LOW);
break;
case 3:
digitalWrite(ledAmarillo,LOW);
break;
case 4:
digitalWrite(ledRojo,LOW);
break;
}
Estoy adaptando un interfono para que lo pueda usar gente con discapacidad y esta seria la parte que regula el tiempo de descuelgue del cacharro.
El caso es que cuando se descuelga se apagan los 4 leds al momento independientemente del valor que le halla asignado.
Un saludo ,