Comunidad de diseño web y desarrollo en internet online

introducir MC en un MC contenedor

Citar            
MensajeEscrito el 12 Oct 2009 05:02 pm
Muy buenas gente!
Resulta que tengo unos MC que pertenecen a una clase que me he creado para trabajar con ellos, y ahora tengo que crear otro MC que los contenga como si fuese una lista (yo arrastro los MC hasta el MC contenedor y se tienen que ir añadiendo dentro de este).
Pero hay varias cosas que no comprendo y queria que me ayudaseis un poco.

En un principio he pensado que el MC contenedor deberia pertenecer a una super-clase que contuviese tambien la clase de los MC. Pero lo que me crea una duda es ¿para que los MC se inserten en el Contenedor tengo que hacer un addChild en el contenedor e indicarle al MC que he arrastrado hasta encima del contenedor que vuelva a su sitio por si se quiere añadir otro MC de ese tipo a la lista? ¿hay otro metodo? ¿se hace eso pero de una manera mas sencilla? ... ¿a que huelen las nuves?

Muchas gracias!
P.D: Si no me he explicado bien decidmelo, ok? XD

Por SeiyaJapon

54 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 13 Oct 2009 01:22 pm
Estás (creo) mezclando dos niveles. Uno es el workflow de la interfaz o vista (arrastro y vuelve o se queda, o cambia de color o lo que sea) y el de la estructura interna de objetos. Que un elemento se muestre dentro de otro no significa para nada que el contenedor tenga que ser la superclase del contenido, en todo caso en principio es una composición (A contiene a B)
Si quieres que se puedan seguir agregando elementos, vuelve a su lugar y agrega una copia al contenedor cada vez que se arrastre.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Oct 2009 11:49 pm
Ante todo, gracias por contestar!

Entiendo lo que me dices, pero tengo un problema, y es que, SI, puedo hacer el contenedor como un MC normal y corriente sin que pertenezca a una super-clase, pero el mayor problema es que no se como introducir un MC de los que arrastra hasta el contendor, dentro del mismo.
Hay nueve MC distintos que he agrupado en una clase. Solo se distinguen por el valor de una variable cada uno... ademas de que visualmente son disitintos.
Pense que para hacer lo que quiero deberia crear una variable del mismo tipo que la clase a la que pertenencen los MC y luego copiar hacer una copia del elemento que estoy arrastrando, pero me da un fallo.
Este es el codigo:

Código ActionScript :

public function drop(e:MouseEvent):void
      {
         e.target.stopDrag();
         if (((e.target.x > listaAcciones.x) && (e.target.x < (listaAcciones.x + listaAcciones.width))) && ((e.target.y > listaAcciones.y) && (e.target.y < (listaAcciones.y + listaAcciones.height))))
         {
            var aux:btnAcciones = new btnAcciones;
            aux = e.target; //esta linea me da el fallo
            e.target.x = listaAcciones.x + 15;
            listaAcciones.addChild(aux);
         }
         else
         {
            e.target.x = e.target.posIniX;
            e.target.y = e.target.posIniY;
         }
      }

He pensado que el momento ideal para hacerla copia e indicar que se tiene que introducir el elemento es cuando suelto el MC. Pero me da un fallo --> 1118: Conversión implícita de un valor con tipo estático Object a un tipo clases:btnAcciones posiblemente no relacionado.
Tambien he probado a crear aux asi: var aux:MovieClip = new btnAcciones, pero tambien me da un fallo. No tengo ni idea de como continuar. La verdad es que estoy bastante atascado.

Por SeiyaJapon

54 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 14 Oct 2009 10:04 am

var aux:btnAcciones = new btnAcciones;
aux = e.target; //esta linea me da el fallo


¿En que quedamos, es un nuebo btnAcciones o es un puntero al elemento que generó el evento? ¿EN ambos casos lo haces volver? Prueba así:

Código ActionScript :

public function drop(e:MouseEvent):void 
      { 
         e.target.stopDrag(); 
         if (((e.target.x > listaAcciones.x) && (e.target.x < (listaAcciones.x + listaAcciones.width))) && ((e.target.y > listaAcciones.y) && (e.target.y < (listaAcciones.y + listaAcciones.height)))) 
         { 
            var aux:btnAcciones = new btnAcciones(); 
            aux.x = 15; 
            listaAcciones.addChild(aux); 
         } 
            e.target.x = e.target.posIniX; 
            e.target.y = e.target.posIniY; 
      }


Tendrás que corregir el tema de posiciones a medida que vayas agregando cosas, pero bueno, no será lo único que tengas que corregir

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Oct 2009 02:39 pm
¿A que te refieres con lo de que no será lo único que tendré que corregir?
...

Por SeiyaJapon

54 de clabLevel



 

España

safari
Citar            
MensajeEscrito el 14 Oct 2009 02:41 pm
Así como está cada elemento arrastrado se pone encima del otro, tendrás que espaciarlos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Oct 2009 10:27 pm
Vaaaaaaaaaaale! me creia que seria algo mas raro... ya habia pensado en eso. Pero Gracias!


(y) :lol:

Por SeiyaJapon

54 de clabLevel



 

España

firefox

 

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