begin process at 2012 05 27 18:11:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

pb loader as3


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb loader as3

samedi 13 décembre 2008 à 10:50:39 | pb loader as3

inaden

Bonjour à tous,
après de multiple effort, j'ai presque réussi un loader en as3 :
Voici le code :

// Mise en place du sprite qui doit suivre le pourcentage de chargement
var rectangle:Sprite = new Sprite();
// utilisation de l'api de dessin 
rectangle.graphics.beginFill ( 0x55AAFF, 1);
rectangle.graphics.drawRect ( 30, 30, 1, 20 );

addChild ( rectangle );

// création du chargeur
var chargeur:Loader = new Loader();
// référence à l'objet LoaderInfo
var cli:LoaderInfo = chargeur.contentLoaderInfo;
// écoute des événements liés au chargement
cli.addEventListener ( Event.OPEN, debutChargement );
cli.addEventListener ( ProgressEvent.PROGRESS, chargement );
cli.addEventListener ( Event.COMPLETE, chargementTermine ); 
cli.addEventListener ( IOErrorEvent.IO_ERROR, echecChargement ); 
 
// url à atteindre
var maRequete:URLRequest = new URLRequest ("anim/anim.swf");
 
// chargement du contenu
chargeur.load( maRequete );
 
// ajout à la liste d'affichage
addChild ( chargeur );
//définition d'un clip dans lequel l'animation chargé sera intégrée
var scenario:MovieClip;
 
function debutChargement ( pEvt:Event ):void  {
    trace( pEvt );
}

function chargement ( pEvt:ProgressEvent ):void  {
    var pourcent:Number=(pEvt.bytesLoaded/pEvt.bytesTotal)*100;
    rectangle.width = pourcent;
    trace("pourcentage de chargement = "+pourcent);
}
 
function chargementTermine ( pEvt:Event ):void  {
    trace( "chargement terminé : "+pEvt );
}
 
function echecChargement ( pEvt:IOErrorEvent ):void  {
    trace( "problème au chargement : "+pEvt ); 
}

//on gère l'action à la fin du chargement
chargeur.contentLoaderInfo.addEventListener ( Event.COMPLETE, termine );

function termine(evt:Object) {
       scenario = evt.currentTarget.content;
     //var scenario:DisplayObject = pEvt.target.content;
     trace( scenario );
    MovieClip ( scenario ).gotoAndStop(2);
}

3 questions :

Q1 : Le problème, c'est que mon abruti de rectangle, en plus grandir avance ! Et vraiment, je ne comprends pas pourquoi.

Q2 : Y'a pas plus simple ???

Q3 : j'ai essayé d'appliquer le code à l'animation elle même, mais je me fait envoyer boulé si je mets root ou quoi que soit d'autre qui essaie de faire appel à l'animation elle-même dans le loader. Visiblement, le loader ne peut pas se porter lui-même. Comment faire ???

Vous remerciant pour votre aide et vos conseils avisés. 

Tout vient à qui sait attendre
samedi 13 décembre 2008 à 17:20:31 | Re : pb loader as3

inaden

Rebonjour,
prenons les choses de façon plus simple. J'essaie de construire un loadre, non pas d'une animation loadé mais de l'animation elle-même :

// Mise en place du sprite qui doit suivre le pourcentage de chargement
var rectangle:Sprite = new Sprite();
rectangle.graphics.beginFill ( 0x55AAFF, 1);
rectangle.graphics.drawRect ( 30, 30, 1, 20 );

addChild ( rectangle );

loaderInfo.addEventListener ( Event.OPEN, debutChargement );
loaderInfo.addEventListener( Event.COMPLETE, chargementTermine);
loaderInfo.addEventListener( ProgressEvent.PROGRESS, chargement);

function debutChargement ( pEvt:Event ):void  {
    // arrete la tête de lecture en attendant le chargement
    stop();
}

function chargement ( pEvt:ProgressEvent ):void  {
    var pourcent:Number=(pEvt.bytesLoaded/pEvt.bytesTotal)*100;
     trace("pourcentage de chargement = "+pourcent);
      rectangle.scaleX = pourcent;
}
 
function chargementTermine ( pEvt:Event ):void  {
    trace("!!!!!!!!!!!! on aura tout vu !!!!!!!!!!!!!!");
    gotoAndStop(2);
}

L'animation s'arrête bien en attendant d'être complètement chargé (j'ai mis une grosse photo sur l'image deux) et passe bien à l'image deux une fois chargée.
Mais mon rectangle continue à avancé !!!!
Ça pourrait faire un effet sympa... mais c'est pas le but recherché.
Donc, j'espère que quelqu'un pourra me dire ce qu'il en est. Merci pour votre attention.

Tout vient à qui sait attendre
samedi 13 décembre 2008 à 17:29:16 | Re : pb loader as3

inaden

Alors, juste pour dire.
Si je mets un clip sur la scène et que je mets rectangle.width = pourcent; à la place de rectangle.scaleX = pourcent;... çà marche !
Mais quand même... j'aimerais bien comprendre pourquoi mon rectangle avance si je le fais apparaître par le code !


Tout vient à qui sait attendre
dimanche 14 décembre 2008 à 20:51:46 | Re : pb loader as3

Orange73

Membre Club
Hello

Et si tu fais supprime ton ecouteur une fois le chargement terminé ? removeListener
lundi 15 décembre 2008 à 07:26:59 | Re : pb loader as3

inaden

Salut,
merci de participer.
Non, ce n'est pas le problème puisque le problème est pendant le chargement... le rectangle avance durant le chargement de l'animation.
par contre je prends en compte ta remarque parce qu'il me semble que l'on doit effectivement supprimer les écouteurs quand ils n'ont plus de rôle à jouer.
Si tu as une autre idée, n'hésite pas.

Tout vient à qui sait attendre
lundi 15 décembre 2008 à 09:29:55 | Re : pb loader as3

Orange73

Membre Club
Essaie de laisser ton rectangle sur une position _x fixe... genre tu rajoute dans ta fonction chargement : rectangle._x = position fixe;
lundi 15 décembre 2008 à 10:50:20 | Re : pb loader as3

inaden

Naon... ça marche pas.

Tu as essayé ce code avec une seconde image clé avec une image un peu lourde dessus pour avoir du temps de chargement ???

// Mise en place du sprite qui doit suivre le pourcentage de chargement
var rectangle:Sprite = new Sprite();
rectangle.graphics.beginFill ( 0x55AAFF, 1);
rectangle.graphics.drawRect ( 30, 30, 1, 20 );

addChild ( rectangle );

loaderInfo.addEventListener ( Event.OPEN, debutChargement );
loaderInfo.addEventListener( Event.COMPLETE, chargementTermine);
loaderInfo.addEventListener( ProgressEvent.PROGRESS, chargement);

function debutChargement ( pEvt:Event ):void  {
    // arrete la tête de lecture en attendant le chargement
    stop();
}

function chargement ( pEvt:ProgressEvent ):void  {
    var pourcent:Number=(pEvt.bytesLoaded/pEvt.bytesTotal)*100;
     trace("pourcentage de chargement = "+pourcent);
      rectangle.scaleX = pourcent;
}
 
function chargementTermine ( pEvt:Event ):void  {
    trace("!!!!!!!!!!!! on aura tout vu !!!!!!!!!!!!!!");
    gotoAndStop(2);
}
Tout vient à qui sait attendre
mardi 6 janvier 2009 à 17:24:37 | Re : pb loader as3

kenshinhim

Je pense que ton problème viens de la manière d'utiliser la propriété scaleX.
En effet la propriété ScaleX altère l'échelle horizontale de ton rectangle en utilisant la valeur donner comme multiplicateur (soit de 0 à 100 dans le cas présent).

Donc si ça se trouve cette altération de l'échelle horizontale de ton rectangle joue sur son positionnement.
Tu devrais peut être essayer la méthode inverse :

rectangle.graphics.drawRect ( 30, 30, 100, 20 );

...

function chargement ( pEvt:ProgressEvent ):void  {
   
     var charger:Number=(pEvt.bytesLoaded/pEvt.bytesTotal);
     var pourcent = charger*100;
     trace("pourcentage de chargement = "+pourcent);
      rectangle.scaleX = charger;
}

...

Ton rectangle va donc être créer avec sa forme définitive qu'il va récupérer progressivement au fil du chargement de l'animation (les valeurs que prendra ScaleX variant de 0 à 1).
mardi 6 janvier 2009 à 17:43:25 | Re : pb loader as3

inaden

Bonjour,
et merci pour ta réponse. Je l'ai pas dit mais j'ai réussi en posant un clip sur la scène.

Par contre, je viens d'essayer ton idée et c'est beaucoup mieux, le rectangle ne file pas à tout allure de part et d'autre de la scène, mais il ne reste pas en place et avance très doucement tout en grandissant...
Néanmoins, beaucoup de progrès. Je prends en note l'idée de partir d'un rectangle ayant déjà les bonnes dimensions, j'ai l'impression que le principe est plus correct.
Merci pour ton aide... à charge de revanche si un jour je peux... et bonne année !    

Tout vient à qui sait attendre


Cette discussion est classée dans : chargement, loader, rectangle, chargeur, pevt


Répondre à ce message

Sujets en rapport avec ce message

loader XML / flash [ par bartoun ] Bonjour, Je cherche a mettre en place un module comme celui ci (tres bien fait d'ailleurs avec les sources commentées...tres interessant) J'ai tout m Chargement directe d'un .jpg ou .swf [ par Chritchan ] Bonjour tout le monde ! Je vais peut etre parraitre bete mais je voudrais vous demander comment vous feriez pour charger un jpg (aléatoirement mais ça Chargement de JPG dans un Loader [ par Mikounours ] Bonjour, j'ai un problème avec le composant Loader. je reussis sans problème à afficher une première jpg via la méthode load(). J'aimerais ensuite af Barre de chargement d'image ? [ par Rati_12 ] Salut, je Viesn de chercher pas mal sur le site et je n'ai pas trouvé :Je cherche le moyen de mettre une barre de chargement a la place d'une image, e Chargement d'un fichier , lecture bizarre [ par Sofwer ] Bonsoir à tous,Je suis débutant sur flash et je cherche a dessiner une carte dont les coordonnees se trouves ds un fichier mif (map info).J'utilise la problème de loader sur firefox pc [ par inaden ] Bonjour,voilà, j'ai une anim qui fonctionne parfaitement partout sauf sur firefox pc (donc pas partout en vérité).Mon loader est le suivant :// Le loa Placer un claquepar dessus le Loader de ma scène principal [ par Michelflashgordon ] Bonjour à tous! J'ai un Loader dans lequel je souhaite charger plusieurs SWF. Sur la scène principal j'ai créer un calque "CADRE" avec un cadre effet Probleme loader sur axe Y [ par Sevenstars ] Bonjour,je suis débutant en AS3 et j'ai choisi de créer pour mon projet de fin d'études un site en full flash.J'ai fais un loader (une sorte de gros b Probléme à la compilation d'un clip AS2 [ par designeratwork ] Bonjour à tous et toutes,voici mon problème,j'ai fait une première animation avec deux images clés, une première contenant un loader et une deuxième c Problème de loader / unload [ par olliesound ] Salut tout le monde je vous expose mon souci : Réalisant mon portfolio en flash, j'ai créé un swf principal avec des boutons qui lorsque l'on clique


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales