26/10/2004, 12:15
|
| | | Fecha de Ingreso: octubre-2004 Ubicación: Ahora mismo en Barcelona España, auqnue soy de Buenos Aires, Argentina.
Mensajes: 56
Antigüedad: 20 años, 1 mes Puntos: 0 | |
Hola Kerman,
eso aparte de usar start/stop drag, tambien deberas usar detectColision con la accion hitTest. Esto hace que si colicionan (se tocan) dos MCs, se produzca una accion X (como consecuencia).
Entonces, imaginate que tenes el puzzle desarmado, cada pieza es un MCX
y tenes por otra parte, la base del puzle, donde esta la ubicacion "destino de cada pieza". ok, es como el mismo puzle pero armado y sin dibujos, verdad?
pues este "puzle vacio" debe contener MCs en blanco, con los que cada pieza colisionaría. si la pieza "A" colisiona con el MC de la ubicacion"A" (entonces la pieza esta correctamente ubicada, por lo que cuando la sueltas, la pieza se coloca bien.
Si por el contrario, la pieza "A", se esta tocando con la ubicacion "B", la pieza esta siendo mal colocada, poe lo cual, la pieza volvera a una ubicacion X (la que tenia antes).
OK, esto es un poco liante de explicar en un post, pero seria mas o neos asi:
cada MC del puzle ubicacion deberá tener un nombre de instancia...
ubic1, ubic 2, ubic3.... (que serian las ubicaciones de destino de las piezas, o sea del puzle vacio que hablabamos).
lueog tendras las piezas reales del puzle, cada pieza un MC con nombre de instancia:
pieza1, pieza2, pieza3, etc...
a la pieza1 le pondriamos por ejemplo:
on (pess) {
this.startDrag();
}
on (release) {
this.stopDrag();
if(this.hitTest(_root.ubic1) == true){
this._x=50;
this_y=60;
} esle {
this._ x=150;
this._y=160;
}
}
Con esto que hacemos? esta claro el startDrag asi que vayamos a la otra parte. Primero decimos que cuando sueltes la pieza dejemos de arrastrarla, Y, aca hay una condicion, que haya colicion entre la pieza y su ubicacion (pieza 1 y ubicacion 1); si la condicion se cumple (true) entonces la colocamos en las coordenadas x/y tal (que serian las coordenadas correctas de la pieza en el puzle). Si por el contrario la condicion NO se cumple, mandamos a la pieza a ubicarse en x/y tal (150.... 160) que seria la ubicacion de ejemplo, que tenia originalmente FUERA del puzle.
Practicatelo que funciona ;)
Salutti! |