Mediatracker

cs_manonfire Messages postés 3 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 4 avril 2005 - 4 avril 2005 à 12:55
cs_anzize Messages postés 41 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 9 juin 2005 - 4 avril 2005 à 22:49
Bonjour tout le monde !
J'ai une question tte bête (enfin deux).

1) N'étant pas possible à partir d'un objet (classe) autre que celui de la classe qui étand JApplet, de charger une image (Image monImage=getImage(getDocumentBase,"monimage.gif")), je charge donc toutes mes images à partir de cette classe principale.
Ttes mes images sont ensuite transmises aux autres objets par une methode transmettreImage(){return mesImages;} (tableau d'images bien sûr).

Je charge une première fois mon Applet et mes images grâce à Mediatracker..Tout roule !
Je referme mon appli (mon navigateur), la méthode destroy est bien detectée (mais ma JVM reste apparement toujours active, ce qui signifie probablement que tous n'est pas libéré).
Lorsque je rouvre mon applet (sans jamais avoir fermé toutes les fenetres d IE), tout à l'air normale sauf que toutes mes images ne sont plus chargées mais seulement quelques unes !
En traçant les probables erreurs, je me rends compte que certaines images qui sont là st impossibles à charger puisque apparement actuellement utilisées (je rappelle que ma JVM ne s'est pas libéreé à la fermeture de mon Applet).

Q1) Comment utiliser efficacement le Mediatracker. Pour moi, comment, à l'appel de destroy(), mon appli lâche l'affaire et ne s'occupe plus de mes pauvres images (je pense que c'est un pb de Thread) et de Mediatracker car avant que je me décide à mettre des images dans mon Applet, tout fonctionner à merveille.

Q2) Comment à l'appel de destroy, je pourrais tuer toutes les Threads d'un coup ! ? Je suis un criminel mais ou ce st les Threads qui l'emportent ou c'est moi !

Merci pour votre réponse en espérant m'être exprimé le plus clairement possible.

1 réponse

cs_anzize Messages postés 41 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 9 juin 2005
4 avril 2005 à 22:49
En fait, ce n'est pas le Mediatracker qui pose problème !
Il faut juste à l'appel de la méthode destroy(), flusher toutes les images.

image.flush();
Comme ça, il n'y a plus de soucis : les images aupravant chargées sont vidées et rien ne reste en mémoire pour le prochain appel d'init. Ce n'est donc pas un pb de Thread mais de mémoire !
Az"
0
Rejoignez-nous