¿Cuál es el mejor método para clonar objetos profundos en actionscript?Clonación profunda en Actionscript
7
A
Respuesta
10
El mejor método para hacer esto es usar ByteArray con el método writeObject. De esta manera:
function clone(source:Object):* {
var copier:ByteArray = new ByteArray();
copier.writeObject(source);
copier.position = 0;
return(copier.readObject());
}
Más información sobre esto, aquí: http://www.kirupa.com/forum/showpost.php?p=1897368&postcount;=77
0
Si está intentando a lo profundo del clon de un objeto de visualización, esta es la única manera que trabajó para mí:
public static function clone(target:DisplayObject):DisplayObject {
var bitmapClone:Bitmap = null;
var bitmapData:BitmapData = new BitmapData(target.width,target.height,true,0x00000000);
bitmapData.draw(target);
bitmapClone = new Bitmap(bitmapData);
bitmapClone.smoothing = true;
return bitmapClone;
}
Tenga en cuenta que esto solo copiará visualmente el objeto. No copiará métodos o propiedades. Lo usé cuando cargué imágenes externas y las utilicé en varios lugares.
Cuestiones relacionadas
- 1. Objeto PHP de clonación profunda
- 2. ¿Clonación profunda de matrices multidimensionales en Java ...?
- 3. ¿El método de clonación en la matriz es una copia profunda o poco profunda?
- 4. Clonación de git poco profunda local con enlaces duros
- 5. Clonación profunda vs configuración de innerHTML: ¿qué es más rápido?
- 6. clonación profunda objeto alces con atributos que son arrayref [Objeto] y set :: Object
- 7. Copia profunda de matrices en Ruby
- 8. Copia profunda en JPA
- 9. copia profunda en C#
- 10. Comprobación de profunda igualdad en JUnit tests
- 11. Subclases de clonación en Java
- 12. ¿Estilo de clonación en jQuery?
- 13. Iteradores de clonación en Java
- 14. ¿Clonación de objetos en VBA?
- 15. Clonación repositorio Git local
- 16. clonación git repo
- 17. Clonación objeto dom.Document
- 18. Clonación con los genéricos
- 19. Clonación de QObject
- 20. Java detectar referencias circulares durante la clonación personalizada
- 21. Clonación de objetos
- 22. Clonación de instancias EC2
- 23. Clonación de disco rápido
- 24. Copia de estructura profunda
- 25. desarrollo actionscript en mac
- 26. getElementById equivalente en Actionscript?
- 27. BeanUtils.cloneBean() copia profunda
- 28. Diferencia entre clonación y copia en Mercurial
- 29. Conjuntos de comparación profunda en Java
- 30. Crear una copia profunda en C#
No estoy seguro de si ese clon profundo algo. Recuerdo haber probado algo así hace siglos. Funciona, pero si tiene algo así como un Vector de objetos, entonces terminará con un nuevo Vector con los mismos objetos en el clon – divillysausages
Si puede mostrarme cómo esto no funciona u otra solución que funcione mejor, entonces es muy bienvenido :) – rzetterberg
Ok, acabo de probarlo aquí y funciona, ignora mi comentario anterior. Sin embargo, deberás usar 'registerClassAlias ()' en tu clase si deseas conservar la seguridad del tipo. Tanto en la clase misma como en cualquier clase dentro de ella. P.ej. si tienes una clase 'TestClass' que contiene un' Vector' de 'Sprites', necesitarás llamar a' registerClassAlias () 'en' TestClass' y 'Sprite'; de lo contrario, devolverás' Objeto' con 'Vector' de' Objetos' que tienen todas las propiedades de 'Sprites' – divillysausages