|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : août 2005 Messages : 19 ![]() |
Bonjour à tous,
Je débute en AS3 et j’ai un petit souci. J’ai choisi pour réaliser une maquette de site d’appeler un nouveau swf pour chaque sous-menu. Pour ce faire, j’utilise les lignes de codes suivantes : carte.addEventListener(MouseEvent.CLICK,onClick2); function onClick2(e:Event):void { var url:URLRequest = new URLRequest(); url.url = "carte.swf"; var loader:Loader = new Loader(); loader.load(url); addChild(loader); } Où carte est le nom d’occurrence du bouton de navigation (sous-menu) Or, il s’avère que le swf initial est toujours présent sous le nouveau, ce qui ralentit de plus en plus les animations appelées au fil des aller-retours dans les sous-menus. Est-ce normal ? y-a-t’il une solution pour éviter cela ? merci de m’éclairer sur le sujet JPaul |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Étudiant Inscription : janvier 2007 Messages : 76 ![]() |
Hello!
Je ne suis pas un expert, mais si j'étais toi je ferais un removeChild() de ce dont tu n'as plus besoin, pour vider la mémoire un peux... Moi je ne sais pas faire, mai l'interet de l'AS3 ce serait de te créer une classe qui sert à faire pivoter tes vues... imagines que quand tu clique sur carte, c'est comme si tu tournait la page, donc tu supprime ta page, et tu en place une nouvelle... Je ne sais pitêtre pas bien expliquer.. :o) |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2005 Messages : 19 ![]() |
j'avais bien essayé les remove sur les Events, mais ça ne faisait rien de mieux.
je vais essayer ça, merci |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : août 2005 Messages : 19 ![]() |
j'ai essayé mais ça ne change rien.
de plus, j'ai lu beaucoup de choses dans les bouquins depuis. il me semble que faire removeChild ne fait que supprimer l'affichage. mais là, je recharge à chaque fois le swf, enfin, je pense... JP |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Étudiant Inscription : janvier 2007 Messages : 76 ![]() |
tu as essayer la fonction delete?
delete occurence; et également removeEventListener, pour libéré de la place sur les écouteurs... C'est ce que je serais tenté de faire... |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : août 2005 Messages : 19 ![]() |
delete ne fonctionne pas car seules les proprietes créées dynamiquement peuvent etre deletées.
en fait, je fais defiler en fond plusieurs images collées bout à bout. j'ai donc créé un clip très large et je le fais défiler avec une fonction. son nom d'occurence est bande la cde bande.removeEventListener arrete le defilement avant d'appeler un autre swf mais le clip reste en arrière plan sur le swf appelé. plus je fais d'aller retour, plus le défilement ralentit. dur dur !!! |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Étudiant Inscription : janvier 2007 Messages : 76 ![]() |
Et bien removeChild(bande); devrais supprimer le swf present... à condition que tu l'es appellez dynamiquement...
à moins que ce ne soit removeChild(loader); puisque ton swf est stocké dedans... (dans ton premier poste) Faudrait tester... |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : août 2005 Messages : 19 ![]() |
le code pour lancer le defilement du clip "bande" est :
bande.addEventListener(Event.ENTER_FRAME,deplacement); function deplacement(evt:Event):void{ evt.target.x -= 0.5; if(evt.target.x <= -1172){ evt.target.x = 0; } } j'ai essayé : bande.removeEventListener(Event.ENTER_FRAME,deplacement); qui m'arrete le défilement mais ne me masque pas le clip. Je me suis également aperçu que lorsque je passe d'un swf à un autre (par appel du second par le premier), les images se cumulent, alors que je voudrais les remplacer. ???? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com