Foros del Web » Creando para Internet » Flash y Actionscript »

Como ir aleatoriamente a un frame específico? (código)

Estas en el tema de Como ir aleatoriamente a un frame específico? (código) en el foro de Flash y Actionscript en Foros del Web. Hola! he estado varios días buscando una solución para esto pero no encuentro la respuesta (el código) necesaria para lo que pretendo. El tema es ...
  #1 (permalink)  
Antiguo 10/02/2011, 05:22
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Como ir aleatoriamente a un frame específico? (código)

Hola! he estado varios días buscando una solución para esto pero no encuentro la respuesta (el código) necesaria para lo que pretendo.
El tema es el siguiente, yo necesito ir (mediante un botón) aleatoriamente a ciertos frames. Y paso a explicar exactamente como es mi proyecto para q se entienda mejor:

Estoy trabajando en una animación interactiva de fútbol ([URL="http://megaswf.com/file/1006574.swf"]http://megaswf.com/file/1006574.swf[/URL]) y la idea es que el usuario vaya tomando decisiones mientras que el partido transcurre, por ejemplo: un personaje de la animación tiene la pelota y debe decidir si pasarsela al personaje (jugador de fútbol compañero) nº2, al nº3 o al nº4. Entonces cada jugador (botón) a elegir te llevaría aleatoriamente a un frame específico (o a un movieclip específico) donde empezaría otra nueva animación.
Supongamos que yo para el jugador nº2 hago 3 animaciones diferentes (3 movieclips diferentes), en donde en una oportuniodad desperdicia el pase por estar distraído (y ahi perdés y debes reiniciar la partida), en otra lo deja pasar y se le va afuera (también perdés y debes reiniciar la partida) y en otra agarra el pase y se queda con el balón para así poder continuar con la animación y llegar a otra instancia donde ahora el jugador nº2 (recordamos que es el personaje de la animación) tiene el balón y ahora debe pasarsela a otra tanda de compañeros en la canhca volviendo así a hacer algo igual a lo anterior.

Entonces, se entiende lo que quiero?
Sucede que he encontrado el código de como ir a un frame aleatorio, peor no he podido encontrar la manera de ir a una serie de frames (o movieclips) aleatorios específicos.

Desde ya, mil gracias al q se tome el trabnajo de responder, porque esto me está quemando la cabeza!!! ^_^

saludos!, fabio.
  #2 (permalink)  
Antiguo 10/02/2011, 07:30
Avatar de golem44  
Fecha de Ingreso: enero-2009
Ubicación: barcelona
Mensajes: 483
Antigüedad: 15 años, 3 meses
Puntos: 22
Respuesta: Como ir aleatoriamente a un frame específico? (código)

No se si acabo de entender la pregunta, pero creo que lo puedes solucionar con if:
if (frame_aleatorio==1){
//haz esto
}else if(frame_aleatorio==2){
//haz lo otro
}else{
//haz lo de más allá
}

no postees 3 veces lo mismo!

espero ayudar,saludos
  #3 (permalink)  
Antiguo 10/02/2011, 07:52
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Respuesta: Como ir aleatoriamente a un frame específico? (código)

Gracias, voy a intentar con este código... pero no entiendo mucho.
Ahí donde ponés "haz esto", debo poner "gotoAndPlay"?

Vamos a explicarlo con ejemplos mejor:

1-estoy en el frame 1 en Stop.
2-tengo 3 botones para elegir (A, B y C).
3-el boton A me puede llevar al fotograma 2, 3 o 4 (dependiendo de lo que elija aleatoriamente)
el boton B me puede llevar al fotograma 4, 5 o 6 (idem)
el boton C me puede llevar al fotograma 7, 8 o 9 (idem)

Entonces lo que yo necesito es un código para que al apretar algún boton logre que elija aleatoriamente entre 3 frames diferentes (pero sólo los que yo especifique).

PD: tengo el flash 8


Espero que así se entienda mejor.
Muchísimas gracias por responder y mil perdones por postear 3 veces lo mismo, fué sin querer, intenté borrar los otros pero no supe como hacerlo.

saludos!

Última edición por darktista; 10/02/2011 a las 07:54 Razón: corrección
  #4 (permalink)  
Antiguo 10/02/2011, 09:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como ir aleatoriamente a un frame específico? (código)

estoy utilizando este código:

on (release) {
rnd = random (13)
gotoAndPlay(rnd);

}


pero lo que hace es ir a un fotograma random entre todos los fotogramas(13) y yo quiero que vaya por ejemplo del 5 al 13
  #5 (permalink)  
Antiguo 10/02/2011, 16:39
Avatar de golem44  
Fecha de Ingreso: enero-2009
Ubicación: barcelona
Mensajes: 483
Antigüedad: 15 años, 3 meses
Puntos: 22
Respuesta: Como ir aleatoriamente a un frame específico? (código)

Cita:
function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random()*(max-min+1))+min;
return randomNum;
}
for (var i = 1; i<100; i++) {
var n:Number = randRange(5, 8);
trace("escena"+n);
}
en el randRange le dices los numeros aleatorios que quieres.

espero ayudar, saludos.
  #6 (permalink)  
Antiguo 11/02/2011, 06:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como ir aleatoriamente a un frame específico? (código)

Cita:
Iniciado por golem44 Ver Mensaje
en el randRange le dices los numeros aleatorios que quieres.

espero ayudar, saludos.
Lo que pasa cuando pongo este código en el botón despues de on (release) { y pruebo la película, al hacer click en el botón no me lleva a ningún lado, si no que me lanza unos números aleatorios en la ventana de salida (ver imagen).


¿Que es lo que tengo que cambiar?

Muchas gracias por responderme!
  #7 (permalink)  
Antiguo 12/02/2011, 14:33
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como ir aleatoriamente a un frame específico? (código)

Cita:
Iniciado por golem44 Ver Mensaje
No se si acabo de entender la pregunta, pero creo que lo puedes solucionar con if:
if (frame_aleatorio==1){
//haz esto
}else if(frame_aleatorio==2){
//haz lo otro
}else{
//haz lo de más allá
}

no postees 3 veces lo mismo!

espero ayudar,saludos
.................................................. ............................

on (release) {
if (randomFrame==1){
gotoAndPlay(2);

}else if(randomFrame==2){
gotoAndPlay(3);

}else{
gotoAndPlay(4);

}}



Bueno, creo que he encontrado una solución, gracias a este código, aunque tuve que cambairle algunas cositas, porque extrañamente, con este código así como está (poniendolo en el botón) me llevaba sólo al fotograma 4!, no se porque...


Recordemos que lo que yo queria era ir a ciertos fotogramas específicos -los números que vemos entre paréntesis-


Así que primero en la timeline en una capa de acciones puse esto:

var randomFrame = Math.floor(Math.random()*_totalframes+1);


y luego en el botón puse esto:

on (release) {
if (randomFrame==1){
gotoAndPlay(2);

}else if(randomFrame==2){
gotoAndPlay(3);

}else if(randomFrame==3){
gotoAndPlay(2);

}else if(randomFrame==4){
gotoAndPlay(3);

}else if(randomFrame==5){
gotoAndPlay(2);

}else if(randomFrame==6){
gotoAndPlay(3);

}else if(randomFrame==7){
gotoAndPlay(2);

}else if(randomFrame==8){
gotoAndPlay(3);

}else{
gotoAndPlay(4);

}}


.................................................. ....................................

Como verán, agregué mas variantes para los fotogramas 2 y 3 así se equilibra con el 4, porque sin hacer esto, casi siempre iba al fotograma 4 al hacer click en el botón...(aunque no siempre)

en fin, gracias por la ayuda, creo que con esto ya está...
Espero que le sirva a quien quiera hacer lo mismo!!!
  #8 (permalink)  
Antiguo 14/02/2011, 14:24
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como ir aleatoriamente a un frame específico? (código)

Y FINALMENTE, EL CÓDIGO FINAL Y DEFINITIVO
para lograr lo que quería (gracias a golem44).
El codigo de mi msj anterior tmb sirve, pero creo que este es mucho mas prolijo y eficaz.

.................................................. ......................................

1) etiquetar cada fotograma con los nombres de escena1, escena2, escena3 y así sucesivamente.

2) en el botón poner este código:

on (release) {function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random()*(max-min+1))+min;
return randomNum;
}
for (var i = 1; i<100; i++) {
var n:Number = randRange(1, 4);
gotoAndPlay("escena"+n);
}}


(en randRange ponés el rango de fotogramas específicos que querés)

Y listo! ^_^
  #9 (permalink)  
Antiguo 08/04/2011, 04:43
 
Fecha de Ingreso: abril-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Respuesta: Como ir aleatoriamente a un frame específico? (código)

hola, yo estoy buscando lo mismo, pero para actionscript 3, por tanto no puedo meterle el codigo al boton, he de hacerlo en la linea de tiempo. Alguien podria decirme como adaptar este código a AS3?
Muchas gracias de antemano.


Ya lo encontré. Lo dejo en el foro por si a alguien pueda interesar.

boton1.addEventListener(MouseEvent.MOUSE_UP, comando11);

function comando11(event:MouseEvent) :void {
var xValor:Number = randomNumber(300, 317);
trace(xValor); //Con esto vemos que valor genero
gotoAndPlay(xValor); // Y ya solo pasamos el valor guardado
}

function randomNumber(low:Number, high:Number):Number{
return Math.floor(Math.random() * (1+high-low)) + low;
}

Última edición por gorky60; 09/04/2011 a las 03:13

Etiquetas: actionscript, animacion, elegir, especifico, frame, ir, random, aleatoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:04.