Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1271 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Detection de la fin d'une fonction ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Detection de la fin d'une fonction ?

n°1148740
bozocarzu
Posté le 13-07-2005 à 10:51:46  profilanswer
 

Bonjour,
 
J'ai un souci avec les appels de fonction, flash continu le déroulement des instructions sans attendre la fin d'une fonction ...
 
 
J'ai une fonction qui dessine mes objets

Code :
  1. function Dessine(){
  2. for(i=0;i<5;i++){
  3.  _root.attachMovie("mon_objet", "obj_"+i, i);
  4.  trace("create obj_"+i);
  5. }
  6. }


 
 
Lorsque que j'execute Dessine, mes objets sont bien affiché.
 
 
J'ai une fonction Refresh pour redessiner mes objets :
 

Code :
  1. function Refresh(){
  2. for(i=0;i<5i++){
  3.  obj = this.getInstanceAtDepth(i);
  4.  obj.unloadMovie();
  5.  trace("remove "+obj);
  6. }
  7. Dessine();
  8. }


 
Sur mes objets j'ai une methode onUnload pour detruire mes objets

Code :
  1. class MonObjet{
  2. function onUnload(){
  3.  this.removeMovieClip();
  4.  trace("delete "+this);
  5. }
  6. }


 
Lorsque que j'exucute Refresh, j'ai en sortie :
 

remove obj_0
remove obj_1
remove obj_2
remove obj_3
remove obj_4
create obj_0
create obj_1
create obj_2
create obj_3
create obj_4
delete obj_0
delete obj_1
delete obj_2
delete obj_3
delete obj_4


 
Donc il créer des objet avec un nom qui existe deja avant de les effacer ... et je veux l'inverse, les effacer puis les recréer
 
Vous me direz que je peut faire directment obj.removeMovieClip() dans Refresh mais sa ne marche pas et je ne sais pas pourquoi....
 
Quelqu'un à une idée  :??:  
 
J'espere avoir été clair  :pt1cable:  
 
Merci
 
PS : Merci Mr Mala pour ta réponse sur l'odre des calques


Message édité par bozocarzu le 13-07-2005 à 10:54:12
mood
Publicité
Posté le 13-07-2005 à 10:51:46  profilanswer
 

n°1149027
titouille
Posté le 13-07-2005 à 13:48:39  profilanswer
 

Hello !!
 
dans refresh, y manque un point virgule dans la déclaration de la boucle for...
Puis comment tu lie ta classe à ton mc en bibliothèque, car j'ai quelques doutes sur la cohérence de tout ça. Si ta classe ne dérive pas de movieClip, et n'est pas attachée au symbole de la bibliothèque, tu ne pourras pas utiliser des méthodes tels que removeMovieClip().
 
On peut remarquer que c'est déjà très bizarre qu'il t'affiche les delete... si l'objet est supprimé, il ne va pas continuer à afficher des traces...
 
a+

n°1149048
bozocarzu
Posté le 13-07-2005 à 14:10:14  profilanswer
 

Hello,
 
Le code que j'ai tapé est un code de demo, j'ai oublié l'incrementation   :pt1cable:
 
La classe est une class externe avec un extends MovieClip. Cette class est liée à mon objet dans ma bibliothèque.
 
Le problème n'est pas là; c'est juste que flash execute la commande obj.unlaodMovie() et passe à la suite sans attendre un retour. Ce qui est explique pourquoi on vois le remove, puis le create, puis le delete....

n°1149093
titouille
Posté le 13-07-2005 à 14:35:11  profilanswer
 

mais c'est pas très net... dans Refresh, tu fais "unloadMovie()". c'est une méthode de la classe MovieClip... quand est-ce que tu appelle "onUnload()" ?? c'est appelé automatiquement après le "unloadMovie" ?? je capte pas pourquoi tu fais un unloadMovie puis encore par dessus tu veux  exécuter ta méthode onUnload.
 
Sinon, c'est lié à ton objet de quel manière ?? tu as juste mis la liaison dans les propriétés, avec le nom de classe ?? c'est pas suffisant... tu dois nommer ton clip avec le mot Symbol derrière, par exemple "monClipSymbol", mettre le chemin de la classe dans "classe as2", et puis aller dans la définition du composant et rajouter également le chemin de classe... enfin, ta liaison est peut-être faite avec registerClass, j'ai pas trop l'habitude de ça...
 
M'enfin, je comprend pas trop ta logique, et je vois pas d'appel à onUnload...

n°1149236
bozocarzu
Posté le 13-07-2005 à 16:13:36  profilanswer
 

lol, j'ai du mal expliqué ....
 
Je fais appel à Refresh, qui fais appel à unloadMovie sur mes 5 premiers clip. Et lorsque que je fais appel à unloadMovie, la methode onUnload de mon objet se déclenche automatiquement.

n°1149276
titouille
Posté le 13-07-2005 à 16:45:17  profilanswer
 

bof, à ta place, au lieu de mettre onUnload en gestionnaire dans le clip, je ferai directement dans la boucle :
 
obj.removeMovieClip();
delete obj;
 
et basta, ton objet n'existe plus... Je ne comprend pas trop à quoi te sert ton handler onUnload... on est pas en C, t'as pas besoin de faire un destructeur pour ton objet, un simple delete devrai suffire.
 
a+

n°1185349
bozocarzu
Posté le 26-08-2005 à 15:06:24  profilanswer
 

titouille a écrit :

bof, à ta place, au lieu de mettre onUnload en gestionnaire dans le clip, je ferai directement dans la boucle :
 
obj.removeMovieClip();
delete obj;
 
et basta, ton objet n'existe plus... Je ne comprend pas trop à quoi te sert ton handler onUnload... on est pas en C, t'as pas besoin de faire un destructeur pour ton objet, un simple delete devrai suffire.
 
a+


 
Ta commande delete obj n'est pas executer. Aparement, la fonction obj.reloveMovieClip() arrete l'execution du clip..
 
Quand j'ai fais mes test, sa ne marchais pas :
 

Code :
  1. obj.removeMovieClip();
  2. trace("test" );


 
test n'apparaissait jamais dans la sortie.....
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Detection de la fin d'une fonction ?

 

Sujets relatifs
[PHP] récupérer une variable dans une fonctionrequete SQL dans fonction JS
[pdf] automatiser une fonction print[php] Fonction mail, erreur incompréhensible [Résolu]
Fonction qui récup tous les paramètres d'une méthode ?[VBA EXCEL] fonction très simple qui renvoie #VALEUR...
Problème fonction php: Undefined variable(VBA) Fonction imprimer dans menu contextuel
parametre d'une fonctionfonction de detection si une base existe
Plus de sujets relatifs à : Detection de la fin d'une fonction ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR