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

Flash Discussion :

[AS1] Précharger un SWF externe


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut [AS1] Précharger un SWF externe
    Je voudrais précharger un fichier.swf externe dans mon intro.swf ...mon intro doit précharger un fichier externe.swf avec ce 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
    onLoad () { 
        bt = _root.getBytesTotal(); 
        trace(bt); 
    } 
    onEnterFrame() { 
        bl = _root.getBytesLoaded(); 
        ratio=bl/bt; 
        trace("total = "+ bt+ " chargé = " + bl+ " ratio= "+ ratio); 
        Bande.barre_bleu._x=-356+(168*ratio); 
        pourcent.text=math.round(100*ratio); 
    } 
    onFrame (70) { 
        if (ratio==1) { 
            getURL ("Javascript:popupwindow()"); 
        } 
    }
    Au lieu _root, il me faudrait le fichier à externe à précharger

  2. #2
    Membre émérite
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Par défaut
    Salut,

    fait une recherche sur les preloader Tu devrais trouver ton bonheur !

    @++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Citation Envoyé par thecaptain
    Salut,

    fait une recherche sur les preloader Tu devrais trouver ton bonheur !

    @++
    Justement j'en ai fait un paquet et j'ai rien trouvé, en général ce que je trouve de permet de lire (charger) l'animation d'un swf externe

  4. #4
    Membre émérite
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Par défaut
    re,

    je te fait un exemple presto rapido

    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
    //code FMX2004
    var urlToLoad:String = "test.swf";
    var clipToLoad:MovieClip = this.createEmptyMovieClip("container", 0);
     
    //lancement du chargement
    clipToLoad.loadMovie(urlToLoad);
     
    //fonction d'écoute
    var updateLoading = function(Void):Void
    {
       var r:Number = clipToLoad.getBytesLoaded()/clipToLoad.getBytesTotal();
     
      //ici tu peux t'amuser
      //avec 'r' qui est le ratio
     
      //fin de chargement
      if (r == 1)
      {
         //on arrete le check
         clearInterval(inter);
     
        //le clip est chargé :)
        trace("chargé !");
      }
    }
     
    //check
    var inter:Number = setInterval(this, "updateLoading", 10);
    @++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Citation Envoyé par thecaptain
    re,

    je te fait un exemple presto rapido

    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
    //code FMX2004
    var urlToLoad:String = "test.swf";
    var clipToLoad:MovieClip = this.createEmptyMovieClip("container", 0);
     
    //lancement du chargement
    clipToLoad.loadMovie(urlToLoad);
     
    //fonction d'écoute
    var updateLoading = function(Void):Void
    {
       var r:Number = clipToLoad.getBytesLoaded()/clipToLoad.getBytesTotal();
     
      //ici tu peux t'amuser
      //avec 'r' qui est le ratio
     
      //fin de chargement
      if (r == 1)
      {
         //on arrete le check
         clearInterval(inter);
     
        //le clip est chargé :)
        trace("chargé !");
      }
    }
     
    //check
    var inter:Number = setInterval(this, "updateLoading", 10);
    @++
    J'ai déja vu ce genre de méthode (créer un clip vide, charger le fichier(loadmovie), etc...). Mais justement avec celle-ci, il lit dans mon animation d'intro le fichier externe. Moi je veux calculer son poids et de ce fait le charger par le biais d'une barre de chargement en pourcentage de mon intro...

    J'espère que je suis clair

  6. #6
    Membre émérite
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Par défaut
    re,

    si tu mates qq tutoriaux, tu verra que la méthode reste toujours la même ! tu calcule un ratio et en fonction de ce ratio, tu peux afficher les %age de chargement dans un textfield ou avec une barre de preload dans le code que je t'ai fourni, le ratio est déjà calculé

    @++

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Citation Envoyé par thecaptain
    re,

    si tu mates qq tutoriaux, tu verra que la méthode reste toujours la même ! tu calcule un ratio et en fonction de ce ratio, tu peux afficher les %age de chargement dans un textfield ou avec une barre de preload dans le code que je t'ai fourni, le ratio est déjà calculé

    @++
    J'avais pas bien lu ton code, je vais essayé ce soir (même si le: //lancement du chargement
    clipToLoad.loadMovie(urlToLoad); m'embête un peu), enfin je vais tester..

  8. #8
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Salut,

    oui c'est toujours le même principe.
    Sinon tu peux regarder ce tutoriel sur le prechargement mais cela doit être pareil à quelque chose près (remplacer _root par ton clip).

    Ps: lu Captain ca fait un bail

  9. #9
    Membre émérite
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Par défaut
    Citation Envoyé par freegreg
    Ps: lu Captain ca fait un bail
    salut l'ami ^^ ouais beaucoup de boulot

    @++

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    J'ai essayé ton code et comme je m'en doutais il a lu mon fichier externe dans en même temps que mon animation d'intro:

    Voila 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
    onLoad () {
     
        var urlToLoad:String = "http://www.****.com/Accueil.swf"; 
        var clipToLoad:MovieClip = this.createEmptyMovieClip("container", 0); 
     
        //lancement du chargement 
        clipToLoad.loadMovie(urlToLoad); 
     
        //fonction d'écoute 
        var updateLoading = function()
        { 
            var r:Number = clipToLoad.getBytesLoaded()/clipToLoad.swf.getBytesTotal(); 
     
        //ici tu peux t'amuser 
        //avec 'r' qui est le ratio 
     
        //fin de chargement 
        if (r == 1) 
        { 
            //on arrete le check 
            clearInterval(inter); 
     
            //le clip est chargé :) 
            trace("chargé !"); 
      }
     
    } 
        //check 
        //var inter:Number = setInterval(this, "updateLoading", 10);
    }
    Au niveau des erreurs, il me met :

    Impossible de trouver la variable ou la fonction 'dmcDate'
    Référencé de: "_root.container.Date_Actu"

    Pareil pour les autres variables de mon fichier externe Accueil.swf...

    Je me suis sûrement trompé en adaptant ton code, si tu peux m'éclairer...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Citation Envoyé par thecaptain
    re,

    si tu mates qq tutoriaux, tu verra que la méthode reste toujours la même ! tu calcule un ratio et en fonction de ce ratio, tu peux afficher les %age de chargement dans un textfield ou avec une barre de preload dans le code que je t'ai fourni, le ratio est déjà calculé

    @++
    En effet la méthode est toujours la même, c'est juste un problème de ciblage du fichier à précharger.

    En fait mon preloader en pourcentage marche mais il précharge mon animation d'intro pas le fichier swf externe que je souhaite précharger (en appliquant getbytestotal, ratio, etc.. et voir l'évolution du chargement de ce fichier externe en pourcentage). Il faudrait juste que je sache par quoi remplacer _root.

  12. #12
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Re

    si tu remplaces _root par clipToLoad (si j'ai bien suivi), ca fait quoi ?

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Citation Envoyé par freegreg
    Re

    si tu remplaces _root par clipToLoad (si j'ai bien suivi), ca fait quoi ?
    Dans mon code de départ ?

    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
    onLoad () { 
        bt = _root.getBytesTotal(); 
        trace(bt); 
    } 
    onEnterFrame() { 
        bl = _root.getBytesLoaded(); 
        ratio=bl/bt; 
        trace("total = "+ bt+ " chargé = " + bl+ " ratio= "+ ratio); 
        Bande.barre_bleu._x=-356+(168*ratio); 
        pourcent.text=math.round(100*ratio); 
    } 
    onFrame (70) { 
        if (ratio==1) { 
            getURL ("Javascript:popupwindow()"); 
        } 
    }
    Parce que c'est dans celui-la qu'il faut que je remplace le _root.

  14. #14
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Oui mais dans celui-là je ne vois pas le clip externe.
    Tu le charges où?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Citation Envoyé par freegreg
    Oui mais dans celui-là je ne vois pas le clip externe.
    Tu le charges où?
    En effet, je le charge pas mais si je le charge comme dans l'exemple que m'as donné thecaptain, je sais pas si il le précharge mais en tout cas il lit l'animation de ce clip externe en même temps que mon intro, alors comment faire pour qu'il le précharge au lieu de lire l'animation. Si tu pouvais rajouté ta version à mon code de départ, ce serait top.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    J'ai trouvé ça:

    "faut faire une animation en flash vide et charger ton animation flash dedans et ensuite faire un preload en flash qui ciblera le clip qui charge l'animation faite en flash en ciblant comme il faut.
    Maintenant au lieu de cibler _root, faut cibler _root.monclip avec monclip le nom du clip qui charge l'animation quand tu fais :
    _root.monclip.loadMovie("animation.swf") ;"

    Mais si je fais un loadmovie, il va lire l'animation , j'ai essayé ça:

    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
    onLoad () {
        var urlToLoad:String = "http://www.******/Accueil.swf"; 
        var clipToLoad:MovieClip = this.createEmptyMovieClip("essai", 0);
     
        bt = _root.essai.getBytesTotal();
        trace(bt);
    }
    onEnterFrame() {
        bl = _root.essai.getBytesLoaded();
        ratio=bl/bt;
        trace("total = "+ bt+ " chargé = " + bl+ " ratio= "+ ratio);
        Bande.barre_bleu._x=-356+(168*ratio);
        pourcent.text=math.round(100*ratio);
    }
    onFrame (70) {
        if (ratio==1) {
            trace ("chargé");
            getURL ("Javascript:popupwindow()");
        }
    }
    et il m'affiche "NaN" dans le champ pourcentage .

  17. #17
    Membre émérite
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Par défaut
    Salut,

    c'est normal, car tu essaie de récupérer directement les getByesTotal, et ceux-ci sont à undefined puisque les infos de bases du fichier n'ont pas été chargées De plus, évite les _root, c'est du ciblage absolu et c'est déconseillé !

    @++

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Citation Envoyé par thecaptain
    Salut,

    c'est normal, car tu essaie de récupérer directement les getByesTotal, et ceux-ci sont à undefined puisque les infos de bases du fichier n'ont pas été chargées De plus, évite les _root, c'est du ciblage absolu et c'est déconseillé !

    @++
    Comment dois-je procéder alors ?

  19. #19
    Membre émérite
    Avatar de thecaptain
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2003
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Décembre 2003
    Messages : 919
    Par défaut
    re,

    utilise le ciblage relatif en utiliant this et _parent

    @++

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 88
    Par défaut
    Citation Envoyé par thecaptain
    re,

    utilise le ciblage relatif en utiliant this et _parent

    @++
    J'ai fait ça:

    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
    onLoad () {
        var urlToLoad:String = "http://www.******.com/Accueil.swf"; 
        var clipToLoad:MovieClip = this.createEmptyMovieClip("essai", 0);
     
        clipToLoad.loadMovie(urlToLoad);
     
    }
    onEnterFrame() {
        bt = essai.getBytesTotal();
        trace(bt);
        bl = essai.getBytesLoaded();
        ratio=bl/bt;
        trace("total = "+ bt+ " chargé = " + bl+ " ratio= "+ ratio);
        Bande.barre_bleu._x=-356+(168*ratio);
        pourcent.text=math.round(100*ratio);
    }
    /*onFrame (70) {
        if (ratio==1) {
            trace ("chargé");
            getURL ("Javascript:popupwindow()");
        }
    }*/
    dans le débogeur il me met :

    LOADING URL (GET) url="http://www.*****.com/Accueil.swf"
    window=""
    218994
    total = 218994 chargé = 218994 ratio= 1
    218994
    total = 218994 chargé = 218994 ratio= 1
    218994
    total = 218994 chargé = 218994 ratio= 1
    218994
    total = 218994 chargé = 218994 ratio= 1
    218994
    total = 218994 chargé = 218994 ratio= 1
    218994
    etc.... et une erreur pour ma variable qui récupère la date du jour et le clipToLoad.loadMovie(urlToLoad); lit toujours mon fichier externe en même temps que mon animation d'intro

Discussions similaires

  1. charger un swf externe dans un MovieClip
    Par tkwebch dans le forum Flash
    Réponses: 10
    Dernier message: 07/12/2006, 16h59
  2. exploiter un swf externe
    Par oaouh dans le forum Flash
    Réponses: 6
    Dernier message: 20/07/2006, 11h10
  3. [FLASH 8] Chargement fichier swf externe
    Par Chronax dans le forum Flash
    Réponses: 4
    Dernier message: 18/07/2006, 10h08
  4. [FLASH 8] probleme sur preload d'un swf externe
    Par iceman2001 dans le forum Flash
    Réponses: 4
    Dernier message: 11/04/2006, 11h03
  5. [FLASH MX2004] Preload swf externe dans header
    Par nonoteam dans le forum Flash
    Réponses: 2
    Dernier message: 07/01/2006, 14h33

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