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éfinir un affichage par défaut dans une galerie.


Sujet :

ActionScript 3

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut Définir un affichage par défaut dans une galerie.
    Bonjour tout le monde,

    Rapidement , j'ai créer grâce à des tutoriels et beaucoup d’acharnement un site fulll flash, il a très bien avancé cependant j'ai un petit problème.

    J'ai une page "galerie" qui appel différent swf externe (il sont au nombres de 4 (animation, vectoiel, pixel et html / css))
    Lorsque je sélectionne l'un, le précèdent se masque donc très bien.

    Le petit problème c'est que je n'ai pas trouvé comment faire en sorte que le swf externe "animation" s'affiche par défaut quand ont arrive sur la page galerie. Pour le moment quand j'arrive sur cette page, aucunes galerie s'affichent, il faut que j'en sélectionne une.

    D'où ma question :

    Comment dans le code je peux lui indiquer que ce swf "animation" est affiché par défaut lorsque l'on arrive sur cette page ?

    Voici le code de m'a page galerie (qui appel tout les swf externes) :

    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
    //Naviguation 
     
    /*Ajout des écouteurs pour l'evènement click sur chaque bouton*/
    btn_animation.addEventListener(MouseEvent.CLICK,clickHandler);
    btn_vectoriel.addEventListener(MouseEvent.CLICK,clickHandler);
    btn_pixel.addEventListener(MouseEvent.CLICK,clickHandler);
    btn_htmlcss.addEventListener(MouseEvent.CLICK,clickHandler);
     
     
    /*Création d'un seul Loader*/
    var ldr:Loader = new Loader(); 
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
    ldr.visible = false;
    addChild(ldr);
     
    /*Variable pour enregistrer la vue actuelle*/
    var vue:String;
     
    /*Gestionaire d'évènement au click*/
    function clickHandler(event:MouseEvent):void
    {
            //Switch pour appeler la fonction chargeSwf en fonction du bouton cliqué
            switch(event.currentTarget.name)
            {
                    case "btn_animation":
                            chargeSwf("animation.swf");
                    break;
                    case "btn_vectoriel":
                            chargeSwf("vectoriel.swf");
                    break;                
     
    				case "btn_pixel":
                            chargeSwf("pixel.swf");
                    break;
     
    				case "btn_htmlcss":
                            chargeSwf("htmlcss.swf");
                    break;
            }
     
    }
     
    /* Fonction pour charger le SWF, prend en paramètre l'url du swf*/ 
    function chargeSwf(url:String):void
    {
            if(ldr.visible)
            {
                    //Masque le loader OU change de swf si un nouveau bouton est cliqué
                    ldr.visible = false;
                    if(url != vue)
                    {
                            ldr.unload();
                            chargeSwf(url);
                    }
            }
            else
            {
                    //Charge une nouvelle URLRequest dans ton Loader
                    vue = url;
                    var urlReq:URLRequest = new URLRequest(vue);
                    ldr.load(urlReq);
            }
    }
     
    function completeHandler(event:Event):void
    {
            //Affiche le swf quand le chargement est terminé
            ldr.visible = true;
    }
    Pourriez-vous m'aider en m'expliquant comme faire ?

    Merci !

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    tu peux ajouter un événement Event.ADDED sur ton loader puis charger le swf que tu souhaites dans la fonction écouteur.

    PS: je serais toi je remplacerai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    btn_animation.addEventListener(MouseEvent.CLICK,clickHandler);
    btn_vectoriel.addEventListener(MouseEvent.CLICK,clickHandler);
    btn_pixel.addEventListener(MouseEvent.CLICK,clickHandler);
    btn_htmlcss.addEventListener(MouseEvent.CLICK,clickHandler);
     
    ...
    switch(event.currentTarget.name)
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    addEventListener(MouseEvent.CLICK,clickHandler);
    ...
    switch(event.target.name)
    Ca te permet d'alléger ton code et de pas avoir de modif à faire en rajoutant un bouton. Si tu as d'autre boutons sur lequel tu souhaites pas appliquer l'événement, place tes boutons auquel tu veux affecter les événement dans un conteneur puis affecte l'écouteur sur ce conteneur

    ++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut
    bonjour Madfrix,

    Merci de prendre le temps de me répondre.
    Quand tu dis "ajouter un événement Event.ADDED sur ton loader"
    il faut que je créer une nouvelle fonction ou je peux l'introduire au niveau de ma fonction : "function clickHandler(event:MouseEvent):void" ???

    Désolé je fais plus du bricolage en as3 qu'autre chose :s

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Non crée une nouvelle fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var ldr:Loader = new Loader(); 
    ldr.addEventListener(Event.ADDED, addedHandler);
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
    ldr.visible = false;
    addChild(ldr);
     
     
    protected function addedHandler(e:Event):void
    {
    //ici tu charges ton module par défaut
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut
    Bonjour Madfrix,

    Lorsque j'utilise la fonction tel quel, j'ai une erreur de compilation :

    L'attribut protected ne peut être utilisé que dans des définitions de propriétés de classes.
    C'est lorsque l'on parle de package ?

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    vire le protected

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Par défaut
    re,

    J'ai indiqué le swf à charger par défaut comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var ldr:Loader = new Loader(); 
    ldr.addEventListener(Event.ADDED, addedHandler);
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
    ldr.visible = false;
    addChild(ldr);
     
     
    function addedHandler(e:Event):void
    {
    chargeSwf("animation.swf");
    }
    Mais ça ne fonctionne pas et je n'ai pas d'erreur de compilation... ????

Discussions similaires

  1. [C#] Paramètre par défaut dans une fonction
    Par RobinJulie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2012, 14h07
  2. Réponses: 3
    Dernier message: 24/04/2008, 11h42
  3. Réponses: 2
    Dernier message: 15/03/2006, 09h44
  4. Sélection valeur par défaut dans une zone de liste
    Par Cécile154 dans le forum IHM
    Réponses: 2
    Dernier message: 15/02/2005, 18h20
  5. Valeur par défaut dans une table objet
    Par Ricky81 dans le forum Oracle
    Réponses: 12
    Dernier message: 18/03/2004, 11h52

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