Page 1 sur 2

Panne de preload

MessagePosté: Lun Jan 09, 2006 1:14 pm
par Natamon
'jour et b'nanée à tous ! :)

Quand j'essaie d'installer sur une anime assez lourde tous les action script de loading récupérés sur le web ( je suis une pelle en programmation) , et que je fais un test en ligne : je ne voit pas le pourcentage.

Quelqu'un a-t'il une solution ou une source qui fonctionne à me donner ?

MessagePosté: Lun Jan 09, 2006 6:23 pm
par Natamon
:P Je ne vous dérange pas au moins !!! J'ai horreur de m'incruster ! :D :wink:

Bon, bien sur j'ai un preload sur mon site mais quand j'essaye d'appliquer le script sur d'autres anims, ben ça marche pas !


pitié !

Re: Panne de preload

MessagePosté: Lun Jan 09, 2006 7:17 pm
par gadeujo
abat-jour et bonnet d'âne niais !

Tu utilises quelle version de Flash ?
voilà une méthode assez simple qui passe partout (sauf avec les versions antérieures à FlashMX) :

1ere image : 2 calques.
-sur le 1er calque ("contenu" par exemple) : un champ de texte dynamique (nom d'occurrence : t1) et 1 clip contenant une interpolation de forme d'un rectangle qui s'agrandit sur 100 images (nom d'ocurrence : barre)

- sur le 2e calque ("actions"), le code suivant :
Code: Tout sélectionner
this.onEnterFrame = function() {
   var total = this.getBytesTotal();
   var lu = this.getBytesLoaded();
   var rapport = Math.round((lu)/(total)*100);
   this.t1.text= Math.round(rapport)+" %";
   this.barre.gotoAndPlay(rapport);
   if (rapport == 100) {
      delete this.onEnterFrame;
      this.gotoAndStop(2);
   }
}


-2e image : ton animation proprement dite

NB : attention, si tu utilises des composants, le chargement commence + tard

voili voilo

MessagePosté: Mar Jan 10, 2006 11:06 am
par Natamon
Oh ! Merci Gadeujo!

Je suis devenue une programmeuse chevronnée grâce à toi !

Enfin presque... Je vais bien voir si j'arrive à intégrer ton code...

A+, je te tiens au courant ! :)

MessagePosté: Ven Jan 13, 2006 12:27 am
par jpv
Attention, :roll:

Il y a des différences entre IE et FireFox au niveau du getBytesTotal.

IE semble attendre que le chargement commence avant de renvoyer quelque chose et FireFox non.
donc "var rapport = Math.round((lu)/(total)*100); " peut faire une division par 0 sous fireFox et le truc rend la main alors que rien n'est chargé. J'ai eu le pb sur mon site.

donc moi je rajouterais une vérif de non null. En reprenant l'exemple de Gadeujo, cela doit donner un truc comme cela.

Code: Tout sélectionner
this.onEnterFrame = function() {
 
 if (this.getBytesTotal() >0 )
   {
      var total = this.getBytesTotal();
      var lu = this.getBytesLoaded();
      var rapport = Math.round((lu)/(total)*100);
      this.t1.text= Math.round(rapport)+" %";
      this.barre.gotoAndPlay(rapport);
      if (rapport == 100) {
         delete this.onEnterFrame;
         this.gotoAndStop(2);
      }
   }
}

MessagePosté: Lun Jan 16, 2006 11:38 am
par Natamon
Arrrf ! ça vous met dans un état second :x

Merci JPV et Gadeujo :)



°o

ça maaaaaarche !

MessagePosté: Dim Juil 23, 2006 8:13 pm
par Natamon
ça maaaaaarche !




°o

MessagePosté: Dim Juil 30, 2006 9:26 pm
par jpv
javier à juillet, whaou qu'elle réactivité :J'en ris aux éclats !:

MessagePosté: Mar Oct 03, 2006 10:02 pm
par Natamon
:D :D :D


Ouais !!! Il faut bien un jour terminer ce qu'on commence ! Et j'ai bien le droit de faire aussi des avions en papier ! :wink:


...On est en septembre, je sais, merci ! :wink:



O°0o°

MessagePosté: Lun Jan 01, 2007 3:22 pm
par kOolin
eeeuh je r'monte le post ! :J'en ris aux éclats !:
ptite question : okay ça à l'air de vouloir marcher ce truc mais une fois que j'ai mes 2 calques j'en fait quoi ? j'les cale où par rapport à l'anim'? soyez indulgent, je commence juste le flash :? ...

MessagePosté: Mar Jan 02, 2007 2:34 pm
par Natamon
Bonjour KOolin et Bonané ! :J'en ris aux éclats !:

Une fois que tu as tes deux calques en image 1, tu mets ton anim en image 2.

voilu !

MessagePosté: Mar Jan 02, 2007 7:23 pm
par kOolin
:arrow:

MessagePosté: Mar Jan 02, 2007 7:41 pm
par kOolin
merciiiiii de répondre, je suis au taquet là, je regarde le post toutes les demi heures ! :D
Donc, j'ai pris toute mon anim' j'en ai fait un symbole clip que j'ai mis en 2e image du calque "contenu" (j'ai suivi le tuto de gadeujo avec le actionscript de jpv), ben voila ça marche pas, au premier visionnage il me fait juste le préchargement, avec la barre qui défile a peu près 5 fois avant que ça arrive a 99%... et ensuite : noir total. Si tu actualise il passe l'anim' sans problème ... bizarre bizarre.
http://webmaster.radis.free.fr/patrick_boutoncarre_negatif-fin_preload2.swf

MessagePosté: Mar Jan 02, 2007 10:55 pm
par Natamon
Mince alors... Peut-ètre que dans les paramètres de publication il faut mettre Flash Player 6 ou 5.... Et une version d'action script 1...

En fait je suis une pelle en programmation... :oops:

:cry: AU SECOOOOOOOOUUUUUUUURRRR !!!!
AU SECOOOOOOOOUUUUUUUURRRR les autres !!!! Quelqu'un d'autre a une idée ?

Sinon, il est mignon ton nouveau site ! Vivement que le problème de préload soit résolu !

MessagePosté: Mar Jan 02, 2007 11:27 pm
par normandart
kOolin : ben chez moi ça marche bien avec firefox et avec IE.

MessagePosté: Mer Jan 03, 2007 1:41 pm
par kOolin
nan mais alors mais nan mais c'est pas possible non mais attend la j'y crois pas quoi...
je suis passé a firefox 2.0, flash player 9, j'ai réduit la compatibilité a flash 7 et action script 1.0 c'est toujours pareil mais chez normandart ça maaaaaaaaaaaarche ... :cry:
bon je remet l'anim' en flash 8 et actionscript 2.0 et je m'en remet a vous ...

MessagePosté: Ven Jan 05, 2007 2:19 pm
par gadeujo
salut

c'est amusant ce problème qui revient tous les mois de janvier...

kOolin, même si en Flash 8, il vaudrait mieux utiliser MovieClipLoader, il y a pas de raisons que le code de jpv ou le mien ne marchent pas (j'utilise souvent ce bout de code moi-même et j'ai jamais eu de soucis) en Flash 6, 7, 8 ou même 9.
t'as donc du oublier un truc.
Essaie déjà d'intercaler des trace pour voir et lance ton anim depuis Flash :
Code: Tout sélectionner
stop();
var total = this.getBytesTotal();
this.onEnterFrame = function() {
   trace("total : "+total);
   var lu = this.getBytesLoaded();
   trace("lu : "+lu);
   var rapport = Math.round((lu)/(total)*100);
   trace("rapport : "+rapport);
   this.t1.text = Math.round(rapport)+" %";
   this.barre.gotoAndPlay(rapport);
   if (rapport == 100) {
      delete this.onEnterFrame;
      this.gotoAndStop(2);
   }
};

si t'as des "NaN" ou des "undefined" qui s'affichent, c'est que les variables ne sont pas correctement initalisées
si ça fonctionne toujours pas, faudrait voir le.fla...

MessagePosté: Ven Jan 05, 2007 9:27 pm
par kOolin
marci de ta réponse gadeujo, j'ai essayé avec ton script, maintenant l'anim' s'enchaîne avec le préchargement ( c'est déjà ça 8) ) mais la barre censée indiquer la progression n'en fait toujours qu'a sa tête ... en fait elle défile en continu jusqu'a ce que l'anim' soit chargée, ça peut donner un style tu m'diras :D mais bon c'est pas vraiment ce que je recherche ...

edit: et sinon comment tu procède avec MovieClipLoader ?

MessagePosté: Sam Jan 06, 2007 11:54 am
par gadeujo
ta barre c'est une interpolation de forme sur x images ?
mets un stop () à la première image de l'interpolation
et essaie this.barre.gotoAndStop(rapport); au lieu de this.barre.gotoAndPlay(rapport);

pour MovieClipLoader, oublie ce que j'ai dit, je pensais à autre chose...:roll:
il faut 2 animations : 1 vide qui ne fait que charger la 2e (celle dans lequel est le contenu).
C'est se compliquer la vie finalement...

MessagePosté: Sam Jan 06, 2007 2:37 pm
par kOolin
en fait depuis le début j'utilisais une interpolation de mouvement au lieu d'un interpolation de forme (sur 100 images). mais en fait même en remplaçant ça change rien . J'ai essayé ton code ça marche pas ça bloque la barre à la première image... :cry:
Si tu veux voir le .fla dis le moi .

MessagePosté: Sam Jan 06, 2007 6:43 pm
par gadeujo
oui, poste ton .fla ici ou envoie-le moi par mail
(je t'ai envoyé un mp)

aie aie

MessagePosté: Mar Fév 13, 2007 9:47 pm
par chl
bonjour,
Vous pouvez me répondre en janvier 2008, si vous voulez mais ça va ma m'arranger.
J'ai du mal à suivre, ça ne marche pas.
Pouvez-vous m'aider, svp
Voila ce que je fais.

2 calques
1 calque = contenu = 1er image la progress barre (avec un stop à 100%)
2 calque = action = le code suivant :

Stop();
var total = this.getBytesTotal ();
this.onEnterFrame = function() {
trace("total : "+total);
var lu = this.getBytesloaded();
trace("lu : "+lu);
var rapport = Math.round((lu)/(total)*100);
trace("rapport = "+rapport);
this.t1.text = Math.round(rapport)+" %";
this.barre.gotoAndStop(rapport);
if (rapport == 100) {
delete this.onEnterFrame;
this.gotoAndStop (2);
}
};


ensuite
1 calque = contenu = 2ieme image un symbole clip (non:balle)avec interpolation toute bête.

Résultat 0/10

total : 4445
lu : undefined
rapport = NaN

La progress bar avance et s'arrêt à 100
le compteur s'affiche NAN%
et le clip n'apparait jamais

voila je suis perdu, je me suicide tout de suite ?

MessagePosté: Mer Fév 14, 2007 4:24 pm
par gadeujo
salut
pas la peine d'attendre janvier 2008 :D

il y a un truc important dans le code : la casse

stop() et pas Stop()
getBytesLoaded(); et pas getBytesloaded()

s'ils sont correctement écrits, les mots réservés du programme doivent s'afficher en couleur dans le code.
Par contre, le nom des calques, des clips ou des variables n'a aucune importance (évite les accents, c'est tout)

voili voilo

Re: Panne de preload

MessagePosté: Mer Fév 14, 2007 5:52 pm
par chl
Merci je vais essayer mais je doute du résultat.
Y doit y avoir un truc que j'ai pas compris !

[quote="gadeujo]
-2e image : ton animation proprement dite
[/quote]

qu'est-ce que ça veut dire si on veut charger un swf ?

Re: Panne de preload

MessagePosté: Mer Fév 14, 2007 7:05 pm
par gadeujo
chl a écrit:je vais essayer mais je doute du résultat.

sympa...
moi je te garantis que ça fonctionne si t'écris correctement les termes cités.

sinon, ce petit bout de code permet de précharger l'animation principale.
Si tu appelles une image ou un .swf, la méthode est différente.
Lis ceci : loadmovie et moviecliploader

Re: Panne de preload

MessagePosté: Jeu Fév 15, 2007 4:26 pm
par chl
gadeujo a écrit:
chl a écrit:je vais essayer mais je doute du résultat.

sympa...
moi je te garantis que ça fonctionne si t'écris correctement les termes cités.

[/url]


sorry gadeujo,
Quand je dis je doute, c'est pas de ton code mais de moi :) bien entendu
car parfois je ne sais ou appliquer le code, je suis un débutant en flash, sorry

par ex quand mettons nous
du code sur un bouton on commence par on release
et sur une image c'est ?

Souvent ds les tutoriaux ils commencent par donner directement le code principal et jamais le code complet avec "on relaese" "onclicevent" ect.
Pour les débutants c'est pas facile.

Merci à toi de ta patience

MessagePosté: Ven Fév 16, 2007 12:04 am
par normandart
pour faire fonctionner le bouton on mets "on"
mais sur une image pas besoin elle fonctionne toute seule.

par exemple pour aller sur une autre image, tu utilises directement gotoAndPlay("tonimage");

Re: Panne de preload

MessagePosté: Ven Fév 16, 2007 12:00 pm
par gadeujo
re

en fait la syntaxe on() et le code placé sur les boutons/clips est déconseillé depuis Flash MX 6 - > explications : bonnes pratiques de Flash.
Il est préférable de regrouper tout le code sur un calque à part.
(c'est beaucoup + facile de s'y retrouver ensuite et les possibilités d'interactivité sont beaucoup plus grandes)

MessagePosté: Ven Fév 16, 2007 3:56 pm
par normandart
En ce qui concerne une animation, qui se rapproche d'un travail traditionnel, Les fonctions "action script" de base suffisent pour développer un dessin animé : démarrer, stop, avancer, retourner...
et on peut même enregistrer avec la version 5 de flash.
les bonnes pratiques de Flash s'adressent à des flascheurs qui codent beaucoup.
L'utilisation des "séquences" bien pratiques pour dessiner image par image, scènes par scènes, n'est pas recommandé pour des codes "action script " avancés.
pour mes animations images par images., J'utilise un preload de base, le plus simple possible, sans aucune sophistication de calcul de pourcentage.

J'aime bien les outils de dessin du logiciel flash c'est pourquoi je dessine mes animes avec.
a+

MessagePosté: Ven Fév 16, 2007 4:59 pm
par gadeujo
je suis d'accord avec toi jusqu'à un certain point.

Le typage fort par exemple, n'apporte rien pour des codes simples.
On peut coder en Flash 5, bien sûr, mais on se rend vite compte des limites que cela impose.
Les séquences semblent pratiques au 1er abord MAIS posent des problèmes dès que l'animation n'est plus linéaire, même avec du code très simple (gotoAndPlay). On peut parler de bug.

Et le preload que j'indique n'a rien de sophistiqué, vraiment... on peut le simplifier :
Code: Tout sélectionner
stop();
this.onEnterFrame = function() {
   if (this.getBytesLoaded()==this.getBytesTotal()) {
      delete this.onEnterFrame;
      this.gotoAndStop(2);
   }
}

mais bon c'est toujours mieux d'indiquer que le chargement se déroule effectivement et que le spectateur voit le temps à attendre, non ?