Comunidad de diseño web y desarrollo en internet online

Intercambiar MC's

Citar            
MensajeEscrito el 13 Nov 2009 09:39 am
Buenas a todo el mundo, me asalta una duda de programación, creo que me viene por saturación, llevo en dos semanas programados 20 minijuegos, y empiezo a no saber ni pensar ya ;)

Si tengo dos MC's (MC01 - MC02), como puedo hacer por código que si el usuario pulsa sobre MC01 y luego pulsa sobre MC02 se intercambien la posición.

En realidad tengo 20 MC's, y quiero que el usuario pueda intercambiarlos entre ellos, pero siempre de dos en dos, como haciendo parejas que intercambian su posición.

¿Se entiende mi duda?

Por Azlinraeh

15 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 13 Nov 2009 09:43 am
Bueno, en principio es un simple swap no?

Cuando detectas el clic sobre el primer mc te guardas su x e y.
Cuando detectas el clic sobre el segundo mc haces lo mismo y luego asignas x's e y's de un mc al otro no?.

Por ur!

256 de clabLevel



 

Barcelona

chrome
Citar            
MensajeEscrito el 13 Nov 2009 11:00 am
El problema es que no se muy bien como aplicar el swap escrito en código AS2. Pero vamos voy a buscar por la web a ver si veo algo en la ayuda de flash.

Gracias ur! :D

Por Azlinraeh

15 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 13 Nov 2009 11:36 am
Solo encuentro información de swapDepths, y no se como almacenar el valor de posición y luego intercambiarlo con el segundo mc que pulse el usuario, solo logro cambiar su profundidad.

¿Alguna idea en código escrito?

Por Azlinraeh

15 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 13 Nov 2009 11:50 am
A ver, supongamos que tienes 2 mc's en el stage, llamados mc1 y mc2:

Código ActionScript :

//Variables auxiliares para almacenar la posición x e y
var auxX:Number;
var auxY:Number;

mc1.onRelease = function(){
   auxX = this._x;
   auxY = this._y;
}
mc2.onRelease = function(){
   mc1._x = this._x;
   mc1._y = this._y;
   this._x=auxX;
   this._y=auxY;
}


Este codigo lo que te hace es que cuando clicas en el mc1 te almacena la posición en las variables auxiliares, y cuando clicas en el mc2 te hace el swap.

Con eso supongo que ya puedes seguir :)

Por ur!

256 de clabLevel



 

Barcelona

chrome
Citar            
MensajeEscrito el 13 Nov 2009 12:54 pm
Eres muy grande ur!, estoy probando con este código que tu me has pasado, pero para aplicarlo a 20 mc's a la vez, a ver lo que me sale. Si veo que no logro nada volveré a postear.

De nuevo mil gracias!!

Por Azlinraeh

15 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 13 Nov 2009 01:00 pm
Este código sólo te funcionará con 2 mc's, y si clicas primero al mc1 y luego al mc2, deberías modificarlo un poco para adaptarlo a los 20 que tienes ;)

Por ur!

256 de clabLevel



 

Barcelona

chrome
Citar            
MensajeEscrito el 13 Nov 2009 01:28 pm
Ya lo he notado!! :lol: estoy volviéndome un poco loco, pero vamos al menos con el código que me has pasado, entiendo algo mas, aunque llevo un rato sin sacar nada en claro :lol:

Pero de nuevo gracias por la atención y la ayuda que me estas prestando ur!

Por Azlinraeh

15 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 15 Nov 2009 04:13 pm
Ur! alguna pista del camino que debo seguir? :shock: Llevo un par de días dándole vueltas y no se por donde cogerlo para los 20 mc's!!

Por Azlinraeh

15 de clabLevel



 

España

chrome
Citar            
MensajeEscrito el 16 Nov 2009 10:03 am
Yo lo que haría seria meter en un array los 20 mc's y con un for asignar-les la función onRelease.

Dentro del onRelease debes mirar si es el primer movieClip que clicas o el segundo (te puedes hacer un par de variables si quieres), y con eso y el trozo de codigo de arriba creo que ya lo tendrías. Una vez se ha clicado el segundo y has hecho el swap reseteas esas dos variables que te has creado.

Por ur!

256 de clabLevel



 

Barcelona

chrome

 

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