IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Décharger un movieclip


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut Décharger un movieclip
    Bonsoir à tous,
    Je bute sur un problème d'unload, lorsque je clique sur mon bouton de menu, j'aimerai qu'il décharge le movieclip car mon site devient gourmand en mémoire, et pour les petites configuration ça pause des problèmes de vitesse.
    Merci d'avance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    //Imort
    import flash.net.URLRequest
    import flash.events.Event
    //var
    var bgURL:URLRequest = new URLRequest("main.swf");
    var fond_back:URLRequest = new URLRequest("fond.swf");
    var swfLoader:Loader = new Loader();
    var swfLoader1:Loader = new Loader();
    var chargeur:Loader = new Loader();
    var adresse:URLRequest = new URLRequest("");
     
    //loader
    chargeur.load(adresse);
    swfLoader.load(bgURL);
    swfLoader1.load(fond_back);
    //Child
    addChild(chargeur);
    main_mc.addChild(swfLoader);
    fond_mc.addChild(swfLoader1);
    //???
    swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadProdComplete);
    swfLoader.contentLoaderInfo.addEventListener(Event.UNLOAD, UnloadProdComplete);
     
    //Fullscreen
    function setFullScreen():void {
    if (stage.displayState== "normal") {
    stage.displayState="fullScreen";
    stage.scaleMode = StageScaleMode.NO_SCALE;
    } else {
    stage.displayState="normal";
    }
    }
    //Fin Fullscreen
    //Fonction trace
    function loadProdComplete(e:Event):void {
    	trace("file loaded");
    }
    function UnloadProdComplete(e:Event):void {
    	trace("file Unloaded");
    }
    //Fin fonction trace
     
     
     
    //Bouton Acceuil
    menu_mc.Bouton_accueil.addEventListener(MouseEvent.CLICK,charger1);
    function charger1(evt:MouseEvent) {
    swfLoader.unload();
    adresse = new URLRequest("main.swf");
    swfLoader.load(adresse);
    }
    //Bouton carte	
    menu_mc.Bouton_carte.addEventListener(MouseEvent.CLICK,charger2);
    function charger2(evt:MouseEvent) {
    adresse = new URLRequest("news.swf");
    swfLoader.load(adresse);
    }
    //Bouton Galerie
    menu_mc.Bouton_galerie.addEventListener(MouseEvent.CLICK,charger3);
    function charger3(evt:MouseEvent) {
    adresse = new URLRequest("main.swf");
    swfLoader.load(adresse);
    }
    //Bouton contact
    menu_mc.Bouton_contact.addEventListener(MouseEvent.CLICK,charger4);
    function charger4(evt:MouseEvent) {   
    adresse = new URLRequest("main.swf");
    swfLoader.load(adresse);
    }
    //Bouton Client
    menu_mc.Bouton_client.addEventListener(MouseEvent.CLICK,charger5);
    function charger5(evt:MouseEvent) {
    	adresse = new URLRequest("main.swf");
        swfLoader.load(adresse);	
    	}
     
     
    //Bouton Fullscreen
    botom_barre_mc.Fullscreen.addEventListener(MouseEvent.CLICK, goFull);
    function goFull(event:MouseEvent):void {
    setFullScreen();
    }

  2. #2
    Nouveau candidat au Club
    Femme Profil pro
    dessinatrice
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : dessinatrice
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Par défaut
    Bonsoir !

    Je débute alors la réponse reste une supposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var racine = root.parent.root

    Dans ta fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    racine.TaVariable.unload()
    Si cela peux t'inspirer.

    A+

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    Heu ... pas trop en fait je ne suis pas sur que ce soit lié ...
    Malgré le swfLoader.unload(); lorsque je reclic sur mon bouton, il grossi en mémoire ... que faire ?

    pourtant dans l'élément trace, il me dit bien qu'il est unloaded ... je ne comprend pas ou se situe mon erreur ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Par défaut
    Bonjour,

    As-tu essayé tout simplement :

    Supprime aussi tous les "events" que tu n'utilise plus avec :

    Tu peux aussi appeler manuellement le garbage colector après ces opérations :


    Normalement, ta consommation mémoire devrait fortement diminuer.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    Dans le code de mon bouton j'ai rajouté ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    menu_mc.Bouton_accueil.addEventListener(MouseEvent.CLICK,charger1);
    function charger1(evt:MouseEvent) {
    main_mc.removeChild(swfLoader);
    System.gc();
    main_mc.addChild(swfLoader);
    adresse = new URLRequest("main.swf");
    swfLoader.load(adresse);
    }
    Par contre il me fait une erreur sur le system.gc(); je dois définir quelques chose ?
    Pour l'eventlistener je ne comprend pas, je dois ajouter ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    swfLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadProdComplete);
    Merci pour vos réponses
    Citation Envoyé par carton99 Voir le message
    Bonjour,

    à tu essayé tous simplement

    removeChild( myMc );

    Supprime aussi tous les "events" que tu n'utilise plus.

    avec

    removeEventListener

    tu peu aussi appeler manuellement le garbage colector manuellement apres ces opérations.

    System.gc();


    Normalement ta conso mémoire devrais fortement diminuer .

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 197
    Par défaut
    Pour System.gc() il faut faire l'import:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import flash.system.System;
    Une recherche google aurais du t'amener sur cette page rapidement
    http://help.adobe.com/en_US/FlashPla...em/System.html

    Pour supprimer l'event sa à l'air OK.

    Personnellement je pense que le "removeChild" devrais largement suffire le reste demande une plus grande compréhension de l'AS3.

    Par contre du doit faire le removeChild apres le addChild dans ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function unLoad() {
         main_mc.removeChild(swfLoader);
    }

Discussions similaires

  1. [FLASH MX] MovieClip.getBounds()
    Par Xo Sonic oX dans le forum Flash
    Réponses: 8
    Dernier message: 08/06/2005, 14h19
  2. [FLASH MX2004] héritage sur un movieClip
    Par j0hnmerrick dans le forum Flash
    Réponses: 2
    Dernier message: 31/05/2005, 10h08
  3. [MX2004]Movieclip contenant SWF cliquable
    Par black34 dans le forum Flash
    Réponses: 11
    Dernier message: 19/04/2004, 17h02
  4. [Flash MX] Largeur du MovieClip à l'écran ?
    Par FredericB dans le forum Flash
    Réponses: 6
    Dernier message: 24/02/2004, 16h17
  5. [Flash 5] Probleme de movieclip
    Par WriteLN dans le forum Flash
    Réponses: 9
    Dernier message: 08/10/2003, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo