Comunidad de diseño web y desarrollo en internet online

compactar codigo

Citar            
MensajeEscrito el 18 Mar 2006 08:34 pm
Hola,

Les explico cual es mi problema:

requiero hacer un script que valide tanto el mes como el dia actual y con base en esa informacion, asigne una instrucción a un boton para que éste abra el archivo que corresponde a la fecha actual.

Por ejemplo:

hoy es 18 de marzo, entonces el script debe validar esta fecha y debe asignar al boton:

Código :

getURL("pdf/marzo18.pdf", _blank);


y de esa manera pueda abrir el pdf que corresponde al día de hoy.

De hecho ya logré hacerlo, pero con una cantidad espantosa de código y lo que quiero es aprender a compactar este codigo.

***

Les cuento lo que hice.

Tengo 31 botones, lo cuales tienen nombre de instancia Dia1,Dia2,Dia3,...,Dia18,...,Dia31

En el primer fotograma de la linea de tiempo principal puse este código

Código :

fecha = new Date();
diadelmes = fecha.getDate();
mes = fecha.getMonth()+1;
if (mes == 3 && diadelmes == 18) {
   Dia18.onRelease = function() {
      getURL("pdf/marzo18.pdf", _blank);
   };
}


y funciona. asigna

Código :

getURL("pdf/marzo18.pdf", _blank); 
al boton y cuando lo clickeo descarga el pdf.

Bueno, para que esto funcione, es necesario validar los 365 días del año, empezando por enero 1 y para eso tendría que hacer algo así:

Código :

fecha = new Date();
diadelmes = fecha.getDate();
mes = fecha.getMonth()+1;
if (mes == 1 && diadelmes == 1) {
   Dia1.onRelease = function() {
      getURL("pdf/enero1.pdf", _blank);
   };
} else if (mes == 1 && diadelmes == 2) {
   Dia2.onRelease = function() {
      getURL("pdf/enero2.pdf", _blank);
   };
} else if (mes == 1 && diadelmes == 3) {
   Dia3.onRelease = function() {
      getURL("pdf/enero3.pdf", _blank);
   };
}


y así hasta llegar a diciembre 31

y creo que es mucho código y también creo que se puede compactar. he pensado que con una matriz y un bucle for, pero no tengo muy claro como concretarlo.

en resumen lo que me interesa es reutilizar los 31 botones y no tener que duplicarlos por cada mes del año.

muchas gracias por la ayuda.

Saludos

Por pharpbx

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Mar 2006 10:39 pm
fecha = new Date();
diadelmes = fecha.getDate();
mes = fecha.getMonth();
mes_array=new Array();
mes_array=["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"];
archivo="pdf/"+mes_array[mes]+String(diadelmes)+".pdf";
getURL(archivo, _blank);

Por La_Gata

123 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2006 06:47 am
La_Gata, muchas gracias... quedó perfecto. para que funcionara como yo queria hice lo siguiente:


primero elimine

Código :

diadelmes = fecha.getDate();


porque diadelmes de devolvia el día actual

posteriormente cree una función con tu código y quedó así

Código :


function codigoBotones(diadelmes){
fecha = new Date();
mes = fecha.getMonth();
mes_array=new Array();
mes_array=["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"];
trace(mes_array);
archivo="pdf/"+mes_array[mes]+String(diadelmes)+".pdf";
getURL(archivo, _blank);
}



Notarás que la función recibe un parámetro, y éste se lo envío desde la llamada de la función.

En los botones escribí esto, desde el 1 al 31:

Código :


//Boton1

on(release){
codigoBotones(1);
}

//Boton2

on(release){
codigoBotones(2);
}



y con eso está solucionado.

muchas gracias por la ayuda tan pronta y efectiva.

saludos,

:)

Por pharpbx

15 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.