Loiro | Bonsoir ! Voilà, je me décide à poster ici suite à un agaçant problème... Je réalise un site en html, avec, pour certaines pages, une galerie d'images en As3. Ma galerie est faite en suivant ce tuto : http://www.snoupix.com/galerie-d-i [...] al_27.html C'est une galerie flash, avec images externes, et un xml pour définir le chemin des images/minatures/légendes. Mon problème est le suivant : Sous pc, quel que soit le navigateur, aucun problème, ma galerie s'affiche, et un clic sous une miniature affiche l'image en grand. Jusque-là donc, aucun souci. Le truc est qu'une fois sous mac, avec firefox (pas pu tester sous d'autres navigateurs), ma galerie s'affiche, mais un clic sur une miniature ne déclenche RIEN. C'est fâcheux. Bref, je suis tout à fait paumé, d'autant plus que si le même mac ouvre le .swf, tout fonctionne à merveille... C'est donc, je suppose, l'intégration au html qui foire..? Ou quelque chose que le plug-in firefox digère mal. Quoi qu'il en soit, voilà le code d'intégration du swf de ma page html : Code :
- <div id="flash">
- <object type="application/x-shockwave-flash" data="galerie.swf" width="750" height="417">
- <param name="movie" value="galerie.swf" />
- </object>
- </div>
| et mon code AS3 (le même que le tuto, simplifié, avec des effets en moins) : Code :
- /**************************************************
- _________ .__
- / _____/ ____ ____ __ ________ |__|__ ___
- \_____ \ / \ / _ \| | \____ \| \ \/ /
- / \ | ( <_> ) | / |_> > |> <
- /_______ /___| /\____/|____/| __/|__/__/\_ \
- \/ \/ |__| \/
- **************************************************
- http://www.snoupix.com
- */
- import flash.net.URLLoader;
- import flash.net.URLRequest;
- import fl.containers.UILoader;
- import fl.controls.ProgressBar;
- import fl.transitions.Tween;
- import fl.transitions.easing.*;
- import fl.transitions.TweenEvent;
- import flash.events.*;
- import flash.text.*;
- import flash.filters.*;
-
- //Constantes
- var dossierImage:String = 'images/';
- var dossierImageMini:String = 'images/min/';
-
-
- //Chargeur qui téléchargera notre fichier XML
- var chargeur:URLLoader = new URLLoader ();
- //objet URLRequest qui contient l'url du fichier XML:
- var adresse:URLRequest = new URLRequest ("galerie.xml" );
-
- chargeur.load(adresse);
- chargeur.addEventListener(Event.COMPLETE, finDuChargementXML);
-
-
- //Variable contenant le texte alternatif
- var alt:String;
-
- /*Style utilisé pour le texte Alternatif*/
- var formatTitre:TextFormat = new TextFormat;
- formatTitre.color = 0x5f4f54;
- formatTitre.size = 11;
- formatTitre.font = 'Verdana';
- formatTitre.align = 'right';
-
- //Champ texte pour le texte alternatif
- var texteAlt:TextField = new TextField();
- texteAlt.text = '';
- texteAlt.x = 350;
- texteAlt.y = 400;
- texteAlt.width = 400;
- this.addChild(texteAlt);
-
- /*Une fois que le fichier XML est chargé...*/
- function finDuChargementXML(evt:Event):void{
- //Objet XML
- var monXML:XML = new XML(evt.target.data);
- //UILoader qui contiendra l'image originale
- var photoPrincipale:UILoader = new UILoader();
- photoPrincipale.source = dossierImage+monXML.image[0].attribute("src" );
- photoPrincipale.x = 180;
- photoPrincipale.y = 0;
- photoPrincipale.scaleContent = false;
- photoPrincipale.autoLoad = true;
-
-
- //Variable qui contiendra l'image qui est selectionnée
- var select:String;
-
-
- texteAlt.text = monXML.image[1].attribute("alt" );
- texteAlt.setTextFormat(formatTitre);
-
- //On attache le Loader à la scene
- this.addChild(photoPrincipale);
-
- /*Pour les miniatures*/
- for(var i:String in monXML.image) {
- var uil:UILoader = new UILoader();
- uil.source = dossierImageMini+monXML.image[i].attribute("src" );
- uil.buttonMode=true;
- uil.name = i;
- uil.x = 0;
- uil.y = 0;
- uil.y += int((int(i)/3))*60;
- if(int(i)%3!=0){
- uil.x += (int(i)%3)*60;
- }
-
- uil.width = uil.height = 50;
- uil.alpha = 0.5;
- uil.scaleContent= true;
- uil.autoLoad = true;
-
- //Les écouteurs sur les miniatures
- uil.addEventListener(MouseEvent.CLICK,clicImage);
- uil.addEventListener(MouseEvent.MOUSE_OVER,overImage);
- uil.addEventListener(MouseEvent.MOUSE_OUT,outImage);
- this.addChild(uil);
- }
-
- /*Quand on clique sur une miniature...*/
- function clicImage(e:Event):void{
- //e.currentTarget.name correspond à la position de l'image
- //Si l'image sur laquelle on a cliquée est déjà selectionnée, il ne se passe rien....
- //if(select == monXML.image[e.currentTarget.name].attribute("src" )){
- //return;
- //}
-
- select = monXML.image[e.currentTarget.name].attribute("src" );
- alt = monXML.image[e.currentTarget.name].attribute("alt" );
-
-
- var myTweenA:Tween = new Tween(photoPrincipale, "alpha", Strong.easeOut, 1, 0, 0.5, true);
- var myTweenPPA:Tween = new Tween(photoPrincipale, "alpha", Strong.easeIn, 1, 0, 0.5, true);
- myTweenA.addEventListener(TweenEvent.MOTION_FINISH, changeImage);
-
- }
-
- /*Quand on veut changer d'image (logiquement après avoir cliqué sur une miniature)*/
- function changeImage(e:Event):void{
- //On change la source de l'image
- photoPrincipale.source = dossierImage+select;
-
- //On change le texte descriptif
- texteAlt.text = alt;
- texteAlt.setTextFormat(formatTitre);
-
- //Et la photo arrive de façon élégante
- var myTweenPPA2:Tween = new Tween(photoPrincipale, "alpha", Strong.easeOut, 0, 1, 0.5, true);
-
- }
-
- /*Quand on passe la souris sur une miniature...*/
- function overImage(e:Event):void{
- //Effets cools de transitions
- var myTweenMA2:Tween = new Tween(e.currentTarget, "alpha", Strong.easeOut, 0.5, 1, 1, true);
- }
-
- /*Quand on quitte la miniature*/
- function outImage(e:Event):void{
- //Effets cools de transitions
- var myTweenMA:Tween = new Tween(e.currentTarget, "alpha", Strong.easeOut, 1, 0.5, 1, true);
-
-
- }
- }
| Voilà. pour finir, un petit lien pour tester l'erreur : http://secretdecour.com/temp2/parutions.html En remerciant d'avance ceux qui auront le temps de se pencher sur mon problème...
Message édité par Loiro le 13-09-2010 à 21:06:42
|