ActionScript - Codigo Callejero

 
Vista:

Codigo Callejero

Publicado por Maite (3 intervenciones) el 02/05/2006 20:10:56
Estoy haciendo un callejero con 400 botones que son las calles, yo quiero que al pasar el puntero por cada boton salga el nombre de cada calle, el codigo que quiero usar es este

this.calle1_btn.onRollOver = function() {
myToolTip.maxAlpha = 90;
myToolTip.show("Calle Industria");
calle1_btn.useHandCursor=false;
}
this.calle1_btn.onRollOut=function(){
myToolTip.ocultar();
};

Con este codigo hago que salga la etiqueta con el nombre de cada calle, el problema es que son 400 botones y de esta forma se haría muy pesado, alguien me podria ayudar a que mi codigo se hiciera mas ameno
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Optimización de etiquetas para múltiples botones

Publicado por Alejandro (369 intervenciones) el 22/06/2023 16:43:59
Para optimizar tu código y hacerlo más eficiente al manejar múltiples botones, puedes utilizar un enfoque de programación más dinámico. Aquí hay una solución que te permitirá aplicar la funcionalidad a los 400 botones de forma más concisa:

1. Crea un array para almacenar los nombres de las calles:

1
var nombresCalles:Array = ["Calle Industria", "Calle Principal", ...]; // Agrega los nombres de las calles restantes

2. Crea una función que se encargue de mostrar y ocultar la etiqueta:

1
2
3
4
5
6
7
8
9
function mostrarEtiqueta(nombre:String):Void {
  myToolTip.maxAlpha = 90;
  myToolTip.show(nombre);
  this.useHandCursor = false;
}
 
function ocultarEtiqueta():Void {
  myToolTip.ocultar();
}

3. Utiliza un bucle para asignar los eventos a los botones y pasar el nombre de la calle correspondiente:

1
2
3
4
5
for (var i:Number = 0; i < 400; i++) {
  var calleBtn:MovieClip = this["calle" + (i + 1) + "_btn"];
  calleBtn.onRollOver = mostrarEtiqueta.bind(this, nombresCalles[i]);
  calleBtn.onRollOut = ocultarEtiqueta;
}

En este ejemplo, se utiliza un bucle `for` para recorrer los botones de la calle, identificados por el nombre "calleX_btn" donde X es el número de la calle. Se asigna la función `mostrarEtiqueta` al evento `onRollOver` de cada botón, pasando el nombre de la calle correspondiente desde el array `nombresCalles`. El evento `onRollOut` está asignado a la función `ocultarEtiqueta`, que simplemente oculta la etiqueta.

Con este enfoque, evitas repetir el código para cada botón y puedes gestionar los nombres de las calles de forma más eficiente utilizando un array.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar