Comunidad de diseño web y desarrollo en internet online

Procesos paralelos

Citar            
MensajeEscrito el 11 Abr 2009 12:44 pm
Buenas, mi nombre es Jesús Calderón y acabo de entrar en la comunidad hace escasos minutos.
Asi que un saludo a todos, y espero poder compartir mi experiencia en Flash3 con todos vosotros y aprender también de lo mucho que aportáis. :wink:

Bien, quería consultaros algo... ¿cómo puedo ejecitar procesos paralelos con ActionScript 3?
Me explico... por ejemplo estoy animando un circulo por el escenario y cuando haga click con el ratón encima de él quiero que cambie el sentido de su movimiento, por ejemplo. El problema que tengo es que hasta que la bola no termina de hacer su recorrido (fin de la función) no comienza a ejecutar la función asociada a su evento click (cambio de sentido).

Espero haberme explicado y que podáis ayudarme.

Un saludo.

Por jesusmmago

16 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Abr 2009 09:28 pm
Hola
no creo que te refieras a procesos paralelos porque eso implicaria que quieres que el circulo se mueva en dos direcciones simultaneas :S

Creo que la funcion que utilizas para mover tu circulo la estas llamando desde un ONENTERFRAME y siguiendo tu logica lo que quieres hacer es borrar o reemplazarla con otra que movera el circulo de manera distinta , no estoy en mi computadora asi que te pongo mas o menos el codigo para hacerlo:

Código :

circulo.addListener(MouseEvent.CLICK, cambiarFuncionDeMovimiento);
addListener(Event.ENTERFRAME, moverCirculo1);
function moverCirculo1(e:Event){
        circulo.x += 10;
}
function moverCirculo2(e:Event){
        circulo.x -= 10;
}

function cambiarFuncionDeMovimiento(e:Event){
        removeListener(Event.ENTERFRAME, moverCirculo1)
        addListener(Event.ENTERFRAME, moverCirculo2);
}

Por paranoio

75 de clabLevel



 

Mexico

firefox
Citar            
MensajeEscrito el 11 Abr 2009 11:23 pm
Hummm ok ok!
El ejemplo que puse realmente no era exactamente lo que quería hacer. En realidad era mover de una cierta forma objetos (como círculos, por ejemplo) que se iban creando a lo largo del tiempo y que se podían destruir al clickear sobre ellos. Y esto sí, creo yo, se va pareciendo más a procesos paralelos.
Y al ver en tu respuesta el evento ONENTERFRAME se me ha encendido la bombilla :D De forma que ya sabría afrontar el problema que tengo entre manos.

Muchas gracias :wink:

Por jesusmmago

16 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Abr 2009 02:40 am
Para ahorrarte un poco de codigo en el movimiento de los objetos puedes usar Tweener (buscalo ejemplos en google) y para destruir un objeto lo que necesitas es borrar tu DisplayObject en tu caso el circulo usando el metodo removeChild(instanciaCirculo) ademas necesitas definir en cada uno de tus circulos un listener de CLICK que ejecute el removeChild.
saludos..

Por paranoio

75 de clabLevel



 

Mexico

firefox

 

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