Comunidad de diseño web y desarrollo en internet online

Ahorro de codigo: Estos scripts: ¿hacen lo mismo?

Citar            
MensajeEscrito el 06 Feb 2006 04:42 pm
Desearia saber en que me equivoco, ya que deseo ahorrar codigo porque debo realizar este codigo pero para 30 links:

Código :

aoc.onRelease = function(){
   getURL("http://www.aocmonitor.com", "_blank");
   }
aopen.onRelease = function(){
   getURL("http://www.aopen.com", "_blank");
}
asrock.onRelease = function(){
   getURL("http://www.asrock.com", "_blank");
}
link30.onRelease = function(){
   getURL("http://www.link30.com", "_blank");
}


:crap: lo intente con esto pero no me funciona: suponiendo que en ambos arrays tengo 30 valores cada uno

Código :

var misMarcas:Array = Array("aoc","aopen","asrock","link30");
var misURLS:Array = Array('"http://www.aoc.com"','"http://www.aopen.com"','"http://www.asrock.com"',"http://www.link30.com"');

for (i=0; i<30; i++){
   misMarcas[i].onRelease = function(){
   getURL(misURLS[i], "_blank");
   }
}

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 

Los Andes CHILE

firefox
Citar            
MensajeEscrito el 06 Feb 2006 05:10 pm
Bien, veamos, en el array guardaste "String" por ende
misMarcas[i] es un String y que yo sepa los Strings no tienen propiedad onRelease ... es un fallo muy comun

La cosa sería algo como
_root[misMarcas[i]].onRelease = function(){

aunque esta linea te podría generar problemas
getURL(misURLS[i], "_blank");

si no recuerdo mal, y muy distintamente de lo que nos haría pensar, que es que a cada boton se le asigna la url correspondiente, lo que hace es que a cada boton le asigna la posicion "i" del array para la url, con lo que todos apuntaría a la última posicion (cambia la i, cambia la url de todos los botones) así que yo haría algo como

_root[misMarcas[i]].valor = i;
_root[misMarcas[i]].onRelease = function(){
getURL(misURLS[this.valor], "_blank");
};

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 06 Feb 2006 06:06 pm
eres la hostia conejo xD
el codigo quedo asi y me funka a la perfección (por lo menos con tres botones) ya lo probare con todos:

Código :

var misMarcas:Array = Array("aoc","aopen","asrock");
var misURLS:Array = Array('"http://www.aoc.com"','"http://www.aopen.com"','"http://www.asrock.com"');
for (i=0; i<3; i++){
   _root[misMarcas[i]].valor = i;
   _root[misMarcas[i]].onRelease = function(){
      getURL(misURLS[this.valor], "_blank");
   };
}

ruteando:

Código :

_root[misMarcas[i]].valor = i;

tomas el numero de la casilla del arreglo, ejemplo: 0 ("aoc")

Código :

getURL(misURLS[this.valor], "_blank");

y despues dicho valor lo asignas en el otro arreglo ("http://www.aoc.com)

Gracias ^^

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 

Los Andes CHILE

firefox

 

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