Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011
-
25 avril 2007 à 15:04
Mildek
Messages postés1Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention 4 février 2009
-
4 févr. 2009 à 00:36
Yop les gens !
Bon voilà, j'ai une anim principal dans laquelle je fais appel à un swf externe qui contient un AS permettant de faire un diaporama images aléatoires avec fondu via XML...
Ce diapo fonctionne très bien... Malheureusement lorque sur l'anim principal je fais appel à ce diapo via loadMovie (); les transitions ne fonctionne pas... et une seul image apparait. Voici les Codes AS :
Anim principal (AS loadMovie qui est dans un clip "header") :
stop();
this.createEmptyMovieClip("container", this.getNextHighestDepth()); //getNextHighestDepth() n'est pas disponible pour les versions < 7 (pensez à mettre une profondeur (nombre) [merci Raz-L])
//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();
}
}
randomNum = function(min:Number, max:Number):Number{
var num:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return num;
}
Fichier XML :
<?xml version="1.0" encoding="iso-8859-1"?>
<DIAPO>
<LISTE nom='Liste images' comm='Liste des images.'>
</LISTE>
<RANDOM valeur='true' comm='Ordre des images'/>
<TIME_START valeur='1000' comm='Tempo de démarrage'/>
<TIME_BETWEEN valeur='4000' comm='Tempo entre les images'/>
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 25 avril 2007 à 17:02
Je viens d'essayer de mettre directement mon code Diapo dans mon anim principal. Ok sa marche... Mais je souhaiterai le placer dans un clip vide... mais là sa marche plus ! Merci de m'éclairer ! Je redonne le code :
//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();
}
}
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 27 avril 2007 à 10:00
Hello,
ton animation externe fait référence à _root
interImage = setInterval(_root,"imageSwap",timeStart); par exemple...
Soit tu remplaces tous les _root par autre choses (essayer avec this)
Soit tu actives _lockroot sur le clip qui va charger ton animation externe
-> en mettant this._lockroot=true au tout début du script externe
-> ou alors en mettant container._lockroot=true avant de charger header.swf
Mildek
Messages postés1Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention 4 février 2009 4 févr. 2009 à 00:36
Bravo Girou !
problème résolu grâce à une toute petite ligne de code supplémentaire.
Je sais que ma réponse arrive tardivement par rapport aux messages précédents mais je suis tellement content d'avoir trouver une réponse à mon problème !
Bon code !