IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

ActionScript 3 Discussion :

Problème Preload AS3


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 10
    Par défaut Problème Preload AS3
    bonjour,

    j'utilise un code en AS3 qui fonctionnait très bien avant, pour précharger mon site, et qui ne fonctionne plus...

    Sauriez-vous m'éclairer ?
    gracias !


    sur le frame 1, j'ai placé le code du preload, le site commence au frame 5 (ou "accueil")...

    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
    stop();
     
    this.loaderInfo.addEventListener(ProgressEvent.PRO GRESS, chargementEnCours);
    function chargementEnCours(evt:ProgressEvent) {
    //trace("chargé : "+evt.currentTarget.bytesLoaded + "total : " +evt.currentTarget.bytesTotal);
    var pourcentage=Math.ceil(evt.currentTarget.bytesLoade d/evt.currentTarget.bytesTotal*100);//ceil : afficher que les valeurs avant la virgule.
    trace(pourcentage);
    textepreload_mc.charge_txt.text=pourcentage+"%";
    //'textepreload_mc' est le nom de l'occurrence du movie clip du texte preload dans la scène principale
    //'charge_txt' est le nom de l'occurrence dans le symbole du texte preload
    barre_mc.scaleX=pourcentage/100; //on divise par 100 car le scaleX va de 0 à 1;
    // eviter width qui est en pixels alors que scale est en %
    }
     
     
    this.loaderInfo.addEventListener(Event.COMPLETE, finChargement);
    function finChargement(evt:Event) {
    trace("fin");
    gotoAndPlay('accueil');
    }

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 10
    Par défaut solution
    bon entre temps j'ai trouvé un code qui fonctionne sur ce site, et très compréhensible :

    http://www.riacodes.com/flash/basic-flash-preloader/

    l'idée est donc d'avoir un fichier preload.swf qui vient charger le fichier comprenant le site content.swf

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    Ce n'est pas forcément une bonne idée d'avoir un swf qui en charge un autre. Tu aura des soucis d'accès à différentes propriété du stage par exemple. La bonne pratique est la suivante :

    Une classe preloader qui prototype ton appli avec à peu près ça dedans :
    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
    package 
    {
    	import flash.display.*;
    	import flash.events.*;
    	import flash.utils.getDefinitionByName;
    	import flash.ui.*;
    	import flash.net.*;
     
    	public class Preloader extends MovieClip 
    	{
    		public function Preloader() 
    		{
    			if (stage)
    			{
    				stage.scaleMode = StageScaleMode.NO_SCALE;
    				stage.align = StageAlign.TOP_LEFT;
    			}
    			addEventListener(Event.ENTER_FRAME, checkFrame);
    			loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
    			loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
    		}
     
    		private function ioError(e:IOErrorEvent):void {trace(e.text);}
    		private function progress(e:ProgressEvent):void {/* fait un truc quand le loader est updaté */}
     
    		private function checkFrame(e:Event):void 
    		{
    			if (currentFrame == totalFrames) 
    			{
    				stop();
    				loadingFinished();
    			}
    		}
     
    		private function loadingFinished():void 
    		{
    			removeEventListener(Event.ENTER_FRAME, checkFrame);
    			loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress);
    			loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioError);
     
    			/* fait des trucs quand le loader a finit */
     
    			var mainClass:Class = getDefinitionByName("Main") as Class;
    			addChild(new mainClass() as DisplayObject);
    		}
    	}
    }
    Puis une classe Main qui est ton site.

    Ça joue sur un des plus vieux truc de flash qui est le loading par frame. Initialement, quand tu avait une anim faite sous flash avec 200 frames, il les chargeait une par une au lieu de toutes à la fois. Tu pouvais donc commencer à jouer ton anim avant de l'avoir chargée en entier. C'est exactement ce que ça fait là.

Discussions similaires

  1. [CS3] Problème Programmation AS3
    Par Gab_caliban dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 19/09/2011, 15h29
  2. [CS5] Problème preloader flash
    Par pmeuniergc dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 21/07/2011, 10h52
  3. Problème ScrollBar AS3
    Par chickentib dans le forum EDI/Outils
    Réponses: 0
    Dernier message: 29/03/2010, 10h59
  4. Problème Preload image
    Par Horakty dans le forum Flash
    Réponses: 0
    Dernier message: 01/09/2008, 13h01
  5. problème preload swf Flash 8
    Par sheido dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 09/06/2008, 13h40

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