Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2008, 11h02   #1
Invité régulier
 
Inscription : août 2005
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 19
Points : 8
Points : 8
Par défaut ralentissement exécution swf initial

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
jpdmfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 13h03   #2
Membre du Club
 
Étudiant
Inscription : janvier 2007
Messages : 76
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 76
Points : 53
Points : 53
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)
boadog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 17h50   #3
Invité régulier
 
Inscription : août 2005
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 19
Points : 8
Points : 8
Par défaut ralentissement

j'avais bien essayé les remove sur les Events, mais ça ne faisait rien de mieux.

je vais essayer ça, merci
jpdmfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 11h39   #4
Invité régulier
 
Inscription : août 2005
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 19
Points : 8
Points : 8
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
jpdmfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 14h01   #5
Membre du Club
 
Étudiant
Inscription : janvier 2007
Messages : 76
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 76
Points : 53
Points : 53
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...
boadog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 18h40   #6
Invité régulier
 
Inscription : août 2005
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 19
Points : 8
Points : 8
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 !!!
jpdmfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 15h27   #7
Membre du Club
 
Étudiant
Inscription : janvier 2007
Messages : 76
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 76
Points : 53
Points : 53
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...
boadog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 16h52   #8
Invité régulier
 
Inscription : août 2005
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 19
Points : 8
Points : 8
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.

????
jpdmfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h59.


 
 
 
 
Partenaires

Hébergement Web