zola13
Messages postés48Date d'inscriptionsamedi 11 octobre 2008StatutMembreDernière intervention27 août 2015
-
8 déc. 2011 à 10:45
Bonjour à tous !
Voilà, je débute en flash et en AS3 et j'ai repris une fonction qui affiche un diaporama. Seulement problème, j'aimerais que le diaporama apparaisse lors d'un clic sur un lien. J'ai 4 elements dans la scène : photoPrincipale | uil (qui contient les miniatures) | chargement | texteAlt
Je pense que, pour faire ce que j'essaie de faire, je dois mettre ces 4 éléments dans un conteneur à l'aide de addChild et le faire apparaître en cliquant dessus, mais lorsque j'essaie de créer le conteneur, rien ne s'affiche
PS : le code que j'avais ajouté est mis en gras.
Merci d'avance pour votre aideee !
//Conteneur
var conteneur:Sprite = new Sprite();
conteneur.width = 710;
conteneur.height = 530;
this.addChild(conteneur);
//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");
//Variable contenant le texte alternatif
var alt:String;
/*Style utilisé pour le texte Alternatif*/
var formatTitre:TextFormat = new TextFormat;
formatTitre.color = 0x000000;
formatTitre.size = 15;
formatTitre.font = 'arial';
formatTitre.align = 'center';
//Champ texte pour le texte alternatif
var texteAlt:TextField = new TextField();
texteAlt.text = '';
texteAlt.x = 130;
texteAlt.y = 190;
texteAlt.height = 30;
texteAlt.width = 550;
texteAlt.background = true;
texteAlt.backgroundColor = 0xffffff;
this.addChild(texteAlt); //remplacé par conteneur.addChild(texteAlt);
//Champ texte pour le message de chargement
var chargement:TextField = new TextField();
chargement.text = 'Chargement en cours...';
chargement.setTextFormat(formatTitre);
chargement.width = 200;
chargement.x = 350;
chargement.y = 290;
chargement.alpha=0.5;
this.addChild(chargement); //remplacé par conteneur.addChild(chargement);
/*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[1].attribute("src");
photoPrincipale.x = 130;
photoPrincipale.y = 215;
photoPrincipale.scaleContent = false;
var translation:Array = [photoPrincipale.x, photoPrincipale.x+ 100];
//Variable qui contiendra l'image qui est selectionnée
var select:String;
//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); // remplacé par conteneur.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 myTweentText:Tween = new Tween(texteAlt, "alpha", Strong.easeOut, 1, 0, 1, true);
var myTweentText4:Tween = new Tween(texteAlt, "x", Strong.easeIn, translation[0], translation[1],1, true);
var myTweentText5:Tween = new Tween(texteAlt, "alpha", Strong.easeIn, 1, 0, 1, true);
var myTweenA:Tween = new Tween(photoPrincipale, "alpha", Strong.easeOut, 1, 0, 1, true);
var myTweenPPW:Tween = new Tween(photoPrincipale, "x", Strong.easeIn, translation[0], translation[1],1, true);
var myTweenPPA:Tween = new Tween(photoPrincipale, "alpha", Strong.easeIn, 1, 0, 1, true);
myTweenA.addEventListener(TweenEvent.MOTION_FINISH, changeImage);
myTweentText.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, 1, true);
var myTweenPPW2:Tween = new Tween(photoPrincipale, "x", Strong.easeOut, translation[1], translation[0], 1, true);
var myTweentText2:Tween = new Tween(texteAlt, "alpha", Strong.easeOut, 0, 1, 1, true);
var myTweentText3:Tween = new Tween(texteAlt, "x", Strong.easeOut, translation[1], translation[0], 1, true);
}
/*Quand on passe la souris sur une miniature...*/
function overImage(e:Event):void{
//Ombre sur miniatures
var monOmbre:DropShadowFilter = new DropShadowFilter();
monOmbre.distance = 3;
monOmbre.color = 0xAAAAAA;
monOmbre.blurX = 5;
monOmbre.blurY = 5;
monOmbre.quality = 3;
e.currentTarget.filters = [monOmbre];
//Effets cools de transitions
var myTweenMA2:Tween = new Tween(e.currentTarget, "alpha", Strong.easeOut, 0.5, 1, 1, true);
var myTweenMW2:Tween = new Tween(e.currentTarget, "width", Elastic.easeOut, e.currentTarget.width, 75, 1, true);
var myTweenMH2:Tween = new Tween(e.currentTarget, "height", Elastic.easeOut, e.currentTarget.height, 75, 1, true);
}
/*Quand on quitte la miniature*/
function outImage(e:Event):void{
//Ombre sur miniatures
var monOmbre:DropShadowFilter = new DropShadowFilter();
monOmbre.distance = 0;
monOmbre.color = 0x888888;
monOmbre.blurX = 0;
monOmbre.blurY = 0;
monOmbre.quality = 3;
e.currentTarget.filters = [monOmbre];
//Effets cools de transitions
var myTweenMA:Tween = new Tween(e.currentTarget, "alpha", Strong.easeOut, 1, 0.5, 1, true);
var myTweenMW:Tween = new Tween(e.currentTarget, "width", Elastic.easeOut, e.currentTarget.width, 70, 1, true);
var myTweenMH:Tween = new Tween(e.currentTarget, "height", Elastic.easeOut, e.currentTarget.height, 70, 1, true);