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

Como hacer esto:

Estas en el tema de Como hacer esto: en el foro de Flash y Actionscript en Foros del Web. Hola a todos, ya puse esta cuestión hace unos dias y nadie me contesto. Igual no me explique bien. Replay: Quiero hacer que salgan unas ...
  #1 (permalink)  
Antiguo 16/11/2004, 14:00
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 5 meses
Puntos: 0
Como hacer esto:

Hola a todos, ya puse esta cuestión hace unos dias y nadie me contesto.

Igual no me explique bien.


Replay:

Quiero hacer que salgan unas letras aleatoriamente (que tengo en un array).
Se tienen que ir cambiando hasta que sean igual a la que hay en otro array en la misma posicion.

La secuencia seria esta:
Array1= H,O,L,A
Array2= L,O,A,H

Primero salen 4 letras aleatoriamente

Sec. 1: A H J A (coincide la cuarta), la 1,2,3 se deben de volver a poner.
Sec. 2: F O J A (coincide la dos), la 1,3 se deben de volver a poner.
Sec. 3: H O L A (ya esta)

Esta claro que el número de secuencias dependera de las provabilidades de que se hacierte la letra, (no es a piñon).

Text_array = new Array();
Text_array = ["L", "O", "A", "H"];
Letr_array = new Array();
Letr_array = ["H", "O", "L", "A"];

for (a=0; a<=(Text_array.length-1); a++) {
out.duplicateMovieClip("out"+a, a, out);
this["out"+a]._x = a*45;
this["out"+a].output.text = Letr_array [Math.round(Math.random()*(8-0)+0)];
}


Esto me pone las letras aleatoriamente. Funciona bien.

La parte que tiene que comprobar, he conseguido hacer que funcione, pero veo directamente el texto bien, no veo el efecto de las letras cambiando, no se si me explico.

for (b=0; b<=20; b++) {
for (a=0; a<=(Text_array.length-1); a++) {
if (this["out"+a].output.text <> Text_array [a]) {
this["out"+a].output.removeMovieClip;
out.duplicateMovieClip("out"+a, a, out);
this["out"+a]._x = a*45;
this["out"+a].output.text = Letr_array [Math.round(Math.random()*(8-0)+0)];
}
}
}


El for es una prueba, para ver que lo hacía.

Espero que me podais ayudar.
  #2 (permalink)  
Antiguo 16/11/2004, 14:22
 
Fecha de Ingreso: julio-2004
Mensajes: 127
Antigüedad: 19 años, 9 meses
Puntos: 1
Eso te ocurre porque los bucles for,while... no te van a dar salida en pantalla hasta que se ejecuten.

Prueba esto:

_root.onEnterFrame=function(){
if(!a){a=b=0}
if(b<=20){
if(a<=(Text_array.length-1)){
if (this["out"+a].output.text <> Text_array [a]) {
this["out"+a].output.removeMovieClip;
out.duplicateMovieClip("out"+a, a, out);
this["out"+a]._x = a*45;
this["out"+a].output.text = Letr_array [Math.round(Math.random()*(8-0)+0)];
}
a++
}else{
a=0;b++
}
}else{
delete this.onEnterFrame
}
}



pssss.... lo he hecho a ojo a si que pruébalo y me cuentas.

Un saludo.
__________________
ArteCastellano.com Pintura y fotografia española.
LlanosLerma.com - Galeria de pintura de Llanos Lerma. Vida y obra
Madpixel Games - A jugar un rato
  #3 (permalink)  
Antiguo 16/11/2004, 14:57
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 5 meses
Puntos: 0
Ahora lo que hace es que me elimina los mc secuencialmente.

En principio, la parte que controla si coincide debería de ser así:

for (b=0; b<=20; b++) {
for (a=0; a<=(Text_array.length-1); a++) {
if (this["out"+a].output.text <> Text_array [a]) {
this["out"+a].output.text = Letr_array [Math.round(Math.random()*(8-0)+0)];
}
}
}


El remove y duplicate lo había puesto para hacer pruebas. solo tiene que cambiar el texto.

Si lo dejo así, no funciona.

_root.onEnterFrame=function(){
if(!a){a=b=0}
if(b<=20){
if(a<=(Text_array.length-1)){
if (this["out"+a].output.text <> Text_array [a]) {
this["out"+a].output.text = Letr_array [Math.round(Math.random()*(8-0)+0)];
}
a++
}else{
a=0;b++
}
}else{
delete this.onEnterFrame
}
}


Solo lo ejecuta una vez. El _root.onEnterFrame=function(){}. Hace que lo ejecute hasta que se dejen de cumpliar las condiciones?
  #4 (permalink)  
Antiguo 16/11/2004, 15:14
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 5 meses
Puntos: 0
Estos enlaces, tienen el ejemplo

Ejemplo sin los Remove:

http://usuarios2.arsystel.com/jordan/never2.html


Ejemplo con los Remove:

http://usuarios2.arsystel.com/jordan/never3.html

Cuando tengas la página abierta, actualiza ( F5 ), para verlo otra vez.
  #5 (permalink)  
Antiguo 17/11/2004, 12:06
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 21 años, 5 meses
Puntos: 0
Ya esta !!!

El el MC,

Primer fotograma:
Text_array = new Array();
Text_array = ["N", "E", "V", "E", "R", "C", "O", "M", "E"];
Letr_array = new Array();
Letr_array = ["E", "N", "E", "C", "V", "R", "E", "O", "M", "K", "S", "T", "?", "Q", "W", "Y", "Z", "X", "1" , "2", "3", "4", "5", "6", "7", "8", "9", "0"];
lon=Letr_array.length;
for (a=0; a<=(Text_array.length-1); a++) {
if (this["out"+a].output.text<>Text_array[a]) {
out.duplicateMovieClip("out"+a, a, out);
this["out"+a]._x = a*45;
this["out"+a].output.text = Letr_array[Math.round(Math.random()*(lon-0)+0)];
}
}


Segundo fotograma

gotoAndPlay(1);


Vista:

http://usuarios2.arsystel.com/jordan/never2.html
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 12:06.