detruire un objet instancié par createClassObject() - Flash/ActionScript - Programmation
Marsh Posté le 27-02-2006 à 12:21:09
Citation : |
Marsh Posté le 27-02-2006 à 12:26:05
oui je suis tout a fait d'accord avec ca. Sauf que bah ca marche pas dans mon exemple.
j'ai bien essayé destroyObject("RBtest" );
Rien n'y fait.
Si j'ai posté ici, c'est bien entendu apres avoir matté la doc, y compris le livedoc, et google ! (alors ton RTFM, bah heu hein ! Bon !)
Marsh Posté le 27-02-2006 à 12:38:17
precision: comme ma premiere phrase n'est pas super claire, je m'explique un peu plus.
L'exemple marche, il detruit tout a fait le textInput. En revanche, impossible de détruire un RadioButton
Marsh Posté le 27-02-2006 à 12:45:20
a mon avis (j'ai pas testé car les UI c'est le mal), tu as un PB avec ton instanciation d'objet car pour moi ca c'est un peu le bordel:
Code :
|
par rapport a ca:
Code :
|
après peut etre que:
delete RB11;
_level.destroyObject("RBtest" );
ou
_level.RBtest.removeMovieClip();
pourront aider...
desole si je t'ai vexe mais bon on en voit des vertes et des pas murs...
EDIT: sinon tu triche:
tu fait un RB11.move(hors champs) et puis tu delete RB11 pour liberer la mémoire...
Marsh Posté le 27-02-2006 à 12:46:39
ouais excuse moi je me suis un peu enervé !
Merci de ton aide.
Je vais essayer ta facon d'instancier l'objet, je post le feedback ici des que possible !
Marsh Posté le 27-02-2006 à 12:57:52
j'ai donc changé l'instanciation d'objet. Cela ne change rien. J'ai essayer:
delete RB11;
_level.destroyObject("RBtest" );
_level.destroyObject(RB11);
_level.destroyObject(RB11._name);
_level.RBtest.removeMovieClip();
impossible de le supprimer.
Alors j'avais effectivement pensé à faire un move hors champs et un delete, mais je me suis dit que le delete n'aurait aucun effet parce qu'il ne supprime pas effectivement l'objet.
Peux tu confirmer s'il te plait qu'un delete libère la mémoire, meme si l'objet est encore visible a l'écran ?
Merci
Marsh Posté le 27-02-2006 à 13:44:05
je sais pas essaye de faire ca:
Code :
|
et guette le panneau de sortie pour voir si il y a une difference entre avant et apres le delete...
Marsh Posté le 27-02-2006 à 15:29:43
le résultat est identique avant et apres le delete, hélas ....
En tous cas bonne idée le coup du prop je ne connaissais pas !
Autre chose ?? pliizzz
Marsh Posté le 27-02-2006 à 16:06:48
Okay, le probleme vient de this.getNextHighestDepth();
Sans cette methode, l'objet est détruit correctement.
Il ne faut pas non plus que l'attribut _name soit renseigné !
Bon bah voila !
Merci beaucoup de ton aide, mechkurt.
Reste a savoir si c''est un comportement normal ou un bug ....
Marsh Posté le 27-02-2006 à 19:24:56
effectivement this.getnexthighestdepth() a des comportements douteux je prefere utiliser une variable que j'incremente, c'est apparu avec Player 7 ill me semble mais c'est maintenant (Flash 8) deprecié au profit de la classe depthmanager (que j'utilise pas non plus) ce qui prouve que c'étais bof comme truc...
Marsh Posté le 27-02-2006 à 11:26:46
Salut all !
Voila le probleme.
J'ai ca:
RB11 = RadioButton(_level.createClassObject(RadioButton, "RBtest", _level.getNextHighestDepth()));
RB11.data = "1";
RB11._name = "RB11";
RB11.label = this.r1;
RB11.groupName = this.Qlabel;
RB11.move(30, 130);
(dans une fonction)
je voudrais, dans la frame d'apres détruire l'objet RB11 (autrement il va se voir dans toutes les frames et c'est pas du tout ce que je recherche).
Le probleme est que je n'arrive pas a le détruire. J'ai essayé:
RB11.destroyObject("RBtest" );
destroyObjet("RBtest" );
destroyObject(RB11);
...
bref plein de choses comme ca, rien n'y fait!
Le probleme ne vient pas de l'accessibilité de l'objet RB11 dans ma deuxieme frame puissque si je fais :
RB11._label = "coucou";
le label est effectivement changé.
Merci beaucoup par avance de votre aide.