Comunidad de diseño web y desarrollo en internet online

AYUDA CON APUNTADORES

Citar            
MensajeEscrito el 06 Feb 2009 02:08 am
HEY HEY HEY MENESTRO UN DURO PARA LA ARITMETICA DE APUNTADORES, TENGO QUE CREAR APLICACIONES DE C++ EN AS, Y PUES NO SE COMO SE DECLARA APUNTADORES EN AS 2 O 3, POR FAVOR AGRADECERIA INMENSAMENTE SU COLABORACION.

NOCTIFER

Por NOCTIFER

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Feb 2009 08:19 am
Hola!!

Mmm, bueno, las cosas se facilitan en AS2 mas que en c++ con los apuntadores y los objetos, en flash, toda variable que no sea de los tipos basicos, es un apuntador, osea

Código ActionScript :

var foo:Object = new Object();


foo es un apuntador a ese objeto, y aqui uno no tiene que desreferencialo con el operador unario (*) (&) de c++, ademas para acceder a sus metodos no usas la flechita -> usas el operado de acceso (.)

Código ActionScript :

foo.algo = "valor"


en AS todos los objetos heredan de la clase Object, y la calse object es un clase dinamica en la que uno puede crearle atributos a diestra y siniestra

Código ActionScript :

foo.cosa = 1;
foo.valor_creado = 1231092e123;


Puedes ver tambien que en AS se usa new, para crear un objeto, no como en c++ que se usa el malloc alloc y esos, ademas aqui existe un GarbageCollector, que se encarga de liberar los recursos, evitando el uso del operador free de c++

Tambien puedes encontrar apuntadores a funciones

Código ActionScript :

var cosa:Function = function( Void ){ trace("HELLO SEA") };
cosa();


Aqui la aritmetica de operadores yo diria que es inecesaria, o bueno practicamente aqui todo son refereancias a objetos, no a direcciones en la memoria, supongamos que tu recorrias un array en c++ de este modo:

Código :

puntero = &arreglo[0];
*puntero++ = 1000800;


en AS tendras el objeto Array y lo tendras que recorrerlo con fors

Código ActionScript :

var a_arr:Array = new Array();
a_arr[1] = 1000800;
for(var i:Number = 0; i < a_arr.length; i++)
{
    trace( a_arr[i] );
}


Como puedes ver, la vida en AS es mas sabrosa. :P en ciertos puntos.

Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 09 Feb 2009 03:03 am
CCHEEEEEEEEEEE GRACIAS INMENSAS, ME TIRE PROGRAMACION TRES POR ESTO, Y AHORA VEO COMO, GRACIAS. ESTOY EN CONTACTO POR SI TENGO MAS PROBELMAS.


01110100101 GRACIAS

Por NOCTIFER

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Feb 2009 09:07 pm
COMPADRE, AHORA ME PIDEN QUE IMPLEMENTE UN PROGRAMA DE APUNTADORES EN AS, 3.0 VOS, ME PODRIAS COLBAORAR CON LO PRIMERO, OSEA COMO LOS DECLARO (DEBO CREAR UN OBJETO NODO, QUE CONTENGA UN LUGAR DE ALMACENAMIENTO DE DATO Y UNA DIRECCION AL SIGUIENTE NODO), GRACIAS


CYBER PUNK NECESITADO :cool:

Por NOCTIFER

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Feb 2009 06:01 am
Hola, lo que necesitas es una lista? en c++ hacer una lista era moderadamente dificil, se definia una clase nodo con un dato, y un apuntador al siguiente nodo, y en las listas ciclicas, un apuntador al nodo anterior tambien.

en AS, como te lo explique, es sencillo definir un objeto y darle propiedades, aun asi, podrias definir tambien clases con este proposito y quedarian declaraciones como var item:Nodo = new Nodo(); aqui te coloco un ejemplo de como hacer esto sin declarar clases.

Código ActionScript :

var primero:Object = null;

agregarNodo( crearNodo( "H" ) );
agregarNodo( crearNodo( "O" ) );
agregarNodo( crearNodo( "L" ) );
agregarNodo( crearNodo( "A" ) );
agregarNodo( crearNodo( " " ) );
agregarNodo( crearNodo( "M" ) );
agregarNodo( crearNodo( "U" ) );
agregarNodo( crearNodo( "N" ) );
agregarNodo( crearNodo( "D" ) );
agregarNodo( crearNodo( "O" ) );
trace( concatenar() );//HOLA MUNDO

function crearNodo( dato ):Object
{
   var aux:Object = new Object();
   aux.dato = dato;
   aux.adelante = null;
   return aux;
}

function agregarNodo( nodo:Object ):Void
{
   if( this.primero == null ) 
   {
      this.primero = nodo;
   }
   else
   {
      var aux:Object = this.primero;
      while( aux.siguiente != null )
      {
         aux = aux.siguiente;
      }
      aux.siguiente = nodo; 
   }
}

function concatenar( Void ):String
{
   var out:String = "";
   var aux:Object = this.primero;
   do
   {
      out += aux.dato;
      aux = aux.siguiente;
   }
   while( aux != null )
   return out;
}


Como te digo, este tipo de estructuras solo sirve en casos especificos, porque eso es igual que hacer trace( "HOLA MUNDO" );
pero "simulando" punteros. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 19 Feb 2009 06:50 am
Se me olvidaba mencionarte que no escribas en mayusculas.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 20 Feb 2009 02:09 am
gracias

Por NOCTIFER

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Feb 2009 02:28 am
ok entiendo, pero hay alguna aplicacion en cuanto a movieClips que interactuen entre si, basados en esta estructura de datos?, debo crear la clase nodo de todas formas, eso lo hago con un .as no?, me podrias enseñar a usar el debbuging the flash para ver que hay en cada variable etc ( me gustaria enviarles un fla, con las primitivas de apuntadores (arreglos)).

gracias de nuevo.

Por NOCTIFER

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Feb 2009 03:16 am
una aplicacion en cuanto a movieclips, mmm, no entendi eso, pero debes saber que los MovieClips todos tiene un apuntador "_parent" que se refiere al movieclip padre, osea, un "arbol" de movieclips, y ademas toos apuntan a "_root" el clip que contiene a todos los demas. mmm, para usar el debuger solo tienes que poner "breakpoints" clickeas en el numero de linea y se coloca un circulo rojo, cuando ejecutas el debuger, se corre la pelicula pero se detiene ne cada breakpiont, entonces tienes tres opciones, saltar entrar salir, saltar es que no entras a esa funcion o proceso, entrar, bueno, es que entras a la funcion y salir es que te sale de la funcion o porceso en el que estas, y ahi hay un panel donde se muestra el valor que tiene las variables, no es dificil tiene que agarrarle practica, hay otra tecnica llamada "tracear" es usar la funcion trace() dentro del codigo para ver que hay dentro de las variables.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 21 Feb 2009 02:10 am
gracias de nuevo che

Por NOCTIFER

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Mar 2009 10:09 am
:D hola compa :D

sabes de que e tenido problemas con algo que estado tratanddo de hacer ya rato y es de que en flash poder llenar un datagrid con un XML desconocido, es decir, que no se conoscan el nombre de las columnas por que yo se y corrigeme si estoy mal que cuando llenas un datagrid en flash con un XML ya tienes que saber el nombre de las columnas o de los nombres de los XML y el numero pero aqui es diferente te pongo mi codigo:

tabla_dg.showHeaders=false;
var cronoxml:XML = new XML();
cronoxml.ignoreWhite = true;
//proyecto_dg.removeAll();

cronoxml.onLoad = function(accede_crono){
if(accede_crono){
talla_crono = cronoxml.firstChild.childNodes.length;

var matriz_cuadro:Array = new Array(new Array(num_c),new Array(talla_crono));
var vec_xml:Array = new Array();
var vec_nor:Array = new Array();


vec_xml[0] = "dias_xml";
vec_nor[0] = "dias";


for(i=1;i<=num_c;i++){

for(j=0;j<=talla_crono;j++){
vec_xml[i] = "c"+i+"_xml ";
vec_nor[i] = "c"+i;
}
}

for(j=0;j<=talla_crono;j++){
for(i=0;i<=num_c;i++){
//c* r
matriz_cuadro[j] = cronoxml.firstChild.childNodes[j].attributes.dias_xml;

}
}
tabla_dg.dataProvider=matriz_cuadro;
}
};

Aqui pus la neta ya probe de mil maneras y lo le encuentro ayi si me puedes iluminar el camino te lo agradeceria mucho

Por pepe-luche

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Mar 2009 05:59 pm
Hola, puedes no concer el nombre de las columnas o demas, pero debe de tener cierta estructura el xml, de lo contrario no podras representarlo, no puedes representar cualquier informacion como una tabla. solo la informacion que esta organizada de cierto tipo. puedes tomar de ejemplo las tablas en html.

Código XML :

<tabla>
  <tr>
    <td>algo</td>
    <td>algo mas</td>
    <td>otro</td>
  </tr>
  <tr>
    <td>algo mas</td>
    <td>otro</td>
  </tr>
</tabla>


Mira este tuto, Este es el XML de ese tutorial, nota como tiene cierta estructura, no se saben los nombres pero saben que tiene 2 columnas y n filas.

Tambien podrias seguir este tip, para parsear XML. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

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