Tecnología

Inicio

Cómo arrastrar objetos con AS3

Cómo arrastrar objetos con AS3


Creación de una función de arrastrar y soltar en ActionScript 3 (AS3) es una tarea relativamente sencilla. Con sólo unas pocas líneas de código, puede arrastrar y soltar casi cualquier elemento en Flash. La forma más sencilla de implementar la funcionalidad de arrastrar y soltar es mediante el uso de métodos MovieClip la startDrag () y stopDrag (). Esto suele ser un evento de ratón que se desencadena dentro de la aplicación Flash. La funcionalidad de arrastrar y soltar tiene muchas variaciones que se pueden utilizar para implementar diferentes acciones dentro de Flash.

Instrucciones

1 Abra su programa de Flash y configurar los objetos que se utilizarán para este proyecto. Dibujar o importar los gráficos o elementos que desea arrastrar y ponerlos en el escenario principal. Para importar un objeto ya hecho, seleccione "Archivo" en "Importar" "Importar a escenario."

2 Convertir el objeto creado o importado a un símbolo haciendo clic sobre ella y presionando F8. En este caso, el nombre del objeto "ball_mc" y lo definen como un clip de película utilizando la lista desplegable proporcionado. Tenga en cuenta que el objeto se hace referencia en el código AS3 utilizando este nombre.

3 Haga clic derecho sobre "Capa 1" en la línea de tiempo y seleccione "Insertar capa." Nombre de la nueva capa de "Acciones".

4 Haga clic en el fotograma 1 en la capa "acciones" y presione F9. Agregue el código siguiente en el cuadro emergente:

ball_mc.addEventListener (MouseEvent.MOUSE_DOWN, arrastre);

ball_mc.addEventListener (MouseEvent.MOUSE_UP, gota);

función de arrastre (event: MouseEvent): void {

ball_mc.startDrag ();

}

gota function (event: MouseEvent): void {

ball_mc.stopDrag ();

}

5 Pulse la tecla "Ctrl + Enter" para probar la funcionalidad de arrastrar y soltar.

Consejos y advertencias

  • objetos arrastrados se pueden controlar mediante la definición de los límites más allá de la cual los objetos no pueden cruzar. Esta limitación se logra mediante la definición de los parámetros x, y, anchura y altura del área delimitada como se muestra en el siguiente código:
  • // El X & coordenadas y
  • var my_x: int = stage.stageWidth-ball_mc.width;
  • var my_y: int = Stage.stageHeight-ball_mc.height;
  • // La altura y el ancho
  • var myWidth: int = 0-my_x;
  • var myHeight: int = 0-my_y;
  • // Crear una nueva instancia de la clase rectángulo con las coordenadas anteriores.
  • var boundArea: Rectangle = new Rectangle (my_x, my_y, myWidth, myHeight);
  • // El ratón y detectores de eventos
  • ball_mc.addEventListener (MouseEvent.MOUSE_DOWN, arrastre);
  • ball_mc.addEventListener (MouseEvent.MOUSE_UP, gota);
  • // Esta función arrastra el objeto, pero limita a las fronteras de la etapa.
  • función de arrastre (event: MouseEvent): void {
  • ball_mc.startDrag (falso, boundArea);
  • }
  • // Esta función libera el objeto pelota.
  • gota function (event: MouseEvent): void {
  • ball_mc.stopDrag ();