aide avec mon Preloader

  • yessir
  • Born
  • Born
  • No Avatar
  • Inscription: Jan 02, 2008
  • Messages: 1
  • Status: Offline

Message Janvier 2nd, 2008, 11:47 am

J'ai un projet où nous avons environ 6 fichiers SWF (chacune d'environ 500KB-3.32MB) nécessaires pour jouer l'un après l'autre et d'éviter tout temps de chargement.

Ma question est: est-il un moyen de charger un fichier SWF dans le fond tandis que l'on joue?

Voici un exemple.

fichiers: intro.swf, ny.swf, dc.swf, retail.swf, mart.swf, development.swf

Ce que je voudrais arriver, c'est seulement charger intro.swf initialement, et de jouer ce fichier,
alors tout ce que les dossiers se joue, NY charge. swf en arrière-plan afin qu'il soit prêt à jouer sans heurts après intro.swf est fait.

ny.swf puis tout se joue, nous avons la charge dc.swf dans le fond, et jouer après ny.swf est fini de jouer.

Yat-il un moyen d'y arriver?

Merci pour toute aide.

Code: [ Select ]
// preloader script
var allBytesTotal:Number;
var allBytesLoaded:Number;
_global.whichClip = 0;
_global.clipsCompleted = false;

top_layer._visible = false;
var ClipFlag:Array = Array(6);

// number of clips were loading to keep the flags ..
//used to make sure we just load up the bytes once

this.createEmptyMovieClip("img_mc1", 999);
this.createEmptyMovieClip("img_mc2", this.getNextHighestDepth());
this.createEmptyMovieClip("img_mc3", this.getNextHighestDepth());
this.createEmptyMovieClip("img_mc4", this.getNextHighestDepth());
this.createEmptyMovieClip("img_mc5", this.getNextHighestDepth());
this.createEmptyMovieClip("img_mc6", this.getNextHighestDepth());

var my_mcl:MovieClipLoader = new MovieClipLoader();
var my_mc2:MovieClipLoader = new MovieClipLoader();
var my_mc3:MovieClipLoader = new MovieClipLoader();
var my_mc4:MovieClipLoader = new MovieClipLoader();
var my_mc5:MovieClipLoader = new MovieClipLoader();
var my_mc6:MovieClipLoader = new MovieClipLoader();

_global.numOfClips = 6;

// Create listener object:
var mclListener:Object = new Object();
mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String, status:Number) {
 trace("Error loading image: " + errorCode + " [" + status + "]");
};

mclListener.onLoadStart = function(target_mc:MovieClip):Void { 
target_mc._visible = false;
};


mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void {
  var numPercentLoaded:Number = numBytesLoaded / numBytesTotal * 100;
    target_mc._visible = false;

};

mclListener.onLoadComplete = function(target_mc:MovieClip, status:Number):Void {
trace("onLoadComplete: " + target_mc);
_global.whichClip++;
  
      if (target_mc == img_mc1) {
         _root.loadMovie("intro.swf");
        }

    if (_global.whichClip == _global.numOfClips) {
        trace("ok..");
        target_mc._visible = false;
        trace("ok..");
        _global.clipsCompleted = true;
    }
};

my_mcl.addListener(mclListener);
my_mc2.addListener(mclListener);
my_mc3.addListener(mclListener);
my_mc4.addListener(mclListener);
my_mc5.addListener(mclListener);
my_mc6.addListener(mclListener);

my_mcl.loadClip("intro.swf", img_mc1);
my_mc2.loadClip("ny.swf", img_mc2);
my_mc3.loadClip("dc.swf", img_mc3);
my_mc4.loadClip("retail.swf", img_mc4);
my_mc5.loadClip("mart.swf", img_mc5);
my_mc6.loadClip("development.swf", img_mc6);

onEnterFrame = function(){
    if(_global.clipsCompleted) {
    trace ("ok");
    }
}


this.stop();
stop();
  1. // preloader script
  2. var allBytesTotal:Number;
  3. var allBytesLoaded:Number;
  4. _global.whichClip = 0;
  5. _global.clipsCompleted = false;
  6. top_layer._visible = false;
  7. var ClipFlag:Array = Array(6);
  8. // number of clips were loading to keep the flags ..
  9. //used to make sure we just load up the bytes once
  10. this.createEmptyMovieClip("img_mc1", 999);
  11. this.createEmptyMovieClip("img_mc2", this.getNextHighestDepth());
  12. this.createEmptyMovieClip("img_mc3", this.getNextHighestDepth());
  13. this.createEmptyMovieClip("img_mc4", this.getNextHighestDepth());
  14. this.createEmptyMovieClip("img_mc5", this.getNextHighestDepth());
  15. this.createEmptyMovieClip("img_mc6", this.getNextHighestDepth());
  16. var my_mcl:MovieClipLoader = new MovieClipLoader();
  17. var my_mc2:MovieClipLoader = new MovieClipLoader();
  18. var my_mc3:MovieClipLoader = new MovieClipLoader();
  19. var my_mc4:MovieClipLoader = new MovieClipLoader();
  20. var my_mc5:MovieClipLoader = new MovieClipLoader();
  21. var my_mc6:MovieClipLoader = new MovieClipLoader();
  22. _global.numOfClips = 6;
  23. // Create listener object:
  24. var mclListener:Object = new Object();
  25. mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String, status:Number) {
  26.  trace("Error loading image: " + errorCode + " [" + status + "]");
  27. };
  28. mclListener.onLoadStart = function(target_mc:MovieClip):Void { 
  29. target_mc._visible = false;
  30. };
  31. mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void {
  32.   var numPercentLoaded:Number = numBytesLoaded / numBytesTotal * 100;
  33.     target_mc._visible = false;
  34. };
  35. mclListener.onLoadComplete = function(target_mc:MovieClip, status:Number):Void {
  36. trace("onLoadComplete: " + target_mc);
  37. _global.whichClip++;
  38.   
  39.       if (target_mc == img_mc1) {
  40.          _root.loadMovie("intro.swf");
  41.         }
  42.     if (_global.whichClip == _global.numOfClips) {
  43.         trace("ok..");
  44.         target_mc._visible = false;
  45.         trace("ok..");
  46.         _global.clipsCompleted = true;
  47.     }
  48. };
  49. my_mcl.addListener(mclListener);
  50. my_mc2.addListener(mclListener);
  51. my_mc3.addListener(mclListener);
  52. my_mc4.addListener(mclListener);
  53. my_mc5.addListener(mclListener);
  54. my_mc6.addListener(mclListener);
  55. my_mcl.loadClip("intro.swf", img_mc1);
  56. my_mc2.loadClip("ny.swf", img_mc2);
  57. my_mc3.loadClip("dc.swf", img_mc3);
  58. my_mc4.loadClip("retail.swf", img_mc4);
  59. my_mc5.loadClip("mart.swf", img_mc5);
  60. my_mc6.loadClip("development.swf", img_mc6);
  61. onEnterFrame = function(){
  62.     if(_global.clipsCompleted) {
  63.     trace ("ok");
  64.     }
  65. }
  66. this.stop();
  67. stop();
[/ code]
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Janvier 2nd, 2008, 11:47 am

  • graphixboy
  • Control + Z
  • Mastermind
  • Avatar de l’utilisateur
  • Inscription: Juil 11, 2005
  • Messages: 1828
  • Loc: In the Great White North
  • Status: Offline

Message Janvier 2nd, 2008, 4:59 pm

dès que vous chargez un swf, il est mis en cache, même si elle ne s'affiche pas sur la scène. Le moyen le plus facile de faire ce que vous voulez, c'est tout simplement un conteneur au large de la scène que vous avez la charge dans le prochain clip. Vous ne le voyez pas sur la scène tandis que les autres charges clip, mais vous serez en mesure d'y accéder rapidement en raison de son dans la mémoire cache lorsque vous en avez besoin.

Il me semble me rappeler un autre truc qui ne cache pas charger le contenu de la scène, mais je n'arrive pas à trouver dès maintenant. Il a été une sorte de hack loadMovie. Peut-être quelqu'un d'autre sait ce que Im parle.
If at first you don't succeed F1... If that doesn't work try Google!
//// Designer, Developer & Teacher - Interactive, Motion and 3D \\\\
Portfolio at WhenImNotSleeping.com

Afficher de l'information

  • Total des messages de ce sujet: 2 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 83 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC