Bonjour,

je cherche à cloner un objet. La méthode ObjectUtil.clone() marche bien pour les objets possédant des propriétés de types primitifs mais ne marche plus lorsqu'il y a des propriétés référençant des objets de type non primitifs. En gros cette méthode ne marche quasiment jamais

J'implémente donc l'interface IExternalizable pour mes classes à sérialiser et j'utilise la directive registerClassAlias("package.vers.ma.classe", MaClasse) dans le contructeur et c'est bon ca marche si je fais cela pour toutes les propriété/sous propriétés de toutes les classes filles de ma classe à sérialiser. J'ai juste à créer dans ma classe une méthode clone() :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
public function clone():MaClasse
{
        var ba:ByteArray = new ByteArray();
        ba.writeObject(this);
	ba.position = 0;
	return ba.readObject() as MaClasse;
}
Donc ca marche quand toutes les prorpiétés des sous classes sont de type perso (c'est à dire que j’édite les classes pour rajouter registerClassAlias etc..) mais comment faire lorsqu'une propriété d'un objet n'est pas de type "custom" ?

Dans mon cas de figure, une propriété d'une sous classe est de type HitData (objet de graphique). Si je laisse tel quel, j'ai l'erreur :

TypeError: Error #1034: Echec de la contrainte de type*: conversion de Object@4b5a461 en mx.charts.HitData impossible.
comment pourrais je pallier à ce problème ? Sous classer HitData et me palucher la modification de toutes les références dans mon code ou...?

Merci de vos suggestions