Muela Blog

jueves, noviembre 02, 2006

StarDrag-StopDrag Y Pegado De Clips

Categoria: MiniTuto
Nivel: Principiante


Wenas wenas... :D
En ete mini tutorial se mostrara como crear un breve efecto de pegado de clips asi como utilizar el startDrag y stopDrag Y para esto haremos un breve ejemplo como el siguiente :





1.- ok lo primero q haremos es dibujar un cudrado sin relleno de aproximadamente 60px * 60px
2.- ahora selecionaremos esas lineas haciendo doble clik sobre ellas, y presionamos f8(esto para convertirlas en un MC), selecionamos como tipo: MovieClip, punto de registro: Centro, Nombre:Clip2. y luego presionamos en "OK".


3.- Despues de presionar ok, selecionamos nuestro nuevo mc (clip2) y en el panel de propiedades(Ctrl+F3) le damso como nombre de instancia "clip2".

4.- Ahora crearemos el clip q moveremos, primero creamos una nueva capa y en el primer frame de esta capa crearemos un circulo de 30px * 30px.

5.- Lo Seleccionamso dando doble click sobre el y presionamso F8, lo convertimos en Movieclip, con el punto de registro en el centro y nombre "Clip1". (Como en el punto 2)

6.- Aora selecionamos es MC (clip1) y en el panel de propiedades la damos como nombre de instancia "clip1".

7.- Ahora vien la parte de codigos :), creamos otra capa y la llamamos AS, en esa capa seleccionamso el primer frame y abrimoc el panel de acciones (F9) y ponemos el siguietne codigo:

stop();

clip1inicioX = clip1._x;

clip1inicioY = clip1._y;

Explicacion: Detenemso la pelicual en ese frame (1), y creamos dos variables y cada una contendra las coordenas del clip1 en "x" e "y" respectivamente..

8.- Por ultimo selecionamos el clip1 (la bola) y abrimos el panel de acciones(F9) y pegamos el siguiente codigo:

on (press) {
startDrag(_root.clip1,
true);}

on (release) {
stopDrag();
if (_root.clip1.hitTest(_root.clip2))
{

_root.clip1._x = _root.clip2._x;
_root.clip1._y = _root.clip2._y; } else {
_root.clip1._x = _root.clip1inicioX;
_root.clip1._y = _root.clip1inicioY; }}

Explicacion: Al mantener presionado el clip1 empesamos a arrastrar (startDrag) el clip 1...
luego si lo soltamos (Release) dejamos de arrastrar cualquier objeto q este siendo arrastrado (stopDrag();) y Si! el clip1 esta tocando al clip2 [if (_root.clip1.hitTest(_root.clip2)) ] le decimos q el clip1 se ponga en la coordenada X igual q la coordenada X del clip 2 y los mismo en la coordenada Y [_root.clip1._x = _root.clip2._x;].
Pero si no esta tocando al clip2 [else], entonces q el clip1 se vaya a la coordenada X e Y iguales a las primeras coordenas q estaban antes de ser arrastrados... Se entiende??? creo q si, en verdad es un codigo muy sencillo...

Ejemplo Terminado

Asi de facil :)!!, claro q este es un codigo sencillo q se puede mejorar como por ejmplo para crear rompecabezas u cualquier otra cosa q les diga su imaginacion :P

Espero q les haya servido, y hast al proxima ^^!

Suerte!!