Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 12h10   #1
Invité de passage
 
Inscription : avril 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 26
Points : 3
Points : 3
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 :
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 !
laurent94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 18h03   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 279
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 279
Points : 2 325
Points : 2 325
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 :
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 :
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

++
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 19h09   #3
Invité de passage
 
Inscription : avril 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 26
Points : 3
Points : 3
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
laurent94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 21h01   #4
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 279
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 279
Points : 2 325
Points : 2 325
Non crée une nouvelle fonction

Code :
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
}
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/09/2011, 09h01   #5
Invité de passage
 
Inscription : avril 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 26
Points : 3
Points : 3
Bonjour Madfrix,

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

Citation:
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 ?
laurent94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 10h19   #6
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 279
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 279
Points : 2 325
Points : 2 325
vire le protected
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 11h09   #7
Invité de passage
 
Inscription : avril 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 26
Points : 3
Points : 3
re,

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

Code :
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... ????
laurent94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h18.


 
 
 
 
Partenaires

Hébergement Web