Comunidad de diseño web y desarrollo en internet online

Movieclips, móviles, escalables y rotables.

Citar            
MensajeEscrito el 24 Ago 2011 07:25 am
Hola gente, aquí estoy de nuevo inmerso en las oscuridades de la ignorancia. El caso es el siguiente:

Necesito hacer una serie de movieclips que sean móviles, rotables y escalables, o sea, algo parecido a lo que se hace en word con la transformación de los bitmaps. O sea, necesito que, al pinchar sobre el movieclip, aparezcan los típicos cuadritos de control; si arrastro desde el centro, el movieclip se mueve; si arrastro desde las esquinas, el movieclip se escala proporcionalmente y si arrastro desde el tirador superior, el movieclip gira.

El problema es que, obviamente, sé cómo hacer drag de un movieclip, pero lo de escalar y rotar arrastrando el ratón y que además sean acciones que dependan de en qué parte del movieclip esté el ratón, me descoloca.

¿Alguna idea o sugerencia sobre cómo enfocarlo?

Gracias

Por CidDeMizar

81 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Ago 2011 01:45 pm
Bueno, lo primero es que de alguna forma tendrás que dibujar el contorno del MovieClip y del tirador superior, lo cual por ahora voy a suponer que ya tienes hecho (sino, ya me lo dirás y ya veremos esa parte).

Una vez que tienes las esquinas, por ejemplo, para redimensionar tendrías que crear una función para comenzar el redimensionado (con un MouseDown en las esquinas del MovieClip) y otra para terminarlo (con un MouseUp, preferiblemente en el stage).

Ahora bien, una vez que ha comenzado el redimensionado, deberías tener otra función para que, cuando se mueva el ratón, se redimensione el MovieClip. De momento, imaginemos que tienes algo así:

Código ActionScript :

function redimensionar(e:MouseEvent):void {
    // Cálculos matemáticos para redimensionar el MovieClip
}

function comenzarRedimensionado(e:MouseEvent):void {
    // Creamos el listener para redimensionar el MovieClip
    movieclip.addEventListener(MouseEvent.MOUSE_MOVE, redimensionar);
}

function finalizarRedimensionado(e:MouseEvent):void {
    // Eliminamos el listener que redimensiona el MovieClip
    movieclip.removeEventListener(MouseEvent.MOUSE_MOVE, redimensionar);
}

esquina.addEventListener(MouseEvent.MOUSE_DOWN, comenzarRedimensionado);
stage.addEventListener(MouseEvent.MOUSE_UP, finalizarRedimensionado);


Los cálculos matemáticos, de momento, te los dejo a tí. Si no recuerdo mal, deberías guardar el lugar donde estaba el ratón cuando empezaste a redimensionar el clip y hacer cálculos con él, pero quizá haya una forma más sencilla.

En cuanto a lo de rotar, deberías hacer algo parecido, pero con el tirador superior en lugar de las esquinas. Para calcular cuánto debes rotar el clip, debes hacer cálculos trigonométricos. Si no me equivoco, hay algún tutorial sobre trigonometría en Flash en este foro.

Espero que esto te ayude a guiarte un poquito... sino, intentaré ayudarte un poco más.

Por nestorrente

1010 de clabLevel

10 tutoriales

 

Vigo

firefox
Citar            
MensajeEscrito el 24 Ago 2011 05:01 pm
Gracias, nestorrente. empezaré por la idea que me has dado. Si sigo igual de inútil como hasta ahora, te volveré a pedir "sopitas".

Gracias de nuevo.

Por CidDeMizar

81 de clabLevel



 

firefox

 

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