Comunidad de diseño web y desarrollo en internet online

Funciones en AS y Fles

Citar            
MensajeEscrito el 27 Nov 2008 12:28 pm
:D Buen Dia, tengo un pequenio problema con una aplicacion que estoy desarrollando en FLEX y AS3, tengo una funcion que pide ciertos parametros:

public function generahijos(a:Nodo,Meta:Array):void{
var aux;
var yaexiste:int=0;
var alerta:String="";
var temp=a;
a=temp;
var iguales:int=0;

pero al momento de manipular la variable "temp" me cambia los valores del parametro a (del que le estoy enviando) e incluso al cambiar los valores de a, como ya lo tengo almacenado en un Arreglo, me cambia automaticamente los valores del valor ya guardado dentro del arreglo, mi pregunta es: como puedo manipular los valores de los parametros sin que los parametros se vean afectados?? AS3 usa los parametros como apuntadores?

Por elbuenbeto

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Nov 2008 12:39 pm
Cuando igualamos una variable a otra, si el valor de la otra variable no es un Objeto primerario (números o Strings) lo que hacemos es "crear una referencia" a dicho objeto.
Idénticamente cuando pasamos como argumento de una función un objeto que no sea primario.
Te tendrás que hacer una copia. p.e, si es un array

Código ActionScript :

var temp=a.slice(0)
//ó
var temp=a.join("|").split("|")

Si es un Objeto cualquiera
[code]
var temp=new Object()
for (var i in a){
temp[i]=a[i]
}
[/as]

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Nov 2008 02:12 am
Muchas gracias por tu respuesta, e investigando tambien encontre como copiar un array haciendo uso de ByteArray:

function (a:Nodo,b:Array){

var temp1:ByteArray=new ByteArray()
temp1.writeObject(a.arreglo);
temp1.position=0;
this.arreglo=temp1.readObject();

}

En este caso lo utilice para copiar una Matriz de 3x3, sin necesidad de referenciar al parametro "a" y lo pude manipular libremente.

Muchas gracias :D

Por elbuenbeto

1 de clabLevel



 

firefox

 

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