team94 (Mercredi 23 Février 2011 à 17:37):
Bonjour et félicitation pour ce super tuto qui me donne envie de m'y mettre encore plus !

j'ai une petite question je voudrait que les images s'affiche aléatoirement
je pense qu'il faut se servir de math.random mais je n'arrive pas à l'utiliser

si quelqu'un as 5 min pour expliqué

sinon merci encore et bonne continuation !

je poste le code

code diaporama.as

package{

    import flash.display.MovieClip;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.utils.Timer;
    import flash.events.Event;
    import flash.events.TimerEvent;
    import caurina.transitions.*;
    public class Diaporama extends MovieClip{
        var images;
        var compt:uint=0;
        var delai:Timer =new Timer(3000);
        public function Diaporama(list:Array):void{
            images=list;
            this.addChild(new MovieClip()); this.addChild(new MovieClip());
            delai.addEventListener(TimerEvent.TIMER,charger);
            charger();
        }
        private function charger(e=0){
            delai.stop();
            this.swapChildrenAt(0,1);
            this.removeChildAt(1);
            var l:Loader=new Loader();
            l.contentLoaderInfo.addEventListener(Event.COMPLETE,appar);
            l.load(new URLRequest(images[compt]));
            this.addChildAt(l,1);
            compt++;
            if(compt>=images.length){
            compt=0;
            }
        }
        private function appar(e:Event){
            this.getChildAt(1).alpha=0;
            Tweener.addTween(this.getChildAt(1),{alpha:1, time:1, transition:"linear"})
            delai.start();
        }
    }
}

code diaporama.fla

import Diaporama;
import flash.display.MovieClip
stage.align="TL"
var tab=new Array("img/1.jpg","img/2.jpg","img/3.jpg");
var d:Diaporama=new Diaporama(tab);
addChild(d);
var logo:Logo = new Logo();
addChild(logo);
addChild(logo).x=550;
addChild(logo).y=120;

merci beaucoup !

4 réponses


Je ne suis pas une star de l'as3 mais essaye ceci peut être :

public class Diaporama extends MovieClip{
        var images:Array;
        var compt:uint=0;
        var delai:Timer =new Timer(3000);
        public function Diaporama(list:Array):void{
            this.images=list;
            this.addChild(new MovieClip()); this.addChild(new MovieClip());
            delai.addEventListener(TimerEvent.TIMER,charger);
            charger();
        }
        private function charger(e=0){
            delai.stop();
            this.swapChildrenAt(0,1);
            this.removeChildAt(1);
            var l:Loader=new Loader();
            l.contentLoaderInfo.addEventListener(Event.COMPLETE,appar);
            l.load(new URLRequest(this.images[compt]));
            this.addChildAt(l,1);
            compt++;
            if(compt>=images.length){
            compt=0;
            }
        }
        private function appar(e:Event){
            this.getChildAt(1).alpha=0;
            Tweener.addTween(this.getChildAt(1),{alpha:1, time:1, transition:"linear"})
            delai.start();
        }
    }
team94
Auteur

merci de ton aide DevAddict mais rien n'a changé !

si quelqu'un a une soluce !

J'aurai juste une petit question, est ce qu'il t'affiche bien au moins une image ? Fait un trace() de images[compt]

team94
Auteur

non il ne m'affichait rien cependant j'ai resolu le probleme

pour ceux que ca interesse
Diaporama.as

package{

    import flash.display.MovieClip;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.utils.Timer;
    import flash.events.Event;
    import flash.events.TimerEvent;
    import caurina.transitions.*;
    public class Diaporama extends MovieClip{
        var images:Array;
        var compt:uint=0;
        var delai:Timer =new Timer(3000);
        public function Diaporama(list:Array, pAleatoire:Boolean):void{

            //SI ON CHOISIT DE RENDRE LE DIAPORAMA ALEATOIRE
            if(pAleatoire)
            {

            //ON MELANGE LES URLS 
                this.images = melangeImage(list);
            //SINON ON GARDE L'ORDRE DU TABLEAU TRANSMIS 
            }else{
            this.images=list;
            }
            this.addChild(new MovieClip());
            this.addChild(new MovieClip());
            delai.addEventListener(TimerEvent.TIMER,charger);
            charger();

        }
        private function melangeImage(pTab:Array):Array
{

        //ON RECUPERE LA TAILLE DU TABLEAU CONTENANT LES URLS DES IMAGES
        var total:int = pTab.length;

        //ON CREE UNE VARIABLE QUI STOCKERA UN NOMBRE ALEATOIRE
        var aleatoire:int;

        //ON CREE UN NOUVEAU TABLEAU QUI STOCKERA LES URLS MELANGEES
        var tabMelange:Array = new Array();

        //ON LANCE LA BOUCLE QUI PASSERA EN REVUE CHAQUE URLS
        for(var i:int=0; i<total; ++i)
        {

                //ON CREE UN NOMBRE ALEATOIRE EN FONCTION DU NOMBRE D'ENTREES RESTANTES DU TABLEAU
                aleatoire = Math.random() * pTab.length;

                //ON AJOUTE AU NOUVEAU TABLEAU L'ENTREE CHOISIE ALEATOIREMENT DANS LE TABLEAU D'URLS
                tabMelange.push(pTab[aleatoire]);

                //ON SUPPRIME DU TABLEAU DES URLS L'ENTREE CHOISIE ALEATOIREMENT
                pTab.splice(aleatoire, 1);

        }

        //ON RETOURNE LE TABLEAU AVEC LES URLS MELANGEES
        return tabMelange;

}

        private function charger(e=0){
            delai.stop();
            this.swapChildrenAt(0,1);
            this.removeChildAt(1);
            var l:Loader=new Loader();

            l.contentLoaderInfo.addEventListener(Event.COMPLETE,appar);
            l.load(new URLRequest(images[compt]));
            this.addChildAt(l,1);
            compt++;
            if(compt>=images.length){
            compt=0;
            }
        }

        private function appar(e:Event){
            this.getChildAt(1).alpha=0;
            Tweener.addTween(this.getChildAt(1),{alpha:1, time:1, transition:"linear"})
            delai.start();
        }
    }
}

diaporama.fla

import Diaporama;
import flash.display.MovieClip
stage.align="TL"
var tab=new Array("img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg","img/5.jpg","img/6.jpg","img/7.jpg","img/8.jpg");
//DANS CETTE VARIABLE ON INDIQUES SI OUI OU NON ON VEUX RENDRE LE DIAPORAMA ALEATOIRE (TRUE ou fALSE)
var aleatoire:Boolean = true;
var d:Diaporama=new Diaporama(tab, aleatoire);
addChild(d);
var logo:Logo = new Logo();
addChild(logo);
addChild(logo).x=550;
addChild(logo).y=120;

merci quand meme devaddict @bientot