Preloader et chargement swf externe
Bonjour à tous,
J'ai un petit problème pour réaliser un site vitrine.
En fait j'ai un preloader nommé simple_preloader.swf qui doit chargé via l'utilisation d'un URLloader... un swf nommé Easy.swf.
Au début j'avais utilisé un Loader mais les animations se lançaient avant la fin de chargement, l'URLloader devrait m'éviter ce problème mais depuis que j'ai changé mon code je n'arrive plus du tout à afficher la seconde animation.
Voici le code que j'ai utilisé pour le préloader:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| import fl.transitions.*;
import fl.transitions.easing.*;
import flash.events.MouseEvent;
import flash.events.Event;
/*** Tween animation ***/
var cache_logo:Tween;
cache_logo = new Tween(logo, "alpha", Regular.easeInOut, 1, 0, 2, true);
cache_logo.stop();
var cache_txt:Tween;
cache_txt = new Tween(txt_charg, "alpha", Regular.easeInOut, 1, 0, 2, true);
cache_txt.stop();
/*** Loader ***/
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE,completeHandler);
loader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
loader.load(new URLRequest("flash/Easy.swf"));
function progressHandler(e:ProgressEvent):void
{
var ratio:Number = e.bytesLoaded / e.bytesTotal;
var pourcent:int = ratio* 100;
stage.frameRate += ratio;
txt_charg.text = "Chargement: " + pourcent+ "%";
}
function completeHandler(e:Event):void{
(e.currentTarget as URLLoader).removeEventListener(Event.COMPLETE, completeHandler);
var data:ByteArray = (e.currentTarget as URLLoader).data as ByteArray;
var swf_loader:Loader = new Loader();
swf_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderCompletHandler);
swf_loader.loadBytes(data as ByteArray);
}
function onLoaderCompletHandler(e:Event):void {
cache_txt.start();
cache_logo.start();
cache_logo.addEventListener(TweenEvent.MOTION_FINISH, charg_site);
(e.currentTarget as LoaderInfo).removeEventListener(Event.COMPLETE, onCompleteHandler);
}
function charg_site(e:TweenEvent){
removeChild(txt_charg);
removeChild(logo);
logo = null;
txt_charg = null;
var obj:DisplayObject = (e.currentTarget as LoaderInfo).content;
addChild(obj);
stage.frameRate = 35;
} |
Merci d'avance pour votre aide,
Arzor.