Comunidad de diseño web y desarrollo en internet online

Referencia o Puntero a un Objeto String

Citar            
MensajeEscrito el 16 Abr 2009 10:35 pm
Hola a todos: Estaba programando en AS3 y quería tener un puntero a un tipo de dato string. Lo que mi sentido común me dictó fue hacer esto:
cadena:String;
....
dato:Object;
...
dato = cadena;
dato = "Este se supone es el nuevo valor de dato y por lo tanto también de cadena";
...

Esto no funcionaba porque al parece el operador "=" de asignación está sobrecargado para el tipo de dato String y hace que cuando hagamos "=" se haga una copia del string y con esto no podía modificar la variable "cadena" utilizando el puntero "dato". Lo que hice fue esto:

cadena:TextField = new TextField();
...
dato:Object;
...
dato = cadena;
dato.text="Este es el nuevo valor que se asigna a dato y por lo tanto a cadena";
...

De esta manera sí pude apuntar a un "string"
Espero que mi colaboración les haya servido.
Adiós.

Por justo_13

4 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Abr 2009 06:29 am
Tal y como dices, los valores STRINGS se pasan a una función "por valor". Ya que los Objetos se pasan a una función "por referencia" la idea es usar un Objeto en lugar de un String (no hace falta que sea un TextField "cadena"

Código ActionScript :

var cadena:Object={texto:"Hola Mundo"}
var dato:Object=cadena;
dato.texto+=".. Y adiós"
trace (cadena.texto) //<--es lo mismo usar cadena
trace (dato.texto)    //<--que usar dato

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Abr 2009 05:51 pm
Hola justo, como estas?

Mmm q necesitas hacer? En AS3 no existe el concepto de puntero de lenguajes tipo C. Todo en as3 son objetos por lo cual siempre son "punteros" (no como en c, pero se puede hacer una analogia).

Por otro lado, en Flex, si queres tener un puntero a un texto y poderlo cambiar desde cualquier lado y ver reflejado su cambio (como seria en la teoria de punteros de c), tenes q usar binding


Código ActionScript :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
   <mx:Script>
      <![CDATA[
         [Bindable]
         private var texto:String = "";
         
      ]]>
   </mx:Script>
   
   <mx:Label text="{texto}" />
   <mx:Label text="Escribi en el campo de texto y mira como cambia el label de arriba" />
   <mx:TextInput id="t" text="{texto}" change="texto=t.text;" />
   
</mx:Application>


La variable texto, sea desde donde sea q la modifiques, va a actualizar en cualqueir lado q se este utilizando.

Espero q te sirva, saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox

 

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