Une classe permettant de diffuser un diaporama en AS3.
La classe utilise la bibliothèque TweenLite, il faut donc la télécharger sur le site
http://blog.greensock.com pour que cela marche...
Source / Exemple :
package {
import flash.display.*;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
// Import pour le chronometre
import flash.events.TimerEvent;
import flash.utils.Timer;
// Import pour le message d'erreur
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
// Import de la biblio Tweenlite de greensock.com
import gs.TweenLite;
import gs.easing.*;
import gs.events.TweenEvent;
public class Diapo extends Sprite {
private var cheminDiapos:String="diapos/";
private var nomDiapos:String="nantilly";
private var sufDiapos:String=".jpg";
private var url:String="";
private var nbrDiapos:int=6;
private var indice:int=1;
public function Diapo() {
charger(indice);
}
public function charger(indice:int):void {
var chargeur:Loader=new Loader;
var cli:LoaderInfo=chargeur.contentLoaderInfo;
// construction de l'url du fichier à charger
url=cheminDiapos + nomDiapos + indice + sufDiapos;
// les écouteurs
cli.addEventListener( IOErrorEvent.IO_ERROR, echecChargement );
cli.addEventListener(Event.COMPLETE,chargementTermine);
// url à atteindre
var maRequete:URLRequest=new URLRequest(url);
// chargement du contenu
chargeur.load(maRequete);
if (numChildren>1) {
// On a plus de 2 images chargées, on supprime la plus ancienne
removeChildAt(0);
}
}
function chargementTermine(pEvt:Event):void {
var objetLoaderInfo:LoaderInfo=LoaderInfo(pEvt.target);
var contenu:DisplayObject=pEvt.target.content;
if (this.numChildren > 0) {
// Il y'a déjà 1 image affichée, on fait une transition
TweenLite.to(this.getChildAt(0),2,{alpha:0,ease:Linear.easeNone,onComplete:diapoDisparue(pEvt)});
} else {
// C'est la première image
diapoApparait(pEvt);
}
}
function echecChargement( pEvt:IOErrorEvent ):void {
var messageErreur = new TextField;
messageErreur.text = "Echec chargement image n°"+indice+"\nLe fichier "+url+" n'existe pas...";
messageErreur.autoSize = TextFieldAutoSize.LEFT;
messageErreur.selectable = false;
addChild(messageErreur);
}
private function diapoDisparue(pEvt:Event):void {
diapoApparait(pEvt);
}
private function diapoApparait(pEvt:Event):void {
var contenu:Bitmap=pEvt.target.content;
contenu.alpha=0;
addChild(contenu);
TweenLite.to(contenu,2,{alpha:1,ease:Linear.easeNone});
var chrono:Timer=new Timer(1000,5);
chrono.addEventListener(TimerEvent.TIMER,onTick);
chrono.addEventListener(TimerEvent.TIMER_COMPLETE,chronoAction);
chrono.start();
}
public function onTick(event:TimerEvent):void {
// Ne sert à rien
//trace("tick " + event.target.currentCount);
}
private function chronoAction(event:TimerEvent) {
if (indice++ >= nbrDiapos) {
indice=1;
}
charger(indice);
}
}
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.