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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
| //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;
//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();
}
}
imageInit = function(){
if((param[0].valeur == "true")|(param[0].valeur == undefined)){
imageActu = randomNum(0, images.length-1);
imageNext = randomNum(0, images.length-1);
imageRandom();
}else{
imageActu = 0;
imageNormal();
}
if(param[1].valeur != undefined){timeStart = param[1].valeur;}
if(param[2].valeur != undefined){timeBetween = param[2].valeur;}
mcl1.loadClip(images[imageActu].titre, conteneur1);
mcl2.loadClip(images[imageNext].titre, conteneur2);
}
mclListener1.onLoadComplete = function(target:MovieClip):Void {
image1 = true;
if(init){
if(image2){
init = false;
interImage = setInterval(_root,"imageSwap",timeStart);
}
}else{
conteneur2.swapDepths(conteneur1);
mcl2.loadClip(images[imageNext].titre, conteneur2);
}
}
mclListener2.onLoadComplete = function(target:MovieClip):Void {
image2 = true;
if(init){
if(image1){
init = false;
interImage = setInterval(_root,"imageSwap",timeStart);
}
}else{
interImage = setInterval(_root,"imageSwap",timeBetween);
}
}
imageSwap = function(){
clearInterval(interImage);
interAlpha = setInterval(this,"imageAlpha",6);
}
imageAlpha = function(){
if(val_alpha < 100){
conteneur1._alpha = (100-val_alpha);
conteneur2._alpha = val_alpha;
val_alpha += 1;
}
else{
clearInterval(interAlpha);
val_alpha = 0;
imageActu = imageNext;
if(param[0].valeur == "true"){
imageRandom();
}else{
imageNormal();
}
conteneur1.swapDepths(conteneur2);
conteneur1._alpha = 100;
mcl1.loadClip(images[imageActu].titre, conteneur1);
}
}
imageRandom = function(){
while(imageActu == imageNext){
imageNext = randomNum(0, images.length-1);
}
}
imageNormal = function(){
if(imageActu == images.length-1){
imageNext = 0;
}else{
imageNext = imageActu+1;
}
}
randomNum = function(min:Number, max:Number):Number{
var num:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return num;
} |
Partager