Comment créer un préloader en AS3 ?
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
Dans le cours ci-dessous, apprenez à utiliser cette option de compilation du SDK Flex.
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.
|
|










Chaine TV AS3 Facile
Voir le compte Twitter
Voir le Flux RSS