begin process at 2012 05 27 14:21:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

loadMovie (); et XML


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

loadMovie (); et XML

mercredi 25 avril 2007 à 15:04:15 | loadMovie (); et XML

Orange73

Membre Club
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])

container.loadMovie("Header.swf");
 
this.onEnterFrame = function() {
        container._x = -328;
        container._y = -137;
        delete this.onEnterFrame;
}


Anim Externe (Diapo) :

stop();

//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;
}



Fichier XML :

<?xml version="1.0" encoding="iso-8859-1"?>
<DIAPO>
    <LISTE nom='Liste images' comm='Liste des images.'>
        <IMAGE titre='1.jpg' comm='Image 1'/>
        <IMAGE titre='2.jpg' comm='Image 2'/>
        <IMAGE titre='3.jpg' comm='Image 3'/>
        <IMAGE titre='4.jpg' comm='Image 4'/>
            <IMAGE titre='5.jpg' comm='Image 5'/>
            <IMAGE titre='6.jpg' comm='Image 6'/>
            <IMAGE titre='7.jpg' comm='Image 7'/>
            <IMAGE titre='8.jpg' comm='Image 8'/>
            <IMAGE titre='9.jpg' comm='Image 9'/>
            <IMAGE titre='10.jpg' comm='Image 10'/>
            <IMAGE titre='11.jpg' comm='Image 11'/>
            <IMAGE titre='12.jpg' comm='Image 12'/>
            <IMAGE titre='13.jpg' comm='Image 13'/>
            <IMAGE titre='14.jpg' comm='Image 14'/>
    </LISTE>
    <PARAM nom='ParamDiapo' comm='Paramétres du diaporama'>
        <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'/>
    </PARAM>
</DIAPO>




mercredi 25 avril 2007 à 17:02:29 | Re : loadMovie (); et XML

Orange73

Membre Club
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);   

this.onEnterFrame = function() {
        conteneur1._x = 100;
        conteneur1._y = 100;
        conteneur2._x = 100;
        conteneur2._y = 100;
        delete this.onEnterFrame;
}

//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;
}



vendredi 27 avril 2007 à 10:00:48 | Re : loadMovie (); et XML

Girou

Membre Club
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

@+

signature not found
mercredi 4 février 2009 à 00:36:22 | Re : loadMovie (); et XML

Mildek

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 !


Cette discussion est classée dans : images, function, var, temp, number


Répondre à ce message

Sujets en rapport avec ce message

diaporama avec importation aléatoire [ par JackNUMBER ] bonjour à tous !!j'ai trouvé 2 scripts que j'aimerai combiné.L'un sert à charger une image aléatoirement dans un MovieClip (qu'il créé) qui est conten Lien sur image dans un diaporama flash ? [ par phobiahz ] Bonjour a tous !Voila j'ai le code d'un diaporama (fixe mais avec fondu entre les images) dont les images sont chargées dynamiquement a partir d'un fi Source diaporama ne fonctionne pas [ par fredflash92 ] Bonjour,j'utilise le script suivant (que j'ai pris sur ce site)  qui gère un diaporama avec des fichiers images externes  listés dans un fichier XMLen aide pour un debutant [ par coreangel ] bonjour je vien de recup sur le site un diaporama (DIAPORAMA XML AVEC FONDU) de hiltonet j aimerai pouvoir lire des annime .swf mais je sais pas comme relancer un diaporama XML sur un second XML [ par vegetalain ] Salut tout le monde... alors voilà, je suis dsl mais je ne sais plus où j'ai pris le code dont je vais vous parler :/ snif.Le code suivant permet de c stopper un carrousel sur un angle prédéfini [ par neuronezero ] Alors voilà mon problème...J'ai fais un carrousel tout simple en AS2, mais je désirerais faire en sorte que quand je clik sur l'un des objets le carro Centrer image au bon moment - Diaporama Flash [ par fluf ] 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 diapo scroll ne s'arrête pas au bas du texte [ par Baby Jane ] Bonjour,J'ai réalisé un vertical scrollbar pour un site entièrement en flash 8. Je souhaite que lorsque le scrollFace est au bas de mon scrollTrack, c galerie photo qui ne s'arrête pas... [ par amandaaa ] Bonjour,j'ai un petit souci avec la galerie photo de mon site internet.je suis débutante en action script donc je vous remercie d'avance pour votre ai


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales