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 :

Imbriquer plusieurs swf à la suite


Sujet :

ActionScript 3

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut Imbriquer plusieurs swf à la suite
    Bonjour à tous,
    Je suis en train de créer un petit dessin animé. Un travail de longue haleine avec des centaines et des centaines d'image.
    Flash n'acceptant pas d'important autant d'images sur un même document, j'ai fractionné le tout en 4 swf que je voudrais lire à la suite donc.
    Le truc c'est qu'avec le code ci-dessous, Flash plante au bout d'un moment souvent au début de la lecture du 3e swf. Il bloque sur un écran blanc ou rouge, ça dépend. Je pense que cela vient de la mémoire qui surcharge et du garbage collector qui fait mal son boulot.
    En gros j'ai un swf avec 4 images clé. Chaque image clé importe un swf enfant. Chaque swf enfant possède donc par exemple 500 images qu'il lit, et sur la dernière image il envoie l'info au swf parent de passer à image suivante, et ainsi de suite.

    Voici mon code :
    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
    Swf parent :
    -1e image :
    var chargeur1:Loader=new Loader();
    var adresse1:URLRequest=new URLRequest("final001.swf");
    chargeur1.load(adresse1);
    addChild(chargeur1);
    stop();
    - 2e image :
    removeChild(chargeur1);
    chargeur1 = null;
    System.gc();
    var chargeur2:Loader=new Loader();
    var adresse2:URLRequest=new URLRequest("final002.swf");
    chargeur2.load(adresse2);
    addChild(chargeur2);
    stop();
    3e image :
    removeChild(chargeur2);
    chargeur2 = null;
    System.gc();
    var chargeur3:Loader=new Loader();
    var adresse3:URLRequest=new URLRequest("final003.swf");
    chargeur3.load(adresse3);
    addChild(chargeur3);
    stop();
    4e image :
    removeChild(chargeur3);
    chargeur3 = null;
    System.gc();
    var chargeur4:Loader=new Loader();
    var adresse4:URLRequest=new URLRequest("final004.swf");
    chargeur4.load(adresse4);
    addChild(chargeur4);
    stop();
    final001.swf , sur la dernière image après avoir lu toutes les images :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var maMaintimeLine:MovieClip;
    var maMainTimeline = stage.getChildAt(0) as MovieClip;
    maMainTimeline.gotoAndPlay(2);
    final002.swf , sur la dernière image après avoir lu toutes les images :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var maMaintimeLine:MovieClip;
    var maMainTimeline = stage.getChildAt(0) as MovieClip;
    maMainTimeline.gotoAndPlay(3);
    final003.swf , sur la dernière image après avoir lu toutes les images :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var maMaintimeLine:MovieClip;
    var maMainTimeline = stage.getChildAt(0) as MovieClip;
    maMainTimeline.gotoAndPlay(4);
    Merci de me venir en aide

  2. #2
    Membre très actif

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Par défaut
    tu peus tester :
    http://livedocs.adobe.com/flash/9.0/...l#unload%28%29

    puis loader 2 etc..
    ( après qu'il est fini de jouer )

    il faut aussi stopper les animations non utilisées via un (stop())

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut
    J'avais déjà testé le unload mais ça m'affichait un message d'erreur.
    Bon en fait j'ai trouvé la solution tout simplement en passant en AS2, avec la fonction load (à la fin de chaque fichier je faisais un load du suivant, ça marche sans soucis, pas de problème de mémoire qui pourrait faire bugait l'animation).
    C'est pas le code le plus limpide mais ça a le mérite de fonctionner.

    Merci

  4. #4
    Membre très actif

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Par défaut
    Parfait !
    L'as2 a toujours de bon jours devant lui !
    Vous pouvez rajouté [Résolu] dans le sujet ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2011, 07h35
  2. [FLASH MX] 1 preload pour plusieurs swf ?
    Par lillyella dans le forum Flash
    Réponses: 14
    Dernier message: 12/06/2008, 13h02
  3. [C#] Lancer plusieurs commandes à la suite
    Par hobotalker dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/06/2006, 16h02
  4. Réponses: 12
    Dernier message: 30/12/2005, 11h55
  5. [nouveau] saisir plusieurs espace de suite ou tabuler
    Par siuol dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 28/02/2005, 12h32

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