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

Botones dinamicos con acciones dinamicas en onMouseDown

Estas en el tema de Botones dinamicos con acciones dinamicas en onMouseDown en el foro de Flash y Actionscript en Foros del Web. Hola, pues eso, no sé cómo asignar dinamicamente acciones con onMouseDown, a los botones creados dinamicamente. Trozo dentro de for , que no logro hace ...
  #1 (permalink)  
Antiguo 10/03/2013, 07:34
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 14 años, 5 meses
Puntos: 6
Botones dinamicos con acciones dinamicas en onMouseDown

Hola,
pues eso, no sé cómo asignar dinamicamente acciones con onMouseDown, a los botones creados dinamicamente.

Trozo dentro de for , que no logro hace dinámico :(
Código as2:
Ver original
  1. modelButton.onMouseDown = function (){
  2.             if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  3.            
  4.                
  5.  /* PROBLEMA AQUÍ
  6. Si aquí pongo if(this._name == "empresa1") si que me va pero al poner "empresa+1 no me va :(
  7.  
  8. */var butName= "empresa" + i;
  9.                 if(this._name == butName){
  10.                     // trace("empresa" + i)acciones
  11.                     _global.nombre_empresa = nom_empresa[i-1];
  12.                     _global.edifici_empresa = edifici_empresa[i-1];
  13.                     _global.ubicacio_empresa = ubicacio_empresa[i-1];
  14.                     _global.desc_empresa =  desc_empresa[i-1];
  15.                     _global.logoUrl_empresa = logoUrl_empresa[i-1];
  16.                     _root.eliminar_resultados_irContenido();
  17.                    
  18.                 }
  19.  
  20.  
  21.             } //fin if
  22.         }//fin onMouseDown

Código entero
Código as2:
Ver original
  1. //creamos un MovieClip vacio q funcionara como contenedor a nuestros botones
  2. this.createEmptyMovieClip("empresasList",this.getNextHighestDepth());
  3. empresasList._x = 0;
  4. //creamos un Array con los nombres de los botones y q nos dira cuantos queremos
  5. var nom_empresa:Array = _root._global.arrayEncontradosList_nom_;
  6. var edifici_empresa:Array = _root._global.arrayEncontradosList_edifici_;
  7. var ubicacio_empresa:Array = _root._global.arrayEncontradosList_ubicacio_;
  8. var desc_empresa:Array = _root._global.arrayEncontradosList_desc_;
  9. var logoUrl_empresa:Array = _root._global.arrayEncontradosList_logoUrl_;
  10.                    
  11. var button_name:Array = new Array();
  12.  
  13. //usamos with() para escribir dentro del clip vacio
  14. with(empresasList){
  15.    
  16.     //posicionamos la botonera
  17.  
  18.     //creamos un for seteado por la longitud del Array
  19.     for(i=1;i <= nom_empresa.length; i++){
  20.        
  21.         //declaramos una vaiable de tipo MovieClip q funcionara de modelo a nuestros botones
  22.         //le damos por valor cada boton attachado
  23.         var modelButton:MovieClip = this.attachMovie("empresa", "empresa" + i, this.getNextHighestDepth ());
  24.      
  25.         //posicionamos los botones
  26.         modelButton._x = 0;
  27.         if( i == 0){modelButton._y = 0;}
  28.         else{
  29.         modelButton._y = (i-1)*35; //multiplicamos por 0, para q la distancia sea constante
  30.         }
  31.         //le ponemos titulo a cada boton, dados por los elementos del Array
  32.         modelButton.t.text = nom_empresa[i-1];
  33.        
  34.         //simulamos eventos RollOver y RollOut
  35.         modelButton.onEnterFrame = function (){
  36.            
  37.             //ecuacion para la trancicion de alpha
  38.             //donde: a = transparencia
  39.             //       v = velocidad de trancicion
  40.             this._alpha += (this.a - this._alpha) /this.v;
  41.                        
  42.             //si el cursor esta sobre el boton...          
  43.             if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  44.                 //...cambia su transparencia al 50%
  45.                 this.a = 50;
  46.                 this.v = 5;
  47.                
  48.                 //sino, vuelve o se mantiene al 100%
  49.                 } else{
  50.                     this.a = 100;
  51.                     this.v = 10;
  52.                     }
  53.                 }
  54.        
  55.         modelButton.onMouseDown = function (){
  56.  
  57.             if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  58.                
  59.                  /* PROBLEMA AQUÍ
  60. Si aquí pongo if(this._name == "empresa1") si que me va pero al poner "empresa+1 no me va :(
  61.  
  62. */var butName= "empresa" + i;
  63.                 if(this._name == butName){
  64.                     // trace("empresa" + i)acciones
  65.                     _global.nombre_empresa = nom_empresa[i-1];
  66.                     _global.edifici_empresa = edifici_empresa[i-1];
  67.                     _global.ubicacio_empresa = ubicacio_empresa[i-1];
  68.                     _global.desc_empresa =  desc_empresa[i-1];
  69.                     _global.logoUrl_empresa = logoUrl_empresa[i-1];
  70.                     _root.eliminar_resultados_irContenido();
  71.                    
  72.                 }
  73.             } //fin if
  74.         }//fin onMouseDown
  75.     }//fin for
  76.        
  77. }//fin with

Gracias de antemano
  #2 (permalink)  
Antiguo 10/03/2013, 09:44
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Botones dinamicos con acciones dinamicas en onMouseDown

He creado un funcion en _root que mira si el boton._name es igual a this._name y si es igual devuelve el valor igual, he echo que me escriba el "nombre de this._name" en un campo.text y me escribe el nombre correctamente, pero no sé pork no entra en el if

Código as2:
Ver original
  1. BUCLE FOR ETC..
  2. button_name[i] = "empresa" + i;
  3.         button_MC[i] = modelButton;
  4.         modelButton.onMouseDown = function (){
  5.             //for(v=1;v <= nom_empresa.length; v++){
  6.             if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  7.                
  8.                 // saco la i de stringButtons
  9.                 /*pos_button = (this._name).indexOf(stringButtons);
  10.                 i = stringButtons.substr(pos_button - 1 , 1);*/
  11.                 var nombre:String = _root.buscarNameButton(button_name,this._name);
  12.                 if(this._name == nombre  ){
  13.                     // trace("empresa" + i)acciones
  14.                     _global.nombre_empresa = nom_empresa[i-1];
  15.                     _global.edifici_empresa = edifici_empresa[i-1];
  16.                     _global.ubicacio_empresa = ubicacio_empresa[i-1];
  17.                     _global.desc_empresa =  desc_empresa[i-1];
  18.                     _global.logoUrl_empresa = logoUrl_empresa[i-1];
  19.                     _root.eliminar();
  20.                     _root.eliminar_resultados_irContenido();
  21.                     // elimino el listado de empresas por q sino se vee en el frame2
  22.                    
  23.                 }
  24.             } //fin if
  25.         }//fin onMouseDown
  26.        
  27. }//fin for

Última edición por marcwolf; 10/03/2013 a las 10:00

Etiquetas: flash
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 22:28.