Comunidad de diseño web y desarrollo en internet online

attachMovie y viva la fiesta !!!!

Citar            
MensajeEscrito el 18 Nov 2004 06:42 pm
Wenas:

esto es un cachondeo, jejeje. Cada día me paso algo nuevo :cry:

A ver si me explico. Tengo una función q crea un combo box a partir de Xml (al fin funciona). Pues para meter esos datos en el Combo, lo hago a partir de un attachMovie, dándole propiedades al Combo con AS. Lo posiciono, le doy color, tamaño.... Todo lo hace perfecto, hasta q llamo a esa función dos veces.
He eliminado el combo utilizando removeMovieClip antes del attachMovie. Lo elimina pero la segunda vez q crea el Combo, lo situa en 0,0 sin datos y sin propiedades.

No lo entiendo, se le va la chapa ??? Hago algo mal ??? :lol:


Una ayudita, plisss

Por kavik666

35 de clabLevel



 

unknown
Citar            
MensajeEscrito el 19 Nov 2004 02:00 am
¿Algo de codigo que nos quieras mostrar?
Asi esta muy complicado ayudarte

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

unknown
Citar            
MensajeEscrito el 19 Nov 2004 07:47 am
Posteando código:

Código :

// Muestra el Combo Box con los distintos muebles de un tipo 
function desplegable (categoria, subcategoria){ 

   removeMovieClip(miDesplegable); 

   // Array q almacenara los distintos muebles, segun la cat. y subcat. 
   Tdesplegable = new Array(); 
   // Tamaño del vector 
   tam_T=0; 
   for (busca=0; busca<cuantostotal; busca++){ 
      comprobar_tip = ruta.mod[busca].tipo; 
      comprobar_med = ruta.mod[busca].medida;       
      if (comprobar_tip == categoria && comprobar_med == subcategoria){ 
         es_igual=false; 
         nuevo_mueble = ruta.mod[busca].mueble; 
         for (i=0; i<=tam_T; i++){ 
            if (Tdesplegable[i]==nuevo_mueble){ 
               i=tam_T; // Sale del bucle 
               es_igual=true; 
            } 
         } 
         // No se ha encontrado un mueble igual en el Vector y se almacena 
         if (es_igual==false) { 
            Tdesplegable[tam_T]=nuevo_mueble; 
            tam_T++; 
         } 
      } 
   } 

   /*********************/ 
   /***** COMBO BOX *****/ 
   /*********************/ 
    
   // Calcular el tamaño del Combo, dependiendo el elemento más grande 
   var tam_max=0; 
   for (i=0; i<tam_T; i++){ 
      aux_tam=Tdesplegable[i].length; 
      if (aux_tam > tam_max){ 
         tam_max=aux_tam; 
      } 
   } 

   //Atacheamos nuetro componente    
   attachMovie("ComboBox", "miDesplegable", _root.parar_cont); 
    
   miDesplegable._x= "400"; 
   miDesplegable._y= "70"; 
   //Propiedades    
   miDesplegable.setSize((tam_max*9)+15,22);    
   miDesplegable.dropdownWidth = tam_max*9; 

   miDesplegable.rowCount = 10; 
   miDesplegable.setStyle("themeColor", "0xF7E3C6"); 
   miDesplegable.setStyle("fontFamily", "Verdana"); 
   //Le asignamos un proveedor de datos    
   TCombo = new Array(); 
   miDesplegable.dataProvider = TCombo; 

   TCombo.addItem({label:"", data:""}); // Vacio 
   for (i=0; i<tam_T; i++){ 
      TCombo.addItem({label:Tdesplegable[i], data:Tdesplegable[i]});       
   } 
   //Eventos 
   miDesplegable.addEventListener("change", alSeleccionar); 
    
   _root.categoria_aux=categoria; 
   _root.subcategoria_aux=subcategoria; 

} 

//Listeners para cuando seleccionamos alguna opcion 
alSeleccionar = new Object(); 
alSeleccionar.change = function(evento) {    
   categoria=_root.categoria_aux; 
   subcategoria=_root.subcategoria_aux; 
   listado (categoria, subcategoria, evento.target.value) 
};



La primera vez q lo ejecuto, funciona perfectamente... y a partir de ahí sólo se muestra el combo vacio, en posición (0,0) y con el "themeColor" verde :([/flash]

Por kavik666

35 de clabLevel



 

unknown
Citar            
MensajeEscrito el 19 Nov 2004 09:21 am
Donde te pasa?

En el IDE de Flash o en una pagina web?

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

unknown
Citar            
MensajeEscrito el 19 Nov 2004 10:36 am
En:

Código :

   //Atacheamos nuetro componente    
   attachMovie("ComboBox", "miDesplegable", _root.parar_cont); 


_root.parar_cont es un contador entero, realmente debería poner 1


y no sé si esto influirá

Código :

   //Eventos 
   miDesplegable.addEventListener("change", alSeleccionar); 


nunca había utilizado un Listener

Por kavik666

35 de clabLevel



 

unknown
Citar            
MensajeEscrito el 19 Nov 2004 03:21 pm
Quiero decir que donde te pasa, cuando lo pruebas en el IDE Flash (es decir, Ctrl+Intro) o si te pasa en una pagina HTML (F12).

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

unknown
Citar            
MensajeEscrito el 19 Nov 2004 03:59 pm
utilize createClassObject en vez de attachMovie!

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

unknown
Citar            
MensajeEscrito el 19 Nov 2004 08:03 pm

Por kavik666

35 de clabLevel



 

unknown
Citar            
MensajeEscrito el 25 Nov 2004 10:38 am
Gracias por la ayuda, ya encontré la solución :D

Weno, mejor dicho, me la proporcionaron. Lo q me propusieron fue el crear un movieClip diferente cada vez q generaba un Combo Box.

_david, una cosa, no me quedó muy claro el tema de createClassObject. Lo estuve viendo en la ayuda de Flash pero la explicación no me ayudó mucho.

Código :

componentInstance.createClassObject(className, instanceName, depth, initObject)


Los tres primeros parámetros los entiendo, pero no el último. De todas formas yo no utilizo clases (todavía), así q creo q esta solución no me valdría.


Un saludo

Por kavik666

35 de clabLevel



 

unknown
Citar            
MensajeEscrito el 25 Nov 2004 03:38 pm
si, no tiene nada q ver q no use clases, es la forma correcta de crear componentes en runtime...


Código :

createclassObject(mx.controls.Button, "miBoton", getNextHighestDepth(),{x:10,y:20})

el ultimo parametro es opcional

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

unknown
Citar            
MensajeEscrito el 26 Nov 2004 08:06 am
ahhh, entiendo.

Entonces, según mi programación, debería poner lo siguiente:

Código :

createclassObject(mx.controls.ComboBox, "miCombo", getNextHighestDepth())


Ese código en teoría crearía un nuevo MovieClip llamado miCombo, el cual contendría el elemento de la biblioteca cuyo vínculo es ComboBox, y lo pondría en el siguiente nivel, no? Es correcto mi código?


Si es así, lo pruebo para comprobarlo ^^

Por kavik666

35 de clabLevel



 

unknown

 

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