cs_fluf
Messages postés4Date d'inscriptionmercredi 22 avril 2009StatutMembreDernière intervention 1 mai 2009
-
1 mai 2009 à 18:58
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 2013
-
1 mai 2009 à 23:24
Bonjour,
J'ai récupéré le code de HiltOn ( http://www.flashkod.com/codes/DIAPORAMA-XML-AVEC-FONDU_41950.aspx merci HiltOn ) pour réaliser un diaporama avec changement automatique des images et Fade In Fade Out pour les transitions.
Mais j'aimerai que les images soient centrées au milieu de la scène. que ce soit pendant le Fade In, pendant le Fade Out et entre les deux. Avec des images plus petites que la scène ça fonctionne mais lorsque l'image est plus grande que la scène ça ne fonctionne pas...
Je précise que je suis un newb en Actionscript...
Donc ma question c'est : quand dois-je coder le centrage des images ?
Voici le code :
---------------------------------------
Stage.scaleMode = "noScale";
Stage.align = "TL";
//Création des variables
var images:Array = new Array();
var param:Array = new Array();
var imageActu:Number;
var imageNext:Number;
var annee:Date = new Date();
//Viariables des intervals
var interAlpha:Number;
var interImage:Number;
var interTest:Number;
//Temps de pause par défaut
var timeStart:Number = 1000;
var timeBetween:Number = 500;
//Variable pour la transition alpha
var val_alpha:Number = 0;
//Création des flags
var image1:Boolean = false;
var image2:Boolean = false;
var init:Boolean = true;
//Calcul le centre de la scène
var x_centre_cadre:Number = (Stage.width/2);
var y_centre_cadre:Number = (Stage.height/2);
//MovieClip Conteneur1
var conteneur1:MovieClip = this.createEmptyMovieClip("conteneur1", 2);
var mclListener1:Object = new Object();
var mcl1:MovieClipLoader = new MovieClipLoader();
mcl1.addListener(mclListener1);
//MovieClip Conteneur2
var conteneur2:MovieClip = this.createEmptyMovieClip("conteneur2", 1);
var mclListener2:Object = new Object();
var mcl2:MovieClipLoader = new MovieClipLoader();
mcl2.addListener(mclListener2);
//Chargement du fichier XML contenant la liste des photos
var diapo:XML = new XML();
diapo.ignoreWhite = true;
diapo.load("diapo.xml");
//Traitement une fois le chargement effectuer
diapo.onLoad = function(success:Boolean) {
if(success){
//Creation des noeud
var noeudImage:XMLNode = this.firstChild.childNodes[0];
var noeudParam:XMLNode = this.firstChild.childNodes[1];
for (var i:Number = 0; i<noeudImage.childNodes.length; i++){
var temp:Object = new Object();
temp.titre = noeudImage.childNodes[i].attributes.titre;
temp.comm = noeudImage.childNodes[i].attributes.comm;
temp.xTxt = noeudImage.childNodes[i].attributes.xTxt;
temp.yTxt = noeudImage.childNodes[i].attributes.yTxt;
images.push(temp);
}
for (var i:Number = 0; i<noeudParam.childNodes.length; i++){
var temp:Object = new Object();
temp.valeur = noeudParam.childNodes[i].attributes.valeur;
temp.comm = noeudParam.childNodes[i].attributes.comm;
param.push(temp);
}
imageInit();
}
}
randomNum = function(min:Number, max:Number):Number{
var num:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return num;
}
---------------------------------------
Pour centrer j'ai essayé d'utiliser ce bout de code à différents endroits dans le code ci-dessus. sans succès.
---------------------------------------
//on centre l'image en x
conteneur1._x = x_centre_cadre - (conteneur1._width/2);
//on centre l'image en y
conteneur1._y = y_centre_cadre - (conteneur1._height/2);
//on centre l'image en x
conteneur2._x = x_centre_cadre - (conteneur2._width/2);
//on centre l'image en y
conteneur2._y = y_centre_cadre - (conteneur2._height/2);
---------------------------------------
Sachant que :
var x_centre_cadre:Number = (Stage.width/2);
var y_centre_cadre:Number = (Stage.height/2);