<h2>Votre Formation vidéo</h2><br/>
Votre formation est décomposée<br/>
en chapitres très clairs de 20 à 30 min. <h2>Des exemples SWF </h2><br/>
Chaque leçon est accompagnée<br/>
du code source avec le fla et les classes. <h2>Votre Suivi personnalisé</h2><br/>
Vous pouvez  me poser toutes<br/>
vos questions sous les cours vidéos.
Devenez Membre de la Formation AS3 Facile

Comment créer un préloader en AS3 ?

0 question

Écrit le 21 juillet par Matthieu
Publié dans le(s) sujet(s) ActionScript 3

Mots clés : , , , , , , , , ,


Cette fois, sur le site bit-101, j’ai trouvé une option de compilation très pratique.

La création d’un preloader en pure AS3 pour les applications flash imposantes (supérieure à 200Ko).

Il suffit pour cela de rajouter une seule ligne de code dans votre classe principale Main.

Très utile pour indiquer à vos visiteurs la progression du chargement de votre application et les inviter à patienter icon wink Comment créer un préloader en AS3 ?

Dans le cours ci-dessous, apprenez à utiliser cette option de compilation du SDK Flex.

Préloader en AS3

0 Comment créer un préloader en AS3 ?

Version démonstration

Ci-dessous, le résultat dans de l’application FLV Slicer.

Merci d'activer Javascript et Flash pour voir cette vidéo Flash.

Télécharger le code source flv slicer

Vous trouverez l’ensemble du code source commenté pour vous aider dans l’intégration de cette fonctionnalité dans vos applications flash.

Ci-dessous, une partie de la classe Main modifiée.

package
{
 
	import flash.events.MouseEvent;
	import button.ButtonValider;
	import flash.net.FileReference;
	import org.bytearray.video.events.SlicedEvent;
	import org.bytearray.video.FLVSlice;
	import flash.media.Video;
	import flash.net.NetStream;
	import flash.net.NetConnection;
	import org.bytearray.video.FLVSlicer;
 
	import flash.display.Sprite;
	import flash.events.Event;
 
	import com.demonsters.debugger.MonsterDebugger;
 
	// permet de créer un preloader en AS3
	[Frame (factoryClass = "Preloader")]
	public class Main extends Sprite
	{
		// intègre la video flv directement dans le swf
		[Embed( source="beyond-black-mesa-trailer.flv", mimeType="application/octet-stream" )]
		private var flvBytes:Class;
 
		private var oNetConnect : NetConnection;
		private var oNetStream : NetStream;
		private var video : Video;
 
		private var oBtnCut : ButtonValider;
		private var oBtnPlayPause : ButtonValider;
		private var oBtnDownload : ButtonValider;
 
		private var merged : FLVSlice;
		private var slicer : FLVSlicer;
 
		/**
		 * Constructeur.
		 *
		 */
		public function Main()
		{
			// attend la fin de l'initialisation de la scène
			this.addEventListener(Event.ADDED_TO_STAGE, onReady, false, 0, true);
		}
 
		/**
		 * Démarrage de l'application.
		 *
		 */
		protected function onReady(event : Event) : void
		{
			this.removeEventListener(Event.ADDED_TO_STAGE, onReady);
 
			// Init De MonsterDebugger
            		MonsterDebugger.initialize(this);
            		MonsterDebugger.trace(this, "Start Application");
            	}
         }

La classe Preloader.as, celle qui affiche la progression du chargement de l’application.

package
{
 
	import flash.ui.ContextMenu;
	import flash.display.DisplayObject;
	import flash.display.MovieClip;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.utils.getDefinitionByName;
 
	public class Preloader extends MovieClip
	{
		// le nom de la classe qui lance l'application, généralement Main
		private var mainClassPath : String;
 
		/**
		 * Constructeur.
		 *
		 */
		public function Preloader()
		{
			stop();
			mainClassPath = "Main";
			configureStage();
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
 
		public function onEnterFrame(event : Event) : void
		{
			graphics.clear();
			if (framesLoaded == totalFrames)
			{
				removeEventListener(Event.ENTER_FRAME, onEnterFrame);
				init();
			}
			else
			{
				// affiche une barre de progression
				var percent : Number = root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal;
				graphics.beginFill(0x006f77);
				graphics.drawRect(0, stage.stageHeight /2 - 10, stage.stageWidth * percent, 20);
				graphics.endFill();
			}
		}
 
		/**
		 * Lance l'application swf sur la 2ème frame.
		 *
		 */
		private function init() : void
		{
			nextFrame();// passe à la frame suivante (notre application)
 
			// instanciation de notre application
			var mainClass : Class = Class(getDefinitionByName(mainClassPath));
			if (mainClass)
			{
				var app : Object = new mainClass();
				addChild(app as DisplayObject);
			}
		}
 
		/**
		 * Personnalisation des options du stage.
		 *
		 */
		private function configureStage() : void
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			var menu : ContextMenu = new ContextMenu();
			menu.hideBuiltInItems();
			contextMenu = menu;
		}
	}
}

Et vous, utilisez cette technique de la création d’une frame ?

Ou préférez-vous celle, plus classique, d’un swf léger qui preload votre application flash ?

Devenez Développeur Flash !
Rejoignez les 1500 membres AS3 Facile. Recevez des Cours Vidéos Actionscript Gratuits. Accéder à la Formation AS3 Facile dès maintenant. Renseignez votre Prénom puis votre Email ci-dessous.
icon cs5 Comment créer un préloader en AS3 ?
poweredby Comment créer un préloader en AS3 ?

Cours AS3 pouvant vous intéresser :

Une question sur ce cours ?

Vous avez un point bloquant ?
Besoin d'explications supplémentaires ?
Ou vous voulez partager votre code source.
Votre adresse de messagerie ne sera pas publiée.
Les champs obligatoires sont indiqués avec *

*


Notifiez-moi des réponses à venir via email.
Vous pouvez aussi vous abonner sans commenter.