Diaporama as3

Description

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

Codes Sources

A voir également

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.

Du même auteur (webcrea92)