Comunidad de diseño web y desarrollo en internet online

PROBLEMA CON ARRAYS BIDIMENSIONALES Y FLUJO DE DATOS

Citar            
MensajeEscrito el 01 Mar 2007 12:16 pm
x favor, a ver si alguien puede solucionarme el problema. trataré de explicarlo
es para actionscript de flash.
lo uso para sacar por pantalla datos de un BD mediante asp y tengo problemas con las matrices bidimensionales y con el flujo del código. Quiero controlar el flujo como en C (lo primero es q paro la película y ejecuto el código), pero no me es posible

2 problemas:

- Arrays bidimensionales. No me funciona

var barcos:Array = new Array(new Array(), new Array());

for (i = 0; i < parseInt(datos.totalbarcos); i++) {
barcos[i][0] = 0;
barcos[i][1] = 1;
barcos[i][2] = 2;
barcos[i][3] = 3;
barcos[i][4] = 4;
barcos[i][5] = 5;
barcos[i][6] = 6;
barcos[i][7] = 7;

trace(barcos[i][0]);
trace(barcos[i][1]);
trace(barcos[i][2]);
trace(barcos[i][3]);
trace(barcos[i][4]);
trace(barcos[i][5]);
trace(barcos[i][6]);
trace(barcos[i][7]);
}

sólo me llena las 2 primeras filas del array (la fila 0 y la 1) pero de la 2 a la última todo (undefined)
no sé qué hago mal.


- No sé muy bien cómo funciona el flash, pero el tema es q el flujo de las sentencias no es como en C.
tengo una función funcion_general() con código y lo q me pasa es q me sale el mensaje "termina programa" antes de q se ejecute la función funcion_general() entera.



trace("empieza programa");
funcion_general();
trace("termina programa");


¿x q pasa esto? ¿es diferente a un flujo normal, no?

gracias

Por dark_airash

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Mar 2007 03:04 pm
var barcos:Array = new Array(new Array(), new Array());

Ahí le estás indicando que tienes un array de DOS elementos, los cuales, cada uno es otro array, eso NO es una matriz bidimensional.

Sería algo como

Código :

var barcos:Array = new Array();

for (i = 0; i < parseInt(datos.totalbarcos); i++) {
barcos[i] = new Array();
barcos[i][0] = 0;
barcos[i][1] = 1;
barcos[i][2] = 2;
barcos[i][3] = 3;
barcos[i][4] = 4;
barcos[i][5] = 5;
barcos[i][6] = 6;
barcos[i][7] = 7;

trace(barcos[i][0]);
trace(barcos[i][1]);
trace(barcos[i][2]);
trace(barcos[i][3]);
trace(barcos[i][4]);
trace(barcos[i][5]);
trace(barcos[i][6]);
trace(barcos[i][7]);
}

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 01 Mar 2007 06:11 pm
pues eso sí q me funciona.
ahora sólo me falta hacer lo otro.



lo q pasa es q el código en actionscript no se me ejecuta secuencialmente (¿es normal?)
y yo quiero llamar a una función repetidamente, pero en vez de esperar a q se termine una y empezar la siguiente, se me empiezan a ejecutar todas seguidas.

creo q es porque el actionscript es un lenguaje concurrente. hay alguna forma d q sea secuencial¿?

me pueden ayudar?

gracias

Por dark_airash

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Mar 2007 07:32 pm
ActionScript es secuencial (o imperativo) en tanto en lo que cualquier lenguaje se restringe a OOP. Me refiero, a que :

Código :


function funcionSaludos() {
trace("¿Qué tal?");
};

trace("Hola");
funcionSaludos();
trace("Adios");

Devuelve como output
Hola
¿Qué tal?
Adios


algo como

Código :


function funcionSaludos() {

_root.createEmptyMovieClip("vacio",666);
_root.vacio.loadMovie("archivo.swf");


};

trace("Hola");
funcionSaludos();
trace("Adios");


Pues dirá hola y adios, y luego cargará la movie, es decir, es "imperativo" hasta que nos metemos con cargas externas, enterFrames, eventos en general,...

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 01 Mar 2007 11:15 pm
muchas gracias!

perdona mi ignorancia

Por dark_airash

7 de clabLevel



 

firefox

 

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