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

For complicado

Estas en el tema de For complicado en el foro de Flash y Actionscript en Foros del Web. Hola, tengo q hacer un for muy complejo, el archivo flash consiste de la siguiente manera. Tengo una funcion de numeracion que consiste en 4 ...
  #1 (permalink)  
Antiguo 24/06/2006, 20:21
 
Fecha de Ingreso: febrero-2006
Mensajes: 92
Antigüedad: 11 años, 9 meses
Puntos: 0
For complicado

Hola, tengo q hacer un for muy complejo, el archivo flash consiste de la siguiente manera. Tengo una funcion de numeracion que consiste en 4 numeris steppers, organizados de la siguiente forma:

"Desde0" "Hasta0"

"Desde1" "Hasta1"

cada numeric stepper tiene como nombre de instancia esos valores. Lo que quiero es por ejemplo si al desde0 le asigno 1, al hasta0, 50, al desde1 51 y al hasta1 100, quiero q me largue en un textarea ,llamado txt como nombre de instancia", la numeracion correspondiente generada por un for, lo primero seria poner:

for (i=desde0.value,i<=hasta0.value,i++) {
txt.text = txt.text+i+"\n"
}

for (i=desde1.value,i<=hasta1.value,i++) {
txt.text = txt.text+i+"\n"
}

Pero lo que quiero lograr yo es que salga de esta forma:

1
51
2
52
3
53
...
50
100

Es decir que tome un valor de una numeracion, y luego el de otra, alternandolos.

De la forma convencional quedaria:

1
2
3
...
50
51
52
54
...
100
  #2 (permalink)  
Antiguo 25/06/2006, 06:47
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 11 años, 5 meses
Puntos: 0
Yo te pongo el código en java:
int[] numeros = new int[100];
for (int i = 0; i < 50; i += 2) {
int[i] = i;
int[i+1] = i + 50;
}

Lo he puesto en un array, ya que no se donde quieres meter la lista de numeros. En java si quieres meterlo en un txt, tendrias que hacer un outputstream por ejemplo:

import java.io.*;

public class crearArchivo
{

public crearArchivo (String archivo) throws IOException {
File outputFile = new File(archivo);
FileWriter out = new FileWriter(outputFile);

for (int i = 0; i < 50; i ++) {
out.write(i);
out.write(i+50);
}

out.close();
}
}
  #3 (permalink)  
Antiguo 25/06/2006, 10:41
 
Fecha de Ingreso: febrero-2006
Mensajes: 92
Antigüedad: 11 años, 9 meses
Puntos: 0
lo q pasa es q solo puse un ejemplo q va del 1 al 50 y del 51 al 100, pero pueden ir otros numeros
  #4 (permalink)  
Antiguo 25/06/2006, 11:15
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 11 años, 5 meses
Puntos: 0
El ejemplo primero está mal, el de abajo bien. El de arriba sería:
int[] numeros = new int[100];
for (int i = 0, int j = 0; i < 50; i += 2, j++) {
numeros[i] = j;
numeros[i+1] = i + 50;
}

Última edición por darkxer0x; 25/06/2006 a las 13:03
  #5 (permalink)  
Antiguo 25/06/2006, 12:56
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 11 años, 11 meses
Puntos: 5
Buenas, podrías hacer algo así:

Código:
/**
Modificar estas dos líneas según corresponda
*/
var rango = 50;
var arrLimiteInferior = [0,50,100];

var i;
var j;
var test;
var limiteInferior;

for(i=0;i<rango;i++) {
	for (j=0;j<arrLimiteInferior.length;j++) {
		limiteInferior = arrLimiteInferior[j];
		test = limiteInferior + i;
		trace(test);
	}
}
Las dos variables que tendrías que modificar si fueran otros números serían rango y arrLimiteInferior. La primera controla cuantas vueltas da el loop de más afuera (o sea, cuántos valores tendrá cada grupo). La segunda, es un array donde cada índice guarda el valor inferior de cada grupo. En el ejemplo, va a haber 3 grupos, que comienzan en 0, 50 y 100 y van, respectivamente, hasta el 49, 99 y 149. Si por ejemplo, querés que vayan del 1-50,51-100,101-150, entonces pondrías:

Código:
arrLimiteInferior = [1,51,101];
Si quisieras tener cuatro grupos, cada uno con 30 valores, empezando de 1:

Código:
rango = 30;
arrLimiteInferior = [1,31,61,91];
Suerte
Califa
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 16:18.