Comunidad de diseño web y desarrollo en internet online

desplazamiento de mc

Citar            
MensajeEscrito el 02 Sep 2011 01:15 pm
Hola Foro, quisera pedirles me colaboren con lo siguiente:
tengo 3 objetos A, B y C (asumo que deberían ser movieclips)
entonces necesito moverlos o mas bien DESPLAZARLOS por el escenario de acuerdo a un orden aleatorio de las posibles 6 combinaciones que serian:
1 . A B C
2 . A C B
3. B A C
4. B C A
5. C A B
6. C B A

siempre empezamos en 1. que seria A B C pero luego digamos (aleatoriamente)es la combinación 5. (C A B), entonces como puedo hacer que se ubiquen en esta nueva posición pero que en el escenario se vea como se desplazan (o mezclan), osea q por ejemplo el objeto A (que esta en la primera posicion) se desplace a la 2da posición, que B (q esta al medio) se desplace al primer lugar y que C (q esta último) se desplace al 1er lugar. y asi si se tienen aleatoriamente varios numeros (combinaciones) se vayan como que mezclandose.

Espero haberme hecho entender y agradezco anticipadamente cualqueir ayuda que me puedan dar.

saludos
Rafex

Por rafex

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 04 Sep 2011 05:44 pm
Hola.
Tienes que crear las diferentes combinaciones que necesites utilizar, y en cada una le dices lo que tiene que hacer.

var Tween = mx.transitions.easing.Strong.easeOut

if (QueCombinacion == 1) {
var mueve = new mx.transitions.Tween(Mc1, "_x", Tween, 0, 200, 10);
var mueve = new mx.transitions.Tween(Mc1, "_y", Tween, 0, 200, 10);

var mueve = new mx.transitions.Tween(Mc2, "_x", Tween, 200, 0, 10);
var mueve = new mx.transitions.Tween(Mc2, "_y", Tween, 200, 0, 10);
}

Luego solo es cuestion de que le digas que tipo de transicion quieres utilizar en: Tween

Aqui te pongo diferentes combinaciones:
Back Bounce Elastic Regular Strong None

var Tween = mx.transitions.easing.Back .easeOut
var Tween = mx.transitions.easing.Bounce .easeOut
var Tween = mx.transitions.easing.Strong.easeInOut
var Tween = mx.transitions.easing.None.easeNone
var Tween = mx.transitions.easing.Regular.easeOut
var Tween = mx.transitions.easing.Elastic.easeOut

// easeIn: suavizado al principio de la transición.
// easeOut: suavizado al final de la transición.
// easeInOut: suavizado al principio y al final de la transición.
// easeNone: indica que no se va a utilizar ningún cálculo de suavizado.

Salu2.
Cuae

Por Cuae

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 05 Sep 2011 12:47 pm
Hola Cuae, primero zazias 1000 por responder.
Es la primera vez q veo esa función, asi q haré mi mejor esfuerzo por entenderte. cuando me dice que cree las combinaciones... te refieres a q ponga un IF por cada combinación (como en tu ejemplo?).

Lo q no entiendo de tu ejemplo es q viene a ser Mc1, Mc2, ... es solo el objeto como tal, o es alguna animación? y lo último por favor... como sabria o controlaría en que combinación esta la película, pues como explique se supone q aleatoriamente saldra el número de la combinación, empezando siempre en la 1. pero luego puede ser 5 -2-1-5-4-2

otra vez muchas gracias por tu valioso aporte, y espero que puedas aclararme las dudas

saludos

Rafex

Por rafex

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 07 Sep 2011 10:11 am
Hola.
Te lo pongo mas fácil.

Crea 3 MC -Movie-Clips- McA McB McC y los pones en la posicion que quieras, no importa.
Pon dentro de cada uno, una foto de 100x100 en posicion X=0 Y=0
El random saca el numero de combinacion de 1 a 6 y ejecuta la funcion Combi1-o-2-o-3-o-4-o-5-o-6
Ejecutas la peli.
En este caso utilizo un timer en lugar del random, eso tu ves como lo haces.

//1º Dispara un timer a 1sg. y mueve la primera combinacion
setTimeout(Combi1, 1000);
var Tween = mx.transitions.easing.Elastic.easeOut;
function Combi1() {
var mueve1 = new mx.transitions.Tween(McA, "_x", Tween, 50, 50, 20);
var mueve1 = new mx.transitions.Tween(McA, "_y", Tween, 200, 50, 20);
//
var mueve1 = new mx.transitions.Tween(McB, "_x", Tween, 200, 150, 20);
var mueve1 = new mx.transitions.Tween(McB, "_y", Tween, 200, 50, 20);
//
var mueve1 = new mx.transitions.Tween(McC, "_x", Tween, 350, 250, 20);
var mueve1 = new mx.transitions.Tween(McC, "_y", Tween, 200, 50, 20);
//2º Dispara un timer a 2sg. y mueve la segunda combinacion
setTimeout(Combi2, 2000);
}
function Combi2() {
var mueve2 = new mx.transitions.Tween(McA, "_x", Tween, 50, 100, 20);
var mueve2 = new mx.transitions.Tween(McA, "_y", Tween, 50, 350, 20);
//
var mueve2 = new mx.transitions.Tween(McB, "_x", Tween, 150, 250, 20);
var mueve2 = new mx.transitions.Tween(McB, "_y", Tween, 50, 350, 20);
//
var mueve2 = new mx.transitions.Tween(McC, "_x", Tween, 250, 400, 20);
var mueve2 = new mx.transitions.Tween(McC, "_y", Tween, 50, 350, 20);
}
// Ahora es cuestion de que le digas a cada combinacion las posiciones que tiene que tener cada MC

Es entretenido pero muy fácil
Aquí te pongo una url para que descarges el ejemplo
http://www.flashxmlonline.com/ejemplos/muevemcs.rar

Salu2
Cuae

Por Cuae

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 07 Sep 2011 12:11 pm
Muchs gracias, ya mismo lo pongo en practica y te comento como me fue.
gracias de verdd no sabes como me estas ayudando
Rafael

Por rafex

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 07 Sep 2011 12:41 pm
Descarga el ejemplo y te será mas fácil.
http://www.flashxmlonline.com/ejemplos/muevemcs.rar

Cuae

Por Cuae

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 08 Sep 2011 12:10 pm
Estimado, comentarte que ya la tengo clara jejeje
quisiera pedirte por favor me colabores con esto que es una "antesala" a lo que quiero hacer, pues bien resulta que mediante un boton elijo un personaje, entonces llamo a un Mc que muestra al personaje y da una explicacion sobre el mismo, luego si le doy clic a una flecha para continuar, deberian aparecerme los vasitos dnde aleatoriamente se elije uno el mismo que se levanta. la idea de esto es que despues q se levante el vasito aparezca el personaje debajo el vasito y este vuelva su lugar simulando que esta dentro, para finalmente empezar con los movimientos que tan acertadamente me indicaste.
logro hacer el proceso hasta q se levanta el vasito, pero no encuentro la forma que POSTERIOR a eso aparezca el personaje y el vaso vuelva a su lugar.
pense q poniendo las instrucciiones scuencialmente por ejemplo:
levantarvaso();
mostrarpersonaje();
cerrarvaso();

deberian ejecutarse una despues de la otra, pero.... no es asi... todo aparece al mismo tiempo. por favor dame una manito en esto ... una vez mas.
te paso el codigo que tengo hasta el momento.

//ocultando personaje
persoEntero1._visible=false;
btnContinuar._visible=false;

//para seleccionar al personajes
perso1.onRelease=function(){
persoEntero1._visible= true; //muestro al personaje
btnContinuar._visible=true; //visualizo el boton para continuar
}

//cuando le doy clic al boton continuar
btnContinuar.onRelease=function(){
persoEntero1._visible= false; //oculto al personaje
Continuar._visible=false; //oculto el boton de continuar
encapsula(); //llamo a la funcion que levanta los vasitos
}

perso2.onRelease=function(){
trace("personaje2");
}
perso3.onRelease=function(){
trace("personaje3");
}


function encapsula(){
//las posiciones de los vasos
vasoA._x=500;
vasoA._y=550;
vasoB._x=700;
vasoB._y=550;
vasoC._x=900;
vasoC._y=550;
//elijo un aleatorio entre 1 y 3 para saber q vasito se levantara
aleatorio = 1 + Math.round(Math.random()*3);
//trace(aleatorio);
var Tween = mx.transitions.easing.Strong.easeInOut;

if(aleatorio==1){
var mueve1 = new mx.transitions.Tween(vasoA, "_x", Tween, 500, 500, 20);
var mueve1 = new mx.transitions.Tween(vasoA, "_y", Tween, 550, 350, 20);
//hago visible al personaje q debe estar debajo el vaso que se levanto
persoEntero4._visible=true;
//la idea es mostrar al personaje en alpha de 0 a 100
for (var i:Number=0;i<=100;i++){
persoEntero4._alpha= i;
trace("aaa");}
}

if(aleatorio==2){
var mueve1 = new mx.transitions.Tween(vasoB, "_x", Tween, 700, 700, 20);
var mueve1 = new mx.transitions.Tween(vasoB, "_y", Tween, 550, 350, 20);
//persoEntero4._visible=true;
for (var i:Number=0;i<=100;i++){
persoEntero4._alpha= i;
}
}
if(aleatorio>=3){
var mueve1 = new mx.transitions.Tween(vasoC, "_x", Tween, 900, 900, 20);
var mueve1 = new mx.transitions.Tween(vasoC, "_y", Tween, 550, 350, 20);
//persoEntero4._visible=true;
for (var i:Number=0;i<=100;i++){
persoEntero4._alpha= i;
}
}

}


/*
//aqui empezaria la mezcla con las diferentes combinaciones

pues bien es lo que tengo, y me tranque en hacer como hacer aparecer al personaje despues de q el vasito se levante y volver a poner al vaso en su lugar.

ojala y puedas colaborarme
Salu2

Rafael

Por rafex

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 08 Sep 2011 02:15 pm
Hola Rafa.
OK me convenciste, pero pasame a mi correo el .fla para no tener que hacer mas trabajo de la cuenta o al final te lo estoy hacendo todo.
[email protected]

Salu2
Cuae

Por Cuae

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 09 Sep 2011 08:35 am
Bueno Rafa.
Veo que me vas a complicar la vida y de esa forma no aprendes.

Aquí te pongo la solución y solo tienes que ver como funciona.
Es una función muy buena para lo que necesitas.

La transición al finalizar, automáticamente dispara esta nueva función.

// Fíjate lo que dice la funcion: onMotionStopped
// Que cuando finalice ........ lo que queramos hacer.

mueve2.onMotionStopped = function() {
// Y aqui dentro le pones lo que quieres hacer.
// Un play() a algo.
// Y en tu caso creo que esto es lo que necesitas
// Disparar otro objeto para que se mueva
var MueveLoQueSea = new mx.transitions.Tween(XXXXXX, "_x", Tween, 900, 900, 20);
var MueveLoQueSea = new mx.transitions.Tween(XXXXXX, "_y", Tween, 550, 350, 20);
};

De esta forma cuando se cierra o abre el vaso etc. hace lo que le digas.

SI QUE TIENES QUE TENER CUIDADO con el nombre que le das a la transicion.
Estas utilizando para todo: mueve1 y puedes seguir haciendolo, no pasa nada.
PERO para utilizar este onMotionStopped tienes que darle otro nombre para que lo reconozca cuando finalice o de lo contrario, el primer mueve1 que finalice, dispara el onMotionStopped

De manera que al que te interese que sea el que de la orden de que cuando finalice dispare el onMotionStopped , le pones otro nombre, por ejemplo -- var Termina --o lo que quieras

onMotionStopped se dipara cuando finaliza Termina

De esta forma puedes hacer que cuando termine uno, dispare otro y que el otro dispare al otro etc. o varios a la vez.


Haz las pruebas en un nuevo fla y una vez lo entiendas, lo haces en tu peli.

OK

Por Cuae

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 09 Sep 2011 08:55 am
Otro detalle.

Cuando se levanta el vaso, para que aparezca el personaje, te pongo otro ejemplo:

Hemos utlizado el desplazamiento en X Y:
var mueve1 = new mx.transitions.Tween(vasoC, "_x", Tween, 900, 900, 20);
var mueve1 = new mx.transitions.Tween(vasoC, "_y", Tween, 550, 350, 20);

Ahora ponemos otro nuevo: alpha
var Sal1= new mx.transitions.Tween(PersonajeXXXXXX, "_alpha", Tween, 0, 100, 30);

Tienes que jugar con los tiempos.
El tiempo esta en funcion del tamaño del objeto a mover e incluso de la resolución de pantalla si el objeto ocupa toda la pantalla.
En tu caso son tamaños pequeños y no te va a dar problemas.

Cambia los tiempos de 20 a 50 a 10 a 5 y veras lo que ocurre.
Aqui va el tiempo: 20);

Creo que lo mas facil para ti es poner el personaje debajo del vaso y al levantarse ya esta a la vista.

Se puede hacer de muchas formas, pero despacio, que La Sagrada Familia de Barcelona, hace 200 años que se empezo y se calcula que se termine en el 2026.

Ya tienes entretenimiento, jejeje.

Salu2

Cuae

Por Cuae

29 de clabLevel



 

msie8
Citar            
MensajeEscrito el 12 Sep 2011 12:12 pm
Estimado Cuae
creo q ahora entiendo como se puede sentir estar en el desierto y encontrar un oasis jejeje, en mi "ignorancia" encontre a una persona que no me la dio en bandeja pero si me dijo como construirla. muchas zazias, no sabes cuánto me has ayudado, como te dije estoy con mis primeras armas en flash y pues... me esta costando pero con tu orientación almenos tuve de donde agarrarme y aunque estoy seguro que mi codigo no es nada depurado pues... ya hace lo q buscaba; me quedan n dudas pero de a poco noo??

una vez mas gracias 1000

Rafa

Por rafex

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 12 Sep 2011 03:37 pm
MUY BIEN Rafa. :D :D :D :D
Me alegran tus comentarios.

Aquí me tienes para cualquier duda que tengas, haré todo lo posible por orientarte y ayudarte.

Salu2

Cuae

Por Cuae

29 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Sep 2011 12:34 pm
Esimado Cuae, una inquietud.... es posible agregar a una transición del tipo:

var Tween = mx.transitions.easing.Strong.easeInOut;
var mueve1 = new mx.transitions.Tween(vasoA, "_x", Tween, 500, 500, 20);
var mueve1 = new mx.transitions.Tween(vasoA, "_y", Tween, 550, 350, 20);

una "guía" ??, es decir con esto...el objeto va de un lugar a otro pero "en linea recta" se puede hacer que vaya digamos en una curva? existe alguna manera?
te lo pregunto pq los vasitos que tengo ya se mezclan pero se ve ...muy "plano" cunado se intercalan y si fuera posible q al hacerlo uno vaya por arriba y otro por debajo en forma de curva seria mas real.

bueno... espero tu comentarios y agradezco tu lectura y colaboración
saludos
Rafael

Por rafex

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 15 Sep 2011 07:42 pm
Hola Rafa.

Lo que preguntas de la curva, si se puede hacer, pero te vas a complicar la vida bastante con los conocimientos que tienes de AS.

Sigue desarrollando el Flash y ese detalle dejalo para el final.

Una vez lo des por finalizado, me lo pasas, como hiciste anteriormente y veo como ayudarte.

Salu2

Cuae

Por Cuae

29 de clabLevel



 

msie8

 

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