Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
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 11/07/2007, 13h31   #1
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 58
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 58
Points : 15
Points : 15
Envoyer un message via MSN à nina_bee Envoyer un message via Skype™ à nina_bee
Par défaut flash8 et xml: onRelease impossible sur des vignettes

bonjour,
j'aimerai faire un diaporama en flash pour mon site. Voila comment il fonctionne:
quand on clique sur un menu, un script XML charge des vignettes. Quand on clique sur une de ces vignettes, le XML permet de charger la grande image correspndant. Mais pour l'instant quand quand je clique sur les vignettes rien ne se passe
alors voila le code:
XML(au cas ou...)
Code :
1
2
3
4
5
6
7
8
 
<?xml version="1.0" encoding="utf-8"?>
<illustrations>
    <illustration nom="ma blonde" chemin="img/min/mablonde_min.jpg" y="+300" pic="img/kate.jpg"  />
    <illustration nom="jour de pluie" chemin="img/min/jourdepluie_min.jpg" y="+110" pic="img/jourdeplie.jpg"  />
    <illustration nom="innitials BB" chemin="img/min/bb_min.jpg" y="+110" pic="img/innitialsbb1/jpg"  />
    <illustration nom="affiche" chemin="img/min/polar_min.jpg" y="+330" pic="polar_mini.jpg"  />
</illustrations>
actionscript
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
 
//je créé un mc gris foncé qui couvre toute la scène
this.createEmptyMovieClip('cache_mc', 22)
cache_mc._alpha=0;
cache_mc.lineStyle(1, 0x999999);
cache_mc.beginFill(0x999999);
cache_mc.moveTo(0, 0);
cache_mc.lineTo(0, 700);
cache_mc.lineTo(800,700);
cache_mc.lineTo(800, 0);
cache_mc.lineTo(0, 0);
cache_mc.endFill();
this.onEnterFrame = function (){
    if(cache_mc._alpha<80){
    cache_mc._alpha+=5
    }
    pack_mc._y=1005
    flyers_mc._y=1005
    illustration_mc._y=1005;
    };
//je créé un champ de texte pour le titre de la page
cache_mc.createTextField('titre_txt',355,30, 30, 180, 30);
titre_txt.multiline=true;
var format_texte = new TextFormat;
format_texte.color =0xfffffff;
format_texte.font = 'verdana';
format_texte.size = 24;
cache_mc.titre_txt.text = 'Illustrations';
cache_mc.titre_txt.setTextFormat(format_texte);
//un petit graphisme pour faire plus joli[smilie23]
cache_mc.attachMovie('idsquare', 'square_mc', 104);
cache_mc.square_mc._x = 230;
cache_mc.square_mc._y = 48;
//et c'est parti pour le XML!!!
var ill_xml = new XML;
ill_xml.ignoreWhite = true;
ill_xml.onLoad = function (chargement){
    if (chargement){
        noeudRacine=this.firstChild;
        ill_array = noeudRacine.childNodes;
        for (i=0; i<=ill_array.length-1; i++){
            box = cache_mc.createEmptyMovieClip('box'+i+'_mc', 10*i);
            box.loadMovie(ill_array[i].attributes['chemin']);
            var posy: Number=ill_array[i].attributes['y'];
            box._x=150*i;
            box._y=posy;
                        box.onRelease=function(){
                          //je teste mais il ne se passe rien.
                                     trace('ok');
                        }
 
        }
    }
}
ill_xml.load('illustrations.xml');
voila j'espere que vous pourrez m'aider
nina_bee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 17h08   #2
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 233
Points : 2 233
LUT,

Code :
1
2
3
4
  box.onRelease=function(){
    //je teste mais il ne se passe rien.
    trace('ok');
  }
Box est le conteneur de tes vignetes, c'est sur les vignetes qu'il faut appliquer le onRelease et non sur la box.

pour acceder au clip nommé box1_mc, box2_mc ou autre il faut passer par une autre notation entre crochets
(tu peux pas ecrire "box"+i+"_mc".onRelease ..)

je l'ai pas sous la main mais tu devrai trouver ça. (sinon up le post dans la soirée je regarderai si jretrouve ça)

;)
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2007, 12h21   #3
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 58
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 58
Points : 15
Points : 15
Envoyer un message via MSN à nina_bee Envoyer un message via Skype™ à nina_bee
coucou, bon alors j'ai essayé ta solution (qui me paraît plutot bonne) mais ca ne marche pas.
Je te met le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
var ill_xml = new XML;
ill_xml.ignoreWhite = true;
ill_xml.onLoad = function (chargement){
	if (chargement){
		noeudRacine=this.firstChild;
		ill_array = noeudRacine.childNodes;
		for (i=0; i<=ill_array.length-1; i++){
			box = cache_mc.createEmptyMovieClip('box'+i+'_mc', 10*i);
			box.loadMovie(ill_array[i].attributes['chemin']);
			var posy: Number=ill_array[i].attributes['y'];
			box._x=150*i;
			box._y=posy;
			'box'+i+'_mc'.onRelease = function(){trace('ok');}
		}
	}
}
quand je lace l'animj'ai une erreur:
**Error** Scene=Scene 1, layer=Layer 4, frame=37:Line 45: Left side of assignment operator must be variable or property.
'box'+i+'_mc'.onRelease = function(){trace('ok')}

Total ActionScript Errors: 1 Reported Errors: 1

apres ca impossible de cliquer sur les bouton et de voir les vignettes .
j'ai remis l'ancien code et j'ai listé les objets et tout a l'air nomal:
Clip: image=0 Cible="_level0.cache_mc"
Clip: image=1 Cible="_level0.cache_mc.box0_mc"
Forme :
Clip: image=1 Cible="_level0.cache_mc.box1_mc"
Forme :
Clip: image=1 Cible="_level0.cache_mc.box2_mc"
Forme :
Clip: image=1 Cible="_level0.cache_mc.box3_mc"

du coup j'ai fait:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
var ill_xml = new XML;
ill_xml.ignoreWhite = true;
ill_xml.onLoad = function (chargement){
	if (chargement){
		noeudRacine=this.firstChild;
		ill_array = noeudRacine.childNodes;
		for (i=0; i<=ill_array.length-1; i++){
			box = cache_mc.createEmptyMovieClip('box'+i+'_mc', 10*i);
			box.loadMovie(ill_array[i].attributes['chemin']);
			var posy: Number=ill_array[i].attributes['y'];
			box._x=150*i;
			box._y=posy;
			box0_mc.onRelease = function(){trace('ok');}
		}
	}
}
ca ne marche toujours pas pourtant box0_mc est bien un movie clip placé sur cache_mc....
si tu as une autre idée... moi je suis perdue...
Merci encore
nina_bee 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 09h42.


 
 
 
 
Partenaires

Hébergement Web