Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

Loader Flash pour le cache Navigateur?


Sujet :

Flash

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : février 2007
    Messages : 182
    Points : 52
    Points
    52
    Par défaut Loader Flash pour le cache Navigateur?
    Salut tout le monde,

    Jusqu'a aujourd'hui j'utilisais un loader Flash pour loader tout mes clips dans un site entièrement en flash. Je souhaites maintenant revenir à quelque chose de plus classique avec un Loader Flash et le reste en html/Javascript/Css (pas de XML)...

    Je me demande s'il est possible de faire un Loader en Flash qui load certaines données (images et autres...) et qui place ca dans le cache du navigateur avant de passer à une page html (on quitte donc le clip flash) ?

    Si vous voyez de meilleur solutions, n'hésitez pas à me conseiller!
    Merci!

    Gian

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : février 2007
    Messages : 182
    Points : 52
    Points
    52
    Par défaut
    Bon, voici ou j'en suis aujourd'hui, et ca n'a pas l'air de marcher (bon la j'ai surement merdé dans le loader standard, mais bon) :

    Frame #1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //initialisations:
    var largeurBarre = getProperty(loadBar, _width );
    var files:Array = new Array("./pics/ConcertsBG2-3.jpg","./pics/header_suite2.jpg"); 
    var total_bytes = 0;
     
    this.createEmptyMovieClip("index", this.getNextHighestDepth());
     
    for(i=0; i<files.length; i++)
    	total_bytes = total_bytes + this.files(i).getBytesTotal();
    Frame #2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    loaded_bytes = _root.getBytesLoaded(); //récupère le poids déjà chargé de l'animation
    remaining_bytes = total_bytes-loaded_bytes; //calcul le poids de l'animation qu'il reste à charger
     
    //pourcentage de chargement
    pourcentage = loaded_bytes/total_bytes;
    percent_done = int(pourcentage*100);
     
    //affecte la nouvelle taille au clip
    setProperty(loadBarFull, _width ,int(largeurBarre*pourcentage));
     
    //affichage pourcentage chargé
    _root.percent = Math.round(percent_done)add '%';
    Frame #3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //Tout est chargé:
    if(remaining_bytes<=0)
    	gotoAndStop(4);
    else
    	gotoAndPlay(2);
    Ca charge instantanément ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : février 2007
    Messages : 182
    Points : 52
    Points
    52
    Par défaut
    Je pense qu'un des 46513 problème vient aussi de la méthode getTotalBytes() qui ne fonctionne que sur un objet Flash (une instance de MovieClip je crois me rappeller?)?

    Quelles sont les solutions ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : février 2007
    Messages : 182
    Points : 52
    Points
    52
    Par défaut
    Voilà, ca me load bien l'image, mais ca la place dans l'anim flash... impossible de la placer en cache ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    //creation MCs
    this.createEmptyMovieClip("index", this.getNextHighestDepth());
     
    var trucacharger:Array = new Array("./pics/ConcertsBG2-3.jpg","./pics/header_suite2.jpg"); 
    var infosArray:Array = new Array("Chargement : Version Lite");
    var numero:Number=0; 
    var nextnum:Number=0;
     
    //Creation Listener :
    var mclListener:Object = new Object();
    mclListener.onLoadInit = function(clip:MovieClip) {
    };
    mclListener.onLoadStart = function(clip:MovieClip) 
    {
    		nextnum=numero+1;
    		preloader.infos.text=infosArray[numero];
    		preloader.fichiers.text="Fichier : " + nextnum +"/1";
            preloader._visible = true;
            preloader.loadBarFull._xscale=0;
    };
    mclListener.onLoadProgress = function(clip, w, t) {
            var w = clip.getBytesLoaded();
            var t = clip.getBytesTotal();
    		preloader.loadBarFull._xscale =Math.round(w*338.1/t);
            preloader.percent.text = Math.round(w/t*100) + " %";	
    };
    mclListener.onLoadComplete = function(clip:MovieClip) {   
            preloader.percent.text = "";
    		numero++; 		
    		loadNext();
    };
    mclListener.onLoadError = function(clip:MovieClip, errorCode:String) {     
            preloader.percent.text = "Error loading basic files";
    };
     
    //Creations MCLoaders :
    var myLoader:MovieClipLoader = new MovieClipLoader();
    myLoader.addListener(mclListener);
     
    myLoader.loadClip("./pics/ConcertsBG2-3.jpg",index);
     
    var loadNext:Function = function(Void):Void
    {   
    	if (numero < trucacharger.length)
    	{
    		switch(numero)
    		{
    		case(0):break;
    		case(1):
    			myLoader.loadClip(trucacharger[numero],mvt2_mc);
    			break;
    		case(2):
    			myLoader.loadClip(trucacharger[numero],mvt4_mc);
    			break;
    		case(3):
    			myLoader.loadClip(trucacharger[numero],mvt6_mc);
    			break;
    		case(4):
    			myLoader.loadClip(trucacharger[numero],mvt8_mc);
    			break;
    		}
    	}
    	else
    	{ 
    		//tout est chargé :
    		this.nextFrame();
    	}
    }
    this.stop();
    Edit : je suis sous Flash MX 2004

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    février 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : février 2007
    Messages : 182
    Points : 52
    Points
    52
    Par défaut
    Bon j'ai mis la main sur un hack (trick) permettant de faire ca
    ici.

    Edit : ca compile bien, mais ... ca ne semble pas fonctionner... sans doute une erreur bête dans le code... une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import code.FilePreloader;
    import mx.utils.Delegate;
     
    preloader.fichiers.text="Fichier : " + 0 +"/1";
    preloader._visible = true;
    preloader.loadBarFull._xscale=0;
     
    onLoadStartHandler = function(o:Object):Void 
    {	 
    	preloader.fichiers.text="Fichier : " + 0 +"/1";
        preloader._visible = true;
        preloader.loadBarFull._xscale=0;
    };
     
    onLoadProgressHandler =  function(o:Object):Void 
    {	 
    	var w = myPreLoader.currentLoadProgress();
    	preloader.loadBarFull._xscale =Math.round(w*200/t);
    	preloader.percent.text = Math.round(w/t*100) + " %";
    }
     
    onLoadCompleteHandler = function (o:Object):Void 
    {
       gotoAndPlay(3);
    };
     
    myPreloader = new FilePreloader();
    myPreloader.addEventListener("loadComplete", Delegate.create(this, onLoadCompleteHandler));
    myPreloader.addEventListener("onLoadStart", Delegate.create(this, onLoadStartHandler));
    myPreloader.addEventListener("onLoadProgress", Delegate.create(this, onLoadProgressHandler));
    myPreloader.preload(["./pics/ConcertsBG2-3.jpg", "./pics/header_suite2.jpg"]);
    Merci!

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 13
    Points : 9
    Points
    9
    Par défaut ça vient de ton pseudo ..
    solo ...

    Il marche ton loader au bout de 2 ans ?

    Si tu es devenu un pro de la problématique des loads de flv sur une page http, j'aurais des questions à te poser ...


Discussions similaires

  1. [2.x] cache navigateur pour les images
    Par jejeman dans le forum Symfony
    Réponses: 2
    Dernier message: 17/04/2015, 18h29
  2. [Bénévole] Concepteur Flash/Flex pour jeu par navigateur
    Par Liezon dans le forum Autres
    Réponses: 0
    Dernier message: 11/06/2010, 13h51
  3. désactiver cache navigateur pour pages JSP/Tomcat 5.5
    Par iubito dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 24/03/2006, 18h50
  4. chargement pages php + cache navigateur
    Par grinder59 dans le forum Langage
    Réponses: 6
    Dernier message: 06/10/2005, 15h44
  5. Réponses: 5
    Dernier message: 23/08/2005, 08h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo