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 !
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();
}
}
J'aurai juste une petit question, est ce qu'il t'affiche bien au moins une image ? Fait un trace() de images[compt]
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