Foros del Web » Creando para Internet » Flash y Actionscript »

factorizar codiguito plisss

Estas en el tema de factorizar codiguito plisss en el foro de Flash y Actionscript en Foros del Web. Hola Foro, bueno estoy aprendiendo de a poco actionscript, el siguient codigo lo q hace es mostrarme (segun marque o desmarque los checkbox) unos movieclip ...
  #1 (permalink)  
Antiguo 12/04/2010, 09:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 251
Antigüedad: 20 años, 7 meses
Puntos: 0
factorizar codiguito plisss

Hola Foro, bueno estoy aprendiendo de a poco actionscript, el siguient codigo lo q hace es mostrarme (segun marque o desmarque los checkbox) unos movieclip q tengos insertos en el flash (no soy SWF apartes) de modo q consiga sobreponer estos movies a mi gusto y bueno me funciona dentro lo qme sirve pero.... notaran q es como si repitiera lo mismo para cada caso y a difierencia del ejemplo q tiene solo 3 checkbox, asumo q tendre en promedio unos 50, tons queria ver si se puede factorizar el codigo.

movie1._visible=false;
movie2._visible=false;
movie3._visible=false;

// pal primer movieclip
alClicar = new Object();
alClicar.click = function(evento){

if(evento.target.selected){
movie1._visible=true;
}else{
movie1._visible=false;
}
}
pincha.addEventListener("click", alClicar);

// pal segundo movieclip
alClicarr = new Object();
alClicarr.click = function(evento){

if(evento.target.selected){
movie2._visible=true;
}else{
movie2._visible=false;
}
}
rios.addEventListener("click", alClicarr);

// pal tercero movieclip
alClicarp = new Object();
alClicarp.click = function(evento){

if(evento.target.selected){
movie3._visible=true;
}else{
movie3._visible=false;
}
}
poblados.addEventListener("click", alClicarp);

muuuuchas zazias por los aportes q me puedan ahcer
  #2 (permalink)  
Antiguo 12/04/2010, 11:39
Avatar de Kottore  
Fecha de Ingreso: octubre-2007
Mensajes: 170
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: factorizar codiguito plisss

Puedes hacer too de forma automática por medio de un bucle for declarando primero la cantidad de objetos que tendrás y luego hacer un recorrido por todos para aplicar tus instrucciones.

En éste caso podrías por comenzar a declarar cuantos objetos usarás en una variable así:


Código ActionScript:
Ver original
  1. var totalChks:Number=4;

Luego creas la función que verifica si están activados los checks box y muestra u oculta el movie así:

Código ActionScript:
Ver original
  1. function fncOcultarMostrar(){
  2.     for(k=1;k<=totalChks;k++){
  3.         if(_root["chk"+k].value==true){
  4.             _root["movie"+k]._visible=true;
  5.         }else{
  6.             _root["movie"+k]._visible=false;
  7.         }
  8.     }
  9. }

Al final adicionas el listener a los checkbox y que mande a llamar la función así:

Código ActionScript:
Ver original
  1. for(k=1;k<=totalChks;k++){
  2.     this["chk"+k].addEventListener("click", fncOcultarMostrar);
  3. }

Acá te dejo un ejemplo práctico.

Saludos ^_^
__________________
これは僕のウェブだよね。
  #3 (permalink)  
Antiguo 12/04/2010, 12:57
 
Fecha de Ingreso: septiembre-2003
Mensajes: 251
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: factorizar codiguito plisss

Hola Kottore, solo puedo deciros ZAZIAS !!!, es lo que queria, descargue el archivo (fla) pero no me reconoce el formato (yo uso flash CS3), asi q tuve q "armar" el codigo, y al hacerlo cuando marco el 4to movieclip, se me desaparecen los 3 anteriores, eso es lo q falla y no s eporque, si pudiras colgar nuevametne el ejemplo en el formato adecuiado (CS3) te lo agradecere muchísimo.

otra cosa... abusando de tu persona y con las disculpas del caso ... yo opté por "jalar" uno a uno los checkboxes a la escena, y darles su nombre, es decir manualmente, es posible construir ese listado de checkboxes de forma dinámica, digamos a traves de un XML o algo asi???

bueno si esta a tu alcance te pido me colabores tb con eso, en otro caso.. entendere, sin embargo 1000 gracias nuevametne por la gran ayuda q me has dado

saludos... Rafa
Nota.- porfavor cuelga el archivo "fla" nuevamente
  #4 (permalink)  
Antiguo 12/04/2010, 14:55
Avatar de Kottore  
Fecha de Ingreso: octubre-2007
Mensajes: 170
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: factorizar codiguito plisss

Hola rafex!

Claro que es posible construir el listado de los checkBox de forma dinamica con el clásico attachMovie pero si quieres que su nombre venga de un xml pues ese ya sería otro código.

Bastaría agregado tres líneas más al bucle inicial así:


Código ActionScript:
Ver original
  1. for(k=1;k<=totalChks;k++){
  2.     attachMovie("CheckBox", "chk"+k, k, {_x:5, _y:k*20-20});
  3.     this["chk"+k].label="movie "+k;
  4.     this["chk"+k].value=true;
  5.     this["chk"+k].addEventListener("click", fncOcultarMostrar);
  6. }

y ya con eso te queda ^_^

Te dejo el *.fla en CS3 para que puedas verlo.

Saludos ^.^
__________________
これは僕のウェブだよね。
  #5 (permalink)  
Antiguo 12/04/2010, 14:59
Avatar de Kottore  
Fecha de Ingreso: octubre-2007
Mensajes: 170
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: factorizar codiguito plisss

bueno, hablando de XML tendrías que modificar una línea algo así como esto:

Código ActionScript:
Ver original
  1. this["chk"+k].label=varXML.childNodes[k].firstChild.nodeValue; //Donde k sería el nodo del nombre de tu checkBox

Saludos ^.^
__________________
これは僕のウェブだよね。
  #6 (permalink)  
Antiguo 12/04/2010, 15:28
 
Fecha de Ingreso: septiembre-2003
Mensajes: 251
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: factorizar codiguito plisss

hola, priemro GRACIAS por responder, ya probe lo de cagar dinamicamente los checkboxes y funciona correctametne, con la salvedad de q pues el nombre relacionado a cada check es el mismo "movie1,2,3.." y bueno la idea es q tengan nombres diferentes "rios, lagos,salares, etc... pero bueno de q funciona SIII lo hace. Lo del XML recien lo voy a probar. MUCHAS GRACIAS por tu ayuda.

GRACIAS de verdad,... cualquier cosita te lo comento...
  #7 (permalink)  
Antiguo 12/04/2010, 16:13
Avatar de Kottore  
Fecha de Ingreso: octubre-2007
Mensajes: 170
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: factorizar codiguito plisss

Okas, por aquí estoy para ayudar.

Con respecto a los nombres es sencillo arreglarlo. Solo haz un Array que los almacene y luego en el mismo bucle los mandas a llamar.
Basicamente agregarías una línea así:


Código ActionScript:
Ver original
  1. var varNombres:Array=new Array("", "rios", "lagos", "monta~as", "campos");

y modificarías así la otra:

Código ActionScript:
Ver original
  1. this["chk"+k].label=varNombres[k];

Saludos ^_^
__________________
これは僕のウェブだよね。

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:44.