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 :

Empiler les SWF avec loadMovie


Sujet :

Flash

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut Empiler les SWF avec loadClip
    Hello,

    La question est la suivante, avec mon loadMovie est-il possible de charger les swf les uns et dessus des autres. Les faire s'empiler au fur et à mesure de la navigation ?

    J'ai utilisé ce code mais à chaque lien on repasse au 1er swf.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    on (release) {
    	loadMovieNum("show.swf", 1);
    }

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Lut,

    c'est avec le deuxième paramètre que tu défini le niveau.

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var nLevel:Number = 0;
     
    onRelease = function()
    {
      loadMovieNum("show.swf", nLevel);
      nLevel++;
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    je suis désolé mais le lecteur flash me dit que l’instruction doit apparaître dans le gestionnaire on.

    Je suis vraiment pomé avec cette histoire de charger des swf.

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    si tu utilise une ancienne version de Flash (5):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var nLevel:Number = 0;
     
    on (release)
    {
      loadMovieNum("show.swf", nLevel);
      nLevel++;
    }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    Je travaille dans Flash CS3.
    Ce problème va me rendre fou, j'ai essayé plein de chose depuis deux semaines sans succé. Je ne veux pas generer de niveau, je veux juste que les swf chargé s'empilent les uns sur les autres.

    Je place donc ton code sur mon bouton, mais le chargement ne s'effectu pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var nLevel:Number = 0;
     
    onRelease = function()
    {
      loadMovieNum("show.swf", nLevel);
      nLevel++;
    }

  6. #6
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    désolé je ne connais pas du tout les notations AS3.

    tu peux poster sur le forum AS3 pour savoir.


    sinon tu peux régler dans les paramètres de publications la compilation en Flash8 AS2.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    Si je fais le reglage tu penses que ton code fonctionnera ?

    Je viens de regarder, et je suis bien en Flash 8 AS2

  8. #8
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Le mieux est de placer ton code dans le clip conteneur de ton bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var nLevel:Number = 0;
    
    clipBouton.onRelease = function()
    {
      loadMovieNum("show.swf", nLevel);
      nLevel++;
    }
    sinon dans le clip bouton directement (utiliser un calque pour mettre le code) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     var nLevel:Number = 0;
    
    this.onRelease = function()
    {
      loadMovieNum("show.swf", nLevel);
      nLevel++;
    }

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    En faite j'utilise un clip "our works" qui contient un bouton "works".
    dans ce clip j'ai sur mon bouton le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    on (rollOver) {
    	gotoAndStop(2);
    }
    qui me permet d'avoir mon mouseover et d'afficher les menus de "works" sur la deuxième key frame du calque "menu". Là, se trouvent tous les boutons sur lesquel je voudrais utiliser ton code.

    Voici le fichier fla en flash8. Si tu pouvais regarder, cela m'enleverai une grosse épine du pied.

    http://www.acielouvert.net/act/navi.fla

    Merci d'avance.
    Guillaume

  10. #10
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    je l'ai un peu modifié,

    tu verra que j'ai fait l'exemple sur le bouton exib (transformé en clip)

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    Ok merci, je vais essayé demain.

    Si je veux rajouter des boutons a ta fonction AS, je dois certainement changer la partie en rouge

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    stop();
    
    var nLevel:Number = 0;
    
    fond.onRollOut = function()
    {
    	_level0.ourWorks.lemenu._visible = false;
    }
    
    btnEx.onRelease = function()
    {
    	nLevel++;
    	loadMovieNum("exhibition.swf", nLevel);
    }
    Par contre est il possible de copier/coller ce code plusieurs fois dans la même keyframe AS, en donnant les noms d'occurences des boutons ? Du genre :

    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
    stop();
    
    var nLevel:Number = 0;
    
    fond.onRollOut = function()
    {
    	_level0.ourWorks.lemenu._visible = false;
    }
    
    btnEx.onRelease = function()
    {
    	nLevel++;
    	loadMovieNum("exhibition.swf", nLevel);
    }
    btnShow.onRelease = function()
    {
    	nLevel++;
    	loadMovieNum("show.swf", nLevel);
    }
    btnUrban.onRelease = function()
    {
    	nLevel++;
    	loadMovieNum("urban.swf", nLevel);
    }
    btnInterior.onRelease = function()
    {
    	nLevel++;
    	loadMovieNum("interior.swf", nLevel);
    }
    ect ...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    Voila, je viens de tester.

    Je place le code sur une keyframe vide pour gerer mes boutons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var nLevel:Number = 0;
     
    architectural.onRelease = function()
    {
    	nLevel++;
    	loadMovieNum("architectural.swf", nLevel);
    }
    Le swf se charge mais je retrouve mon problème initial. Lorsque l'on clic un lien on retombe, pendant le chargement, sur le swf initial (la homepage).

    Je mets en ligne une partie du site pour que tu comprennes mieux ce que je veux dire : Clic sur le menu "Exhibition Lighting" puis "Interior Lighting" et la tu verras que tu reviens au premier swf celui de "Show lighting"

    http://www.acielouvert.net/act/test/testnavi.html

    Que doit on changer dans le code ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    HELL'o

    J'ai vraiment besoin d'aide sur ce point, je suis sur le point de publier le site mais il me reste ce problème à regler.

    Merci pour votre aide.
    Guillaume

  14. #14
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Salut,

    pour vérifier que le level s'incrémente bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var nLevel:Number = 0;
    
    architectural.onRelease = function()
    {
        nLevel++;
        trace(nLevel);
        loadMovieNum("architectural.swf", nLevel);
    }
    ce qui m'étonne c'est que tu gère pas le chargement des clip !
    c'est un élément qu'il ne faut pas négliger pour une bonne navigation.

    de plus, l'utilisation de loadClip éliminerai ton problème de niveau.

    utilisation : http://www.developpez.net/forums/sho...98&postcount=8

    ;)

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    Salut, tu dis que l'utilisation de loadClip reglera mon problème de niveau.
    Tu as vue sur le lien que j'ai publié, le problème que j'avais ?

    Alors j'ai essayé de pacer loadClip à la place de loadMovieNum :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var nLevel:Number = 0;
     
    architectural.onRelease = function()
    {
        nLevel++;
        trace(nLevel);
        loadClip("architectural.swf", nLevel);
    }
    Mais ça ne charge pas les swf. J'aime bien ton code (ci-dessus) car je peux l'appliquer aux boutons sans creer d'empty clip ...

    Comment utiliser loadClip et regler ce probleme que l'on peut voir a cette adresse (CAD, le fait de revenir à chaque lien au swf de la homepage).

    http://www.acielouvert.net/act/test/testnavi.html

    Au secour,
    Guillaume

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    OK, je comprend pourquoi ça ne fonctionne pas.
    Il faut que je charge mon swf dans un clip. Tu es sûr que je n'aurais plus ce problème de niveau ?

    J'ai fais un test avec le code que tu m'a indiqué

    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
    var monClip:MovieClip = this.createEmptyMovieClip("conteneur", 0); //clip conteneur
    var mcl:MovieClipLoader = new MovieClipLoader(); //gestionnaire du chargement
     
    var ecouteurChargement:Object = new Object(); 
    ecouteurChargement.onLoadProgress = function(target:MovieClip, loaded:Number, total:Number):Void
    {
     trace("progress");
    };
    ecouteurChargement.onLoadInit = function(target:MovieClip):Void
    {
     trace("clip chargé");
    };
    ecouteurChargement.onLoadError = function(target:MovieClip, code:String):Void
    { trace("erreur");}
     
    mcl.loadClip("monswf.swf", monClip); //chargement de monswf.swf dans monClip
    Je dois donc creer un clip vide avec comme nom d'occurence monClip ? Je me demande aussi sous quelle forme ce code gère t'il le prechargement du swf ? Avec une barre de progression ?

  17. #17
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Lut,

    Tu es sûr que je n'aurais plus ce problème de niveau ?
    oui, en utilisant la fonction getNextHighestDepth.

    Je dois donc creer un clip vide avec comme nom d'occurence monClip ?
    tu peux choisir un nom d'ocurence bidon,
    ce qui importe est la variable que tu récupère pour charger ton clip dedans
    et le niveau dans lequel tu crée ce clip vide.

    je te conseil de créer le clip vide au niveau le plus haut,
    puis d'inter changer les niveaux entre ce clip et tes menu pour qu'ils restent toujours visibles. (fonction swapDepths)

    Je me demande aussi sous quelle forme ce code gère t'il le prechargement du swf ?
    le gestionnaire permet définir les fonctions qui te permettent ensuite de faire ton chargement comme tu le veux.

    tu peux simplement afficher un clip d'attente et le fermer dans la fonction onLoadInit.
    ou alors avec la fonction onLoadProgress afficher un pourcentage, une barre etc.

    +

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    Salut,

    J'ai placé ce code dans mon swf (navi.swf) qui contient ma navigation :

    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
    var clipvide:MovieClip = this.createEmptyMovieClip("conteneur", 0); //clip conteneur
    var mcl:MovieClipLoader = new MovieClipLoader(); //gestionnaire du chargement
     
    var ecouteurChargement:Object = new Object(); 
    ecouteurChargement.onLoadProgress = function(target:MovieClip, loaded:Number, total:Number):Void
    {
     trace("progress");
    };
    ecouteurChargement.onLoadInit = function(target:MovieClip):Void
    {
     trace("clip chargé");
    };
    ecouteurChargement.onLoadError = function(target:MovieClip, code:String):Void
    { trace("erreur");}
     
     
    interior.onRelease = function()
    {
      mcl.loadClip("interior.swf",clipvide); //chargement de monswf.swf dans monClip
    }
    le fichier navi.swf est chargé dans mon animation principale via le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var conteneur = this.createEmptyMovieClip("ocNavi", this.getNextHighestDepth());
    loadMovie("navi.swf", conteneur);
    Donc je vais charger mes swf de contenu dans mon animation principale via navi.swf.

    Le code d'en haut fonctionne bien, quand je clic sur le bouton "interior" mon "interior.swf" se charge dans mon clip vide mais n'est pas centré dans la page alors j'ai rajouté le code en rouge :
    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
    var clipvide:MovieClip = this.createEmptyMovieClip("conteneur", 0); //clip conteneur
    var mcl:MovieClipLoader = new MovieClipLoader(); //gestionnaire du chargement
     
    var ecouteurChargement:Object = new Object(); 
    ecouteurChargement.onLoadProgress = function(target:MovieClip, loaded:Number, total:Number):Void
    {
     trace("progress");
    };
    ecouteurChargement.onLoadInit = function(target:MovieClip):Void
    {
     trace("clip chargé");
    };
    ecouteurChargement.onLoadError = function(target:MovieClip, code:String):Void
    { trace("erreur");}
    
    clipvide._x = 0;
    clipvide._y = 0;
    
    interior.onRelease = function()
    {
      mcl.loadClip("interior.swf",clipvide); //chargement de monswf.swf dans monClip
    }
    Mais il ne centre pas le swf.
    De plus comment integrer la fonction getNextHighestDepth dans mon code pour ne plus avoir de problème de niveau ?

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 119
    Points : 72
    Points
    72
    Par défaut
    OK, je dois revenir en arrière car mon navi.swf est chargé dans une animation principale avec comme fonction d'être positionnée en bas et centré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ResizeListener.onResize = function() {
    	ocTitre.stagePosition("T","C");
    	ocNavi.stagePosition("B","C");
    	ocCorps.stagePosition("M","C");
    Le problème est que si je veux charger des swf à partir de navi.swf tous les swf chargé seront en bas et centré.

    Alors je n'appelle plus mon navi.swf via le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var conteneur = this.createEmptyMovieClip("ocNavi", this.getNextHighestDepth());
    loadMovie("navi.swf", conteneur);
    j'incorpore mon animation de navigation directement dans l'animation principale (je suis une peu degouté, c'etais plus partique de la gerer en externe pour les mise à jour) et sur les boutons, je place ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    on (release) {
    	loadMovieNum("heritage.swf", this.getNextHighestDepth());
    }
    Du coup mes swf s'empilent les uns sur les autres mais entre le chargement j'ai un ecran blanc, comment s'en debarasser ?

Discussions similaires

  1. controler un fichier swf chargé avec loadMovie
    Par yamissa dans le forum Flash
    Réponses: 1
    Dernier message: 29/04/2007, 01h05
  2. Réponses: 4
    Dernier message: 03/08/2005, 09h47
  3. [LG]toujours les indices... avec precisions!!!
    Par k_ro dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2004, 21h08
  4. Quelles sont les distibutions avec le kernel 2.4.x.x?
    Par barucca dans le forum Administration système
    Réponses: 7
    Dernier message: 01/04/2004, 15h44
  5. les .a avec gcc
    Par Groove dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 31/03/2003, 07h59

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