Comunidad de diseño web y desarrollo en internet online

Vinculación entre clases

Citar            
MensajeEscrito el 29 Ago 2016 07:29 pm
Hola, quiero mostrarle 2 clases que he escrito.

La primera clase llamada Acomodar hace que con un clic se active el poder trasladar al MC llamada Acomodar dejando presionado el clic del ratón y al soltar el clic del ratón se deje de mover el MC “Acomodar” y se desactive el poder trasladar asta que se le haca otro clic, bueno como en la función Arrastrar y Soltar las deje vacías, no se trasladara el MC.

En la segunda clase llamada PC, le hice una extensión a la clase Acomodar y sobrescribo las funciones de Arrastrar y Soltar para que se traslade el MC PC y permitir que el MC Acomodar quede fijo donde lo dejo.
No se me explicar muy bien, asíque les pego el código de ambas clases para que entiendan lo que estoy diciendo.

----------------------------------------------------------------------------------------------------------------

Código ActionScript :

package 
{
   import flash.display.*;
   import flash.events.*;
   public class Acomodar extends MovieClip
   {
      var clic:Number = 0; 
      public function Acomodar()
      {
         this.addEventListener(MouseEvent.CLICK,clicIzquierdo);
      }
       function clicIzquierdo(e:MouseEvent):void
      {      
         clic++;
         trace("Cilc "+ clic );
         if (clic > 0 )
         {
            clic = clic - 2;
         }
         if ( clic==0)
         {
            trace("desactivado");
            removeEventListener(MouseEvent.MOUSE_DOWN, Arrastrar);
            removeEventListener(MouseEvent.MOUSE_UP, Soltar);
            buttonMode = false;
         }
         else
         {
            trace("activado");
            addEventListener(MouseEvent.MOUSE_DOWN, Arrastrar);
            addEventListener(MouseEvent.MOUSE_UP, Soltar);
            buttonMode = true;
         }
      }
   function Arrastrar(e:MouseEvent):void
      {
         //this.startDrag();
      }
      function Soltar(e:MouseEvent):void
      {
         //this.stopDrag();
      }
   }
}
----------------------------------------------------------------------------------------------------------------
package 
{
   import flash.display.*;
   import flash.events.*;
   public class PC extends Acomodar
   {      
       public function PC()
                {   
}
      override function Arrastrar(e:MouseEvent):void
      {
         this.startDrag();
      }
      override function Soltar(e:MouseEvent):void
      {
         this.stopDrag();
      }
   }
}

----------------------------------------------------------------------------------------------------------------
Ahora mi problema es que yo quiero que se active el poder Arrastrar y Soltar del MC PC presionando el MC Acomodar y no haciéndose clic así mismo pero el código quiero que sea en una clase.
Me la pase buscando y leyendo mucho, pero no logre vincular líneas de código entre clases.

Por ejemplo como poner en la clase PC

Código ActionScript :

      public function PC()
      {
         Acomodar.addEventListener(MouseEvent.CLICK,clicIzquierdo);
      }

Si alguien me dice como es o me da una referencia como buscarlo por internet, se lo agradecería.

Por Akaris

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Ago 2016 01:45 pm
Creo que estás mezclando el que y el como. Intenta explicar (sin ningún detalle de clase ni de que códio vas a usar para lograrlo) lo que quieres hacer.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Ago 2016 03:53 pm
Soy algo duro explicándome, asíque te diré lo q tengo en la cabeza como resultado final.

Imagínate que el Escenario es una porción de tierra y en el le pongo MC que serán edificios y quedaran fijos, pero si no me agrada la ubicación donde los puse y quiero cambiarlos de lugar, tengo un botón “Acomodar” una vez que acomode a mi gusto, vuelvo apretar el botón “Acomodar” y vuelven a quedar fijos. Pero los edificios lo vas adquiriendo con el tiempo por eso no puedo poner una cantidad fija de edificios por que al principio comenzare con uno, más tarde dos y etc…

Y muestro que he logrado hacer todo lo que pongo pero haciendo clic en el mismo MC que quiero mover y no lo logro hacer apretando el MC Acomodar.

Por Akaris

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Ago 2016 04:26 pm
Habitualmente los juegos de drag&drop se hacen en flash de una forma muy simple:

- En un MC pones una figura por fotograma, usas tantos fotogramas como figuras quieres poner. Ojo como la pones desde el punto de anclaje: centradas, o en una esquina ... pero eso afectará a la posición x e y si en algún momento los posicionas por programación
- Con una sola clase de drag&drop donde tengas un getter/setter de cual es el fotograma en que se tiene que estacionar esta listo

Meterse con herencia y sobrecarga de métodos en este punto no es necesario, hacer una clase por cada elemento arrastrable innecesario a menos que luego haya comportamiento que lo justifique

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Ago 2016 05:28 pm
Gracias Jorge, probare lo que me decis.

Por Akaris

7 de clabLevel



 

chrome

 

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