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

Transformación libre de Movie Clips

Estas en el tema de Transformación libre de Movie Clips en el foro de Flash y Actionscript en Foros del Web. Estimados, estuve buscando en foros anteriores y no encontré nada. Necesito poder dibujar poligonos y colorearlos al presionar Control+Enter (no en el escenario de Flash, ...
  #1 (permalink)  
Antiguo 07/06/2010, 10:51
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Transformación libre de Movie Clips

Estimados,
estuve buscando en foros anteriores y no encontré nada.
Necesito poder dibujar poligonos y colorearlos al presionar Control+Enter (no en el escenario de Flash, sino en el swf publicado)
Alguien me da una idea por donde arrancar?
gracias!
  #2 (permalink)  
Antiguo 07/06/2010, 14:05
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Transformación libre de Movie Clips

Hola, los movie clips tienen algunos métodos que sirven para dibujar, desconozco cómo funcionan en AS3 pero aquí te paso algunos códigos de ejemplo de AS2:



Ejemplo
El ejemplo siguiente crea un cuadrado con relleno rojo en el escenario (puede ser el polígono que tu quieras, incluso círculos):

Código actionscript:
Ver original
  1. //esta línea crea un movieClip vacío que luego servirá como contenedor del dibujo
  2. this.createEmptyMovieClip("square_mc", this.getNextHighestDepth());
  3. //aquí especificamos el color del polígono
  4. square_mc.beginFill(0xFF0000);
  5. //aquí le decimos desde qué punto comenzará el dibujo (X:10 e Y:10)
  6. square_mc.moveTo(10, 10);
  7. //comenzamos a dibujar las líneas
  8. //en este caso desde la ubicación establecida antes hasta X: 100 e Y: 10
  9. square_mc.lineTo(100, 10);
  10. square_mc.lineTo(100, 100);
  11. square_mc.lineTo(10, 100);
  12. square_mc.lineTo(10, 10);
  13. //terminamos de dibujar
  14. square_mc.endFill();


Puedes ir comentando partes del código para entender bien cómo lo hace.


Aquí otro código pero con curvas (es un poquito más complejo).

Código actionscript:
Ver original
  1. this.createEmptyMovieClip("circle_mc", 1);
  2. with (circle_mc) {
  3.     lineStyle(0, 0x0000FF, 100);
  4.     beginFill(0xFF0000);
  5.     moveTo(0, 100);
  6.     curveTo(0,200,100,200);
  7.     curveTo(200,200,200,100);
  8.     curveTo(200,0,100,0);
  9.     curveTo(0,0,0,100);
  10.     endFill();
  11. }


Espero que te haya servido, luego me cuentas.

Saludos
  #3 (permalink)  
Antiguo 08/06/2010, 13:38
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Transformación libre de Movie Clips

Hola evo_it

Gracias por el código que posteaste

este metodo ya lo tengo visto, el tema es que lo que yo quiero hacer es que el usuario haga click en determiandos puntos de la pantalla y esos puntos sean los vertices del poligono.
No que aparezca automáticamente, me explico?

Alguna idea por donde empezar?
  #4 (permalink)  
Antiguo 17/06/2010, 13:46
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 13 años, 10 meses
Puntos: 6
Busqueda Respuesta: Transformación libre de Movie Clips

Bueno vamos por parte:

Tu código debería (según mi parecer) tener los siguientes eventos:

PASO 1 - Iniciar dibujo (el usuario dice "bueno voy a hacer clic acá para comenzar a dibujar mi polígono"). Esto sería dibujar dentro de un clip que oficiaría de lienzo de dibujo.

PASO 2
- Marcar los puntos

PASO 3 - Marcar último punto (esto sería al hacer clic sobre el icono nuevamente.)


Bien pasamos al código, definiremos algunas funciones que luego usarás, llamándolas desde botones, en el escenario tendremos un clip que usaremos como incono (icono_mc) y otro que usaremos como lienzo (miLienzo_mc):

Código actionscript:
Ver original
  1. ///PASO 1: a esta función la llamaremos cuando comencemos a dibujar
  2. function comenzarDibujo(lienzo_mc:MovieClip)
  3. {
  4.         this.createEmptyMovieClip("clipVacio_mc", this.getNextHighestDepth());
  5.         clipVacio_mc._x=lienzo_mc._x;
  6.         clipVacio_mc._y=lienzo_mc._y;
  7.         clipVacio_mc.beginFill(0xFF0000);
  8.         _global.numeroPunto=1;
  9. }
  10.  
  11. //PASO 2: aquí dibujamos los puntos
  12. function dibujarPunto(lienzo_mc:MovieClip,posX:Number, posY:Number)
  13. {
  14.        if(_global.numeroPunto==1)
  15.        {
  16.          clipVacio_mc.moveTo(posX, posY);
  17.        }
  18.        else
  19.        {
  20.            clipVacio_mc.lineTo(posX, posY);
  21.        }
  22.        _global.numeroPunto++;
  23. }
  24. //PASO 3: terminar dibujo
  25. function terminarDibujo(lienzo_mc:MovieClip)
  26. {
  27.         lienzo_mc.enabled=false;
  28.         clipVacio_mc.endFill();
  29. }
  30.  
  31. _global.numeroPunto=0;
  32. miLienzo_mc.enabled=false;
  33. //eventos de botones
  34. icono_mc.onRelease=function()
  35. {
  36.     if(!_global.numeroPunto)
  37.     {
  38.         miLienzo_mc.enabled=true;
  39.         comenzarDibujo(this._parent.miLienzo_mc)
  40.     }
  41.     else
  42.     {
  43.         miLienzo_mc.enabled=false;
  44.         terminarDibujo(this._parent.miLienzo_mc)  
  45.     }    
  46. }
  47.  
  48. miLienzo_mc.onRelease=function()
  49. {
  50.     dibujarPunto(this, this._xmouse, this._ymouse)
  51. }


Con eso tienes para empezar, luego le deberás agregar tú solo detalles...


Saludos

Etiquetas: flash, libre, poligonos, runtime, transformacion
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 05:45.