Comunidad de diseño web y desarrollo en internet online

punteros en AS 2.0???

Citar            
MensajeEscrito el 25 Jul 2006 04:51 pm
hola compañer@s y programador@s
ando comiendome el tarro...y es que quiero devolver un array desde una funcion para que otra use el resultado uno a uno del array...me parece recordar que en C y tal, eso se hacia con punteros, pero no los encuentro en la referencia del programa... seguro que el AS tiene alguna solucion alternativa(chapucera) para hacerlo o es que no encuentro lo que busco porque no lo estoy buscando bien...
gracias por adelantado

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 25 Jul 2006 04:54 pm
Pues no se te entiende muy bien, estaría mejor si te explicas, que quieres lograr, que haz hecho hasta ahora o que error te sale si lo has intentado ya.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 25 Jul 2006 04:57 pm
gracias por la rapidez :)
tengo una funcion, y en esta funcion hago una serie de pirulas(no es importante lo que haga), estas pirulas las guardo en un Array y luego quiero poder manipular esos datos desde otra funcion, o sea hacer un "return" del array, pero como sabreis los programadores, no se puede hacer un return de un array, necesitas un "puntero" que apunte a la direccion del array o alguna chapuza que lo sustituya.
espero haberme explicado mejor
saludos y gracias por adelantado de nuevo

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 25 Jul 2006 08:32 pm
A ver te puedes estar refiriendo a dos cosas:

Código :

function Arr(){
 myArray= new Array(random(50),random(30),random(60));
return myArray;//esto funciona
}
trace (Arr())//devuelve pr ej (10,23,51)

o

Código :

var myVar;
function Arr(){
 myArray= new Array(random(50),random(30),random(60));
myVar=myArray[0];
return myArray;//esto funciona
}
trace(myVar)//devuelve 10 pr ej

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 26 Jul 2006 11:37 am
gracias por esto tambien, me has solucionado las dos dudas que postee aqui ayer, eres un crack :)
el problema que tenia al retornar arrays era que al ser un codigo bastante extenso, no me daba cuenta de que tenia dentro de la funcion que iba adevolver el valor, otra funcion...asi que esta ultima me lo devolvia, pero a la funcion padre, no al programa en general y por eso me volvia loco y me parecio que no me funcionaba el return con arrays(que muchos lenguajes no te dejan hacer por cierto), asi que por eso pense que quizas habria algo parecido a los punteros del C, pero ahora veo que solo era un error de colocacion de la funcion return();
muchisimas gracias y sigue asi, me has sido de mucha ayuda :)

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 26 Jul 2006 12:02 pm
aun a riesgo de que me llames pesado te voy a preguntar a ti personalmente otra duda, puesto que me estas siendo de muchisima ayuda...alla va:

tengo esta funcion:

Código :

function consulta(tab:Array,bd:Array){
   btn_ant._x=350;
   btn_ant._y=550;
   btn_sig._x=410;
   btn_sig._y=550;
   var fondo_cons:MovieClip= _root.createEmptyMovieClip("fondo_cons",7);
   with(fondo_cons){
      _y=324;
      _alpha=80;
   }
   loadMovie("fondo_cons.jpg",fondo_cons)
   btn_sig.onRelease = function () {
      if (_root.aux+1<_root.num_filas){
         archivoPHP.sendAndLoad("http://localhost/lol/entrega/comunica2.php",archivoPHP,"POST");
         _root.aux++;
      }
   };
   btn_ant.onRelease = function () {
      if (_root.aux!=0){
         archivoPHP.sendAndLoad("http://localhost/lol/entrega/comunica2.php",archivoPHP,"POST");
         _root.aux--;
      }
   };
   var archivoPHP:LoadVars = new LoadVars();
   _root.aux=0;
   archivoPHP.bbdd=bd;
   archivoPHP.tabla=tab;
   archivoPHP.sendAndLoad("http://localhost/lol/entrega/comunica2.php",archivoPHP,"POST");
   _root.eX=90;
   _root.eY_ini=370;
   _root.depth=fondo_cons.getDepth()+1;
   var formato:TextFormat=new TextFormat();
   with(formato){
      bold=true;
      size=13;
      font="Arial";
      color=0xD6B45F;
   }
   archivoPHP.onLoad = function (exito:Boolean){
      if (exito){
         _root.eY=_root.eY_ini;
         _root.num_filas=this.num_filas;
         for (var i:Number=0;i<this.num_columnas;i++){
            _root.createTextField("txtP"+_root.aux+i, _root.depth, _root.eX, _root.eY, 30, 20);
            
            with(_root["txtP"+_root.aux+i]){
               autoSize=true;
               multiline=true;
               htmlText = this["campo"+_root.aux+"-"+i];
               setTextFormat(formato);
            }
            
            _root.eY+=20;
            _root.depth++;
         }
         _root.depth=8;
      } else
         trace("error al cargar el script php");
   }
}


que parece funcionar sin ningun problema, pero despues cuando la llamo lo hago de la siguiente manera:

Código :

consulta(_root.t1,_root.b1);
trace("hola"+_root.txtP00.text);


siendo _root.t1 la variable que almacena el nombre de la tabla a consultar y _root.b1 el nombre de la base de datos en la que se encuentra la tabla...como ya habras visto, la funcion consulta un archivo php alojado en mi servidor, este consulta con los datos que le pase desde flash en la base de datos y la tabla conrrespondientes en mysql y devuelve al php el resultado de la consulta, que a su vez lo envia a flash y el flash lo muestra. sin ningun problama, ok...pero resulta que cuando hago el trace despues de llamar a la funcion consulta, en la salida me pone "holaundefined", pero la segunda vez que lo hago, si que me pone el valor de _root.txtP00.text...el correcto...a la funcion la llamo en el evento onRollOver de un MC y en ningun otro momento...pero la primera vez que lo paso por encima no me lo hace y la segunda vez(y sucesivas si...)
el problema es exactamente ese...que no veo porque no me lo hace si le estoy diciendo que me imprima el contenido de texto de la variable despues de haber llamado a la funcion...cuando ya deberia de tener un valor...

espero haberme explicado bien... :oops:
recibe un cordial saludo
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 03 Ago 2006 12:36 am
Cuando llamas a la función consulta por primera vez, aun no has cargado los datos. Tienes que usar un evento onLoad, o mejor en tu caso disparar una función desde él:

Código :

function ejecutaTrace(){
trace("hola"+_root.txtP00.text);
}

y en tu código:

Código :

 archivoPHP.onLoad = function (exito:Boolean){
      if (exito){
      
//.............................
//........................
            _root.eY+=20;
            _root.depth++;
/****************/
ejecutarTrace()
/************/
         }
         _root.depth=8;
      } else
         trace("error al cargar el script php");
   }

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 03 Ago 2006 02:39 pm
muchisimas gracias por tu paciencia y tus ganas. ya lo solucione de otra forma, pero aun asi te agradezco infinitamente tu apoyo y sabiduria ;)
un saludo "mace" :)

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox

 

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