Comunidad de diseño web y desarrollo en internet online

Copiar un objeto, no hacer referencia

Citar            
MensajeEscrito el 12 Mar 2007 01:31 am
Saludos, voy al grano. Tengo un objeto llamado obj_1 y tiene 2 variables adentro. A ese objeto le quiero sacar una copia llamada obj_2, y cuando cambie obj_1 no lo haga obj_2. Este es mi script:

Código :

var obj_1:Object
obj_1 = {op1:String="string1",op2:String="string2"};

var obj_2:Object = obj_1;
obj_1.op1 = "Otra cosa";

trace(obj_2.op1)


El trace tendria que dar "string1" ¿como hago? :? :? :? :? :?

Por Nandonet

82 de clabLevel



Genero:Masculino  

No me despierten, estoy ocupado

firefox
Citar            
MensajeEscrito el 12 Mar 2007 02:03 am
Por default los objetos en Flash se manejan por referencia.
Una solución es crear una función para copiar objetos.

Código :

function copyObject(obj:Object)
{
  var newObject:Object;
  newObject = new Object();
  for(i in obj)
  {
    newObject[i] = obj[i];
  }
  return newObject;
}
var obj_1:Object
obj_1 = {op1:String="string1",op2:String="string2"};

var obj_2:Object = copyObject(obj_1);
obj_1.op1 = "Otra cosa";

trace(obj_2.op1);


^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 12 Mar 2007 10:35 pm
Si, algo asi era lo que se me habia ocurrido a mi, pero pense que habia una forma mas "directa". Gracias por el codigo, lo de hacer una funcion no se me habia ocurrido. :P

Por Nandonet

82 de clabLevel



Genero:Masculino  

No me despierten, estoy ocupado

firefox
Citar            
MensajeEscrito el 13 Mar 2007 12:27 am
Si, algo asi era lo que se me habia ocurrido a mi, pero pense que habia una forma mas "directa".


Cuando trabajas con objetos muy pocas veces por no decir nunca hay esa forma "directa" y es más dificil de conseguir cuando los objetos son dinamicos (capacidad de definir propiedades dinamicas) como lo son la mayoria de objetos en Actionscript y otro lenguaje fuera del tema es PHP ;)

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 10 Feb 2010 05:40 pm
Bueno... eso fue para el caso de los objetos... en caso de que yo quiera hacer una copia de un objeto, pero en este caso fuera un MovieClip... ¿Cómo lo haría? :(

Saludos...

Por pmolina88

74 de clabLevel



Genero:Masculino  

Ingeniero en Sistemas

firefox

 

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